2010-12-31  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (powerpc-*-darwin*): Update reference to
	Apple Developer Tools.

2010-12-31  Ken Werner  <ken.werner@de.ibm.com>

	* config/arm/sync.md (sync_clobber, sync_t2_reqd): New code attribute.
	(arm_sync_old_<sync_optab>si, arm_sync_old_<sync_optab><mode>): Use
	the sync_clobber and sync_t2_reqd code attributes.
	* config/arm/arm.c (arm_output_sync_loop): Reverse the operation if
	the t2 argument is NULL.

2010-12-31  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/sourcebuild.texi (Top Level): Adjust link to libgo.

2010-12-31  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific): Remove reference to interix.com.

2010-12-31  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.h (PRINT_OPERAND): Delete.
	* config/pdp11/pdp11.c (TARGET_PRINT_OPERAND,
	TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define
	(pdp11_asm_print_operand, pdp11_asm_print_operand_punct_valid_p):
	New function.
	* config/pdp11/pdp11.md (tablejump): Fix generated assembly.

2010-12-31  Joern Rennecke  <amylaar@spamcop.net>

	PR target/47111
	* config/rtems.h (NO_IMPLICIT_EXTERN_C): Undef before defining.

	PR target/47112
	* config/mips/r3900.h: Update Copyright years.
	(MIPS_CPU_STRING_DEFAULT): Undef before defining.
	(MULTILIB_DEFAULTS, MIPS_ABI_DEFAULT, SUBTARGET_CC1_SPEC): Likewise.

	PR target/47135
	* config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Change
	type to match target.def .

	PR target/47114
	* config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): Add
	ATTRIBUTE_UNUSED to declaration.
	(rs6000_elf_asm_out_destructor): Likewise.

	PR target/47084
	* config/mn10300/linux.h (PRINT_OPERAND): Update for name changes
	to mn10300_print_operand / mn10300_print_operand_address.

2010-12-30  Mingjie Xing  <mingjie.xing@gmail.com>

	* config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change
	TARGET_LOONGSON_2EF to TARGET_LOONGSON_VECTORS.
	* config/mips/mips.c (mips_shift_truncation_mask): Likewise.

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

	* config/openbsd.opt: New.
	* config.gcc (alpha*-*-openbsd*,
	i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123],
	i[34567]86-*-openbsd*, m68k*-*-openbsd*, mips*-*-openbsd*,
	sparc64-*-openbsd*, vax-*-openbsd*): Use openbsd.opt.

2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
	patterns.

2010-12-30  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/47038
	* config/sparc/sparc.c (sparc_file_end): Call resolve_unique_section
	on the GOT helper if USE_HIDDEN_LINKONCE.

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

	PR c/46889
	* c-decl.c (detect_field_duplicates): Ensure hash is used for
	finding duplicates when first field is anonymous.

2010-12-30  Nathan Froyd  <froydnj@codesourcery.com>

	PR target/44606
	* reload1.c (choose_reload_regs): Don't look for equivalences for
	output reloads of constant loads.

2010-12-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Explicitly derive
	default values from MEM mode if no memory attributes are present.
	Do not use mode alignment, even on STRICT_ALIGNMENT targets, when
	called with an expression (not a type).

2010-12-30  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (upper_128bits_state): Remove comments.
	(block_info_def): Add unchanged.
	(move_or_delete_vzeroupper_2): Short circuit if upper 128bits
	are unchanged in the block.

2010-12-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/46519
	* config/i386/i386.c (block_info_def): Remove referenced, count
	and rescanned.
	(move_or_delete_vzeroupper_2): Updated.
	(move_or_delete_vzeroupper_1): Rewritten to avoid recursive call.
	(rescan_move_or_delete_vzeroupper): Removed.
	(move_or_delete_vzeroupper): Repeat processing all basic blocks
	until no basic block state is changed to used at exit.

2010-12-30  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.md (movmemhi, movmemhi1): Correct
	constraints.
	* config/pdp11/pdp11.c (output_block_move): Rewrite.

2010-12-30  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/47060
	* tree-parloops.c (reduction_phi): Return NULL if PHI is NULL.

2010-12-29  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11-protos.h (pdp11_asm_output_var): Declare.
	* config/pdp11/pdp11.c (pdp11_asm_output_var): New function.
	* config/pdp11/pdp11.h (ASM_OUTPUT_ALIGNED_COMMON,
	ASM_OUTPUT_ALIGNED_LOCAL): New macros.
	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.

2010-12-30  Joern Rennecke  <amylaar@spamcop.net>

	PR target/47129
	* config/ia64/ia64.c: Include "dwarf2out.h" .

	PR target/47063
	* config/alpha/vms.h (MALLOC_ALIGNMENT): Don't undef / define.
	(MALLOC_ABI_ALIGNMENT): Undef / define.

	PR target/47101
	* vmsdbgout.c (vmsdbgout_init): Rename main_input_filename to filename.
	(vmsdbgout_finish): Likewise.

	PR target/47097
	* config/i386/lynx.h (DBX_REGISTER_NUMBER): Add cast to avoid
	mixing signed and unsigned types in conditional expression.

2010-12-29  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/47074
	* gimple-fold.c (gimplify_and_update_call_from_tree): Call
	pop_gimplify_context if returning early.

2010-12-28  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (graphite.o): Depends on DIAGNOSTIC_CORE_H.
	(graphite-clast-to-gimple.o): Same.
	(graphite-poly.o): Same.
	* graphite-clast-to-gimple.c: Include diagnostic-core.h.
	* graphite-poly.c: Same.
	* graphite.c: Same.

2010-12-28  Richard Guenther  <rguenther@suse.de>

	PR debug/46931
	* tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Update
	SSA before removing dead stmts.

2010-12-28  H.J. Lu  <hongjiu.lu@intel.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-builtin-types.def (PUSHORT): New.
	(INT_FTYPE_PUSHORT): Likewise.
	(INT_FTYPE_PUNSIGNED): Likewise.
	(INT_FTYPE_PULONGLONG): Likewise.
	Remove "DEF_FUNCTION_TYPE (UINT16)".

	* config/i386/i386.c (ix86_builtins): Remove
	IX86_BUILTIN_RDRAND16, IX86_BUILTIN_RDRAND32 and
	IX86_BUILTIN_RDRAND64.  Add IX86_BUILTIN_RDRAND16_STEP,
	IX86_BUILTIN_RDRAND32_STEP and IX86_BUILTIN_RDRAND64_STEP.
	(bdesc_special_args): Remove IX86_BUILTIN_RDRAND16,
	IX86_BUILTIN_RDRAND32 and IX86_BUILTIN_RDRAND64.
	(ix86_init_mmx_sse_builtins): Handle IX86_BUILTIN_RDRAND16_STEP,
	IX86_BUILTIN_RDRAND32_STEP and IX86_BUILTIN_RDRAND64_STEP.
	(ix86_expand_builtin): Likewise.
	(ix86_expand_special_args_builtin): Remove UINT16_FTYPE_VOID.

	* config/i386/i386.md (UNSPEC_RDRAND): New.
	(UNSPECV_RDRAND): Removed.
	(rdrand<mode>): Likewise.
	(rdrand<mode>_1): Also set FLAGS_REG.  Replace UNSPECV_RDRAND
	with UNSPEC_RDRAND.

	* config/i386/immintrin.h (_rdrand_u16): Removed.
	(_rdrand_u32): Likewise.
	(_rdrand_u64): Likewise.
	(_rdrand16_step): New.
	(_rdrand32_step): Likewise.
	(_rdrand64_step): Likewise.

	* doc/extend.texi (__builtin_ia32_rdrand16): Removed.
	(__builtin_ia32_rdrand32): Likewise.
	(__builtin_ia32_rdrand64): Likewise.
	(__builtin_ia32_rdrand16_step): New.
	(__builtin_ia32_rdrand32_step): Likewise.
	(__builtin_ia32_rdrand64_step): Likewise.

2010-12-28  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (graphite.o): Add dependence on DIAGNOSTIC_H.
	* graphite.c: Include diagnostic.h.

2010-12-28  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (TREE_VECTORIZER_H): Removed duplicate definition.
	(tree-browser.o): Update dependences.
	(omega.o): Same.
	(tree-chrec.o): Same.
	(tree-scalar-evolution.o): Same.
	(tree-data-ref.o): Same.
	(sese.o): Same.
	(graphite.o): Same.
	(graphite-blocking.o): Same.
	(graphite-clast-to-gimple.o): Same.
	(graphite-cloog-util.o): Same.
	(graphite-dependences.o): Same.
	(graphite-flattening.o): Same.
	(graphite-interchange.o): Same.
	(graphite-poly.o): Same.
	(graphite-ppl.o): Same.
	(graphite-scop-detection.o): Same.
	(graphite-sese-to-poly.o): Same.
	(tree-loop-linear.o): Same.
	(tree-loop-distribution.o): Same.
	(tree-parloops.o): Same.
	(lambda-mat.o): Same.
	(lambda-trans.o): Same.
	(lambda-code.o): Same.
	* tree-browser.o: Do not include unnecessary .h files.
	* omega.o: Same.
	* tree-chrec.o: Same.
	* tree-scalar-evolution.o: Same.
	* tree-data-ref.o: Same.
	* sese.o: Same.
	* graphite.o: Same.
	* graphite-blocking.o: Same.
	* graphite-clast-to-gimple.o: Same.
	* graphite-cloog-util.o: Same.
	* graphite-dependences.o: Same.
	* graphite-flattening.o: Same.
	* graphite-interchange.o: Same.
	* graphite-poly.o: Same.
	* graphite-ppl.o: Same.
	* graphite-scop-detection.o: Same.
	* graphite-sese-to-poly.o: Same.
	* tree-loop-linear.o: Same.
	* tree-loop-distribution.o: Same.
	* tree-parloops.o: Same.
	* lambda-mat.o: Same.
	* lambda-trans.o: Same.
	* lambda-code.o: Same.
	* graphite.h: Removed.

2010-12-28  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.md: Correct length attribute for float
	literal case.

2010-12-28  Jie Zhang  <jie@codesourcery.com>

	* builtins.c (SLOW_UNALIGNED_ACCESS): Remove.

2010-12-27  Joseph Myers  <joseph@codesourcery.com>

	* config/freebsd.opt (assert=, defsym=, profile, pthread,
	rpath-link=, rpath=, soname=): New Driver options.

2010-12-26  Martin Jambor  <mjambor@suse.cz>

	* tree.c (get_binfo_at_offset): Use BINFO_TYPE instead of TREE_TYPE,
	compare TYPE_MAIN_VARIANTs of types.

2010-12-26  Andreas Schwab  <schwab@linux-m68k.org>

	* config/m68k/t-linux (M68K_MLIB_CPU): Only include 680x0 CPUs.

2010-12-24  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/47036
	* sel-sched-ir.c (fallthru_bb_of_jump): Remove special support for
	unconditional jumps.
	* sel-sched.c (moveup_expr): Ditto.

2010-12-23  Sebastian Pop  <sebastian.pop@amd.com>
	    Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46758
	* graphite-sese-to-poly.c (scan_tree_for_params_right_scev): Use
	tree_int_to_gmp instead of int_cst_value.
	(scan_tree_for_params_int): Same.
	(scan_tree_for_params): Same.
	(pdr_add_data_dimensions): Use ppl_set_inhomogeneous_tree.

2010-12-23  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/47002
	* tree-data-ref.c (compute_data_dependences_for_loop): Pass in a
	pointer to the loop_nest.
	(analyze_all_data_dependences): Initialize and free the loop_nest.
	(free_dependence_relations): Do not free loop_nest.
	(build_rdg): Pass in the loop_nest, datarefs, and dependence_relations.
	(free_rdg): Also free the data on edges.
	* tree-data-ref.h (build_rdg): Update declaration.
	(compute_data_dependences_for_loop): Same.
	* tree-if-conv.c (if_convertible_loop_p_1): Pass in the loop_nest.
	(if_convertible_loop_p): Allocate and free loop_nest.
	* tree-loop-distribution.c (rdg_flag_loop_exits): Free conds.
	(free_rdg_components): VEC_free components.
	(distribute_loop): Update call to build_rdg.  Allocate and free
	loop_nest, datarefs, and dependence_relations.
	* tree-loop-linear.c (linear_transform_loops): Allocate and free
	loop_nest.
	* tree-parloops.c (loop_parallel_p): Same.
	* tree-predcom.c (tree_predictive_commoning_loop): Same.
	* tree-vect-data-refs.c (vect_analyze_data_refs): Pass to
	compute_data_dependences_for_loop a pointer to LOOP_VINFO_LOOP_NEST.
	* tree-vect-loop.c (new_loop_vec_info): Initialize LOOP_VINFO_LOOP_NEST.
	(destroy_loop_vec_info): Free LOOP_VINFO_MAY_ALIAS_DDRS and
	LOOP_VINFO_LOOP_NEST.
	* tree-vect-slp.c (destroy_bb_vec_info): Call free_data_refs and
	free_dependence_relations.
	* tree-vectorizer.h (struct _loop_vec_info): Add a field loop_nest.
	(LOOP_VINFO_LOOP_NEST): New.

2010-12-23  Martin Jambor  <mjambor@suse.cz>

	* ipa.c (cgraph_remove_unreachable_nodes): Update former_clone_of even
	when not checking.

2010-12-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_ld_eh_frame_hdr): Only check GNU ld for
	--eh-frame-hdr.  Check for working Sun ld version.
	(HAVE_LD_EH_FRAME_HDR): Adapt comment.
	(glibc_header_dir): Set only once.  Rename to ...
	(target_header_dir): ... this.  Adapt users.
	(gcc_cv_target_dl_iterate_frame_hdr): Check on *-*-solaris2*.
	(TARGET_DL_ITERATE_PHDR): Define if present.
	* configure: Regenerate.
	* config.in: Likewise.
	* config/t-sol2 (LIB2ADDEH, LIB2ADDEHDEP): Define.
	* crtstuff.c (USE_PT_GNU_EH_FRAME): Define for recent Solaris 11
	with linker support and dl_iterate_phdr.
	* unwind-dw2-fde-glibc.c (USE_PT_GNU_EH_FRAME): Likewise.
	(_Unwind_IteratePhdrCallback) [PT_SUNW_UNWIND]: Also accept
	PT_SUNW_UNWIND .eh_frame_hdr sections.
	[CRT_GET_RFIB_DATA && __i386__ && __sun__ && __svr4__]: Add
	load_base to data->dbase.
	[CRT_GET_RFIB_DATA && __x86_64__ && __sun__ && __svr4__]: Handle
	64-bit Solaris 10+/x86.
	* config/sol2-gld.h [TARGET_DL_ITERATE_PHDR && HAVE_LD_EH_FRAME_HDR]
	(LINK_EH_SPEC): Define.

2010-12-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/extend.texi (Function Attributes, Volatiles): Fix typos.
	* doc/install.texi (Prerequisites, Specific): Likewise.
	* doc/invoke.texi (C Dialect Options, Debugging Options)
	(Optimize Options, MicroBlaze Options)
	(RS/6000 and PowerPC Options, RX Options, Code Gen Options): Likewise.
	* doc/objc.texi (Method signatures)
	(Fast enumeration protocol): Likewise.
	* doc/tm.texi.in (Run-time Target, Register Arguments)
	(Scheduling, Macros for Initialization, Misc): Likewise.
	* doc/tm.texi: Renerate.

2010-12-23  Nicola Pero  <nicola.pero@meta-innovation.com>

	* doc/objc.texi (Modern GNU Objective-C runtime API): Mention that
	reference documentation for functions in the API is in the header
	files.
	(Messaging with the GNU Objective-C runtime, Dynamically
	registering methods, Forwarding hook): New sections.

2010-12-22  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/47019
	* sese.h (scev_analyzable_p): Parameters of a SCoP are SCEV analyzable.

2010-12-22  Nathan Froyd  <froydnj@codesourcery.com>

	* c-aux-info.c (gen_formal_list_for_type): Use prototype_p.
	* c-decl.c (diagnose_arglist_conflict): Likewise.
	(diagnose_mismatched_decls, merge_decls): Likewise.
	(c_builtin_function, c_builtin_function_ext_scope): Likewise.
	(start_decl, start_function): Likewise.
	* c-tree.h (C_DECL_ISNT_PROTOTYPED): Likewise.
	* config/ia64/ia64.h (INIT_CUMULATIVE_ARGS): Likewise.
	* config/mep/mep.c (mep_validate_interrupt): Likewise.
	* config/pa/pa.h (INIT_CUMULATIVE_ARGS): Likewise.
	* config/rs6000/rs6000.c (init_cumulative_args): Likewise.
	* config/sh/sh.c (sh_init_cumulative_args): Likewise.
	* config/sparc/sparc.c (init_cumulative_args): Likewise.
	* dwarf2out.c (add_prototyped_attribute): Likewise.
	(gen_subprogram_die): Likewise.
	* ipa-type-escape.c (check_function_parameter_and_return_types):
	Likewise.
	(check_call): Likewise.
	* tree-ssa.c (useless_type_conversion_p): Likewise.

2010-12-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.md ("mov<mode>"): Use nonimmediate_operand
	predicate for destination operand.
	* config/spu/spu.c (spu_expand_mov): If move destination is an
	invalid subreg, perform move in the subreg's inner mode instead.

2010-12-22  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/45934
	PR tree-optimization/46302
	PR tree-optimization/46987
	* gimple-fold.c (get_base_binfo_for_type): Removed.
	(gimple_get_relevant_ref_binfo): Likewise.
	(gimple_fold_obj_type_ref_call): Dumb down to 4.5 functionality,
	removed parameter inplace, updated the caller.
	* gimple.h (gimple_get_relevant_ref_binfo): Remove declaration.
	* ipa-cp.c (ipcp_propagate_types): Do not derive types from constants.
	(ipcp_discover_new_direct_edges): Do not do devirtualization based on
	constants.
	* ipa-prop.c (compute_known_type_jump_func): Use
	get_ref_base_and_extent and get_binfo_at_offset instead of
	gimple_get_relevant_ref_binfo.
	(compute_known_type_jump_func): Likewise.
	(update_jump_functions_after_inlining): Do not derive types from
	constants.
	(try_make_edge_direct_virtual_call): Likewise.
	* tree.c (get_binfo_at_offset): Get type from non-artificial fields.

2010-12-22  Joseph Myers  <joseph@codesourcery.com>

	* config/svr4.h: Remove.
	* system.h (USING_SVR4_H, SVR4_ASM_SPEC): Poison.
	* config.gcc, config/bfin/bfin.h, config/cris/cris.h,
	config/fr30/fr30.h, config/frv/frv.h, config/i386/openbsdelf.h,
	config/i386/vx-common.h, config/ia64/elf.h, config/ia64/ia64.h,
	config/ia64/sysv4.h, config/iq2000/iq2000.h, config/m68k/linux.h,
	config/m68k/m68kelf.h, config/mips/mips.h, config/mips/vxworks.h,
	config/moxie/moxie.h, config/netbsd-aout.h, config/openbsd.h,
	config/rs6000/sysv4.h, config/sh/elf.h, config/sh/sh.h,
	config/sol2.h, config/sparc/sysv4.h, config/stormy16/stormy16.h,
	config/v850/v850.h, config/vxworks.h: Remove or update comments
	referring to svr4.h.

2010-12-22  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/45352
	PR rtl-optimization/46521
	PR rtl-optimization/46522
	* sel-sched.c (reset_sched_cycles_in_current_ebb): Recheck the
	DFA state on the last iteration of the advancing loop.
	(sel_sched_region_1): Propagate the rescheduling bit to the next
	block also for empty blocks.

2010-12-22  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/46724
	* function.c (assign_parms_augmented_arg_list): Name and mark
	DECL of result address as NAMELESS rather than IGNORED.
	(assign_parms): Set DECL_VALUE_EXPR for indirect result.
	* tree.h (tree_decl_common::decl_flag_2): Document RESULT_DECL.
	(DECL_HAS_VALUE_EXPR_P): Accept RESULT_DECL.
	* dwarf2out.c (loc_list_from_tree) <RESULT_DECL>: Use
	DECL_VALUE_EXPR.
	* dbxout.c (dbxout_expand_expr) <RESULT_DECL>: Likewise.
	* var-tracking.c (vt_add_function_parameter): New, split out of...
	(vt_add_function_parameters): ... this.  Handle incoming
	pointer to hold result.

2010-12-22  Jie Zhang  <jie@codesourcery.com>

	* config/arm/arm.c (output_move_double): Update the comment
	above the function to reflect the current implementation.

2010-12-21  Steven Bosscher  <steven@gcc.gnu.org>

	De-hookize profile infrastructure.
	* value-prof.c (value_prof_hooks): Remove.
	(struct value_prof_hooks): Remove.
	(gimple_value_prof_hooks): Remove.
	(gimple_register_value_prof_hooks): Remove.
	(find_values_to_profile): Remove.
	(value_profile_transformations): Remove.
	(gimple_value_profile_transformations): No longer static.
	(gimple_find_values_to_profile): Likewise.
	* value-prof.h (gimple_register_value_prof_hooks): Remove prototype.
	(find_values_to_profile): Likewise.
	(value_profile_transformations): Likewise.
	(tree_register_profile_hooks): Likewise.
	(struct profile_hooks): Remove.
	(tree_profile_hooks): Remove.
	(gimple_find_values_to_profile): New protoype.
	(gimple_value_profile_transformations): Likewise.
	(gimple_init_edge_profiler): Likewise.
	(gimple_gen_edge_profiler): Likewise.
	(gimple_gen_interval_profiler): Likewise.
	(gimple_gen_pow2_profiler): Likewise.
	(gimple_gen_one_value_profiler): Likewise.
	(gimple_gen_ic_profiler): Likewise.
	(gimple_gen_ic_func_profiler): Likewise.
	(gimple_gen_const_delta_profiler): Likewise.
	(gimple_gen_average_profiler): Likewise.
	(gimple_gen_ior_profiler): Likewise.
	* profile.c (profile_hooks): Remove.
	(instrument_edges): Call profiling functions directly instead
	of through removed profile_hooks.
	(instrument_values): Likewise.
	(branch_prob): Call gimple_find_values_to_profile instead of
	removed find_values_to_profile.
	Call gimple_init_edge_profiler instead of removed hook.
	(tree_register_profile_hooks): Remove.
	* tree-profile.c (tree_init_ic_make_global_vars): Rename to
	init_ic_make_global_vars.
	(tree_init_edge_profiler): Rename to gimple_init_edge_profiler
	and no longer static.
	(tree_gen_edge_profiler, tree_gen_interval_profiler,
	tree_gen_pow2_profiler, tree_gen_one_value_profiler,
	tree_gen_ic_profiler, tree_gen_ic_func_profiler,
	tree_gen_const_delta_profiler, tree_gen_average_profiler,
	tree_gen_ior_profiler): Similarly renamed and no longer static.
	(tree_profiling): Do not initialize tree profiling hooks.
	(tree_profile_hooks): Remove.

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

	PR target/46880
	* config/i386/sse.md (sse2_loadlpd, sse2_movsd): Fix shufpd source
	operand.

2010-12-21  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/47001
	* tree-vect-slp.c (vect_supported_load_permutation_p): Check that
	the loads in reduction are different and there are no gaps between
	them.

2010-12-21  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/45310
	* tree-ssa-phiprop.c (propagate_with_phi): Remove statement
	completely from the function, including EH traces.

2010-12-21  Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/46755
	* ira.c (ira): If some dead edges were removed, find and delete
	any blocks that might have become unreachable.

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

	PR rtl-optimization/47008
	* postreload.c (reload_combine_note_store): Also handle
	PRE_MODIFY and POST_MODIFY.

2010-12-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/arm/arm.c (require_pic_register): Set INSN_LOCATOR for all
	instructions injected into the prologue to prologue_locator.

2010-12-21  Jan Hubicka   <jh@suse.cz>

	PR middle-end/47000
	* tree-inline.c (estimate_operator_cost): Handle VIEW_CONVERT_EXPR.

2010-12-21  Jie Zhang  <jie@codesourcery.com>

	* config/arm/arm-ldmstm.ml: Fix a typo in comment.

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

	PR middle-end/45852
	* expr.c (store_expr): Ignore alt_rtl if equal to target,
	but has side-effects.

2010-12-21  Anatoly Sokolov  <aesok@post.ru>

	* config/sh/sh.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/sh/sh-protos.h (secondary_reload_info, sh_secondary_reload):
	Remove forward declaration.
	* config/sh/sh.c (sh_preferred_reload_class): New function.
	(sh_secondary_reload): Make static.
	(TARGET_PREFERRED_RELOAD_CLASS): Define.

2010-12-20  Joseph Myers  <joseph@codesourcery.com>

	* config/alpha/linux.h (OPTION_GLIBC): Define differently if
	SINGLE_LIBC.
	* config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC):
	Define differently if SINGLE_LIBC.
	* config/rs6000/linux.h (OPTION_GLIBC): Define differently if
	SINGLE_LIBC.
	* config/rs6000/linux64.h (OPTION_GLIBC): Define differently if
	SINGLE_LIBC.
	* config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
	*-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu): Define
	SINGLE_LIBC instead of OPTION_GLIBC.
	(*-*-uclinux*): Define DEFAULT_LIBC and SINGLE_LIBC.
	(bfin*-uclinux*, moxie-*-uclinux*, m68k-*-uclinux*): Don't define
	DEFAULT_LIBC or use linux.opt.

2010-12-20  Richard Henderson  <rth@redhat.com>

	* config/mn10300/mn10300.c (mn10300_legitimize_pic_address): Generate
	UNSPEC patterns by hand, with the proper mode; use gen_const_mem.
	* config/mn10300/mn10300.md (call, call_value): Generate UNSPEC_PLT
	by hand, with the proper mode.
	(symGOT2reg, symGOT2reg_i, symGOTOFF2reg): Remove.
	(symGOTOFF2reg_i, sym2PIC, sym2PLT): Remove.

2010-12-20  Sanjin Liu	<scliu@faraday-tech.com>
	    Mingfeng Wu  <mingfeng@faraday-tech.com>

	* config/arm/arm-cores.def: Add Faraday CPU support -
	fa526/fa626/fa606te/fa626te/fmp626/fa726te.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm.c (arm_fa726te_tune): New tune_params for fa726te
	(fa726te_sched_adjust_cost): New cost function for fa726te.
	(arm_issue_rate): Add fa726te.
	* config/arm/arm.md (generic_sched): Add Faraday cores to generic_sched
	and include machine description files.
	* config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Add fa526 and fa626.
	* config/arm/t-arm (MD_INCLUDES): Include machine description files for
	Faraday cores.
	* config/arm/t-arm-elf: Add multilib option for Faraday cores.
	* config/arm/t-linux-eabi: Add multilib option for Faraday cores except
	fa526 and fa626.
	* doc/invoke.texi: Document -mcpu for Faraday cores.
	* config/arm/fa526.md: New file.
	* config/arm/fa606te.md: New file.
	* config/arm/fa626te.md: New file.
	* config/arm/fmp626.md: New file.
	* config/arm/fa726te.md: New file.

2010-12-20  Yvan Roux  <yvan.roux@st.com>

	* config/arm/lib1funcs.asm (ARM_DIV_BODY case __OPTIMIZE_SIZE__): Fix
	condition on IT instruction for early termination.

2010-12-20  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't define.
	(DBX_REGISTER_NUMBER): Define.
	* config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Define.
	* config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Define.
	* config/rs6000/sysv4.h (SIZE_TYPE): Define.
	(ASM_SPEC): Define without using SVR4_ASM_SPEC.
	(DBX_REGISTER_NUMBER): Undefine.
	* config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
	powerpc-*-eabisim*, powerpc-*-elf*, powerpc-*-eabialtivec*,
	powerpc-xilinx-eabi*, powerpc-*-eabi*, powerpc-*-rtems*,
	powerpc-*-linux* | powerpc64-*-linux*, powerpc64-*-gnu*,
	powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
	powerpc-wrs-vxworks|powerpc-wrs-vxworksae, powerpcle-*-elf*,
	powerpcle-*-eabisim*, powerpcle-*-eabi*): Don't use svr4.h.

2010-12-20  Iain Sandoe  <iains@gcc.gnu.org>
	    Jan Hubicka  <jh@suse.cz>

	PR middle-end/46916
	* opts.c (finish_options): Enable -freorder-functions
	when -freorder-blocks-and-partition is active.

2010-12-20  Iain Sandoe  <iains@gcc.gnu.org>

	PR c++/46904
	PR middle-end/46916
	PR target/46950
	* config/darwin.c (generating_for_darwin_version): New var.
	(darwin_text_section): Remove.
	(darwin_rodata_section): Do not check function section here.
	(darwin_emit_unwind_label): Do not emit for Darwin >= 9.
	Emit distinct labels for successive calls for the same decl.
	(darwin_override_options): Set generating_for_darwin_version.
	Add FIXME and disable -freorder-blocks-and-partition.
	Suppress automatic asynchronous unwind tables for m32.
	Switch off -freorder-blocks-and-partition when unwind tables
	will be generated.  Update to use generating_for_darwin_version.
	(darwin_function_section): Check for cases that need to be placed
	in coalesced sections.
	* config/darwin-sections.def: Define hot, cold, startup and
	exit sections for both coalesced and regular code.
	* config/darwin.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Delete.
	* config/darwin10.h (TARGET_ASM_EMIT_UNWIND_LABEL): Delete.

2010-12-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/cppopts.texi: Use @var when appropriate.
	* doc/extend.texi (Structure-Packing Pragmas): Likewise.
	* doc/gimple.texi (Logical Operators)
	(Adding a new GIMPLE statement code): Likewise.
	* doc/invoke.texi (Target Options, Precompiled Headers): Likewise.
	* doc/plugins.texi (Plugins): Likewise.

	* doc/install.texi (Configuration, Building, Testing, Specific):
	Remove leading whitespace from examples.

2010-12-19  Andi Kleen  <ak@linux.intel.com>

	PR lto/46905
	* collect2.c (main): Handle -fno-lto.
	* opts.c (common_handle_option): Handle -fno-lto.

2010-12-19  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/46729
	* config/sparc/sparc.h (GLOBAL_OFFSET_TABLE_REGNUM): New macro.
	(PIC_OFFSET_TABLE_REGNUM): Rewrite in terms of above macro.
	* config/sparc/sparc.c (pic_helper_needed): Delete.
	(global_offset_table): Likewise.
	(pic_helper_symbol): Rename to...
	(got_helper_rtx): ...this.
	(global_offset_table_rtx): New global variable.
	(sparc_got_symbol): Likewise.
	(sparc_got): New static function.
	(check_pic): Use local variable and call sparc_got.
	(sparc_tls_symbol): Initialize to NULL_RTX.
	(sparc_tls_got): In non-PIC mode, reload the GOT register for Sun TLS
	and 32-bit ABI and copy the GOT symbol to a new register otherwise.
	(get_pc_thunk_name): Rename local variable.
	(gen_load_pcrel_sym): New wrapper around load_pcrel_sym{si,di}.
	(load_pic_register): Rename to...
	(load_got_register): ...this.  Adjust and call gen_load_pcrel_sym.
	(sparc_expand_prologue): Do not test flag_pic.
	(sparc_output_mi_thunk): Use pic_offset_table_rtx directly.
	(sparc_file_end): Test got_helper_rtx instead of pic_helper_needed.
	Rename local variable and do not call get_pc_thunk_name again.
	* config/sparc/sparc.md (load_pcrel_sym): Add operand #3.

2010-12-19  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR middle-end/46674
	PR middle-end/46221
	* varasm.c (symbol_alias_set_t): New typedef for derived pointer_set
	wrapper class.
	(symbol_alias_set_create): New wrapper function.
	(symbol_alias_set_destroy): Likewise.
	(symbol_alias_set_contains): Likewise.
	(symbol_alias_set_insert): Likewise.
	(compute_visible_aliases): Use the above and return symbol_alias_set_t,
	not a pointer_set.
	(remove_unreachable_alias_pairs): Adjust likewise to match.
	(finish_aliases_1): Likewise.

2010-12-19  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/arm/arm.c (arm_legitimate_index_p): Add VFP load/store
	index range case. Change to SF/DFmode tests to avoid capturing HFmode.
	(thumb2_legitimate_index_p): Same.

2010-12-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/46969
	* tree-parloops.c (struct reduction_info): Add reduc_version.
	(reduction_info_hash): Return reduc_version field.
	(reduction_phi): Set reduc_version to gimple_uid (phi).
	(build_new_reduction): Set reduc_version to SSA_NAME_VERSION of
	phi result.
	(set_reduc_phi_uids): New function.
	(gather_scalar_reductions): Call it at the end through htab_traverse.

2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_objc_try_catch_finally_statement): Call
	objc_maybe_warn_exceptions.
	(c_parser_objc_synchronized_statement): Call
	objc_maybe_warn_exceptions.

2010-12-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/46985
	* tree-scalar-evolution.c (instantiate_scev_r): If chrec is NULL,
	return it immediately.

2010-12-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/46915
	* config/pa/pa.c (branch_to_delay_slot_p): Use next_active_insn instead
	of next_real_insn.  Search forward checking for both ASM_INPUT and
	ASM_OPERANDS asms until exit condition is found.
	(branch_needs_nop_p): Likewise.
	(use_skip_p): New function.
	(output_cbranch): Use use_skip_p.
	(output_bb, output_bvb): Likewise.

2010-12-18  Kai Tietz  <kai.tietz@onevision.com>

	PR target/36834
	* config/i386/i386.c (ix86_keep_aggregate_return_pointer):
	New local function.
	(ix86_return_pops_args): Use ix86_keep_aggregate_return_pointer
	function instead of KEEP_AGGREGATE_RETURN_POINTER.
	(ix86_handle_callee_pop_aggregate_return): New handler.
	(ix86_attribute_table): Add new attribute
	callee_pop_aggregate_return.
	* doc/extend.texi (callee_pop_aggregate_return): Add
	attribute documentation.

2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS):
	Only set sjlj exceptions for NeXT/m32.

2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION):
	Only expose when not building for target.

2010-12-17  Joseph Myers  <joseph@codesourcery.com>

	* config/netbsd.opt, config/netbsd-elf.opt: New files.
	* config.gcc (alpha*-*-netbsd*, arm*-*-netbsdelf*, arm*-*-netbsd*,
	i[34567]86-*-netbsdelf*, i[34567]86-*-netbsd*, x86_64-*-netbsd*,
	m68k*-*-netbsdelf*, mips*-*-netbsd*, powerpc-*-netbsd*,
	sh*-*-netbsd*, sparc-*-netbsdelf*, sparc64-*-netbsd*,
	vax-*-netbsdelf*, vax-*-netbsd*): Use these .opt files.

2010-12-17  Richard Henderson  <rth@redhat.com>

	* regcprop.c (find_oldest_value_reg): Continue search instead of
	failing if an element in the copy chain is of the wrong regclass.

2010-12-17  Paolo Bonzini  <bonzini@gnu.org>

	PR c/20385
	* function.c (used_types_insert): Handle ERROR_MARK.
	* c-decl.c (grokdeclarator): Handle ERROR_MARK.
	(declspecs_add_type): Leave error_mark_node in specs->type.
	(finish_declspecs): Change it to integer_type_node here.
	* c-parser.c (c_parser_peek_2nd_token): Move earlier.
	(enum c_lookahead_kind): New.
	(c_parser_next_token_starts_typename): New name of
	c_parser_next_tokens_start_typename.  Accept lookahead enum
	and handle it here instead of...
	(c_parser_next_tokens_start_declaration): ... here.  Call it.
	(c_parser_declspecs): Accept another argument.  Do not exit
	on C_ID_ID if it is guessed to be an unknown typename.
	(c_parser_parms_declarator): Use 2nd token to distinguish a K&R
	declaration from an ANSI declaration starting with an unknown
	typename.
	(c_parser_struct_declaration, c_parser_objc_type_name,
	c_parser_typeof_specifier, c_parser_declarator,
	c_parser_direct_declarator_inner): Adjust calls.
	(c_parser_parameter_declaration): Likewise.
	(c_parser_type_name): Pass back an error_mark_node to the caller.
	(c_parser_postfix_expression): Do error recovery when
	c_parser_type_name returns NULL.

2010-12-17  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/netware.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE): Define.
	* config/i386/nto.h (LIB_SPEC, ASM_SPEC): Define.
	(DBX_REGISTER_NUMBER): Undefine.
	* config/i386/sol2.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
	* config/i386/vxworksae.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE):
	Define.
	* config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
	i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
	i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
	x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
	i[3456x]86-*-netware*, i[34567]86-*-nto-qnx*,
	i[34567]86-*-solaris2*,
	i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae): Don't use svr4.h.

2010-12-17  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (move_or_delete_vzeroupper_2): Replace
	"BB [%i]" with "[bb %i]" in dump.
	(move_or_delete_vzeroupper_1): Likewise.
	(rescan_move_or_delete_vzeroupper): Likewise.  Always dump
	upper 128bit state at exit.

2010-12-17  Joseph Myers  <joseph@codesourcery.com>

	* config/interix.opt: New.
	* config/interix.h (LINK_SPEC): Don't handle -soname*.
	* config.gcc (i[34567]86-*-interix3*): Use interix.opt.

2010-12-17  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm.md (maddhisi4, *maddhidi4): Use the canonical
	operand order for plus.
	Drop redundant % from constraints.

2010-12-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/t-spu-elf (LIB2FUNCS_EXCLUDE): Add _floattisf and
	_floatunstisf.
	* config/spu/spu.md ("floattisf2"): New expander.
	("floatunstisf2"): New insn pattern and splitter.
	("cgt_ti_m1"): New insn pattern.

2010-12-17  Bernd Schmidt  <bernds@codesourcery.com>

	* config/arm/arm.c (arm_select_cc_mode): Before calling
	arm_select_dominance_cc_mode for AND or IOR operations, ensure
	that op is NE or EQ.

2010-12-17  Alexander Monakov  <amonakov@ispras.ru>

	PR middle-end/46761
	* graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Prefer
	to use unadjusted UB.

2010-12-17  Dodji Seketeli  <dodji@redhat.com>

	* dwarf2out.c (gen_type_die_with_usage): Do not try to emit debug
	info for a redundant typedef that has DECL_ORIGINAL_TYPE set. Use
	that underlying type instead.

2010-12-16  Jan Hubicka  <jh@suse.cz>

	PR middle-end/44563
	* ipa-inline.c: Update doplevel comment.
	(cgraph_estimate_size_after_inlining): Remove times attribute.
	(cgraph_mark_inline_edge): Update.
	(cgraph_mark_inline): Remove.
	(cgraph_estimate_growth): Update.
	(cgraph_check_inline_limits): Remove one only argument.
	(cgraph_edge_badness): Update.
	(cgraph_decide_recursive_inlining): Update.
	(cgraph_decide_inlining_of_small_function): Fix handling of
	tree_can_inline_p  and call_stmt_cannot_inline_p.
	(cgraph_flatten): Likewise.
	(cgraph_decide_inlining): Update.
	(cgraph_decide_inlining_incrementally): Fix handling of
	call_stmt_cannot_inline_p.

2010-12-16  Joseph Myers  <joseph@codesourcery.com>

	* config/darwin.opt (dylinker, headerpad_max_install_names,
	keep_private_externs, nofixprebinding, nomultidefs, noprebind,
	noseglinkedit, object, prebind, prebind_all_twolevel_modules,
	preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
	twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
	Driver options.
	* config/darwin.h (LINK_SPEC): Remove '*' after
	headerpad_max_install_names.

2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/46924
	* graphite-sese-to-poly.c (detect_commutative_reduction): Do not
	detect reductions outside the current SESE region.
	* sese.h (stmt_in_sese_p): New.
	(defined_in_sese_p): Call stmt_in_sese_p.

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

	PR tree-optimization/46966
	* graphite-sese-to-poly.c (build_scop_drs): Call free_gimple_bb for
	for bbs that are removed from SCOP_BBS vector.

2010-12-16  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-sccvn.c (vn_reference_lookup_3): Always punt if the call to
	get_ref_base_and_extent returns -1 as the max size.

2010-12-16  Konrad Eisele  <konrad@gaisler.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	Support for LEON processor
	* config.gcc (sparc-*-elf*): Deal with sparc-leon specifically.
	(sparc-*-linux*): Likewise.
	(sparc-*-rtems*): Remove Solaris left-overs.
	(sparc*-*-*): Remove obsolete sparc86x setting.
	(sparc-leon*): Default to --with-cpu=v8 and --with-tune=leon.
	* doc/invoke.texi (SPARC Options): Document -mcpu/-mtune=leon.
	* config/sparc/sparc.h (TARGET_CPU_leon): Define.
	(TARGET_CPU_sparc86x): Delete.
	(TARGET_CPU_cypress): Define as alias to TARGET_CPU_v7.
	(TARGET_CPU_f930): Define as alias to TARGET_CPU_sparclite.
	(TARGET_CPU_f934): Likewise.
	(TARGET_CPU_tsc701): Define as alias to TARGET_CPU_sparclet.
	(CPP_CPU_SPEC): Add entry for -mcpu=leon.
	(enum processor_type): Add PROCESSOR_LEON.  Reorganize.
	* config/sparc/sparc.c (leon_costs): New cost array.
	(sparc_option_override): Add entry for TARGET_CPU_leon and -mcpu=leon.
	Initialize cost array to leon_costs if -mtune=leon.
	* config/sparc/sparc.md (cpu attribute): Add leon.  Reorganize.
	Include leon.md scheduling description.
	* config/sparc/leon.md: New file.
	* config/sparc/t-elf: Do not assemble Solaris startup files.
	* config/sparc/t-leon: New file.
	* config/sparc/t-leon3: Likewise.

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

	PR tree-optimization/43655
	* tree-ssa-ter.c (is_replaceable_p): Don't use
	gimple_references_memory_p for -O0, instead check for load
	by looking at rhs.

2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/46404
	* graphite-clast-to-gimple.c (gloog): Call scev_reset.

2010-12-16  Anatoly Sokolov  <aesok@post.ru>

	* config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
	* config/sh/sh.c (sh_asm_output_addr_const_extra): New function.
	(TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.

2010-12-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define.
	* config/spu/spu.h (MIN_UNITS_PER_WORD): Do not define.
	(LIBGCC2_UNITS_PER_WORD): Define if not already defined.

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

	PR debug/46893
	* cfgexpand.c (expand_debug_expr): If GET_MODE (op0) is VOIDmode,
	use TYPE_MODE (TREE_TYPE (tem)) instead of mode1.

2010-12-16  Chung-Lin Tang  <cltang@codesourcery.com>

	PR target/46883
	* config/arm/arm.md
	(zero_extendhisi2 for register input splitter): Change
	"register_operand" to "s_register_operand".
	(zero_extendqisi2 for register input splitter): Same.

2010-12-16  Jan Hubicka  <jh@suse.cz>

	PR middle-end/46939
	* predic.c (predict_paths_leading_to_edge): New function.
	(apply_return_prediction): Use it.
	(predict_paths_for_bb): Do not special case abnormals.

2010-12-16  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (powerpc-*-lynxos*): Don't add lynx.opt to
	extra_options twice.

2010-12-15  Joseph Myers  <joseph@codesourcery.com>

	* doc/tm.texi.in (US_SOFTWARE_GOFAST): Don't document.
	* doc/tm.texi: Regenerate.
	* system.h (US_SOFTWARE_GOFAST): Poison.
	* config.gcc (enable_gofast): Don't handle.
	* config/gofast.h: Remove.
	* config/mips/t-gofast: Remove.
	* config/fp-bit.c (US_SOFTWARE_GOFAST): Don't handle.
	* config/fp-bit.h (US_SOFTWARE_GOFAST): Don't handle.
	* config/mips/elforion.h: Don't mention GOFAST in comment.
	* config/mips/mips.c: Don't include gofast.h.
	(mips_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
	* config/mips/t-sr71k (dp-bit.c, fp-bit.c): Don't define
	US_SOFTWARE_GOFAST.
	* config/sparc/sparc.c: Don't include gofast.h.
	(sparc_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
	* config/spu/t-spu-elf (dp-bit.c, fp-bit.c): Don't undefine
	US_SOFTWARE_GOFAST.

2010-12-14  Jan Hubicka  <jh@suse.cz>

	* config/darwin.opt (dylinker, headerpad_max_install_names,
	keep_private_externs, nofixprebinding, nomultidefs, noprebind,
	noseglinkedit, object, prebind, prebind_all_twolevel_modules,
	preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
	twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
	Driver options.
	* config/darwin.h (LINK_SPEC): Remove '*' after
	headerpad_max_install_names.

2010-12-14  Jan Hubicka  <jh@suse.cz>

	* tree.c (get_file_function_name): Avoid using random seed on
	GLOBAL_sub_I and GLOBAL_sub_D.

2010-12-15  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/46053
	PR middle-end/46287
	PR middle-end/46242
	* cgraph.h (cgraph_indirect_call_info): New field thunk_delta.
	* gimple.h (gimple_fold_obj_type_ref): Declaration removed.
	(gimple_fold_call): Declare.
	(gimple_adjust_this_by_delta): Likewise.
	* cgraph.c (cgraph_make_edge_direct): New parameter delta.  Updated
	all users.
	(cgraph_clone_edge): Create a copy of indirect_info also for direct
	edges.
	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Adjust this
	parameters.
	* gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Renamed to
	gimple_get_virt_mehtod_for_binfo, new parameter delta.  Do not search
	through thunks, in fact bail out if we encounter one, check that
	BINFO_VIRTUALS is not NULL.
	(gimple_adjust_this_by_delta): New function.
	(gimple_fold_obj_type_ref): Removed.
	(gimple_fold_obj_type_ref_call): New function.
	(fold_gimple_call): Renamed to gimple_fold_call, made external.
	Updated users.  Call gimple_fold_obj_type_ref_call instead of
	gimple_fold_obj_type_ref.
	* ipa-cp.c (ipcp_process_devirtualization_opportunities): Process
	thunk deltas.
	(ipcp_discover_new_direct_edges): Likewise.
	* ipa-prop.c (ipa_make_edge_direct_to_target): New parameter delta.
	Updated callers.
	(ipa_write_indirect_edge_info): Stream thunk_delta.
	(ipa_read_indirect_edge_info): Likewise.
	* tree-ssa-ccp.c (ccp_fold_stmt): Use gimple_fold_call instead of
	gimple_fold_obj_type_ref.

2010-12-15  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/46649
	* sel-sched-ir.c (purge_empty_blocks): Unconditionally skip the first
	basic block in the region.

2010-12-15  Joseph Myers  <joseph@codesourcery.com>

	* config/stormy16/stormy16.h (LINK_SPEC, WCHAR_TYPE): Define.
	* config.gcc (xstormy16-*-elf): Don't use svr4.h.

2010-12-15  Joseph Myers  <joseph@codesourcery.com>

	* config/rx/rx.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
	* config.gcc (rx-*-elf*): Don't use svr4.h.

2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/46845
	* sese.c (scalar_evolution_in_region): Handle scop parameters
	before scev analysis.

2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/46928
	* tree-data-ref.c (analyze_overlapping_iterations): Handle A[p] == A[p]
	in data dependence analysis with p a parameter of the loop.

2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/45948
	* tree-loop-distribution.c (ssa_name_has_uses_outside_loop_p): New.
	(stmt_has_scalar_dependences_outside_loop): New.
	(stmt_generated_in_another_partition): New.
	(add_scalar_computations_to_partition): New.
	(rdg_build_partitions): Call add_scalar_computations_to_partition.

2010-12-14  Joseph Myers  <joseph@codesourcery.com>

	* config/arc/arc.h (LIB_SPEC): Define.
	* config.gcc (arc-*-elf*): Don't use svr4.h.

2010-12-14  Joseph Myers  <joseph@codesourcery.com>

	* config/sh/elf.h (LIB_SPEC): Define.
	* config.gcc (sh-*-elf* | sh[12346l]*-*-elf* | sh-*-symbianelf* |
	sh[12346l]*-*-symbianelf* | sh-*-linux* | sh[2346lbe]*-*-linux* |
	sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* |
	sh5l*-*-netbsd* | sh64-*-netbsd* | sh64l*-*-netbsd*, sh-*-rtems*,
	sh-wrs-vxworks): Don't use svr4.h.

2010-12-14  Jan Hubicka  <jh@suse.cz>

	PR lto/46940
	PR lto/44463
	* lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Construct nodes
	for aliases when they are used.

2010-12-14  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (sparc-*-elf*, sparc-*-rtems*, sparc-*-linux*,
	sparc-*-netbsdelf*, sparc*-*-solaris2*, sparc-wrs-vxworks,
	sparc64-*-elf*, sparc64-*-rtems*, sparc64-*-linux*,
	sparc64-*-netbsd*, sparc64-*-openbsd*): Don't use svr4.h.

2010-12-14  Thomas Klein  <th.r.klein@web.de>

	* config/arm/arm.c (arm_expand_prologue): Report the static stack
	size if -fstack-usage is used.
	(thumb1_expand_prologue): Likewise.

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

	PR debug/46885
	* tree-ssa-loop-manip.c (canonicalize_loop_ivs): Use gsi_last_bb
	instead of gsi_last_nondebug_bb if bump_in_latch.

	PR tree-optimization/46909
	* gimple-fold.c (and_var_with_comparison_1): Save partial
	result even in the is_and case, if both partial results
	are the same, return it.
	(or_var_with_comparison_1): Use is_or predicate instead of
	innercode == TRUTH_OR_EXPR test.  Save partial result
	even in the is_or case, if both partial results are the
	same, return it.  In the !is_or case when both partial
	results are the same, return the partial result instead
	of boolean_true_node.

2010-12-14  Jan Hubicka  <jh@suse.cz>

	PR middle-end/46667
	* varasm.c (assemble_start_function): Do not call
	resolve_unique_section.
	* cfgexpand.c (gimple_expand_cfg): Resolve it here.

2010-12-14  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/46875
	* sched-vis.c (print_pattern): Dump "sequence" for ADDR_VECs.
	* sel-sched-ir.c (bb_has_removable_jump_to_p): Forbid table jumps.

2010-12-14  Kaushik Phatak <kaushik.phatak@kpitcummins.com>

	* config/h8300/h8300.md (define_split) : Add condition for
	"and with single_zero" splitter to handle 16-bit const operands.
	* config/h8300/h8300.md (define_split) : Add condition for
	"ior with single_one" splitter to handle 16-bit const operands.
	* config/h8300/h8300.md (define_split) : Add condition for
	"xor with single_one" splitter to handle 16-bit const operands.
	* testsuite/gcc.dg/h8300-bit-insn-ice.c: New.

2010-12-13  Jan Hubicka  <jh@suse.cz>

	PR middle-end/45388
	* ipa.c (cgraph_build_static_cdtor_1): Break out from ...  Add FINAL
	parameter.
	(cgraph_build_static_cdtor): ... here.
	(build_cdtor): Use cgraph_build_static_cdtor_1.

2010-12-13  Joseph Myers  <joseph@codesourcery.com>

	* config/m32c/m32c.h (ENDFILE_SPEC, LINK_SPEC, SIZE_TYPE,
	PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
	* config.gcc (m32c-*-rtems*, m32c-*-elf*): Don't use svr4.h.

2010-12-14  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/44374
	Reapply patch with fixes.
	* basic-block.h (enum bb_flags): Add BB_MODIFIED.
	* df-core.c (df_set_bb_dirty): Set it.
	* ifcvt.c (find_memory): Remove function.
	(dead_or_predicable): Use can_move_insns_across.
	* df.h (can_move_insns_across): Declare function.
	* cfgcleanup.c (block_was_dirty): New static variable.
	(flow_find_head_matching_sequence): Test for epilogue notes.
	(try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
	than df_get_bb_dirty.
	(try_head_merge_bb): New static function.
	(try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
	is set.
	* df-problems.c: Include "target.h"
	(df_simulate_find_uses): New static function.
	(MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
	(find_memory, find_memory_store): New static functions.
	(can_move_insns_across): New function.
	* Makefile.in (df-problems.o): Update dependencies.

2010-12-13  Joseph Myers  <joseph@codesourcery.com>

	* config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
	(DBX_REGISTER_NUMBER): Undefine.
	* config/xtensa/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
	(DBX_REGISTER_NUMBER): Undefine.
	* config.gcc (xtensa*-*-elf*, xtensa*-*-linux*): Don't use svr4.h.

2010-12-13  Jack Howarth <howarth@bromo.med.uc.edu>
	    Joseph Myers <joseph@codesourcery.com>

	PR bootstrap/46650
	* system.h: Include cstring for cxx bootstrap.

2010-12-13  Jakub Jelinek  <jakub@redhat.com>

	PR lto/46879
	* lto-streamer-out.c (output_gimple_stmt): Never replace first
	GIMPLE_DEBUG argument with MEM_REF.

	PR debug/46867
	* var-tracking.c (emitted_notes, string_pointer_flags): Removed.
	(emit_note_insn_var_location): Remove ENABLE_RTL_CHECKING verification.
	(vt_emit_notes): Don't initialize and destroy emitted_notes.

2010-12-13  Nathan Froyd  <froydnj@codesourcery.com>

	PR target/46040
	* config.gcc (arm*-*-linux-*eabi): Use bpabi-lib.h.
	(arm*-*-uclinux*eabi, arm*-*-eabi*): Likewise.

2010-12-13  Joseph Myers  <joseph@codesourcery.com>

	* config/v850/v850.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
	WCHAR_TYPE_SIZE): Define.
	* config.gcc (v850e1-*-*, v850e-*-*, v850-*-*): Don't use svr4.h.

2010-12-13  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (s390-*-linux*, s390x-*-linux*, s390x-ibm-tpf*):
	Don't use svr4.h.

2010-12-13  Joseph Myers  <joseph@codesourcery.com>

	* config/mn10300/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
	WCHAR_TYPE_SIZE): Undefine.
	* config/mn10300/mn10300.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
	WCHAR_TYPE_SIZE): Define.
	* config.gcc (mn10300-*-*): Don't use svr4.h.

2010-12-13  Joseph Myers  <joseph@codesourcery.com>

	* config/m68k/linux.h (DBX_REGISTER_NUMBER): Undefine and redefine.
	(SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
	* config.gcc (m68k-*-uclinux*, m68k-*-linux*): Don't use svr4.h.

2010-12-13  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/46756
	* jump.c (mark_all_labels): Skip debug insns.

2010-12-13  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/46782
	* cfgcleanup.c (try_forward_edges): Skip debug insns.

2010-12-12  Jan Hubicka  <jh@suse.cz>
	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* varasm.c (default_function_section): Check flag_reorder_functions
	and targetm.have_named_sections.
	* config/darwin.c (darwin_function_section): Check
	flag_reorder_functions.

2010-12-12  Finn Thain  <fthain@telegraphics.com.au>

	PR target/46179
	* config/m68k/m68k.c (handle_move_double): Insert calls to
	m68k_final_prescan_insn to clean up @TLS operand syntax.

2010-12-10  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/43023
	* tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p):
	Removed.
	(stores_zero_from_loop): Call stmt_stores_zero.
	* tree-data-ref.h (stmt_stores_zero): New.
	* tree-loop-distribution.c (generate_memset_zero): Do not return a
	boolean.  Call gcc_assert on stride_of_unit_type_p.
	(generate_builtin): Call stmt_stores_zero.
	(rdg_flag_all_uses): Removed.
	(rdg_flag_similar_memory_accesses): Removed.
	(build_rdg_partition_for_component): Removed parameter
	other_stores.  Removed call to rdg_flag_similar_memory_accesses.
	(can_generate_builtin): New.
	(similar_memory_accesses): New.
	(fuse_partitions_with_similar_memory_accesses): New.
	(rdg_build_partitions): Call
	fuse_partitions_with_similar_memory_accesses.

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

	PR rtl-optimization/46804
	* regmove.c (optimize_reg_copy_3): Look for REG_EQUAL note
	on the setter of src_reg rather than on insn.  If it is
	equal to the setter's original SET_SRC, replace it with its
	zero or sign extension instead of dropping it.

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

	PR lto/46808
	* lto-symtab.c (lto_symtab_merge_decls_2): Avoid type warnings
	after errors.
	(lto_symtab_merge_decls_1): Adjust.

2010-12-10  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR middle-end/46674
	PR lto/43157
	* target.def (mangle_assembler_name): New target asm_out hook.
	* targhooks.c (default_mangle_assembler_name): Add default hook
	implementation.
	* targhooks.h (default_mangle_assembler_name): Add prototype.
	* lto-symtab.c (lto_symtab_register_decl): Use new hook when
	processing DECL_ASSEMBLER_NAMEs for lto symtabs.
	(lto_symtab_get_resolution): Likewise.
	(lto_cgraph_replace_node): Likewise.
	(lto_symtab_prevailing_decl): Likewise.
	* lto-streamer-out.c (write_symbol): Likewise.
	* doc/tm.texi.in (TARGET_MANGLE_ASSEMBLER_NAME): Add @hook directive.
	* doc/tm.texi: Regenerate.
	* config/i386/cygming.h (TARGET_MANGLE_ASSEMBLER_NAME): Define to
	point at i386_pe_mangle_assembler_name.
	* config/i386/winnt.c (i386_pe_mangle_assembler_name): New function.
	* config/i386/i386-protos.h (i386_pe_mangle_assembler_name): Add
	prototype.

2010-12-10  Nathan Froyd  <froydnj@codesourcery.com>

	* c-typeck.c (readonly_error): Delete.

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

	PR rtl-optimization/46865
	* rtl.c (rtx_equal_p_cb, rtx_equal_p): For last operand of
	ASM_OPERANDS and ASM_INPUT if integers are different, call locator_eq.
	* jump.c (rtx_renumbered_equal_p): Likewise.

	PR tree-optimization/46864
	* tree-ssa-loop-im.c (loop_suitable_for_sm): Return false even
	when there are EDGE_EH exit edges.

2010-12-10  Tobias Burnus  <burnus@net-b.de>

	PR fortran/46540
	* configure.ac: Handle --disable-libquadmath-support.
	* doc/install.texi: Document --disable-libquadmath and
	--disable-libquadmath-support
	* configure: Regenerate.
	* config.in: Regenerate.

2010-12-10  Jack Howarth  <howarth@bromo.med.uc.edu>
	    Iain Sandoe  <iains@gcc.gnu.org>

	PR 43751/target
	* config/darwin9.h (DSYMUTIL_SPEC): Add fortran source types.

2010-12-10  Iain Sandoe <iains@gcc.gnu.org>

	* config/rs6000/rs6000.c
	(rs6000_darwin64_record_arg_advance_recurse): Name register increment
	explicitly.  (rs6000_darwin64_record_arg_recurse): Make sure we split
	long doubles when we run out of regs.   Also flag that this requires
	stack and therefore cannot be returned by value.
	(rs6000_darwin64_record_arg): Update comment.
	(rs6000_function_value): Likewise.

2010-12-10  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_objc_class_definition): Recognize
	Objective-C 2.0 class extensions.

2010-12-10  Iain Sandoe <iains@gcc.gnu.org>

	* config/darwin.c: Remove c-tree.h and c-lang.h
	* config/t-darwin: Remove dependencies on c-tree.h and c-lang.h.

2010-12-10  Joern Rennecke  <amylaar@spamcop.net>

	PR target/46881
	* doc/tm.texi: Regenerate.
	* target.def: Fix "preferred" spelling.  Refer to rclass by its
	exact name.
	* config/arm/arm.c (arm_preferred_rename_class): Rename parameter class
	to rclass.

2010-12-09  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11-protos.h (output_move_double,
	output_move_quad): Delete.
	(output_move_multiple, pdp11_expand_operands): New functions.
	(pdp11_action, pdp11_partorder): New enums.
	* config/pdp11/pdp11.md (movdi, movsi, movdf, movsf): Use
	output_move_multiple.
	(adddi3, subdi3, negdi2): New patterns.
	(addsi3, subsi3, negsi2): Use pdp11_expand_operands.
	(abshi2): Delete.
	(neghi2, negqi2): Use PDPint iterator.
	* config/pdp11/pdp11.c (find_addr_reg, output_move_double,
	output_move_quad): Delete.
	(pdp11_expand_operands, output_move_multiple): New functions.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/vax/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
	* config.gcc (vax-*-linux*): Don't use svr4.h.

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

	* c-typeck.c (build_indirect_ref): Call invalid_indirection_error.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* doc/extend.texi (Attribute Syntax): Correct description of
	attributes in pointer declarators.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/mips/vxworks.h (DBX_REGISTER_NUMBER): Undefine.
	* config.gcc (mips64*-*-linux* | mipsisa64*-*-linux*,
	mips*-*-linux*, mips-wrs-vxworks): Don't use svr4.h.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/mep/mep.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
	WCHAR_TYPE_SIZE): Define.
	* config.gcc (mep-*-*): Don't use svr4.h.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/mcore/mcore.h (PTRDIFF_TYPE, WCHAR_TYPE,
	WCHAR_TYPE_SIZE): Define.
	* config/svr3.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
	WCHAR_TYPE_SIZE): Don't define.
	* config.gcc (mcore-*-elf): Don't use svr4.h.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (m32r-*-elf*, m32rle-*-elf*, m32r-*-rtems*,
	m32r-*-linux*, m32rle-*-linux*): Don't use svr4.h.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/iq2000/iq2000.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
	WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
	* config.gcc (iq2000*-*-elf*): Don't use svr4.h.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (ia64*-*-linux*, ia64*-*-hpux*): Don't use svr4.h.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/pa/pa32-linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
	* config.gcc (hppa*64*-*-linux*, hppa*-*-linux*): Don't use svr4.h.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/moxie/moxie.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
	WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
	* config/moxie/rtems.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
	WCHAR_TYPE, WCHAR_TYPE_SIZE): Undefine.
	* config.gcc (moxie-*-elf, moxie-*-uclinux*): Don't use svr4.h.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/frv/frv.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
	WCHAR_TYPE_SIZE): Define.
	* config.gcc (frv-*-elf, frv-*-*linux*): Don't use svr4.h.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/fr30/fr30.h (LIB_SPEC, LINK_SPEC, SIZE_TYPE,
	PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
	* config.gcc (fr30-*-elf): Don't use svr4.h.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/cris/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
	* config.gcc (crisv32-*-linux* | cris-*-linux*): Don't use svr4.h.

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

	PR middle-end/46844
	* gimple-fold.c (canonicalize_constructor_val): Canonicalize addresses.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/netware.h (TARGET_POSIX_IO): Define.
	* config/i386/nto.h (TARGET_POSIX_IO): Define.
	* config/ia64/hpux.h (TARGET_POSIX_IO): Define.
	* config/moxie/moxie.h (TARGET_POSIX_IO): Don't undefine.
	* config/openbsd.h (TARGET_POSIX_IO): Define.
	* config/rtems.h (TARGET_POSIX_IO): Define.
	* config/sh/embed-elf.h (TARGET_POSIX_IO): Don't undefine.
	* config/sol2.h (TARGET_POSIX_IO): Define.
	* config/svr4.h (TARGET_POSIX_IO): Don't define.
	* config/vxworksae.h (TARGET_POSIX_IO): Define.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/nto.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
	* config/ia64/hpux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
	* config/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
	undefine.
	* config/mips/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
	undefine.
	* config/mips/netbsd.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
	Don't undefine.
	* config/rs6000/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
	Don't undefine.
	* config/rs6000/linux64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
	Don't undefine.
	* config/sol2.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
	* config/sparc/netbsd-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
	Don't undefine.
	* config/sparc/openbsd64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
	Don't undefine.
	* config/sparc/sp64-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
	Don't undefine.
	* config/svr4.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't define.
	* config/xtensa/elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
	undefine.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/ia64/hpux.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
	non-GNU assembler.
	* config/m68k/netbsd-elf.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
	* config/m68k/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
	* config/mips/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
	* config/sol2.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
	non-GNU assembler.
	* config/sparc/sparc.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
	* config/svr4.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.

2010-12-09  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (compute_complex_ancestor_jump_func): Work also if the
	zero is the first phi parameter.

2010-12-09  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (struct ipa_parm_adjustment): New field alias_ptr_type.
	* ipa-prop.c (ipa_modify_call_arguments): Use it.
	* tree-sra.c (splice_param_accesses): Test that all accesses have the
	same alias reference type.
	(turn_representatives_into_adjustments): Set alias_ptr_type of the
	adjustment.

2010-12-09  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/46734
	* tree-sra.c (splice_param_accesses): Check that there are not
	multiple ADDRESSABLE types.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/arc/arc.h (ASM_SPEC): Remove %{v}.
	* config/bfin/bfin.h (ASM_SPEC): Remove %{v}.
	* config/cris/cris.h (ASM_SPEC): Remove %{v:-v}.
	* config/fr30/fr30.h (ASM_SPEC): Remove %{v}.
	* config/frv/frv.h (ASM_SPEC): Remove %{v}.
	* config/i386/linux.h (ASM_SPEC): Remove %{v}.
	* config/i386/linux64.h (ASM_SPEC): Remove %{v}.
	* config/i386/mingw-w64.h (ASM_SPEC): Remove %{v}.
	* config/i386/sol2-10.h (ASM_SPEC): Remove %{v}.
	* config/i386/vxworks.h (ASM_SPEC): Remove %{v}.
	* config/i386/x86-64.h (ASM_SPEC): Remove %{v}.
	* config/lm32/lm32.h (ASM_SPEC): Remove %{v}.
	* config/m32r/m32r.h (ASM_SPEC): Remove %{v}.
	* config/m68k/linux.h (ASM_SPEC): Remove %{v:-V}.
	* config/microblaze/microblaze.h (ASM_SPEC): Remove %{v}.
	* config/mips/mips.h (ASM_SPEC): Remove %{v}.
	* config/mips/vxworks.h (ASM_SPEC): Remove %{v}.
	* config/pa/pa-linux.h (ASM_SPEC): Remove %{v:-V}.
	* config/rs6000/freebsd.h (SVR4_ASM_SPEC): Remove %{v}.
	* config/rs6000/linux64.h (ASM_SPEC): Remove %{v:-V}.
	* config/rs6000/vxworks.h (ASM_SPEC): Remove %{v:-v}.
	* config/sparc/openbsd64.h (ASM_SPEC): Remove %{v:-V}.
	* config/svr4.h (SVR4_ASM_SPEC): Remove %{v:-V}.
	* config/xtensa/elf.h (ASM_SPEC): Remove %{v}.
	* config/xtensa/linux.h (ASM_SPEC): Remove %{v}.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/openbsdelf.h (LINK_SPEC): Use %{r:} not %{r*:}.
	* config/mips/openbsd.h (LINK_SPEC): Use %{r:} not %{r*:}.
	* config/netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): Use %{r:} not %{r*:}.
	* config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Use %{r:} not %{r*:}.
	* config/sparc/openbsd64.h (LINK_SPEC): Use %{r:} not %{r*:}.
	* config/vax/netbsd-elf.h (LINK_SPEC): Use %{r:} not %{r*:}.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/alpha/freebsd.h (LINK_SPEC): Don't use %{!dynamic-linker:}.
	* config/alpha/linux-elf.h (LINK_SPEC): Likewise.
	* config/arm/freebsd.h (LINK_SPEC): Likewise.
	* config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Likewise.
	* config/bfin/linux.h (LINK_SPEC): Likewise.
	* config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Likewise.
	* config/frv/linux.h (LINK_SPEC): Likewise.
	* config/i386/freebsd.h (LINK_SPEC): Likewise.
	* config/i386/freebsd64.h (LINK_SPEC): Likewise.
	* config/i386/linux.h (LINK_SPEC): Likewise.
	* config/i386/linux64.h (LINK_SPEC): Likewise.
	* config/i386/openbsdelf.h (LINK_SPEC): Likewise.
	* config/ia64/freebsd.h (LINK_SPEC): Likewise.
	* config/ia64/linux.h (LINK_SPEC): Likewise.
	* config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
	* config/m32r/linux.h (LINK_SPEC): Likewise.
	* config/m68k/linux.h (LINK_SPEC): Likewise.
	* config/microblaze/linux.h (LINK_SPEC): Likewise.
	* config/mips/linux.h (LINK_SPEC): Likewise.
	* config/mips/linux64.h (LINK_SPEC): Likewise.
	* config/mips/openbsd.h (LINK_SPEC): Likewise.
	* config/mn10300/linux.h (LINK_SPEC): Likewise.
	* config/netbsd-elf.h (LINK_SPEC): Likewise.
	* config/pa/pa-linux.h (LINK_SPEC): Likewise.
	* config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
	LINK_OS_LINUX_SPEC64): Likewise.
	* config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC,
	LINK_OS_LINUX_SPEC, LINK_OS_GNU_SPEC, LINK_OS_NETBSD_SPEC): Likewise.
	* config/s390/linux.h (LINK_SPEC): Likewise.
	* config/sh/linux.h (SUBTARGET_LINK_SPEC): Likewise.
	* config/sparc/freebsd.h (LINK_SPEC): Likewise.
	* config/sparc/linux.h (LINK_SPEC): Likewise.
	* config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
	LINK_SPEC): Likewise.
	* config/sparc/openbsd64.h (LINK_SPEC): Likewise.
	* config/vax/linux.h (LINK_SPEC): Likewise.
	* config/xtensa/linux.h (LINK_SPEC): Likewise.

2010-12-09  Joseph Myers  <joseph@codesourcery.com>

	* config/bfin/bfin.h (ASM_SPEC): Remove %{n} and %{T}.
	* config/frv/frv.h (ASM_SPEC): Likewise.
	* config/i386/sol2-10.h (ASM_SPEC): Likewise.
	* config/i386/sol2.h (ASM_SPEC): Likewise.
	* config/m68k/linux.h (ASM_SPEC): Likewise.
	* config/pa/pa-linux.h (ASM_SPEC): Likewise.
	* config/rs6000/linux64.h (ASM_SPEC32): Likewise.
	* config/rs6000/vxworks.h (ASM_SPEC): Likewise.
	* config/sol2.h (ASM_SPEC): Likewise.
	* config/sparc/linux.h (ASM_SPEC): Likewise.
	* config/sparc/linux64.h (ASM_SPEC): Likewise.
	* config/sparc/sp-elf.h (ASM_SPEC): Likewise.
	* config/sparc/sysv4.h (ASM_SPEC): Likewise.
	* config/svr4.h (SVR4_ASM_SPEC): Likewise.

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

	* reginfo.c (struct subregs_of_mode_node): Remove.
	(subregs_of_mode): Likewise.
	(som_hash): Likewise.
	(som_eq): Likewise.
	(invalid_mode_changes): New bitmap.
	(record_subregs_of_mode): Get subregs_of_mode argument.
	Fill in invalid_mode_changes bitmap.
	(find_subregs_of_mode): Get subregs_of_mode argument and pass
	it through.
	(init_subregs_of_mode): Adjust.
	(finish_subregs_of_mode): Likewise.
	(invalid_mode_change_p): Query invalid_mode_changes bitmap.

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

	* ira.c (ira): Do not call finish_subregs_of_mode.
	* ira-costs.c (finish_costs): Call finish_subregs_of_mode.

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

	* rtl.h (invalid_mode_change_p): Adjust prototype.
	* reginfo.c (invalid_mode_change_p): Remove from argument.
	* ira-costs.c (print_allocno_costs): Adjust callers.
	(find_costs_and_classes): Likewise.

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

	* config/s390/s390.md (*mov<mode>cc): Change lgoc and stgoc to
	locg and stocg even in comment.
	(sync_old_<atomic><mode>): Give mode to UNSPEC_VOLATILE.

	PR target/41082
	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Use stvx
	instead of stve*x.
	(altivec_expand_stv_builtin): For op0 use mode of operand 1 instead
	of operand 0.
	* config/rs6000/altivec.md (VI_scalar): New mode attr.
	(altivec_stve<VI_char>x, *altivec_stvesfx): Use scalar instead of
	vector mode for operand 0, put operand 1 into UNSPEC.

2010-12-09  Yao Qi  <yao@codesourcery.com>

	* config/arm/arm.c (arm_preferred_rename_class): Implement targethook
	PREFERRED_RENAME_CLASS.

2010-12-08  Ian Lance Taylor  <iant@google.com>

	* doc/sourcebuild.texi (Front End): Remove reference to
	snapshot-README and snapshot-index.html.

2010-12-08  Ian Lance Taylor  <iant@google.com>

	* doc/sourcebuild.texi (Texinfo Manuals): Change update_web_docs
	to update_web_docs_svn.
	(Front End): Likewise.

2010-12-08  Iain Sandoe <iains@gcc.gnu.org>

	* gcc/config.gcc (with_cpu): Default i[34567]86-*-darwin* and
	x86_64-*-darwin* to with_cpu:-core2.
	* gcc/config/i386/mmx.md (*mov<mode>_internal_rex64): Replace movq
	with movd for darwin assembler.
	* gcc/config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
	(*vec_concatv2di_rex64_sse): Ditto.

2010-12-08  Richard Guenther  <rguenther@suse.de>
	    Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/45230
	PR tree-optimization/45231
	PR tree-optimization/45370
	* sese.c (rename_uses): Returns a bool.  Call
	recompute_tree_invariant_for_addr_expr only on the RHS of a
	GIMPLE_ASSIGN.
	(graphite_copy_stmts_from_block): Call fold_stmt_inplace when
	rename_uses returns true.
	* tree-ssa-copy.c (replace_exp): Add a comment about calling
	fold_stmt_inplace after replace_exp.

2010-12-08  Mike Stump  <mikestump@comcast.net>

	PR debug/46749
	* config/darwin.h (COLLECT_RUN_DSYMUTIL): Add.
	(DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
	* config/darwin9.h (COLLECT_RUN_DSYMUTIL): Add.
	(DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
	* collect2.c (post_ld_pass): Add.
	(process_args): Add.
	(maybe_run_lto_and_relink): Call post_ld_pass after ld.
	(main): Likewise.  Call process_args.

2010-12-08  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/46844
	* regrename.c (check_new_reg_p): Add ATTRIBUTE_UNUSED to reg parameter.

2010-12-08  Richard Earnshaw  <rearnsha@arm.com>

	PR target/46631
	* arm.c (thumb2_reorg): Also try to reduce <commutative_op> Rd, Rn, Rd
	into a 16-bit instruction.

2010-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR middle-end/42694
	* builtins.c (expand_builtin_pow_root): Don't optimize pow(x,y)
	where y is 0.25, 1./6., or 0.75 if the target does not have a sqrt
	instruction, but do optimize if y is 0.5 or 1./3. since that
	changes an expensive call into a cheaper one.

2010-12-08  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use a shift
	instead of a division to divide by BITS_PER_UNIT.

2010-12-08  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (gimple_tree_eq): Assert hashes are equal only
	when checking is enabled.

2010-12-07  Andrey Belevantsev  <abel@ispras.ru>

	PR target/43603
	* haifa-sched.c (sched_create_recovery_edges): Update
	dominator info.
	* sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info
	after deleting an empty block.
	(tidy_control_flow): Also verify dominators.
	(sel_remove_bb): Update dominator info after removing a block.
	(sel_redirect_edge_and_branch_force): Assert that no unreachable
	blocks will be created. Update dominator info.
	(sel_redirect_edge_and_branch): Update dominator info when
	basic blocks do not become unreachable.
	(sel_remove_loop_preheader): Update dominator info.

2010-12-07  Richard Guenther  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
	Reset alignment information.
	(bump_vector_ptr): Likewise.

2010-12-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/46671
	PR target/46685
	* config/pa/pa.c (pa_function_section): New function.
	(TARGET_ASM_FUNCTION_SECTION): Define.

2010-12-07  Ian Lance Taylor  <iant@google.com>
	    Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/46810
	* configure.ac: Disable AC_MSG_ERROR while looking for the C++
	preprocessor.
	* configure: Rebuild.

2010-12-07  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative
	values with sign rather than as unsigned.

2010-12-07  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_SECTION): Define.
	(pdp11_function_section): New function.

2010-12-07  Joseph Myers  <joseph@codesourcery.com>

	* config/mcore/mcore.c Don't include assert.h.
	(layout_mcore_frame, handle_structs_in_regs): Use gcc_assert.
	* config/spu/spu.c: Don't include assert.h.
	(spu_sms_res_mii): Use gcc_assert.

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

	PR tree-optimization/42327
	* tree-data-ref.c (omega_setup_subscript): Call build_int_cst
	instead of using integer_minus_one_node.

2010-12-07  Nathan Froyd  <froydnj@codesourcery.com>

	PR c++/45330
	* params.def (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP): New parameter.
	* doc/invoke.texi (cxx-max-namespaces-for-diagnostic-help): Document.

2010-12-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46832
	* tree-ssa-math-opts.c (execute_optimize_widening_mul): Check
	that the call has a lhs.

2010-12-07  Yao Qi  <yao@codesourcery.com>

	* Makefile.in: Add $(TARGET_H) to the regrename.o rule.
	* regrename.c (struct du_head): Add new element length.
	(sort_du_head, get_element, merge, merge_sort_comparison):
	New functions of merge sort implementation to du_head list.
	(regrename_optimize): Sort du_head linked list by length.
	Iterate registers in a preferred-register-first order.
	Move some code to ...
	(check_new_reg_p): here.  New function.
	(create_new_chain):  Initialize length.
	(scan_rtx_reg): Increase length for non-debug insns.
	* target.def: New hook preferred_rename_class.
	* targhook.c (default_preferred_rename_class): New.
	* targhook.h: Declare it.
	* doc/tm.texi.in: New hook TARGET_PREFERRED_RENAME_CLASS.
	* doc/tm.texi: Regenerate.

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

	PR debug/46799
	* tree-parloops.c (separate_decls_in_region): Use UNKNOWN_LOCATION
	instead of BUILTINS_LOCATION.
	(create_loop_fn): Add LOC argument, pass it to build_decl instead of
	BUILTINS_LOCATION.
	(create_parallel_loop): Add LOC argument, use it for OMP clauses
	and GIMPLE_*OMP* statements.
	(gen_parallel_loop): Determine locus for the parallel loop, pass it
	to create_loop_fn and create_parallel_loop.
	* cfgexpand.c (gimple_expand_cfg): For builtin functions, call
	set_curr_insn_source_location (UNKNOWN_LOCATION).

2010-12-07  Joern Rennecke  <amylaar@spamcop.net>
	    Richard Guenther  <rguenther@suse.de>

	PR target/46737
	* config/bfin/bfin.c (BB_AUX_INDEX): Cast to intptr_t.
	(bfin_reorder_loops): Change type of index to intptr_t.

2010-12-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46726
	* tree-inline.c (estimate_num_insns): Special case pow (x, 2.0).

2010-12-07  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-math-opts.c (execute_optimize_widening_mul): Unlink
	virtual operands.

2010-12-07  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_typeof_specifier): Removed special
	treatment of objc_volatilized attribute for Objective-C.

2010-12-06  Vladimir Makarov  <vmakarov@redhat.com>

	* ira.c (update_equiv_regs): Prohibit move insns if
	pressure-sensitive scheduling was done.

2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
	of c_process_expr_stmt() for the iterating and collection
	expressions of an Objective-C fast enumeration loop.

2010-12-06  Jakub Jelinek  <jakub@redhat.com>

	PR debug/45997
	* dwarf2out.c (modified_type_die): If both is_const_type and
	is_volatile_type is set, start with DW_TAG_const_type or
	DW_TAG_volatile_type depending on where we get qualified type
	in the recursive call.

	PR target/43897
	* config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
	as a store into that register.

	PR tree-optimization/46528
	PR debug/46338
	* profile.c (branch_prob): Make sure last is never set to a debug
	stmt.

	PR debug/46771
	* reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
	on DEBUG_INSNs.

	PR rtl-optimization/46777
	* cfglayout.c (duplicate_insn_chain): Avoid duplicating
	also barrier after tablejump.

2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
	    Richard Henderson  <rth@redhat.com>

	PR target/46740
	* config/vax/vax.c (vax_output_int_move): Fold #if into if.

2010-12-06  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
	* config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.

2010-12-06  Joern Rennecke  <amylaar@spamcop.net>

	PR target/46735
	* config/frv/predicates.md (gpr_or_int12_operand): Use IN_RANGE.
	(gpr_fpr_or_int12_operand, gpr_or_int10_operand): Likewise.
	(int12_operand, int_2word_operand, uint16_operand): Likewise.
	(fpr_or_int6_operand, int6_operand, int5_operand): Likewise.
	(uint5_operand, uint4_operand): Likewise.
	* config/frv/frv.h (IN_RANGE_P): Delete.
	(GPR_P, FPR_P, CC_P, ICC_P, FCC_P, CR_P, ICR_P, FCR_P): Use IN_RANGE.
	(ACC_P, ACCG_P, SPR_P, CONST_OK_FOR_I, CONST_OK_FOR_J): Likewise.
	(CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
	(CONST_OK_FOR_P): Likewise.
	* config/frv/frv.md (*movqicc_internal2_int): Likewise.
	(*movqicc_internal2_float, *movhicc_internal2_int): Likewise.
	(*movhicc_internal2_float, *movsicc_internal2_int): Likewise.
	(*movsicc_internal2_float, casesi): Likewise.
	* config/frv/frv.c (frv_frame_offset_rtx): Likewise.
	(frv_asm_output_mi_thunk, frv_legitimate_address_p_1): Likewise.
	(frv_emit_movsi, output_move_single, frv_emit_cond_move): Likewise.
	(frv_split_cond_move, frv_rtx_costs): Likewise.

	PR target/46739
	* config/mmix/mmix.c (mmix_intval): Split shift count.

2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (m_COREI7): New.
	(initial_ix86_tune_features): Turn on
	X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
	X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for Core i7.

2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc: Allow corei7-avx for --with-arch/--with-cpu.

	* config/i386/driver-i386.c (host_detect_local_cpu): Support
	Sandy Bridge.

	* config/i386/i386.c (override_options): Handle "corei7-avx".

	* doc/invoke.texi: Document corei7-avx.

2010-12-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46806
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
	coalesce different types.

2010-12-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46785
	* tree-vect-loop.c (vect_is_simple_reduction_1): Also allow
	call statements as operand definition.

2010-12-06  Mingjie Xing  <mingjie.xing@gmail.com>

	* doc/tm.texi.in: Fix typo.
	* doc/tm.texi: Regenerate.

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

	* config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
	last change.

2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-family/c-common.h: Removed the declarations of all the objc_
	callbacks, and moved them into c-objc.h.  Removed
	objc_ivar_visibility_kind and moved it into c-objc.h.
	* c-family/c-objc.h: New file.
	* c-family/c-common.c: Include c-objc.h.
	* c-family/c-format.c: Same change.
	* c-family/stub-objc.c: Same change.
	* c-decl.c: Include c-family/c-objc.h.
	* c-parser.c: Same change.
	* c-typeck.c: Same change.
	* c-config-lang.in (gtfiles): Added c-family/c-objc.h.
	* Makefile.in (c-decl.o): Depend on c-family/c-objc.h.
	(c-parser.o): same change.
	(c-typeck.o): Same change.
	(c-family/c-format.o): Same change.
	(c-family/stub-objc.o): Same change.
	(c-family/c-common.o): Same change.
	(PLUGIN_HEADERS): Added c-family/c-objc.h.

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

	* config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]:  Ignore
	--with-dwarf2 option.

2010-12-03  Jan Hubicka  <jh@suse.cz>

	* lto-streamer-in.c (input_cfg): Fix pasto.

2010-12-03  Jan Hubicka  <jh@suse.cz>

	* ipa.c (cgraph_externally_visible_p): Do not localize builtins
	and functions with user asm defined names.
	(varpool_externally_visible_p): Do not localize vars with user
	asm defined names.

2010-12-03  Jan Hubicka  <jh@suse.cz>

	* dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
	to prevent mangling with lto frontend.

2010-12-03  Jan Hubicka  <jh@suse.cz>

	* Makefile.in (LTO_STREAMER_H): Add GCOV_IO_H.
	* lto-cgraph.c (merge_profile_summaries): Fix thinko.

2010-12-03  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/46760
	* cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
	* cgraph.h (struct cgraph_node): Add count_materialization_scale.
	* lto-cgraph.c (lto_output_edge): Fix assert.
	(lto_output_node): Output count_materialization_scale.
	(output_profile_summary): Output only runs and sum_max.
	(input_node): Input count_materialization_scale.
	(input_profile_summary): Read data into file specific gcov summary.
	(merge_profile_summaries): New function.
	(input_cgraph): Update call of input_profile_summary;
	call merge_profile_summaries.
	* lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
	rescale counts at read in.
	(intput_bb): Likewise.
	(input_function): Update call of input_bb.
	(lto_read_body): Update call of input_cfg.
	* lto-streamer.h: Inlclude gcov-io.h
	(lto_file_decl_data): Add gcov_ctr_summary.

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

	* doc/tm.texi.in (Cond. Exec. Macros): Rename node from this ...
	(Cond Exec Macros): ... to this.
	* doc/tm.texi: Regenerate.

2010-12-03  Jason Merrill  <jason@redhat.com>

	PR debug/46123
	* dwarf2out.c (gen_tagged_type_die): Don't put local types in
	a declaration DIE.

2010-12-03  Nathan Froyd  <froydnj@codesourcery.com>

	* config/arm/arm.c (arm_legitimate_index_p): Split
	VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases.  Permit
	slightly larger constants in the latter case.
	(thumb2_legitimate_index_p): Likewise.

2010-12-03  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
	* gcc.c (cc1_options): Add %{Qy:}.

2010-12-03  Joseph Myers  <joseph@codesourcery.com>

	* gcc.c (LINK_COMMAND_SPEC): Don't handle -A, -d or -m.
	* config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
	* config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.

2010-12-03  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/45354
	* sel-sched-ir.c (jump_leads_only_to_bb_p): Rename to ...
	(bb_has_removable_jump_to_p): This.  Update all callers. Make static.
	Allow BBs ending with a conditional jump.  Forbid EDGE_CROSSING jumps.
	* sel-sched-ir.h (jump_leads_only_to_bb_p): Delete prototype.

2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* basic-block.h (struct edge_prediction): Remove forward declaration.
	* tree-flow.h (struct edge_prediction): Move from here...
	* predict.c (struct edge_prediction): ...to here.
	* cselib.h (struct elt_list): Move from here...
	* cselib.c (struct elt_list): ...to here.

2010-12-02  Ian Lance Taylor  <iant@google.com>

	* gcc.c (default_compilers): Add entry for ".go".
	* common.opt: Add -static-libgo as a driver option.
	* doc/install.texi (Configuration): Mention libgo as an option for
	--enable-shared.  Mention go as an option for --enable-languages.
	* doc/invoke.texi (Overall Options): Mention .go as a file name
	suffix.  Mention go as a -x option.
	* doc/frontends.texi (G++ and GCC): Mention Go as a supported language.
	* doc/sourcebuild.texi (Top Level): Mention libgo.
	* doc/standards.texi (Standards): Add section on Go language.
	Move references for other languages into their own section.
	* doc/contrib.texi (Contributors): Mention that I contributed the
	Go frontend.

2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* tree.h (struct call_expr_arg_iterator_d): Remove GTY tag.
	(const_call_expr_arg_iterator_d): Likewise.
	(expanded_location): Likewise.
	* c-tree.h (struct c_arg_tag_d): Likewise.
	* dwarf2out.c (struct cfa_loc): Likewise.
	(struct skeleton_chain_struct): Likewise.
	* except.c (struct ttypes_filter): Likewise.
	* cselib.h (struct cselib_val_struct): Likewise.
	(elt_loc_list): Likewise.
	(elt_list): Likewise.
	* varasm.c (struct addr_const): Likewise.
	* tree-flow.h (struct edge_prediction): Likewise.
	(struct int_tree_map): Likewise.
	(struct _edge_var_map): Likewise.

2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/46768
	* config/i386/i386.c (initial_ix86_tune_features): Turn on
	X86_TUNE_INTER_UNIT_MOVES for Core 2 and Core i7.

2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc: Allow corei7 for --with-arch=/--with-cpu=.

2010-12-02  Ian Lance Taylor  <iant@google.com>

	* configure.ac: AC_DEFINE ENABLE_BUILD_WITH_CXX.  Check for C++
	header files unordered_map, tr1/unordered_map, and ext/hash_map.
	* configure, config.in: Rebuild.

2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/46685
	* config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
	(sparc_expand_move): Call it to decide whether to emit the special
	mov{si,di}_pic_label_ref patterns.
	(sparc_legitimize_pic_address): Call it to decide whether to emit
	the regular PIC sequence for labels.  Fix long line.
	(sparc_file_end): Set is_thunk for the PIC helper.

2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
	for a non-shared type.

2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/45297
	* tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
	with MEM_REFs as POINTER_PLUS_EXPR.

2010-12-02  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
	config/sparc/linux.h, config/sparc/linux64.h: Remove comments
	mentioning /lib/elf.

2010-12-02  Joseph Myers  <joseph@codesourcery.com>

	* config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
	* config/frv/frv.h (LINK_SPEC): Remove %{b}.
	* config/i386/netware.h (LINK_SPEC): Remove %{b}.
	* config/i386/nto.h (LINK_SPEC): Remove %{b}.
	* config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
	* config/sol2.h (LINK_SPEC): Remove %{b}.
	* config/svr4.h (LINK_SPEC): Remove %{b}.

2010-12-02  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/freebsd.h (LINK_SPEC): Cut long comment.
	* config/i386/linux.h (LINK_SPEC): Cut long comment.
	* config/i386/netware.h (LINK_SPEC): Remove %{V}.
	* config/m32r/linux.h (LINK_SPEC): Cut long comment.
	* config/m68k/linux.h (LINK_SPEC): Cut long comment.
	* config/sparc/linux.h (LINK_SPEC): Cut long comment.
	(ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
	* config/sparc/linux64.h (LINK_SPEC): Cut long comment.
	(ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
	* config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.

2010-12-02  Joseph Myers  <joseph@codesourcery.com>

	* gcc.c (trad_capable_cpp, default_compilers): Don't handle
	-ftraditional.

2010-12-02  Joseph Myers  <joseph@codesourcery.com>

	* config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
	* config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
	* config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
	* config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
	* config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
	* config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
	* config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
	* config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
	* config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
	* config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
	* config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
	* config/sol2.h (ASM_SPEC): Don't handle -Wa,.
	* config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
	* config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
	* config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
	* config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
	* config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
	* config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.

2010-12-02  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.c (output_jump): Map unsigned to signed
	opcodes if CC_NO_OVERFLOW is set.
	(notice_update_cc_on_set): Correct setting of CC0 as a side
	effect; set CC_NO_OVERFLOW for cases where C flag is not meaningful.

2010-12-02  Ian Lance Taylor  <iant@google.com>

	* doc/install.texi (Configuration): Update default for
	--with-boot-ldflags.

2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>

	PR c/45062
	* c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
	!funcdef_flag.

2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/45199
	* tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
	(stores_zero_from_loop): Call
	mem_write_stride_of_same_size_as_unit_type_p.
	* tree-data-ref.h (stride_of_unit_type_p): New.
	* tree-loop-distribution.c (generate_memset_zero): Simplified.
	Call stride_of_unit_type_p.
	(build_rdg_partition_for_component): Do not call
	rdg_flag_similar_memory_accesses when
	flag_tree_loop_distribute_patterns is set.

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

	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
	sign-changing conversions for induction detection.

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

	PR tree-optimization/46723
	* tree-vect-loop.c (get_initial_def_for_induction): Strip
	conversions from the induction evolution and apply it to
	the result instead.
	* tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
	assigns for induction defs.

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

	* value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
	the case we need to split the edge and not the block.

2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>

	DFA model for Core 2 and Core i7 scheduling.

	* config/i386/core2.md: New DFA model for Core 2 and Core i7.
	* config/i386/i386.c (ix86_option_override_internal): Update entries
	for Core 2 and Core i7.
	(ix86_issue_rate): Set issue rate to 3 [be realistic].
	* config/i386/i386.md: Include "core2.md".
	(define_attr cpu): Add "corei7".

2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>

	Define tuning for Core 2 and Core i7.

	* config/i386/i386-c.c (ix86_target_macros_internal): Update.
	* config/i386/i386.c (core2_cost): Delete, use generic costs instead.
	(m_CORE2): Replace with m_CORE2_{32,64}.
	(m_CORE2I7{,_32,_64}): New macros.
	(m_GENERIC32, m_GENERIC64): Update.
	(initial_ix86_tune_features, x86_accumulate_outgoing_args,)
	(x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
	set m_CORE2I7_64 iff m_GENERIC64.
	(processor_target_table): Use generic costs for Core 2 and Core i7.
	(ix86_option_override_internal): Update entries for Core 2 and Core i7.
	(ix86_issue_rate): Remove entry for Core 2.
	(ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
	* config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
	(TARGET_CORE2): Update.
	(PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
	(PROCESSOR_CORE2): Remove.

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

	* lto-streamer.h (LTO_major_version): Bump to 2.

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

	PR lto/44871
	* gimple.c (canonical_type_hash_cache): New hashtable.
	(gimple_type_hash): Make a wrapper around ...
	(gimple_type_hash_1): ... this.  Take gtc_mode argument.
	(gimple_canonical_type_hash): Likewise.
	(gtc_visit): Take a gtc_mode argument.
	(gimple_types_compatible_p_1): Likewise. Do not compare struct
	tag names or field names when computing canonical types.
	(gimple_types_compatible_p): Adjust.
	(visit): Take a gtc_mode argument.
	(iterative_hash_gimple_type): Likewise.  Do not hash struct tag
	names or field names when computing hashes of canonical types.
	(gimple_register_canonical_type): Use gimple_canonical_type_hash
	for the hash.
	(print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
	(free_gimple_type_tables): Free canonical_type_hash_cache.

2010-12-02  Richard Guenther  <rguenther@suse.de>
	    Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/46663
	* tree-vect-patterns.c (vect_recog_pow_pattern): Check that
	FUNCTION_DECL exists and that it's a builtin.

2010-12-02  Jie Zhang  <jie@codesourcery.com>

	PR middle-end/46674
	* varasm.c (compute_visible_aliases): Handle user set assembler name.

2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
	thinko regarding setting -mno-<xxx> debug switches.
	(rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.

2010-12-01  Joseph Myers  <joseph@codesourcery.com>

	* intl.c: Don't include tm.h.
	* Makefile.in (intl.o): Don't depend on $(TM_H).

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

	* graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
	unused warning.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Same.

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

	* graphite-sese-to-poly.c (analyze_drs): Removed.
	(build_scop_drs): Do not call analyze_drs.
	(analyze_drs_in_stmts): New.
	(insert_stmts): New.
	(insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
	(insert_out_of_ssa_copy_on_edge): Same.
	(rewrite_close_phi_out_of_ssa): Call insert_stmts.
	(rewrite_phi_out_of_ssa): Same.
	(rewrite_cross_bb_scalar_dependence): Same.
	(split_reduction_stmt): Move data references in the new basic blocks.
	(translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.

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

	* sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.

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

	PR middle-end/45297
	* graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
	the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
	* graphite-poly.h (new_poly_bb): Update declaration.
	(gbb_from_bb): Moved here...
	(pbb_from_bb): New.
	* graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
	Removed.
	(graphite_stmt_p): Removed.
	(try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
	sbitmap reductions.  Always build a gimple_bb_p.  Do not call
	new_poly_bb.
	(build_scop_bbs_1): Do not pass in sbitmap reductions.
	(build_scop_bbs): Same.
	(gbb_from_bb): ... from here.
	(add_conditions_to_constraints): Moved up.
	(analyze_drs): New.
	(build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
	not contain data references.
	(new_pbb_from_pbb): New.
	(insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
	block is split.
	(rewrite_close_phi_out_of_ssa): Update call to
	insert_out_of_ssa_copy_on_edge.
	(rewrite_reductions_out_of_ssa): Now static.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
	(split_pbb): New.
	(split_reduction_stmt): Call split_pbb.
	(translate_scalar_reduction_to_array): Pass in the scop, do not
	pass in the sbitmap reductions.
	(rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
	(rewrite_commutative_reductions_out_of_ssa_loop): Same.
	(rewrite_commutative_reductions_out_of_ssa): Same.
	(build_poly_scop): Call build_scop_bbs,
	rewrite_commutative_reductions_out_of_ssa,
	rewrite_reductions_out_of_ssa, and
	rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
	before scop_to_lst.
	* graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
	Removed declaration.
	(rewrite_reductions_out_of_ssa): Same.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
	(build_scop_bbs): Same.
	* graphite.c (graphite_transform_loops): Do not initialize reductions.
	Do not call build_scop_bbs,
	rewrite_commutative_reductions_out_of_ssa,
	rewrite_reductions_out_of_ssa, and
	rewrite_cross_bb_scalar_deps_out_of_ssa.
	* sese.h (struct gimple_bb): Add field pbb.
	(GBB_PBB): New.

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

	* graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
	New.
	(rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
	handle_scalar_deps_crossing_scop_limits.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
	after the scop.  Update call to rewrite_cross_bb_scalar_deps.

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

	* sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
	when replacing a constant in an ADDR_EXPR.

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

	* graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
	for the stride.
	(lst_do_strip_mine): Same.
	(scop_do_strip_mine): Same.
	* graphite-poly.c (apply_poly_transforms): Update call to
	scop_do_strip_mine.
	* graphite-poly.h (scop_do_strip_mine): Update declaration.

2010-12-01  Jan Hubicka  <jh@suse.cz>

	* tree.c (build_common_builtin_nodes): Do not initialize
	BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
	* builtins.c (expand_builtin_profile_func): Remove.
	(expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
	BUILT_IN_PROFILE_FUNC_EXIT.
	* builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
	(__cyg_profile_func_enter, __cyg_profile_func_exit): New.
	* gimplify.c (gimplify_function_tree): Reorganize code calling
	profiling functions.

2010-12-01  Joseph Myers  <joseph@codesourcery.com>

	* opts.c: Expand comment on tm.h include.

2010-12-01  Yao Qi  <yao@codesourcery.com>

	* config/arm/predicates.md ("vfp_register_operand"): Return true for
	VFP_D0_D7_REGS classes.

2010-12-01  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (flag_stack_check): New Variable entry.
	(fcompare-debug-second): Use Var.
	* flags.h (flag_compare_debug, flag_stack_check): Remove.
	* opts.c (flag_compare_debug): Remove.
	(common_handle_option): Don't handle OPT_fcompare_debug_second.
	Set opts->x_flag_stack_check for OPT_fstack_check_.
	* toplev.c (flag_stack_check): Remove.

2010-12-01  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (main_input_filename, main_input_basename,
	main_input_baselength): New Variable entries.  From toplev.c.
	* final.c (output_quoted_string): Move from toplev.c.
	* output.h (output_quoted_string): Move from toplev.h.
	* opts-global.c (read_cmdline_options): Use gcc_options pointer to
	access main_input_filename, main_input_baselength and
	main_input_basename.
	* targhooks.c: Include intl.h and opts.h.
	(option_affects_pch_p, default_get_pch_validity): Move from toplev.c.
	* targhooks.h (option_affects_pch_p, default_get_pch_validity):
	Move from toplev.h.
	* toplev.c (main_input_filename, main_input_basename,
	main_input_baselength): Move to common.opt.
	(output_quoted_string): Move to final.c.
	(warn_deprecated_use): Move to tree.c.
	(option_affects_pch_p, default_get_pch_validity,
	pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
	* toplev.h (skip_leading_substring): Move to tree-dump.c.
	(warn_deprecated_use): Move to tree.h.
	(output_quoted_string): Move to output.h.
	(main_input_filename, main_input_basename, main_input_baselength):
	Move to common.opt.
	(default_get_pch_validity, default_pch_valid_p): Move to targhooks.c.
	* tree-dump.c (skip_leading_substring): Move from toplev.h.
	* tree.c (warn_deprecated_use): Move from toplev.c.
	* tree.h (warn_deprecated_use): Move from toplev.h.
	* c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
	config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
	config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
	config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
	config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
	config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
	config/mcore/mcore.c, config/mep/mep.c,
	config/microblaze/microblaze.c, config/mips/mips.c,
	config/mmix/mmix.c, config/mn10300/mn10300.c,
	config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
	config/picochip/picochip.c, config/s390/s390.c,
	config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
	config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
	config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
	graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
	varasm.c, xcoffout.c: Don't include toplev.h.
	* Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
	gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
	varasm.o, xcoffout.o): Update dependencies.
	* config/arm/t-arm (arm.o): Update dependencies.
	* config/spu/t-spu-elf (spu.o): Update dependencies.

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

	PR tree-optimization/46730
	* value-prof.c (gimple_ic): Always generate a separate merge BB.

2010-11-30  Ian Lance Taylor  <iant@google.com>

	* config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
	all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
	* config/i386/linux64.h (ASM_SPEC): Likewise.
	* config/i386/mingw-w64.h (ASM_SPEC): Likewise.
	* config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
	* config/i386/vxworks.h (ASM_SPEC): Likewise.
	* config/i386/x86-64.h (ASM_SPEC): Likewise.
	* config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
	* config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.

2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-decl.c (finish_function): Call objc_finish_function in
	Objective-C.
	* c-typeck.c (convert_for_assignment): Do not call
	objc_type_quals_match().

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

	PR tree-optimization/46722
	* tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
	operands as arguments.
	(execute_optimize_widening_mul): Also handle power of two as
	multiplication.

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

	PR middle-end/46709
	* cgraphunit.c (process_function_and_variable_attributes): Fix
	cut'n'pasteo.

2010-11-30  Joseph Myers  <joseph@codesourcery.com>

	* hwint.c:  New.  Extracted from toplev.c.
	* hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
	Move from toplev.h.
	* toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
	Move to hwint.c.
	* toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
	Move to hwint.h.
	* builtins.c, combine.c, config/i386/winnt.c, double-int.c,
	explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
	ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
	real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
	stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
	tree-ssa-loop-niter.c, tree-vect-data-refs.c,
	tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
	tree-vrp.c: Don't include toplev.h.
	* genattrtab.c, genconditions.c, genemit.c, genextract.c,
	genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
	toplev.h in generated output.
	* Makefile.in (OBJS-common): Add hwint.o.
	Dependencies for above files changed to remove toplev.h.
	(hwint.o): New.
	(insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
	insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on toplev.h.
	* config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
	* config/i386/t-interix (winnt.o): Don't depend on toplev.h.

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

	PR tree-optimization/46717
	* value-prof.c (gimple_ic): Preserve EH edges of the indirect
	call.  Manually create EH edges for the direct call and update
	target PHI nodes.

2010-11-30  Joseph Myers  <joseph@codesourcery.com>

	* diagnostic-core.h: Include bversion.h.
	* toplev.h: Don't include input.h or bversion.h.
	(parse_optimize_options): Don't declare here.
	* alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
	caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
	combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
	config/host-darwin.c, config/i386/host-cygwin.c,
	config/i386/host-mingw32.c, config/i386/msformat-c.c,
	config/i386/netware.c, config/i386/nwld.c,
	config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
	config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
	config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
	config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
	config/score/score3.c, config/score/score7.c,
	config/sh/symbian-base.c, config/sh/symbian-c.c,
	config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
	config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
	cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
	fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
	graphite-blocking.c, graphite-clast-to-gimple.c,
	graphite-dependences.c, graphite-flattening.c,
	graphite-interchange.c, graphite-poly.c,
	graphite-scop-detection.c, graphite.c, haifa-sched.c,
	implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
	ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
	lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
	lto-opts.c, lto-section-in.c, lto-section-out.c,
	lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
	params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
	regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
	sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
	sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
	tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
	tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
	tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
	tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
	tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
	tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
	include toplev.h.
	* Makefile.in (TOPLEV_H): Remove.  All uses changed to use
	toplev.h.  Dependencies for above files and c-family files changed
	to remove $(TOPLEV_H) or toplev.h.
	(C_TREE_H): Don't include $(TOPLEV_H).
	(DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
	bversion.h.
	* config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
	config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
	config/t-darwin, config/t-sol2,
	config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
	Dependencies for above files changed to remove $(TOPLEV_H) or
	toplev.h.

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

	PR lto/44986
	* gcc.c (main): Use the first input with a compiler as infile
	for link spec processing.

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

	PR lto/45949
	* cgraphunit.c (ipa_passes): Stop after errors from small IPA passes.

2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>

	* gcc-plugin.h: Include coretypes.h.
	* Makefile.in (FUNCTION_H): Add hard-reg-set.h.

2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* ggc-zone.c (ggc_pch_read): Fix conditional compilation.
	* ggc-none.c (ggc_internal_alloc_zone_stat)
	(ggc_internal_cleared_alloc_zone_stat): New.

2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>

	* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
	TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
	(rs6000_emit_prologue): Don't set PIC register if
	TARGET_SINGLE_PIC_BASE.
	* config/rs6000/rs6000.opt (msingle-pic-base): New option.
	* doc/invoke.texi (msingle-pic-base): Document.

2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/46712
	* exec-tool.in (id): New.
	Check and export LT_RCU_$id instead of LT_RCU.

2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>

	PR tree-optimization/46675
	* tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
	in offset calculation.

2010-11-29  Jan Hubicka  <jh@suse.cz>

	* collect2.c (main): Do not imply verbose output with
	LTO and linker plugin.

2010-11-29  Dodji Seketeli  <dodji@redhat.com>

	* dwarf2out.c (print_die): Print the address of the current DIE or
	of any DIE referenced by the current one.

2010-11-29  Dodji Seketeli  <dodji@redhat.com>

	PR debug/46101
	* dwarf2out.c (lookup_type_die_strip_naming_typedef): New function.
	(scope_die_for, gen_type_die_for_member): Replace uses of
	lookup_type_die with use of lookup_type_die_strip_naming_typedef.

2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin.c (darwin_mergeable_string_section): Remove blank line.
	(darwin_asm_declare_object_name): Correct spelling.
	(darwin_output_aligned_bss): Likewise.

2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
	    Mike Stump  <mrs@gcc.gnu.org>

	PR target/26427
	PR target/33120
	PR testsuite/35710
	* config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
	(ASM_OUTPUT_LOCAL): Likewise.
	* config/darwin-protos.h (darwin_asm_declare_object_name): New.
	(darwin_output_aligned_bss): Likewise.
	(darwin_asm_output_aligned_decl_local): Likewise.
	(darwin_asm_output_aligned_decl_common): Likewise.
	(darwin_use_anchors_for_symbol_p): Likewise.
	* config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
	(TARGET_ASM_OUTPUT_ANCHOR): Define.
	(TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
	(DARWIN_SECTION_ANCHORS): Set to 1.
	* config/darwin.c (emit_aligned_common): New var.
	(darwin_init_sections): Check that the Darwin private zero-size section
	marker is in range.
	(darwin_text_section): Check for zero-sized objects.
	(darwin_mergeable_string_section): Likewise.
	(darwin_mergeable_constant_section): Likewise.
	(machopic_select_section): Adjust to check for zero-sized objects.
	Assert that OBJC meta data are non-zero sized.
	(darwin_asm_declare_object_name): New.
	(darwin_asm_declare_constant_name): Adjust for zero-sized
	object sections.
	(BYTES_ZFILL): Define.
	(darwin_emit_weak_or_comdat): New.
	(darwin_emit_local_bss): New.
	(darwin_emit_common): New.
	(darwin_output_aligned_bss): New.
	(darwin_asm_output_aligned_decl_common): New.
	(darwin_asm_output_aligned_decl_local): New.
	(darwin_file_end): Disable subsections_via_symbols when section
	anchoring is active.
	(darwin_asm_output_anchor): Re-enable.
	(darwin_use_anchors_for_symbol_p): New.
	(darwin_override_options): Check for versions that can emit
	aligned common.  Update usage of flags to current.
	* config/darwin-sections.def: Update comments and flags for
	non-anchor sections.  zobj_const_section, zobj_data_section,
	zobj_bss_section, zobj_const_data_section: New.
	* config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
	(ASM_OUTPUT_ALIGN): Make whitespace output consistent.
	(L2_MAX_OFILE_ALIGNMENT): Define.
	(ASM_OUTPUT_ALIGNED_BSS): Define.
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
	(ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
	(SECTION_NO_ANCHOR): Define.
	(TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
	(DARWIN_SECTION_ANCHORS): Define with a default of 0.

2010-11-29  Joseph Myers  <joseph@codesourcery.com>

	* system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
	Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
	(O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
	Conditionally define.
	(GET_ENVIRONMENT): Poison.
	* configure.ac: Don't test for mincore.
	* configure: Regenerate.
	* config.in: Regenerate.
	* collect2-aix.c: Don't include <sys/mman.h>.
	* collect2.c: Don't include <signal.h>.
	(SIGCHLD): Don't define.
	(prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
	* config/alpha/alpha.c: Include "splay-tree.h" instead of
	<splay-tree.h>.
	* config/arm/arm.c (arm_target_help): Use getenv instead of
	GET_ENVIRONMENT.
	* config/avr/driver-avr.c: Don't include <stdlib.h>.
	* config/frv/frv.c: Don't include <ctype.h>.
	* config/host-darwin.c: Don't include <sys/mman.h>.
	* config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
	(MAP_FAILED): Don't define.
	* config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
	* config/host-solaris.c: Don't include <sys/mman.h>.
	* config/i386/cygming.h: Don't include <stdio.h>.
	* config/i386/driver-i386.c: Don't include <stdlib.h>.
	* config/i386/host-cygwin.c: Don't include <sys/mman.h>.
	* config/iq2000/iq2000.c: Don't include <signal.h>.
	* config/m32c/m32c-pragma.c: Don't include <stdio.h>.
	* config/m68hc11/m68hc11.c: Don't include <stdio.h>.
	* config/mep/mep-pragma.c: Don't include <stdio.h>.
	* config/microblaze/microblaze.c: Don't include <signal.h>.
	* config/mips/mips.c: Don't include <signal.h>.
	* config/rs6000/host-darwin.c: Don't include <signal.h>.
	* cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
	* defaults.h (GET_ENVIRONMENT): Don't define.
	* et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
	* gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
	(SIGCHLD, MAP_FAILED, kill): Don't define.
	(process_command): Use getenv instead of GET_ENVIRONMENT.
	* genhooks.c: Don't include <string.h>.
	* ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
	<sys/types.h>.
	(MAP_FAILED): Don't define.
	* ggc-page.c Don't include <sys/mman.h>.
	(MAP_ANONYMOUS, MAP_FAILED): Don't define.
	* ggc-zone.c: Don't include <sys/mman.h>.
	(MAP_ANONYMOUS, MAP_FAILED): Don't define.
	* graph.c: Include "config.h" instead of <config.h>.
	* incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
	* lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
	(SIGCHLD, kill): Don't define.
	* mips-tfile.c: Don't include <signal.h>.
	* opts.c: Don't include <signal.h> or <sys/resource.h>.
	(print_specific_help): Use getenv instead of GET_ENVIRONMENT.
	* passes.c: Don't include <signal.h>, <sys/resource.h> or
	<sys/times.h>.
	* sparseset.h: Don't include <assert.h>.
	* timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
	* tlink.c: Don't include "libiberty.h".
	* toplev.c: Don't include <signal.h> or <sys/times.h>.
	* tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
	* tree-switch-conversion.c: Don't include <signal.h>.
	* vmsdbgout.c: Don't include <errno.h> or <string.h>.

2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_objc_try_catch_statement): Renamed to
	c_parser_objc_try_catch_finally_statement for consistency with the
	C++ parser.  Parse @catch(...) and pass NULL_TREE to
	objc_begin_catch_clause() in that case.  Improved error recovery.
	Reorganized code to be almost identical to
	cp_parser_objc_try_catch_finally_statement.

2010-11-29  Joern Rennecke  <amylaar@spamcop.net>

	PR tree-optimization/46621
	* gimple.h: Don't include tm.h or hard-reg-set.h .
	* Makefile.in (GIMPLE_H): Remove $(TM_H).

	PR bootstrap/44756
	* cppbuiltin.c: Include target.h .
	(define_builtin_macros_for_type_sizes):
	Use targetm.float_words_big_endian.

2010-11-27  Jan Hubicka  <jh@suse.cz>

	* dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
	and output cold_text_section_label.
	(dwarf2out_init): Don't do that there.
	(dwarf2out_finish): Handle cold section end label only if cold
	section was used.

2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-nested.c (remap_vla_decls): Fully expand value expressions of
	VLA variables.

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

	* gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
	(gimple_assign_ssa_name_copy_p): Likewise.
	(gimple_assign_unary_nop_p): Use is_gimple_assign.
	(is_gimple_cast): Remove.
	(gimple_assign_single_p): Move ...
	* gimple.h (gimple_assign_single_p): ... here.
	(is_gimple_cast): Remove.
	(gimple_assign_rhs_code): Simplify.
	* gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
	instead of is_gimple_cast.
	* ipa-type-escape.c (look_for_casts): Likewise.

2010-11-26  Joseph Myers  <joseph@codesourcery.com>

	* doc/options.texi (Enum, EnumValue): Document new record types.
	(Enum): Document new option flag.
	* opt-functions.awk
	* optc-gen.awk: Handle enumerated option arguments.
	* opth-gen.awk: Handle enumerated option arguments.
	* opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
	enum_value_to_arg): New.
	(decode_cmdline_option): Handle enumerated arguments.
	(read_cmdline_option): Handle CL_ERR_ENUM_ARG.
	(set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
	* opts.c (print_filtered_help, print_specific_help): Take
	lang_mask arguments.
	(print_filtered_help): Handle printing values of enumerated
	options.  Print possible arguments for enumerated options.
	(print_specific_help): Update call to print_filtered_help.
	(common_handle_option): Update calls to print_specific_help.  Use
	value rather than arg for OPT_fdiagnostics_show_location_.  Don't
	handle OPT_ffp_contract_, OPT_fexcess_precision_,
	OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
	OPT_fira_region_ here.
	* opts.h (enum cl_var_type): Add CLVC_ENUM.
	(struct cl_option): Add var_enum.
	(CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
	struct cl_enum, cl_enums, cl_enums_count): New.
	(CL_ERR_ENUM_ARG): Define.
	(CL_ERR_NEGATIVE): Update value.
	(enum_value_to_arg): Declare.
	* common.opt (flag_ira_algorithm, flag_ira_region,
	flag_fp_contract_mode, flag_excess_precision_cmdline,
	default_visibility, flag_tls_default): Remove Variable entries.
	(help_enum_printed): New Variable.
	(fdiagnostics-show-location=): Use Enum.  Add associated
	SourceInclude, Enum and EnumValue entries.
	(fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
	ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
	associated Enum and EnumValue entries.

2010-11-26  Joern Rennecke  <amylaar@spamcop.net>

	PR target/46623
	* config/microblaze/microblaze.c (microblaze_block_move_straight):
	Use XALLOCAVEC.
	(microblaze_option_override): Don't use C++ style comments.
	(save_restore_insns): Remove unused variable base_offset.
	(microblaze_expand_prologue): Remove unused variable insn.
	(microblaze_secondary_reload): Adjust type to match target.h .
	(microblaze_elf_in_small_data_p): Move declarations to start of block.
	(microblaze_expand_move): Likewise.
	* config/microblaze/microblaze.h (LARGE_INT):
	Avoid signed / unsigned comparisons.
	(ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
	(ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
	(ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.

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

	* tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.

	* passes.c (init_optimization_passes): Remove superfluous
	copy-prop pass.

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

	PR lto/46648
	* gimple.c (gtc_visit): Do not return true for members of an
	SCC still being processed but the current lattice value of
	the member.  Treat SCC members comparison state as lattice,
	starting at equal, eventually dropping to unequal.
	(gimple_types_compatible_p_1): Likewise.

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

	PR middle-end/46559
	* dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
	for location list processing.

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

	PR lto/46560
	* cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
	flags manually.

2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (print_operand_address): Replace assert with
	error message.
	(print_operand): Replace assertions, gcc_unreachable and
	fatal_insn with error messages.

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

	PR tree-optimization/46665
	* tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.

2010-11-26  Ian Bolton  <ian.bolton@arm.com>

	* config/arm/arm.c (arm_option_override): enable loop array
	prefetching at -O3 for suitable targets, and configure params.
	* config/arm/arm-protos.h (struct tune_params): Add fields for
	configuring loop array prefetching.

2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>

	* config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.

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

	PR tree-optimization/46664
	* tree-affine.c (aff_combination_to_tree): Add rest last.

2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>

	PR target/33637
	* configure.ac: Accept extra arguments for AS_FOR_TARGET,
	LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
	* configure: Regenerated.
	* exec-tool.in: Not quoting command, may have extra arguments.

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

	PR tree-optimization/46528
	PR debug/46338
	* profile.c (branch_prob): Do not split blocks based on locations
	from debug statements.

2010-11-26  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/46647
	* builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
	of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.

	PR bootstrap/45700
	* tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
	build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
	(build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
	build6_loc): Define.
	* fold-const.c (protected_set_expr_location_unshare): New inline.
	(fold_convert_loc, pedantic_non_lvalue_loc): Use it.
	(negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
	pedantic_omit_one_operand_loc, omit_two_operands_loc,
	fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
	optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
	build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
	fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
	instead of buildN followed by SET_EXPR_LOCATION or
	protected_set_expr_location.
	(fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
	Use buildN_stat_loc instead of buildN_stat followed by
	SET_EXPR_LOCATION.

2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>

	* Makefile.in (s-tm-texi): Remove spurous tab.

2010-11-26  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/46258
	* tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
	debug stmts.

2010-11-26  Alexandre Oliva  <aoliva@redhat.com>

	* toplev.c (finalize): Add no_backend parameter.  Don't finish
	passes when preprocessing only.  Adjust...
	(do_compile): ... caller.

2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
	flag_unsafe_math_optimizations.
	(negsf2): Likewise.
	Move fnegabs related patterns together.  Only use fmpynfadd instruction
	to negate a multiply if !flag_signed_zeros is true.

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

	* gengtype-state.c (read_state_structures): Initialize "previous".

2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
	    Jeremie Salvucci  <jeremie.salvucci@free.fr>

	* gengtype-state.c: Add new file.

	* gengtype.c (type count): New variable.
	(new_structure, find_param_structure, create_pointer)
	(create_array): Use it to set state_number in types.
	(dump_everything): Improve comment.
	(main): Call read_state and write_state. Print type_count.

	* gengtype.h (type_lineloc): New function.
	(read_state, write_state): New declarations.

	* Makefile.in (GENGTYPE_FLAGS): New variable.
	(s-gtype): Run gengtype twice and generate gtype.state.
	(build/gengtype-state.o): New rule.
	(build/gengtype$(build_exeext)): Link gengtype-state.o.
	(mostlyclean): Update comment.  Remove gtype.state.

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

	PR middle-end/46637
	* combine.c (try_combine): When substing i2dest for i2src, pass
	1 as last argument even if
	i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.

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

	PR middle-end/46647
	* builtins.c (target_char_cast): Check INTEGER_CST instead of
	host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.

2010-11-25  Joseph Myers  <joseph@codesourcery.com>

	* target.def (supports_split_stack, except_unwind_info): Take
	gcc_options parameters.
	* targhooks.c (default_except_unwind_info,
	dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
	gcc_options parameters.
	* targhooks.h (default_except_unwind_info,
	dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
	prototypes.
	* doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
	TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
	Document that hooks must not be modified.
	(TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
	* doc/tm.texi: Regenerate.
	* defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
	&global_options to targetm.except_unwind_info.
	* dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
	dwarf2out_begin_prologue, dwarf2out_frame_init,
	dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
	&global_options to targetm.except_unwind_info.
	* except.c (init_eh, finish_eh_generation,
	gate_convert_to_eh_region_ranges,
	output_one_function_exception_table): Pass &global_options to
	targetm.except_unwind_info.
	* expr.c (build_personality_function): Pass &global_options to
	targetm.except_unwind_info.
	* function.c (expand_function_end): Pass &global_options to
	targetm.except_unwind_info.
	* hooks.c (hook_bool_bool_gcc_optionsp_false): New.
	* hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
	* opts.c (finish_options): Pass opts to targetm.except_unwind_info
	and targetm.supports_split_stack.  Remove assertions about opts
	and opts_set.
	(common_handle_option): Remove assertions about opts, opts_set and dc.
	* tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
	&global_options to targetm.except_unwind_info.
	* tree.c (build_common_builtin_nodes: Pass &global_options to
	targetm.except_unwind_info.
	* config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
	(arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
	thumb1_expand_prologue, thumb1_output_function_prologue,
	arm_unwind_emit, arm_output_fn_unwind): Update calls to
	arm_except_unwind_info.
	* config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
	parameter.
	* config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
	parameter.
	(ia64_output_function_prologue, ia64_add_bundle_selector_before,
	ia64_reorg, ia64_asm_unwind_emit): Update calls to
	ia64_except_unwind_info.
	* config/pa/pa.c (pa_option_override): Pass &global_options to
	targetm.except_unwind_info.
	* config/picochip/picochip-protos.h (picochip_except_unwind_info):
	Remove prototype.

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

	* cgraphunit.c (process_function_and_variable_attributes):
	Mark dllexport-ed function/variables as needed.
	* ipa.c (cgraph_externally_visible_p): Make dllexport-ed
	as externally visible.

2010-11-25  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/46585
	* sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
	(vinsn_init): Skip computation of dependencies for local NOPs.
	(vinsn_delete): Don't try to free regsets for local NOPs.
	(setup_nop_and_exit_insns): Change definition of nop_pattern.

2010-11-25  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/46602
	* sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
	(tidy_control_flow): Here.

2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
	    Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/45888
	* Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
	Fix target.def pathname in timestamp comparison.

2010-11-24  Richard Henderson  <rth@redhat.com>

	* config/ia64/predicates.md (pmpyshr_operand): New.
	* config/ia64/ia64.c (ia64_expand_unpack): New.
	(ia64_expand_widen_mul_v4hi): New.
	(ia64_expand_widen_sum): Update for pattern renames.
	(ia64_expand_dot_prod_v8qi): Likewise.
	* config/ia64/ia64-protos.h: Update.
	* config/ia64/vect.md (vecwider): New mode attribute.
	(vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
	(vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
	(pmpyshr2, pmpyshr2_u): New.
	(vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
	(vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
	(mulv2si3): New.
	(vec_pack_ssat_v4hi): Rename from pack2_sss.
	(vec_pack_usat_v4hi): Rename from *pack2_uss.
	(vec_pack_ssat_v2si): Rename from pack4_sss.
	(vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
	vec_select operation.
	(vec_interleave_highv8qi): Similarly.
	(mux1_alt): Rename from *mux1_alt.
	(vec_extract_evenv8qi, vec_extract_oddv8qi): New.
	(vec_interleave_lowv4hi): Rename from unpack2_l.
	(vec_interleave_highv4hi): Rename from unpack2_h.
	(mix2_r): Rename from *mix2_r.
	(mix2_l): Similarly.
	(vec_extract_evenodd_helper): New.
	(vec_extract_evenv4hi, vec_extract_oddv4hi): New.
	(vec_interleave_lowv2si): Rename from *unpack4_l.
	(vec_interleave_highv2si): Rename from *unpack4_h.
	(vec_extract_evenv2si, vec_extract_oddv2si): New.
	(vec_interleave_lowv2sf): Rename from fmix_r.
	(vec_interleave_highv2sf): Rename from *fmix_l.
	(vec_extract_evenv2sf, vec_extract_oddv2sf): New.
	(vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
	(vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
	(vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.

2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>

	* targhooks.c (default_except_unwind_info): Remove
	MUST_USE_SJLJ_EXCEPTIONS case.
	* config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
	* config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
	* doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
	* doc/tm.texi: Regenerate.
	* system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.

2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>

	* cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
	__FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
	* config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
	* doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
	* system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.

2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/46519
	* config/i386/i386.c (ix86_expand_call): Don't check
	TREE_THIS_VOLATILE.

2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/46519
	* config/i386/i386.c (upper_128bits_state): New.
	(block_info_def): Remove upper_128bits_set and done.  Add state,
	referenced, count, processed and rescanned.
	(check_avx256_stores): Updated.
	(move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
	Call note_stores only if needed.  Set referenced and count.
	(move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
	(rescan_move_or_delete_vzeroupper): New.
	(move_or_delete_vzeroupper):  Process and rescan all all basic
	blocks instead of predecessor blocks of all exit points.
	(ix86_option_override_internal): Enable vzeroupper optimization
	only for -fexpensive-optimizations and not optimizing for size.
	(use_avx256_p): Removed.
	(init_cumulative_args): Don't set use_avx256_p.
	(ix86_function_arg): Likewise.
	(ix86_expand_move): Likewise.
	(ix86_expand_vector_move_misalign): Likewise.
	(ix86_local_alignment): Likewise.
	(ix86_minimum_alignment): Likewise.
	(ix86_expand_epilogue): Don't check use_avx256_p when generating
	vzeroupper.
	(ix86_expand_call): Likewise.

	* config/i386/i386.h (machine_function): Remove use_vzeroupper_p
	and use_avx256_p.  Add rescan_vzeroupper_p.

2010-11-24  Joseph Myers  <joseph@codesourcery.com>

	* toplev.c: Include <signal.h>.

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

	PR lto/43218
	* lto-symtab.c (lto_cgraph_replace_node): Mark edges with
	conflicting function signatures as non-inlineable.

2010-11-24  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/46614
	* sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
	 (deps_analyze_insn): Mark JUMP_INSNs in
	last_pending_memory_flush that weren't added through
	flush_pending_lists with NON_FLUSH_JUMP_KIND.
	(sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
	on INSN_LIST instead of JUMP_P check on its operand.
	* sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.

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

	* lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.

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

	PR lto/46606
	* lto-streamer-in.c (input_gimple_stmt): When we cannot find
	a FIELD_DECL that is type correct issue a warning and fixup
	with a VIEW_CONVERT_EXPR.

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

	* doc/invoke.texi (Options for Debugging Your Program or GCC):
	Explain static numbering of dump files.

2010-11-24  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (user_vect_verbosity_level): New Variable entry.
	(ftree-vectorizer-verbose=): Mark as UInteger.
	* flag-types.h (enum vect_verbosity_levels): Move from enum
	verbosity_levels in tree-vectorizer.h.
	* opts.c: Don't include tree.h.
	(vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
	gcc_options parameter; take integer option argument.
	(common_handle_option): Update call to vect_set_verbosity_level.
	* tree-vectorizer.c (user_vect_verbosity_level): Remove.
	(vect_set_verbosity_level): Move to opts.c.
	(vect_verbosity_level, vect_print_dump_info): Update for change of
	enum name.
	* tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
	(vect_print_dump_info): Update for change of enum name.
	* tree.h (vect_set_verbosity_level): Remove.
	* Makefile.in (opts.o): Update dependencies.

2010-11-24  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/46629
	* cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
	instead of insn with any_condjump_p.

2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>

	* config/mips/loongson.md: Change the description comment of the file
	and update the copyright years.
	(define_insn "<u>div<mode>3): Add loongson3a support.
	(define_insn "<u>mod<mode>3"): Likewise.
	* config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
	mul<mode>3_mul3_loongson.
	(define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
	(define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.

2010-11-23  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (initial_max_fld_align, flag_debug_asm,
	flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
	flag_print_asm_name, graph_dump_format, help_printed,
	help_columns, flag_opts_finished): New Variable entries.
	(fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
	frandom-seed=): Mark deferred.
	(fsched-verbose=): Use UInteger and Var.
	* flags.h (set_struct_debug_option, flag_print_asm_name,
	rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
	graph_dump_format): Don't declare here.
	* haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
	* opts-global.c: Include dbgcnt.h and debug.h.
	(decode_options): Pass location to finish_options.
	(handle_common_deferred_options): Check flag_dump_all_passed.
	Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
	OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
	OPT_fstack_limit.
	* opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
	(set_struct_debug_option): Add location_t parameter.  Update
	recursive call.  Use error_at.
	(default_options_optimization): Use error_at.
	(finish_options): Add location_t parameter.  Use
	opts->x_flag_opts_finished instead of first_time_p.  Use
	opts->x_optimize instead of optimize.  Use error_at.  Pass
	location to inform.
	(print_filtered_help): Use opts->x_help_printed to track what
	options have been printed.
	(print_specific_help): Use opts->x_help_columns to track number of
	columns.
	(common_handle_option): Pass locations and gcc_options pointers to
	more functions.  Use warning_at instead of fnotice and warning.
	Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
	OPT_fdebug_prefix_map_.  Use error_at.  Set
	opts->x_initial_max_fld_align; don't set maximum_field_alignment.
	Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
	OPT_fsched_verbose_.
	(handle_param): Add location_r parameter.  Use error_at.
	(set_debug_level): Add location_r parameter.  Use error_at and
	warning_at.
	(setup_core_dumping): Add diagnostic_context parameter.
	(decode_d_option): Add gcc_options, location_t and
	diagnostic_context parameters and use them instead of global
	state.  Use warning_at.
	(enable_warning_as_error): Use error_at.
	* opts.h (finish_options): Update prototype.
	(set_struct_debug_option): Declare here.
	* rtl.h (fix_sched_param): Remove.
	* stor-layout.c (initial_max_fld_align): Remove.
	* toplev.c (rtl_dump_and_exit, flag_print_asm_name,
	graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
	(process_options): Set maximum_field_alignment.
	* tree.h (initial_max_fld_align) Don't declare here.
	* Makefile.in (opts.o, opts-global.o): Update dependencies.

2010-11-23  Joseph Myers  <joseph@codesourcery.com>

	* flag-types.h (struct visibility_flags): Don't declare here.
	* flags.h (strip_off_ending, fast_math_flags_set_p,
	fast_math_flags_struct_set_p): Declare here.
	(visibility_options): Don't declare here.
	* opts-common.c (option_enabled, get_option_state): Move from
	opts.c.
	* opts-global.c: Include diagnostic.h instead of
	diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
	and toplev.h.
	(const_char_p, ignored_options, in_fnames, num_in_fnames,
	write_langs, complain_wrong_lang, postpone_unknown_option_warning,
	print_ignored_options, unknown_option_callback,
	post_handling_callback, lang_handle_option, add_input_filename,
	read_cmdline_options, initial_lang_mask, init_options_once,
	decode_cmdline_options_to_array_default_mask,
	set_default_handlers, decode_options): Move from opts.c.
	(print_ignored_options): Use warning_at instead of saving and
	restoring input_location.
	* opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
	instead of expr.h.  Don't include langhooks.h, except.h or
	lto-streamer.h.  Add more comments on includes.
	(strip_off_ending, setup_core_dumping, decode_d_option): Move from
	toplev.c.
	(visibility_options): Move to c-family/c-common.c.
	(const_char_p, ignored_options, in_fnames, num_in_fnames,
	write_langs, complain_wrong_lang, postpone_unknown_option_warning,
	print_ignored_options, unknown_option_callback,
	post_handling_callback, lang_handle_option, add_input_filename,
	read_cmdline_options, initial_lang_mask, init_options_once,
	decode_cmdline_options_to_array_default_mask,
	set_default_handlers, decode_options): Move to opts-global.c.
	(target_handle_option, default_options_optimization,
	finish_options, common_handle_option): Remove static.
	(option_enabled, get_option_state): Move to opts-common.c.
	* opts.h (common_handle_option, target_handle_option,
	finish_options, default_options_optimization): Declare.
	* toplev.c: Don't include <signal.h> or <sys/resource.h>.
	(setup_core_dumping, strip_off_ending, decode_d_option): Move to
	opts.c.
	* toplev.h (strip_off_ending, decode_d_option,
	fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
	declare here.
	* Makefile.in (opts.o, opts-global.o): Update dependencies.

2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR driver/42690
	* gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
	options, replace by call of pass-through-libs spec function to process
	link_gcc_c_sequence spec.
	(lto_libgcc_spec): Delete variable.
	(static_specs[]): Remove related entry.
	(static_spec_functions[]): Add new entry for pass-through-libs.
	(main): Don't generate deleted lto_libgcc_spec.
	(pass_through_libs_spec_func): New function to implement the new
	pass-through-libs spec function.
	* doc/invoke.texi (pass-through-libs): Document new spec function.

2010-11-23  Joseph Myers  <joseph@codesourcery.com>

	* doc/options.texi (Warning, Optimization): Document.

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

	* tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
	(tree_decl_with_vis): Add implicit_section_name_p.
	* targhooks.h (default_function_section): Declare.
	* target.def (function_section): New hook.
	* defaults.h (HOT_TEXT_SECTION_NAME,
	UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
	* predict.c (choose_function_section): Remove.
	(estimate_bb_frequencies): Do not use choose_function_section.
	* coretypes.h (enum node_frequency): Move here from cgraph.h
	* cgraph.h (enum node_frequency): Remove.
	* varasm.c (initialize_cold_section_name, unlikely_text_section,
	unlikely_text_section_p): Remove.
	(named_subsection_entry): New structure.
	(get_text_section): New function.
	(default_function_section): New function.
	(function_section_1): Break out from ...; handle profile info.
	(function_section): ... here.
	(unlikely_text_section): Remove.
	(unlikely_text_section_p): Use function_section_1.
	(assemble_start_function): Do not initialize cold section.
	(default_section_type_flags): Do not special case cold subsection.
	(switch_to_section): Likewise.
	* output.h (get_text_section): Define.
	* config/i386/winnt.c: Do not special case cold section.
	* config/darwin-protos.h (darwin_function_section): Declare.
	* config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
	UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
	* config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
	UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
	(TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
	* config/ia64/ia64.c (ia64_hpux_function_section): New function.
	* config/darwin.c (machopic_select_section): Use
	darwin_function_section.
	(darwin_function_section): New function.
	* config/darwin.h (HOT_TEXT_SECTION_NAME,
	UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
	(TARGET_ASM_FUNCTION_SECTION): Define.
	* system.h (HOT_TEXT_SECTION_NAME,
	UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.

2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
	LINK_GCC_C_SEQUENCE_SPEC: Define new macro.

2010-11-23  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/46499
	* cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
	following unconditional jumps.

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

	* doc/md.texi (386 constraints): Clarify A constraint documentation.

2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
	    Jeremie Salvucci  <jeremie.salvucci@free.fr>

	* gengtype.c (enum typekind, struct options)
	(struct nested_ptr_data, struct pair, NUM_PARAM)
	(enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
	Move to gengtype.h.
	(string_type, scalar_nonchar, scalar_nonchar, scalar_char):
	Remove static, add zero state_number.
	(typedefs, structures, param_structs, variables): Remove static.
	(create_option): Remove.
	(create_string_option, create_type_option, create_nested_option):
	New functions.
	(create_nested_ptr_option): Use create_nested_option.
	(note_variable, adjust_field_rtx_def, adjust_field_type): Call the
	new create*option functions.
	(process_gc_options): Adjust for discriminated option.
	(output_mangled_typename): Handle TYPE_NONE.
	(walk_type): Test option kinds.
	(write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
	(write_func_for_structure, write_type, write_local, write_root)
	(write_roots, note_def_vec, dump_options): Adjust for
	discriminated option.

	* gengtype.h (typedefs, structures, param_structs, variables
	enum typekind): Move from gengtype.c
	(enum option_kind): New discriminating enumeration.
	(struct options): Becomes discriminated.
	(struct nested_ptr_data): Nove from gengtype.c
	(create_string_option, create_type_option, create_nested_option)
	(create_nested_ptr_option): New functions
	(struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
	(UNION_OR_STRUCT_P): Move from gengtype.c

	* gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
	discriminated options.

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

	* tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
	twice.  Avoid re-allocating the ops vector all the time.

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

	* tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
	is_gimple_min_invariant, group tree code checks to allow
	combining them.
	(stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
	of is_gimple_reg.

2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>

	* config.gcc (sparc*-*-*): Reorder.

2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>

	* gengtype.c (header_dot_h_frul, source_dot_c_frul):
	Remove ENABLE_CHECKING around DBGPRINTF.

2010-11-22  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (exit_after_options, write_symbols, debug_info_level,
	use_gnu_debug_info_extensions): New Variable entries.
	(fprofile-dir=): Use Var.
	* flag-types.h (enum debug_info_level): Rename to enum
	debug_info_levels.
	* flags.h (write_symbols, debug_info_level,
	use_gnu_debug_info_extensions): Remove declarations.
	* opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
	(set_struct_debug_option): Make static variables const.
	(use_gnu_debug_info_extensions): Remove.
	(set_debug_level, print_filtered_help, print_specific_help,
	fast_math_flags_set_p): Take gcc_options parameters and use them
	in place of global variables.
	(print_filtered_help): Make new_help non-static.
	(print_specific_help): Update call to print_filtered_help.
	(common_handle_option): Update calls to print_specific_help.  Use
	gcc_options structure for more settings.  Make --help table
	const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
	set_debug_level.
	* toplev.c (profile_data_prefix): Remove.
	* toplev.h (profile_data_prefix, exit_after_options): Remove
	declarations.
	(fast_math_flags_set_p): Update prototype.
	* cppbuiltin.c (define_builtin_macros_for_compilation_flags):
	Update call to fast_math_flags_set_p.

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

	PR target/46434
	* config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
	return the address register extracted.
	(crx_decompose_address): Update the extracted address register.

2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>

	PR driver/43335
	* gcc.c (main): Don't crash when lto-wrapper program is not found.

2010-11-22  Joern Rennecke  <amylaar@spamcop.net>

	PR target/46608
	* config/picochip/picochip.c (picochip_secondary_reload): Make static.
	* config/picochip/picochip-protos.h: Don't include "target.h" .
	(picochip_secondary_reload): Don't declare.

	PR target/46613
	* config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
	* config/m32c/m32c.c (m32c_conditional_register_usage): No longer
	static.

2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/46609
	* gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
	(source_dot_c_frul): Likewise.

2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>

	* gimple-pretty-print.c (dump_bb_header): Add check for cfun.

2010-11-22  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/44970
	* Makefile.in (fwprop.o) Add sparseset.h.
	* fwprop.c: Include sparseset.h
	(struct find_occurrence_data, find_occurrence_callback,
	find_occurrence): Remove.
	(active_defs, active_defs_check, register_active_defs,
	update_df_init, update_uses): New.
	(update_df): Rewrite.
	(try_fwprop_subst, forward_propagate_asm): Add calls to
	update_df_init and update_df.
	(fwprop_init): Allocate active_defs and active_defs_check.
	(fwprop_done): Free them.
	(fwprop, fwprop_addr): Adjust comments.
	* df.h (df_uses_create): Declare.
	* df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
	(df_ref_create): Return result of df_ref_create_structure directly.
	(df_ref_create_structure): Call df_install_ref_incremental when
	no collection_rec is passed.
	(df_ref_record): Do not create multiword hard reg info when no
	collection_rec is passed.
	(df_uses_create): New.

2010-11-21  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/43057
	* fold-const.c (pedantic_non_lvalue_loc): Unshare x before
	setting location.

2010-11-22  Richard Guenther  <rguenther@suse.de>

	* gimple-fold.c (maybe_fold_reference): When canonicalizing
	MEM_REFs, preserve volatileness.
	* cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
	addresses.

2010-11-22  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.

2010-11-22  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/45652
	* alias.c (get_reg_base_value): New.
	* rtl.h (get_reg_base_value): Add prototype.
	* sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
	non-null REG_BASE_VALUE for renaming.

2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
	    Basile Starynkevitch  <basile@starynkevitch.net>

	* gengtype.c: Include xregex.h and obstack.h
	Added comments about role of get_output_file_with_visibility and
	our regexpr machinery.
	(frul_actionrout_t, struct file_rule_st): New.
	(hader_dot_h_frul, source_dot_c_frul): New functions.
	(NULL_REGEX,  NULL_FRULACT): New.
	(files_rules): New.
	(matching_file_name_substitute): New function.
	(get_output_file_with_visibility): Updated comments and rewritten
	to use the new files_rules machinery.

	* Makefile.in (XREGEX_H): Added variable.
	(build/gengtype.o): Added dependencies for xregex.h and obstack.h

2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>

	* system.h (FUNCTION_ARG_BOUNDARY): Really poison.

2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>

	* target.def (conditional_register_usage): Define.
	* reginfo.c (init_reg_sets_1): Call
	targetm.conditional_register_usage.
	* system.h (CONDITIONAL_REGISTER_USAGE): Poison.
	* doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
	for making it a hook.
	* doc/tm.texi: Regenerate.
	* config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
	New function.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/arc/arc.c (arc_conditional_register_usage): ...here.
	New function.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/arm/arm.c (arm_conditional_register_usage): ...here.
	New function.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
	* config/bfin/bfin-protos.h (conditional_register_usage): Delete.
	* config/bfin/bfin.c (conditional_register_usage): Move code into...
	(bfin_conditional_register_usage): ...here.  New function.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
	* config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
	* config/cris/cris.c (cris_conditional_register_usage): Make static.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
	* config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
	* config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
	* config/frv/frv.c (frv_conditional_register_usage): Make static.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
	New function.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
	* config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
	* config/i386/i386.c (ix86_conditional_register_usage): Make static.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
	* config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
	* config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
	New function.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
	* config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
	Delete.
	* config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
	static.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
	* config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
	* config/mep/mep.c (mep_conditional_register_usage): Make static.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
	* config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
	* config/mips/mips.c (mips_conditional_register_usage): Make static.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
	* config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
	* config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/mn10300/mn10300.c (mn10300_conditional_register_usage):
	...here.  New function.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
	* config/pa/pa.c (pa_conditional_register_usage): ...here.
	New function.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
	New function.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
	* config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
	Delete.
	* config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
	static.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
	* config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
	* config/rx/rx.c (rx_conditional_register_usage): Make static.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
	* config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
	* config/s390/s390.c (s390_conditional_register_usage): Make static.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/score/score.c (score_conditional_register_usage): ...here.
	New function.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/sh/sh.c (sh_conditional_register_usage): ...here.
	New function.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
	New function.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
	* config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
	* config/spu/spu.c (spu_conditional_register_usage): Make static.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.
	* config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/v850/v850.c (v850_conditional_register_usage): ...here.
	New function.
	(TARGET_CONDITIONAL_REGISTER_USAGE): Define.

2010-11-21  Jan Hubicka  <jh@suse.cz>
	    Dominique d'Humieres <dominiq@lps.ens.ft>

	PR target/46510
	* tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
	finalize external decls.

2010-11-21  Joseph Myers  <joseph@codesourcery.com>

	* system.h (strerror): Poison.

2010-11-21  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
	for infq/huge_valq.

2010-11-21  Richard Henderson  <rth@redhat.com>

	PR rtl-optimization/46571
	* gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
	(compute_hash_table_work): Use NONDEBUG_INSN_P.

2010-11-21  Paul Koning  <ni1d@arrl.net>

	* config/mips/pdp11.md (negsi2): Fix wrong code.

2010-11-21  Paul Koning  <ni1d@arrl.net>

	* config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
	* config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.

2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>

	* config/mips/mips.c (machine_function): Rename load_label_length to
	load_label_num_insns.
	(mips_load_label_length): Rename to...
	(mips_load_label_num_insns): ...this.  Adjust to first renaming.
	(mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.

2010-11-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/46533
	* config/alpha/predicates.md (direct_call_operand): Return false
	for !TARGET_SMALL_TEXT targets.

2010-11-20  Joseph Myers  <joseph@codesourcery.com>

	* doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
	HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
	(HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
	* doc/tm.texi: Regenerate.
	* system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
	HANDLE_PRAGMA_WEAK): Poison.
	* config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
	* config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
	* config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
	* config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
	* config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
	(HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
	* config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
	* config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
	(HANDLE_PRAGMA_WEAK): Don't undefine.
	* config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
	* config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
	* config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
	(HANDLE_PRAGMA_WEAK): Don't undefine.
	* config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
	(HANDLE_PRAGMA_PACK): Don't undefine.
	* config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
	* config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
	* config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
	(HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
	* config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
	(HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
	* config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
	* config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
	* config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
	* config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.

2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/31100
	* config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
	* config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
	* config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.

2010-11-20  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (ld_plugin_symbol_resolution_names): New.
	(dump_cgraph_node): Dump resolution.
	* cgraph.h (ld_plugin_symbol_resolution_names): Declare.
	(cgraph_comdat_can_be_unshared_p): Dclare.
	* lto-streamer-out.c (produce_symtab): Use
	cgraph_comdat_can_be_unshared_p.
	* ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
	(cgraph_comdat_can_be_unshared_p): New function based on logic
	in cgraph_externally_visible_p.
	(cgraph_externally_visible_p): Use it.
	(varpool_externally_visible_p): Virtual tables can be unshared.
	* varpool.c (dump_varpool_node): Dump resolution.

2010-11-20  Jan Hubicka  <jh@suse.cz>

	* stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.

2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR other/46202
	* Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
	(AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
	shell quoting.
	(STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
	(install-strip): New target.
	(STRIPPROG): New variable, exported if STRIP is set.
	* doc/install.texi (Final install): Minor markup and code style
	fixes.  Document install-strip target.

2010-11-20  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
	pdp11_regno_reg_class): New functions.
	* config/pdp11/pdp11.md (define_constants): Add register numbers.
	* config/pdp11/pdp11.c (pdp11_regno_reg_class,
	pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
	functions.
	* config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
	frame pointer and argument pointer pseudo-registers.
	(ARG_POINTER_REGNUM): Define.
	(REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
	argument pointer.
	(FIRST_PARM_OFFSET): Update for argument pointer.
	(INITIAL_FRAME_POINTER_OFFSET): Delete.
	(ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
	(REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
	frame pointer and argument pointer.

2010-11-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/46561
	* tree-parloops.c (try_create_redunction_list): Ignore debug stmts
	when looking for immediate uses.

	PR tree-optimization/45830
	* stmt.c (expand_switch_using_bit_tests_p): New function.
	(expand_case): Use it.
	* tree.h (expand_switch_using_bit_tests_p): New prototype.
	* tree-switch-conversion.c (struct switch_conv_info): Add
	bit_test_uniq, bit_test_count and bit_test_bb fields.
	(check_range): Fix a comment.
	(check_process_case): Compute bit_test_uniq and bit_test_count.
	(create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
	allocation.
	(free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
	(constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
	(array_value_type): New function.
	(build_one_array): Use it, if it returned different type,
	fold_convert all constructor fields and convert back to the
	wider type in the generated code.
	(process_switch): Initialize bit_test_uniq, bit_test_count and
	bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
	returned true.

2010-11-19  Michael Matz  <matz@suse.de>

	PR tree-optimization/46077
	* tree-chrec.c (eq_evolutions_p): Accept some expressions.

2010-11-19  Anatoly Sokolov  <aesok@post.ru>

	* config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
	* config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
	function.
	(TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.

2010-11-19  Uros Bizjak  <ubizjak@gmail.com>

	* mode-switching.c (optimize_mode_switching): Use
	FOR_BB_INSNS instead of open-coded loop.
	* cfgrtl.c (redirect_branch_edge): Ditto.

2010-11-19  Joern Rennecke  <amylaar@spamcop.net>

	PR target/46436
	* config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
	to accomodate 32 bit HOST_WIDE_INT.
	(m68hc11_emit_logical): Remove unused variable insn.
	(m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
	this_insn_uses_iy before use.

	PR target/46434
	* config/crx/crx.c (crx_expand_epilogue): Remove unused variable.

2010-11-19  Joseph Myers  <joseph@codesourcery.com>

	PR c/46547
	* c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
	* c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.

2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* doc/extend.texi (Function attributes): Document PowerPC target
	attributes that are supported.
	(Pragmas): Document that PowerPC now supports target pragmas.

	* doc/options.texi (TargetVariable): Document TargetVariable,
	HeaderInclude, and SourceInclude.

	* doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
	mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
	-ffp-contract=off.

	* optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
	SourceInclude directives.  Fix a cut+paste error with target save
	enum variables.  Sort enums in the structures after ints and
	before shorts.
	* opth-gen.awk: Ditto.

	* configure.ac: Add support for HeaderInclude and SourceInclude option
	directives to add the appropriate files to the dependency lists.
	* configure: Regenerate.
	* Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
	(OPTIONS_C_EXTRA): New variable for SourceInclude.
	(OPTIONS_H): Add $(OPTIONS_H_EXTRA).
	(options.o): Add $(OPTIONS_C_EXTRA) dependency.
	(gcc-options.o): Ditto.
	* opt-include.awk: New awk script to handle HeaderInclude and
	TargetInclude.

	* config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
	gets saved in the target options.
	* config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
	* config/rs6000/sysv4.opt (-mbit-align): Ditto.
	(-mprototype): Ditto.
	(-mbit-word): ditto.
	(-mregnames): Ditto.
	(-msecure-plt): Ditto.
	(-mbss-plt): Ditto.
	* config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
	(-mpowerpc-gfxopt): Ditto.
	(-mmfcrf): Ditto.
	(-mpopcntb): Ditto.
	(-mfprnd): Ditto.
	(-mcmpb): Ditto.
	(-mmmfpgpr): Ditto.
	(-maltivec): Ditto.
	(-mhard-dfp): Ditto.
	(-mmulhw): Ditto.
	(-mdlmzb): Ditto.
	(-mmultiple): Ditto.
	(-mstring): Ditto.
	(-mpopcntd): Ditto.
	(-mfriz): Ditto.
	(-mvsx): Ditto.
	(-mno-update): Ditto.
	(-mavoid-indexed-addresses): Ditto.
	(-mtls-markers): Ditto.
	(-msched-epilog): Ditto.
	(-msched-prolog): Ditto.
	(-maix-struct-return): Ditto.
	(-msvr4-struct-return): Ditto.
	(-mxl-compat): Ditto.
	(-mrecip-precision): Ditto.
	(-mfp-in-toc): Ditto.
	(-msum-in-toc): Ditto.
	(-mvrsave): Ditto.
	(-mblock-move-inline-limit=): Ditto.
	(-misel): Ditto.
	(-mpaired): Ditto.
	(-mlongcall): Ditto.
	(-mgen-cell-microcode): Ditto.
	(-mwarn-cell-microcode): Ditto.
	(-mwarn-altivec-long): Ditto.
	(-mprioritize-restricted-insns=): Ditto.
	(-msingle-float): Ditto.
	(-mdouble-float): Ditto.
	(-msimple-fpu): Ditto.
	(-mxilinx-fpu): Ditto.
	* config/rs6000/aix64.opt (-mpe): Ditto.

	* config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
	(rs6000_cpu): Move variable to be a target variable.  Rename
	cmodel to rs6000_current_cmodel because of macro conflict.  Merge
	-mdebug=<xxx> variables into a single int.
	(rs6000_always_hint): Ditto.
	(rs6000_sched_groups): Ditto.
	(rs6000_align_branch_targets): Ditto.
	(rs6000_sched_costly_dep): Ditto.
	(rs6000_sched_insert_nops): Ditto.
	(rs6000_long_double_type_size): Ditto.
	(rs6000_ieeequad): Ditto.
	(rs6000_altivec_abi): Ditto.
	(rs6000_spe): Ditto.
	(rs6000_spe_abi): Ditto.
	(rs6000_float_gprs): Ditto.
	(rs6000_darwin64_abi): Ditto.
	(can_override_loop_align): Ditto.
	(rs6000_sdata): Ditto.
	(rs6000_tls_size): Ditto.
	(rs6000_current_abi): Ditto.
	(rs6000_traceback): Ditto.
	(rs6000_alignment_flags): Ditto.
	(rs6000_current_cmodel): Ditto.
	(rs6000_recip_control): Ditto.
	(rs6000_cpu_index): Ditto.
	(rs6000_tune_index): Ditto.
	(rs6000_debug): Ditto.
	(rs6000_target_flags_explict): Ditto.

	* config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
	declaration.

	* config/rs6000/linux64.h (rs6000_current_cmode): Rename from
	cmodel.  Change all uses.

	* config/rs6000/rs6000.c (rs6000_always_hint): Move to
	rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
	Rename cmodel to rs6000_current_cmodel.
	(rs6000_sched_groups): Ditto.
	(rs6000_align_branch_targets): Ditto.
	(rs6000_sched_costly_dep): Ditto.
	(rs6000_sched_insert_nops): Ditto.
	(rs6000_long_double_type_size): Ditto.
	(rs6000_ieeequad): Ditto.
	(rs6000_altivec_abi): Ditto.
	(rs6000_spe): Ditto.
	(rs6000_spe_abi): Ditto.
	(rs6000_float_gprs): Ditto.
	(rs6000_darwin64_abi): Ditto.
	(can_override_loop_align): Ditto.
	(rs6000_sdata): Ditto.
	(rs6000_tls_size): Ditto.
	(rs6000_current_abi): Ditto.
	(rs6000_traceback): Ditto.
	(rs6000_alignment_flags): Ditto.
	(rs6000_current_cmodel): Ditto.
	(rs6000_recip_control): Ditto.
	(rs6000_cpu_index): Ditto.
	(rs6000_tune_index): Ditto.
	(rs6000_debug): Ditto.
	(rs6000_target_flags_explict): Ditto.
	(rs6000_sched_insert_nops_str): Make static.
	(rs6000_sched_costly_dep_str): Ditto.
	(rs6000_recip_name): Ditto.
	(rs6000_abi_name): Ditto.
	(rs6000_sdata_name): Ditto.
	(enum rs6000_traceback_name): Move to rs6000-opts.h.
	(rs6000_parse_tls_size_option): Delete.
	(rs6000_valid_attribute_p): New function for target attributes and
	pragmas.
	(rs6000_function_specific_save): Ditto.
	(rs6000_function_specific_restore): Ditto.
	(rs6000_function_specific_print): Ditto.
	(rs6000_can_inline_p): Ditto.
	(rs6000_set_current_function): Ditto.
	(rs6000_inner_target_options): Ditto.
	(rs6000_debug_target_options): Ditto.
	(rs6000_pragma_target_parse): Ditto.
	(TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
	attributes and pragmas.
	(TARGET_OPTION_SAVE): Ditto.
	(TARGET_OPTION_RESTORE): Ditto.
	(TARGET_OPTION_PRINT): Ditto.
	(TARGET_CAN_INLINE_P): Ditto.
	(TARGET_SET_CURRENT_FUNCTION): Ditto.
	(POWER_MASKS): Move to file level scope from the
	rs6000_option_override_internal function.
	(POWERPC_MASKS): Ditto.
	(ISA_*_MASKS): Ditto.
	(struct rs6000_ptt): Ditto.
	(processor_target_table): Ditto.
	(rs6000_cpu_name_lookup): Map cpu name to an index in
	processor_target_table.
	(rs6000_debug_reg_global): Print more information on processor
	options for -mdebug=reg.
	(rs6000_init_hard_regno_mode_ok): Add support for target
	attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
	Allow -mdebug=val1,val2.  Rename cmodel variable.
	(rs6000_option_override_internal): Ditto.
	(rs6000_option_override): Ditto.
	(rs6000_handle_option): Ditto.
	(rs6000_conditional_register_usage): Add debug trace message.
	(struct rs6000_opt_mask): New for target attribute/pragma support.
	(rs6000_opt_masks): Ditto.
	(struct rs6000_opt_var): Ditto.
	(rs6000_opt_vars): Ditto.
	(rs6000_previous_function): Ditto.

	* config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
	wasn't already included.
	(enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
	(enum processor_type): Ditto.
	(rs6000_cpu): Ditto.
	(enum fpu_type_t): Ditto.
	(fpu_type): Ditto.
	(enum rs6000_dependence_cost): Ditto.
	(enum rs6000_nop_insertion): Ditto.
	(enum group_termination): Ditto.
	(rs6000_long_double_type_size): Ditto.
	(rs6000_ieeequad): Ditto.
	(rs6000_altivec_abi): Ditto.
	(rs6000_spe_abi): Ditto.
	(rs6000_spe): Ditto.
	(rs6000_float_gprs): Ditto.
	(rs6000_alignment_flags): Ditto.
	(rs6000_sched_insert_nops): Ditto.
	(enum rs6000_vector): Ditto.
	(enum rs6000_abi): Ditto.
	(rs6000_current_opt): Ditto.
	(rs6000_debug_*): Delete.
	(MASK_DEBUG*): Combine -mdebug=xxxx into one int.
	(TARGET_DEBUG*): Ditto.

	* config/rs6000/rs6000-opts.h: New header file to define the enums
	that are used in target variables that are now defined in rs6000.opt.

	* config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
	rs6000-opts.h.
	(rs6000_sdata): Ditto.
	(rs6000_abi_name): Delete.
	(rs6000_sdata_name): Ditto.
	(rs6000_tls_size_string): Ditto.

2010-11-19  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (debug_struct_ordinary, debug_struct_generic): New
	Variable entries.
	* dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
	should_emit_struct_debug): Move from opts.c.
	* flag-types.h (enum debug_struct_file): Move from opts.c.
	* flags.h (should_emit_struct_debug): Remove.
	(base_of_path): Declare.
	(set_struct_debug_option): Add gcc_options parameter.
	* optc-gen.awk, opth-gen.awk: Handle array variables.
	* opts.c (enum debug_struct_file, debug_struct_ordinary,
	debug_struct_generic): Remove.
	(set_struct_debug_option): Add gcc_options parameter.
	(base_of_path): Remove static.
	(main_input_basename, main_input_baselength, matches_main_base,
	dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
	Remove.
	* toplev.c (main_input_basename, main_input_baselength): Define
	here.
	* toplev.h (main_input_basename, main_input_baselength): Declare
	here.

2010-11-19  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (flag_instrument_functions_exclude_functions,
	flag_instrument_functions_exclude_files): New Variable definitions.
	* flags.h (flag_instrument_functions_exclude_p): Don't declare.
	* gimplify.c (char_p): Declare type and vectors.
	(flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
	* opts.c (flag_instrument_functions_exclude_functions,
	flag_instrument_functions_exclude_files): Remove.
	(add_comma_separated_to_vector): Take void **.
	(flag_instrument_functions_exclude_p): Move to gimplify.c.
	(common_handle_option): Use options structure for
	-finstrument-functions-exclude- options.

2010-11-19  Joseph Myers  <joseph@codesourcery.com>

	* doc/options.texi (Var): Document effects of Defer.
	(Defer): Document.
	* opt-functions.awk (var_type, var_set): Handle deferred options.
	* opts-common.c (set_option): Handle CLVC_DEFER.
	* common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
	fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
	fstack-limit-symbol=): Mark as deferred.
	* opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
	plugin.h.
	(print_filtered_help): Don't report state of CLVC_DEFER options.
	(common_handle_option): Move code for OPT_fcall_used_,
	OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
	OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
	OPT_fstack_limit_symbol_ to opts-global.c.
	(option_enabled, get_option_state): Handle CLVC_DEFER.
	* opts.h: Include vec.h.
	(enum cl_var_type): Add CLVC_DEFER.
	(cl_deferred_option): Define type and vectors.
	(handle_common_deferred_options): Declare.
	* opts-global.c: New.
	* toplev.c (toplev_main): Call handle_common_deferred_options
	* Makefile.in (OPTS_H): Include $(VEC_H).
	(OBJS-common): Include opts-global.o.
	(opts.o): Update dependencies.
	(opts-global.o): Add dependencies.

2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_objc_protocol_definition): Pass attributes
	to objc_declare_protocols.

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

	PR lto/45789
	* lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
	IDENTIFIERs do not stream TREE_TYPE.
	* lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.

2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>

	* config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.

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

	PR target/45870
	* dwarf2out.c (const_ok_for_output_1): Don't complain about
	non-delegitimized TLS UNSPECs.

2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
	    Ian Lance Taylor  <iant@google.com>

	* config/darwin-c.c (darwin_additional_format_types): Export.

2010-11-18  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
	pointer.

2010-11-18  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
	* config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
	* config/pdp11/pdp11.opt (-mabshi): Delete.

2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>

	* resource.h (struct resources): Fix typo in the comment.

2010-11-19  Uros Bizjak  <ubizjak@gmail.com>

	PR target/46546
	* config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.

2010-11-18  Richard Henderson  <rth@redhat.com>

	PR middle-end/46515
	* function.c (maybe_copy_prologue_epilogue_insn): Rename from
	maybe_copy_epilogue_insn; handle prologue insns as well.
	* rtl.h, cfglayout.c: Update for rename.
	* recog.c (peep2_attempt): Copy prologue/epilogue data for
	RTX_FRAME_RELATED_P insns.

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

	PR middle-end/46534
	* builtins.c (fold_builtin_printf): Don't copy and modify string
	before build_string_literal, instead modify what
	build_string_literal returned.

2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>

	PR c/33193
	* c-typeck.c (build_unary_op): Call build_real_imag_expr for
	REALPART_EXPR and IMAGPART_EXPR.

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

	PR tree-optimization/46172
	* tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
	function.
	(slpeel_tree_peel_loop_to_edge): Call it.

2010-11-18  Jeff Law  <law@redhat.com>

	PR middle-end-optimization/46297
	* postreload.c (reload_combine_note_store): Deal with embedded
	side effects in MEM expressions.

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

	PR lto/45089
	* dwarf2out.c (add_AT_die_ref): Work around LTO losing types
	when checking is not enabled.

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

	PR lto/46525
	* gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
	type leaders.
	(gimple_register_canonical_type): Also cache the canoncial type
	for non type leaders.

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

	* lto-wrapper.c (run_gcc): Fix -flto=N parsing.

2010-11-18  Alexander Monakov  <amonakov@ispras.ru>

	PR middle-end/46518
	* sel-sched-ir.c (init_expr): Use the correct type for
	target_available.
	* sel-sched.c (fill_vec_av_set): Use explicitly signed char type.

2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>

	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
	as well as -mrelocatable at the same time.

2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>

	PR target/46422
	* config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
	Call the clz builtin.

2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
	    Steve Ellcey  <sje@cup.hp.com>

	PR middle-end/31490
	* varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
	if section attribute used.

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

	* builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
	expand errno setting variant when optimizing for size.

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

	* postreload.c (reload_combine): Call control_flow_insn_p only once.
	Reverse backward loop.  Fix formatting issues.

2010-11-17  Paolo Bonzini  <bonzini@gnu.org>

	* c-parser.c (c_token_is_qualifier,
	c_parser_next_token_is_qualifier): New.
	(c_parser_declaration_or_fndef, c_parser_struct_declaration):
	Improve error message on specs->tagdef_seen_p.
	(c_parser_struct_or_union_specifier): Improve error recovery.
	(c_parser_declspecs): Move exit condition on C_ID_ID early.
	Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
	using c_parser_next_token_is_qualifier; extend it to cover
	a ctsk_tagdef typespec and !typespec_ok in general.

2010-11-17  Richard Guenther  <rguenther@suse.de>

	* value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
	(gimple_mod_pow2_value_transform): Likewise.
	(gimple_mod_subtract_transform): Likewise.

2010-11-17  Richard Guenther  <rguenther@suse.de>

	PR lto/46504
	* gimple.c (gimple_register_canonical_type): Make sure to only
	make type leaders canonical types.

2010-11-17  Michael Matz  <matz@suse.de>

	* timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
	TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
	TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
	TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
	* tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
	(pass_build_ssa): ... but here.
	* cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
	* tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
	* tree-emutls.c (pass_ipa_lower_emutls): Ditto.
	* df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
	* predict.c (rebuild_frequencies): Ditto.
	* tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
	* emit-rtl.c (verify_rtl_sharing): Ditto.
	* tree-cfgcleanup.c (repair_loop_structures): Ditto.
	* tree-ssa-live.c (remove_unused_locals): Ditto.
	* cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
	* tree-ssa.c (pass_early_warn_uninitialized,
	execute_update_addresses_taken, pass_update_address_taken): Ditto.
	* tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
	pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
	* passes.c (pass_postreload, execute_todo): Ditto.
	* tree-ssanames.c (pass_release_ssa_names): Ditto.

2010-11-17  Joseph Myers  <joseph@codesourcery.com>

	* doc/invoke.texi (-dy): Remove.
	* langhooks-def.h (lhd_do_nothing_i): Don't declare.
	(LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
	* langhooks.c (lhd_do_nothing_i): Remove.
	* langhooks.h (lang_hooks.parse_file): Take no arguments.
	* toplev.c (set_yydebug): Remove.
	(compile_file): Update call to lang_hooks.parse_file.
	(decode_d_option): Don't handle -dy.

2010-11-17  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/46440
	* combine.c (update_cfg_for_uncondjump): When changing
	an indirect jump into unconditional jump, remove BARRIERs
	from bb's footer.

2010-11-17  Joseph Myers  <joseph@codesourcery.com>

	* opts.c (target_handle_option): Do not assert that loc ==
	UNKNOWN_LOCATION.

2010-11-17  Jakub Jelinek  <jakub@redhat.com>
	    Richard Guenther  <rguenther@suse.de>

	PR middle-end/45838
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
	call_may_clobber_ref_p_1): Return true for __sync_* and some
	OpenMP builtins that act as threading barriers.

2010-11-17  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46498
	* tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.

2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>

	* config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
	(xtensa_function_arg_boundary): ...this.
	* config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
	thinko in declaration.
	(picochip_function_arg, picochip_arg_partial_bytes): Pass proper
	number of parameters to picochip_function_arg_boundary.
	(picochip_arg_advance): Likewise.

2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>

	PR target/46512
	* config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
	under check for type.

2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>

	* ifcvt.c (dead_or_predicable): Fix typo.

2010-11-16  Richard Henderson  <rth@redhat.com>

	* config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
	* config/s390/s390.opt (mfused-madd): Remove.
	* config/s390/s390.c (s390_rtx_costs): Handle FMA.
	(TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
	* config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
	(fms<DSF>4): Rename from *fmsub<DSF>; use FMA.

2010-11-16  Richard Henderson  <rth@redhat.com>

	* config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
	* config/rs6000/rs6000.opt (mfused-madd): Remove.
	* config/rs6000/altivec.md (altivec_vmaddfp): Remove.
	(*altivec_vmaddfp_1): Remove.
	(*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
	(altivec_mulv4sf3): Expand to FMA directly.
	(*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
	(*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
	* config/rs6000/paired.md (paired_madds0): Use FMA.
	(paired_madds1): Likewise.
	(*paired_madd): Rename from paired_madd; use FMA.
	(*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
	consider TARGET_FUSED_MADD wrt rs6000_recip_control.
	(bdesc_3arg): Update CODE_FOR_* for pattern renames.
	(rs6000_emit_madd): Use fma_optab.
	(rs6000_emit_msub): Use fms_optab.
	(rs6000_emit_nmsub): Expand the FMA pattern directly.
	* config/rs6000/rs6000.md (FMA_F): New mode iterator.
	(*fmasf4_fpr): Rename from fmasf4_fpr.
	(*nfmasf4_fpr): Rename from *fnmasf4_fpr.
	(*nfmssf4_fpr): Rename from *fnmssf4_fpr.
	(*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
	(*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
	(*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
	(*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
	(*fmadf4_fpr): Rename from fmadf4_fpr.
	(*nfmadf4_fpr): Rename from *fnmadf4_fpr.
	(*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
	(*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
	(*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
	(fmasf4, fmadf4): Macroize into...
	(fma<FMA_F>4): ... here.
	(fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
	(nfma<FMA_F>4, nfms<FMA_F>4): New.
	* config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
	TARGET_FUSED_MADD.
	* config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
	(*vsx_fmadd<mode>4_1): Remove.
	(vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
	(vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
	(vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
	(*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
	(*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
	(*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
	(*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.

2010-11-16  Richard Henderson  <rth@redhat.com>

	* config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
	(fmasf4, fnmadf4, fnmasf4): Likewise.
	(unnamed plus+mult insns and splitters): Delete.

2010-11-16  Richard Henderson  <rth@redhat.com>

	* config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
	(fnma<VSF>4): Rename from fnms_<VSF>.
	(fms<VSF>4): Rename from fms_<VSF>.
	(fma<VDF>4): Rename from fma_<VDF>.
	(fms<VDF>4): Rename from fms_<VDF>.
	(nfma<VDF>4): Rename from fnma_<VDF>.
	(nfms<VDF>4): Rename from fnms_<VDF>.
	(fnma<VDF>4, fnms<VDF>4): New expanders.
	(floatunsdisf2): Update for the renames.
	(*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
	* config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.

2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/46490
	* combine.c (expand_compound_operation): Fix thinko.

2010-11-16  Richard Henderson  <rth@redhat.com>

	PR target/46470
	* recog.c (peep2_attempt): Convert frame-related info when possible.
	(peep2_fill_buffer): Allow frame-related insns into the buffer.
	(peephole2_optimize): Allow peep2_attempt to fail.

2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/46315
	* rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
	* rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
	extracted from...
	* dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
	(remove_reg_equal_equiv_notes_for_defs): ...this.
	(delete_unmarked_insns): Adjust to above renaming.
	* ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
	referring to registers set in the insns being moved, if any.

	* df-core.c (df_ref_dump): New function extracted from...
	(df_refs_chain_dump): ...here.  Call it.
	(df_regs_chain_dump): Likewise.
	* df-problems.c (df_chain_dump): Print 'e' for uses in notes.
	* df-scan.c (df_scan_start_dump): Likewise.  Fix long line.

2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>

	PR rtl-optimization/46395
	* postreload.c (reload_combine): Invalidate register use
	information on all control flow insns.

	* config/m68k/m68k.c (m68k_delegitimize_address): Also expect
	LABEL_REF in UNSPEC operand.

2010-11-16  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
	when !flag_toplevel_reorder do not remove unless variable is
	COMDAT or ARTIFICIAL.
	* ipa.c (varpool_can_remove_if_no_refs): ... here.
	(cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
	* cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
	* varpool.c (decide_is_variable_needed): Do not handle visibility
	issues.
	(varpool_finalize_decl): Likewise.
	(varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
	update outdated comment on DECL_RTL_SET_P check.

2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sol2.h (NM_FLAGS): Define.
	* doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
	* doc/tm.texi: Update.

2010-11-16  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
	(msubsf4): Rename to fmssf4, and use fma.
	(nmaddsf4): Rename to fnmasf4 and use fma.
	(nmsubsf4): Rename to fnmssf4 and use fma.

2010-11-16  Joern Rennecke  <amylaar@spamcop.net>

	PR target/44762
	* config/score/score3.c (score3_return_in_memory): Constify arguments.
	(score3_in_small_data_p, score3_function_value): Likewise.
	(score3_trampoline_init): Use LCT_NORMAL.
	(score3_print_operand): Initialize code as UNKNOWN.
	* config/score/predicates.md (score_load_multiple_operation):
	Remove unused variable.
	(score_store_multiple_operation): Likewise.
	* config/score/score7.c (score7_return_in_memory): Constify arguments.
	(score7_in_small_data_p, score7_function_value): Likewise.
	(score7_trampoline_init): Use LCT_NORMAL.
	(score7_print_operand): Initialize code as UNKNOWN.
	* config/score/score3.h (score3_return_in_memory): Update prototype.
	(score3_in_small_data_p, score3_function_value): Likewise.
	* config/score/score-protos.h (score_function_value): Likewise.
	* config/score/score7.h (score7_return_in_memory): Update prototype.
	(score7_in_small_data_p, score7_function_value): Likewise.
	* config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
	(score_return_in_memory, score_pass_by_reference): Constify arguments.
	(score_output_mi_thunk, score_function_prologue): Don't return a value.
	(score_function_epilogue, score_in_small_data_p): Likewise.
	(score_option_override, score_asm_trampoline_template): Likewise.
	(score_trampoline_init, score_print_operand): Likewise.
	(score_print_operand_address, score_prologue): Likewise.
	(score_epilogue, score_call, score_call_value): Likewise.
	(score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
	(score_function_arg_advance): Likewise. Make static.
	(score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
	(score_function_arg, score_legitimate_address_p): Make static.
	(score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
	* config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
	* config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
	Allow (W) == HOST_BITS_PER_WIDE_INT.

	PR java/46386
	* config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
	* config/t-pnt16-warn (java/constants.o-warn): Likewise.

2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>

	* config/arc/arc.c: Delete pasto.
	* config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.

2010-11-16  Anatoly Sokolov  <aesok@post.ru>

	* config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
	PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
	* config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
	TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
	(mn10300_preferred_reload_class,
	mn10300_preferred_output_reload_class): New functions.

2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
	(htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
	(mnemonic_htab_callback, gen_mnemonic_attr): New functions.
	(init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.

2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>

	* builtins.c (std_gimplify_va_arg_expr): Use
	targetm.calls.function_arg_boundary.
	* function.c (assign_parms, locate_and_pad_parm): Likewise.
	* calls.c (struct arg_data): Update comment.
	* defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
	* target.def (function_arg_boundary): Define.
	* targhooks.h (default_function_arg_boundary): Declare.
	* targhooks.c (default_function_arg_boundary): Define.
	* doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
	TARGET_FUNCTION_ARG_BOUNDARY.
	(FUNCTION_ARG_BOUNDARY): Delete.
	(TARGET_FUNCTION_ARG_BOUNDARY): New.
	* doc/tm.texi: Regenerate.
	* system.h (FUNCTION_ARG_BOUNDARY): Poison.
	* config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/arc/arc.c (arc_function_arg_boundary): Define.
	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
	* config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
	* config/arm/arm.c (arm_needs_doubleword_align): Make static.
	(arm_function_arg_boundary): Define.
	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
	* config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
	* config/frv/frv.c (frv_function_arg_boundary): Make static.
	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
	* config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
	* config/i386/i386.c (ix86_function_arg_boundary): Make static.
	(ix86_compat_function_arg_boundary): Take and return unsigned int.
	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
	* config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
	* config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
	* config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/m32c/m32c.c (m32c_function_arg_boundary): Define.
	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
	* config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/mcore/mcore.c (mcore_function_arg_boundary): Define.
	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
	* config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
	* config/mips/mips.c (mips_function_arg_boundary): Make static.
	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
	* config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/pa/pa.c (pa_function_arg_boundary): Define.
	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
	* config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/picochip/picochip-protos.h
	(picochip_get_function_arg_boundary): Delete.
	* config/picochip/picochip.c (picochip_get_function_arg_boundary):
	Rename to...
	(picochip_function_arg_boundary): ...this.  Make static.
	(picochip_function_arg, picochip_arg_partial_bytes): Adjust.
	(picochip_arg_advance): Adjust.
	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
	* config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
	* config/rs6000/rs6000.c (function_arg_boundary): Rename to...
	(rs6000_function_arg_boundary): ...this.  Make static.
	(rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
	* config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/rx/rx.c (rx_function_arg_boundary): Define.
	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
	* config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/sparc/sparc.c (sparc_function_arg_boundary): Define.
	(TARGET_FUNCTION_ARG_BOUNDARY): Define.
	* config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
	* config/xtensa/xtensa.c (function_arg_boundary): Rename to...
	(xtensa_function_arg_boundary): ...this.  Make static.
	(TARGET_FUNCTION_ARG_BOUNDARY): Define.

2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>

	* expr.c (alignment_for_piecewise_move): New function.
	(widest_int_mode_for_size): New function.
	(move_by_pieces, move_by_pieces_ninsns): Call them.
	(can_store_by_pieces, store_by_pieces_1): Likewise.

2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc.c (char_p): Define.  Define a VEC of it.
	(n_linker_options, n_assembler_options, n_preprocessor_options):
	Delete.
	(linker_options, assembler_options, preprocessor_options): Convert
	to a VEC.
	(add_preprocessor_option): Adjust.
	(add_assembler_option): Adjust.
	(add_linker_option): Adjust.
	(do_specs_vec): New function.
	(do_spec_1): Call it.  Adjust for new types.

2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>

	* Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
	(sreal.o, statistics.o, stringpool.o): Likewise.

2010-11-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44545
	* tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
	statements are not reassociatable.
	(reassociate_bb): Likewise.

2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>

	* bitmap.c: Delete unnecessary includes.
	* ebitmap.c: Likewise.
	* et-forest.c: Likewise.
	* sreal.c: Likewise.
	* statistics.c: Likewise.
	* stringpool.c: Likewise.
	* double-int.c: Add comment for inclusion of tm.h.

2010-11-16  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (visit_unary_op): Rename to ...
	(visit_nary_op): ... this.
	(visit_binary_op): Remove.
	(visit_use): Adjust and handle GIMPLE_TERNARY_RHS.

2010-11-16  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45172
	* tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.

2010-11-16  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
	record is packed.

2010-11-15  Richard Henderson  <rth@redhat.com>

	* fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
	WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
	DOT_PROD_EXPR.

2010-11-15  Richard Henderson  <rth@redhat.com>

	* config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
	from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
	fma rtx_code.

2010-11-15  Richard Henderson  <rth@redhat.com>

	* config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
	and *mulsubsf4 respectively.  Use fma rtx_code.

2010-11-15  Joseph Myers  <joseph@codesourcery.com>

	* gcc.c: Include "vec.h".
	(argbuf): Make into a VEC.
	(argbuf_length, argbuf_index): Remove.
	(alloc_args, clear_args, store_arg, execute, insert_wrapper,
	do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
	compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
	* Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
	(gcc.o): Depend on $(VEC_H).

2010-11-15  Richard Henderson  <rth@redhat.com>

	* loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
	via FMA if unsafe math.
	(insert_var_expansion_initialization): Handle FMA.
	(combine_var_copies_in_loop_exit): Likewise.

2010-11-15  Richard Henderson  <rth@redhat.com>

	* config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
	* config/ia64/ia64.opt: Remove mfused-madd.
	* config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
	* config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
	* config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
	* config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
	* config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
	* config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
	(*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
	(fmav2sf4): Rename from fpma; use FMA code.
	(fmsv2sf4): Rename from fpms; use FMA code.
	(fnmav2sf4): Rename from *fpnma; use FMA code.
	* config/ia64/ia64.md (MODE_SDF): New iterator.
	(suffix): New mode attribute.
	(*maddsf4, *msubsf4, *nmaddsf4): Remove.
	(fmssf4): Rename from *fmssf4.
	(fnmasf4): Rename from *nfmasf4.
	(*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
	(*nmadddf4, *nmadddf4_truncsf): Remove.
	(fmsdf4): Rename from *fmsdf4.
	(fnmadf4): Rename from *nfmadf4.
	(*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
	(*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
	(*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
	(*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
	(fmsxf4): Rename from *fmsxf4.
	(fnmaxf4): Rename from *nfmaxf4.
	(*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
	(*fnmaxf_trunc_<MODE_SDF>): New.

2010-11-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/46461
	* tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
	a gimple val.

2010-11-15  Ian Lance Taylor  <iant@google.com>

	* godump.c: New file.
	* common.opt (fdump-go-spec=): New option.
	* tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
	(TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
	(TYPE_SYMTAB_IS_DIE): Define.
	(struct tree_type): Change GTY for symtab field to use
	TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
	to pick the union field.
	* debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
	(dump_go_spec_init): Declare.
	* toplev.c (process_options): Handle flag_dump_go_spec.
	* debug.c: Include "tree.h".
	(do_nothing_debug_hooks): Set tree_type_symtab_field.
	* dwarf2out.c (dwarf2_debug_hooks): Likewise.
	* dbxout.c (dbx_debug_hooks): Likewise.
	(xcoff_debug_hooks): Likewise.
	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
	* sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
	SDB_DEBUGGING_INFO is not defined.
	* doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
	(Overall Options): Document -fdump-go-spec.
	* Makefile.in (OBJS-common): Add godump.o.
	(debug.o): Add dependency on $(TREE_H).
	(godump.o): New target.
	(GTFILES): Add $(srcdir)/godump.c.

2010-11-15  Jakub Jelinek  <jakub@redhat.com>

	PR debug/46095
	* config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
	marking r11 set RTX_FRAME_RELATED_P if offset is too large for
	style < 0, add REG_FRAME_RELATED_EXPR.

	PR debug/46387
	* rtl.h (vt_equate_reg_base_value): New prototype.
	* alias.c (vt_equate_reg_base_value): New function.
	* var-tracking.c (vt_init_cfa_base): Use it.

2010-11-15  Jan Hubicka  <jh@suse.cz>
	    Diego Novillo  <dnovillo@google.com>

	PR lto/41528
	* doc/lto.texi: Add.
	* doc/gccint.texi: Add reference to lto.texi.
	* doc/invoke.texi: Update user documentation for LTO.
	Move internal flags to lto.texi

2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-typeck.c (build_unary_op): Use
	objc_build_incr_expr_for_property_ref to build the pre/post
	increment/decrement of an Objective-C property ref, and skip the
	lvalue_or_else check in that case.

2010-11-15  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/46349
	* tree-sra.c (contains_bitfld_comp_ref_p): New function.
	(contains_vce_or_bfcref_p): Likewise.
	(sra_modify_assign): Use them.

2010-11-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46467
	* tree-ssa-structalias.c (do_structure_copy): Properly treat
	variables without subvars.

2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (file header): Picochip name change.
	* config/picochip/picochip.md (file header): Likewise.
	* config/picochip/predicates.md (file header): Likewise.
	* config/picochip/dfa_space.md (file header): Likewise.
	* config/picochip/dfa_speed.md (file header): Likewise.
	* config/picochip/picochip.h(file header): Likewise.
	* config/picochip/constraints.md (file header): Likewise.
	* config/picochip/picochip-protos.h (file header): Likewise.
	* config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
	* config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
	* config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
	* config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
	* config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
	* config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
	* config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
	* config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
	* config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
	* config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
	* config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
	* config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
	* config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
	* config/picochip/libgccExtras/subdi3.asm (file header): Likewise.

2010-11-15  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/46474
	* tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.

2010-11-15  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16.c (direct_return): Do not generate a
	direct return for interrupt handlers.

2010-11-15  Joern Rennecke  <amylaar@spamcop.net>

	* Makefile.in (tm.texi): Replace with rule for:
	($(srcdir)/doc/tm.texi).
	(s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
	$(srcdir)/doc/tm.texi .
	(TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
	tm.texi .

	PR target/46427
	* config/m32r/m32r.c: Remove unused variables frame_size and insn.

	PR bootstrap/45444
	* config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
	(arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.

	PR target/46432
	* config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.

2010-11-15  Richard Guenther  <rguenther@suse.de>

	PR lto/44150
	* lto-opts.c (lto_write_options): Write -fexceptions even if
	not set by the user.

2010-11-13  Paolo Bonzini  <bonzini@gnu.org>

	PR c/46462
	* c-decl.c (declspecs_add_type): Make variables with error types
	integers.
	* c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
	do not start a declaration before an Objective-C foreach.
	(c_parser_declaration_or_fndef): Improve recovery after unknown
	type name.
	(c_parser_for_statement): Hoist entrance of "foreach context"
	before ifs, add corresponding reset where it was missing.  Do
	not set objc_could_be_foreach_context for C.

2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/45722
	* tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
	this is a reference to a component.
	* ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
	(ipa_note_param_call): Adjust comment.

2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (machine_function): Remove
	initialized_mips16_gp_pseudo_p.
	(mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
	detect whether a pseudo has already been created.  Unconditionally
	create a new one if not.
	(mips_pic_base_register): Only call mips16_gp_pseudo_reg when
	expanding to rtl.  Create a new pseudo otherwise, if allowed.

2010-11-13  Richard Earnshaw  <rearnsha@arm.com>

	PR target/43440
	* tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
	* tm.texi: Regenerated.
	* output.h (decode_reg_name_and_count): Declare.
	* varasm.c (decode_reg_name_and_count): New function.
	(decode_reg_name): Reimplement using decode_reg_name_and_count.
	* reginfo.c (fix_register): Use decode_reg_name_and_count and
	iterate over all regs used.
	* stmt.c (expand_asm_operands): Likewise.
	* arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
	(ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
	multiple machine registers.

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

	* stor-layout.c (place_union_field): Do not put location information
	on offset expressions.
	(place_field): Likewise.
	(finalize_record_size): Likewise on size expressions.
	(finalize_type_size): Likewise.
	(layout_type): Likewise.

2010-11-13  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/42889
	* df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
	* df-core.c (df_set_bb_dirty_nonrl): Remove.
	* df.h (df_set_bb_dirty_nonlr): Likewise.

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

	* config/mips/mips.md (call_internal): Pass curr_insn to
	mips_split_call.
	(call_internal_direct): Ditto.
	(call_value_internal): Ditto.
	(call_value_internal_direct): Ditto.
	(call_value_multiple_internal): Ditto.
	* config/mips/mips.c (mips_split_call): Do not copy
	CALL_INSN_FUNCTION_USAGE here.

2010-11-13  Mingming Sun  <mingm.sun@gmail.com>

	* doc/invoke.texi (MIPS Options): Add loongson3a processor.
	* config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
	(define_insn "prefetch"): Add TARGET_LOONGSON_3A.
	* config/mips/mips.h (TARGET_LOONGSON_3A): Define.
	(TUNE_LOONGSON_3A): Define.
	(TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
	(MIPS_ISA_LEVEL_SPEC): Add loongson3a.
	* config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
	(mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
	(mips_rtx_cost_data): Add Loongson-3A.

2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
	switches.

2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>

	* dwarf2out.c (macinfo_entry): New struct.
	(output_comp_unit): Emit the section start label here and flag that we
	will emit an info section.
	(dwarf2out_start_source_file): Save data in a macinfo entry rather than
	emitting directly.
	(dwarf2out_end_source_file): Likewise.
	(dwarf2out_define): Likewise.
	(dwarf2out_undef): Likewise.
	(output_macinfo): New.
	(dwarf2out_init): Do not emit debug section switches here, allocate a
	vec for macinfo, when required.
	(dwarf2out_finish): First switch to debug_abbrev_section here.
	debug_line_section,  debug_macinfo_section, Likewise.
	Check that the pubtypes table has at least one unpruned entry before
	trying to emit it.

2010-11-13  Paolo Bonzini  <bonzini@gnu.org>

	PR c/20385
	* c-parser.c (c_parser_next_token_starts_declaration): Rename to...
	(c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
	token lookahead.
	(c_parser_compound_statement_nostart, c_parser_label,
	c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
	(c_parser_declaration_or_fndef): Detect the case now matched by
	c_parser_next_tokens_start_declaration, give error and correct it.

2010-11-13  Paolo Bonzini  <bonzini@gnu.org>

	* c-tree.h (enum c_typespec_kind): Add ctsk_none.
	(struct c_declspecs): Replace tagdef_seen_p and type_seen_p
	with typespec_kind.
	* c-decl.c (build_null_declspecs): Initialize typespec_kind.
	(shadow_tag_warned, check_compound_literal_type): Adjust
	uses of tag_defined_p.
	(declspecs_add_type): Set typespec_kind.
	* c-parser.c (c_parser_declaration_or_fndef,
	c_parser_declspecs, c_parser_struct_declaration,
	c_parser_parameter_declaration, c_parser_type_name,
	c_parser_objc_diagnose_bad_element_prefix): Adjust uses
	of type_seen_p.
	* c-typeck.c (c_cast_expr): Use typespec_kind instead of
	tag_defined_p, pass ctsk_firstref through.

2010-11-13  Paolo Bonzini  <bonzini@gnu.org>

	* c-format.c (enum format_specifier_kind, kind_descriptions): New.
	(struct format_wanted_type): Replace field "name" with "kind", add
	"format_start" and "format_length".
	(check_format_info_main): Fill in new fields.  Fill in
	FORMAT_WANTED_TYPES even for missing arguments.  Move checks
	after the final NUL outside the while loop.  Do not include
	width and precision modifiers in the format_start/format_length
	of the main format.
	(check_format_types): Remove FORMAT_START and FORMAT_LENGTH
	arguments.  Compute WANTED_TYPE first so that format_type_warning
	can be called for missing arguments.  Adjust calls to
	format_type_warning.
	(format_type_warning): Fetch as much information as possible
	from format_wanted_type.  Adjust printing now that every
	warning has a "descr", as well as for missing argument warnings
	and to include % sign for format specifiers.

2010-11-12  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/46204
	* sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
	Update all callers.  Do not recompute topological order.  Adjust
	fallthrough edges following a degenerate conditional jump.

2010-11-12  Joseph Myers  <joseph@codesourcery.com>

	* opts-common.c (control_warning_option): New.
	* opts.c (set_default_handlers): New.
	(decode_options): Use set_default_handlers and
	control_warning_option.
	(common_handle_option): Update call to enable_warning_as_error.
	(enable_warning_as_error): Take gcc_options parameters.  Use
	control_warning_option.
	* opts.h (set_default_handlers, control_warning_option): Declare.

2010-11-12  Joseph Myers  <joseph@codesourcery.com>

	* Makefile.in (OPTS_H): Define.
	(c-decl.o, c-family/c-common.o, c-family/c-opts.o,
	c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
	cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
	opts-common.o, toplev.o, passes.o, matrix-reorg.o,
	ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
	* gcc.c (driver_handle_option): Take location_t parameter.
	(process_command, do_self_spec): Update calls to
	read_cmdline_option.
	* langhooks-def.h (lhd_handle_option): Take location_t parameter.
	* langhooks.c (lhd_handle_option): Take location_t parameter.
	* langhooks.h (handle_option): Take location_t parameter.
	* lto-opts.c (lto_reissue_options): Update call to set_option.
	* opts-common.c (handle_option): Make static.  Take location_t
	parameter and pass it to other functions.
	(handle_generated_option): Take location_t parameter and pass it
	to other functions.
	(read_cmdline_option): Take location_t parameter and pass it to
	other functions.  Use warning_at and error_at.
	(set_option): Take location_t parameter and pass it to other
	functions.
	* opts.c (common_handle_option): Take location_t parameter and
	pass it to other functions.
	(enable_warning_as_error): Make static.  Take location_t parameter
	and pass it to other functions.
	(lang_handle_option): Take location_t parameter and pass it to
	other functions.
	(target_handle_option): Take location_t parameter.
	(read_cmdline_options, maybe_default_option,
	maybe_default_options, default_options_optimization,
	decode_options): Take location_t parameter and pass it to other
	functions.
	* opts.h: Include input.h.
	(struct cl_option_handler_func, decode_options, set_option,
	handle_generated_option, read_cmdline_option): Take location_t
	parameters.
	(handle_option, enable_warning_as_error): Remove.
	* toplev.c (toplev_main): Update call to decode_options.

2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-cloog-util.c (oppose_constraint,
	cloog_matrix_to_ppl_constraint,
	new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
	CLooG isl uses unsigned integers.  This triggered a warning.

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

	PR target/46438
	* config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
	(xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
	(xtensa_function_arg_1): De-constify cum.
	(xtensa_expand_prologue): Use add_reg_note.

	PR target/46435
	* config/cris/cris.c (saved_regs_mentioned): Delete.
	(cris_reload_address_legitimized): Cast itype to enum reload_type.
	Remove unused variable op0p.
	(cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
	(cris_emit_movem_store): Use add_reg_note.

	PR bootstrap/46456
	* cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.

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

	* function.c (expand_function_end): Set the locator of the prologue on
	the stack checking insns.

2010-11-12  Richard Henderson  <rth@redhat.com>

	* config.gcc [xtensa] (extra_options): Add fused-madd.opt.
	* config/xtensa/xtensa.opt (mfused-madd): Remove.
	* config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
	MASK_FUSED_MADD.
	* config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
	(fnmasf4): Rename from mulsubsf3; use fma.

2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
	    Richard Henderson  <rth@redhat.com>

	PR target/46428
	* config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
	* config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
	comparison.

2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>

	* opts-common.c (decode_cmdline_option): Initialize separate_args.

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

	* doc/invoke.texi (early-inlining-insns): Update default.
	* params.def (early-inlining-insns): Default to 10.

2010-11-12  Olivier Hainque  <hainque@adacore.com>

	* config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.

2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/mips/iris6.h [!IRIX_USING_GNU_LD]
	(SUPPORTS_INIT_PRIORITY): Define.

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

	PR target/46430
	* config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
	* config/avr/driver-avr.c (avr_device_to_arch): Always return value.
	(avr_device_to_data_start, avr_device_to_startfiles): Likewise.
	(avr_device_to_devicelib): Likewise.
	* config/avr/avr.md (zero_extendqihi2): Put variable declarations
	into block.
	(zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
	(zero_extendhidi2, zero_extendsidi2): Likewise.
	* config/avr/avr.c (avr_num_arg_regs): Constify type.
	(avr_return_addr_rtx): De-constify tem.
	(avr_rotate_bytes): Move declarations to start of block.
	Don't use variable length array.  Put nested if/else into block.

	PR rtl-optimization/46433
	* var-tracking.c: Include tm_p.h .

	PR bootstrap/44756
	PR build/44767
	* doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
	should be unsigned.
	(STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
	* doc/tm.texi: Regenerate.

	PR target/46412
	* config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
	* config/bfin/bfin.c: Include sel-sched.h .
	(bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
	(expand_interrupt_handler_prologue): Remove unused variable insn.
	(bfin_load_pic_reg): Likewise.
	(bfin_rtx_costs): Make code / outer_code variables of type
	enum rtx_code, copied from re-named parameters.
	(bfin_local_alignment): Change align argument and return type
	to unsigned.
	(bfin_adjust_cost): Remove unused variable insn_type.
	Declare variables at start of block.
	(struct loop_info): Rename to...
	(struct loop_info_d).
	(workaround_rts_anomaly): Change type of icode to int.
	(harmless_null_pointer_p): Cast REGNO (..) to int before comparison
	with int-typed variable.
	(note_np_check_stores): Likewise.
	(trapping_loads_p): Remove unused variable pat.
	(bfin_expand_binop_builtin): Use expand_normal.
	(bfin_expand_unop_builtin): Likewise.
	(bfin_expand_builtin): Likewise.  Set tmode before use.

	PR middle-end/44769
	* final.c (split_double): Don't use BITS_PER_WORD directly in
	shift count.

	PR target/46431
	* config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
	assignment.

	PR target/46450
	* config/stormy16/stormy16.c (xstormy16_expand_prologue):
	Use add_reg_note.
	(xstormy16_function_arg): Dereference cum.
	(xstormy16_expand_builtin): Use expand_normal.
	Change type of omode to enum machine_mode.
	(combine_bnp): Rename and to and_insn.

	PR target/46437
	* config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
	localreg.

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

	PR debug/46375
	* emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.

2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>

	PR lto/46376
	* lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.

2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>

	PR c/44782
	* common.opt (fmax-errors=): New option.
	* opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
	* diagnostic.h (struct diagnostic_context): Add max_errors field.
	* diagnostic.c (diagnostic_initialize): Initialize it.
	(diagnostic_action_after_output): Exit if more than max_errors
	have been output.
	* doc/invoke.texi (Warning Options): Add -fmax-errors.
	(-fmax-errors): Document.

2010-11-11  Richard Henderson  <rth@redhat.com>

	* optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.

2010-11-11  Richard Henderson  <rth@redhat.com>

	* config/fused-madd.opt: New file.
	* config.gcc [i386-*, x86_64-*] (extra_options): Use it.
	* config/i386/i386.c (ix86_extra_costs): Handle FMA.
	(TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
	* config/i386/i386.opt (mfused-madd): Remove.
	* config/i386/sse.md (split_fma): Remove.
	(split_fms, split_fnma, split_fnms): Remove.

2010-11-12  Jakub Jelinek  <jakub@redhat.com>

	PR target/46088
	* config/i386/i386.md (*ashl<mode>3_cconly,
	*<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
	change nonimmediate_operand predicate to register_operand.

2010-11-11  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in (gengtype-lex.c): Include bconfig.h first.

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

	* opts.c (finish_options): Do not error on -flto-partition alone.

	* doc/invoke.texi (-fwhopr): Merge into -flto section.
	(-flto-partition): Document none.
	* gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
	* lto-wrapper.c: Update comment.
	(run_gcc): Update LTO option parsing.
	* opts.c (finish_options): add support -flto-partition=none
	(common_handle_option): Remove fwhopr.
	* common.opt: Turn fwhopr into flto.
	* collect2.c (main): Update option handling.
	* cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
	* ipa-split.c (execute_split_functions): Remove flag_whopr.
	* ipa.c (function_and_variable_visibility): Remove flag_whopr.
	* ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
	* varpool.c (decide_is_variable_needed): Remove flag_whopr.

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

	PR tree-optimize/40436
	* ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
	(eliminated_by_inlining_prob): ... this one; return 50% probability
	for SRA.
	(estimate_function_body_sizes): Update use of
	eliminated_by_inlining_prob; estimate static function size
	for 2 instructions.

2010-11-11  Joern Rennecke  <amylaar@spamcop.net>

	PR target/44749
	* config/mep/mep-protos.h (mep_legitimize_reload_address): Always
	declare.  Change type of argument four to type int.
	(mep_secondary_input_reload_class): Returns enum reg_class.
	(mep_secondary_output_reload_class): Likewise.
	(mep_function_value): Change types of arguments to cont_tree.
	* config/mep/mep.c (mep_legitimize_reload_address): Change type of
	argument four to type int.
	(mep_secondary_input_reload_class): Returns enum reg_class.
	(mep_secondary_output_reload_class): Likewise.
	(mep_function_value): Change types of arguments to cont_tree.
	* config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
	mep_regno_reg_class to enum reg_class.

2010-11-11  Richard Henderson  <rth@redhat.com>

	* tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
	that the target has the exact fma operation that we matched.

2010-11-11  Joseph Myers  <joseph@codesourcery.com>

	* reginfo.c (fix_register): Avoid inserting English word in
	diagnostic sentence.  Use %qs for quoting and %'.

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

	* config/i386/driver-i386.c (host_detect_local_cpu): Support
	Intel processor family 6, model 0x2c.

2010-11-11  Joseph Myers  <joseph@codesourcery.com>

	* opts.c (warning_as_error_callback,
	register_warning_as_error_callback): Remove.
	(enable_warning_as_error): Don't use warning_as_error_callback.
	* opts.h (register_warning_as_error_callback): Remove.

2010-11-11  Richard Henderson  <rth@redhat.com>

	* tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
	in between the MULT and the PLUS/MINUS.

2010-11-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/46388
	* expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
	BLKmode mode for it.
	(expand_expr_real_1): Similarly for op0.

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

	* doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
	Document optional target selector.

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

	* lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
	assembling high and low parts of size if not using 32-bit HWINT; else
	use DECL_SIZE_UNITS, not DECL_SIZE.

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

	PR tree-optimization/46383
	* ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
	offsets.
	(compute_complex_ancestor_jump_func): Likewise.
	* tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.

2010-11-11  Jakub Jelinek  <jakub@redhat.com>

	PR debug/46150
	* tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
	true if expr1->hash != expr2->hash.

2010-11-10  Joseph Myers  <joseph@codesourcery.com>

	* cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
	diagnostics with lowercase letters.
	* cgraphunit.c (verify_cgraph_node): Start diagnostics with
	lowercase letters.
	* collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
	diagnostic.
	* config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
	* config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
	lowercase letters.
	* config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
	Remove trailing ' ' from diagnostic.
	* config/avr/avr.c (print_operand_address): Start diagnostic with
	a lowercase letter and remove trailing '.'.
	* config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
	* config/bfin/bfin.c (bfin_option_override): Start diagnostics
	with lowercase letters.  Use %' in diagnostics.  Remove trailing
	'.' from diagnostics.
	(bfin_handle_longcall_attribute): Use %' in diagnostic.
	* config/cris/cris.c (cris_split_movdx,
	cris_expand_pic_call_address): Start diagnostics with lowercase
	letters.
	(cris_asm_output_label_ref): Use %' in diagnostic.
	* config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
	letter.
	* config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
	lowercase letter.
	* config/darwin-c.c (version_as_macro): Start diagnostic with a
	lowercase letter.
	* config/darwin-driver.c (darwin_default_min_version): Use %' in
	diagnostic.
	* config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
	diagnostic.
	* config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
	* config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
	diagnostics.
	* config/i386/i386.c (ix86_option_override_internal): Write
	diagnostic as a single sentence without trailing '.'.  Use %' in
	diagnostics.
	(ix86_function_sseregparm, classify_argument): Start diagnostics
	with lowercase letters.
	(ix86_expand_prologue): Use %' in diagnostic.
	* config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
	diagnostic.
	* config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
	lowercase letter.
	* config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
	diagnostic.
	* config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
	* config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
	'`' in help text.
	* config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
	lowercase letter.
	* config/mep/mep.c (mep_validate_vliw): Start diagnostics with
	lowercase letters.
	* config/microblaze/microblaze.c (microblaze_handle_option):
	Remove trailing '.' from diagnostic.
	(print_operand): Start diagnostic with a lowercase letter.
	* config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
	lowercase letters.  Avoid '`' in diagnostics.
	* config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
	lowercase letters.  Avoid '`' in diagnostics.
	* config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
	lowercase letters.  Avoid '`' in diagnostics.
	* config/picochip/picochip.c (picochip_option_override,
	picochip_emit_save_register, picochip_function_arg,
	picochip_output_label, picochip_output_internal_label,
	picochip_asm_output_opcode, picochip_output_cbranch,
	picochip_output_compare, picochip_output_branch,
	picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
	diagnostics. Start diagnostics with lowercase letters.  Use %' in
	diagnostics.
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Use
	"SPE" capitalization.  Start diagnostic with a lowercase letter.
	(rs6000_handle_option): Start diagnostics with lowercase letters.
	(def_builtin): Remove trailing '.' from diagnostic.
	(rs6000_savres_routine_name): Start diagnostic with a lowercase
	letter.
	* config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
	diagnostic.
	* config/rx/rx.c (rx_handle_option): Start diagnostic with a
	lowercase letter.
	* config/s390/s390.c (s390_option_override) Start diagnostics with
	lowercase letters.  Use %' in diagnostic.
	* config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
	lowercase letters.
	* config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
	diagnostic.
	* config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
	diagnostic.
	* config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
	diagnostic.
	* config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
	* config/spu/spu.c (spu_option_override): Start diagnostics with
	lowercase letters.  Use %qs for quoting in diagnostics.
	(spu_check_builtin_parm): Remove trailing '.' from diagnostics.
	Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
	* config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
	from diagnostic.
	* convert.c (convert_to_integer, convert_to_vector): Use %' in
	diagnostics.
	* dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
	letter and use "cannot" spelling.
	* expmed.c (extract_fixed_bit_field): Start diagnostic with
	lowercase letter and format as a single sentence without '.'.
	* ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
	Use %' in diagnostics.
	* ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
	Use %' in diagnostics.
	* ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
	Use %' in diagnostics.
	* graph.c (clean_graph_dump_file): Use %' in diagnostic.
	* graphite-poly.c (graphite_read_scop_file): Start diagnostics
	with lowercase letters and remove tailing '.' and '\n'.
	* lto-cgraph.c (input_profile_summary): Start diagnostic with
	lowercase letter and remove trailing '.'.
	(input_cgraph): Start diagnostics with lowercase letters and
	remove trailing '\n'.
	* opts.c (finish_options, common_handle_option): Start diagnostics
	with lowercase letters and remove trailing '.'.  Fix typo in
	diagnostic.
	* passes.c (position_pass): Start diagnostic with lowercase letter.
	* plugin.c (add_new_plugin, parse_plugin_arg_opt,
	register_callback, try_init_one_plugin): Start diagnostics with
	lowercase letters.
	* reload1.c (spill_failure): Use %' in diagnostic.
	(gen_reload): Start diagnostic with a lowercase letter.
	* stor-layout.c (place_field): Start diagnostic with a lowercase
	letter.
	* toplev.c (open_auxiliary_file): Use %' in diagnostic.
	* tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
	verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
	Start diagnostics with lowercase letters, remove trailing '.' and
	use %' in diagnostics.
	* tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
	(verify_ssa): Don't split diagnostic across two error calls.
	Spell out "number" and use %' in diagnostic.
	* value-prof.c (visit_hist, check_counter): Start diagnostics with
	lowercase letters.

2010-11-10  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/46419
	* config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
	(_mm_cvtpu16_ps): Ditto.

2010-11-10  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (flag_excess_precision_cmdline, flag_generate_lto,
	warn_larger_than, larger_than_size, warn_frame_larger_than,
	frame_larger_than_size, flag_gen_aux_info, flag_shlib,
	default_visibility, flag_tls_default): New Variable declarations.
	(aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
	falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
	(v): Declare as Common and document here.
	* flags.h (default_visibility, flag_generate_lto,
	warn_larger_than, larger_than_size, warn_frame_larger_than,
	frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
	flag_shlib, flag_excess_precision_cmdline): Remove.
	(set_Wstrict_aliasing): Update prototype.
	* gcc.c (verbose_flag): Remove.
	(driver_handle_option): Add diagnostic_context parameter.  Don't
	handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
	incrementing it.
	* opts-common.c (handle_option): Pass dc to handler.
	* opts.c (warn_larger_than, larger_than_size,
	warn_frame_larger_than, frame_larger_than_size,
	default_visibility): Remove.
	(common_handle_option): Add diagnostic_context parameter.
	(set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
	gcc_options parameters.
	(lang_handle_option, target_handle_option, read_cmdline_options,
	decode_options): Add diagnostic_context parameters.
	(finish_options): Access option state through opts pointer where
	possible.
	(common_handle_option): Access option state through opts pointer
	where possible.  Do not set local static variable verbose.  Do not
	explicitly handle OPT_v, OPT_Wstrict_aliasing_,
	OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
	OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
	OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
	OPT_fwhopr_.  Do not explicitly set .opt file variables for
	OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
	(set_Wstrict_aliasing): Add gcc_options parameter.
	* opts.h (struct cl_option_handler_func): Add diagnostic_context
	parameter to handler.
	(decode_options): Add diagnostic_context parameter.
	* toplev.c (dump_base_name, dump_dir_name, aux_base_name,
	asm_file_name, flag_generate_lto, flag_gen_aux_info,
	aux_info_file_name, flag_shlib, flag_tls_default,
	flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
	(toplev_main): Pass global_dc to decode_options.
	* toplev.h (dump_base_name, dump_dir_name, aux_base_name,
	aux_info_file_name, asm_file_name): Remove.
	* tree.h (flag_tls_default): Remove.

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

	PR target/45986
	* config/sparc/sparc.c (sparc_delegitimize_address): New function.
	(TARGET_DELEGITIMIZE_ADDRESS): Define to above.

2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>

	* config.gcc (i[34567]86-*-*): Include tbmintrin.h.
	(x86_64-*-*): Likewise.
	* config/i386/cpuid.h: Define TBM bit.
	* config/i386/driver-i386.c (host_detect_local_cpu): Define
	and set has_tbm.
	* config/i386/i386-c.c (ix86_target_macros_internal): Check
	isa_flag for TBM.
	* config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
	(OPTION_MASK_ISA_TBM_UNSET): New.
	(ix86_handle_option): Handle -mtbm.
	(isa_opts): Add -mtbm.
	(enum pta_flags): Add PTA_TBM.
	(ix86_option_override_internal): Add TBM support.
	(ix86_valid_target_attribute_inner_p): Handle -mtbm.
	(IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
	(IX86_BUILTIN_BEXTRI64): Likewise.
	(bdesc_args): Add TBM intrinsics.
	(ix86_expand_builtin): Add TBM specific case.
	* config/i386/i386.h (TARGET_TBM): New for TBM.
	* config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
	(tbm_bextri_<mode>): Likewise.
	(*tbm_blcfill_<mode>): Likewise.
	(*tbm_blci_<mode>): Likewise.
	(*tbm_blcic_<mode>): Likewise.
	(*tbm_blcmsk_<mode>): Likewise.
	(*tbm_blcs_<mode>): Likewise.
	(*tbm_blsfill_<mode>): Likewise.
	(*tbm_blsic_<mode>): Likewise.
	(*tbm_t1mskc_<mode>): Likewise.
	(*tbm_tzmsk_<mode>): Likewise.
	* config/i386/i386.opt: Add -mtbm.
	* config/i386/tbmintrin.h (__bextri_u32): New.
	(__blcfill_u32): Likewise.
	(__blci_u32): Likewise.
	(__blcic_u32): Likewise.
	(__blcmsk_u32): Likewise.
	(__blcs_u32): Likewise.
	(__blsfill_u32): Likewise.
	(__blsic_u32): Likewise.
	(__t1mskc_u32): Likewise.
	(__tzmsk_u32): Likewise.
	(__bextri_u64): Likewise.
	(__blcfill_u64): Likewise.
	(__blci_u64): Likewise.
	(__blcic_u64): Likewise.
	(__blcmsk_u64): Likewise.
	(__blcs_u64): Likewise.
	(__blsfill_u64): Likewise.
	(__blsic_u64): Likewise.
	(__t1mskc_u64): Likewise.
	(__tzmsk_u64): Likewise.
	* config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
	* doc/invoke.texi: Document -mtbm.
	* doc/extend.texi: Document TBM built-in functions.

2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>

	* config.gcc (i[34567]86-*-*): Include bmiintrin.h.
	(x86_64-*-*): Likewise.
	* config/i386/cpuid.h: Define BMI bit.
	* config/i386/driver-i386.c (host_detect_local_cpu): Define
	and set has_bmi.
	* config/i386/i386-c.c (ix86_target_macros_internal): Check
	isa_flag for BMI.
	* config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
	(OPTION_MASK_ISA_BMI_UNSET): New.
	(ix86_handle_option): Handle -mbmi.
	(isa_opts): Add -mbmi.
	(enum pta_flags): Add PTA_BMI.
	(ix86_option_override_internal): Add BMI support.
	(ix86_valid_target_attribute_inner_p): Handle -mbmi.
	(IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
	(IX86_BUILTIN_BEXTR64): Likewise.
	(IX86_BUILTIN_CTZS): Likewise.
	(bdesc_args): Add BMI intrinsics.
	(ix86_expand_args_builtin): Add BMI specific cases.
	* config/i386/i386.h (TARGET_BMI): New for BMI.
	(CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
	(CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
	* config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
	(UNSPEC_TZCNT): Likewise.
	(ctz<mode>2): Add tzcnt, and handle 16 bit operands.
	(bmi_andn_<mode>): New for BMI.
	(bmi_bextr_<mode>): Likewise.
	(bmi_blsi_<mode>): Likewise.
	(bmi_blsmsk_<mode>): Likewise.
	(bmi_blsr_<mode>): Likewise.
	* config/i386/i386.opt: Add -mbmi.
	* config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
	* config/i386/bmiintrin.h (__lzcnt_u16): New.
	(__tzcnt_u16): Likewise.
	(__andn_u32): Likewise.
	(__bextr_u32): Likewise.
	(__blsi_u32): Likewise.
	(__blsmsk_u32): Likewise.
	(__blsr_u32): Likewise.
	(__lzcnt_u32): Likewise.
	(__tzcnt_u32): Likewise.
	(__andn_u64): Likewise.
	(__bextr_u64): Likewise.
	(__blsi_u64): Likewise.
	(__blsmsk_u64): Likewise.
	(__blsr_u64): Likewise.
	(__lzcnt_u64): Likewise.
	(__tzcnt_u64): Likewise.
	* doc/invoke.texi: Document -mbmi and -mno-bmi.
	* doc/extend.texi: Document BMI built-in functions.

2010-11-10  Jan Hubicka  <jh@suse.cz>

	PR tree-optimize/46228
	* doc/invoke.texi (comdat-sharing-probability): Document.
	* ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
	* params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.

2010-11-10  Jan Hubicka  <jh@suse.cz>

	PR tree-optimize/46228
	* cgraph.c (cgraph_propagate_frequency): Fix typo.

2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR tree-optimization/46414
	* tree-inline.c (estimate_move_cost): Check preferred vector
	mode for vector type.

2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.

2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/45971
	* tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
	for phi nodes analyzable by scev.

2010-11-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44964
	* ipa-inline.c (cgraph_flatten): Check that SSA form matches.

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

	PR tree-optimization/46351
	PR tree-optimization/46377
	* tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
	aggregate bit-fields.

2010-11-10  Joseph Myers  <joseph@codesourcery.com>

	* doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
	* doc/tm.texi: Regenerate.
	* opts-common.c (tm.h): Don't include.
	(target_option_translations): Remove.
	(decode_cmdline_options_to_array): Don't handle translating options.
	* system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
	* config/darwin-driver.c: Don't condition includes on
	CROSS_DIRECTORY_STRUCTURE.
	(darwin_default_min_version): Make static.
	(darwin_driver_init): New.  Call darwin_default_min_version if not
	CROSS_DIRECTORY_STRUCTURE.
	* config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
	(DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
	(ASM_SPEC): Add %{static}.
	(darwin_default_min_version): Don't declare.
	(darwin_driver_init): Declare.
	(GCC_DRIVER_HOST_INITIALIZATION): Define to call
	darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
	* config/darwin.opt (all_load, allowable_client,
	arch_errors_fatal, bind_at_load, bundle, bundle_loader,
	dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
	exported_symbols_list, filelist, findirect-virtual-calls,
	flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
	framework, fterminated-vtables, gfull, gused, image_base, init,
	install_name, multi_module, multiply_defined,
	multiply_defined_unused, no_dead_strip_inits_and_terms,
	seg_addr_table, seg_addr_table_filename, segaddr,
	segs_read_only_addr, segs_read_write_addr, single_module,
	umbrella, unexported_symbols_list, weak_reference_mismatches,
	Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
	Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
	Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
	Zno_dead_strip_inits_and_terms, Zsingle_module): New.
	* config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
	(ASM_SPEC): Add %{static}.
	(SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
	* config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
	(DRIVER_SELF_SPECS): Handle options formerly in
	TARGET_OPTION_TRANSLATE_TABLE.
	* config/mep/mep.opt (mfar): New.
	* config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
	(DRIVER_SELF_SPECS): Define.  Handle options formerly in
	TARGET_OPTION_TRANSLATE_TABLE.
	* config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
	(SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
	* config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
	ffix-and-continue, findirect-data): New.
	* config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
	* config/rx/rx.opt (nofpu): Make into alias of mnofpu.
	(mnofpu): Define mask and use Report here.

2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_emit_prologue): Report the stack
	size if -fstack-usage is used.

2010-11-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46398
	* tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.

2010-11-10  Joern Rennecke  <amylaar@spamcop.net>

	PR target/44760
	* config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
	(REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
	GP_REG_OR_PSEUDO_STRICT_P.
	* config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
	unexpected alternative.
	(*movsf_internal): Likewise.
	(indirect_jump): Replace call to non-existant function with call to
	internal_error.
	(tablejump): Likewise.
	* config/iq2000/iq2000.c: Include df.h .
	(iq2000_function_arg_advance): Use CONST_CAST2.
	(compute_frame_size, iq2000_expand_prologue): Remove unused variables.
	(iq2000_can_eliminate): Call leaf_function_p instead of testing for
	a non-zero function address.
	(iq2000_initial_elimination_offset): Add gcc_unreachable for
	unexpected value of FROM.
	(symbolic_expression_p): Delete.
	(iq2000_function_value): Constify func.
	(expand_one_builtin): Use expand_normal.
	(iq2000_print_operand): Don't print VALUE if calculating it failed.

	PR rtl-optimization/44764
	* addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.

	PR target/46407
	* config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
	* config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
	with ATTRIBUTE_UNUSED.
	(valid_psw_flag): Constify parameter which.
	(rx_memory_move_cost): Change type of parameter regclass to reg_class_t.

	PR target/46415
	* config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
	(mmix_dbx_register_number): Likewise.
	* config/mmix/mmix.c: Include df.h .
	(mmix_local_alignment): Change argument basic_align and return type
	to unsigned.
	(mmix_dbx_register_number): Change argument and return type to
	unsigned.
	(mmix_expand_prologue): Use add_reg_note.

	PR target/46417
	* config/spu/spu.c (spu_expand_insv): Remove unused variables.
	(spu_split_store): Use aform.
	(spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.

2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	PR/46268
	* doc/gty.texi (GTY Options): Clarify that variable_size produces
	allocators taking size in bytes, compare with length option.  Add
	size calculation example.
	(Invoking the garbage collector): Ensure that sentences are
	followed by two spaces.  Describe that pointer fields must be
	initialized at ggc_collect call.
	(Troubleshooting): New section.

2010-11-09  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/40436
	* ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
	* tree-inline.c (estimate_num_insns): Inexpensive builtins are like
	normal instructions; be sure bultin is not implemented in this file;
	compute non-zero return cost.
	(init_inline_once): Reduce builtin_call_cost to 1; set return cost.
	* tree-inline.h (eni_weights_d): Add return cost.

2010-11-09  Joseph Myers  <joseph@codesourcery.com>

	* c-parser.c (c_parser_struct_declaration): Handle declaration
	specifiers followed by CPP_CLOSE_BRACE.

2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
	split occurs before reload, and we allocate memory at the time of
	the split, not during expansion.  Add attributes.
	(floatsi<mode>2_lfiwax_mem): Ditto.
	(floatunssi<mode>2_lfiwzx): Ditto.
	(floatunssi<mode>2_lfiwzx_mem): Ditto.
	(floatsidf2): Ditto.
	(floatunssisf2): Ditto.
	(floatunssidf2): Ditto.
	(fix_trunc<mode>si2): Ditto.
	(fix_trunc<mode>si2_stfiwx): Ditto.
	(fix_trunc<mode>si2_internal): Ditto.
	(fix_trunc<mode>si2): Ditto.
	(fix_trunc<mode>di2): Ditto.
	(fixuns_trunc<mode>si2_stfiwx): Ditto.
	(floatsisf2): Ditto.
	(floatdidf2_mem): Ditto.
	(floatunsdidf2_mem): Ditto.
	(floatunsdidf2): Ditto.
	(floatdisf2_internal1): Ditto.
	(floatdisf2_mem): Ditto.
	(floatunsdisf2_mem): Ditto.
	(floatsi<mode>2_lfiwax_mem2): Delete.
	(floatunssi<mode>2_lfiwzx_mem2): Ditto.
	(fix_trunc<mode>si2_mem): Ditto.
	(fixuns_trunc<mode>si2_mem): Ditto.
	(round32<mode>2_fprs): New combiner insn to combine (double)(int)
	type operations to reduce copying the values to multiple memory slots.
	(roundu32<mode>2_fprs): Ditto.

	* config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
	PRE_INC, PRE_DEC, PRE_MODIFY.
	(rs6000_expand_convert_si_to_sfdf): Delete, no longer used.

	* config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
	Delete prototype.

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

	PR target/43808
	* cfgexpand.c (partition_stack_vars): Call
	update_alias_info_with_stack_vars unconditionally.
	(update_alias_info_with_stack_vars): Allow unused
	unreferenced vars when not optimizing.

2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/46036
	* tree-if-conv.c (predicate_bbs): Call unshare_expr before
	add_to_dst_predicate_list.

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

	PR debug/46171
	* df-problems.c (struct dead_debug_use, struct dead_debug): Move
	earlier.
	(df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
	argument, call dead_debug_reset when adding REG_UNUSED note.
	(dead_debug_reset): New function.
	(df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
	df_create_unused_note callers.

2010-11-09  Anatoly Sokolov  <aesok@post.ru>

	* config/fr30/fr30.c: Include "df.h".

2010-11-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46355
	* tree-loop-distribution.c (tree_loop_distribution): Do not
	distribute loops without a single exit.

2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR rtl-optimization/46237
	* ira-conflicts.c (ira_build_conflicts): Record conflicts for call
	saved hard regs if they might get partially clobbered.

2010-11-09  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.

2010-11-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46177
	* tree-loop-distribution.c (prop_phis): Remove.
	(generate_builtin): Re-use the old loop exit edge to avoid
	needing to update PHI nodes.

2010-11-09  Joern Rennecke  <amylaar@spamcop.net>

	* config/i386/i386.c (ix86_expand_split_stack_prologue): Change
	type of args_size to unsigned HOST_WIDE_INT.

	PR target/44755
	* config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
	* config/t-pnt16-warn: New file.
	* config/picochip/picochip.c (picochip_emit_stack_allocate):
	Use add_reg_note.
	(picochip_emit_save_register): Likewise.
	(picochip_emit_restore_register): Remove variable insn.
	(picochip_legitimize_address): Don't use C++ style comments.
	(picochip_legitimize_reload_address): Likewise.
	(reorder_var_tracking_notes): Remove variable vliw_start.
	(picochip_reorg): Cast first arguemnt to emit_note_after to
	enum insn_note.
	(picochip_expand_builtin_2op): Use EXPAND_NORMAL.
	(picochip_expand_builtin_3op): Likewise.
	(picochip_expand_builtin_2opvoid): Likewise.
	(picochip_expand_array_get, picochip_expand_array_put): Likewise.
	(picochip_expand_array_testport): Likewise.
	(picochip_init_builtins): Remove unused variables.
	* config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
	to unsigned long, and output it as such.
	(ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
	* config/picochip/picochip.md (movhicc): Remove nonsense statement.
	(schedType): Cast result of picochip_schedule_type to
	enum attr_schedType.

	PR target/44759
	* config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
	conditional to type of S.
	(mn10300_function_arg): Remove unused variable align.
	(mn10300_arg_partial_bytes): Likewise.
	* config/mn10300/mn10300.md (attribute cpu): Cast value to
	enum attr_cpu.

2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/46392
	* gengtype-parse.c (type): Call get_input_file_name to get file name.

2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h (contains_placeholder_p): Fix comment.
	(type_contains_placeholder_p): Adjust comment.
	* tree.c (contains_placeholder_p): Fix comment.
	(type_contains_placeholder_1): Do not recurse on pointed-to types and
	adjust comment.
	(type_contains_placeholder_p): Add comment.

2010-11-09  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
	output of byte values.

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

	PR middle-end/46360
	* tree-ssa-propagate.c (update_call_from_tree): Fix for use
	not in SSA mode.

2010-11-09  Richard Guenther  <rguenther@suse.de>

	PR middle-end/46221
	* varasm.c (compute_visible_aliases): New function.
	(remove_unreachable_alias_pairs): Aliases make a target available
	even though we reclaimed the cgraph node.
	(finish_aliases_1): Likewise.
	* Makefile.in (varasm.o): Add pointer-set.h dependency.

2010-11-09  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300-modes.def: New file.

2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
	    Jeremie Salvucci  <jeremie.salvucci@free.fr>

	* gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
	(plugin_files, get_file_basename, get_file_realbasename)
	(get_file_langdir, error_at_line, gt_files, this_file)
	(system_h_file, read_input_list, create_field_all)
	(get_file_srcdir_relative_path, get_file_basename)
	(get_file_langdir, get_file_gtfilename)
	(get_output_file_with_visibility, get_output_file_name)
	(struct flist, put_mangled_filename, walk_type)
	(put_mangled_filename, finish_root_table, write_roots): Use
	input_file-s.
	(lang_dir_names, num_lang_dirs): Remove static.
	(get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
	(main): Use input_file-s.

	* gengtype.h: (struct input_file_st, input_file): New type.
	(struct fileloc): Use it.
	(gt_files, num_gt_files, this_file, system_h_file)
	(input_file_by_name, get_file_srcdir_relative_path): Use input_file.
	(get_input_file_name): New function.
	(get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
	use input_file.
	(lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
	(get_output_file_name): Ditto.

	* gengtype-lex.l (yybegin): Use input_file.

	* gengtype-parse.c (parse_error): Use input_file.

2010-11-08  Xinliang David Li  <davidxl@google.com>

	PR tree-optimization/46316
	* tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
	* double-int.h (double_int_mul_with_sign): New function.
	* double-int.c (double_int_mul_with_sign): New function.

2010-11-08  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.

2010-11-08  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.md (negsi2): Fix wrong code.

2010-11-08  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
	to 8 bits.

2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/46378
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
	turn on ISA 2.04 rounding instructions for power5.

	* config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
	not ISA 2.02.

	PR target/45585
	* config/rs6000/darwin.md (movdi_low): Allow DImode values to be
	in FPR registers.
	(movdi_low_st): Ditto.

2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
	    Richard Henderson  <rth@redhat.com>

	PR target/44758
	* config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
	(attribute acc_group): Cast value to enum attr_acc_group.
	(*movdi_nodouble+6): Use gen_int_mode.
	* config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
	if RTX_CODE is defined or not.
	* config/frv/frv.c (enum frv_io_type): New enum, broken out of
	struct frv_io.
	(frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
	(frv_frame_access, frv_expand_prologue): Remove unused variables.
	(frv_expand_block_clear): Likewise.
	(frv_trampoline_init): Use LCT_NORMAL.
	(struct frv_packet_group): New struct, broken out of type of
	frv_packet.
	(frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
	use cast in loop counter increment.
	(frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
	assigning to io->type.
	(bdesc_set): Use rtx_code UNKNOWN in initializer.
	(bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
	(bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
	(bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
	(frv_read_argument): Use expand_normal.

	PR target/44757
	* config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
	lm32_legitimate_constant_p.
	* config/lm32/lm32.md (ashlsi3): Remove unused variable.
	* config/lm32/lm32.c (gen_int_relational): Make new block for
	LE / LT / LEU / LTU case.  Declare variables at start of block.
	(lm32_block_move_inline): Use XALLOCAVEC.

2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.

2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>

	* gengtype (get_output_file_for_structure): Ensure type is union
	or struct.
	(write_splay_tree_allocator_def): Use
	get_output_file_with_visibility.

2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_handle_arch_option): Set type and flags
	to defined values in case of an error.
	(s390_option_override): Skip further processing if the -march
	parameter wasn't recognized.

2010-11-08  Joern Rennecke  <amylaar@spamcop.net>

	* caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
	assert that REG is a hard register number before using it as an index.

	PR bootstrap/46358
	* config/i386/i386.c (ix86_expand_split_stack_prologue):
	Avoid warnings when HOST_WIDE_INT is 32 bit.

2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/46208
	* config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
	(sparc_promote_prototypes): Likewise.
	(sparc_promote_function_mode): Promote in 32-bit mode as well.
	(sparc_return_in_memory): Remove superfluous parentheses.
	(sparc_struct_value_rtx): Fix long lines.
	(sparc_function_value_1): Promote in 32-bit mode as well.

2010-11-08  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/45352
	* sel-sched.c (find_best_expr): Do not set pneed_stall when
	the variable_issue hook is not implemented.
	(fill_insns): Remove dead variable stall_iterations.
	(init_seqno_1): Force EBB start for resetting sched cycles on any
	successor blocks of the rescheduled region.
	(sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
	(reset_sched_cycles_in_current_ebb): Add debug printing.
	New variable issued_insns.  Advance state when we have issued
	issue_rate insns.

2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>

	* gengtype (main): Get here's position using POS_HERE macro for
	do*typedef calls.

2010-11-07  Ian Lance Taylor  <iant@google.com>

	PR target/46089
	* config/i386/i386.c (split_stack_fn_large): New static variable.
	(ix86_expand_split_stack_prologue): Handle large model.

2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>

	* config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
	all possible addressing modes.

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

	PR tree-optimization/46346
	* tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.

2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c: Revert previous patch.
	* config/mips/mips.md: Likewise.

2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_rtx_costs): Handle FMA.
	* config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
	(*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
	(*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
	(*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
	to use FMA.
	(fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
	(fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
	(fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
	(fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.

2010-11-06  Simon Martin  <simartin@users.sourceforge.net>

	PR c/43384
	* c-decl.c (lookup_label): Labels can only be referenced in a
	function's scope.
	(store_parm_decls_oldstyle): Skip erroneous parameters.

2010-11-06  Anatoly Sokolov  <aesok@post.ru>

	* config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
	LIBCALL_VALUE): Remove macros.
	* config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
	TARGET_FUNCTION_VALUE_REGNO_P): Define.
	(fr30_function_value_regno_p, fr30_function_value,
	fr30_libcall_value): New functions.

2010-11-06  Joern Rennecke  <amylaar@spamcop.net>

	PR middle-end/46314
	* target.def (generate_internal_label): New asm_out hook.
	* output.h (default_generate_internal_label): Declare.
	* varasm.c (default_generate_internal_label): Define.

2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>

	PR target/44981
	* doc/extend.tex (format): Document NSString extension.
	(format_arg): Likewise.
	(Darwin Format Checks): New section.
	* doc/tm.texi: Document string object hooks (generated).
	* doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
	(TARGET_STRING_OBJECT_REF_TYPE_P): New.
	(TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
	* target.def (objc_construct_string_object): Rename, amend
	documentation.
	(string_object_ref_type_p): New hook.
	(check_string_object_format_arg): New hook.
	* c-parser.c (c_parser_attributes): Allow objective-c class names as
	attribute identifiers.
	* config/darwin-c.c (darwin_cfstring_ref_p): New.
	(darwin_check_cfstring_format_arg): New.
	(darwin_additional_format_types): New.
	* config/darwin-protos.h (darwin_cfstring_ref_p) New.
	(darwin_check_cfstring_format_arg): New.
	* config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
	(TARGET_STRING_OBJECT_REF_TYPE_P): New.
	(TARGET_N_FORMAT_TYPES): New.
	(TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.

2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
	    Pascal Obry  <obry@adacore.com>

	* config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
	in 64-bit mode and 17 otherwise.

2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR debug/45939
	* var-tracking.c (emit_note_insn_var_location): Make sure that
	call related var location notes come before the normal ones.

2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/46326
	* config/i386/i386.c (ix86_delegitimize_address): Fix a typo
	in the last change.

2010-11-05  Ian Lance Taylor  <iant@google.com>

	* explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.

2010-11-05  Jakub Jelinek  <jakub@redhat.com>

	PR c/44772
	* c-decl.c (warn_cxx_compat_finish_struct): Don't call
	pointer_set_contains if DECL_NAME is NULL.

2010-11-05  Ian Lance Taylor  <iant@google.com>

	PR target/46084
	* explow.c (allocate_dynamic_stack_space): If flag_split_stack,
	request enough additional space for alignment, and force alignment.

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

	* config/i386/i386.c (legitimate_pic_address_disp_p):
	Handle UNSPEC_PCREL.
	(ix86_legitimate_address_p): Likewise.
	(legitimize_pic_address): Likewise.
	(output_pic_addr_const): Likewise.
	(ix86_delegitimize_address): Likewise.
	(ix86_find_base_term): Likewise.
	(memory_address_length): Likewise.
	(x86_output_mi_thunk): Handle special case x64
	for non local binding.
	* config/i386/i386.md (UNSPEC_PCREL): New.
	* config/i386/winnt.c (i386_pe_binds_local_p):
	Allow weak symbol for x64 windows with non-local binding.

2010-11-05  Jakub Jelinek  <jakub@redhat.com>

	PR target/45670
	* expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
	instead of EXPAND_NORMAL for base expansion.

2010-11-05  Uros Bizjak  <ubizjak@gmail.com>

	* config.gcc: Support --with-fpmath=avx for x86.
	* config/i386/avxmath.h: New.
	* doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.

2010-11-05  Ian Lance Taylor  <iant@google.com>

	* tree.h (struct tree_type): Don't use descbits in GTY annotation.
	* gengtype.c (walk_type): Don't recognize descbits option.

2010-11-05  Joseph Myers  <joseph@codesourcery.com>

	* defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
	WORD_SWITCH_TAKES_ARG): Remove.
	* doc/options.texi (Args): Document.
	* doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
	* doc/tm.texi: Regenerate.
	* opt-functions.awk (switch_flags): Handle Args.
	* opts-common.c: Update comment on tm.h include.
	(decode_cmdline_option): Handle options with multiple arguments.
	Don't check WORD_SWITCH_TAKES_ARG for unknown options.
	* opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
	(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
	CL_COMMON): Update values.
	* system.h (WORD_SWITCH_TAKES_ARG): Poison.
	* config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
	* config/darwin.opt (Zsegaddr, sectalign, sectcreate,
	sectobjectsymbols, sectorder, segcreate, segprot): New.

2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
	256bit AVX register is used.
	(ix86_expand_vector_move_misalign): Likewise.
	(ix86_expand_vector_move): Replace use_avx256_p with
	VALID_AVX256_REG_MODE.

2010-11-05  Joern Rennecke  <amylaar@spamcop.net>

	 PR target/44750
	* config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
	change.  Set $@-warn.o to -Wno-error.

	PR bootstrap/44756
	* expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
	comparing it to a signed value.

	PR middle-end/44766
	* expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
	PR bootstrap/44770
	* haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
	to i.

	PR target/44754
	* config/m32c/m32c.c (m32_function_arg): Rename declaration to...
	(m32c_function_arg).  Add comma between arguments two and three.
	(m32c_promote_prototypes): Remove declaration.
	(current_function_special_page_vector): Likewise.
	(m32c_regno_reg_class): Change return type to enum reg_class.
	(m32c_pushm_popm): Use add_reg_note.
	(m32c_push_rounding): Change return type to unsigned int.
	(m32c_legitimize_reload_address): Cast argument 11 to push_reload to
	enum reload_type.
	(m32c_insert_attributes): Constify variable name.
	(m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
	(m32c_prepare_shift): Remove variable lref.
	(m32c_expand_movcc): Remove variable cmp.
	(m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
	(m32c_compare_redundant): Remove variable op2.
	* config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
	(m32c_pragma_memregs): Assign the number to target_memregs.
	(m32c_pragma_address): Remove variable var_str.
	* config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
	enum reg_class.
	(LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
	* config/m32c/bitops.md (andsi3): Add default case to switch.
	(iorsi3, xorsi3): Likewise.
	* config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
	* config/m32c/jump.md (call, call_value): Likewise.
	* config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
	(m32c_regno_reg_class): Likewise.
	(current_function_special_page_vector): Declare.

2010-11-05  Jakub Jelinek  <jakub@redhat.com>

	* cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.

	PR tree-optimization/46099
	* tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
	if it is NULL and uid wasn't found in the hash table.  Just fold the
	result if it is NULL otherwise.  Insert other potentially needed
	stmts right before current stmt instead of on the entry edge.
	(struct elv_data): Add gsi and reset fields.
	(eliminate_local_variables_1): Adjust caller.  If take_address_of
	failed for debug stmt, set dta->reset and return.
	(eliminate_local_variables_stmt): Change STMT argument for GSI,
	pass GSI through to the callback, handle resetting of debug stmts.
	(eliminate_local_variables): Adjust caller.  Process debug stmts
	in second phase.

	PR middle-end/43690
	* gimplify.c (gimplify_asm_expr): If a "m" input is a
	{pre,post}{in,de}crement, fail.

	PR debug/46307
	* tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	(op_code_prio): Likewise.
	* cfgexpand.c (expand_debug_expr): Likewise.

2010-11-04  Paul Koning  <ni1d@arrl.net>

	* doc/md.texi (Machine Constraints): Correct formatting in PDP-11
	constraints.

2010-11-04  Chao-ying Fu  <fu@mips.com>

	* configure.ac: Test assembler support for DSP Rev1 mult.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
	* config/mips/mips.c (CODE_FOR_mips_mult): New define.
	(CODE_FOR_mips_multu): New define.
	(mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
	dspr2_32 to dsp_32.
	(mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
	Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
	* config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
	New define_expand patterns.
	* config/mips/constraints.md (ka): Update the constraint to test
	ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
	* config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
	mips_multu): Delete.
	* config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
	Change target constraint to "ka".
	Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
	(!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
	Emit the accumulator destination when ISA_HAS_DSP_MULT.
	(<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
	Emit the accumulator destination when ISA_HAS_DSP_MULT.
	(<u>maddsidi4): Likewise.
	* doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
	msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.

2010-11-04  Paul Koning  <ni1d@arrl.net>

	* doc/md.texi (Machine Constraints): Add PDP-11 constraints.

2010-11-04  Paul Koning  <ni1d@arrl.net>

	* doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.

2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>

	Fixed using the Objective-C 2.0 dot-syntax with class names.
	* c-parser.c (c_parser_next_token_starts_declspecs): In
	Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
	(c_parser_next_token_starts_declaration): Same.
	(c_parser_postfix_expression): Parse the Objective-C 2.0
	dot-syntax with a class name.

2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>

	* final.c (compute_alignments): Compute/free loop info all the time.
	* config/rs6000/rs6000.h (LOOP_ALIGN): Define.
	* config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
	* config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
	* config/rs6000/rs6000.c (cfgloop.h): Include.
	(can_override_loop_align): New.
	(rs6000_option_override_internal): Set it.
	(TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
	(rs6000_loop_align): New function.
	(rs6000_loop_align_max_skip): Likewise.

2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR driver/45703
	* collect2.c (main): Print --help output to stdout.  Do not
	exit right away, so ld --help is appended.  Add empty lines
	to separate output suitably.

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

	PR tree-optimization/46233
	* ipa-pure-const.c (local_pure_const): Do noreturn discovery
	after calling analyze_function, not before.

	PR target/46234
	* config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
	instead of build_va_arg_indirect_ref.
	* config/spu/spu.c (spu_va_start): Likewise.
	* config/s390/s390.c (s390_va_start): Likewise.

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

	PR middle-end/46292
	* lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
	if the innermode is not vector mode, determine the mode of a subreg
	by using mode_for_size of inner_size.

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

	PR rtl-optimization/46183
	* gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
	(execute_rtl_pre): Likewise.
	(execute_rtl_hoist): Likewise.

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

	PR tree-optimization/46068
	* ipa-split.c (consider_split): Remove gcc_unreachable.

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

	* tree-nested.c (build_addr): Use build_fold_addr_expr.

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

	PR tree-optimization/45991
	* gimplify.c (force_gimple_operand_1): Use the provded test
	function in the initial test.

2010-11-04  Jeff Law  <law@redhat.com>

	* ira.c (validate_equiv_mem): Remove code to avoid invalidation
	of readonly memory equivalances for const/pure calls.

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

	PR tree-optimization/45733
	* tree-vect-stmts.c (reverse_vec_elements): Honor the
	permute builtins function return type.

2010-11-04  Joern Rennecke  <amylaar@spamcop.net>

	PR middle-end/44765
	* emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
	as an index, check it is not INVALID_REGNUM.

	PR bootstrap/44756
	* ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
	unsignedp.
	* reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.

	PR bootstrap/44756
	* function.c (thread_prologue_and_epilogue_insns): Add
	ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.

	PR bootstrap/44756
	* varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.

	PR target/44750
	* config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
	(pdp11_preferred_reload_class): Rename class to rclass.
	(pdp11_preferred_output_reload_class): Likewise.
	* config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
	ALL_COMPILERFLAGS .
	(java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.

	PR bootstrap/44756
	* genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
	iteration variables to enum machine_mode.

	PR target/44751
	* config/h8300/h8300.c: Include df.h.
	(push, pop): Use add_reg_note.
	(compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
	(compute_a_shift_cc): Likewise.
	(expand_a_shift): Argument code has type enum rtx_code.
	(struct shift_insn): Member cc_valid has type enum attr_cc.
	(struct shift_info) <cc_inline, cc_special>: Likewise.
	enum attr_cc.
	* config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
	(compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.

2010-11-04  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/46213
	* tree-vect-loop.c (vect_is_simple_reduction_1): Handle
	MINUS_EXPR only if the first operand is reduction operand.

2010-11-04  Richard Guenther  <rguenther@suse.de>
	    Richard Henderson  <rth@redhat.com>

	* tree.def (FMA_EXPR): New tree code.
	* expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
	* gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
	* tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
	* tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
	* gimple-pretty-print.c (dump_ternary_rhs): Likewise.
	* tree-ssa-math-opts.c (convert_mult_to_fma): New function.
	(execute_optimize_widening_mul): Call it.  Reorganize to allow
	dead stmt removal.  Move TODO flags ...
	(pass_optimize_widening_mul): ... here.
	* flag-types.h (enum fp_contract_mode): New enum.
	* common.opt (flag_fp_contract_mode): New variable.
	(-ffp-contract): New option.
	* opts.c (common_handle_option): Handle it.
	* doc/invoke.texi (-ffp-contract): Document.
	* tree.h (fold_fma): Declare.
	* builtins.c (fold_fma): New function.
	(fold_builtin_fma): Likewise.
	(fold_builtin_3): Call it for fma.
	* fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
	* optabs.c (optab_for_tree_code): Handle FMA_EXPR.
	* config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
	New expanders.
	* doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
	named patterns.
	* genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
	* optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
	(fms_optab, fnma_optab, fnms_optab): New defines.
	* gimplify.c (gimplify_expr): Handle binary truth expressions
	explicitly.  Handle FMA_EXPR.
	* tree-vect-stmts.c (vectorizable_operation): Handle ternary
	operations.

2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
	    Richard Guenther  <rguenther@suse.de>

	* passes.c (init_optimization_passes): Move veclower after SSA.
	* tree-vect-generic.c (uniform_vector_p): New function.
	(expand_vector_operations_1): Handle conversion.
	(pass_lower_vector): Update SSA form.

2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>

	* configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
	plugin capabilities.
	* configure: Regenerate.

2010-11-03  Xinliang David Li  <davidxl@google.com>

	PR target/46200
	* tree-ssa-loop-ivopts.c (get_computation_cost_at):
	Adjust cbase if the use stmt is after iv update.

2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.

2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_expand_prologue): Remove unnecessary
	comment.  Pass true to the last argument of output_stack_adjust.

2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/46295
	* config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
	if 256bit AVX register is used.

2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
	xsmindp/xsmaxdp on VSX for single precision min/max.
	* config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
	(vsx_sminsf3): Ditto.

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

	* combine.c (try_combine): Fix formatting issues, improve comments and
	fix a pasto.

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

	* tree-tailcall.c (find_tail_calls): Convert the operands to the type
	of the result before building binary expressions.

2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/45865
	* Makefile.in (df-problems.o): Revert revision 164552.
	* basic-block.h (enum bb_flags): Likewise.
	* cfgcleanup.c (block_was_dirty): Likewise.
	(try_forward_edges): Likewise.
	(try_crossjump_bb): Likewise.
	(try_head_merge_bb): Likewise.
	(try_optimize_cfg): Likewise.
	(cleanup_cfg): Likewise.
	* df-core.c (df_set_bb_dirty): Likewise.
	* df-problems.c: Likewise.
	(df_simulate_find_uses): Likewise.
	(MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
	(find_memory, find_memory_store): Likewise.
	(can_move_insns_across): Likewise.
	* df.h (can_move_insns_across): Likewise.
	* ifcvt.c (find_memory): Likewise.
	(dead_or_predicable): Likewise.

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

	PR middle-end/46288
	* predict.c (strip_predict_hints): Simply DCE builtin expect if
	the result is unused.

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

	PR tree-optimization/46009
	* tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
	cond_if_else_store_replacement if bb1 and bb2 have the same
	single successor.
	(cond_store_replacement): Use gimple_assign_single_p, don't
	check if rhs is SSA_NAME or invariant.  Call release_defs for
	assign.
	(cond_if_else_store_replacement): New function.

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

	* opts.c (finish_options): Properly check for all WHOPR
	flags before complaining about -flto-partition.

2010-11-04  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
	(rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
	TARGET_SECURE_PLT.
	* config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
	* config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
	on input, "r" on output.

2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>

	Implemented -fobjc-std=objc1 flag.
	* doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
	option.
	* doc/standards.texi (Standards): Updated the section on
	Objective-C; mention support for Objective-C 2.0 features and the
	new -fstd-objc=objc1 flag to disable them.

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

	PR middle-end/46241
	* dwarf2out.c (scope_die_for): Properly detect global scope.

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

	PR tree-optimization/46190
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
	Properly compute peel iterations.

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

	PR tree-optimization/46286
	* tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
	re-allocated vector data.

2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/46285
	* config/i386/i386.c (ix86_expand_call): Conditionally decorate
	calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
	is completed.

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

	PR tree-optimization/46217
	* tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
	flag matches.
	(execute_update_addresses_taken): Likewise.

2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR bootstrap/44335
	* targhooks.c (targhook_words_big_endian): New function.
	(targhook_float_words_big_endian): Likewise.
	* targhooks.h (targhook_words_big_endian): Declare.
	(targhook_float_words_big_endian): Likewise.
	* target.def (words_big_endian, float_words_big_endian): New hooks.

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

	PR tree-optimization/46165
	* tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
	a normal call into noreturn call.

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

	PR middle-end/46251
	* builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
	not INDIRECT_REFs.

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

	PR tree-optimization/46107
	* cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
	if cfg_hook_duplicate_loop_to_header_edge failed.

2010-11-03  Ian Lance Taylor  <iant@google.com>

	PR lto/46273
	* config.gcc: Don't set lto_binary_reader.
	* doc/install.texi (Prerequisites): Remove libelf paragraphs.
	(Configuration): Mention --disable-lto.  Remove --with-libelf
	paragraph.

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

	PR debug/46252
	* reload1.c (delete_dead_insn): Use prev_active_insn instead of
	prev_real_insn.
	* gcse.c (insert_insn_end_basic_block): Likewise.

	PR rtl-optimization/46034
	PR rtl-optimization/46212
	PR rtl-optimization/46248
	* combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
	and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
	before i0dest -> i0src substitution and pass 1 instead of 0 as last
	argument to subst on i2pat.

2010-11-02  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Use AC_SYS_LARGEFILE.
	* configure: Rebuild.
	* config.in: Rebuild.

2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>

	* builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
	fold_convert.
	* c-typeck.c (build_function_call_vec): Likewise.
	* cfgexpand.c (expand_debug_expr): Likewise.
	* cgraphunit.c (assemble_thunk): Likewise.
	* config/sparc/sparc.c (sparc_fold_builtin): Likewise.
	* fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
	(fold_binary_loc, fold_ternary_loc): Likewise.
	* gimple-fold.c (get_symbol_constant_value): Likewise.
	* gimple-low.c (lower_builtin_setjmp): Likewise.
	* gimple.c (gimple_cond_get_ops_from_tree): Likewise.
	* gimplify.c (gimplify_init_constructor): Likewise.
	* lambda.h (build_linear_expr): Likewise.
	* omp-low.c (omp_reduction_init): Likewise.
	* tree-inline.c (remap_ssa_name): Likewise.
	* tree-object-size.c (compute_object_sizes): Likewise.
	* tree-sra.c (init_subtree_with_zero): Likewise.
	(sra_ipa_modify_assign): Likewise.
	* tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
	* tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
	(eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
	(undistribute_ops_list): Likewise.
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
	* tree-vect-stmts.c (vectorizable_call): Likewise.
	* tree.c (build_vector_from_ctor, build_one_cst): Likewise.
	(build_zero_cst): Handle more cases directly.  Update comment.

2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
	* config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.

	* config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
	and call ix86_split_call_vzeroupper instead of
	ix86_split_call_pop_vzeroupper.
	(*call_pop_1_vzeroupper): Likewise.
	(*sibcall_pop_1_vzeroupper): Likewise.
	(*call_value_pop_0_vzeroupper): Likewise.
	(*call_value_pop_1_vzeroupper): Likewise.
	(*sibcall_value_pop_1_vzeroupper): Likewise.

2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.

2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>

	* basic-block.h (insert_insn_end_bb_new): Delete.
	* cfgrtl.c (insert_insn_end_bb_new): Likewise.

2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
	(ix86_split_call_pop_vzeroupper): Likewise.

	* config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
	(ix86_expand_call): Conditionally decorate calls with
	UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
	(ix86_split_call_vzeroupper): New.
	(ix86_split_call_pop_vzeroupper): Likewise.

	* config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
	(*call_pop_0_vzeroupper): New insn_and_split pattern.
	(*call_pop_1_vzeroupper): Likewise.
	(*sibcall_pop_1_vzeroupper): Likewise.
	(*call_0_vzeroupper): Likewise.
	(*call_1_vzeroupper): Likewise.
	(*sibcall_1_vzeroupper): Likewise.
	(*call_1_rex64_vzeroupper): Likewise.
	(*call_1_rex64_ms_sysv_vzeroupper): Likewise.
	(*call_1_rex64_large_vzeroupper): Likewise.
	(*sibcall_1_rex64_vzeroupper): Likewise.
	(*call_value_pop_0_vzeroupper): Likewise.
	(*call_value_pop_1_vzeroupper): Likewise.
	(*sibcall_value_pop_1_vzeroupper): Likewise.
	(*call_value_0_vzeroupper): Likewise.
	(*call_value_0_rex64_vzeroupper): Likewise.
	(*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
	(*call_value_1_vzeroupper): Likewise.
	(*sibcall_value_1_vzeroupper): Likewise.
	(*call_value_1_rex64_vzeroupper): Likewise.
	(*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
	(*call_value_1_rex64_large_vzeroupper): Likewise.
	(*sibcall_value_1_rex64_vzeroupper): Likewise.

2010-11-02  Ian Lance Taylor  <iant@google.com>

	PR lto/46273
	* config.gcc: Revert last patch: set lto_binary_reader.

2010-11-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46149
	* tree-ssa-structalias.c (get_constraint_fop_1): Properly handle
	non-indirect MEM_REF variants.

2010-11-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46216
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
	Check if we can propagate from a POINTER_PLUS_EXPR before doing so.

2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (*-*-irix6*): Disable set_have_as_tls.
	(*-*-osf*): Likewise.
	* configure: Regenerate.

2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Updated
	for Intel Core 2 and Core i7.

2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>

	Model decoder of Core 2/i7 for multipass scheduling.

	* config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
	New type to hold target-specific data for multipass scheduling.
	(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
	* config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
	Core 2/i7.
	(core2i7_secondary_decoder_max_insn_size,)
	(core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
	New static variables.
	([const_]ix86_first_cycle_multipass_data_t): New typedefs.
	([_]ix86_first_cycle_multipass_data): New static variable.
	(core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
	Implement targetm.sched hooks.
	(core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
	of ...
	(core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
	Implement new targetm.sched hooks.
	(ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
	targetm.sched hook to install multipass scheduling hooks on demand.

	* doc/tm.texi.in: Document new targetm.sched hooks.
	* doc/tm.texi: Regenerate.

	* haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
	(first_cycle_multipass_data_t): New typedef.
	(struct choice_entry: target_data): New field.
	(max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
	to allow target model restrictions not represented in DFA.
	(choose_ready, schedule_block): Update.
	(sched_extend_ready_list, sched_finish_ready_list): Call new target
	hooks to initialize target-specific data for multipass scheduling.
	* sched-int.h (max_issue): Update declaration.
	* sel-sched.c (choose_best_insn): Update.
	* target.def (first_cycle_multipass_{begin, issue, backtrack},)
	(first_cycle_multipass_{init, fini}): Define and document new
	targetm.sched hooks.

2010-11-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46184
	* tree-vect-loop.c (vectorizable_reduction): Try to obtain the
	input vector type from the reduction operand as well.

2010-11-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46177
	* tree-loop-distribution.c (prop_phis): Use
	mark_virtual_phi_result_for_renaming.

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

	PR middle-end/46120
	* tree.c (get_binfo_at_offset): Bail out on artificial
	fields.  Identify primary bases according to their offsets.

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

	PR tree-optimization/45875
	* gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
	(gimple_get_relevant_ref_binfo): Detect primary bases according to
	their field offset.

2010-11-02  Ian Lance Taylor  <iant@google.com>

	* doc/install.texi (Configuration): Note in two places that Java
	is not enabled by default.

2010-11-02  Ian Lance Taylor  <iant@google.com>

	* doc/install.texi (Prerequisites): Remove libelf paragraphs.
	(Configuration): Mention --disable-lto.  Remove --with-libelf
	paragraph.

2010-11-02  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
	LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
	LIBELFINC.  Remove HAVE_libelf.
	* config.gcc: Don't set lto_binary_reader.
	* Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
	(LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
	(LIBS): Remove $(LIBELFLIBS).
	(INCLUDES): Remove $(LIBELFINC).
	* configure: Rebuild.
	* config.in: Rebuild.

2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>

	* config/microblaze/microblaze-protos.h (function_arg): Delete.
	(function_arg_advance): Delete.
	* config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
	(FUNCTION_ARG): Delete.
	* config/microblaze/microblaze.c (function_arg_advance): Rename to...
	(microblaze_function_arg_advance): ...this.  Make static.  Take a
	const_tree and a bool.
	(function-arg): Rename to...
	(microblaze_function_arg): ...this.  Make static.  Take a const_tree
	and a bool.
	(microblaze_expand_prologue): Call targetm.calls.function_arg and
	targetm.calls.function_arg_advance.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>

	Merge from FSF "apple/trunk" branch.

	* config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
	* config/darwin.opt: .. to here.
	(matt-stubs): New option.
	* config/i386/darwin.opt: Delete.
	* config/i386/i386.h (MACHOPIC_ATT_STUB): New.
	(MACHO_DYNAMIC_NO_PIC_P): New.
	(MACHOPIC_INDIRECT): New.
	(MACHOPIC_PURE): New.
	* config/i386/darwin.h (DARWIN_X86) Define to 1.
	(MACHOPIC_ATT_STUB): New.
	(CC1_SPEC): Do not remove mdynamic-no-pic.
	Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
	UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
	(FUNCTION_PROFILER): Correct over-length line.
	(SUBTARGET_OVERRIDE_OPTIONS): New.
	(MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
	* config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
	(legitimate_constant_p): Handle mdynamic-no-pic.
	(ix86_legitimate_address_p): Likewise.
	(ix86_legitimize_address): Likewise.
	(ix86_expand_move): Likewise.
	(machopic_output_stub): Update for ATT-style stubs and
	mdynamic-no-pic.
	* config/darwin-protos.h (machopic_symbol_defined_p): New.
	* config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
	TARGET_DYNAMIC_NO_PIC: Remove.
	Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
	UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
	* config/rs6000/rs6000.c (darwin_rs6000_override_options):
	Remove handling of mdynamic-no-pic.
	* config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
	Define if required.
	(machopic_symbol_defined_p): Do not try to use current_function_decl
	when generating _get_pc thunks within stubs.
	(machopic_indirect_data_reference): Rework for direct conditionals
	rather than #ifdefs, add x86 mdynamic-no-pic
	(machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
	defined value.
	(darwin_override_options): Handle mdynamic-no-pic here.
	* config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
	(machopic_lazy_symbol_ptr3_section): New.
	(machopic_picsymbol_stub2_section): New.
	(machopic_picsymbol_stub3_section): New.
	* config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
	(MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
	(HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
	Moved common definition from x86 and rs6000.
	(MACHO_DYNAMIC_NO_PIC_P): Override value.
	(MACHOPIC_INDIRECT): Likewise.
	(MACHOPIC_PURE): Likewise.
	* config.gcc (x86-darwin-*): Remove darwin.opt.

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

	PR debug/46255
	* tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
	instead of gsi_last_bb.

2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/i386/i386.c (cpu_names): Add "corei7".
	* config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.

2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	Tune alignment for Intel Core i7

	* config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
	(enum processor_type): Update comment.  Add entries for Core i7.
	* config/i386-c.c (ix86_target_macros_internal): Update.
	* config/i386.c (m_COREI7{_32,_64}): New macros.
	(m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
	(processor_target_table): Tune alignment for Core i7.
	(ix86_option_override_internal): Use PROCESSOR_COREI7_*.

	* doc/invoke.texi: Document "corei7" option value.

2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>
	    H.J. Lu  <hjl.tools@gmail.com>

	Basic support for Intel Core i7

	* i386.c (ix86_option_override_internal): Add entry for corei7, use
	generic tuning.  Use generic32 when compiling for 32-bit ABI.

2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin.c (darwin_asm_named_section): Check for __DWARF
	sections and call darwin_asm_dwarf_section() to handle them.
	(darwin_asm_dwarf_section): New.
	(darwin_file_start): Remove code emitting dwarf section symbols.

2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>

	* Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
	explicitly disable stack protection when building libgcc.
	(CRTSTUFF_CFLAGS): Same, for crtbegin/end.

2010-11-01  Jason Merrill  <jason@redhat.com>

	* fold-const.c (fold_indirect_ref_1): Handle folding
	POINTER_PLUS_EXPR to ARRAY_REF.

2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
	(sh_delegitimize_address): New function.

2010-11-01  Joseph Myers  <joseph@codesourcery.com>

	* config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
	* config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
	(CC1_SPEC): Don't handle -target.
	* config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
	options.
	* config/darwin.opt (Zallowable_client, Zbundle_loader,
	Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
	Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
	Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
	Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
	Zweak_reference_mismatches, client_name, compatibility_version,
	current_version, dylinker_install_name, pagezero_size,
	read_only_relocs, seg1addr, segs_read_only_addr,
	segs_read_write_addr, sub_library, sub_umbrella): New.
	* config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
	* config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
	* config/freebsd.opt: New.
	* config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
	* config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
	* config/rpath.opt: New.
	* config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
	(alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
	Use rpath.opt.

2010-11-01  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
	* defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
	(DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
	* doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
	(WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
	Document that options in .opt files do not need to be included.
	* doc/tm.texi: Regenerate.
	* gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
	* opts-common.c: Update comment on tm.h include.
	(decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
	* system.h (SWITCH_TAKES_ARG): Poison.
	* config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
	* config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
	in darwin.opt.
	(LINK_COMMAND_SPEC_A): Don't include %{x}.
	* config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
	* config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
	* config/freebsd.h (SWITCH_TAKES_ARG): Remove.
	* config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
	* config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
	* config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
	* config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
	* config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
	* config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
	* config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
	* config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
	* config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
	* config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
	* config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
	* config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
	* config/openbsd.h (SWITCH_TAKES_ARG): Remove.
	* config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
	* config/score/score.h (SWITCH_TAKES_ARG): Remove.
	* config/sol2.h (SWITCH_TAKES_ARG): Remove.
	* config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
	* config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
	* config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
	* config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.

2010-11-01  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.md: Use iterators.
	(addqi3, subqi3, iorsi3, xorsi3): Delete.

2010-11-01  Steve Ellcey  <sje@cup.hp.com>

	* defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
	GCC_INSN_FLAGS_H.
	* libgcov.c (__gcov_indirect_call_profiler): Set
	VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
	defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.

2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>

	PR tree-optimization/46259

	Revert:
	2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
	* tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
	build_vector_from_val.

2010-11-01  DJ Delorie  <dj@redhat.com>

	* config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
	as well as an assertion.

2010-11-01  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
	complex modes in memory.

2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.c (build_vector_from_val): Use useless_type_conversion_p.

2010-11-01  Jakub Jelinek  <jakub@redhat.com>

	PR target/45250
	* var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
	(cfa_base_offset): New variable.
	(compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
	(adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
	is NULL.
	(vt_init_cfa_base): Initialize cfa_base_offset.

2010-11-01  Alan Modra  <amodra@gmail.com>

	PR target/46030
	* config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
	and savres_strategy.
	(stack_info): New file scope var.
	(rs6000_init_machine_status): Init stack_info.
	(SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
	SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
	SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
	(SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
	SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
	REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
	(rs6000_savres_strategy): Rewrite.
	(rs6000_stack_info): Use "stack_info" in place of local "info".
	Return cached stack info when reload_completed unless ENABLE_CHECKING
	in which case confirm newly calculated stack info matches old info.
	Delay calculation of lr_save_p, set it for out of line gp save/restore
	as well as fp.  Call rs6000_savres_strategy from here..
	(rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
	(rs6000_output_function_prologue): Use info->savres_strategy to
	determine whether fp save/restore externs need to be emitted.

2010-10-31  Jason Merrill  <jason@redhat.com>

	* tree.h (EXPR_LOC_OR_HERE): New macro.
	* builtins.c (c_strlen): Use it.
	* c-decl.c (build_enumerator): Likewise.
	* gimplify.c (internal_get_tmp_var): Likewise.
	(shortcut_cond_expr): Likewise.
	(gimplify_one_sizepos): Likewise.

2010-10-31  Richard Henderson  <rth@redhat.com>

	* config/i386/cygming.h (TARGET_SEH): New.
	(MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
	(TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
	TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
	(TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
	(ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
	(ASM_DECLARE_FUNCTION_SIZE): New.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.c (ix86_option_override_internal): Enable
	flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
	restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
	(ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
	(ix86_compute_frame_layout): For SEH, disable
	use_fast_prologue_epilogue, move frame pointer to the end of
	the frame.  Initialize hfp_save_offset.
	(ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
	at end of prologue for SEH.
	(ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
	emit blockage at beginning of epilogue.
	(ix86_expand_binary_operator): After reload, emit LEA if needed.
	(ix86_output_call_insn): New.
	* config/i386/i386.h (TARGET_SEH): New.
	(struct machine_function): Add member seh.
	* config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
	* config/i386/winnt.c (struct seh_frame_state): New.
	(i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
	seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
	seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
	i386_pe_start_function, i386_pe_end_function): New.

	* dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
	as CFA_STORE in rules 12 and 13.

2010-10-31  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/46142
	* tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
	accommodate third function argument.

2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>

	* tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.

2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>

	* fold-const.c (build_zero_vector): Use build_vector_from_val.
	* tree-vect-loop.c (get_initial_def_for_induction): Likewise.
	(get_initial_def_for_reduction): Likewise.
	* tree-vect-slp.c (vect_get_constant_vectors): Likewise.
	* tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
	* tree.c (build_one_cst): Likewise.
	(build_vector_from_val): Use types_compatible_p for assert.

2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>

	* emit-rtl.c (mark_used_flags): New function.
	(set_used_flags, reset_used_flags): Call it.

2010-10-30  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/44569
	* lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
	determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.

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

	PR target/46195
	* config/i386/i386.c (contains_aligned_value_p): Renamed to ...
	(ix86_compat_aligned_value_p): This.
	(ix86_old_function_arg_boundary): Renamed to ...
	(ix86_compat_function_arg_boundary): This.  Updated.
	(ix86_contains_aligned_value_p): New.
	(ix86_function_arg_boundary): Align long double parameters on
	stack to 4byte in 32bit.

2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>

	Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
	* c-parser.c (c_parser_objc_at_property_declaration): Removed
	parsing of RID_COPIES and RID_IVAR.  Updated call to
	objc_add_property_declaration.
	* c-typecheck.c (build_component_ref): Call
	objc_maybe_build_component_ref instead of objc_build_setter_call.
	Use objc_is_property_ref to improve Objective-C checks.
	(cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
	of objc_build_getter_call.

2010-10-29  Paul Koning  <ni1d@arrl.net>

	* doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
	REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
	REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
	(REG_OK_STRICT): Move description.

2010-10-29  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.

2010-10-29  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.

2010-10-29  Paul Koning  <ni1d@arrl.net>

	PR/41822
	* config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.

2010-10-29  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/46226
	* stmt.c (expand_asm_operands): Call do_pending_stack_adjust
	for asm goto.

2010-10-29  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
	register to register move.

2010-10-29  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.c (print_operand_address): Correct handling
	of integer constant addresses, delete vax-only logic.

2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (picochip_is_short_branch): Simplify
	a conditional expression.

2010-10-29  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
	instruction encoding.

2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
	    Andrew Pinski  <pinskia@gmail.com>

	* tree.h (build_vector_from_val): Declare.
	* tree.c (build_vector_from_val): New function.
	* c-typeck.c (build_binary_op): Handle vector shifting.
	* doc/extend.texi: Description of the vector shifting operation.

2010-10-29  Paul Koning  <pkoning@equallogic.com>

	* config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
	pdp11_secondary_memory_needed): Declare.
	* config/pdp11/predicates.md (float_operand): New predicate.
	* config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
	(cbranchdf4, movdf): Change predicate.
	(movsf): Handle FPU register case.
	(truncdfsf2, extendsfdf2): Add FPU register case.
	* config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
	TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
	TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
	(pdp11_register_move_cost): Update cost matrix.
	(pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
	pdp11_preferred_output_reload_class, pdp11_secondary_reload,
	pdp11_secondary_memory_needed): New function.
	(pdp11_return_in_memory): Add other float types.
	* config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
	(SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
	(PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
	REGISTER_MOVE_COST): Delete.
	(BASE_RETURN_VALUE_REG): Add other float types.

2010-10-29  Nick Clifton  <nickc@redhat.com>

	* doc/invoke.texi: Document -mam34 and -mtune options.
	* config/mn10300/mn10300.c (mn10300_tune_string): New variable.
	(mn10300_tune_cpu): New variable.
	(mn10300_handle_option): Handle -mam34 and -mtune options.
	(mn10300_option_override): Convert tune string into tune cpu variable.
	(mn10300_legitimate_constant_p): Delete unused local variable.
	(is_load_insn): New function.
	(is_store_insn): New function.
	(mn10300_adjust_schedule_cost): New function.
	(TARGET_SCHED_ADJUST_COST): Define.
	* config/mn10300/mn10300.opt (mam34): New option.
	(mtune): New option.
	* config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
	(enum processor_type): Add AM34.
	(TARGET_AM34): Define.
	* config/mn10300/mn10300.md (attr cpu): Add am34.
	Add pipeline description.
	(movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
	Remove unneeded alternatives.  Add timing attribute.
	(pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
	mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
	mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
	mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
	mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
	bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
	bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
	float_conditional_branch, jump, indirect_jump, tablejump,
	call_internal, call_value_internal, zero_extendqisi2_am33,
	zero_extendqisi2_mn10300, zero_extendhisi2_am33,
	zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
	extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
	mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
	mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
	addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
	fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
	return_internal_regs, store_movm, return, call_next_insn):
	Add timing attribute.
	(am33_subsi3): Add missing clobber of CC_REG.
	(am33_andsi3, mn10300_andsi3): Fix compile time warnings.
	(udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
	subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
	extendqisi2): Fix predicates.
	(call_internal, call_internal_value): Separate alternatives.
	* config/mn10300/t-mn10300: Add AM34 multilib.

2010-10-29  Paolo Bonzini  <bonzini@gnu.org>

	* config/sh/sh.c (sh_promote_function_mode): Use
	default_promote_function_mode if !sh_promote_prototypes.

2010-10-28  Paolo Bonzini  <bonzini@gnu.org>

	* recog.c (split_all_insns): Remove dead code.

2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>

	* score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.

2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>

	* config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
	(FUNCTION_ARG_ADVANCE): Delete.
	* config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
	functions.
	(cris_function_incoming_arg, cris_function_arg_advance): New functions.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
	(TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>

	* config/lm32/lm32-protos.h (lm32_function_arg): Delete.
	* config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
	Take a const_tree and a bool.
	(mcore_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>

	* config/mcore/mcore-protos.h (mcore_function_arg): Delete.
	* config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
	Take a const_tree and a bool.
	(mcore_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>

	* config/h8300/h8300-protos.h (function_arg): Delete.
	* config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/h8300/h8300.c (function_arg): Rename to...
	(h8300_function_arg): ...this.  Make static.  Take a const_tree and
	a bool.
	(h8300_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>

	* config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
	to...
	* config/arc/arc.c (arc_function_arg): ...here and...
	(arc_function_arg_advance): ...here.  New functions.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>

	* config/crx/crx-protos.h (crx_function_arg): Delete.
	(crx_function_arg_advance): Delete.
	* config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/crx/crx.c (crx_function_arg): Make static.  Take a
	const_tree and a bool.
	(crx_function_arg_advance): Make static.  Take a const_tree and a bool.
	(enough_regs_for_param): Take a const_tree.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>

	* config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
	(m68hc11_function_arg_advance): Delete.
	* config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
	(FUNCTION_ARG_ADVANCE): Delete.
	* config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
	Take a const_tree and a bool.
	(m68hc11_function_arg_advance): Likewise.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>

	* config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
	(xstormy16_function_arg_advance): Delete.
	* config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
	(FUNCTION_ARG_ADVANCE): Delete.
	* config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
	Take a const_tree and a bool.
	(xstormy16_function_arg_advance): Likewise.  Return void, updating
	the CUM parameter instead.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>

	* config/moxie/moxie-protos.h (moxie_function_arg): Delete.
	* config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	(MOXIE_FUNCTION_ARG_SIZE): Move to...
	* config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
	(moxie_function_arg): Make static.  Take a const_tree and a bool.
	(moxie_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>

	* config/mn10300/mn10300-protos.h (function_arg): Delete.
	* config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
	(FUNCTION_ARG_ADVANCE): Delete.
	* config/mn10300/mn10300.c (function_arg): Rename to...
	(mn10300_function_arg): ...this.  Make static.  Take a const_tree
	and a bool.
	(mn10300_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>

	* config/iq2000/iq2000-protos.h (function_arg): Delete.
	(function_arg_advance): Delete.
	* config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/iq2000/iq2000.c (function_arg): Rename to...
	(iq2000_function_arg): ...this.  Make static.  Take a const_tree and
	a bool.
	(function_arg_advance): Rename to...
	(iq2000_function_arg_advance): ...this.  Make static.  Take a
	const_tree and a bool.
	(iq2000_expand_prologue): Call iq2000_function_arg_advance and
	iq2000_function_arg.
	(iq2000_pass_by_reference): Call iq2000_function_arg).
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>

	* config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
	* config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
	const_tree.
	(fr30_function_arg): New function.
	(fr30_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>

	* config/frv/frv-protos.h (frv_function_arg): Delete.
	(frv_function_arg_advance): Delete.
	* config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/frv/frv.c (frv_function_arg): Rename to...
	(frv_function_arg_1): Make static.  Take const_tree and bool arguments.
	(frv_function_arg, frv_function_incoming_arg): New functions.
	(frv_function_arg_advance): Make static.  Take a const_tree and a bool.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
	(TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-28  Uros Bizjak  <ubizjak@gmail.com>

	PR target/46153
	* config/i386/sse.md (sse_movhlps_exp): Use destination
	returned from ix86_fixup_binary_operands to expand insn.
	(sse_movlhps_exp): Ditto.
	(sse_loadhps_exp): Ditto.
	(sse_loadlps_exp): Ditto.
	(sse2_loadhpd_exp): Ditto.
	(sse2_loadlpd_exp): Ditto.

2010-10-28  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
	constants in thumb2.

2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>

	* combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
	arithmetics in masking operations.
	(contains_muldiv): Likewise.
	(try_combine): Likewise.
	(find_split_point): Likewise.
	(combine_simplify_rtx): Likewise.
	(simplify_if_then_else): Likewise.
	(simplify_set): Likewise.
	(expand_compound_operation): Likewise.
	(expand_field_assignment): Likewise.
	(make_extraction): Likewise.
	(extract_left_shift): Likewise.
	(make_compound_operation): Likewise.
	(force_to_mode): Likewise.
	(make_field_assignment): Likewise.
	(reg_nonzero_bits_for_combine): Likewise.
	(simplify_shift_const_1): Likewise.
	(simplify_comparison): Likewise.

2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>

	* config/ia64/ia64-protos.h (ia64_function_arg): Delete.
	(ia64_function_arg_advance): Delete.
	* config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
	(FUNCTION_ARG_ADVANCE): Delete.
	* config/ia64/ia64.c (ia64_function_arg): Rename to...
	(ia64_function_arg_1): ...this.  Make static.  Take const_tree and
	bool arguments.
	(ia64_function_arg, ia64_function_incoming_arg): New functions.
	(ia64_function_arg_advance): Make static.  Take a const_tree and
	a bool.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
	(TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-27  Steve Ellcey  <sje@cup.hp.com>

	* doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
	(TARGET_GET_RAW_ARG_MODE): New.
	* doc/tm.texi: Regenerate.
	* target.def (get_raw_result_mode): New.
	(get_raw_arg_mode): New.
	* targhooks.c (default_get_reg_raw_mode): New.
	* targhooks.h (default_get_reg_raw_mode): New.
	* builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
	(apply_result_size): Ditto.
	* config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
	(TARGET_GET_RAW_RESULT_MODE): Define.
	(TARGET_GET_RAW_ARG_MODE): Ditto.

2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
	for newer Solaris 10 release.
	(sparc_fallback_frame_state): Likewise.

2010-10-27  Jason Merrill  <jason@redhat.com>

	* gimplify.c (gimplify_decl_expr): Handle anonymous artificial
	variables sooner.

2010-10-27  Jie Zhang  <jie@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	* haifa-sched.c (ISSUE_POINTS): Remove.
	(max_issue): Don't issue more than issue_rate instructions.

2010-10-27  Ian Lance Taylor  <iant@google.com>

	PR target/46197
	* config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
	(split_stack_return): Replace UNSPEC_STACK_CHECK with
	UNSPECV_SPLIT_STACK_RETURN.

2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-protos.h (init_cumulative_args): Add an int.

	* config/i386/i386.c (block_info): New.
	(BLOCK_INFO): Likewise.
	(call_avx256_state): Likewise.
	(check_avx256_stores): Likewise.
	(move_or_delete_vzeroupper_2): Likewise.
	(move_or_delete_vzeroupper_1): Likewise.
	(move_or_delete_vzeroupper): Likewise.
	(use_avx256_p): Likewise.
	(function_pass_avx256_p): Likewise.
	(flag_opts): Add -mvzeroupper.
	(ix86_option_override_internal): Turn on MASK_VZEROUPPER by
	default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
	is disabled.
	(ix86_function_ok_for_sibcall): Disable sibcall if we need to
	generate vzeroupper.
	(init_cumulative_args): Add an int to indicate caller.  Set
	use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
	based on return type.
	(ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
	caller_pass_avx256_p based on argument type.
	(ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
	is used, but not returned by caller.
	(ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
	(ix86_local_alignment): Set use_avx256_p if 256bit AVX register
	is used.
	(ix86_minimum_alignment): Likewise.
	(ix86_expand_special_args_builtin): Set target to
	GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
	(ix86_reorg): Run the vzeroupper optimization if needed.

	* config/i386/i386.h (ix86_args): Add caller.
	(INIT_CUMULATIVE_ARGS): Updated.
	(machine_function): Add use_vzeroupper_p, use_avx256_p,
	caller_pass_avx256_p, caller_return_avx256_p,
	callee_pass_avx256_p and callee_return_avx256_p.

	* config/i386/i386.opt (-mvzeroupper): New.

	* config/i386/predicates.md (vzeroupper_operation): Removed.

	* config/i386/sse.md (avx_vzeroupper): Removed.
	(*avx_vzeroupper): Removed.
	(avx_vzeroupper): New.

	* doc/invoke.texi: Document -mvzeroupper.

2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
	* config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
	* config/i386/t-mingw-w64 (SHLIB_LC): Likewise.

2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>

	* config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
	of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
	fs->signal_frame instead.

2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (cp_parser_objc_at_property_declaration): Removed
	parsing of RID_COPIES and RID_IVAR.

2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_objc_at_property_declaration): Recognize
	RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
	Do not use objc_set_property_attr, but use local variables
	instead.  Detect repeated usage of setter, getter and ivar
	attributes.  Improved error processing when a setter name does not
	end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
	that the token is a keyword.  Updated call to
	objc_add_property_declaration.

2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_objc_at_property): Renamed to
	c_parser_objc_at_property_declaration.  Updated calls to
	objc_add_property_variable, now objc_add_property_declaration.
	Code rewritten to be much more robust in recovering from syntax
	errors.  Added comments.
	(c_parser_objc_property_attrlist): Removed.
	(c_parser_external_declaration): Updated calls to
	c_parser_objc_at_property, now
	c_parser_objc_at_property_declaration.
	(c_parser_objc_methodprotolist): Same change.

2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (split_stack_return): Put back unspec_volatile.

2010-10-26  Jan Hubicka  <jh@suse.cz>

	* ipa.c (process_references): Enqueue all referenced nodes;
	mark as reachable only non-external nodes.
	(cgraph_remove_unreachable_nodes): All referenced nodes should
	be enqueued; remove bogues node->needed check.

2010-10-26  Jan Hubicka  <jh@suse.cz>

	* cgraphbuild.c (build_cgraph_edges): Use ipa-reference
	to represent OMP.

2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (split_stack_return): Replace
	unspec_volatile with unspec.

2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/install.texi: Fix typo in --with-sysroot description.

2010-10-26  Jan Hubicka  <jh@suse.cz>

	* ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
	Use info provided by linker plugin.

2010-10-26  Jason Merrill  <jason@redhat.com>

	* varasm.c (constructor_static_from_elts_p): Don't require a
	CONSTRUCTOR to have elements to be suitable for static
	initialization.  Allow ARRAY_TYPE as well.

2010-10-26  Jan Hubicka  <jh@suse.cz>

	PR middle-end/45736
	* cgraph.c (cgraph_set_readonly_flag): Rename to...
	(cgraph_set_const_flags) ... this one; get also looping argument;
	clear constructor/destructor flags.
	(cgraph_set_pure_flag): Likewise.
	(cgraph_set_looping_const_or_pure_flag): Remove.
	(cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
	to optimize away static ctors/dtors; it does not work on inline clones;
	external functions can always be rmeoved.
	(cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
	inline clones; in LTO external functions always can go.
	(cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
	(cgraph_mark_address_taken_node): Assert that we are not taking
	address of inline clone.
	(cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
	external functions.
	* ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
	address taken.
	(ipcp_initialize_node_lattices): Only local functions can be
	handled without cloning.
	* cgraph.h (cgraph_set_readonly_flag,
	cgraph_set_looping_const_or_pure_flag): Remove.
	(cgraph_set_const_flag): Declare.
	(cgraph_set_pure_flag): Update.
	* ipa-pure-const (propagate_pure_const, local_pure_const): Update
	flags setting code.
	* ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
	look at inline clones; fix handling of external definitions.
	(cgraph_postorder): Do not look at inline clones in the first pass.
	(function_and_variable_visibility): Drop constructors/destructor
	flags at pure and const functions.
	* tree-profile.c (tree_profiling): Update.
	* ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
	address taken; external functions do not account to whole program size.
	(cgraph_decide_inlining): Likewise; do not try to inline
	functions already inlined.

2010-10-26  Jie Zhang  <jie@codesourcery.com>

	* doc/invoke.texi: Improve documentation of
	-fstrict-volatile-bitfields.

2010-10-26  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/46167
	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
	is basic block for the statement.

2010-10-26  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
	current definition of struct_real_format.

2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/44948
	* config/i386/i386.c (ix86_old_function_arg_boundary): New.
	(ix86_function_arg_boundary): Always align parameters on stack
	in 64bit and align parameters with alignment >= 16byte on stack
	in 32bit.  Warn alignment change.

2010-10-26  Ian Lance Taylor  <iant@google.com>

	PR middle-end/45687
	* ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
	offset.

2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>

	Implement opaque-enum-specifiesr for C++0x
	* tree.h (ENUM_IS_OPAQUE): New.
	* dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.

2010-10-26  Jie Zhang  <jie@codesourcery.com>

	* stor-layout.c (layout_decl): Use the field's type to
	determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
	* config/arm/arm.c (arm_override_options): Default to
	-fstrict-volatile-bitfields.

2010-10-25  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.md: Add define_constants for register
	numbers, branch offset limits.
	* config/pdp11/pdp11.c: Use named constants instead of numbers.
	* config/pdp11.pdp11.h: Ditto.

2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>

	* configure.ac: Use $cpu_type instead of $target to define the nop.
	* configure: Regenerate.

2010-10-25  Jie Zhang  <jie@codesourcery.com>

	* combine.c (try_combine): If insns need to be kept around, check that
	they can be copied in the merged instruction.

2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>

	* reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
	has been modified.
	(convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
	(convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
	it has been modified.

2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.

2010-10-24  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.md: Change length attribute to be in bytes.
	* config/pdp11/pdp11.c (output_jump): Ditto.

2010-10-24  Ian Lance Taylor  <iant@google.com>

	* config/i386/i386.c (ix86_va_start): Remove extraneous blank line.

2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>

	* cfglayout.c (fixup_reorder_chain): When ensuring that there is at
	least one insn with a locus corresponding to an edge's goto_locus,
	disregard non-fallthru edges to the exit block and merge the blocks
	created for the same goto_locus.

2010-10-23  Joseph Myers  <joseph@codesourcery.com>

	* gcc.c (n_switches_alloc_debug_check): New.
	(set_option_handlers): New.
	(process_command): Use set_option_handlers.
	(do_self_spec): Pass spec-generated options through option handlers.
	(main): Also save and restore n_switches_alloc when swapping
	switch arrays.

2010-10-23  Richard Henderson  <rth@redhat.com>

	PR target/46144
	* config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
	(*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
	Honor matching operands when splitting to XOR.

2010-10-23  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (extract_range_from_binary_expr): If
	flag_non_call_exceptions don't eliminate division by zero.
	* simplify-rtx.c (simplify_binary_operation_1): Likewise.

2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>

	* cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
	__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
	__ORDER_PDP_ENDIAN__.
	* libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	(struct DWstruct): Define based on __BYTE_ORDER__.
	* config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	(struct INTstruct): Define based on __BYTE_ORDER__.
	* config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	(LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
	* system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
	* config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* doc/tm.texi: Regenerate.
	* doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
	(__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.

2010-10-23  Jie Zhang  <jie@codesourcery.com>

	PR rtl-optimization/37360
	* config/mips/mips.c (cached_can_issue_more): New local variable.
	(mips_sched_reorder_1): New.
	(mips_sched_reorder): Use mips_sched_reorder_1.
	(mips_sched_reorder2): New.
	(mips_variable_issue): Set cached_can_issue_more.
	(TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
	instead of mips_sched_reorder.

	Revert:
	2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
	PR rtl-optimization/37360
	* haifa-sched.c (max_issue): Do not assert that we never issue more
	insns than issue_rate.  Add comment.

2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_variable_sized_compare): Preserve the source
	location info of the expression.

2010-10-22  DJ Delorie  <dj@redhat.com>

	* doc/extend.texi (Named Address Spaces): Document the M32C named
	address space.

	* config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
	__far address space.
	* config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
	"__far" address space for R8C and M16C processor variants.
	* config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
	(far_addr_space_p): New.
	(encode_pattern_1): Add sign and zero extend support.
	(m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
	(m32c_extra_constraint_p2): Add SF constraint.
	(m32c_legitimate_address_p): Support __far addresses.
	(m32c_addr_space_pointer_mode): New.
	(m32c_addr_space_address_mode): New.
	(m32c_addr_space_legitimate_address_p): New.
	(m32c_addr_space_legitimize_address): New.
	(m32c_addr_space_subset_p): New.
	(m32c_addr_space_convert): New.
	(conversions): Add __far operand patterns.
	(m32c_prepare_move): Force constants into registers for __far moves.
	(m32c_split_move): __far moves are always split.
	* config/m32c/addsub.md (addsi3_1): Support SImode symbols.
	* config/m32c/mov.md (mov<mode>_far_op1): New.
	(mov<mode>_far_op2): New.
	(movqi_op): Add __far (SF) support.
	(movhi_op): Likewise.
	(movsi_splittable): Split A1A0 also.

2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
	    Andrew Pinski  <pinskia@gmail.com>

	* c-typeck.c (build_array_ref): Handle subscripting of vectors.
	* doc/extend.texi: New paragraph

2010-10-22  Paul Koning  <ni1d@arrl.net>

	* config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.

2010-10-22  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.

2010-10-22  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.

2010-10-22  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_builtin_vectorized_function): Add
	cases for __builtin_fma and __builtin_fmaf.

2010-10-22  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
	NEG+USE for vectors as well.
	* config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
	and splitter.

2010-10-22  Joseph Myers  <joseph@codesourcery.com>

	* gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
	SWITCH_CURTAILS_COMPILATION): Remove.
	* doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
	* doc/tm.texi: Regenerate.
	* system.h (SWITCH_CURTAILS_COMPILATION): Poison.

2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>

	* config/i386/bdver1.md: New file.
	* config/i386/i386.md (include "bdver1.md"): Invoke the
	pipeline description for bdver1.
	(x86_sahf_1): Add "bdver1_decode" attribute.
	(*cmpfp_i_mixed): Likewise.
	(*cmpfp_i_sse): Likewise.
	(*cmpfp_i_i387): Likewise.
	(*cmpfp_iu_mixed): Likewise.
	(*cmpfp_iu_sse): Likewise.
	(*cmpfp_iu_387): Likewise.
	(*swap<mode>,*swap<mode>_1): Likewise.
	(fixuns_trunc<mode>hi2): Likewise.
	(fix_trunc<mode>si_sse): Likewise.
	(x86_fnstcw_1): Likewise.
	(x86_fldcw_1): Likewise.
	(*floatsi<mode>2_vector_mixed_with_temp): Likewise.
	(*floatsi<mode>2_vector_mixed): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
	(*floatsi<mode>2_vector_sse_with_temp): Likewise.
	(*floatsi<mode>2_vector_sse): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
	(*mul<mode>3_1): Likewise.
	(*mulsi3_1_zext): Likewise.
	(*mulhi3_1): Likewise.
	(*mulqi3_1): Likewise.
	(*<u>mul<mode><dwi>3_1): Likewise.
	(*<u>mulqihi3_1): Likewise.
	(*<s>muldi3_highpart_1): Likewise.
	(*<s>mulsi3_highpart_1): Likewise.
	(*<s>mulsi3_highpart_zext): Likewise.
	(x86_64_shld): Likewise.
	(x86_shld): Likewise.
	(x86_64_shrd): Likewise.
	(x86_shrd): Likewise.
	(sqrtxf2): Likewise.
	(sqrt_extend<mode>xf2_i387): Likewise.
	(*sqrt<mode>2_sse): Likewise.
	* config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
	(sse_cvtsi2ssq): Likewise.
	(sse_cvtss2si): Likewise.
	(sse_cvtss2si_2): Likewise.
	(sse_cvtss2siq): Likewise.
	(sse_cvtss2siq_2): Likewise.
	(sse_cvttss2si): Likewise.
	(sse_cvttss2siq): Likewise.
	(sse2_cvtpi2pd): Likewise.
	(sse2_cvttpd2pi): Likewise.
	(sse2_cvtsi2sd): Likewise.
	(sse2_cvtsi2sdq): Likewise.
	(sse2_cvtsd2si): Likewise.
	(sse2_cvtsd2si_2): Likewise.
	(sse2_cvtsd2siq): Likewise.
	(sse2_cvtsd2siq_2): Likewise.
	(sse2_cvttsd2si): Likewise.
	(sse2_cvttsd2siq): Likewise.
	(*sse2_cvtpd2dq): Likewise.
	(*sse2_cvttpd2dq): Likewise.
	(sse2_cvtsd2ss): Likewise.
	(sse2_cvtss2sd): Likewise.
	(*sse2_cvtpd2ps): Likewise.
	(sse2_cvtps2pd): Likewise.

2010-10-22  Richard Guenther  <rguenther@suse.de>

	PR middle-end/46137
	* gimple-fold.c (gimplify_and_update_call_from_tree): Properly
	remove the virtual operands if they are not needed.

2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>

	* config/i386/i386.c (processor_costs bdver1_cost): Update
	insn costs and architectural parameters for bdver1.

2010-10-22  Richard Guenther  <rguenther@suse.de>

	* gimple.h (gimple_register_canonical_type): Declare.
	* gimple.c (gimple_canonical_types): New global hashtable.
	(struct gimple_type_leader_entry_s): New type.
	(gimple_type_leader): New global cache.
	(gimple_lookup_type_leader): New function.
	(gtc_visit): Query the proper cache.
	(gimple_types_compatible_p): Likewise.
	(gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
	(gimple_canonical_type_eq): New function.
	(gimple_register_canonical_type): Likewise.
	(print_gimple_types_stats): Adjust for gimple_canonical_types.
	(free_gimple_type_tables): Likewise.  Free gimple_type_leader.
	* tree-ssa.c (useless_type_conversion_p): Do not dispatch to
	gimple_types_compatible_p for LTO.

2010-10-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/46098
	* config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
	Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
	(avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
	(*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
	(<sse>_movu<ssemodesuffix>): New expander.
	(*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
	(avx_movdqu<avxmodesuffix>): New expander.
	(*sse2_movdqu): Rename from sse2_movdqu.
	(sse2_movdqu): New expander.

2010-10-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45720
	* tree-vect-data-refs.c (vect_update_misalignment_for_peel):
	Handle negative step.
	(vect_enhance_data_refs_alignment): Likewise.
	* tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
	(vect_create_cond_for_align_checks): Likewise.
	(vect_create_cond_for_alias_checks): Likewise.

2010-10-22  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/46126
	* tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
	vectorizable_shift in case of basic block vectorization.

2010-10-22  Joseph Myers  <joseph@codesourcery.com>

	* target.h (enum opt_levels, struct default_options): New.
	* target.def (handle_ofast): Remove hook.
	(target_option.optimization): Change to
	target_option.optimization_table.
	* doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	(CAN_DEBUG_WITHOUT_FP): Remove.
	* doc/tm.texi: Regenerate.
	* opts.c (maybe_default_option, maybe_default_options,
	default_options_table): New.
	(default_options_optimization): Take extra parameters.  Don't
	assert that global_options and global_options_set are in use.  Use
	maybe_default_options.
	(decode_options): Pass extra parameters to
	default_options_optimization.
	* common.opt (falign-loops): Use value 0 with Var.
	(frerun-cse-after-loop, ftree-ter): Remove Init.
	* system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
	TARGET_OPTION_OPTIMIZATION): Remove.
	* targhooks.c (empty_optimization_table): New.
	* targhooks.h (empty_optimization_table): Declare.
	* toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
	* config/alpha/alpha.c (alpha_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/arm/arm.c (arm_option_optimization: Change to
	arm_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/avr/avr.c (avr_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/cris/cris.c (cris_option_optimization): Change to
	cris_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/crx/crx.c (crx_option_optimization): Change to
	crx_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/fr30/fr30.c (fr30_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/frv/frv.c (frv_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/h8300/h8300.c (h8300_option_optimization): Change to
	h8300_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/i386/i386.c (ix86_option_optimization): Change to
	ix86_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
	as initializer.
	* config/ia64/ia64.c (ia64_option_optimization): Change to
	ia64_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
	initializer.
	* config/iq2000/iq2000.c (iq2000_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/lm32/lm32.c (lm32_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/m32r/m32r.c (m32r_option_optimization): Change to
	m32r_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
	CAN_DEBUG_WITHOUT_FP): Remove.
	* config/mcore/mcore.c (mcore_option_optimization): Change to
	mcore_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/mep/mep.c (mep_option_optimization): Change to
	mep_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/microblaze/microblaze.c
	(microblaze_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/mips/mips.c (mips_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/mmix/mmix.c (mmix_option_optimization): Change to
	mmix_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/mn10300/mn10300.c (mn10300_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/pa/pa.c (pa_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/pdp11/pdp11.c (pdp11_option_optimization): Change to
	pdp11_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/picochip/picochip.c (picochip_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/rs6000/rs6000.c (rs6000_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/rx/rx.c (rx_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/s390/s390.c (s390_option_optimization): Change to
	s390_option_optimization_table.
	(s390_option_override): Update comment.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/score/score.c (score_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/sh/sh.c (sh_option_optimization): Change to
	sh_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	(sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
	(sh_option_override, expand_block_move, multcosts, find_barrier,
	barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
	* config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
	(LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
	STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
	instead of TARGET_SMALLCODE.
	* config/sh/sh.opt (mspace): Make into an alias for -Os.
	* config/sparc/sparc.c (sparc_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/stormy16/stormy16.c (xstorym16_option_optimization_table,
	TARGET_OPTION_OPTIMIZATION_TABLE): New.
	* config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/v850/v850.c (v850_option_optimization): Change to
	v850_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/xtensa/xtensa.c (xtensa_option_optimization): Change to
	xtensa_option_optimization_table.
	(TARGET_OPTION_OPTIMIZATION): Change to
	TARGET_OPTION_OPTIMIZATION_TABLE.
	* config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.

2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>

	Based on the CFString implementation in FSF apple/trunk branch.

	* target.def (objc_construct_string): New Hook.
	* doc/tm.texi (objc_construct_string): Document.
	* doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
	* config/t-darwin: Amend build rules for darwin.o.
	* config/darwin.opt: Add cfstrings flags.
	* config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
	(darwin_objc_construct_string): New.
	* config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
	* config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
	* config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
	(darwin_fold_builtin): Likewise.
	(darwin_build_constant_cfstring): Likewise.
	(darwin_objc_construct_string): Likewise.
	(darwin_cfstring_p): Likewise.
	(darwin_enter_string_into_cfstring_table): Likewise.
	* config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
	* config/darwin.c (darwin_running_cxx): New var.
	(machopic_select_section): Return cfstring_constant_object_section.
	(darwin_override_options): Set darwin_running_cxx.
	(add_builtin_field_decl): New.
	(darwin_init_cfstring_builtins): New.
	(darwin_build_constant_cfstring): New.
	(darwin_fold_builtin): New.
	(cfstring_hash): New.
	(cfstring_eq): New.
	(darwin_enter_string_into_cfstring_table): New.
	* config/darwin-sections.def (cfstring_constant_object_section): New.
	* config/darwin.h (TARGET_FOLD_BUILTIN): Define.
	(TARGET_OBJC_CONSTRUCT_STRING): Define.

2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>

	* config/alpha/alpha.c (alpha_build_builtin_va_list): Use
	TYPE_STUB_DECL instead of TREE_CHAIN.
	* config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
	* config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
	* config/s390/s390.c (s390_build_builtin_va_list): Likewise.
	* config/sh/sh.c (sh_build_builtin_va_list): Likewise.
	* config/spu/spu.c (spu_build_builtin_va_list): Likewise.
	* config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
	Likewise.
	* config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.

2010-10-22  Jie Zhang  <jie@codesourcery.com>

	* expr.c (emit_group_load_1): Update calls to extract_bit_field.
	(copy_blkmode_from_reg): Likewise.
	(read_complex_part): Likewise.
	(expand_expr_real_1): Calculate packedp and pass it to
	extract_bit_field.
	* expr.h (extract_bit_field): Update declaration.
	* calls.c (store_unaligned_arguments_into_pseudos): Update call
	to extract_bit_field.
	* expmed.c (extract_fixed_bit_field): Update calls to
	extract_fixed_bit_field.
	(store_split_bit_field): Likewise.
	(extract_bit_field_1): Add new argument packedp.
	(extract_bit_field): Add new argument packedp.
	(extract_fixed_bit_field): Add new argument packedp and let
	packed attribute override volatile.
	* stmt.c (expand_return): Update call to extract_bit_field.

2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>

	* config/spu/spu.c (spu_function_arg): Dereference CUM parameter.

2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>

	* ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
	of gcc_checking_assert.
	* sel-sched.c (code_motion_process_successors): Likewise.

2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>

	* cfgcleanup.c (try_forward_edges): Do not throw away previous steps
	when stopping because of a different locus on edge or insn.
	(try_optimize_cfg): Add comment.
	* cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
	block is a forwarder block, propagate locus on the edge.
	(cfg_layout_merge_blocks): Likewise.

2010-10-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/45946
	* config/i386/i386.md (*pushti2): New insn pattern.
	(pushti2 splitter): New insn splitter.
	(*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
	DWI mode iterator.

2010-10-21  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11-protos.md (arith_operand,
	const_immediate_operand, expand_shift_operand,
	immediate15_operand): Delete
	* config/pdp11/pdp11.c: Ditto.
	* config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
	CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
	EXTRA_CONSTRAINT): Delete.
	* config/pdp11/pdp11.md (various): Use standard constraints
	instead of removed ones.
	* config/pdp11/constraints.md: New file.
	* config/pdp11/predicates.md: New file.

2010-10-21  Bingfeng Mei  <bmei@broadcom.com>

	PR c/45834
	* alias.c (true_dependence_1): Remove obsolete check for QImode.
	(may_alias_p): Ditto.

2010-10-21  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/45875
	* tree.c (get_binfo_at_offset): Remove initial zero offset test.

2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>

	* tree-into-ssa.c (rewrite_update_enter_block): Remove unused
	variables.
	(create_new_def_for): Likewise.

2010-10-21  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.c: Fold code to 80-character width.
	Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
	MEM, CONST_INT and CONST_DOUBLE.
	(targetm): Move initialization to end of file.
	(print_operand): Rename to mn10300_print_operand.
	(print_operand_address): Rename to mn10300_print_operand_address.
	(can_use_return_insn): Rename to mn10300_can_use_return_insn.
	(expand_prologue): Rename to mn10300_expand_prologue.
	(expand_epilogue): Rename to mn10300_expand_epilogue.
	(initial_offset): Rename to mn10300_initial_offset.
	(function_arg): Rename to mn10300_function_arg.
	(mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
	(symbolic_operand): Rename to mn10300_symbolic_operand.
	(legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
	(legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
	* config/mn10300/mn10300-protos.h: Update prototypes.
	* config/mn10300/mn10300.h: Fold code to 80-character width.
	Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
	MEM, CONST_INT and CONST_DOUBLE.
	(CPP_SPEC): Move to...
	(TARGET_CPU_CPP_BUILTINS): ... here.
	* config/mn10300/mn10300.md: Fold code to 80-character width.
	Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
	MEM, CONST_INT and CONST_DOUBLE.

2010-10-21  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/46049
	PR tree-optimization/46052
	* tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
	(vect_get_slp_defs): Add arguments.
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
	operands to vect_get_slp_defs.
	(vectorizable_reduction): Fix comment, pass scalar operands to
	vect_get_slp_defs.
	* tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
	type to determine number of units in the created vector.
	(vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
	(vectorizable_conversion): Fix comment.
	(vectorizable_shift): New function.
	(vectorizable_operation): Move code that handles shifts to
	vectorizable_shift.
	(vectorizable_type_demotion): Fix comment, pass scalar operands to
	vect_get_slp_defs.
	(vectorizable_type_promotion, vectorizable_store): Likewise.
	(vectorizable_condition): Fix comment.
	(vect_analyze_stmt): Call vectorizable_shift.
	(vect_transform_stmt): Likewise.
	* tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
	Use it as the operand to create vectors for, except reduction
	initial definition and store.  Use operands type.
	(vect_get_slp_defs): Add new arguments.  Pass them to
	 vect_get_constant_vectors.

2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>

	* basic-block.h (single_succ_edge): Use gcc_checking_assert.
	(single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
	* cfghooks.c (fixup_reorder_chain): Likewise.
	* cfgrtl.c (cfg_layout_merge_blocks): Likewise.
	* cgraph.c (cgraph_add_thunk): Likewise.
	(cgraph_create_edge_1): Likewise.
	(cgraph_create_virtual_clone): Likewise.
	* ddg.c (add_cross_iteration_register_deps): Likewise.
	* dwarf2out.c (modified_type_die): Likewise.
	* emit-rtl.c (set_mem_alias_set): Likewise.
	* ggc-zone.c (zone_allocate_marks): Likewise.
	* gimple-iterator.c (gsi_move_to_bb_end): Likewise.
	* gimple.c (iterative_hash_gimple_type): Likewise.
	* graphite-scop-detection.c (create_single_entry_edge): Likewise.
	(create_single_exit_edge): Likewise.
	* haifa-sched.c (choose_ready): Likewise.
	* lto-streamer-in.c (input_gimple_stmt): Likewise.
	* passes.c (execute_todo): Likewise.
	* sched-ebb.c (begin_schedule_ready): Likewise.
	* sel-sched.c (code_motion_process_successors): Likewise.
	* tree-call-cdce.c (gen_conditions_for_pow): Likewise.
	* tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
	* tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
	(phi_arg_index_from_use, phi_ssa_name_p): Likewise.
	* tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
	* tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
	(ssa_conflicts_add): Likewise.
	* tree-ssa-copy.c (replace_exp): Likewise.
	* tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
	* tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
	* tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
	* tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
	(compute_antic): Likewise.
	* tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
	(add_dependence): Likewise.
	(process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
	* tree-vrp.c (supports_overflow_infinity): Likewise.
	(make_overflow_infinity, negative_overflow_infinity): Likewise.
	(avoid_overflow_infinity, register_new_assert_for): Likewise.
	(process_assert_insertions_for): Likewise.
	* var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
	(dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
	(intersect_loc_chains, variable_merge_over_cur): Likewise.

2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>

	* cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
	* reload1.c (has_nonexceptional_receiver): Likewise.
	* tree-into-ssa.c (rewrite_update_enter_block): Likewise.
	(create_new_def_for): Likewise.
	* tree-cfgcleanup.c (remove_forwarder_block): Likewise.
	(merge_phi_nodes): Likewise.
	(has_abnormal_incoming_edge_p): Delete.

2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.

2010-10-21  Richard Guenther  <rguenther@suse.de>
	    Michael Matz  <matz@suse.de>

	PR tree-optimization/45764
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment):
	Adjust initial misalignment for negative DR_STEP.
	(vect_find_same_alignment_drs): Two DRs with different DR_STEP
	do not have the same alignment over the whole iteration domain.

2010-10-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46111
	* tree-parloops.c (take_address_of): Re-organize for MEM_REF.

2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.

2010-10-21  Tristan Gingold  <gingold@adacore.com>

	* config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
	* config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.

2010-10-21  Tristan Gingold  <gingold@adacore.com>

	* config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
	signal_frame.
	* config/alpha/alpha.c (alpha_function_arg): Adjust call.

2010-10-21  Tristan Gingold  <gingold@adacore.com>

	* config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
	* config/ia64/vms.h (TARGET_DEFAULT): Ditto.

2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>

	* basic-block.h (find_fallthru_edge): Define.
	* cfgcleanup.c (merge_blocks_move): Use it.
	(try_crossjump_bb): Likewise.
	* cfglayout.c (fixup_reorder_chains): Likewise.
	(fixup_fallthru_exit_predecessor): Likewise.
	* cfgrtl.c (rtl_split_edge): Likewise.
	(rtl_verify_flow_info): Likewise.
	* function.c (thread_prologue_and_epilogue_insns): Likewise.
	* gimple-pretty-print.c (dump_implicit_edges): Likewise.
	* ifcvt.c (block_fallthru): Likewise.
	* reload1.c (fixup_abnormal_edges): Likewise.
	* sched-ebb.c (being_schedule_ready): Likewise.
	(schedule_ebb): Likwise.
	* sched-rgn.c (find_single_block_region): Likewise.
	* sel-sched-ir.c (bb_ends_ebb_p): Likewise.
	* tree-complex.c (expand_complex_move): Likewise.
	* sched-int.h (find_fallthru_edge): Rename to...
	(find_fallthru_edge_from): ...this.
	* haifa-sched.c (find_fallthru_edge): Rename to...
	(find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
	(init_before_recovery): Call find_fallthru_edge_from.
	* sel-sched-ir.c (merge_fences): Likewise.
	* sel-sched.c (in_fallthru_bb_p): Likewise.
	(move_cond_jump): Likewise.

2010-10-20  Paul Koning  <ni1d@arrl.net>

	* config/pdp11/pdp11.md (various): Fix conditions on a number of
	insn to check for target 11/40 or higher.

2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>

	* parser.c (c_parser_objc_method_type): Mark inline.  Return a
	bool instead of a tree.
	(c_parser_objc_method_decl): Added bool argument.  Updated call to
	objc_build_method_signature.
	(c_parser_objc_method_definition): Do not call
	objc_set_method_type.  Updated calls to c_parser_objc_method_type,
	c_parser_objc_method_decl and objc_start_method_definition.
	(c_parser_objc_methodproto): Do not call objc_set_method_type.
	Updated calls to c_parser_objc_method_type,
	c_parser_objc_method_decl and objc_add_method_declaration.

2010-10-20  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/45919
	* tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
	array members.

	PR tree-optimization/46066
	* tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
	instead of gsi_last_bb.

2010-10-20  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.c (m32c_option_override): Always disable
	function-cse in 16-bit mode.  Indirect calls are always worse than
	direct calls as there is no 16-bit indirect call opcode.
	(m32c_override_options_after_change): New, likewise.

2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>

	* ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
	emitting the conditional move in the inner mode of the SUBREG.

2010-10-20  Anatoly Sokolov  <aesok@post.ru>

	* config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
	* config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
	* config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
	(ia64_preferred_reload_class): Make static.  Change rclass argument
	and result types from enum reg_class to reg_class_t.

2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>

	* tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
	call for single operand expression.

2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
	if there is a call statement to pure or const function in the block.

2010-10-20  Paul Koning  <pkoning@equallogic.com>

	Fix several build errors for pdp11 target.
	* config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
	(cbranchdf4): Conditional on TARGET_FPU.
	(movdf): Ditto; correct alternatives check.
	(movmemhi): Fix predicate and constraint.
	* config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.

2010-10-20  Richard Guenther  <rguenther@suse.de>

	PR lto/45667
	* lto-streamer-out.c (output_gimple_stmt): Fix typo.
	* tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
	(verify_gimple_assign_single): Disable ADDR_EXPR type check
	when in LTO.

2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>

	PR fortran/42169
	* ira-emit.c (store_can_be_removed_p): Return false instead of
	gcc_unreachable.

2010-10-20  Dmitry Melnik  <dm@ispras.ru>

	* fold-const.c (fold_binary_loc): New transformation.

2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/46085
	* config/i386/sse.md (reduc_splus_v8sf): Updated.
	(reduc_splus_v4df): Likewise.

2010-10-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45860
	* tree-ssa-phiopt.c (cond_store_replacement): Do not do
	conditional store replacement for non-register type stores.

2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (skip_simple_constant_arithmetic): New function.
	(self_referential_size): Use it instead of skip_simple_arithmetic.

2010-10-20  Olivier Hainque  <hainque@adacore.com>

	* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
	If the current function calls eh_return, claim live all registers
	that we need to check for liveness otherwise.

2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-decl.c (c_write_global_declarations): Call
	objc_write_global_declarations when compiling Objective-C.
	* c-lang.c (finish_file): Removed.

2010-10-19  DJ Delorie  <dj@redhat.com>

	* doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
	(TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
	(TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
	(TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
	* doc/tm.texi: Regenerate.
	* targhooks.h (default_label_align_after_barrier_max_skip,
	default_loop_align_max_skip, default_label_align_max_skip,
	default_jump_align_max_skip): Declare.
	* target.def (label_align_after_barrier_max_skip): New.
	(loop_align_max_skip): New.
	(label_align_max_skip): New.
	(jump_align_max_skip): New.
	* system.h (poison): Add those macros to the list.
	* final.c (LABEL_ALIGN_MAX_SKIP): Remove.
	(LOOP_ALIGN_MAX_SKIP): Remove.
	(LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
	(JUMP_ALIGN_MAX_SKIP): Remove.
	(default_label_align_after_barrier_max_skip): New.
	(default_loop_align_max_skip): New.
	(default_label_align_max_skip): New.
	(default_jump_align_max_skip): New.
	(compute_alignments): Use the new hooks.
	(shorten_branches): Likewise.

2010-10-19  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
	* config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
	(fma4i_fmadd_<mode>): New.
	(*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
	fma4_fm*_<mode> and adjust to be pre-reload splitters to the
	standard fma patterns.
	(fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
	enable for FMA.
	(*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
	(*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
	(*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.

2010-10-19  Paul Koning  <pkoning@equallogic.com>

	* lower-subreg.c (resolve_shift_zext): Delete conditional code for
	WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.

2010-10-19  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
	(fmadf4, *fmsdf4, *nfmadf4): New.
	(fmaxf4, *fmsxf4, *nfmaxf4): New.

2010-10-19  Michael Eager  <eager@eagercon.com>

	* config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
	Use sjlj unwind info for exceptions.

2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>

	PR fortran/43414
	* dwarf2out.c (add_calling_convention_attribute): Flag main
	Fortran subroutine with DW_AT_main_subprogram.

2010-10-19  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.c (rx_function_value): Small integer types are
	promoted to SImode.
	(rx_promote_function_mode): New function.
	(TARGET_PROMOTE_FUNCTION_MODE): Define.

2010-10-19  Nick Clifton  <nickc@redhat.com>

	* config/mep/mep.c (mep_print_operand): Use
	targetm.strip_name_encoding.
	(mep_output_aligned_common): Likewise.

2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>

	* gengtype.c (new_structure): Remove ad-hoc "location_s" processing.

2010-10-18  Richard Henderson  <rth@redhat.com>

	* simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
	(fma (neg a) (neg b) c) and (fma a (neg b) c).

2010-10-18  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
	IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
	IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
	IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
	IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
	IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
	IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
	IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
	IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
	IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
	(bdesc_multi_arg): Remove the corresponding builtins.
	* config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
	(UNSPEC_FMA4_FMSUBADD): Remove.
	(UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
	* config/i386/sse.md (FMA4MODEF4): Remove.
	(FMAMODE): Add.
	(fma<mode>4): New expander.
	(*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
	and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
	(*fma4i_fmsub_<mode>): Similarly.
	(*fma4i_fnmadd_<mode>): Similarly.
	(*fma4i_fnmsub_<mode>): Similarly.
	(fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
	with the first operand.
	(fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
	of explicit arithmetic.  Macroize with AVXMODEF2P.
	(*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
	(xop_frcz<mode>2): Macroize with FMAMODE.
	(xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
	the first operand.
	* config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
	extra negations.
	(_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
	(_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
	(_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
	(_mm256_msub_ps, _mm256_msub_pd): Likewise.
	(_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
	(_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
	(_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
	(_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.

2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/45966
	* combine.c (try_combine): If added_sets_2, deal with the case
	where i0 feeds i1 and i1 feeds i2.

2010-10-18  Jan Hubicka  <jh@suse.cz>

	* ipa.c (cgraph_externally_visible_p): Handle externally visible and
	preserve flags before trying to guess on visibility.
	(varpool_externally_visible_p): New function.
	(function_and_variable_visibility): Use it.

2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>

	Implemented parsing @synthesize and @dynamic for Objective-C.
	* c-parser.c (c_parser_external_declaration): Recognize
	RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
	(c_parser_objc_at_synthesize_declaration): New.
	(c_parser_objc_at_dynamic_declaration): New.

2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_objc_class_declaration): After finding an
	error, parse the whole declaration then reset parser->error.

2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/46041
	* tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
	* builtins.c (mode_has_fma): Ditto.

2010-10-18  Steve Ellcey  <sje@cup.hp.com>

	PR target/36898
	PR middle-end/43760
	* config/ia64/ia64.c (rws_access_regno): Remove predicate check.

2010-10-18  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/i386.c (ix86_option_override_internal): Define and
	use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
	default.
	* config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
	(USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.

2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>

	Merge from 'apple/trunk' branch on FSF servers.
	* c-parser.c (c_parser_objc_type_name): Adapted to new parser the
	following Objective-C change:

	2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>

	Radar 4301047
	* c-parse.in (objc_quals): Build objc qualifier list same way
	as gcc-3.3

2010-10-18  Jan Hubicka  <jh@suse.cz>

	* ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
	function_and_variable_visibility): Revert accidental commit.

2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>

	Merge from 'apple/trunk' branch on FSF servers.
	* c-parser.c (c_parser_typeof_specifier): Adapted to new parser
	the following Objective-C change:

	2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>

	Radar 4204796
	* c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
	'volatilized' type used in a typeof operator.

2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
	* tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
	rewrite modelled on gimple_purge_dead_eh_edges.
	(gimple_purge_all_dead_abnormal_call_edges): New function.
	* tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
	directly instead of through gimple_purge_dead_abnormal_call_edges.
	* tree-ssa-pre.c (need_ab_cleanup): New static variable.
	(eliminate): Set bit in need_ab_cleanup for the basic block if we have
	removed AB side-effects from one of its statements.
	(init_pre): Initialize need_ab_cleanup.
	(fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
	are set in need_ab_cleanup.  Free need_ab_cleanup afterward.

2010-10-18  Jakub Jelinek  <jakub@redhat.com>

	PR c/46015
	* c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
	on computed goto argument.

2010-10-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45967
	* tree-ssa-structalias.c (type_could_have_pointers): Remove.
	(could_have_pointers): Likewise.
	(handle_rhs_call, handle_const_call, handle_pure_call,
	find_func_aliases, intra_create_variable_infos): Remove calls to them.
	(struct fieldoff): Add must_have_pointers field.
	(type_must_have_pointers): New function.
	(field_must_have_pointers): Likewise.
	(push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
	Adjust field merging.
	(create_function_info_for): May-have-pointers of varinfo is
	almost always true.
	(create_variable_info_for_1): Likewise.

2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>

	* config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
	of operands to vec_concat.

2010-10-18  Richard Guenther  <rguenther@suse.de>

	PR lto/44950
	* tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
	also clear references to entries of it.

2010-10-18  Andi Kleen  <ak@linux.intel.com>

	PR other/43448
	* gccbug.in: Remove.
	* Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
	(doc, distclean, install-common): Remove reference to gccbug.
	* configure: Regenerate.
	* configure.ac (all_outputs): Remove gccbug.
	* doc/configfiles.texi: Remove references to gccbug.
	* doc/sourcebuild.texi: Dito.

2010-10-18  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/46019
	* fold-const.c (fold_binary_loc): If integer_pow2p has
	TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.

2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
	    Jeremie Salvucci  <jeremie.salvucci@free.fr>

	* gengtype.c (verbosity_level): Add variable.
	(set_gc_used): Count variables for verbosity.
	(close_output_files): Backing up files, counting written ones
	verbosily.
	(write_types): Count emitted functions for verbosity. Added
	debug messages.
	(write_enum_defn): Count structures for verbosity. Added debug
	messages.
	(gengtype_long_options): Add "verbose" & "backupdir".
	(print_usage): Ditto.
	(main): Verbose display of parsed files.

	* gengtype.h (verbosity_level): Add declaration.

2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>

	* gengtype.c (parse_program_options): Add allocation of
	plugin_files, and correct test on nb_plugin_files.

2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>

	Merge from 'apple/trunk' branch on FSF servers.

	2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>

	Radar 4133425
	* c-decl.c (undeclared_variable): Issue diagnostic on
	private 'ivar' access.

2010-10-17  Uros Bizjak  <ubizjak@gmail.com>

	PR target/46051
	* config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
	generated sequence to match *avx_vperm2f128<mode>_nozero.
	(vec_interleave_lowv4df): Ditto.
	(vec_interleave_highv8sf): Ditto.
	(vec_interleave_lowv8sf): Ditto.

2010-10-17  Kai Tietz  <kai.tietz@onevision.com>

	* libgcov.c (create_file_directory): Enable it for win32 case.
	(gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
	* doc/gcov.texi (GCOV_PREFIX): Adjusted.
	(GCOV_PREFIX_SKIP): Likewise.

2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>

	* doc/objc.texi (GNU Objective-C runtime API): New section.
	(Modern GNU Objective-C runtime API): New section.
	(Traditional GNU Objective-C runtime API): New section.
	(Executing code before main): Mention that this section is
	specific to the GNU Objective-C runtime.
	(Garbage Collection): Same.

2010-10-17  Uros Bizjak  <ubizjak@gmail.com>

	* c-parser.c (c_parser_for_statement): Move initialization of
	cond and incr before if.

2010-10-17  Anatoly Sokolov  <aesok@post.ru>

	* target.def (preferred_output_reload_class): New hook.
	* doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_preferred_output_reload_class): New function.
	* targhooks.h (default_preferred_output_reload_class): Declare.
	* reload.c (find_dummy_reload): Change rclass argument type from
	enum reg_class to reg_class_t. Change this_alternative array type
	from enum reg_class to reg_class_t.
	Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
	(push_reload): Change preferred_class variable type to reg_class_t.
	Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
	* recog.c (reg_fits_class_p): Change result type to bool. Change cl
	argument type from enum reg_class to reg_class_t. Use
	HARD_REGISTER_NUM_P predicate.
	* recog.h (reg_fits_class_p): Update prototype.

	* config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
	* config/i386/i386-protos.h (ix86_preferred_output_reload_class):
	Remove.
	* config/i386/i386.c (ix86_preferred_output_reload_class): Make
	static. Change regclass argument and result types from enum reg_class
	to reg_class_t.
	(TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.

2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>

	* c-parser.c (c_parser_objc_class_instance_variables): Update to use
	visibility enum, and handle @package.

2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>

	* doc/objc.texi (What you can and what you cannot do in +load):
	Document that sending messages to constant string objects in +load
	is not guaranteed to work.

2010-10-16  Jan Hubicka  <jh@suse.cz>

	PR middle-end/44206
	* ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
	existence of refrences before removing the function.

2010-10-16  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (dump_cgraph_node): Dump same_comdat_group,
	only_called_at_startup and only_called_at_exit.
	(cgraph_propagate_frequency): Compute only_called_at_startup and
	only_called_at_exit.
	* cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
	only_called_at_exit.
	* lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
	flags.
	* predict.c (compute_function_frequency): Initialize the new flags.

2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
	ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
	on the bounds of its domain.
	* tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.

2010-10-16  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/avr/avr-protos.h (preferred_reload_class): Remove.
	* config/avr/avr.c (preferred_reload_class): Remove.
	* config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/pa/pa.c (emit_move_sequence): Update comment
	* config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.

2010-10-16  Joseph Myers  <joseph@codesourcery.com>

	* opts.c (set_fast_math_flags,
	set_unsafe_math_optimizations_flags): Make static.
	* toplev.h (set_fast_math_flags,
	set_unsafe_math_optimizations_flags): Remove prototypes.

2010-10-16  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.c (arm_option_optimization): Set
	flag_section_anchors to 1 not 2.
	* config/i386/i386.c (ix86_option_override_internal): Check
	global_options_set.x_flag_zee and
	global_options_set.x_flag_omit_frame_pointer.
	(ix86_option_optimization): Don't set flag_omit_frame_pointer and
	flag_zee to 2.
	* config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
	global_options_set.x_flag_omit_frame_pointer.
	* config/rs6000/rs6000.c (rs6000_option_init_struct): Set
	opts->x_flag_section_anchors to 1 not 2.
	* config/sh/sh.c (sh_option_optimization): Don't set
	flag_schedule_insns to 2.
	(sh_option_override): Check
	global_options_set.x_flag_schedule_insns.
	* opts.c (finish_options): Check opts_set->x_flag_section_anchors.

2010-10-16  Kai Tietz  <kai.tietz@onevision.com>

	* configure.ac: Make sure inhibit_libc remains false for mingw targets
	as cross.
	* configure: Regenerated.

2010-10-15  Xinliang David Li  <davidxl@google.com>

	* tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
	function.
	(use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
	into a recursive function.

2010-10-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
	(*movdfcc_1): ditto.

2010-10-15  Joseph Myers  <joseph@codesourcery.com>

	* target.def (target_option.init_struct): New hook.
	* doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
	* doc/tm.texi: Regenerate.
	* hooks.c (hook_void_gcc_optionsp): New.
	* hooks.h (hook_void_gcc_optionsp): Declare.
	* langhooks-def.h (lhd_init_options_struct): Remove.
	(LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
	* langhooks.c (lhd_init_options_struct): Remove.
	* opts.c (init_options_struct): Also call
	targetm.target_option.init_struct.
	* config/i386/i386.c (ix86_option_init_struct,
	TARGET_OPTION_INIT_STRUCT): New.
	(ix86_option_optimization): Move some settings to
	ix86_option_init_struct.
	* config/pdp11/pdp11.c (pdp11_option_init_struct,
	TARGET_OPTION_INIT_STRUCT): New.
	(pdp11_option_optimization): Move some settings to
	pdp11_option_init_struct.
	* config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
	rs6000_option_init_struct.  Use options structure pointer.
	(TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
	* config/s390/s390.c (s390_option_init_struct,
	TARGET_OPTION_INIT_STRUCT): New.
	(s390_option_optimization): Don't set
	flag_asynchronous_unwind_tables here.
	* config/sh/sh.c (sh_option_init_struct,
	TARGET_OPTION_INIT_STRUCT): New.
	(sh_option_optimization): Don't set flag_finite_math_only here.
	* config/spu/spu.c (spu_option_optimization): Replace by
	spu_option_optimization.  Use options structure pointer.
	(TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.

2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* doc/md.texi (Standard Names): Add fma@var{m}4 documentation.

	* doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
	SIGN_EXTRACT and ZERO_EXTRACT which were missing.
	(Standard names): Document fma.

	* doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
	__FP_FAST_FMAF, __FP_FAST_FMAL.

	* builitns.c (expand_builtin_mathfn_ternary): New function for
	expanding ternary math functions, like fma.
	(expand_builtin): Call it for the fma builtins.

	* simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
	ops at present.

	* tree-vect-stmts.c (vectorizable_call): Allow 3 argument
	vectorizable functions to support vectorizing fma.

	* config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
	Handle fma builtins.

	* config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
	(UNSPEC_VSX_MSUB): Ditto.
	(UNSPEC_VSX_NMADD): Ditto.
	(UNSPEC_VSX_NMSUB): Ditto.
	(vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
	of UNSPEC. Renumber combiner patterns.
	(vsx_fmsub<mode>4*): Ditto.
	(vsx_fnmadd<mode>4*): Ditto.
	(vsx_fnmsub<mode>4*): Ditto.

	* config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
	(altivec_vmaddfp): Rewrite to use FMA rtl if no fused
	multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
	(altivec_vmaddfp_1): Ditto.
	(altivec_vmaddfp_2): Ditto.
	(atlivec_mulv4sf3): Ditto.
	(altivec_vnmsubfp): Ditto.
	(altivec_vnmsubfp_1): Ditto.
	(altivec_vnmsubfp_2): Ditto.
	(altivec_vnmsubfp_3): Delete.

	* config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
	(fmasf4_fpr): Ditto.
	(fmssf4_fpr): Ditto.
	(fnmasf4_fpr): Ditto.
	(fnmssf4_fpr): Ditto.
	(fmadf4): Ditto.
	(fmadf4_fpr): Ditto.
	(fmsdf4_fpr): Ditto.
	(fnmadf4_fpr): Ditto.
	(fnmsdf4_fpr): Ditto.

	* optabs.h (OTI_fma): Add fma optab.
	(fma_optab): Ditto.

	* genopinit.c (optabs): Set fma optab.

	* rtl.def (FMA): Add FMA rtl.

	* tree.h (mode_has_fma): New function to return if MODE supports a
	fast multiply and add instruction.
	* builtins.c (mode_has_fma): Ditto.

2010-10-15  Jan Hubicka  <jh@suse.cz>

	* lto-streamer-out.c (write_symbol): Use pointer set of seen
	objects instead of bitmap.
	(produce_symtab): Likewise; output defined symbols first.

2010-10-15  Jie Zhang  <jie@codesourcery.com>

	* doc/invoke.texi: Add -fstrict-volatile-bitfields to
	Option Summary and Index.

2010-10-15  Richard Guenther  <rguenther@suse.de>

	* tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
	for automatic variables again.

2010-10-15  Joseph Myers  <joseph@codesourcery.com>

	* doc/extend.texi (Variable Length): Don't refer to VLAs not
	conforming to C99.

2010-10-15  Joseph Myers  <joseph@codesourcery.com>

	* config/rx/rx.c (rx_option_optimization): Change to
	rx_override_options_after_change.  Don't change
	flag_lto_compression_level.  Don't check for changes to whether
	FPU instructions can be used.  Check and set only
	flag_finite_math_only, not other fast-math flags.
	(rx_option_override): Call rx_override_options_after_change.
	(TARGET_OPTION_OPTIMIZATION): Remove.
	(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.

2010-10-15  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_option_optimization): Don't
	disable section anchors for lang_hooks.name[4] != 'O'.

2010-10-15  Joseph Myers  <joseph@codesourcery.com>

	* config/frv/frv.c (frv_option_optimization,
	TARGET_OPTION_OPTIMIZATION): Remove.
	* config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.

2010-10-15  Michael Matz  <matz@suse.de>

	* cgraphunit.c (clone_of_p): Define unconditionally.

2010-10-15  Richard Guenther  <rguenther@suse.de>

	PR lto/45957
	* tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.

2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>

	* ifcvt.c (find_active_insn_before): New function.
	(find_active_insn_after): New function.
	(cond_exec_process_if_block): Use new functions to replace
	prev_active_insn() and next_active_insn().

2010-10-14  Yao Qi  <yao@codesourcery.com>

	PR target/45447
	* config/arm/arm.c (arm_build_builtin_va_list): Assign
	va_list_name to TYPE_STUB_DECL (va_list_type).

2010-10-14  Jan Hubicka  <jh@suse.cz>

	PR middle-end/45621
	* cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
	redirected to clone, be happy.
	* cgraph.h (cgraph node): Enable former_clone_of unconditinally.
	* cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
	former_clone_of unconditionally.

2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>

	Merge from FSF apple 'trunk' branch.
	2006 Fariborz Jahanian  <fjahanian@apple.com>

	Radars 4436866, 4505126, 4506903, 4517826
	* c-parser.c (c_parser, objc_property_attr_context) New flag.
	(c_lex_one_token): Handle property attributes.
	(c_parser_external_declaration): Handle @property.
	(c_parser_declaration_or_fndef): Warn on invalid attributes before
	@alias, @class, @end and @property objc keywords.
	(c_parser_objc_methodprotolist): Handle @property.
	(c_parser_objc_property_attrlist): New.
	(c_parser_objc_at_property): New.
	* c-typeck.c (build_component_ref): Handle CLASS.property syntax.
	(build_modify_expr): Likewise.

2010-10-14  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/46008
	* tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.

2010-10-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44913
	* tree-data-ref.c (disjoint_objects_p): Remove.
	(dr_may_alias_p): Simplify.  Only hand the base object to
	the alias-oracle.
	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
	some more trees, bail out instead of asserting.
	(ptr_derefs_may_alias_p): Likewise.  Export.
	(refs_may_alias_p_1): Handle STRING_CSTs.
	* tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.

2010-10-14  Joseph Myers  <joseph@codesourcery.com>

	PR c/45969
	* c-typeck.c (build_binary_op): Don't try to compute a semantic
	type with excess precision for boolean operations.

2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
	    Basile Starynkevitch  <basile@starynkevitch.net>

	* gengtype.c:  Include getopt.h and version.h.

	(lang_bitmap, struct outf, outf_p)
	(get_output_file_with_visibility, oprintf): Definitions moved to
	gengtype.h
	(output_files, header_file, srcdir, srcdir_len, this_file)
	(do_dump): No more static variables.
	(do_debug): New.
	(dbgprint_count_type_at): Added new function.
	(gengtype_long_options): New.
	(print_usage, print_version, parse_program_options): New.
	(main): Call parse_program_options, and removed old option
	handling code.  Added some debug output.

	* gengtype.h:  Updated copyright year.
	(lang_bitmap, struct outf, outf_p, header_file, oprintf)
	(get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
	Moved from gengtype.c to here.
	(do_debug, read_state_filename, write_state_filename): New variables.
	(DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.

	* Makefile.in:
	(REVISION): Always defined.
	(version.o): Removed ifdef REVISION_c.
	(s-gtype): Pass arguments to build/gengtype program.
	(build/version.o): Added building rule.
	(build/gengtype$(build_exeext)): Added build/version.o.

2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>

	Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
	* config/darwin-c.c (darwin_cpp_builtins): Define __weak and
	__strong macros.

2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>

	* sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
	may_trap_or_fault_p instead of may_trap_p predicate.
	* tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
	(substitute_placeholder_in_expr): Likewise.
	* tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
	flag on MEM_REF nodes.
	(copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
	flags on INDIRECT_REF nodes.

2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>

	* config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
	(arm*-*-uclinux*eabi) <tm_file>: Likewise.
	(arm*-*-eabi*) <tm_file>: Likewise.
	(frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
	(frv-*-*linux*) <tm_file>: Likewise.
	* config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
	and associated helper macros.
	* config/frv/frv-abi.h: Delete.

2010-10-14  Richard Guenther  <rguenther@suse.de>

	PR lto/44561
	* tree.def (NULLPTR_TYPE): New tree code.
	* dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
	* dwarf2out.c (is_base_type): Likewise.
	(gen_type_die_with_usage): Likewise.
	* sdbout.c (plain_type_1): Likewise.
	* tree.c (build_int_cst_wide): Likewise.
	* gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.

2010-10-14  Joseph Myers  <joseph@codesourcery.com>

	* params.c (params_finished): New.
	(add_params): Assert !params_finished.
	(finish_params): New.
	(set_param_value_internal): Take params and params_set
	parameters.  Assert params_finished.
	(set_param_value, maybe_set_param_value): Take params and
	params_set parameters.  Update calls to set_param_value_internal.
	(set_default_param_value): Assert !params_finished.  Don't use
	set_param_value_internal.
	(default_param_value, init_param_values): New.
	* params.h (struct param_info): Change value to default_value.
	Remove set.
	(set_param_value, maybe_set_param_value): Add params and
	params_set parameters.
	(PARAM_VALUE): Get parameters from global_options.
	(PARAM_SET_P): Remove.
	(finish_params, default_param_value, init_param_values): New.
	* common.opt (param_values): New Variable.
	* config/arm/arm.c (arm_option_override): Pass extra arguments to
	maybe_set_param_value.
	* config/i386/i386.c (ix86_option_override_internal): Pass extra
	arguments to maybe_set_param_value.
	* config/picochip/picochip.c (picochip_option_override): Pass
	extra arguments to maybe_set_param_value.
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
	extra arguments to maybe_set_param_value.
	* config/s390/s390.c (s390_option_override): Use
	maybe_set_param_value instead of set_param_value.  Pass extra
	arguments to maybe_set_param_value.
	* config/sparc/sparc.c (sparc_option_override): Pass extra
	arguments to maybe_set_param_value.
	* config/spu/spu.c (spu_option_override): Pass extra arguments to
	maybe_set_param_value.
	* opts.c (handle_param): Take opts and opts_set parameters.
	Update call to set_param_value.
	(initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
	initial_loop_invariant_max_bbs_in_loop): Remove.
	(init_options_once): Don't set them.
	(init_options_struct): Initialize parameters structures.
	(default_options_optimization): Use default_param_value when
	restoring defaults.  Update calls to maybe_set_param_value.
	(finish_options): Update calls to maybe_set_param_value.
	(common_handle_option): Update calls to handle_param and
	set_param_value.
	* toplev.c (DEFPARAM): Update definition for changes to param_info.
	(general_init): Call finish_params.

2010-10-14  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
	(DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
	(FIRST_PSEUDO_REGISTER): Increase by one.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
	(HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
	(MODES_TIEABLE): Call mn10300_modes_tieable.
	(REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
	(LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
	(CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
	(SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
	(REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
	(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
	(mn10300_cc_status_mdep): Delete.
	(CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
	* config/mn10300/mn10300 (mn10300_option_override): Stop disabling
	the combine-stack-adjust pass.
	(print_operand): Use the mode of the comparison operation to
	select the comparison suffix.
	(notice_update_cc): Delete.
	(mn10300_secondary_reload_class): Remove test for stack pointer
	based arithmetic.
	(output_tst): Rename to mn10300_output_cmp.
	(impossible_plus_operand): Move into predicates.md.
	(mn10300_legitimize_address): Make static.
	(mn10300_legitimate_address_p): Make static.  Only allow SI sized
	constant pic operands.
	(mn10300_legitimate_constant_p): New function.
	(mn10300_case_values_threshold): Make static.
	(mn10300_hard_regno_mode_ok): New function.
	(mn10300_modes_tieable): New function.
	(mn10300_select_cc_mode): New function.
	* config/mn10300/predicates.md (impossible_plus_operand): Define.
	* config/mn10300/mn10300-protos.h: Tidy.
	(mn10300_legitimate_constant_p, mn10300_modes_tieable)
	(mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
	* config/mn10300/mn10300.md (cc attribute): Delete.  Replace
	with clobbers or sets of CC_REG.
	(CC_REG): Define.
	(mov*): Remove use of CLR instruction.
	(cbranch_si4_<code>): New pattern/split.
	(integer_conditional_branch): New pattern.
	(cbranch_sf4_<code>): New pattern/split.
	(float_conditional_branch): New	pattern.
	(casesi): Use addsi3 pattern instead of movsi pattern to add and
	move a value at the same time.
	(cc0 peepholes): Remove.

2010-10-14  Andrey Belevantsev  <abel@ispras.ru>

	* sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
	on RTX_FRAME_RELATED_P insns and the insn to which
	NOTE_INSN_EPILOGUE_BEG is attached.
	* sched-vis.c (print_value): Allow NULL value.

2010-10-14  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/45570
	* sel-sched-ir.c (cfg_preds_1): When walking out of the region,
	assert that we are pipelining outer loops.  Allow returning
	zero predecessors.

2010-10-14  Andrey Belevantsev  <abel@ispras.ru>

	* sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
	(tidy_control_flow): Tidy vertical space.
	(sel_remove_bb): New variable idx.  Use it to remember the basic
	block index before deleting the block.
	(sel_remove_empty_bb): Remove dead code, simplify and insert to ...
	(sel_merge_blocks): ... here.
	* sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.

2010-10-14  Jakub Jelinek  <jakub@redhat.com>

	* cse.c (is_dead_reg): Change into inline function that is not
	called through for_each_rtx.
	(set_live_p): Adjust caller.
	(insn_live_p): Don't reset DEBUG_INSNs here.
	(struct dead_debug_insn_data): New data.
	(count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
	(delete_trivially_dead_insns): If there is just one setter for the
	dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
	and add DEBUG_INSN for it right before the removed setter and
	use the DEBUG_EXPR instead of the dead pseudo.

2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>

	* et-forest.c (et_nca): Return NULL immediately when
	the dominance forest has disjoint components.

2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>

	* ira.c (setup_class_hard_regs): Fix typo in indexing
	ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.

2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>

	* graph.c (inbb): New variable.
	(start_bb): Set inbb to 1 if output is inside of a building block.
	(end_bb): Check if output is inside of a building block.

2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/45912
	* ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
	regno of registers instead of their index to compute the alignment.

2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_build_const_vector): Check vector
	mode instead of scalar mode.
	(ix86_build_signbit_mask): Likewise.
	(ix86_expand_fp_absneg_operator): Updated.
	(ix86_expand_copysign): Likewise.
	(ix86_expand_int_vcond): Likewise.
	(ix86_emit_swdivsf): Likewise.
	(ix86_sse_copysign_to_positive): Likewise.
	(ix86_expand_sse_fabs): Likewise.
	* config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
	* config/i386/sse.md (copysign<mode>3): Likewise.
	(sse2_cvtudq2ps): Likewise.
	(vec_unpacku_float_hi_v4si): Likewise.
	(vec_unpacku_float_lo_v4si): Likewise.

	* config/i386/i386.c (ix86_builtins): Add
	IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
	(bdesc_args): Likewise.
	(ix86_builtin_vectorized_function): Support
	IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
	IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
	and IX86_BUILTIN_CVTPS2DQ256.
	(ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.

	* config/i386/sse.md (STORENT_MODE): New.
	(VEC_FLOAT_MODE): Likewise.
	(VEC_EXTRACT_MODE): Likewise.
	(*avx_cvtdq2pd256_2): Likewise.
	(vec_pack_trunc_v4df): Likewise.
	(vec_interleave_highv8sf): Likewise.
	(vec_interleave_lowv8sf): Likewise.
	(storent<mode>): Macroized.
	(<code><mode>2: absneg): Likewise.
	(copysign<mode>3): Likewise.
	(vec_extract<mode>): Likewise.

	PR target/44180
	* config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
	for V8SFmode.

2010-10-13  Richard Guenther  <rguenther@suse.de>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (reduc_splus_v8sf): Add.
	(reduc_splus_v4df): Likewise.
	(vec_unpacks_hi_v8sf): Likewise.
	(vec_unpacks_lo_v8sf): Likewise.
	(*avx_cvtps2pd256_2): Likewise.
	(vec_unpacks_float_hi_v8si): Likewise.
	(vec_unpacks_float_lo_v8si): Likewise.
	(vec_interleave_highv4df): Likewise.
	(vec_interleave_lowv4df): Likewise.

2010-10-13  Richard Guenther  <rguenther@suse.de>

	PR objc/45878
	* gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
	alone if there are no virtual methods.

2010-10-13  Richard Henderson  <rth@redhat.com>

	* expr.c (build_personality_function): Take parameter LANG instead
	of parameter NAME.  Build the name based on the lang prefix and the
	unwind method in use.
	* tree.c (lhd_gcc_personality): Update call to
	build_personality_function.

2010-10-13  Richard Guenther  <rguenther@suse.de>

	PR objc/45878
	* tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.

2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>

	* cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
	Canonicalize input operands of ASM_OPERANDS insns.

2010-10-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45788
	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
	EH update until fixup-cfg.

2010-10-13  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
	from CORE_REGS and GENERAL_REGS classes.
	* config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
	final constraint for register preferencing.

2010-10-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45970
	* tree-ssa-alias.h (stmt_kills_ref_p): Declare.
	* tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
	(stmt_kills_ref_p): Likewise.
	* tree-ssa-dse.c (dse_optimize_stmt): Use it.

2010-10-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45982
	* tree-ssa-structalias.c (make_constraints_to): New function.
	(make_constraint_to): Implement in terms of make_constraints_to.
	(find_func_aliases): Properly make return values of pure/const
	functions escape if they assign to sth that is not a pointer.

2010-10-13  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45874
	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
	Fixup the CFG when EH was fixed up.

2010-10-13  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
	Use operand's type for POINTER_PLUS_EXPR.

2010-10-13  Alexandre Oliva  <aoliva@redhat.com>

	* c-parser.c (c_parser_for_statement): Initialize incr.

2010-10-12  Xinliang David Li  <davidxl@google.com>

	PR tree-optimization/45972
	* tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
	with too many arguments.

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

	PR fortran/45636
	* tree-ssa-forwprop.c: Include expr.h.
	(constant_pointer_difference, simplify_builtin_call): New functions.
	(tree_ssa_forward_propagate_single_use_vars): Call
	simplify_builtin_call on builtin calls.

2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
	(*adddi3_extend_sp32): Likewise.
	(*subdi3_insn_sp32): Likewise.
	(*subdi3_extend_sp32): Likewise.
	(*negdi2_sp32): Use negative test for consistency.

2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>

	* libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
	(LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
	* config/fixed-bit.h: Likewise.
	* config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
	* config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
	* system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
	* doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
	(DF_SIZE): Likewise.
	* doc/tm.texi: Regenerate.

2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/predicates.md (scc_rev_comparison_operator): New.
	* config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
	(*isel_reversed_unsigned_<mode>): New.
	* config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
	as valid comparisons and adjust operands and output appropriately.
	(rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.

2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
	DATA_ALIGNMENT and add COND parameter. Update comments above.
	(DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
	(LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.

2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/45958
	* exec-tool.in: Support '-plugin' as the second option to the linker.

2010-10-12  Richard Henderson  <rth@redhat.com>

	PR middle-end/45962
	* cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
	(expand_stack_vars): Assert large base allocated when used.

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

	* tree-ssa-structalias.c (get_constraint_for_1): Constants
	only point to nonlocal, not anything.

2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
	unwind info for exceptions.

2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR testsuite/45851
	* doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
	Document optional target selector.

2010-10-12  Joseph Myers  <joseph@codesourcery.com>

	* flag-types.h: New.
	* Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
	(FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
	options.h.
	(OPTIONS_H): Define.
	(c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
	of options.h.
	* configure.ac (tm_include_list): Include options.h not flags.h.
	* configure: Regenerate.
	* flags.h: Include flag-types.h.  Include options.h at top of file
	again.
	(enum debug_info_type, enum debug_info_level, enum
	debug_info_usage, enum symbol_visibility, struct visibility_flags,
	enum ira_algorithm, enum ira_region, enum excess_precision, enum
	graph_dump_types, enum stack_check_type,
	enum warn_strict_overflow_code): Move to flag-types.h
	* opth-gen.awk: Include flag-types.h in options.h.

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

	* expr.c (store_expr): Share code for STRING_CST and
	MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
	check if target is a MEM.

	* rtl.h: Include hashtab.h.
	(iterative_hash_rtx): New prototype.
	* rtl.c (iterative_hash_rtx): New function.
	* dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
	(output_loc_list): Return immediately if emitted is set, set it.
	(hash_loc_operands, hash_locs, hash_loc_list,
	compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
	optimize_location_lists_1, optimize_location_lists): New function.
	(dwarf2out_finish): Call optimize_location_lists.
	* Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).

2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR testsuite/45974
	Revert:
	* Makefile.in ($(lang_checks_parallel))
	($(lang_checks_parallelized)): Use single quotes for
	$(RUNTESTFLAGS), to allow passing quoted content.

2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
	actual_oldval.  Use __builtin_expect.
	(SUBWORD_VAL_CAS): Likewise.

2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>

	* recog.c (nonmemory_operand): Call immediate_operand for
	CONSTANT_P operands.

2010-10-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (movmem<mode>): Macroize expander from
	movmem{si,di} using SWI48 mode iterator.
	(*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
	*strmovsi_rex_1 using P mode iterator.
	(*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
	(*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
	(*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
	(*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
	(setmem<mode>): Macroize expander from setmem{si,di} using
	SWI48 mode iterator.
	(*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
	*strsetsi_rex_1 using P mode iterator.
	(*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
	(*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
	(*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
	(*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
	(*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
	(*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
	(strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
	mode iterator.
	(*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
	*strlenqi_rex_1 using P mode iterator.

2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>

	PR bootstrap/45445
	* ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
	static functions.
	(mark_ref_live, mark_ref_dead): Use them.
	(make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
	Save the original reg, and use the new functions.
	(check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
	changed.
	(check_and_make_def_conflict): Save the original reg.

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

	PR middle-end/45699
	* gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
	thunks.

2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in ($(lang_checks_parallel))
	($(lang_checks_parallelized)): Use single quotes for
	$(RUNTESTFLAGS), to allow passing quoted content.

	PR bootstrap/35855
	* opt-functions.awk (BEGIN): New section.
	(lower, upper, digit, alnum): New variables.
	(static_var, opt_sanitized_name): Use alnum instead of character
	classes, for non-C locale.
	* optc-gen.awk: Likewise.
	* opth-gen.awk: Likewise.

2010-10-11  Anatoly Sokolov  <aesok@post.ru>

	* target.def (preferred_reload_class): New hook.
	* doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_preferred_reload_class): New function.
	* targhooks.h (default_preferred_reload_class): Declare.
	* reload.c (find_dummy_reload): Change preferred_class variable type
	from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
	target hook.
	(find_reloads): Change goal_alternative array type from int to
	reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
	(push_reload, find_reloads_address_part): Use
	TARGET_PREFERRED_RELOAD_CLASS target hook.
	* reload1.c (emit_input_reload_insns): Ditto.
	* ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
	hook. Change rclass argument and secondary_class variable types from
	'enum reg_class' to reg_class_t.

	* config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
	* config/i386/i386-protos (ix86_preferred_reload_class): Remove.
	* config/i386/i386.c (ix86_preferred_reload_class): Make static.
	Change regclass argument and result types from enum reg_class to
	reg_class_t.
	(TARGET_PREFERRED_RELOAD_CLASS): Define.

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

	* simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
	in masking operations.
	(simplify_const_unary_operation): Likewise.
	(simplify_binary_operation_1): Likewise.
	(simplify_const_binary_operation): Likewise.
	(simplify_const_relational_operation): Likewise.
	(simplify_ternary_operation): Likewise.
	(simplify_immed_subreg): Likewise.

2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/45862
	* doc/tm.texi.in (SUPPORTS_WEAK): Update.
	(TARGET_SUPPORTS_WEAK): New.
	* doc/tm.texi: Regenerate.
	* defaults.h (SUPPORTS_WEAK): Update comment.
	(TARGET_SUPPORTS_WEAK): New.
	* dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
	* varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
	SUPPORTS_WEAK.
	(merge_weak, declare_weak, do_assemble_alias, supports_one_only,
	make_decl_one_only): Likewise.
	* config/pa/som.h (SUPPORTS_WEAK): Rename defines to
	TARGET_SUPPORTS_WEAK.
	(SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
	instead of SUPPORTS_WEAK.

2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.

2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>

	* vec.h (VEC_qsort): Define.
	* dbxout.c (output_used_types): Use it.
	* df-scan.c (df_sort_and_compress_refs): Likewise.
	(df_sort_and_compress_mws): Likewise.
	* genautomata.c (uniq_sort_alt_states): Likewise.
	(evaluate_equiv_classes): Likewise.
	(output_trans_table): Likewise.
	(output_state): Likewise.
	* gimplify.c (compare_case_labels): Likewise.
	* graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
	* ipa.c (build_cdtor_fns): Likewise.
	* lto.c (lto_wpa_write_files): Likewise.
	* sel-sched.c (fill_vec_av_set): Likewise.
	* tree-predcom.c (determine_roots_comp): Likewise.
	* tree-sra.c (sort_and_spliace_var_accesses): Likewise.
	(splice_param_accesses): Likewise.
	* tree-ssa-live.c (dump_enumerated_decls): Likewise.
	* tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
	(reassociate_bb): Likewise.
	* tree-ssa-sccvn.c (sort_scc): Likewise.
	* tree-ssa-structalias.c (sort_fieldstack): Likewise.

2010-10-11  Ian Lance Taylor  <iant@google.com>

	* tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
	TREE_THIS_NOTRAP when appropriate.
	(get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
	* gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
	newly created MEM_REF.

2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>

	Nathan Froyds patch to hooks FUNCTION_ARG etc.
	* config/picochip/picochip-protos.h (picochip_function_arg): Delete.
	(picochip_incoming_function_arg): Delete.
	(picochip_arg_advance): Delete.
	* config/picochip/picochip.h (FUNCTION_ARG): Delete.
	(FUNCTION_INCOMING_ARG): Delete.
	(FUNCTION_ARG_ADVANCE): Delete.
	* config/picochip/picochip.c (picochip_function_arg): Take a
	const_tree and a bool.
	(picochip_incoming_function_arg): Likewise.
	(picochip_arg_advance): Likewise.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
	(TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/45955
	* ipa.c (build_cdtor): Delete endless loop.

2010-10-07  Andi Kleen  <ak@linux.intel.com>

	* Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
	checksum-options.
	(checksum-options): Add.
	(cc1-dummy): Remove.
	(cc1-checksum): Change to run checksum over object files
	and options only.
	* dummy-checksum.c: Remove.
	* genchecksum.c: Update copyright.
	(usage): Allow multiple arguments.
	(BLOCKSIZE): Add.
	(dosum): Change for incremental checksum. Remove C output.
	(main): Iterate over all argument files. Add C output.

2010-10-11  Joseph Myers  <joseph@codesourcery.com>

	* params.c (set_param_value_internal): New.
	(set_param_value): Use set_param_value_internal.
	(maybe_set_param_value, set_default_param_value): New.
	* params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
	(maybe_set_param_value, set_default_param_value): Declare.
	* config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
	* config/i386/i386.c (ix86_option_override_internal): Use
	maybe_set_param_value.
	* config/ia64/ia64.c (ia64_option_default_params,
	TARGET_OPTION_DEFAULT_PARAMS): New.
	(ia64_option_optimization): Move some code to
	ia64_option_default_params.
	* config/picochip/picochip.c (picochip_option_override): Use
	maybe_set_param_value.
	* config/rs6000/rs6000.c (rs6000_option_default_params,
	TARGET_OPTION_DEFAULT_PARAMS): New.
	(rs6000_option_override_internal): Use maybe_set_param_value.
	(rs6000_option_optimization): Move some code to
	rs6000_option_default_params.
	* config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
	* config/sh/sh.c (sh_option_default_params,
	TARGET_OPTION_DEFAULT_PARAMS): New.
	(sh_option_optimization): Move some code to sh_option_default_params.
	* config/sparc/sparc.c (sparc_option_override): Use
	maybe_set_param_value.
	* config/spu/spu.c (spu_option_default_params,
	TARGET_OPTION_DEFAULT_PARAMS): New.
	(spu_option_optimization): Move some code to spu_option_default_params.
	(spu_option_override): Use maybe_set_param_value.
	* doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
	* doc/tm.texi: Regenerate.
	* ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
	* opts.c (init_options_once): Use PARAM_VALUE not direct access to
	compiler_params.
	(default_options_optimization): Use maybe_set_param_value.
	(finish_options): Use maybe_set_param_value.
	* target.def (target_option.default_params): New hook.
	* toplev.c (general_init): Call targetm.target_option.default_params.

2010-10-11  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/45902
	* tree-vect-slp.c (vect_get_constant_vectors): Use statement's
	vector type for constants, unless it's a pointer.

2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.

2010-10-11  Jakub Jelinek  <jakub@redhat.com>

	PR target/45870
	* config/i386/i386.c (ix86_delegitimize_tls_address): New function.
	(ix86_delegitimize_address): Use it.

2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>

	* opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.

2010-10-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
	to cum struct in the call to function_arg_advance.
	(alpha_function_arg_advance): Mark named as unused.

2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_handle_option): Make "value" with
	ATTRIBUTE_UNUSED.

2010-10-09  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/33721
	* explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
	remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
	required_align, tidy the code a bit.  Emit split_stack code in the
	right place.  Mark the return value with the alignment properly.
	* expr.h (allocate_dynamic_stack_space): Update decl.
	* builtins.c (expand_builtin_apply): Update call to
	allocate_dynamic_stack_space.
	(expand_builtin_alloca): Likewise.  Remove TARGET parameter.
	* calls.c (initialize_argument_information): Update call to
	allocate_dynamic_stack_space.
	(expand_call): Likewise.

	* cfgexpand.c (get_decl_align_unit): Don't limit alignment.
	Don't update_stack_alignment here.
	(alloc_stack_frame_space): Make ALIGN unsigned.
	(stack_var_cmp): Sort by alignment too.
	(partition_stack_vars): Don't merge large and small alignment vars.
	(expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
	Take care when BASE is not virtual_stack_vars_rtx.
	(expand_stack_vars): Allocate dynamic stack space for large
	alignment variables.
	(expand_one_stack_var): Update all to expand_one_stack_var_at.
	(defer_stack_allocation): True for large alignment vars.
	(update_stack_alignment): Merge into ...
	(expand_one_var): ... here.
	(gimple_expand_cfg): Place code from expand_stack_vars.

2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>

	* config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/pdp11/pdp11.c (pdp11_function_arg): New function.
	(pdp11_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>

	* libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
	* libgcc2.c: Likewise.

2010-10-09  Richard Guenther  <rguenther@suse.de>

	PR lto/45956
	* lto-streamer-in.c (lto_register_var_decl_in_symtab):
	Properly check if a decl is an automatic var.

2010-10-09  Richard Guenther  <rguenther@suse.de>

	PR lto/45947
	* tree.c (free_lang_data_in_cgraph): Properly walk the varpool.

2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>

	* config/mmix/mmix-protos.h (mmix_function_arg): Delete.
	* config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/mmix/mmix.c (mmix_function_arg): Rename to...
	(mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
	bool arguments.
	(mmix_function_arg): New function.
	(mmix_function_incoming_arg): New function.
	(mmix_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
	(TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>

	* config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/vax/vax.c (vax_function_arg): New function.
	(vax_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>

	* config/pa/pa-protos.h (function_arg): Delete.
	* config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/pa/pa.c (function_arg): Rename to...
	(pa_function_arg): ...this.  Make static.  Take a const_tree and
	a bool.
	(pa_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>

	* config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/m68k/m68k.c (m68k_function_arg): New function.
	(m68k_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>

	* config/avr/avr-protos.h (function_arg): Delete.
	(function_arg_advance): Delete.
	* config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/avr/avr.c (function_arg): Rename to...
	(avr_function_arg): ...this.  Make static.  Take a const_tree and
	a bool.
	(function_arg_advance):	Rename to...
	(avr_function_arg_advance): ...this.  Make static.  Take a
	const_tree and a bool.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>

	* config/alpha/alpha-protos.h (function_arg): Delete.
	* config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
	* config/alpha/alpha.c (function_arg): Rename to...
	(alpha_function_arg): ...this.  Make static.  Take a const_tree and
	a bool.  Delete TARGET_ABI_UNICOSMK code.
	(alpha_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>

	* config/mep/mep-protos.h (mep_function_arg): Delete.
	(mep_function_arg_advance): Delete.
	* config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/mep/mep.c (mep_function_arg): Make static.  Take a
	const_tree and a bool.
	(mep_function_arg_advance): Likewise.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45945
	* tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.

2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/45612
	* ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
	Test LABEL_DECLs as well.  Fix formatting issues.
	(verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
	whose label is present in NON_SSA_VARS.
	(mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
	as well.  Fix formatting issues.
	(visit_bb): Fix typos and formatting issue.

2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>

	PR tree-optimization/45950
	* tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
	before initializing vno->op.

2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>

	* config.gcc (bfin*-rtems*): Add newlib-stdint.h.
	* config.gcc (lm32*-rtems*): Add newlib-stdint.h.

2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/45913
	* config/i386/i386.c (ix86_binary_operator_ok): Support
	"andhi/andsi/anddi" as a zero-extending move.

2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>

	* builtins.c (fold_call_stmt): Don't copy gimple call arguments
	into a temporary array.

2010-10-08  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/45903
	* simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
	of {A,L}SHIFTRT of MEM.

2010-10-08  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
	Re-construct BLOCK_VARS.
	(lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
	* lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
	* tree.c (free_lang_data_in_block): Remove.
	(free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
	Do not touch the BLOCK tree.
	* expr.c (expand_expr_real_1): Allow externals.

2010-10-08  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-out.c (lto_output_ts_block_tree_pointers):
	Do not output BLOCK_SUBBLOCKS.
	* lto-streamer-in.c (lto_input_ts_block_tree_pointers):
	Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
	Re-construct BLOCK_SUBBLOCKS of parent block.
	(lto_input_ts_binfo_tree_pointers): Reserve exact space needed
	for BINFO_BASE_ACCESSES.

2010-10-08  Joseph Myers  <joseph@codesourcery.com>

	* Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
	(TREE_H): Include $(FLAGS_H) instead of options.h.
	(opts-common.o): Depend on $(FLAGS_H) instead of options.h.
	* c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
	* common.opt (flag_complex_method, flag_evaluation_order,
	flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
	Variable declarations.
	* configure.ac (tm_include_list): Include flags.h instead of options.h.
	* configure: Regenerate.
	* flags.h: Condition out contents for target libraries.  Include
	options.h at end of file.
	(flag_complex_method, flag_ira_algorithm, flag_ira_region,
	flag_evaluation_order, flag_warn_unused_result): Remove.
	* gcc.c (main): Intialize global_options with global_options_init.
	* langhooks-def.h (lhd_init_options_struct): Declare.
	(LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
	(LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
	* langhooks.c (lhd_init_options_struct): New.
	* langhooks.h (struct lang_hooks): Add init_options_struct.
	Update comment on init_options.
	* optc-gen.awk: Generate initializer for global_options_init, not
	global_options.
	* opth-gen.awk: Condition out structure declarations for target
	libraries.  Declare global_options_init.
	* opts-common.c: Include flags.h instead of options.h.
	* opts.c (flag_warn_unused_result): Remove.
	(read_cmdline_options): Take gcc_options parameters.  Pass them to
	read_cmdline_option.
	(initial_lang_mask, initial_min_crossjump_insns,
	initial_max_fields_for_field_sensitive,
	initial_loop_invariant_max_bbs_in_loop): Define at file scope.
	(init_options_once): New.  Split out of decode_options.
	(init_options_struct): New.  Split out of decode_options.
	(decode_cmdline_options_to_array_default_mask): New.
	(default_options_optimization): New.  Split out of decode_options.
	(decode_options): Move most code to other functions.  Update call
	to read_cmdline_options.
	(finish_options): New.  Split out of decode_options.
	* opts.h (decode_options): Add gcc_options parameters.
	(init_options_once, init_options_struct,
	decode_cmdline_options_to_array_default_mask): New.
	* toplev.c (flag_complex_method, flag_ira_algorithm,
	flag_ira_region, flag_evaluation_order): Remove.
	(general_init): Use global_options_init for initial flag values
	for global_dc.
	(toplev_main): Call init_options_once, init_options_struct,
	lang_hooks.init_options_struct,
	decode_cmdline_options_to_array_default_mask and
	lang_hooks.init_option before decode_options.  Update arguments to
	decode_options.
	* tree.h: Include flags.h instead of options.h.

2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.

2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>

	* config/sparc/sparc-protos.h (function_arg_advance, function-arg):
	Delete.
	* config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
	(FUNCTION_INCOMING_ARG): Delete.
	* config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
	(function_arg_slotno): Likewise.  Take bool arguments.
	(sparc_arg_partial_bytes): Update call to it.
	(function_arg): Rename to...
	(sparc_function_arg_1): ...this.  Take bool arguments.
	(sparc_function_arg, sparc_function_incoming_arg): New functions.
	(function_arg_advance): Rename to...
	(sparc_function_arg_advance): ...this.  Take bool argument.
	(TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
	(TARGET_FUNCTION_INCOMING_ARG): Define.

2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>

	* config/bfin/bfin-protos.h (function_arg, function_arg_advance):
	Delete.
	* config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/bfin/bfin.c (function_arg_advance): Rename to...
	(bfin_function_arg_advance): ...this.  Make static.  Take const_tree
	and bool arguments.
	(function_arg): Rename to...
	(bfin_function_arg): ...this.  Make static.  Take const_tree and bool
	arguments.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>

	* config/score/score-protos.h (score_function_arg): Delete.
	(score_function_arg_advance): Delete.
	* config/score/score3.h (score3_function_arg_advance): Take a
	const_tree and a bool.
	(score3_function_arg): Likewise.
	* config/score/score7.h (score7_function_arg_advance): Likewise.
	(score7_function_arg): Likewise.
	* config/score/score3.c (score3_classify_arg): Likewise.
	(score3_function_arg_advance, score3_function_arg): Likewise.
	* config/score/score7.c (score7_classify_arg): Likewise.
	(score7_function_arg_advance, score7_function_arg): Likewise.
	* config/score/score.c (score_function_arg_advance): Likewise.
	(score_function_arg): Likewise.  De-const-ify `cum' argument.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>

	* config/s390/s390-protos.h (s390_function_arg_advance): Delete.
	(s390_function_arg): Delete.
	* config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/s390/s390.c (s390_function_arg_float): Take a const_tree.
	(s390_function_arg_integer): Likewise.
	(s390_function_arg_advance): Make static.  Take a const_tree and
	a bool.
	(s390_function_arg): Likewise.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>

	* config/spu/spu-protos.h (spu_function_arg): Delete.
	* config/spu/spu.h (FUNCTION_ARG): Delete.
	(FUNCTION_ARG_ADVANCE): Move code to ...
	* config/spu/spu.c (spu_function_arg_advance): New function.
	(spu_function_arg): Make static.  Take a const_tree and a bool.
	(spu_setup_incoming_varargs): Call spu_function_arg_advance.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.

2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>

	* tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
	(init_vn_nary_op_from_op): New function.
	(init_vn_nary_op_from_stmt): New function.
	(vn_nary_op_lookup_1): New function.
	(sizeof_vn_nary_op): New function.
	(alloc_vn_nary_op_noinit): New function.
	(alloc_vn_nary_op): New function.
	(vn_nary_op_insert_into): New function.
	(vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
	(vn_nary_op_lookup): Likewise.
	(vn_nary_op_lookup_stmt): Likewise.
	(vn_nary_op_insert_pieces): Likewise.
	(vn_nary_op_insert): Likewise.
	(vn_nary_op_insert_stmt): Likewise.
	(copy_nary): Likewise.
	(set_value_id_for_result): New function.
	(set_hashtable_value_ids): Call it.

2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>

	* config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
	* config/fr30/fr30.md (leave_func): Rewrite without post_inc.

2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>

	* config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
	* config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.

2010-10-08  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/45656
	* cse.c (cse_extended_basic_block): Preserve cc0 info across
	debug isnsn.  Skip them when searching for cc0 setter.
	(set_live_p): Skip debug insns when searching for cc0 user.

2010-10-08  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/45673
	PR debug/45604
	PR debug/45419
	PR debug/45408
	* tree-pretty-print.c (dump_generic_node): Explicitly dump the
	type of MEM_REFs to INTEGER_CSTs.

2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>

	* config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
	m68hc11_print_operand_address.

2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>

	* builtins.c (rewrite_call_expr): Move code to...
	(rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
	(rewrite_call_expr_array): New function.
	(fold_builtin_sprintf_chk_1): New function.
	(fold_builtin_sprintf_chk): Call it.
	(gimple_fold_builtin_sprintf_chk): Likewise.
	(fold_builtin_snprintf_chk_1): New function.
	(fold_builtin_snprintf_chk): Call it.
	(gimple_fold_builtin_snprintf_chk): Likewise.
	(gimple_rewrite_call_expr): Delete.

2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>

	* config.host: Update copyright year.

2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>

	* config.host (host_lto_plugin_soname): New shell variable.
	* configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
	* config.in: Regenerate.
	* configure: Regenerate.
	* gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
	LTO plugin shared library.

2010-10-07  Richard Henderson  <rth@redhat.com>

	* target.h (enum unwind_info_type): Move ...
	* coretypes.h: ... here.

2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>

	* doc/objc.texi (Fast enumeration protocol): Mention that
	'unsigned int' can also be used instead of 'unsigned long' in
	countByEnumeratingWithState:objects:count:.

2010-10-07  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (struct access): New field grp_assignment_write.
	(dump_access): Dump grp_assignment_write.
	(build_accesses_from_assign): Set grp_assignment_write.
	(sort_and_splice_var_accesses): Aggregate grp_assignment_write.
	(mark_read_status): Renamed to mark_rw_status, individual values
	renamed too.
	(analyze_access_subtree): Changed type of mark_write to
	mark_read_status.  Fixed propagating of mark_read and
	mark_write.  Changed benefit estimate.  Updated comment.

2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>

	PR Tree-Vect/45847
	* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
	check for vectype_out returned by get_vectype_for_scalar_type().

2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>

	PR target/45805
	* config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
	constraint, add register specifier in instruction template.
	(neon_vec_pack_trunc_<mode>): Likewise.
	(neon_vec_<US>mult_<mode>): Add register specifier to
	instruction template.

2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>

	* config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
	cygwin2.o.
	(cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
	(extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
	* config/i386/t-cygwin (cygwin1.o): Delete build rule.
	(cygwin2.o): Likewise.
	* config/i386/cygwin1.c: Delete file.
	* config/i386/cygwin2.c: Likewise.
	* config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
	make all {%!mno-cygwin} ones unconditional.
	(STARTFILE_SPEC): Likewise.
	(REAL_LIBGCC_SPEC): Likewise.
	(LIB_SPEC): Likewise.
	(CXX_WRAP_SPEC): Likewise.
	(LINK_SPEC): Likewise.
	(CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
	(CYGWIN_MINGW_SUBDIR_LEN): Likewise.
	(cygwin_gplusplus_include_dir): Delete now-unused array.
	(GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
	(cygwin_gplusplus_tool_include_dir): Delete now-unused array.
	(GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
	(cygwin_gplusplus_backward_include_dir): Delete now-unused array.
	(GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
	(cygwin_local_include_dir): Delete now-unused array.
	(LOCAL_INCLUDE_DIR): Don't redefine to point to it.
	(cygwin_cross_include_dir): Delete now-unused array.
	(CROSS_INCLUDE_DIR): Don't redefine to point to it.
	(cygwin_tool_include_dir): Delete now-unused array.
	(TOOL_INCLUDE_DIR): Don't redefine to point to it.
	(cygwin_standard_include_dir): Delete now-unused array.
	(STANDARD_INCLUDE_DIR): Don't redefine to point to it.
	(GEN_CVT_ARRAY): Delete now-unused macro definition.
	(cvt_to_mingw): Delete now-unused array.
	(mingw_scan): Remove prototype of deleted function.
	(GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
	* config/i386/cygming.opt (mcygwin): Delete target-specific option.
	* doc/invoke.texi (-mcygwin): Don't document removed option.
	(-mno-cygwin): Likewise.

2010-10-07  Richard Guenther  <rguenther@suse.de>

	* machmode.h (mode_for_vector): Declare.
	* stor-layout.c (mode_for_vector): New function, split out from ...
	(layout_type): ... here.
	* tree-vectorizer.h (current_vector_size): Declare.
	* tree-vect-stmts.c (perm_mask_for_reverse): Check if the
	mask vector type is available.
	(get_vectype_for_scalar_type): Rename to ...
	(get_vectype_for_scalar_type_and_size): ... this.  Get a vector
	size argument.
	(get_vectype_for_scalar_type): New wrapper around
	get_vectype_for_scalar_type_and_size using current_vector_size.
	(get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
	* tree-vect-loop.c (vect_analyze_loop_2): Split out core part
	of vect_analyze_loop here.
	(vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
	* tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
	to autodetect.
	* config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
	V8SF to V8SI conversion builtin.

2010-10-07  Richard Guenther  <rguenther@suse.de>

	* target.def (autovectorize_vector_sizes): New target hook.
	* targhooks.c (default_autovectorize_vector_sizes): New function.
	* targhooks.h (default_autovectorize_vector_sizes): Declare.
	* doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
	Document.
	* doc/tm.texi: Update.
	* config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
	(TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.

2010-10-07  Richard Guenther  <rguenther@suse.de>

	* target.def (units_per_simd_word): Rename to ...
	(preferred_simd_mode): ... this.  Return mode instead of size.
	* targhooks.c (default_units_per_simd_word): Rename to ...
	(default_preferred_simd_mode): ... this.  Return word_mode.
	* targhooks.h (default_preferred_simd_mode): Declare.
	* config/arm/arm.c (arm_units_per_simd_word): Rename to ...
	(arm_preferred_simd_mode): ... this.  Re-implement.
	* config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
	(ix86_preferred_simd_mode): ... this.  Re-implement.
	* config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
	(sparc_preferred_simd_mode): ... this.  Re-implement.
	* config/mips/mips.c (mips_units_per_simd_word): Rename to ...
	(mips_preferred_simd_mode): ... this.  Re-implement.
	* config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
	(rs6000_preferred_simd_mode): ... this.  Re-implement.
	* tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
	* doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
	(TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
	* doc/tm.texi: Update.

2010-10-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45869
	* tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
	of pointers.

2010-10-07  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
	rather than sign extension by hand.

2010-10-07  Jan Hubicka  <jh@suse.cz>

	PR middle-end/45926
	* ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.

2010-10-07  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/45914
	* configure.ac: Fix typo.
	* configure: Regenerated.

2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
	define_builtin_std where it's unnecessary.
	* config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.

2010-10-06  Anatoly Sokolov  <aesok@post.ru>

	* doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
	* doc/tm.texi.in: Regenerate.
	* system.h (CLASS_LIKELY_SPILLED_P): Poison.
	* targhooks.c (default_class_likely_spilled_p): Don't use the
	CLASS_LIKELY_SPILLED_P macro.

	* config/arm/arm.md: Update comment.

2010-10-06  Jan Hubicka  <jh@suse.cz>

	* ipa.c (cgraph_remove_unreachable_nodes): External references can
	always be removed.
	(cgraph_externally_visible_p): We can not bring local comdats that
	are known to linker; fix handling of internal visibility.
	(function_and_variable_visibility): Likewise.

2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/45394
	* combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
	(struct rtx_subst_pair): Remove AFTER field.
	(propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
	(propagate_for_debug): Remove MOVE parameter and adjust.
	(try_combine): In the special case where I2 is a PARALLEL, combine only
	destinations of SETs and set I2SRC to the I2 source.
	Adjust calls to propagate_for_debug throughout.
	* reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
	insns.

2010-10-06  Olivier Hainque  <hainque@adacore.com>

	* config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
	switch on insn codes as sequence of ifs.

2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
	be UI_NONE for picochip.
	(picochip_option_override): Do not disable exception flags.
	* config/picochip/picochip-protos.h (picochip_except_unwind_info):
	Declare.

2010-10-06  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (regmove.o): Depend on $(TARGET_H).

2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>

	Implemented fast enumeration for Objective-C.
	* c-parser.c (objc_could_be_foreach_context): New.
	(c_lex_one_token): Recognize RID_IN keyword in a potential
	Objective-C foreach context.
	(c_parser_declaration_or_fndef): Added parameter.  Accept
	Objective-C RID_IN keyword as terminating a declaration; in that
	case, return the declaration in the new parameter.
	(c_parser_extenral_declaration): Updated calls to
	c_parser_declaration_or_fndef.
	(c_parser_declaration_or_fndef): Same change.
	(c_parser_compound_statement_nostart): Same change.
	(c_parser_label): Same change.
	(c_parser_objc_methodprotolist): Same change.
	(c_parser_omp_for_loop): Same change.
	(c_parser_for_statement): Detect and parse Objective-C foreach
	statements.
	(c_parser_omp_for_loop): Updated call to check_for_loop_decls().
	* c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
	fast enumeration parsing code to turn off the c99 error but still
	perform checks on the loop declarations.
	* c-tree.h (check_for_loop_decls): Updated declaration.
	* doc/objc.texi: Document fast enumeration.

2010-10-06  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
	(MDR_REGNUM): Define.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
	(REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
	(INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
	(REGISTER_NAMES): Add MDR.
	(DWARF2_DEBUGGING_INFO): Define to 1.
	* config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
	(F): New function.  Sets RTX_FRAME_RELATED_P.
	(mn10300_gen_multiple_store): Use F.
	(expand_prologue): Use F.  Use gen_movsf() to push floating
	point registers.
	(expand_epilogue): Use gen_movsf() to pop floating point registers.
	(mn10300_option_override): Disable combine stack adjust pass.

2010-10-06  Thomas Schwinge  <thomas@schwinge.name>

	PR target/45901
	* config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
	LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.

2010-10-06  Jakub Jelinek  <jakub@redhat.com>

	* builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
	BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
	BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
	BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
	BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
	BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
	BUILT_IN_TOUPPER): Mark as leaf.

	PR middle-end/45838
	* omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
	BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
	BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
	BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
	BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
	BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
	Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.

2010-10-05  Anatoly Sokolov  <aesok@post.ru>

	* config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
	* config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
	(m68hc11_class_likely_spilled_p): New function.

2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_objc_method_definition): Updated comment.

2010-10-05  Jan Hubicka  <jh@suse.cz>

	* doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
	Document.
	* opts.c (decode_options): Handle lto partitions.
	* common.opt (flto-partition=1to1, flto-partition=balanced): New.
	* params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.

2010-10-05  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (assemble_function): Output thunks and aliases before
	the function itself.

2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (picochip_option_override): Disable
	exception flags for picochip.

2010-10-05  Joseph Myers  <joseph@codesourcery.com>

	* opts-common.c (handle_option, handle_generated_option,
	read_cmdline_option, set_option): Add diagnostic_context
	parameter.  Update calls among these functions.
	(set_option): Don't use global_dc.
	* opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
	(decode_options): Pass global_dc to enable_warning_as_error.
	(common_handle_option): Pass global_dc to enable_warning_as_error.
	(enable_warning_as_error): Add diagnostic_context parameter.
	Document parameters.  Don't use global_dc.  Pass
	diagnostic_context parameter to handle_generated_option.
	* opts.h (set_option, handle_option, handle_generated_option,
	read_cmdline_option, enable_warning_as_error): Add
	diagnostic_context parameter.
	* Makefile.in (lto-opts.o): Update dependencies.
	* coretypes.h (struct diagnostic_context, diagnostic_context):
	Declare here.
	* diagnostic.h (diagnostic_context): Don't declare typedef here.
	* gcc.c (process_command): Pass global_dc to read_cmdline_option.
	* langhooks-def.h (struct diagnostic_context): Don't declare here.
	(lhd_print_error_function, lhd_initialize_diagnostics): Declare
	using diagnostic_context typedef.
	* langhooks.c (lhd_initialize_diagnostics): Declare using
	diagnostic_context typedef.
	* langhooks.h (struct diagnostic_context): Don't declare here.
	(initialize_diagnostics, print_error_function): Declare using
	diagnostic_context typedef.
	* lto-opts.c: Include diagnostic.h.
	(lto_reissue_options): Pass global_dc to set_option.  Pass
	DK_UNSPECIFIED not 0.
	* plugin.c (plugins_internal_error_function): Declare using
	diagnostic_context typedef.
	* plugin.h (struct diagnostic_context): Don't declare here.
	(plugins_internal_error_function): Declare using
	diagnostic_context typedef.

2010-10-05  Olivier Hainque  <hainque@adacore.com>
	    Nicolas Roche  <roche@adacore.com>

	* config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
	* config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.

2010-10-05  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/45752
	* tree-vect-slp.c (vect_get_mask_element): Remove static
	variables, make them function arguments.
	(vect_transform_slp_perm_load): Pass new arguments to
	vect_get_mask_element.

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

	* value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
	(gimple_mod_pow2): Likewise.
	(gimple_mod_subtract): Likewise.
	(gimple_ic): Likewise.
	(gimple_stringop_fixed_value): Likewise.
	* tree-profile.c (tree_init_edge_profiler): Mark profile
	functions nothrow and leaf.
	(add_abnormal_goto_call_edges): Remove.
	(tree_gen_edge_profiler): Work on SSA form.
	(tree_gen_ic_profiler): Likewise.  Simplify.
	(do_tree_profiling): Update SSA form.
	(pass_tree_profile): Remove.
	(do_tree_profiling): Likewise.
	(gate_tree_profile_ipa): New function.
	(pass_ipa_tree_profile): New.
	(tree_profiling): Re-write as IPA pass.  Properly drop const/pure
	state of instrumented functions.
	* passes.c (init_optimization_passes): Remove early non-SSA
	inlining.  Move profiling after early optimizations.
	* ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
	(pass_ipa_early_inline): Likewise.
	* tree-pass.h (pass_ipa_early_inline): Remove.
	(pass_tree_profile): Likewise.
	(pass_ipa_tree_profile): Declare.

2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
	    Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>

	* config/s390/s390.c (z196_cost): New.
	(s390_handle_arch_option): Add -march=z196.
	(s390_option_override): Use the new cost function and use the z10
	defaults also for z196.
	(legitimate_reload_constant_p): Adjust comment.
	(legitimate_reload_fp_constant_p): New function.
	(s390_preferred_reload_class): Distingiush between FP and Int constants.
	(preferred_la_operand_p): Avoid la with index on z196.
	(s390_adjust_priority): Trigger also for z196.
	(s390_issue_rate): Issue rate for z196 is 3.
	(s390_z10_fix_long_loop_prediction): Rename to ...
	(s390_fix_long_loop_prediction): ... this.
	(s390_reorg): Apply the z10 adjustments also for z196.
	(s390_loop_unroll_adjust): Do this also for z196.
	* config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
	(enum processor_flags): Add PF_Z196.
	(TARGET_AVOID_CMP_AND_BRANCH): New macro.
	(TARGET_CPU_Z196, TARGET_Z196): New macros.
	* config.gcc: Enable z196 for --with-arch.
	* config/s390/2817.md: New file.
	* config/s390/2084.md: New type for multiply and add.
	* config/s390/2097.md: Likewise.
	* config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
	(UNSPECV_ATOMIC_OP): New constants.
	(fmadddf, fmaddsf): New values for type attribute.
	(z196prop): New insn attribute.
	(cpu, cpu_facility): Add z196.
	(ATOMIC_Z196): New code iterator.
	(noxa): New code attribute.
	(gk): New mode attribute.
	(*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
	Support load zero for fp constants.
	(fixuns_truncdddi2, fixuns_trunctddi2)
	(fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
	for z196.
	(fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
	(popcounthi2, popcountqi2): New expander.
	(*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
	(floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
	(sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
	insn definition.
	(add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
	(*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
	(*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
	(*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
	(*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
	(*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
	(*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
	(*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
	(*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
	(*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
	(*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
	(*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
	(*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
	Support new z196 instructions.

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

	PR middle-end/45877
	* gimple-fold.c (gimplify_and_update_call_from_tree): Handle
	case where gimplification optimizes away the stmt.

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

	PR debug/45849
	* var-tracking.c (strip_pointer_flags): New function.
	(emit_note_insn_var_location): If rtx_equal_p check failed,
	retry on locations simplified with simplify_replace_fn_rtx
	and strip_pointer_flags as its callback.

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

	* gimple-fold.c (static_object_in_other_unit_p): Rename to...
	(can_refer_decl_in_current_unit_p): ... this one; reverse return
	value; handle comdats too.
	(canonicalize_constructor_val): Use it; handle function_decls
	correctly.
	(gimple_fold_obj_type_ref_known_binfo): Likewise.
	* gimple.c (get_base_address): Accept all kinds of decls.

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

	* flags.h (g_switch_value, g_switch_set): Remove.
	* opts.c (g_switch_value, g_switch_set): Remove.
	* config/g.opt (G): Add Var(g_switch_value).
	* config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
	(alpha_option_override): Check global_options_set.x_g_switch_value
	instead of g_switch_set.
	(alpha_in_small_data_p): Remove cast in comparison with
	g_switch_value.
	* config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
	g_switch_value to unsigned HOST_WIDE_INT.
	* config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
	with g_switch_value.
	(frv_handle_option): Don't handle -G here.
	(frv_option_override): Check global_options_set.x_g_switch_value
	instead of g_switch_set.  Don't modify g_switch_set.
	(frv_in_small_data_p): Remove cast in comparison with g_switch_value.
	* config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
	g_switch_value to unsigned HOST_WIDE_INT.
	* config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
	(ia64_option_override): Check global_options_set.x_g_switch_value
	instead of g_switch_set.
	* config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
	Remove.
	(lm32_in_small_data_p): Remove cast in comparison with
	g_switch_value.
	* config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
	ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
	HOST_WIDE_INT.
	* config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
	(m32r_init): Check global_options_set.x_g_switch_value instead of
	g_switch_set.
	(m32r_in_small_data_p): Remove cast in comparison with
	g_switch_value.
	(m32r_file_start): Format g_switch_value with %d.
	* config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
	ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
	* config/microblaze/microblaze.c (microblaze_handle_option): Don't
	handle -G here.
	(microblaze_option_override): Check
	global_options_set.x_g_switch_value instead of g_switch_set.
	* config/mips/mips.c (mips_handle_option): Don't handle -G here.
	(mips_option_override): Check global_options_set.x_g_switch_value
	instead of g_switch_set.
	* config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
	(rs6000_file_start): Format g_switch_value with %d.
	(small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
	comparisons with g_switch_value.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
	global_options_set.x_g_switch_value instead of g_switch_set.
	* config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
	global_options_set.x_g_switch_value instead of g_switch_set.
	* config/score/score.c (score_handle_option): Don't handle -G here.
	* config/score/score3.c (score3_option_override): Check
	global_options_set.x_g_switch_value instead of g_switch_set.
	* config/score/score7.c (score7_option_override): Check
	global_options_set.x_g_switch_value instead of g_switch_set.

2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>

	* common.opt (fira-coalesce): Remove.

	* doc/invoke.texi (flag_ira_coalesce): Remove.

	* ira-color.c (allocno_coalesced_p): Move before
	copy_freq_compare_func.
	processed_coalesced_allocno_bitmap): Ditto.
	(update_conflict_hard_regno_costs): Don't use
	ALLOCNO_FIRST_COALESCED_ALLOCNO.
	(allocno_cost_compare_func, print_coalesced_allocno): Remove.
	(assign_hard_reg): Assume no coalesced allocnos.
	(get_coalesced_allocnos_attributes): Remove.
	(bucket_allocno_compare_func): Assume no coalesced allocnos.
	(push_allocno_to_stack): Ditto.
	(remove_allocno_from_bucket_and_push): Use
	ira_print_expanded_allocno instead of print_coalesced_allocno.
	(push_allocnos_to_stack): Assume uncoalesced allocnos.
	(all_conflicting_hard_regs_coalesced): Ditto.  Rename to
	all_conflicting_hard_regs.
	(setup_allocno_available_regs_num): Assume uncoalesced allocnos.
	(setup_allocno_left_conflicts_size): Ditto.
	(put_allocno_into_bucket): Ditto.
	(copy_freq_compare_func): Remove.
	(copy_freq_compare_func, merge_allocnos): Move before
	coalesced_pseudo_reg_freq_compare.
	coalesced_allocno_conflict_p): Ditto.
	(coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
	parameter.  Assume it true.
	(color_allocnos): Assume uncoalesced allocnos.  Use
	ira_print_expanded_allocno instead of print_coalesced_allocno.
	(ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
	parameter.

	* ira.c: Remove comment about coalescing.

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

	* config/mips/mips.h (target_flags_explicit): Declare for
	GENERATOR_FILE.

2010-10-04  Andi Kleen  <ak@linux.intel.com>

	* Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
	gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.

2010-10-04  Matthias Klose  <doko@ubuntu.com>

	* config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
	multilib osdirname if it exists.
	* config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.

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

	PR middle-end/45876
	* fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
	arg0's type or its unsigned counterpart as utype.  Convert
	arg1 to utype unconditionally.

2010-10-04  Julian Brown  <julian@codesourcery.com>

	* expr.c (expand_assignment): Add assertion to prevent emitting
	null rtx for movmisalign pattern.
	(expand_expr_real_1): Likewise.
	* config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
	(TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
	(arm_vector_alignment_reachable): New.
	(TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
	(neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
	(arm_print_operand): Include alignment qualifier in %A.
	* config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
	(movmisalign<mode>): New expander.
	(movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
	insn patterns.

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

	* optc-gen.awk: Define global_options_set.  Don't define
	target_flags_explicit.
	* opth-gen.awk: Declare global_options_set.  Define
	target_flags_explicit as macro.
	* opts-common.c (handle_option): Take opts_set and generated_p
	parameters.
	(handle_generated_option, read_cmdline_option, set_option): Take
	opts_set parameter.
	(set_option): Use opts_set instead of hardcoding target_flags and
	target_flags_explicit.
	* opts.c (sel_sched_switch_set, profile_arc_flag_set,
	flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
	flag_value_profile_transformations_set, flag_peel_loops_set,
	flag_branch_probabilities_set, flag_inline_functions_set,
	flag_ipa_cp_set, flag_ipa_cp_clone_set,
	flag_predictive_commoning_set, flag_unswitch_loops_set,
	flag_gcse_after_reload_set): Remove.
	(common_handle_option, lang_handle_option, target_handle_option):
	Take opts_set parameter.  Assert that it is &global_options_set.
	(common_handle_option): Don't set _set variables.  Check opts_set
	instead of such variables.
	(enable_warning_as_error): Pass &global_options_set to
	handle_generated_option.
	* opts.h (cl_option_handler_func.handler, set_option,
	handle_option, handle_generated_option, read_cmdline_option): Add
	opts_set parameters.
	(handle_option): Add generated_p parameter.
	* config/i386/i386.c (ix86_function_specific_save,
	ix86_function_specific_restore): Updat for renaming of
	target_flags_explicit field.
	* config/i386/i386.opt (target_flags_explicit): Rename to
	ix86_target_flags_explicit.
	* config/ia64/ia64.c (ia64_override_options_after_change): Check
	global_options_set.x_flag_selective_scheduling and
	global_options_set.x_flag_selective_scheduling2, not
	sel_sched_switch_set.
	* flags.h (sel_sched_switch_set,
	flag_speculative_prefetching_set): Remove.
	* gcc.c (driver_handle_option): Take opts_set parameter.  Assert
	that it is &global_options_set.
	(process_command): Pass &global_options_set to read_cmdline_option.
	* lto-opts.c (lto_reissue_options): Pass &global_options_set to
	set_option.
	* toplev.c (target_flags_explicit): Remove.

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

	PR middle-end/45871
	* tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
	use get_ref_base_and_offset to handle references.
	(fold_const_aggregate_ref): Update.

2010-10-04  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/45572
	* ipa-prop.c (ipa_make_edge_direct_to_target): Call
	ipa_check_create_node_params.
	* ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.

2010-10-04  Yao Qi  <yao@codesourcery.com>

	* doc/passes.texi: Clean up.

2010-10-03  Ian Lance Taylor  <iant@google.com>

	* c-typeck.c (lookup_field): If -fplan9-extensions, permit
	referring to a field using a typedef name.
	(find_anonymous_field_with_type): New static function.
	(convert_to_anonymous_field): New static function.
	(convert_for_assignment): If -fplan9-extensions, permit converting
	pointer to struct to pointer to anonymous field.
	* c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
	(is_duplicate_field): New static function.
	(detect_field_duplicates_hash): If -fplan9-extensions, check for
	typedef names duplicating field names.
	(detect_field_duplicates): Likewise.
	* doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
	(C Dialect Options): Document -fplan9-extensions.
	* doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.

2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>

	* tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
	revision 164914.
	(vect_create_data_ref_ptr): Likewise.
	* tree-vect-stmts.c (vectorizable_store): Likewise.
	(perm_mask_for_reverse): Likewise.
	(reverse_vec_elements): Likewise.
	(vectorizable_load): Likewise.

2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* cppbuiltin.c: New file.
	* cppbuiltin.h: New file.
	* Makefile.in: Take into account cppbuiltin.{h,c}.

2010-10-03  Andi Kleen  <ak@linux.intel.com>

	* lto-cgraph.c (input_cgraph): Check for missing sections.

2010-10-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
	to nonimmediate_operand.  Force operand 2 to register when allowed.
	(*<shiftrt_insn><mode>3_mask): Ditto.
	(*<rotate_insn><mode>3_mask): Ditto.

2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR tree-optimization/45720
	PR tree-optimization/45764
	* tree-vect-data-refs.c (vect_analyze_data_ref_access):
	Don't accept backwards consecutive accesses.
	(vect_create_data_ref_ptr): Disallow negative steps.

	* tree-vect-stmts.c (vectorizable_store): Allow negative steps.
	(perm_mask_for_reverse): Removed.
	(reverse_vec_elements): Likewise.
	(vectorizable_load): Don't handle negative steps.

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

	* tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
	call destination is known.

2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/45820
	* config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
	earlier.

2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/install.texi (Configuration): Document build_configargs,
	host_configargs, target_configargs.

2010-10-01  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
	(*<shiftrt_insn><mode>3_mask): Ditto.
	(*<rotate_insn><mode>3_mask): Ditto.

2010-10-01  Steve Ellcey  <sje@cup.hp.com>

	PR tree-optimization/44716
	* config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
	(HOT_TEXT_SECTION_NAME): Define.

2010-10-01  Nick Clifton  <nickc@redhat.com>

	* common.opt: Add -fcombine-stack-adjustments.
	* opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
	* combine-stack-adj.c (gate_handle_stack_adjustments): Check
	flag_combine_stack_adjustments.
	* doc/invoke.texi: Document the new option.

2010-10-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45854
	* tree-eh.c (cleanup_empty_eh): Avoid degenerate case.

2010-10-01  Anthony Green  <green@moxielogic.com>

	* config.gcc: Fix moxie-*-rtems* configuration.

2010-10-01  Richard Guenther  <rguenther@suse.de>

	* dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
	(gen_decl_die): Likewise.

2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
	to the function code for SPU MD builtins.
	(spu_expand_builtin): Update.
	* config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.

2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
	sjlj_except_unwind_info.

2010-10-01  Tristan Gingold  <gingold@adacore.com>

	* configure.ac: Define the nop insn for avr*-*-*
	* configure: Regenerate.

2010-10-01  Alan Modra  <amodra@gmail.com>

	PR target/45807
	* config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
	extend toc_restore_insn.

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

	PR tree-optimization/43959
	* function.c (gimplify_parameters): Use create_tmp_reg instead of
	create_tmp_var.

2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_expand_prologue): Set
	current_function_static_stack_size.

2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac: Check for Solaris 8 ld with .hidden support.
	* configure: Regenerate.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/45758
	* graphite.c (graphite_initialize): Call scev_reset.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.h (scev_analyzable_p): Return false for real or floating
	point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
	and ps.
	* graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
	domain.
	* graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
	Do not allocate ub_expr, it is passed in initialized.

2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (init_cloog_input_file): New.
	(build_cloog_prog): Dump CLooG input file when
	flag_graphite_dump_cloog is set.  This is disabled on trunk.
	* graphite-cloog-compat.h (cloog_program_dump_cloog): New.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (graphite_verify): Remove call to
	verify_dominators for CDI_POST_DOMINATORS.
	* sese.h: Remove comment about CDI_POST_DOMINATORS.
	(recompute_all_dominators): Remove call to free_dominance_info
	for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
	for CDI_POST_DOMINATORS.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
	over pbb_dim_iter_domain.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-flattening.c: Fix comments.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (OBJS-common): Add graphite-flattening.o.
	(graphite-flattening.o): New rule.
	* common.opt (floop-flatten): New flag.
	* doc/invoke.texi (-floop-flatten): Documented.
	* graphite-flattening.c: New.
	* graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
	* graphite-poly.h (flatten_all_loops): Declared.
	(lst_remove_loop_and_inline_stmts_in_loop_father): New.
	* tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
	is set, also set flag_graphite.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (cloog_checksum): New.
	* graphite-poly.h (cloog_checksum): Declared.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (pbb_number_of_iterations): Removed.
	(pbb_number_of_iterations_at_time): Correctly compute the number
	of iterations in the transformed loop.
	* graphite-poly.h (pbb_number_of_iterations): Removed.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h (lst_update_scattering_seq): Removed.
	(lst_update_scattering): Correctly handle outermost loop dewey
	renumbering.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
	lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
	* graphite-poly.h (lst_niter_for_loop): New.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (apply_poly_transforms): Do not abort when the
	transform read from disk is not legal.  Call fatal_error instead.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
	(print_scop_header): Removed.  Inlined in the only call place...
	(print_scop): ... here.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (dot_deps): Avoid set but not used warning.
	(dot_deps_stmt): Same.
	* graphite-poly.c (dot_lst): Same.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-blocking.c (scop_do_strip_mine): Do not call
	graphite_legal_transform.
	(scop_do_block): Same.

2010-09-30  Vladimir Kargov  <kargov@gmail.com>

	* graphite-scop-detection.c (graphite_can_represent_loop): Correct the
	description.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_array_ref): New.
	(instantiate_scev_r): Also handle ARRAY_REFs.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
	Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
	RESULT_DECL, and FIELD_DECL.  Return false for an
	SSA_NAME_IS_DEFAULT_DEF.
	(compute_scalar_evolution_in_loop): Do not further analyze the
	scalar evolution when no_evolution_in_loop_p returns true.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-chrec.h (evolution_function_is_affine_p): Do not check
	whether CHREC_LEFT is invariant.  A function is affine when
	CHREC_RIGHT is invariant.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (reduction_phi_p): Remove check for
	is_gimple_reg.
	(rewrite_degenerate_phi): Same.
	(rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.

2010-09-30  Vladimir Kargov  <kargov@gmail.com>

	* graphite-scop-detection.c (graphite_can_represent_scev,
	graphite_can_represent_expr, stmt_has_simple_data_refs_p,
	graphite_can_represent_loop): Remove outermost_loop.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/45229
	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
	handle GIMPLE_CALLs with no LHS.

2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>

	* graphite-poly.c (init_graphite_out_file): New.
	(init_graphite_in_file): New.
	(apply_poly_transforms): Updated to enable reading and writing of
	multiple scop files.

2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (graphite_can_represent_scev): Remove
	redundant checks.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (precision_for_value): Adjust
	computation of precision by 1.

2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>

	* graphite-cloog-util.c (openscop_read_cloog_matrix): New.
	(openscop_read_polyhedron_matrix): New.
	* graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
	(openscop_read_N_int): Same.
	* graphite-poly.c (openscop_read_N_int): New.
	(openscop_read_one_int): New.
	(openscop_read_N_string): New.
	(openscop_read_one_string): New.
	(openscop_read_powerset_matrix): New.
	(graphite_read_transforms): Remove.
	(graphite_read_scatt): New.
	(graphite_read_scop_file): New.
	(apply_poly_transforms): Updated to call graphite_read_scop_file.

2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-poly.c: Change include order.

2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
	(cloog_matrix_nrows): New.

2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>

	* graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
	from matrix lines.
	* graphite-poly.c (openscop_print_scattering_function_1): Same.
	(print_scattering_function_1): Same.
	(openscop_print_pbb_domain): Same.
	(openscop_print_scop_context): Same.
	(print_scop_context): Same.

2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>

	* graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
	(openscop_print_pdr_polyhedron): Print pph.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
	priority signed types.

2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (max_signed_precision_type): Remove
	the call to lang_hooks.types.type_for_size.  Call
	build_nonstandard_integer_type.

2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>

	* graphite-cloog-util.c (openscop_print_cloog_matrix): New.
	(openscop_print_polyhedron_matrix): New.
	* graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
	* graphite-poly.c (openscop_print_pdr_polyhedron): Same.
	(openscop_print_pdr_powerset): New.
	(openscop_print_powerset_matrix): New.
	(openscop_print_scattering_function_1): New.
	(print_scattering_function): Add support for scattering names and
	OpenScop format.
	(graphite_write_transforms): Remove.
	(print_pdr_access_layout): Updated to support OpenScop format.
	(print_pdr): Same.
	(openscop_print_pbb_domain): New.
	(print_pbb_body): Added a parameter to allow indicating that pbb_body
	is not provided.
	(print_pbb): Updated to call the new print_pbb_body.
	(openscop_print_scop_context): New.
	(print_scop_header): New.
	(print_scop): Updated to call print_scop_header.
	* graphite-poly.h: Document OpenScop format.

2010-09-30  Anatoly Sokolov  <aesok@post.ru>

	* config/cris/m32c.c (cris_memory_move_cost): New.
	(cris_register_move_cost): Make static. Change arguments type from
	enum reg_class to reg_class_t.
	(TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
	* config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
	* config/cris/cris-protos.h (cris_register_move_cost): Remove.

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

	PR target/45843
	* config/i386/i386.c (ix86_gimplify_va_arg): Use
	INTVAL (XEXP (slot, 1)) as prev_size.

2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/45837
	* config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
	* config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
	defined.
	* config/rs6000/option-defaults.h (toplevel): Change #if
	TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
	global option changes.

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

	* dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.

	PR tree-optimization/31261
	* fold-const.c (fold_binary): Optimize ((A & N) + B) & M
	for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.

2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/45796
	* Makefile.in (build/gen%$(build_exeext)): Move rule after all
	special-casing for generators and turn into ...
	((genprog:%=build/gen%$(build_exeext))): ... this static pattern
	rule, for better error messages in case of toplevel dependency errors.
	(genprog): Add hooks, rename to ...
	(genprogerr): ... this, and let genprog also contain check,
	checksum, condmd.
	((genprog:%=build/gen%$(build_exeext))): Rename to ...
	((genprogerr:%=build/gen%$(build_exeext))): ... this.
	(build/genhooks$(build_exeext)): Remove now-unneeded dependency.

2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
	    Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
	for GMP, MPFR and MPC.

2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sparc/sparc.opt (mimpure-text): Move ...
	* config/sol2.opt: ... here.  Correct description.
	* config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
	* doc/invoke.texi (Option Summary, SPARC Options): Move
	-mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
	(Option Summary, Solaris 2 Options): ... here.
	(Submodel Options, Solaris 2 Options): New menu entry.
	(SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
	(Solaris 2 Options): ... here.

2010-09-30  Michael Eager  <eager@eagercon.com>

	* extend.texi (interrupt_handler): Add MicroBlaze to list.
	(save_volatiles): Describe option for MicroBlaze.
	* invoke.texi: Add MicroBlaze Options.
	* contrib.texi: Add acknowledgment.
	* md.texi: Add MicroBlaze d and z constraints.
	* install.texi: Add microblaze-*-elf.
	* configure.ac: Add microblaze-*-* to target list.
	* configure: Regenerate.
	* config.gcc: Add microblaze*-*-*, microblaze*-linux*.
	* config/microblaze/microblaze-protos.h: New.
	* config/microblaze/crti.s: New.
	* config/microblaze/predicates.md: New.
	* config/microblaze/linux.h: New.
	* config/microblaze/microblaze.md: New.
	* config/microblaze/constraints.md: New.
	* config/microblaze/crtn.s: New.
	* config/microblaze/microblaze.opt: New.
	* config/microblaze/microblaze-c.c: New.
	* config/microblaze/t-microblaze: New.
	* config/microblaze/microblaze.c: New.
	* config/microblaze/microblaze.h: New.

2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>

	* c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
	parse @optional/@required and set the flags as appropriate.

2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>

	* config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.

2010-09-30  Joseph Myers  <joseph@codesourcery.com>

	* opt-functions.awk (static_var): Update comment.
	(var_ref): Return offsetof expression or -1, not variable address.
	* optc-gen.awk: Generate structure field initializers instead of
	static variables.  Expect -1 for missing variables instead of null
	pointer.  Add gcc_options parameters to generated functions.
	* opth-gen.awk: Generate structure fields for static variables.
	Add gcc_options parameters to generated functions.
	* common.opt (optimize, optimize_size): Add variables.
	* config/i386/i386-c.c (ix86_pragma_target_parse): Pass
	&global_options to cl_target_option_restore.
	* config/i386/i386.c (ix86_valid_target_attribute_p): Pass
	&global_options to cl_optimization_restore, cl_target_option_save
	and cl_target_option_restore.
	(ix86_set_current_function): Pass &global_options to
	cl_target_option_restore.
	* config/pdp11/pdp11.h (optimize): Remove.
	* config/rs6000/rs6000.h (optimize): Remove.
	* config/sh/sh.h (optimize): Remove.
	* config/xtensa/xtensa.h (optimize): Remove.
	* coretypes.h (struct gcc_options): Declare.
	* diagnostic.c (diagnostic_initialize): Initialize
	context->option_state.
	(diagnostic_report_diagnostic): Pass option_state to
	option_enabled hook.
	* diagnostic.h (diagnostic_context.option_enabled): Add void *
	parameter.
	(diagnostic_context.option_state): New field.
	* final.c (final_start_function, final, final_scan_insn): Rename
	optimize parameter to optimize_p.
	* flags.h (optimize, optimize_size): Remove.
	* function.c (invoke_set_current_function_hook): Pass
	&global_options to cl_optimization_restore.
	* gcc.c (driver_handle_option): Take gcc_options parameter.
	Assert that it is &global_options.
	(process_command): Pass &global_options to read_cmdline_option.
	* ipa-pure-const.c (suggest_attribute): Pass &global_options to
	option_enabled.
	* lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
	&global_options to set_option.
	* opts-common.c (handle_option, handle_generated_option,
	read_cmdline_option, set_option): Take explicit gcc_options
	parameters.  Use option_flag_var.
	(option_flag_var): New.
	* opts.c (common_handle_option, lang_handle_option,
	target_handle_option): Take gcc_options parameter.  Assert that it
	is &global_options.
	(read_cmdline_options): Pass &global_options to read_cmdline_option.
	(print_filtered_help): Use option_flag_var.  Pass &global_options
	to option_enabled.
	(common_handle_option): Use option_flag_var.
	(option_enabled): Take opts parameter.  Use option_flag_var.
	(get_option_state): Take gcc_options parameter.  Use
	option_flag_var.  Pass gcc_options parameter to option_enabled.
	(enable_warning_as_error): Pass &global_options to
	handle_generated_option.
	* opts.h (struct cl_option): Change flag_var to flag_var_offset.
	(cl_option_handler_func.handler): Take gcc_options parameter.
	(option_enabled, get_option_state, set_option, handle_option,
	handle_generated_option, read_cmdline_option): Take gcc_options
	parameters.
	* toplev.c (optimize, optimize_size): Remove.
	(print_switch_values): Pass &global_options to option_enabled.
	(option_affects_pch_p): Use option_flag_var.  Pass &global_options
	to get_option_state.
	(general_init): Initialize global_dc->option_state.
	* tree.c (build_optimization_node): Pass &global_options to
	cl_optimization_save.
	(build_target_option_node): Pass &global_options to
	cl_target_option_save.

2010-09-30  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (type_consists_of_records_p): Do not check for trailing
	zero sized bit-fields.

2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
	Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
	(c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
	(c_parser_objc_class_declaration): Same change.
	(c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
	RID_TRY and RID_AT_CATCH instead of RID_CATCH.
	(c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
	instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
	and RID_AT_PUBLIC instead of RID_PUBLIC.
	(c_parser_statement_after_labels): Use RID_AT_TRY instead of
	RID_TRY and RID_AT_CATCH instead of RID_CATCH.

2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>

	* doc/install.texi (Binaries): Update link to HP-UX porting centre.
	Add links to current providers of packages for Solaris and IRIX.

2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>

	Merge from 'apple/trunk' branch on FSF servers.
	* c-parser.c: Applied change originally in c-parse.in.

	2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>

	Radar 4281748
	* c-decl.c (start_decl): Check for redeclaration of class name.
	* c-parse.in (after_type_declarator): Recognize CLASSNAME.

2010-09-29  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.c (ia64_builtin_decl): New.
	(TARGET_BUILTIN_DECL): Define.
	(ia64_builtins): New.
	(ia64_init_builtins): Save decls in ia64_builtins.

2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/40457
	* postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
	(move2add_use_add3_insn): Likewise.
	(reload_cse_move2add): Likewise.
	* rtlanal.c (get_full_rtx_cost): New function.
	* rtl.h (struct full_rtx_costs): New.
	(init_costs_to_max, init_costs_to_zero, costs_lt_p,
	costs_add_n_insns): New inline functions.
	(get_full_rtx_cost): Declare.

	PR c/45054
	* reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
	invariants.  Check for reg_equiv_invariant.
	(reload): Assert that spilled_pseudos is empty when returning.

2010-09-29  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/mingw32.h (TARGET_64BIT): replaced by
	TARGET_64BIT_DEFAULT in #if check.

2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>

	* varasm.c (assemble_alias): Add error message for unsupported ifunc.

2010-09-29  Mike Stump  <mikestump@comcast.net>

	* config/darwin.h (flag_mkernel): Remove.
	(flag_apple_kext): Likewise.

2010-09-29  Joseph Myers  <joseph@codesourcery.com>
	    Jack Howarth  <howarth@bromo.med.uc.edu>

	* config/darwin.opt (undefined): Add.

2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>

	PR testsuite/45664
	* configure.ac: Add --enable-indirect-function option.
	* config.gcc: Add default_gnu_indirect_function.
	* config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
	(HAVE_GNU_INDIRECT_FUNCTION): ... this.
	* varasm.c (do_assemble_alias): Adjust for macro name change.
	* configure: Rebuilt.
	* doc/install.texi: Document --enable-indirect-function.

2010-09-29  Joseph Myers  <joseph@codesourcery.com>

	* doc/options.texi (Variable, Var, Init): Update documentation
	without reference to VarExists.
	(VarExists): Remove.
	* common.opt, config/i386/i386.opt, config/linux.opt,
	config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
	Don't use VarExists.

2010-09-29  Joseph Myers  <joseph@codesourcery.com>

	* optc-gen.awk: Generate global_options initializer instead of
	individual variables.  Add x_ prefix to names of structure members.
	* opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
	names of structure members.
	* doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
	HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
	* doc/tm.texi: Regenerate.
	* alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
	* builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
	* c-parser.c (disable_extension_diagnostics,
	restore_extension_diagnostics): Update names of cpp_options members.
	* combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
	* common.opt (fcompare-debug-second): Don't use Var.
	* config/alpha/alpha.h (target_flags): Remove.
	* config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
	HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
	* config/bfin/bfin.h (target_flags): Remove.
	* config/cris/cris.h (target_flags): Remove.
	* config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
	cl_target_option members.
	* config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
	(ix86_function_specific_print, ix86_valid_target_attribute_tree,
	ix86_can_inline_p): Update names of cl_target_option members.
	* config/i386/i386.h (ix86_isa_flags): Remove.
	* config/lm32/lm32.h (target_flags): Remove.
	* config/mcore/mcore.h (mcore_stack_increment): Remove.
	* config/mcore/mcore.md (addsi3): Remove extern declaration of
	flag_omit_frame_pointer.
	* config/mep/mep.h (target_flags): Remove.
	* config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
	HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
	* config/mmix/mmix.h (target_flags): Remove.
	* config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
	flag_expensive_optimizations): Remove.
	* config/s390/s390.h (flag_pic): Remove.
	* config/score/score-conv.h (target_flags): Remove.
	* config/sh/sh.h (sh_fixed_range_str): Remove.
	* config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
	* dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
	* df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
	* diagnostic.c (diagnostic_initialize): Update names of
	diagnostic_context members.
	* diagnostic.h (diagnostic_context): Rename inhibit_warnings and
	warn_system_headers.
	(diagnostic_report_warnings_p): Update for new names.
	* dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
	* emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
	HARD_FRAME_POINTER_IS_ARG_POINTER.
	* flags.h (flag_compare_debug): Declare.
	* ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
	* opts.c (flag_compare_debug): Define.
	(common_handle_option): Update names of diagnostic_context
	members.  Handle -fcompare-debug-second.
	(fast_math_flags_struct_set_p): Update names of cl_optimization
	members.
	* reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
	* regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
	* reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
	* reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
	* resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
	* rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
	HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
	* sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
	* stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.

2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (picochip_output_internal_label):
	This function can now be called for debug CFI labels, which can come
	in the middle of a vliw instruction.  Postpone until end of vliw.

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

	* tree.h (SCOPE_FILE_SCOPE_P): New macro.
	(DECL_FILE_SCOPE_P): Use it.
	(TYPE_FILE_SCOPE_P): New macro.

2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_lex_one_token): In Objective-C, when dealing with
	a CPP_NAME which is a reserved word, clearly separate cases for
	OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.

2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_lex_one_token): In Objective-C, do not replace
	token->value with the canonical spelling.  Do exactly like C and
	C++ and leave it as it is.

2010-09-28  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_builtins): New.
	(alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
	(alpha_builtin_function): New.
	(alpha_add_builtins, alpha_init_builtins): Use it.

2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>

	* doc/standards.texi (Standards): Expanded the section on
	Objective-C and Objective-C++.

2010-09-28  DJ Delorie  <dj@redhat.com>

	PR target/45800
	* config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
	volatile MEMs.

2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>

	* c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
	attributes on methods.
	 (c_parser_objc_method_definition): Handle attributes.
	(c_parser_objc_methodproto): Likewise.
	(c_parser_objc_maybe_method_attributes): New.
	(c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
	missing definition, similar to that in ObjC++.

2010-09-28  Richard Henderson  <rth@redhat.com>

	* defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
	(MUST_USE_SJLJ_EXCEPTIONS): Remove.
	(CONFIG_SJLJ_EXCEPTIONS): Remove.
	(STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
	(STACK_CHECK_PROTECT): Likewise.
	* dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
	(dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
	(dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
	(dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
	(dwarf2out_assembly_start): Likewise.
	* except.c (init_eh): Use targetm.except_unwind_info.
	(finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
	(output_one_function_exception_table): Likewise.
	* final.c: Unconditionally include dwarf2out.h.
	(final_start_function): Unconditionally call dwarf2out routines.
	(final_end_function, final_scan_insn): Likewise.
	* function.c (expand_function_end): Use targetm.except_unwind_info.
	* opts.c (decode_options): Use targetm.except_unwind_info.
	* system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
	* target.def (debug_unwind_info, except_unwind_info): New.
	* target.h (enum unwind_info_type): New.
	* targhooks.c (default_debug_unwind_info): New.
	(default_except_unwind_info): New.
	(dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
	* targhooks.h: Declare them.
	* tree-tailcall.c: Include "target.h"
	(suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
	* Makefile.in (tree-tailcall.o): Update.
	* tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
	(lhd_gcc_personality): Likewise.

	* doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
	(TARGET_EXCEPT_UNWIND_INFO): New.
	(DWARF2_UNWIND_INFO): Update.
	(TARGET_DEBUG_UNWIND_INFO): New.
	* doc/tm.texi: Rebuild.

	* c-family/c-cppbuiltin.c (c_cpp_builtins): Use
	targetm.except_unwind_info.

	* config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
	(arm_except_unwind_info): New.
	(arm_compute_func_type): Use it.
	(arm_expand_prologue, thumb_pushpop): Likewise.
	(thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
	(arm_unwind_emit, arm_output_fn_unwind): Likewise.
	* config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
	* config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
	(DWARF2_UNWIND_INFO): Remove.
	(MUST_USE_SJLJ_EXCEPTIONS): Remove.
	(ARM_EABI_UNWIND_TABLES): Remove.

	* config/ia64/ia64.c (ia64_debug_unwind_info): New.
	(TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
	(ia64_except_unwind_info): New.
	(ia64_output_function_prologue): Use it.
	(ia64_add_bundle_selector_before): Likewise.
	(ia64_reorg, ia64_asm_unwind_emit): Likewise.
	* config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
	(TARGET_UNWIND_INFO): Remove.

	* config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.

2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>

	* c-parser.c (c_parser_objc_class_definition): Adjust prototype.
	(c_parser_objc_protocol_definition): Likewise.
	(c_parser_external_declaration): Provide dummy attribute arguments.
	(c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
	(c_parser_objc_class_definition): Handle attributes.
	(c_parser_objc_protocol_definition): Likewise.

2010-09-28  Tobias Burnus  <burnus@net-b.de>

	PR fortran/40569
	PR fortran/40568
	* toplev.h (save_decoded_options, save_decoded_options_count):
	New global variables.
	* toplev.c (save_decoded_options, save_decoded_options_count):
	Export variables.

2010-09-28  Ian Lance Taylor  <iant@google.com>

	* config/i386/i386.c (ix86_supports_split_stack): Test
	HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.

2010-09-28  Ian Lance Taylor  <iant@google.com>

	PR target/45815
	* opts.c (decode_options): Don't test whether the target supports
	split stack if flag_split_stack == 0.

2010-09-28  Jan Hubicka  <jh@suse.cz>

	* builtin-attrs.def (ATTR_LEAF): New attribute.
	(ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
	ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
	ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
	ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
	ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
	ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
	ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
	* sync-builtins.def: Annotate all builtins by leaf.
	* omp-builtins.def: Annotate all builtins by leaf.
	* builtins.def: Annotate relevant builtins with leaf attribute.
	(ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
	ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
	leaf.

2010-09-28  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-ccp.c (fold_ctor_reference): New function.
	(fold_const_aggregate_ref): Use it.
	* fold-const.c (canonicalize_constructor_val): Check that we don't fold
	into external static.

2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/44452
	* config/i386/i386.opt (mvect8-ret-in-mem): Define.
	* config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
	(ix86_solaris_return_in_memory): Remove.
	* config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
	* config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
	(TARGET_SUBTARGET_DEFAULT): Redefine.
	* config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
	* config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
	(TARGET_SUBTARGET_DEFAULT): Redefine.
	* doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
	-mvect8-ret-in-mem.
	(i386 and x86-64 Options): Document -mvect8-ret-in-mem.

2010-09-29  Alan Modra  <amodra@gmail.com>

	PR target/45807
	* config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
	* config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
	* config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
	Delete.
	* config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
	(rs6000_emit_prologue): Don't just create frame save info for r2,
	actually save r2.

2010-09-28  Richard Henderson  <rth@redhat.com>

	* config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
	when 8 bytes are requested.

2010-09-28  Tristan Gingold  <gingold@adacore.com>

	* config/avr/avr.c (expand_prologue): Set
	current_function_static_stack_size.

2010-09-28  Tristan Gingold  <gingold@adacore.com>

	* config/alpha/alpha.md: Change the initial condition of the
	probing loop.

2010-09-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*avx_<umaxmin:code><mode>3):
	Split from *avx_<maxmin:code><mode>3.
	(*avx_<smaxmin:code><mode>3): Ditto.
	* config/i386/i386.md (maxmin): Remove code iterator.

2010-09-27  Ian Lance Taylor  <iant@google.com>

	* config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
	requires assembler support for CFI directives.

2010-09-27  Richard Henderson  <rth@redhat.com>

	* dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.

2010-09-27  Hans-Peter Nilsson  <hp@axis.com>

	* emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
	that AFTER is not in the range FROM..TO, inclusive.

2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
	    Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/45792
	* cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
	If not all insns are to be merged, for each edge, stash the
	next candidate after the to-be-merged insns before doing the
	merge, and use them for the retry at the new insertion point.
	Handle CC0 targets when retrying.

2010-09-27  Ian Lance Taylor  <iant@google.com>

	* common.opt (fsplit-stack): New option.
	* opts.c (decode_options): Set flag_split_stack to final value.
	* target.def (supports_split_stack): New hook.
	* gcc.c (STACK_SPLIT_SPEC): Define.
	(LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
	* doc/invoke.texi (Option Summary): Mention -fsplit-stack.
	(Code Gen Options): Document -fsplit-stack.
	* doc/extend.texi (Function Attributes): Mention no_split_stack.
	(Function Attributes): Document no_split_stack.
	* doc/tm.texi.in (Stack Smashing Protection): Add @hook
	TARGET_SUPPORTS_SPLIT_STACK.
	* doc/tm.texi: Rebuild.
	* function.c (thread_prologue_and_epilogue_insns): If
	flag_split_stack, add split stack prologue.
	* explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
	* varasm.c (saw_no_split_stack): New static variable.
	(assemble_start_function): Set saw_no_split_stack if the function
	has the no_split_stack attribute.
	(file_end_indicate_split_stack): New function.
	* output.h (file_end_indicate_split_stack): Declare.
	* libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
	and function.
	* doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
	routines.
	* config/i386/i386.c (ix86_option_override_internal): Don't set
	expand_builtin_va_start to NULL if -fsplit-stack.
	(ix86_function_regparm): Reduce local regparm by 1 for 32-bit
	-fsplit-stack.
	(ix86_va_start): If -fsplit-stack, get overflow pointer	from
	scratch register set by prologue.
	(ix86_code_end): If -fsplit-stack, call
	file_end_indicate_split_stack.
	(ix86_supports_split_stack): New static function.
	(SPLIT_STACK_AVAILABLE): Define.
	(split_stack_prologue_scratch_regno): New static function.
	(split_stack_fn): New static variable.
	(ix86_expand_split_stack_prologue): New function.
	(ix86_live_on_entry): New static function.
	(ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
	(output_pic_addr_const): Likewise.
	(i386_asm_output_addr_const_extra): Likewise.
	(ix86_expand_call): Change return type to rtx.  Return the new
	call instruction.
	(TARGET_SUPPORTS_SPLIT_STACK): Define.
	(TARGET_EXTRA_LIVE_ON_ENTRY): Define.
	* config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
	(split_stack_prologue, split_stack_return): New insns.
	(split_stack_space_check): New insn.
	* config/i386/i386.h (struct machine_function): Add
	split_stack_varargs_pointer field.
	* config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
	(TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
	* config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
	(TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
	* config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
	Declare.
	(ix86_expand_call): Update declaration.

2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>

	* doc/objc.texi (Type encoding): Added the new 'long double' (D)
	code.  Added byref, which was missing in the list of codes.
	Explain that enumeration values are encoded as the integer type
	that the compiler uses to store them.  Explain and make examples
	of how 'const' interacts with pointers, and the complication of
	the encoding of 'const char *'.
	(Legacy type encoding): New subsection, explaining that GCC emits
	incorrect type encodings for the NeXT runtime for compatibility
	reasons.
	(@@encode): New subsection, explaining @encode and particularly
	that protocol qualifiers are not recognized inside an @encode()
	expression.
	(Method signatures): New subsection, explaining how method
	signatures are encoded.

2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>

	Merge from 'apple/trunk' branch on FSF servers.  Removed small
	change in build_conditional_expr that had been added when fixing
	PR objc/27377 and which did the same check in a less complete way.

	2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>

	Radar 4229905
	* c-typeck.c (build_conditional_expr): Call objc_have_common_type when
	looking for objective-c common pointer types.

	2005-06-22  Ziemowit Laski  <zlaski@apple.com>

	Radar 4154928
	* c-typeck.c (build_conditional_expr): For two ObjC pointer types,
	use their ObjC common type.

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

	* dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.

2010-09-27  Jie Zhang  <jie@codesourcery.com>

	* print-tree.c (print_node): Print in-constant-pool.

2010-09-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
	(UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
	(MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
	(ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.

2010-09-26  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
	from pro_epilogue_adjust_stack_<mode>_{1,2}.
	(pro_epilogue_adjust_stack_<mode>_add): Rename from
	pro_epilogue_adjust_stack_<mode>_3.
	* config/i386/i386.c (pro_epilogue_adjust_stack): Update for
	renamed pro_epilogue_adjust_stack_{si,di}_add.
	(ix86_expand_prologue): Use indirect functions.  Update for renamed
	pro_epilogue_adjust_stack_{si,di}_sub.

2010-09-26  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (movmsk_df): New insn.
	(signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
	sequence for TARGET_SSE_MATH.

2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_builtin_decls): Declare.
	(mips_init_builtins): Store function declarations in
	mips_builtin_decls.
	(mips_builtin_decl): New function.
	(TARGET_BUILTIN_DECL): Define.

2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
	    Richard Henderson  <rth@redhat.com>

	* config/i386/cygwin.asm: Include auto-host.h.
	(cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
	cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
	(__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
	alignment code from the 64-bit path.  Use gas local labels.
	* config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
	from _di_2.  Remove the useless constant integer argument.
	(pro_epilogue_adjust_stack_<mode>_3): New.
	(allocate_stack_worker_probe_<mode>): Macroize from
	allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
	* config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
	use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
	(__chkstk_ms): New function.
	* config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
	* config/i386/t-interix: Likewise.
	* configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
	(HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
	(HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
	* configure, config.in: Rebuild.

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

	* tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
	statements because of the return slot optimization.

2010-09-25  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
	* config/avr/avr-protos.h (class_likely_spilled_p): Remove.
	* config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
	(class_likely_spilled_p): Rename to...
	(avr_class_likely_spilled_p): ...this. Make static. Change argument
	type to reg_class_t.

2010-09-24  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_symtab_entry_def): Add guessed field.
	(lto_symtab_resolve_symbols): Set it.
	(lto_symtab_merge_decls_1): Do not compute used_from_object_file;
	store resolution field in cgraph/varpool.
	* cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
	(cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
	(cgraph_dump_node): Drop used_from_object_file.
	(cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
	(cgraph_function_body_availability): Use decl_replaceable_p.
	(cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
	(cgraph_can_remove_if_no_direct_calls_and_refs): Use
	cgraph_used_from_object_file_p.
	(cgraph_will_be_removed_from_program_if_no_direct_calls): Use
	cgraph_used_from_object_file_p.
	(resolution_used_from_other_file_p): New functoin.
	(cgraph_used_from_object_file_p): New predicate.
	* cgraph.h: Include plugin-api.h
	(struct cgraph_local_info): Remove used_from_object_file.
	(struct cgraph_node): Add resolution field.
	(struct varpool_node): Likewise; remove used_from_object_file;
	reove const_value_known.
	(cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
	cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
	(resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
	varpool_used_from_object_file_p): Declare.
	(varpool_get_node, varpool_extra_name_alias): Update prototype.
	* tree.h (DECL_REPLACEABLE_P): Remove.
	(decl_replaceable_p, decl_binds_to_current_def_p): Declare.
	* final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
	* lto-cgraph.c (lto_output_node, lto_output_varpool_node,
	input_overwrite_node, input_node, input_varpool_node): Stream
	resolution.
	* expr.c (expand_expr_real_1): Use const_value_known_p
	* ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
	const_value_known.
	(cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
	(function_and_variable_visibility): Set resolution for local vars
	and functions; use varpool_used_from_object_file_p.
	* varasm.c (resolution_to_local_definition_p, resolution_local_p): New
	static functions.
	(default_binds_local_p_1): Use resolutoin info.
	(decl_binds_to_current_def_p, decl_replaceable_p): New functions.
	* varpool.c (varpool_get_node): Constify.
	(const_value_known_p): Do not use vnode->const_value_known;
	use decl_replaceable_p.
	(varpool_finalize_decl): Do not set const_value_known.
	(cgraph_variable_initializer_availability): Use decl_replaceable_p
	(varpool_extra_name_alias): Return new node.
	(varpool_used_from_object_file_p): New function.

2010-09-24  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
	(TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
	(do_spill): Use REG_CFA_OFFSET.
	(ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
	as appropriate.
	(ia64_expand_epilogue): Likewise.
	(process_set): Split into ...
	(process_cfa_adjust_cfa): this,
	(process_cfa_register): this,
	(process_cfa_offset): and this new function.
	(ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
	instead of REG_FRAME_RELATED_EXPR.

2010-09-24  Olivier Hainque  <hainque@adacore.com>

	* config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.

2010-09-24  Jan Hubicka  <jh@suse.cz>

	* doc/extend.texi: (attribute leaf): Document.
	* tree.c (local_define_builtin): Handle ECF_LEAF.
	(build_common_builtin_nodes): Set ECF_LEAF where needed.
	* tree.h (ECF_LEAF): New.
	* ipa-reference.c (propagate_bits): For leaf calls propagate ever
	overwrittable and unavailable functions.
	(ipa_init): Put all_module_statics into optimization_summary_obstack.
	(copy_global_bitmap): Do not copy all_module_statics.
	(read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
	(propagate): Handle overwritable and unavailable leaf functions;
	initialize global info for overwritable and unavailable leaf functions;
	do not free all module statics.
	(ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
	local statics.
	* calls.c (flags_from_decl_or_type): Handle leaf.
	* tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
	abnormal gotos.

2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>

	* gengtype.c: Reindented.
	* gengtype.h: Reindented.
	* gengtype-parse.c: Reindented.

2010-09-24  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/45738
	PR tree-optimization/45741
	* expr.c (string_constant): Allow CONST_DECL too;
	check that DECL_INITIAL is set.
	* varpool.c (const_value_known_p): Only look into VAR_DECL
	and CONST_DECL.

2010-09-24  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (undef): New.

2010-09-24  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/45234
	* rtl.h (enum global_rtl_index): Add
	GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
	(LAST_VIRTUAL_POINTER_REGISTER): Define.
	(virtual_preferred_stack_boundary_rtx,
	VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
	(LAST_VIRTUAL_REGISTER): Increase by one.
	(REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
	instead of LAST_VIRTUAL_REGISTER.
	* function.c (instantiate_new_reg): Handle
	virtual_preferred_stack_boundary_rtx.
	* emit-rtl.c (init_virtual_regs): Handle
	VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
	(init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
	* explow.c (round_push): If crtl->preferred_stack_boundary
	is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
	virtual_preferred_stack_boundary_rtx alignment instead of
	crtl->preferred_stack_boundary alignment.
	(allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
	macros.  Never decrease crtl->preferred_stack_boundary,
	use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
	instead of PREFERRED_STACK_BOUNDARY.  Don't modify
	stack_pointer_delta in dynamic allocation, even when size
	is constant.
	(probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
	macro.
	* print-rtl.c (print_rtx): Handle
	VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
	* config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
	LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
	* config/frv/frv.c (frv_emit_movsi): Likewise.
	* config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
	* config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
	Likewise.

	Revert:
	2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/45234
	* calls.c (expand_call): Make sure that all variable sized
	adjustments are multiple of preferred stack boundary after
	stack alignment.

2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
	    Dominique Dhumieres  <dominiq@lps.ens.fr>

	PR bootstrap/45751
	* config/darwin-driver.c (darwin_default_min_version):
	Adjust size passed to memcpy in two places.

2010-09-24  Richard Guenther  <rguenther@suse.de>

	* c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
	Make sure to not call set_type_context with error_mark_node.
	* langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.

2010-09-24  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (OBJS-onestep): Remove.
	(ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
	(libbackend.a): Remove onestep support.
	(libbackend.o): Remove.
	* configure.ac (--enable-intermodule): Remove.
	* configure: Regenerate.

2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>

	* cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
	reaching the end of a block if it occurs at a DEBUG_INSN.

2010-09-09  Tristan Gingold  <gingold@adacore.com>

	PR target/44242
	* config/vms/vms-crt0-64.c: Removed.
	* config/vms/vms-crt0.c: Removed.
	* config/vms/vms-psxcrt0-64.c: Removed.
	* config/vms/vms-psxcrt0.c: Removed.
	* config/vms/vms-ucrt0.c: New file.
	* config/vms/t-vms64: Removed.
	* config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
	Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
	* config.gcc (alpha-dec-vms): Use t-vms.

2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>

	* doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
	underfull hbox in DVI output.
	(-fobjc-class-cxx-cdtors): Same change.
	(-fobjc-exceptions): Tidied up documentation.  Explain what the
	option does, but moved the (lenghty) description of the exception
	syntax into objc.texi.
	(-fobjc-gc): Explain that the option is not useful with the GNU
	runtime.
	(-fzero-link): Explain that the GNU runtime always works in
	"zero-link" mode.
	* doc/objc.texi: All sections: simplified @node declarations
	removing specification of next, previous, up node.
	(Objective-C): Updated introduction.
	(Garbage Collection): Updated.  The bohem-gc library is now
	included in gcc itself.  Mention that this section only applies to
	the GNU Objective-C runtime.
	(compatibility_alias): Small tidy up.
	(Exceptions): New section mostly containing text previously in the
	description of the -fobjc-exception command-line option.
	(Synchronization): Same.

2010-09-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (ix86_code_end): Move the initialization of
	xops array near the consumer.  Use AX_REG and SP_REG instead of
	numerical constants.

2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-typeck.c (convert_arguments): Use warning 'too many arguments to
	method [methodname]' for an Objective-C method instead of the less
	satisfactory 'too many arguments to function' (with no method name).

2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-flow.h (execute_update_addresses_taken): Remove parameter.
	* tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
	(execute_update_addresses_taken): Remove parameter.  Execute the
	optimization unconditionally.
	* passes.c (execute_function_todo): Call execute_update_addresses_taken
	unconditionally if TODO_rebuild_alias is set, else only when optimizing
	if TODO_update_address_taken is set.

2010-09-23  Anatoly Sokolov  <aesok@post.ru>

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

2010-09-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
	define as unspec_volatile.
	("nops"): Define as unspec_volatile. Use fputs to write to
	asm_out_file directly.  Output NOPs on separate lines using while loop.
	* config/i386/i386.c (ix86_code_end): Use fputs to write to
	asm_out_file directly.  Output NOPs on separate lines using while loop.

2010-09-23  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45565
	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
	Make sure to adjust the fndecl before replacing the stmt.

2010-09-23  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45750
	* gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
	gimplifying MEM_REF.

2010-09-23  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (toc_relative_ok): Delete.
	(rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.

2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/44374
	* basic-block.h (enum bb_flags): Add BB_MODIFIED.
	* df-core.c (df_set_bb_dirty): Set it.
	* ifcvt.c (find_memory): Remove function.
	(dead_or_predicable): Use can_move_insns_across.
	* df.h (can_move_insns_across): Declare function.
	* cfgcleanup.c (block_was_dirty): New static variable.
	(try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
	than df_get_bb_dirty.
	(try_head_merge_bb): New static function.
	(try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
	is set.
	* df-problems.c: Include "target.h"
	(df_simulate_find_uses): New static function.
	(MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
	(find_memory, find_memory_store): New static functions.
	(can_move_insns_across): New function.
	* Makefile.in (df-problems.o): Update dependencies.

2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>

	PR java/44095
	* config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
	is specified and the suffix of the file isn't ".c".
	* config/sparc/linux64.h (ASM_SPEC): Likewise.

2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
	* doc/cppopts.texi: Fix markup of index entry.
	* doc/extend.texi (Constructing Calls): Fix markup of
	__builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
	(Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
	(Vague Linkage, C++ Attributes): Fix markup of index entries and
	keywords.
	* doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
	avoid long lines.
	(C Dialect Options, C++ Dialect Options, Warning Options)
	(Debugging Options, Spec Files, Darwin Options)
	(i386 and x86-64 Options, MIPS Options)
	(RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
	index entries, avoid abbreviations, allow URLs to wrap, avoid
	long lines, avoid overlong pages from long @itemx lists.
	* doc/objc.texi (Garbage Collection): Allow URLs to wrap.
	* doc/standards.texi (Standards): Likewise.
	* doc/trouble.texi (Incompatibilities): Fix markup of index entry.

2010-09-22  Joseph Myers  <joseph@codesourcery.com>

	* opts-common.c (prune_options): Make static.  Work with decoded
	options.
	(decode_cmdline_options_to_array): Call prune_options.  Don't
	resize option array here.
	* opts.h (prune_options): Remove prototype.
	* gcc.c (process_command): Take decoded options; don't call
	decode_cmdline_options_to_array here.  Use decoded options for argv[0].
	(main): Call decode_cmdline_options_to_array here instead of
	prune_options.  Update call to process_command.
	* config/darwin-driver.c: Include opts.h.
	(darwin_default_min_version): Work with decoded options.  Don't
	handle -b or -V here.
	* config/darwin.h (darwin_default_min_version): Update prototype.
	(GCC_DRIVER_HOST_INITIALIZATION): Update call to
	darwin_default_min_version.
	* config/i386/cygwin.h (mingw_scan): Update prototype.
	(GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
	* config/i386/cygwin1.c: Include opts.h.
	(mingw_scan): Work with decoded options.
	* config/i386/t-cygwin (cygwin1.o): Update dependencies.
	* config/t-darwin (darwin-driver.o): Update dependencies.

2010-09-22  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (-assemble, -compile, -coverage, -debug, -dump,
	-dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
	-for-assembler, -for-assembler=, -for-linker, -for-linker=,
	-force-link, -force-link=, -language, -language=,
	-library-directory, -library-directory=, -no-canonical-prefixes,
	-no-standard-libraries, -no-warnings, -optimize, -output,
	-output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
	-pipe, -prefix, -prefix=, -preprocess, -print-file-name,
	-print-file-name=, -print-libgcc-file-name,
	-print-multi-directory, -print-multi-lib,
	-print-multi-os-directory, -print-prog-name, -print-prog-name=,
	-print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
	-profile, -save-temps, -shared, -specs, -specs=, -static,
	-symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
	symbolic): New.
	(fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
	* gcc.c (A Short Introduction to Adding a Command-Line Option):
	Remove comment.
	(cc1_options): Correct specs for passing down --help,
	--target-help and --help=*.  Add spec for passing down --version.
	(struct option_map, option_map, target_option_translations,
	translate_options): Remove.
	(driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
	and OPT__target_help instead of OPT_fversion, OPT_fhelp,
	OPT_fhelp_ and OPT_ftarget_help.
	(process_command): Don't call translate_options.  Call
	decode_cmdline_options_to_array before checking for
	-no-canonical-prefixes using decoded options.
	* opts-common.c (tm.h): Update comment on #include.
	(find_opt): Allow abbreviations of long options.
	(struct option_map, option_map): New.
	(decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
	and -mno handling.
	(target_option_translations): New.
	(decode_cmdline_options_to_array): Handle
	TARGET_OPTION_TRANSLATE_TABLE in driver.
	* opts.c (common_handle_option): Don't handle OPT_fhelp,
	OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.

2010-09-22  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (optimize_inline_calls): Schedule cleanups
	only if we inlined something.  Block compaction and conditional
	folding are done by cfg cleanup.  Schedule update-address-taken.
	(tree_function_versioning): Remove redundant call to number_blocks.
	* tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
	folding is done by cfg cleanup.
	* passes.c (init_optimization_passes): Remove update-address-taken
	pass after IPA inlining.

2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>

	* postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
	to update conditions. Fix reg_mode[] check.

2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.md (movhicc): Use expand to check whether
	movhicc is available and split it after reload.

2010-09-22  Richard Guenther  <rguenther@suse.de>

	* tree-ssanames.c (release_dead_ssa_names): Do not remove
	callee edges here.
	* passes.c (init_optimization_passes): Remove early CFG cleanup.
	* tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
	(pass_cleanup_cfg): Likewise.
	(execute_fixup_cfg): Cleanup.
	* tree-pass.h (pass_cleanup_cfg): Remove.

2010-09-22  Martin Jambor  <mjambor@suse.cz>

	* gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
	builtins if it is true.
	(fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
	parameter.

2010-09-22  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (struct access): New field grp_no_warning.
	(create_access_replacement): Set TREE_NO_WARNING according to
	 grp_no_warning.
	(create_artificial_child_access): Use build_ref_for_model and set
	grp_no_warning if build_user_friendly_ref_for_offset fails.
	(propagate_subaccesses_across_link): Likewise.

2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/35664
	* config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
	('f'): Likewise.

2010-09-22  Tristan Gingold  <gingold@adacore.com>

	* config/alpha/alpha.c (alpha_use_linkage): Initialize target field.

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

	* config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
	* config/i386/i386.c (decide_alg): Update for rename.

2010-09-22  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/45739
	* simplify-rtx.c (simplify_binary_operation_1): Optimize even
	vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).

2010-09-21  Anatoly Sokolov  <aesok@post.ru>

	* config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
	* config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
	Remove.
	* config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
	(TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.

2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>

	PR objc/23710
	* c-parser.c (c_parser_objc_method_definition): Check the return
	value of objc_start_method_definition and if false is returned,
	parse the method definition but emit no code.

2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>

	PR objc/25965
	* c-decl.c (detect_field_duplicates): If compiling Objective-C,
	call objc_get_interface_ivars ().

2010-09-21  Kai Tietz  <kai.tietz@onevision.com>

	PR target/45694
	* config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
	static chain-register is used for 64-bit.

2010-09-21  Richard Guenther  <rguenther@suse.de>

	* dwarf2out.c (is_cu_die): New function.
	(add_pubtype): Use it.
	(gen_subprogram_die): Likewise.
	(gen_struct_or_union_type_die): Likewise.
	(dwarf2out_finish): Likewise.
	(comp_unit_die): Rename to ...
	(single_comp_unit_die): ... this.
	(comp_unit_die): New function lazily constructing and
	returning single_comp_unit_die.
	(is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
	base_type_die, subrange_type_die, modified_type_die,
	lower_bound_default, add_bound_info, add_prototyped_attribute,
	dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
	dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
	force_decl_die, gen_namespace_die, dwarf2out_decl,
	dwarf2out_start_source_file, dwarf2out_end_source_file,
	prune_unused_types, dwarf2out_finish): Use it.
	(gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
	the global list of translation-unit decls.
	(dwarf2out_init): Do not create single_comp_unit_die here.
	(force_decl_die): Handle TRANSLATION_UNIT_DECL.

2010-09-21  Richard Guenther  <rguenther@suse.de>

	* dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
	for bool for C++.

2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>

	* config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
	(qhs_extenddi_cstr): Likewise.
	* config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
	them for the source operand.

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

	* config/i386/i386.c (ix86_split_ashl): Rename single_width variable
	to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
	(ix86_split_ashr): Ditto.
	(ix86_split_lshr): Ditto.

2010-09-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45580
	* tree-ssa-propagate.c (substitute_and_fold): Always replace
	regular uses.
	* gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
	virtuals fold the call into a regular indirect one.

2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/42775
	* cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
	scheduling is enabled.

2010-09-20  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/45728
	* expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
	gen_lowpart_common first and if that fails, force_reg first
	before calling gen_lowpart.

	PR middle-end/45678
	* cfgexpand.c (expand_one_stack_var_at): Use
	crtl->max_used_stack_slot_alignment as max_align, instead
	of maximum of that and PREFERRED_STACK_BOUNDARY.
	Don't call update_stack_alignment.

2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>

	* langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
	* langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
	* system.h (LANG_HOOKS_HASH_TYPES): Poison.
	* tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
	(build_nonstandard_integer_type): Likewise.
	(build_range_type_1): New function, built from...
	(build_range_type): ...this.  Call build_range_type_1.
	(build_nonshared_range_type): New function.
	(build_array_type_1): New function, built from...
	(build_array_type: ...this.  Call build_array_type_1.
	(build_nonshared_array_type): New function.
	* tree.h (build_nonshared_range_type): Declare.
	(build_nonshared_array_type): Likewise.

2010-09-20  Anatoly Sokolov  <aesok@post.ru>

	* config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
	* config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
	(arm_class_likely_spilled_p): New function.

2010-09-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
	indirect functions.
	(ix86_split_ashl): Ditto.
	(ix86_split_ashr): Ditto.
	(ix86_split_lshr): Ditto.
	(ix86_adjust_counter): Ditto.

2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-family/c-common.h (constant_string_class): Documented with
	comment identical to the one already in c-common.c.

2010-09-20  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (any_cfis_emitted): New static variable.
	(add_fde_cfi): Set it.
	(dwarf2out_frame_debug): Clear it before processing,
	if it is set afterwards, flush any queued reg saves.

	PR debug/45124
	* dwarf2out.c (add_accessibility_attribute): Assume
	DW_ACCESS_private as the default for dwarf_version > 2
	and DW_TAG_class_type parent.
	(gen_inheritance_die): Assume DW_ACCESS_public as the default
	for dwarf_version > 2 and parent other than DW_TAG_class_type.

2010-09-20  Rafael Carre  <rafael.carre@gmail.com>

	PR target/45726
	* arm.md (arm_movt): Only enable on machines with MOVT.

2010-09-20  Jie Zhang  <jie@codesourcery.com>

	* config/arm/arm.c (arm_address_offset_is_imm): New.
	(arm_early_store_addr_dep): New.
	(arm_early_load_addr_dep): New.
	* config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
	(arm_early_load_addr_dep): Declare.
	(arm_address_offset_is_imm): Declare.
	* config/arm/cortex-m4.md: New file.
	* config/arm/cortex-m4-fpu.md: New file.
	* config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
	(attr generic_sched): Exclude cortexm4.
	(attr generic_vfp): Exclude cortexm4.

2010-09-20  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45704
	* gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.

2010-09-20  Jan Hubicka  <jh@suse.cz>

	PR tree-optimize/45605
	* cgraph.h (const_value_known_p): Declare.
	(varpool_decide_const_value_known): Remove.
	* tree-ssa-ccp.c (get_base_constructor): Use it.
	* lto-cgraph.c (compute_ltrans_boundary): Likewise.
	* expr.c (string_constant): Likewise.
	* tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
	* ipa.c (ipa_discover_readonly_nonaddressable_var,
	function_and_variable_visibility): Likewise.
	* gimplify.c (gimplify_call_expr): Likewise.
	* gimple-fold.c (get_symbol_constant_value): Likewise.
	* varpool.c (varpool_decide_const_value_known): Replace by...
	(const_value_known_p): ... this one; handle other kinds of DECLs
	too and work for automatic vars.
	(varpool_finalize_decl): Use const_value_known_p.

2010-09-20  Rafael Carre  <rafael.carre@gmail.com>

	PR target/45726
	* arm.md (arm_movtas_ze): Only enable on machine with MOVT.

2010-09-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45705
	* tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.

2010-09-20  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/45695
	* combine.c (try_combine): When splitting a two set pattern,
	make sure the pattern which will be put into i2 doesn't use REGs
	or MEMs set by insns in between i2 and i3.

2010-09-19  Jan Hubicka  <jh@suse.cz>

	PR lto/44246
	* lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
	processing same node twice.

2010-09-19  Anatoly Sokolov  <aesok@post.ru>

	* config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
	* config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
	(bfin_class_likely_spilled_p): New function

2010-09-19  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/45714
	* tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
	created in vectorizable_call instead of the original statement in
	def stmt updates.

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

	* config/i386/i386-protos.h (split_double_mode): New prototype.
	(split_di, split_ti): Remove prototypes.
	* config/i386/i386.c (split_double_mode): New function.
	(split_di, split_ti): Remove.
	(ix86_expand_branch): Use split_double_mode.
	(ix86_split_to_parts): Ditto.
	(ix86_split_ashl): Ditto.
	(ix86_split_ashr): Ditto.
	(ix86_split_lshr): Ditto.
	(ix86_force_to_memory): Ditto.
	* config/i386/i386.md: Use split_double_mode in double-mode splitters.

2010-09-18  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/45453
	* cgraphunit.c (cgraph_finalize_function): Consider comdat & external
	virtual functions are reachable.
	* ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
	* ipa.c (cgraph_remove_unreachable_nodes): Likewise.
	* ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
	when modifying function.

2010-09-18  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/45605
	* cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
	* gimple-fold.c (static_object_in_other_unit_p): New function.
	(canonicalize_constructor_val): Use it.
	(get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
	returning NULL.
	(gimple_fold_obj_type_ref_known_binfo): Use
	static_object_in_other_unit_p.

2010-09-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45709
	* tree-inline.c (copy_phis_for_bb): Delay commit of edge
	insertions until after all PHI nodes of the block are processed.

2010-09-18  Tijl Coosemans  <tijl@coosemans.org>

	* config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.

2010-09-18  Kai Tietz  <kai.tietz@onevision.com>

	* config.gcc (*-w64-mingw*): Correct typo about t-dfprules.

2010-09-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45709
	* tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.

2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
	(dot_deps_stmt): Same.
	* graphite-poly.c (dot_lst): Same.
	* graphite-scop-detection.c (dot_all_scops): Same.
	(dot_scop): Same.

2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>

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

	* tree-data-ref.c (dot_rdg_1): Added back.
	(dot_rdg): Same.  Added "#if 0" around system call.

2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
	    Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (initial_ix86_tune_features): Add
	X86_TUNE_PAD_SHORT_FUNCTION.
	(ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
	(ix86_count_insn): New.
	(ix86_pad_short_function): Likewise.
	(ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.

	* config/i386/i386.h (ix86_tune_indices): Add
	X86_TUNE_PAD_SHORT_FUNCTION.
	(TARGET_PAD_SHORT_FUNCTION): New.

	* config/i386/i386.md (UNSPEC_NOPS): New.
	(nops): Likewise.

2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/45234
	* calls.c (expand_call): Make sure that all variable sized
	adjustments are multiple of preferred stack boundary after
	stack alignment.

2010-09-17  DJ Delorie  <dj@redhat.com>

	* config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
	passed an invalid value, print an error instead of ICEing.
	(valid_psw_flag): New.
	(rx_expand_builtin): Call it for setpsw/clrpsw.
	(rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.

	* config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
	(bitclr_in_memory): Likewise.
	(clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.

2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/45678
	* cfgexpand.c (update_stack_alignment): New.
	(get_decl_align_unit): Use it.
	(expand_one_stack_var_at): Call update_stack_alignment.

2010-09-17  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
	Properly copy the read string.

2010-09-17  Joseph Myers  <joseph@codesourcery.com>

	* doc/options.texi (Variable): Document.
	* optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
	generate target_flags declarations explicitly.  Don't define
	VarExists variables for the driver.
	* common.opt (target_flags): New Variable record.
	(flag_dump_unnumbered, flag_dump_unnumbered_links,
	flag_var_tracking, flag_var_tracking_assignments,
	flag_var_tracking_assignments_toggle): Don't mark variables with
	VarExists.
	* config/i386/i386.c (ix86_isa_flags): Don't define here.
	* config/i386/i386.opt (ix86_isa_flags): Define here.
	* config/mcore/mcore.c (mcore_stack_increment): Don't define here.
	* config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
	VarExists.
	* flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
	* print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
	Only define for generator programs.
	* rtlanal.c (target_flags): Remove.
	* toplev.c (flag_var_tracking, flag_var_tracking_assignments,
	flag_var_tracking_assignments_toggle): Remove.

2010-09-17  Michael Matz  <matz@suse.de>

	PR tree-optimization/43432
	* tree-vect-data-refs.c (vect_analyze_data_ref_access):
	Accept backwards consecutive accesses.
	(vect_create_data_ref_ptr): If step is negative generate
	decreasing IVs.
	* tree-vect-stmts.c (vectorizable_store): Reject negative steps.
	(perm_mask_for_reverse, reverse_vec_elements): New functions.
	(vectorizable_load): Handle loads with negative steps when easily
	possible.

2010-09-03  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.

2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>

	* config/v850/v850.c (v850_function_value_regno_p): Make static.
	Adjust comments. Declare.
	(TARGET_FUNCTION_VALUE_REGNO_P): Define.
	* config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.

2010-09-17  Richard Guenther  <rguenther@suse.de>

	* common.opt (combine): Remove.
	* gcc.c (default_compilers): Remove specs testing combine.
	The C compilers no longer can combine.
	(option_map): Remove -combine.
	(display_help): Remove -combine.
	(driver_handle_option): Remove OPT_combine handling.
	(compile_input_file_p): Remove.
	(do_spec): Remove code concerning combine.
	(main): Likewise.
	* doc/invoke.texi: Remove traces of -combine.
	* lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.

2010-09-17  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45678
	* builtins.c (fold_builtin_memory_op): Always properly adjust
	alignment of memory accesses.

2010-09-16  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
	processing clone.

2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-protos.h (ix86_split_idivmod): New prototype.

	* config/i386/i386.c (predict_jump): Add prototype.
	(flag_opts): Add -m8bit-idiv.
	(ix86_split_idivmod): New.

	* config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
	Add 2 splitters for SI/DI mode divide.
	(divmod<mode>4_1): New pattern.
	(udivmod<mode>4_1): Likewise.
	(testdi_ccno_1): Likewise.

	* config/i386/i386.opt (m8bit-idiv): New.

	* doc/invoke.texi: Document -m8bit-idiv.

2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>

	PR bootstrap/45680
	* config/i386/i386.c (min_insn_size): Moved out of the
	ASM_OUTPUT_MAX_SKIP_PAD ifdef.

2010-09-16  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (lto_output_node): Fix handling of clones.
	* ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
	unreachable clones with reachable clones.
	* tree-inline.c (copy_bb): Fix sanity checking when producing
	unreachable clone.

2010-09-16  Anatoly Sokolov  <aesok@post.ru>

	* config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
	(TARGET_MEMORY_MOVE_COST): Define.
	(m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.

2010-09-16  Alexander Monakov  <amonakov@ispras.ru>

	* sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
	maybe_tidy_empty_bb.

	Revert:
	2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
	* sel-sched-ir.c (maybe_tidy_empty_bb): Export.

2010-09-16  Joseph Myers  <joseph@codesourcery.com>

	* target.def (target_option.optimization): New hook.
	* doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
	TARGET_OPTION_OPTIMIZATION hook.
	* doc/tm.texi: Regenerate.
	* hooks.c (hook_void_int_int): New.
	* hooks.h (hook_void_int_int): Declare.
	* opts.c: Don't include tm_p.h.
	(decode_options): Use targetm.target_option.optimization instead
	of OPTIMIZATION_OPTIONS.
	* system.h (OPTIMIZATION_OPTIONS): Poison.
	* config/arm/arm-protos.h (arm_optimization_options): Remove.
	* config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
	(arm_optimization_options): Rename to arm_option_optimization.
	Make static.
	* config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
	* config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
	(cris_option_optimization): New.
	* config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
	* config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
	(crx_option_optimization): New.
	* config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
	* config/frv/frv-protos.h (frv_optimization_options): Remove.
	* config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
	(frv_optimization_options): Rename to frv_option_optimization.
	Make static.
	* config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
	* config/h8300/h8300.c (h8300_option_optimization): New.
	(TARGET_OPTION_OPTIMIZATION): Define.
	* config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
	* config/i386/i386-protos.h (optimization_options): Remove.
	* config/i386/i386.c (optimization_options): Rename to
	ix86_option_optimization.  Make static.
	(TARGET_OPTION_OPTIMIZATION): Define.
	* config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
	* config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
	* config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
	(ia64_optimization_options): Rename to ia64_option_optimization.
	Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
	* config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
	commented-out definition.
	* config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
	instead of OPTIMIZATION_OPTIONS.
	* config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
	(m32r_option_optimization): New.
	* config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
	* config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
	Remove.
	* config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
	(mcore_option_optimization): New.
	* config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
	* config/mep/mep-protos.h (mep_optimization_options): Remove.
	* config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
	(mep_optimization_options): Rename to mep_option_optimization.
	Make static.  Take unused level and size parameters.
	* config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
	* config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
	(mmix_option_optimization): New.
	* config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
	* config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
	(pdp11_option_optimization): New.
	* config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
	* config/rs6000/rs6000-protos.h (optimization_options): Remove.
	* config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
	(optimization_options): Rename to rs6000_option_optimization.
	Make static.
	* config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
	* config/rx/rx-protos.h (rx_set_optimization_options): Remove.
	* config/rx/rx.c (rx_set_optimization_options): Rename to
	rx_option_optimization.  Make static.  Take unused level and size
	parameters.
	(TARGET_OPTION_OPTIMIZATION): Define.
	* config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
	* config/s390/s390-protos.h (optimization_options): Remove.
	* config/s390/s390.c (optimization_options): Rename to
	s390_option_optimization.  Make static.  Don't mark size parameter
	unused.
	(TARGET_OPTION_OPTIMIZATION): Define.
	* config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
	* config/sh/sh-protos.h (sh_optimization_options): Remove.
	* config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
	(sh_optimization_options): Rename to sh_option_optimization.  Make
	static.  Don't mark parameters unused.
	* config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
	* config/spu/spu-protos.h (spu_optimization_options): Remove.
	* config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
	(spu_optimization_options): Rename to spu_option_optimization.
	Make static.
	* config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
	* config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
	(v850_option_optimization): New.
	* config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
	* config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
	(xtensa_option_optimization): New.
	* config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.

2010-09-16  Joseph Myers  <joseph@codesourcery.com>

	* doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
	(C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
	* doc/tm.texi: Regenerate.
	* system.h (OVERRIDE_OPTIONS): Poison.
	* target.def (override): Default to hook_void_void.
	* targhooks.c (default_target_option_override): Remove.
	* genmodes.c, machmode.def: Update comments mentioning
	OVERRIDE_OPTIONS.
	* config/alpha/alpha-modes.def: Update comment mentioning
	alpha_override_options.
	* config/alpha/alpha-protos.h (override_options): Remove.
	* config/alpha/alpha.c (override_options): Rename to
	alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
	* config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
	of OVERRIDE_OPTIONS.
	* config/arc/arc-protos.h (arc_init): Remove.
	* config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
	(arc_init): Rename to arc_option_override.  Make static.
	* config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
	(OVERRIDE_OPTIONS): Remove.
	* config/arm/arm-protos.h (arm_override_options): Remove.
	* config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
	(arm_override_options): Rename to arm_option_override.  Make
	static.  Call SUBTARGET_OVERRIDE_OPTIONS.
	* config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
	* config/arm/arm.md: Update comment referring to arm_override_options.
	* config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
	instead of OVERRIDE_OPTIONS.
	* config/avr/avr-protos.h (avr_override_options): Remove.
	* config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
	(avr_override_options): Rename to avr_option_override.  Make static.
	* config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
	* config/bfin/bfin-protos.h (override_options): Remove (twice).
	* config/bfin/bfin.c (override_options): Rename to
	bfin_option_override.  Make static.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
	* config/cris/cris-protos.h (cris_override_options): Remove.
	* config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
	(cris_override_options): Rename to cris_option_override.  Make static.
	* config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
	* config/frv/frv-protos.h (frv_override_options): Remove.
	* config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
	(frv_override_options): Rename to frv_option_override.  Make static.
	* config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
	* config/h8300/h8300-protos.h (h8300_init_once): Remove.
	* config/h8300/h8300.c (h8300_init_once): Rename to
	h8300_option_override.  Make static.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
	* config/i386/i386-protos.h (override_options): Remove.
	* config/i386/i386.c (override_options): Rename to
	ix86_option_override_internal.  Make static.  Comments referring
	to this function and callers changed.
	(ix86_option_override): New.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/i386/i386.h (OVERRIDE_OPTION): Remove.
	* config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
	* config/ia64/ia64.c (ia64_file_start): Update comment referring
	to ia64_override_options.
	* config/iq2000/iq2000-protos.h (override_options): Remove.
	* config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
	(override_options): Rename to iq2000_option_override.  Make static.
	* config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
	* config/lm32/lm32-protos.h (lm32_override_options): Remove.
	* config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
	(lm32_override_options): Rename to lm32_option_override.  Make static.
	* config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
	* config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
	(m32r_option_override): New.
	(m32r_init): Update comment.
	* config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
	* config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
	* config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
	(m68hc11_override_options): Rename to m68hc11_option_override.
	Make static.  Return void.
	* config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
	* config/m68k/m68k-protos.h (override_options): Remove.
	* config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
	(override_options): Rename to m68k_option_override.  Make static.
	* config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
	* config/mcore/mcore-protos.h (mcore_override_options): Remove.
	* config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
	(mcore_override_options): Rename to mcore_option_override.  Make
	static.
	* config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
	* config/mep/mep-protos.h (mep_override_options): Remove.
	* config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
	(mep_override_options): Rename to mep_option_override.  Make static.
	* config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
	* config/mmix/mmix-protos.h (mmix_override_options): Remove.
	* config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
	(mmix_override_options): Rename to mmix_option_override.  Make static.
	* config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
	* config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
	* config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
	(mn10300_override_options): Rename to mn10300_option_override.
	Make static.
	* config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
	* config/moxie/moxie-protos.h (moxie_override_options): Remove.
	* config/moxie/moxie.c (moxie_override_options): Rename to
	moxie_option_override.  Make static.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
	* config/picochip/picochip-protos.h (picochip_override_options):
	Remove.  Update comment referring to picochip_override_options.
	* config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
	(picochip_override_options): Rename to picochip_option_override.
	Make static.  Update comment and definition of
	TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
	* config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
	* config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
	* config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
	* config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
	* config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
	* config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
	* config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
	instead of OVERRIDE_OPTIONS.
	* config/rs6000/rs6000-modes.def: Update comment referring to
	rs6000_override_options.
	* config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
	* config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
	(rs6000_override_options): Rename to
	rs6000_option_override_internal.  Make static.  Commented
	referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
	(rs6000_option_override): New.
	* config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
	instead of OVERRIDE_OPTIONS.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
	* config/s390/s390-protos.h (override_options): Remove.
	* config/s390/s390.c (override_options): Rename to
	s390_option_override.  Make static.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
	* config/score/score-protos.h (score_override_options): Remove.
	* config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
	(score_override_options): Rename to score_option_override.  Make
	static.
	* config/score/score.h (OVERRIDE_OPTIONS): Remove.
	Update comment referring to override_options.
	* config/score/score3.c (score3_override_options): Rename to
	score3_option_override.
	* config/score/score3.h (score3_override_options): Rename to
	score3_option_override.
	* config/score/score7.c (score7_override_options): Rename to
	score7_option_override.
	* config/score/score7.h (score7_override_options): Rename to
	score7_option_override.
	* config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
	* config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
	(sparc_override_options): Rename to sparc_option_override.  Make
	static.  Call SUBTARGET_OVERRIDE_OPTIONS.
	* config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
	* config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
	instead of OVERRIDE_OPTIONS.
	* config/spu/spu-protos.h (spu_override_options): Remove.
	* config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
	(spu_override_options): Rename to spu_option_override.  Make
	static.
	* config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
	* config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
	OVERRIDE_OPTIONS.
	* config/vax/vax-protos.h (override_options): Remove.
	* config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
	(override_options): Rename to vax_option_override.  Make static.
	Call SUBTARGET_OVERRIDE_OPTIONS.
	* config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
	* config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
	* config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
	* config/xtensa/xtensa-protos.h (override_options): Remove.
	* config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
	(override_options): Rename to xtensa_option_override.  Make static.
	* config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.

2010-09-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45623
	* tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
	(get_constraint_for_component_ref): If computing a constraint
	for the rhs handle type punning through unions.
	(get_constraint_for_address_of): Adjust.
	(get_constraint_for_1): Likewise.
	(get_constraint_for): Likewise.
	(get_constraint_for_rhs): New function.
	(do_structure_copy): Adjust.
	(make_constraint_to): Likewise.
	(handle_const_call): Likewise.
	(find_func_aliases): Likewise.
	(process_ipa_clobber): Likewise.
	(create_variable_info_for): Likewise.

2010-09-16  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.c: Fix documentation.
	* tree-vectorizer.h (vinfo_for_stmt): Add documentation.
	(set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
	is_pattern_stmt_p, is_loop_header_bb_p,
	stmt_vinfo_set_inside_of_loop_cost,
	stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
	known_alignment_for_access_p): Likewise.
	* tree-vect-loop.c: Fix documentation.
	(vect_get_cost): Start function name from new line.
	* tree-vect-data-refs.c: Fix documentation.
	* tree-vect_stmts.c: Likewise.
	(vect_create_vectorized_promotion_stmts): Always free vec_tmp.
	(vectorizable_store): Free vec_oprnds if allocated.
	(vectorizable_condition): Initialize several variables to avoid
	warnings.
	* tree-vect-slp.c: Fix documentation.

2010-09-16  Richard Guenther  <rguenther@suse.de>

	* tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
	is TS_TRANSLATION_UNIT_DECL.
	(initialize_tree_contains_struct): Adjust.
	(all_translation_units): New global vector.
	(build_translation_unit_decl): New function.
	* tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
	(struct tree_translation_unit_decl): New.
	(all_translation_units): Declare.
	(union tree_node): Add translation_unit_decl member.
	(build_translation_unit_decl): Declare.
	* treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
	* lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
	New function.
	(pack_value_fields): Call it.
	(lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
	(lto_output_ts_translation_unit_decl_tree_pointers): New function.
	(lto_output_tree_pointers): Call it.
	* lto-streamer-in.c (lto_input_tree_ref): Handle references
	to TRANSLATION_UNIT_DECL.
	(unpack_ts_translation_unit_decl_value_fields): New function.
	(unpack_value_fields): Call it.
	(lto_input_ts_translation_unit_decl_tree_pointers): New function.
	(lto_input_tree_pointers): Call it.
	* lto-streamer.c (check_handled_ts_structures): Adjust.
	* lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
	* c-decl.c (all_translation_units): Remove.
	(pop_scope): Use build_translation_unit_decl.
	(collect_all_refs): Adjust.
	(for_each_global_decl): Likewise.
	(c_write_global_declarations): Likewise.

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

	PR bootstrap/45686
	* fold-const.c (fold_checksum_tree): Change slot from const void **
	to void **, use CONST_CAST_TREE to store into *slot.

2010-09-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md: Remove unneeded empty conditions and
	preparation statements from expanders.
	* config/i386/mmx.md: Ditto.
	* config/i386/sse.md: Ditto.

2010-09-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.

2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/45593
	* reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
	insns that were in delay slots as stand-alone insns.

2010-09-15  Ian Lance Taylor  <iant@google.com>

	* incpath.c (remove_duplicates): If name is not a directory, issue
	a warning rather than an error.

2010-09-15  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/45644
	* tree-sra.c (create_access): Check for bit-fields directly.

2010-09-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/45633
	* tree-cfg.c (verify_gimple_assign_binary): Allow
	MINUS_EXPR with lhs and rhs1 pointer vector and
	rhs2 sizetype vector.
	* expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
	or vector pointer use TER to optimize pointer subtraction.

2010-09-15  Jie Zhang  <jie@codesourcery.com>

	* config/arm/vfp.md (cmpsf_trap_vfp): Change type from
	fcmpd to fcmps.

2010-09-15  Ian Lance Taylor  <iant@google.com>

	* config/i386/i386.md (truncxf<mode>2): Fix indentation.

2010-09-15  Ian Lance Taylor  <iant@google.com>

	* function.c (get_arg_pointer_save_area): Set
	arg_pointer_save_area_init to true.

2010-09-15  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (generate_subtree_copies): Updated comment.
	(handle_unscalarized_data_in_subtree): Removed parameter lhs which is
	obtained from the statement iterator instead.
	(load_assign_lhs_subreplacements): Removed parameters lhs and
	right_offset, which is obtained from top_racc instead.  Parameter lacc
	is now expected to be the root of the processed tree rather than root's
	first child.  Updated all callers.

2010-09-15  Joseph Myers  <joseph@codesourcery.com>

	* config/pdp11/pdp11.c (register_move_cost): Rename to
	pdp11_register_move_cost.
	* config/pdp11/pdp11-protos.h (register_move_cost): Rename to
	pdp11_register_move_cost.
	* config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
	pdp11_register_move_cost instead of register_move_cost.

2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>

	* config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
	pattern for vmovn. Expansion in case of non
	-mvectorize-with-neon-quad.
	(neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
	non- -mvectorize-with-neon-quad case.
	(move_lo_quad_<mode>): New expansion to vmov into low part.
	(move_hi_quad_<mode>): New expansion to vmov into high part.
	(move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
	(move_lo_quad_v4sf): Likewise.
	(move_lo_quad_v8hi): Likewise.
	(neon_move_lo_quad_<mode>): Instruction pattern for vmov into
	low part.
	(neon_move_hi_quad_<mode>): Instruction pattern for vmov into
	high part.
	* config/arm/iterators.md (ANY128): New mode iterator.
	(V_narrow_pack): New mode attribute.
	(V_HALF): Add attribute.
	(V_DOUBLE): Add attribute.
	(V_mode_nunits): Add attribute.

2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>

	* config/alpha/alpha.c (alpha_expand_prologue): If stack checking
	is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.

2010-09-15  Olivier Hainque  <hainque@adacore.com>
	    Jose Ruiz  <ruiz@adacore.com>

	* config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
	* config/alpha/osf5-unwind.h: New file.

2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/45672
	* config/mips/mips.c (mips_units_per_simd_word): Correct return type.
	* config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
	* config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.

2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* c-lang.h (struct lang_type): Add variable_size GTY option.

2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/45672
	* config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.

2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_lea_for_add_ok): Return false if
	result isn't used in memory address.

2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>

	* defaults.h (UNITS_PER_SIMD_WORD): Removed.
	* config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
	* config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
	* config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
	* config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
	* config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.

	* target.def: Add units_per_simd_word to vectorize.

	* targhooks.c (default_units_per_simd_word): New.
	* targhooks.h (default_units_per_simd_word): Likewise.
	* config/arm/arm.c (arm_units_per_simd_word): Likewise.
	(TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
	* config/mips/mips.c (mips_units_per_simd_word): Likewise.
	(TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
	* config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
	(TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
	* config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
	(TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.

	* tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
	TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.

	* tree-vect-stmts.c: Don't include "tm_p.h".
	(get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
	with targetm.vectorize.units_per_simd_word.

	* system.h (UNITS_PER_SIMD_WORD): Poisoned.

	* config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.

	* config/i386/i386.c (ix86_units_per_simd_word): Make it static.
	(TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.

	* doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
	TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.

	* doc/tm.texi: Regenerated.

2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>

	* tree-vect-stmts.c: Include "tm_p.h".

	* config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
	out of RTX_CODE.

2010-09-14  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
	location of generated statement.  Changed all callers.
	(build_ref_for_model): New parameter loc which used to set location of
	all generated expressions.  Changed all callers.
	(generate_subtree_copies): Likewise.
	(init_subtree_with_zero): Likewise.
	(sra_modify_expr): Set locations of all generated statements and
	expressions to the location the original statement.
	(handle_unscalarized_data_in_subtree): Likewise.
	(load_assign_lhs_subreplacements): Likewise.
	(sra_modify_constructor_assign): Likewise.
	(sra_modify_assign): Likewise.

2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/45277
	PR target/45363
	PR target/45407
	* doc/install.texi (sparc*-*-*): New section.
	(sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.

2010-09-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/45567
	* builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
	expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
	(expand_builtin): Adjust caller.
	(expand_builtin_unop): Only use subtarget if it has the right mode.

2010-09-14  Tristan Gingold  <gingold@adacore.com>

	* configure.ac (plugins): Fix typos.
	* configure: Regenerate.

2010-09-14  Jakub Jelinek  <jakub@redhat.com>

	PR debug/45660
	* dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
	gen_type_die for function/method return type.

2010-09-14  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/45470
	* tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
	can throw an exception.
	* tree-vect-stmts.c (vectorizable_call): Likewise.

2010-09-14  DJ Delorie  <dj@redhat.com>

	PR target/44749
	* config/mep/mep-protos.h (mep_save_register_info,
	mep_reinit_regs, mep_init_regs): Declare.

	* config/mep/mep.c: Move all target definitions to the end of the
	file to avoid the need for duplicate declarations.
	(mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
	(mep_reorg_erepeat): Remove unused variables.
	(mep_expand_builtin): Likewise.

	* config/mep/mep-pragma.c: Don't include rtl.h.
	(INVALID_REGNUM): New.
	(mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
	functions.
	(mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
	Avoid enum/integer math.

2010-09-13  Joseph Myers  <joseph@codesourcery.com>

	PR target/44749
	* config/mep/t-mep (GTM_H): Add insn-constants.h.
	* config/mep/mep.c (mep_conditional_register_usage): Take no
	parameters.
	* config/mep/mep-protos.h (mep_conditional_register_usage): Update
	prototype.
	* config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
	call to mep_conditional_register_usage.

2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>

	PR debug/43937
	* varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
	the DECL as well.

2010-09-13  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/45617
	* combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
	even if low N bits of X aren't known to be zero.

2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-protos.h (ix86_units_per_simd_word): New.

	* config/i386/i386.c (initial_ix86_tune_features): Add
	X86_TUNE_VECTORIZE_DOUBLE.
	(ix86_units_per_simd_word): New.

	* config/i386/i386.h (ix86_tune_indices): Add
	X86_TUNE_VECTORIZE_DOUBLE.
	(TARGET_VECTORIZE_DOUBLE): New.
	(UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.

2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>

	* tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
	(new_temp_expr_table): Allocate call_cnt vector.
	(free_temp_expr_table): Free it.
	(process_replaceable): Add call_cnt parm and set in vector.
	(find_replaceable_in_bb): Skip replacement if def/use span a call.
	(debug_ter): Dump call_cnt value, remove stderr uses.

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

	* tree.c (build_zero_cst): New.
	* tree.h (build_zero_cst): Declare.
	* tree-ssa-ccp.c (get_constant_value): Accept general operands.
	(get_base_constructor): Break out from ...
	(fold_const_aggregate_ref): Here; handle empty constructors.

2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/arm/arm.md: (define_attr "conds"): Update comment.
	* config/arm/sync.md (arm_sync_compare_and_swapsi): Change
	conds attribute to clob.
	(arm_sync_compare_and_swapsi): Likewise.
	(arm_sync_compare_and_swap<mode>): Likewise.
	(arm_sync_lock_test_and_setsi): Likewise.
	(arm_sync_lock_test_and_set<mode>): Likewise.
	(arm_sync_new_<sync_optab>si): Likewise.
	(arm_sync_new_nandsi): Likewise.
	(arm_sync_new_<sync_optab><mode>): Likewise.
	(arm_sync_new_nand<mode>): Likewise.
	(arm_sync_old_<sync_optab>si): Likewise.
	(arm_sync_old_nandsi): Likewise.
	(arm_sync_old_<sync_optab><mode>): Likewise.
	(arm_sync_old_nand<mode>): Likewise.

2010-09-13  Olivier Hainque  <hainque@adacore.com>

	* fwprop.c (forward_propagate_and_simplify): Only attach a
	REG_EQUAL note to an insn if the destination is a register.
	* gcse.c (try_replace_reg): Likewise.

2010-09-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45611
	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
	(copy_ref_info): Likewise.

2010-09-13  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/45604
	PR debug/45419
	PR debug/45408
	* tree-pretty-print.c (dump_generic_node): Disregard top-level
	types of MEM_REF pointer types to the same type.

2010-09-13  Hans-Peter Nilsson  <hp@axis.com>

	PR rtl-optimization/41087
	* ifcvt.c (noce_get_condition): Don't allow conditions with
	side-effects.

2010-09-12  Anatoly Sokolov  <aesok@post.ru>

	* config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
	* config/frv/frv-protos.h (frv_register_move_cost): Remove.
	* config/frv/frv.c (frv_register_move_cost): Make static. Change
	arguments type to reg_class_t. Add mode argument.
	(frv_memory_move_cost): New.
	(TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.

2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>

	* config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
	arm_lshrdi3_1bit): Put earlyclobber on the right alternative.

2010-09-10  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.

2010-09-10  Richard Guenther  <rguenther@suse.de>

	* tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
	* tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
	* lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
	not stream TYPE_DEBUG_REPRESENTATION_TYPE.
	* lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.

2010-09-10  Richard Guenther  <rguenther@suse.de>

	* dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
	for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
	* dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
	using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.

2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/45634
	* tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
	of string folding is of integral type.

2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>

	* doc/invoke.texi (-x): Fix typo.

2010-09-10  Richard Guenther  <rguenther@suse.de>

	PR debug/44115
	* tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
	* lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
	Output DECL_DEBUG_EXPR.
	* lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
	Input DECL_DEBUG_EXPR.

2010-09-10  Richard Guenther  <rguenther@suse.de>

	* tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
	(build_index_type): Implement in terms of build_range_type.
	(build_range_type): Do not allow NULL_TREE type, improve
	hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
	if we didn't hash.
	* c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
	create a distinct copy of the type.

2010-09-10  Kai Tietz  <kai.tietz@onevision.com>

	* configure: Regenerated.
	* config.gcc: Add for x86_64 and i?86 mingw t-dfprule.

2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
	* config/arm/cortex-a9-neon.md: New and partially generated.
	* config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.

2010-09-10  Richard Guenther  <rguenther@suse.de>

	* tree.h (build_index_2_type): Remove.
	* tree.c (build_index_2_type): Remove.

2010-09-10  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/45630
	* dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
	HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
	(implicit_ptr_descriptor): Return NULL if dwarf_strict.

2010-09-10  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/44972
	* tree-sra.c: Include toplev.h.
	(build_ref_for_offset): Entirely reimplemented.
	(build_ref_for_model): New function.
	(build_user_friendly_ref_for_offset): New function.
	(analyze_access_subtree): Removed build_ref_for_offset check.
	(propagate_subaccesses_across_link): Likewise.
	(create_artificial_child_access): Use
	build_user_friendly_ref_for_offset.
	(propagate_subaccesses_across_link): Likewise.
	(ref_expr_for_all_replacements_p): Removed.
	(generate_subtree_copies): Updated comment.  Use build_ref_for_model.
	(sra_modify_expr): Use build_ref_for_model.
	(load_assign_lhs_subreplacements): Likewise.
	(sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
	checks for return values of build_ref_for_offset.
	* ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
	build_ref_for_offset.
	* ipa-prop.h: Include gimple.h
	* ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
	(ipa_analyze_indirect_call_uses): Update comment.
	* Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
	(IPA_PROP_H): Likewise.

2010-09-10  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/44972
	* ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
	calling build_ref_for_offset.

2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
	* config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
	* config/arm/arm-tune.md: Regenerate.
	* doc/invoke.texi (ARM Options): Document it.

2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>

	* config/i386/i386.c: Include sched-int.h.
	(TARGET_SCHED_DISPATCH): Defined.
	(TARGET_SCHED_DISPATCH_DO): Defined.
	(DISPATCH_WINDOW_SIZE): Defined.
	(MAX_DISPATCH_WINDOWS): Defined.
	(MAX_INSN): Defined.
	(MAX_IMM): Defined.
	(MAX_IMM_SIZE): Defined.
	(MAX_IMM_32): Defined.
	(MAX_IMM_64): Defined.
	(MAX_LOAD): Defined.
	(MAX_STORE): Defined.
	(BIG): Defined.
	(dispatch_group): New.
	(num_allowable_groups): New.
	(group_name): New.
	(sched_insn_info_s): New.
	(dispatch_windows_s): New.
	(imm_info_s): New.
	(dispatch_window_list): New.
	(dispatch_window_list1): New.
	(get_mem_group): New.
	(is_cmp): New.
	(dispatch_violation): New.
	(is_branch): New.
	(is_prefetch): New.
	(init_window): New.
	(allocate_window): New.
	(init_dispatch_sched): New.
	(is_end_basic_block): New.
	(process_end_window): New.
	(allocate_next_window): New.
	(find_constant_1): New.
	(find_constant): New.
	(get_num_immediates): New.
	(has_immediate): New.
	(get_insn_path): New.
	(get_insn_group): New.
	(count_num_restricted): New.
	(fits_dispatch_window): New.
	(add_insn_window): New.
	(add_to_dispatch_window): New.
	(debug_dispatch_window_file): New.
	(debug_dispatch_window): New.
	(debug_insn_dispatch_info_file): New.
	(debug_ready_dispatch): New.
	(do_dispatch): New.
	(has_dispatch): New.
	* config/i386/i386.h (debug_ready_dispatch): Declared.
	(debug_dispatch_window): Declared.
	* config/i386/i386.opt (mdispatch-scheduler): New flag.
	* doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
	(TARGET_SCHED_DISPATCH_DO): New.
	* doc/tm.texi: Regererated.
	* haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
	ready_remove_first_dispatch
	(schedule_block): Call targetm.sched.dispatch and
	targetm.sched.dispatch_do.
	(sched_init): Call targetm.sched.dispatch and
	targetm.sched.dispatch_do.
	(ready_remove_first_dispatch): New.
	(number_in_ready): New.
	(get_ready_element): New.
	* hooks.c (hook_bool_rtx_int_false): New.
	(hook_void_rtx_int): New.
	* hooks.h (hook_bool_rtx_int_false): Declared.
	(hook_void_rtx_int): Declared.
	* sched-int.h (IS_DISPATCH_ON): Defined.
	(IS_CMP): Defined.
	(DISPATCH_VIOLATION): Defined.
	(FITS_DISPATCH_WINDOW): Defined.
	(DISPATCH_INIT): Defined.
	(ADD_TO_DISPATCH_WINDOW): Defined.
	(get_ready_element): Declared.
	(number_in_ready): Declared.
	* target.def (dispatch): Defined.
	(dispatch_do): Defined.

2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/45312
	* reload1.c (merge_assigned_reloads): Remove.
	(reload_as_needed): Don't call it.

2010-09-09  Anatoly Sokolov  <aesok@post.ru>

	* config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
	(TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
	* config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.

2010-09-09  Matthias Klose  <doko@ubuntu.com>

	PR bootstrap/43847
	* configure.ac (--enable-plugin): Enhance for cross builds.
	* configure: Regenerate.

2010-09-09  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/45598
	* tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
	string folding is of integral type.

2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>

	* configure.ac (gnu_indirect_function): New test.
	* configure: Rebuilt.
	* config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
	* defaults.h (IFUNC_ASM_TYPE): Provide default.

	* doc/extend.texi (Function Attributes): Document ifunc.
	* varasm.c (do_assemble_alias): Deal with ifuncs too.

2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (picochip_reorg): Check for note_p for
	epilogue instruction move.

2010-09-09  Jan Hubicka  <jh@suse.cz>

	* collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
	command line to allow more partitions than input files.

2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/44554
	* ira.c (ira): Switch off sharing spill slots if setjmp is called.

2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/40386
	* ira.c (pseudo_for_reload_consideration_p): Don't use
	flag_ira_share_spill_slots.

2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
	point zero operands that fit into a single GPR.
	(s390_preferred_reload_class): Ensure we only return general-purpose
	register classes.
	* config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
	floating-point zero operands into GPRs.
	("*mov<mode>_64"): Likewise.
	("mov<mode>"): Likewise using lhi.

2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/s390/s390.c (s390_symref_operand_p): Return false for
	literal pool references.
	(s390_check_qrst_address): Update caller.

2010-09-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (ext_register_operand): Check that
	SUBREG_REG is really a register before looking for REGNO.
	(reg_not_xmm0_operand): Handle SUBREGs correctly.
	(nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.

2010-09-09  Jakub Jelinek  <jakub@redhat.com>

	* rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
	* rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
	* rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
	* print-rtl.c (print_rtx): Likewise.
	* cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
	* cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
	for ADDR_EXPR with non-addressable object.
	* dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
	(struct dw_val_struct): Add v.val_decl_ref.
	(dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
	Handle DW_OP_GNU_implicit_pointer.
	(size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
	(get_ref_die_offset_label): New function.
	(implicit_ptr_descriptor): New function.
	(mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
	(loc_descriptor): Likewise.
	(gen_variable_die): Put even definitions into decl_die_table.
	(resolve_addr_in_expr): Resolve still unresolved
	DW_OP_GNU_implicit_pointer operands, if it can't be resolved
	return false.
	(dwarf2out_finish): Call output_location_lists after outputting
	.debug_info and .debug_abbrev instead of before.

2010-09-09  Roland McGrath  <roland@redhat.com>

	* dwarf2out.c (DWARF_REF_SIZE): Define.
	(size_of_loc_descr): Use it for DW_OP_call_ref.

2010-09-09  Alan Modra  <amodra@gmail.com>

	* doc/invoke.text: Reinstate mcmodel=medium.
	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
	CMODEL_MEDIUM as default.
	* config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
	* config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
	(toc_relative_ok, offsettable_ok_by_alignment): New functions.
	(rs6000_emit_move): Reinstate mcmodel=medium optimization.

2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/45250
	* config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
	hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
	(builtin_longjmp): Likewise.
	(allocate_stack): Use hard_frame_pointer_rtx instead of
	frame_pointer_rtx.
	* config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
	* config/pa/pa.c (pa_internal_arg_pointer): Declare.
	(pa_can_eliminate): Likewise.
	(TARGET_INTERNAL_ARG_POINTER): Define.
	(TARGET_CAN_ELIMINATE): Define.
	(hppa_expand_prologue): Use hard frame pointer instead of soft frame
	pointer.
	(hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
	(pa_internal_arg_pointer, pa_can_eliminate,
	pa_initial_elimination_offset): New.
	* config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
	(HARD_FRAME_POINTER_REGNUM): Set to register three.
	(INITIAL_FRAME_POINTER_OFFSET): Delete.
	(ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
	Define.
	(DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
	REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
	* config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
	(FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
	REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
	new soft frame pointer.
	* config/pa/pa64-regs.h: Likewise.

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

	* config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
	numerical constant.
	(EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.

2010-09-08  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/45531
	* cfglayout.c (fixup_reorder_chain): Skip debug insns.

2010-09-08  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/45419
	PR debug/45408
	* tree-pretty-print.c (dump_generic_node): Disregard top-level
	qualifiers in otherwise equal MEM_REF pointer types.
	* fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
	* tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.

2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/44392
	* config/arm/arm.md (bswapsi2): Handle condition correctly
	for armv6 and optimize_size.

2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR other/18555
	* doc/cppopts.texi (-isysroot): Document Darwin behaviour.

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

	* config/i386/i386-protos.h (ix86_can_use_return_insn_p,
	symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
	ix86_expand_strlen, legitimate_pic_address_disp_p,
	ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
	ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
	ix86_check_movabs, ix86_secondary_memory_needed): Change function
	prototype to bool.
	* config/i386/i386.c (return_in_memory_32, return_in_memory_64,
	return_in_memory_ms_64, ix86_check_movabs,
	symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
	legitimate_pic_address_disp_p, ix86_binary_operator_ok,
	ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
	ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
	ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
	ix86_secondary_memory_needed): Change to bool.  Return
	"true" and "false" values.
	* config/i386/i386.md: Return "true" and "false" values.

2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/sourcebuild.texi (Effective-Target Keywords): Document
	run_expensive_tests.

2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* toplev.c (output_stack_usage): Use lbasename instead of basename.

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

	PR other/45443
	* doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
	at -O3.

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

	* gimple.c (gimple_types, type_hash_cache): Move to GC memory.
	(visit): Adjust.
	(iterative_hash_gimple_type): Likewise.
	(gimple_type_hash): Likewise.
	(gimple_register_type): Likewise.
	(print_gimple_types_stats): Likewise.
	(free_gimple_type_tables): Likewise.

2010-09-08  Michael Matz  <matz@suse.de>

	PR tree-optimization/43430
	* tree-vect-stmts.c (vectorizable_condition): Support multiple
	copies for conditional statements if it's not part of a reduction.

2010-09-08  Michael Matz  <matz@suse.de>

	PR tree-optimization/33244
	* tree-ssa-sink.c (statement_sink_location): Don't sink into
	empty loop latches.

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

	PR tree-optimization/45578
	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
	Be more careful when transfering alignment information to
	the new induction variable.
	(copy_ref_info): Likewise.

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

	* tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
	* c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.

2010-09-08  Arnaud Charlet  <charlet@adacore.com>

	* c-tree.h, c-decl.c (build_enumerator): Add location parameter.
	* c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.

2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>

	PR doc/45587
	* doc/md.texi: Fixed modes on several standard pattern names.

2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>

	* config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
	(ashl<mode>3): ...this.
	(loongson_psra<V_suffix>): Rename to...
	(ashr<mode>3): ...this.
	(loongson_psrl<V_suffix>): Rename to...
	(lshr<mode>3): ...this.
	* config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
	(CODE_FOR_loongson_psllw): Define.
	(CODE_FOR_loongson_psrlh): Define.
	(CODE_FOR_loongson_psrlw): Define.
	(CODE_FOR_loongson_psrah): Define.
	(CODE_FOR_loongson_psraw): Define.

2010-09-07  Richard Henderson  <rth@redhat.com>

	* tree-vect-data-refs.c: Include tm_p.h.
	* Makefile.in (tree-vect-data-refs.o): Update deps.
	* config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
	Move delarations outside #ifdef RTX_CODE.

2010-09-07  Richard Henderson  <rth@redhat.com>

	* final.c (rest_of_handle_final): Unconditionally do
	output_function_exception_table before assemble_end_function.

2010-09-07  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c (tree_inlinable_function_p): Do not test
	DECL_REPLACEABLE_P.
	* ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
	update_callee_keys, cgraph_decide_inlining): Test function availability.
	* cif-code.def (OVERWRITABLE): New code.

2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
	    Jack Howarth  <howarth@bromo.med.uc.edu>

	PR target/36502
	PR target/42313
	PR target/44651
	* config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
	profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
	(PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
	MAX macro.

2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>

	* unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
	Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.

2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc: Don't append t-android for Android targets.

	* config/t-android: Removed.

2010-09-07  Richard Henderson  <rth@redhat.com>

	* target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
	* doc/tm.texi.in: Add doc marker.
	* doc/tm.texi: Rebuild.
	* except.c (switch_to_exception_section): Always build.
	(output_one_function_exception_table): Move section switch,
	personality output, and label output ...
	(output_function_exception_table): ... here.  Use the new
	personality hook.

	* config/ia64/ia64.c (ia64_asm_emit_except_personality,
	ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
	TARGET_ASM_INIT_SECTIONS): New.
	(ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
	make static.
	(TARGET_ASM_UNWIND_EMIT): Update to match.
	* config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.

	* config/arm/arm.c (arm_asm_emit_except_personality): New.
	(arm_asm_init_sections): New.
	(TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.

2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.md: Remove unused variable.

2010-09-07  Anatoly Sokolov  <aesok@post.ru>

	* config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
	* config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
	(m32r_memory_move_cost): New function.

2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc: Append t-android for Android targets.

	* config/t-android: New.

2010-09-07  Richard Henderson  <rth@redhat.com>

	* target.def (unwind_emit_before_insn): New hook.
	* doc/tm.texi.in: Add @hook marker for it.
	* doc/tm.texi: Rebuild.
	* final.c (final_scan_insn): Respect unwind_emit_before_insn.

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

	PR fortran/43665
	* ipa-cp.c (ipcp_versionable_function_p): Return false if there
	are any type attributes.

2010-09-07  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
	array_ref_low_bound in string access folding.

2010-09-07  Uros Bizjak  <ubizjak@gmail.com>

	PR target/45206
	* config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
	eh_return fixup sequence.

2010-09-07  Jan Hubicka  <jh@suse.cz>

	* gimple-fold.c (maybe_fold_reference): Verify that operand is
	gimple_min_invariant.

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

	PR middle-end/45569
	* tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
	nor CONSTRUCTOR can trap.
	* tree-complex.c (update_complex_assignment): Update EH info.

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

	PR middle-end/45569
	* tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
	* passes.c (execute_function_todo): Do not verify anything if
	we saw errors.

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

	* tree-pretty-print.c (dump_generic_node): Dump void types as void.

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

	PR target/43137
	* config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
	New define_mode_attrs.
	* config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
	arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
	(zero_extend<mode>di2, extend<mode>di2 and related splits): New.
	(thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
	Remove pool_range attribute.
	(arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
	arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
	pool_range and neg_pool_range attributes.
	* config/arm/thumb2.md (thumb2_zero_extendsidi2,
	thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
	thumb2_extendhidi2, thumb2_extendqidi2): Delete.

2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
	check glibc.

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

	PR target/22152
	* config/i386/mmx.md (*mov<mode>_internal_rex64,
	*mov<mode>_internal_avx, *mov<mode>_internal,
	*movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
	*movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.

2010-09-06  Mark Mitchell  <mark@codesourcery.com>

	* c-typeck.c (do_warn_double_promotion): Remove.
	* doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
	Objective-C++ too.

2010-09-06  Anatoly Sokolov  <aesok@post.ru>

	* config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
	* config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
	* config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
	argument type to reg_class_t. Change result type to bool.
	(TARGET_CLASS_LIKELY_SPILLED_P): Define.

2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>

	PR libobjc/19850
	* gthr-posix.h (__gthread_objc_thread_detach): Use
	_objc_thread_attribs when detaching a thread.
	* gthr-posix95.h (__gthread_objc_thread_detach): Same change.

2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/45524
	* configure.ac (enable_decimal_float): Set to $default_decimal_float.
	* configure: Regenerated.

2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* combine.c (try_combine): Set subst_low_luid to i0.

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

	* tree.def (MISALIGNED_INDIRECT_REF): Remove.
	* tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
	(build_aligned_type): Declare.
	* tree.c (check_qualified_type): Also compare TYPE_ALIGN.
	(check_aligned_type): New function.
	(build_aligned_type): Likewise.
	* expr.c (expand_assignment): Handle misaligned stores via
	TARGET_MEM_REF and MEM_REF using movmisalign_optab.
	(expand_expr_real_1): Likewise.
	(safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
	* tree-vect-stmts.c (vectorizable_store): Do not build
	MISALIGNED_INDIRECT_REF but initialize alignment information.
	(vectorizable_load): Likewise.
	* builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
	handling.
	* cfgexpand.c (expand_debug_expr): Likewise.
	* dwarf2out.c (loc_list_from_tree): Likewise.
	* fold-const.c (maybe_lvalue_p): Likewise.
	(operand_equal_p): Likewise.
	(build_fold_addr_expr_with_type_loc): Likewise.
	* gimplify.c (gimplify_addr_expr): Likewise.
	(gimplify_expr): Likewise.
	* tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
	(verify_gimple_assign_single): Likewise.
	* tree-dump.c (dequeue_and_dump): Likewise.
	(tree_could_trap_p): Likewise.
	* tree-predcom.c (ref_at_iteration): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	(op_code_prio): Likewise.
	(op_symbol_code): Likewise.
	* tree-ssa-ccp.c (get_value_from_alignment): Likewise.
	* tree-ssa-loop-im.c (for_each_index): Likewise.
	(gen_lsm_tmp_name): Likewise.
	* tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
	(find_interesting_uses_address): Likewise.
	* tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
	(ao_ref_init_from_vn_reference): Likewise.
	* tree.c (staticp): Likewise.
	(build1_stat): Likewise.
	(reference_alias_ptr_type): Likewise.
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
	* config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
	MISALIGNED_INDIRECT_REF handling.

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

	PR tree-optimization/45534
	* tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
	(create_mem_ref): Do verify the created TARGET_MEM_REF is valid
	on the target.
	(maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
	valid on the target.

2010-09-06  Andreas Schwab  <schwab@redhat.com>

	* configure.ac: Quote argument of AC_MSG_WARN.
	* configure: Regenerate.

2010-09-06  Alexander Monakov  <amonakov@ispras.ru>

	* sel-sched.c (move_cond_jump): Correct arguments to
	maybe_tidy_empty_bb.
	* sel-sched-ir.c (maybe_tidy_empty_bb): Export.

2010-09-06  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/44919
	* sel-sched.c (move_cond_jump): Remove assert, check that
	the several blocks case can only happen with mutually exclusive
	insns instead.  Rewrite the movement code to support moving through
	several basic blocks.

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

	* config/i386/i386.md (iptrsize): New mode attribute.
	(tp_seg): Ditto.
	(*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
	mode iterator.
	(*add_tp_<mode>): Ditto from *add_tp_{si,di}.
	(stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
	(stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
	(stack_tls_protect_set_<mode>): Ditto from
	stack_tls_protect_set_{si,di}.  Use %@ to output segment register
	of thread base pointer load.
	(stack_tls_protect_test_<mode>): Ditto from
	stack_tls_protect_test_{si,di}.  Use %@ to output segment register
	of thread base pointer load.
	(stack_protect_set): Rewrite using indirect functions.
	(stack_protect_test): Ditto.
	* config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
	(ix86_print_operand): Handle '@'.

2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>

	* tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
	MINUS_EXPR.

2010-09-05  Mark Mitchell  <mark@codesourcery.com>

	* doc/invoke.texi: Document -Wdouble-promotion.
	* c-typeck.c (convert_arguments): Check for implicit conversions
	from float to double.
	(do_warn_double_promotion): New function.
	(build_conditional_expr): Use it.
	(build_binary_op): Likewise.

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

	PR tree-optimization/45535
	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
	handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
	dereferencing it.
	(indirect_refs_may_alias_p): Likewise.

2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>

	* config/sh/sh.c (sh_option_override): Make static.
	Adjust comments.  Declare.
	(sh_function_value_regno_p): Likewise.
	(sh_register_move_cost): Modify the arguments, make static.
	Adjust comments.  Declare.
	(TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
	TARGET_FUNCTION_VALUE_REGNO_P): Define.
	* config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
	REGISTER_MOVE_COST): Delete.
	* config/sh/sh-protos.h (sh_override_options): Delete.
	(sh_register_move_cost): Delete.
	(sh_function_value_regno_p): Delete.

2010-09-04  Anatoly Sokolov  <aesok@post.ru>

	* config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
	m32r_function_value_regno_p): New functions.
	(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
	TARGET_FUNCTION_VALUE_REGNO_P): Declare.
	* config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
	FUNCTION_VALUE_REGNO_P): Remove.

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

	* gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
	* tree-ssa-ccp.c (fold_const_aggregate_ref): Use
	fold_read_from_constant_string.

	* gimple.h (canonicalize_constructor_val): Declare.
	* gimple-fold.c (canonicalize_constructor_val): New function.
	(get_symbol_constant_value):Use it.
	* tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.

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

	* tree-switch-conversion.c (build_one_array): Set constructor to be
	static.
	* varpool.c (varpool_finalize_decl): Compute const_value_known.

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

	PR bootstrap/45519
	* tree-flow.h (force_gimple_operand_1): Declare.
	(force_gimple_operand_gsi_1): Likewise.
	* gimplify.c (force_gimple_operand_1): New worker taking a
	gimple predicate for ...
	(force_gimple_operand): ... which now wraps it.
	(force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
	* tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
	last change.
	* tree-ssa-address.c (gimplify_mem_ref_parts): Use
	force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
	(create_mem_ref): Likewise.

2010-09-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (sse_reg_operand): New predicate.
	* config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
	predicate for operand 1.
	(XFmode push splitter): Use fp_register_operand predicate
	for operand 1.
	(*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
	(SF-DF float_extend push splitter): Add reload_completed insn
	predicate.
	({SF,DF}-XF float_extend_push splitter): Macroize splitter using
	MODEF mode macro.  Add reload_completed insn predicate.

2010-09-04  Paolo Bonzini  <bonzini@gnu.org>

	* df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
	(struct df_extract_ref): Remove.
	(union df_ref_d): Remove extract_ref member.
	(df_ref_create): Remove last three arguments.
	(DF_REF_LOC): Remove DF_REF_EXTRACT case.
	* df-scan.c (df_ref_record): Remove last three arguments, do not
	pass them to df_ref_create_structure.
	(df_uses_record): Remove first and last three arguments.  Replace
	first argument with DF_REF_REGULAR, adjust calls to remove the
	width, offset and mode.  Always call recursively on the second
	and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
	(df_ref_create_structure): Remove first argument.
	(struct df_scan_problem_data): Remove ref_extract_pool.
	(df_scan_free_internal): Do not free it.
	(df_scan_alloc): Do not allocate it.
	(df_ref_create): Remove last three arguments, do not pass them to
	df_ref_create_structure.
	(df_free_ref): Remove DF_REF_EXTRACT case.
	(df_notes_rescan): Adjust call to df_uses_record.
	(df_ref_equal_p, df_ref_compare, df_ref_create_structure):
	Remove DF_REF_EXTRACT case.
	(df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
	Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
	and SUBREG definitions.
	(df_get_conditional_uses): Remove references to width/offset/mode,
	adjust call to df_ref_create_structure.
	(df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
	df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
	calls to df_uses_record and df_ref_record.
	* fwprop.c (update_df): Remove references to width/offset/mode,
	adjust call to df_ref_create.

2010-09-03  Jan Hubicka  <jh@suse.cz>

	* ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
	(build_cdtor_fns): Update use of build_cdtor.

2010-09-03  Joseph Myers  <joseph@codesourcery.com>

	* doc/options.texi (SeparateAlias): Document.
	* opt-functions.awk (switch_flags): Handle SeparateAlias.
	* opth-gen.awk: Generate enumeration names for options marked
	SeparateAlias, but not for those marked Ignore.
	* opts-common.c (generate_canonical_option): Don't output separate
	argument for options marked CL_SEPARATE_ALIAS.
	(decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
	* opts.h (CL_SEPARATE_ALIAS): New.
	(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
	CL_COMMON): Adjust definitions.
	* config/i386/darwin.opt, config/mips/sde.opt: New.
	* common.opt (fdump-final-insns): New.
	* config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
	i386/darwin.opt.
	(mips*-sde-elf*): Add mips/sde.opt.
	* config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
	-mno-data-in-code and -mcode-xonly here.
	* defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
	* gcc.c (option_map): Add "j" to --dump entry.
	(translate_options): Don't translate -d to -foutput-class-dir= here.

2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
	DR_IS_WRITE.
	(compute_all_dependences): Same.
	(create_rdg_edge_for_ddr): Same.
	* tree-data-ref.h (DR_IS_WRITE): New.
	(ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
	* tree-if-conv.c (write_memrefs_written_at_least_once): Same.
	(write_memrefs_written_at_least_once): Same.
	* tree-predcom.c (suitable_component_p): Same.
	(determine_roots_comp): Same.
	(execute_load_motion): Same.
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
	(vect_enhance_data_refs_alignment): Same.
	(vect_analyze_group_access): Same.

2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR testsuite/42843
	* Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
	(PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@

2010-09-03  Marcin Baczynski  <marbacz@gmail.com>

	* dwarf2out.c (file scope): Remove #if0'd code.
	(gen_subprogram_die): Same.

2010-09-03  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/45484
	* dwarf2out.c (flush_queued_reg_saves): Rename to...
	(dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
	(dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
	* dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
	* config/i386/i386.c (output_set_got): Call it.

2010-09-03  Michael Matz  <matz@suse.de>

	PR middle-end/45415
	* tree-sra.c (sra_modify_assign): If we modify the statement,
	say so.

	* tree-ssa.c (verify_ssa): Check number of operands and links
	per statement to agree.

2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
	    Iain Sandoe  <iains@gcc.gnu.org>

	PR target/45476
	* config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
	* config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
	LIBGCC2_TF_CEXT, TF_SIZE): New defines.

2010-09-03  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-out.c (output_function): Output function
	start and end loci.
	* lto-streamer-in.c (input_function): Input function start
	and end loci.

2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
	* Makefile.in: Add aclocal.m4 dependency to dfp.m4.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.

2010-09-03  Jan Hubicka  <jh@suse.cz>

	PR lto/44812
	* lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
	on functions/variables in other partition.

2010-09-03  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (struct varpool_node): Add const_value_known.
	(varpool_decide_const_value_known): Declare.
	* tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
	* lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
	(input_varpool_node): Restore const_value_known.
	* tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
	initializer folding.
	* ipa.c (ipa_discover_readonly_nonaddressable_var,
	function_and_variable_visibility): Compute const_value_known.
	* gimple-fold.c (get_symbol_constant_value): Use varpool for
	initializer folding.
	* varpool.c (varpool_decide_const_value_known): New function.

2010-09-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md: Remove empty preparation statements
	from splitters.

2010-09-03  Jan Hubicka  <jh@suse.cz>

	* passes.c (rest_of_decl_compilation): Do not add local vars into
	varpool.
	* varpool.c (varpool_get_node, varpool_node): Sanity check that only
	static or extern vars are in varpool.
	(varpool_finalize_decl): Sanity check that only static vars are
	finalized.

2010-09-03  Jakub Jelinek  <jakub@redhat.com>

	PR debug/45500
	* dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
	not just generic vectors with BLKmode.

2010-09-03  Richard Guenther  <rguenther@suse.de>

	* tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
	Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
	* tree.h (TMR_SYMBOL): Remove.
	(TMR_BASE, TMR_OFFSET): Adjust.
	(TMR_INDEX2): New.
	* alias.c (ao_ref_from_mem): Use TMR_BASE.
	* builtins.c (get_object_alignment): Merge TMR_BASE and
	TMR_SYMBOL handling.
	* cfgexpand.c (expand_debug_expr): Use TMR_BASE.
	* gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
	handling.  Also allow TARGET_MEM_REF as base address.
	(walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
	* gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
	base.  Gimplify TMR_INDEX2.
	* tree-cfg.c (verify_types_in_gimple_reference): Adjust.
	* tree-dfa.c (get_ref_base_and_extent): Likewise.
	(get_addr_base_and_unit_offset): Likewise.
	* tree-eh.c (tree_could_trap_p): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
	(create_mem_ref_raw): Merge symbol and base.  Move 2ndary
	base to index2.
	(get_address_description): Reconstruct addres description
	from merged TMR_BASE and TMR_INDEX2.
	(maybe_fold_tmr): Fold propagated addresses.
	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
	MEM_REF and TARGET_MEM_REF paths.
	(indirect_refs_may_alias_p): Likewise.
	* tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
	instead of TMR_SYMBOL.
	* tree-ssa-operands.c (get_tmr_operands): Simplify.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
	according to changes ...
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
	Split TARGET_MEM_REF into two fields plus the base.
	* tree.c (mem_ref_offset): Simplify.
	* tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
	* tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
	Strip NOPs when folding MEM_REF addresses.
	* tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
	* gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
	(fold_gimple_assign): ... not here.

2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>

	* config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
	* config/mips/mips.c (mips_shift_truncation_mask): New function.
	(TARGET_SHIFT_TRUNCATION_MASK): Define.

2010-09-02  Richard Henderson  <rth@redhat.com>

	* configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
	instead of readelf in the test.
	(gcc_cv_as_cfi_sections_directive): Check for correct relocation
	in the .debug_frame section for coff targets.
	* configure: Rebuild.

2010-09-02  Anatoly Sokolov  <aesok@post.ru>

	* config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
	* config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
	* config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
	(m32c_class_likely_spilled_p): Make static. Change argument type to
	reg_class_t. Change result type to bool.

2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.opt (-mfriz): New switch to control whether
	to convert (double)(long) into a single FRIZ instruction or not
	when -ffast-math is used.

	* config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
	(vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
	or FRIZ instruction if -ffast-math.
	* config/rs6000/rs6000.md (friz): Ditto.

	* doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.

2010-09-02  Joseph Myers  <joseph@codesourcery.com>

	* opth-gen.awk (quote, comma): Remove unused variables.

2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>

	* arm.c (arm_override_options): Correct fall-back code to use
	SUBTARGET_CPU_DEFAULT.

2010-09-02  Julian Brown  <julian@codesourcery.com>

	* config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
	unspecs.
	(vcond<mode>, vcondu<mode>): New expanders.
	(neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
	comparisons with zero.
	(neon_vcle<mode>, neon_vclt<mode>): New patterns.
	* config/arm/constraints.md (Dz): New constraint.

2010-09-02  Anatoly Sokolov  <aesok@post.ru>

	* target.def (class_likely_spilled_p): New hook.
	* doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_class_likely_spilled_p): New function.
	* targhooks.h (default_class_likely_spilled_p): Declare.
	* regs.h (CLASS_LIKELY_SPILLED_P): Remove.
	* combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
	TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
	Use fixed_reg_set instead of fixed_regs.
	* cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
	* calls.c (avoid_likely_spilled_reg): Ditto.
	* ira-conflicts.c (ira_build_conflicts): Ditto.
	* ira.c (update_equiv_regs): Ditto.
	* mode-switching.c (create_pre_exit): Ditto.
	* regmove.c (find_matches): Ditto.
	(regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
	* reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
	(small_register_class_p): New inline function.
	(push_secondary_reload, find_reusable_reload, find_reloads): Use
	small_register_class_p instead of SMALL_REGISTER_CLASS_P.

	* config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
	* config/i386/i386.c (ix86_class_likely_spilled_p): New.
	(TARGET_CLASS_LIKELY_SPILLED_P): Define.

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

	PR tree-optimization/44937
	PR tree-optimization/45412
	* ipa-split.c (split_function): Properly remove PHI nodes.

2010-09-02  Joseph Myers  <joseph@codesourcery.com>

	* opts.h (struct cl_option): Add warn_message field.
	(struct cl_decoded_option): Add warn_message field.
	* doc/options.texi (Ignore, Warn): Document.
	* opt-functions.awk (needs_state_p): Don't consider aliases or
	ignored options to need state saved.
	* optc-gen.awk: Handle Warn and Ignore.
	* opth-gen.awk: Output OPT_SPECIAL_ignore.
	* opts-common.c (decode_cmdline_option): Set warn_message field.
	Handle ignored options.
	(decode_cmdline_options_to_array, generate_option,
	generate_option_input_file): Set warn_message field.
	(read_cmdline_option): Generate warnings from warn_message field.
	Handle ignored options.
	* common.opt (Wunreachable-code, fargument-alias,
	fargument-noalias, fargument-noalias-global,
	fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
	floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
	fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
	ftree-salias): Mark Ignore.
	* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
	-mintel-syntax and -mno-intel-syntax here.
	* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
	using Warn.
	* opts.c (common_handle_option): Don't handle options marked as
	ignored.
	(enable_warning_as_error): Handle ignored options.

2010-09-02  Joseph Myers  <joseph@codesourcery.com>

	PR driver/44076
	* opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
	alias_target fields.
	* opt-functions.awk (opt_sanitized_name): Don't handle
	finline-limit=, Wlarger-than= and ftemplate-depth= specially.
	* optc-gen.awk: Generate alias fields.
	* opth-gen.awk: Explicitly give values for OPT_* enum constants.
	Don't generate such constants for aliases.
	* opts-common.c (generate_canonical_option): New.
	(decode_cmdline_option): Handle aliases.  Use
	generate_canonical_option for known options instead of copying the
	input option text.
	* doc/options.texi (Alias): Document.
	* common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
	fstack-check, specs): Mark as aliases.
	* gcc.c (driver_handle_option): Canonicalize -L options to joined
	arguments.
	(driver_handle_option): Don't handle OPT_specs.
	* opts.c (common_handle_option): Don't handle options marked as
	aliases.
	(enable_warning_as_error): Handle aliases.
	* stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
	OPT_Wlarger_than_eq.
	* tree-optimize.c (tree_rest_of_compilation): Use
	OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.

2010-09-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (nonmemory_operand): New mode attribute.
	(push memory peephole2): Macroize peepholes using SWI mode iterator.
	(move immediate to memory peephole2): Macroize peepholes using
	SWI124 mode iterator.
	(non-pairable NOT peephole2): Macroize peepholes using SWI124
	mode iterator.
	(simple lea add peephole2): Macroize peepholes using SWI48
	mode iterator.
	(simple lea mult peephole2): Ditto.
	(imul by 3,5,9 to lea peephole2): Ditto.
	(mov $-1, reg peephole2): Macroize peepholes using SWI248
	mode iterator.
	(imul $32bit_imm,mem,reg peephole2): Ditto.
	(imul $8/16bit_imm,regmem,reg peephole2): Ditto.

2010-09-02  Ian Bolton  <ian.bolton@arm.com>

	* tree-ssa-loop-prefetch.c: Fix comment at head of file.

2010-09-02  Olivier Hainque  <hainque@adacore.com>

	PR middle-end/44763
	* ira-color.c (SORTGT): New macro, helper for qsort callbacks.
	(allocno_priority_compare_func): Use it instead of a straight
	difference computation over priorities.

2010-09-02  Andi Kleen  <ak@linux.intel.com>

	* opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.

2010-09-02  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.h (get_later_stmt): New function.
	(vect_analyze_data_ref_dependences): Add argument.
	* tree-vect-loop.c (vect_analyze_loop): Update call to
	vect_analyze_data_ref_dependences.
	* tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
	New function.
	(vect_analyze_data_ref_dependence): Add argument for basic block
	dependencies. Check dependencies in basic block vectorization.
	(vect_analyze_data_ref_dependences): Add argument and update call to
	vect_analyze_data_ref_dependences.
	* tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
	(vect_bb_vectorizable_with_dependencies): New.
	(vect_slp_analyze_bb): Check dependencies in basic block.
	(vect_schedule_slp_instance): Insert stores before the last store in
	SLP instance.

2010-09-02  Uros Bizjak  <ubizjak@gmail.com>

	PR target/45476
	* config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
	LIBGCC2_TF_CEXT, TF_SIZE): New defines.

2010-09-01  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/45458
	* bb-reorder.c (add_labels_and_missing_jumps): Treat
	bbs ending with throwing insns like blocks ending with a call.
	(fix_up_fall_thru_edges): Likewise.

2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>

	* config/m32c/m32c-protos.h (m32c_function_arg): Delete.
	(m32c_function_arg_advance): Delete.
	* config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
	comments.  Take a const_tree and a bool.  Declare.
	(m32c_function_arg_advance): Likewise.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-09-01  Uros Bizjak  <ubizjak@gmail.com>

	PR target/45476
	* config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
	LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
	* config/i386/mingw32.h: ... here.

2010-09-01  Andi Kleen	<ak@linux.intel.com>

	PR lto/45475
	* lto-streamer-in.c (lto_input_ts_target_option): Add.
	(lto_input_tree_pointers): Call lto_input_ts_target_option.
	* lto-streamer-out (lto_output_ts_target_option): Add.
	(lto_output_tree_pointers): Call lto_output_ts_target_option.

2010-09-01  Kai Tietz  <kai.tietz@onevision.com>

	PR/target 45452
	* config/i386/cygwin.h: Change order of specified import libraries.
	* config/i386/mingw32.h: Likewise.
	* config/i386/t-cygwin: Likewise.
	* config/i386/t-mingw32: Likewise.
	* config/i386/t-mingw-w32: Likewise.
	* config/i386/t-mingw-w64: Likewise.

2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/neon-schedgen.ml (core): New type.
	(allCores): List of supported cores.
	(availability_table): Add supported cores.
	(collate_bypasses): Accept core as a parameter.
	(worst_case_latencies_and_bypasses): Accept core as a parameter.
	(emit_insn_reservations): Accept core as a parameter.  Use tuneStr
	and coreStr to get tune attribute and prefix for functional units.
	(emit_bypasses): Accept core name and use it.
	(calculate_per_core_availability_table): New.
	(filter_core): New.
	(calculate_core_availability_table): New.
	(main): Use calculate_core_availablity_table.
	* config/arm/cortex-a8-neon.md: Update copyright year.
	Regenerated from ml file and merged in.
	(neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
	cortex_a8_neon_mrc.

2010-09-01  Ian Bolton  <ian.bolton@arm.com>

	* Makefile.in (tree-switch-conversion.o): Update dependencies.

2010-09-01  Richard Guenther  <rguenther@suse.de>

	* alias.c (ao_ref_from_mem): Adjust.
	* builtins.c (get_object_alignment): Likewise.
	* cfgexpand.c (expand_debug_expr): Likewise.
	* gimple.c (get_base_address): Likewise.
	* tree-dfa.c (get_ref_base_and_extent): Likewise.
	(get_addr_base_and_unit_offset): Likewise.  Fix for
	both TMR_SYMBOL and TMR_BASE being set.
	* tree-eh.c (tree_could_trap_p): Likewise.
	* gimplify.c (gimplify_expr): Do not attempt to gimplify
	TMR_SYMBOL.  Always gimplify TMR_BASE.
	* tree-cfg.c (verify_types_in_gimple_reference): Verify
	TMR_BASE if there is a TMR_SYMBOL.
	* tree-pretty-print.c (dump_generic_node): Adjust.
	* tree-ssa-address.c (addr_for_mem_ref): Likewise.
	(tree_mem_ref_addr): Likewise.
	(create_mem_ref_raw): Likewise.
	(move_fixed_address_to_symbol): Likewise.
	(create_mem_ref): Likewise.
	(dump_mem_address): Likewise.
	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
	Fix for both TMR_SYMBOL and TMR_BASE being set.
	(indirect_refs_may_alias_p): Likewise.
	* tree-ssa-operands.c (get_tmr_operands): Adjust.
	* tree.def (TARGET_MEM_REF): Adjust documentation.

2010-09-01  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
	Rename from X86_TUNE_ADD_ESP_4.
	<IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
	<IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
	<IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
	(TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
	(TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
	(TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
	(TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
	* config/i386/i386.c (initial_ix86_tune_features)
	<X86_TUNE_SINGLE_POP>: Invert members.
	<X86_TUNE_DOUBLE_POP>: Ditto.
	<X86_TUNE_SINGLE_PUSH>: Ditto.
	<X86_TUNE_DOUBLE_PUSH>: Ditto.
	* config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
	No longer exported.
	(push peephole2 patterns): Macroize peepholes using P mode iterator.
	Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
	(pop peephole2 patterns): Macroize peepholes using P mode iterator.
	Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.

2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_init_constructor): Do not create a temporary for
	a volatile LHS if the constructor has only one element.

2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>

	PR bootstrap/45321
	* tree.c (stdarg_p): Make fntype parameter const.
	* tree.h (stdarg_p): Likewise.
	(function_args_iterator): Remove unused fntype field.
	(function_args_iter_init): Do not initialize fntype
	field.  Make fntype parameter const.

2010-09-01  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (adjust_range_with_scev): Use number of iteration
	estimate.
	(vrp_visit_phi_node): Delay using SCEV till we balloon the range.
	(execute_vrp): Compute number of iteration estimates.
	* cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
	* tree-flow.h (estimate_numbers_of_iterations): Likewise.
	* tree-data-ref.c (estimated_loop_iterations): Adjust.
	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
	Infer loop bounds from undefined behavior based on a new parameter.
	(estimate_numbers_of_iterations): Likewise.
	(scev_probably_wraps_p): Adjust.
	* tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.

2010-09-01  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
	where appropriate.
	(xstormy16_legitimate_address_p): Use true and false instead of 1
	and 0.
	(xstormy16_expand_prologue): Delete unused local variable 'insn'.
	(xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
	magic constant 2.
	(xstormy16_expand_call): Fix comment at start of function.

2010-09-01  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
	when pushing accumulator register.
	(rx_get_stack_layout): Always save call clobbered registers inside
	interrupt handlers.
	* config/rx/rx-modes.def: Fix descriptive comment at start of file.

2010-09-01  Uros Bizjak  <ubizjak@gmail.com>

	* config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
	i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.

	* libgcc-std.ver (GCC_4.6.0): Define version.

2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-nested.c (convert_all_function_calls): Iterate until after the
	sum of static chains in the nest doesn't change.

2010-08-31  Anatoly Sokolov  <aesok@post.ru>

	* config/m32c/m32c.c (classes_intersect): Remove.
	(m32c_preferred_reload_class, m32c_secondary_reload_class): Use
	reg_classes_intersect_p instead of classes_intersect.
	(class_can_hold_mode): Change arguments type from enum reg_class to
	reg_class_t.  Use reg_class_contents instead of class_contents.
	(m32c_register_move_cost): Make static. Change arguments type from
	enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
	classes_intersect. Use reg_class_contents instead of class_contents.
	(m32c_memory_move_cost): Make static. Change arguments type from
	enum reg_class to reg_class_t.
	(TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
	* config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
	* config/m32c/m32c-protos.h (m32c_register_move_cost,
	m32c_memory_move_cost): Remove.

2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>

	* config/arm/arm-protos.h (arm_function_arg_advance): Delete.
	(arm_function_arg): Delete.
	(arm_needs_doubleword_align): Take a const_tree.
	* config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
	(aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
	(arm_function_arg): Make static.  Take a const_tree and a bool.
	(arm_function_arg_advance): Likewise.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-08-31  Andi Kleen  <ak@linux.intel.com>

	* common.opt (fwhopr=): Update for -fwhopr=jobserver
	* doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
	* lto-wrapper.c (run_gcc): Add jobserver mode.
	* opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
	argument.

2010-08-31  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
	(popsi1): Ditto.
	(*popdi1_epilogue): Ditto.
	(*popsi1_epilogue): Ditto.
	(popsi, popdi peephole2 patterns): Update peepholes for changed
	pop{si,di}1 and *pop{si,di}1_epilogue patterns.

	(pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
	(*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.

	* config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
	(override_options): Do not initialize removed ix86_gen_pop1.
	(gen_pop): New static function.
	(ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
	(release_scratch_register_on_entry): Ditto.
	(ix86_restore_reg_using_pop): Ditto.
	(ix86_expand_epilogue): Ditto.

2010-08-31  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/45461
	* builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.

2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>

	* config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
	semicolons.

2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* doc/extend.texi: Fix documentation of the return value of
	__builtin_choose_expr.

2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>

	* config/v850/v850-protos.h (function_arg): Delete.
	* config/v850/v850.h (FUNCTION_ARG): Delete.
	(FUNCTION_ARG_ADVANCE): Move code to...
	* config/v850/v850.c (v850_function_arg_advance): ...here.
	(v850_function_arg): Make static.  Take a const_tree and a bool.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>

	* config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
	these...
	(ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
	...and these...
	* config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
	..to here..
	(ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
	...and here.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
	Delete.
	* config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/rx/rx.c (rx_function_arg_size): Make static.
	(rx_function_arg): Likewise.
	(rx_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-08-31  John Tytgat  <John.Tytgat@aaug.net>

	* config/arm/arm.c (arm_override_options): Remove superfluous test.
	Fix indentation.

2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
	(dwarf2out_decl) <CONST_DECL>: Likewise.

2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>

	Stack usage support
	* common.opt (-fstack-usage): New option.
	* doc/invoke.texi (Debugging options): Document it.
	* builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
	allocate_dynamic_stack_space.
	(expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
	and propagate it to allocate_dynamic_stack_space.
	(expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
	* calls.c (initialize_argument_information): Pass TRUE as 4th
	argument to allocate_dynamic_stack_space.
	(expand_call): Set current_function_has_unbounded_dynamic_stack_size
	to 1 when pushing a variable-sized argument onto the stack.  Pass
	TRUE as 4th argument to allocate_dynamic_stack_space.
	Update current_function_pushed_stack_size.
	(emit_library_call_value_1): Likewise.
	* explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
	CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
	attempt to find an upper bound.  Remove redundant code for the
	SETJMP_VIA_SAVE_AREA case.
	* expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
	* function.h (struct stack_usage): New structure.
	(current_function_static_stack_size): New macro.
	(current_function_dynamic_stack_size): Likewise.
	(current_function_pushed_stack_size): Likewise.
	(current_function_dynamic_alloc_count): Likewise.
	(current_function_has_unbounded_dynamic_stack_size): Likewise.
	(current_function_allocates_dynamic_stack_space): Likewise.
	(struct function): Add new field 'su'.
	* function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
	add the value of the dynamic offset to the dynamic stack usage.
	(gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
	for variable-sized objects.
	(prepare_function_start): Allocate cfun->su if flag_stack_usage.
	(rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
	* gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
	BUILT_IN_ALLOCA for variable-sized objects.
	* output.h (output_stack_usage): Declare.
	* toplev.c (stack_usage_file): New file pointer.
	(output_stack_usage): New function.
	(open_auxiliary_file): Likewise.
	(lang_dependent_init): Open file if flag_stack_usage is set.
	(finalize): Close file if stack_usage_file is not null.
	* tree.h (ALLOCA_FOR_VAR_P): New macro.
	* config/alpha/alpha.c (compute_frame_size): New function.
	(alpha_expand_prologue): Use it.
	(alpha_start_function): Likewise.
	(alpha_expand_epilogue): Likewise.  Set stack usage info.
	* config/i386/i386.c (ix86_expand_prologue): Likewise.
	* config/ia64/ia64.c (ia64_expand_prologue): Likewise.
	* config/mips/mips.c (mips_expand_prologue): Likewise.
	* config/pa/pa.c (hppa_expand_prologue): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
	* config/sparc/sparc.c (sparc_expand_prologue): Likewise.

2010-08-30  Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/45427
	* tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
	Handle the case that the exit is never taken correctly.
	(number_of_iterations_ne): Pass exit_must_be_taken to
	number_of_iterations_ne_max.

2010-08-30  Catherine Moore  <clm@codesourcery.com>

	* config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
	Infer -mdspr2 for the the 74K.

2010-08-30  Jakub Jelinek  <jakub@redhat.com>

	PR debug/45419
	* tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.

	PR middle-end/45423
	* gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
	and TRUTH_{AND,OR,XOR}_EXPR.
	* c-parser.c (c_parser_omp_atomic): Handle boolean
	{PRE,POST}_{INC,DEC}REMENT.

2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>

	* config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
	(function_arg): Delete.
	* config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	(FUNCTION_INCOMING_ARG): Delete.
	* config/xtensa/xtensa.c (function_arg_advance): Rename to...
	(xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
	and a bool.
	(function_arg): Rename to...
	(xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
	a bool.
	(xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
	(TARGET_FUNCTION_INCOMING_ARG): Define.

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

	PR tree-optimization/21602
	* builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
	using points-to information.

2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>

	* config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.

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

	PR tree-optimization/45449
	* tree-ssa-live.c (remove_unused_locals): Also remove address-taken
	variables.

2010-08-30  Joseph Myers  <joseph@codesourcery.com>

	* opts.h (CL_ERR_NEGATIVE): Define.
	* opts.c (unknown_option_callback): Don't postpone warnings for
	options marked with CL_ERR_NEGATIVE.
	* opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
	for negative versions of CL_REJECT_NEGATIVE options.

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

	* config/i386/i386.md (zero_extendsidi2_1): Rename from
	zero_extendsidi2_32.
	(zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
	using SWI12 mode iterator.
	(zero_extendhisi2_and): Merge insn pattern and corresponding spliter
	to define_insn_and_split pattern.
	(zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
	using SWI24 mode iterator.
	(*zero_extendqi<mode>2_and): Macroize insn from
	*zero_extendqi{hi,si}2_and using SWI24 mode iterator.
	(*zero_extendqi<mode>2_movzbl_and): Macroize insn from
	*zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
	SWI24 mode iterator.
	(*zero_extendqi<mode>2_movzbl): Ditto from
	*zero_extendqi{hi,si}2_movzbl.
	(extendsidi2_1): Rename from extendsidi2_32.
	(extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
	SWI12 mode iterator.

2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>

	* config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
	general purpose registers.
	(HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
	* config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
	with general purpose registers and memory operands.  Add associated
	CCImode post-reload splitter.
	* config/ia64/div.md: Change BImode to CCImode throughout.

2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>

	* config/ia64/ia64.md (cstorebi4): Fix thinko.

2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (reorder_var_tracking_notes): This
	function was dropping debug insns which caused PR45299.

2010-08-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (extsuffix): New code attribute.
	(sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
	and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
	(sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
	and sse4_1_zero_extendv4qiv4si2.
	(sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
	and sse4_1_zero_extendv2qiv2di2.
	(sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
	and sse4_1_zero_extendv4hiv4si2.
	(sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
	and sse4_1_zero_extendv2hiv2di2.
	(sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
	and sse4_1_zero_extendv2siv2di2

	(<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
	using any_extend code iterator.
	(*avx_<s>mulv8hi3_highpart): Macroize insn from
	*avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
	(*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.

	* config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
	gen_sse4_1_sign_extend* functions.
	(struct builtin_description bdesc_args): Ditto.

2010-08-27  Xinliang David Li  <davidxl@google.com>

	PR/45422
	* tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
	(iv_ca_set_no_cp): Update used inv expr count.
	(iv_ca_set_cp): Ditto.
	(iv_ca_new): Initialize new member.
	(iv_ca_free): Free memory.

2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>

	* config/sh/sh-protos.h (sh_function_arg): Delete.
	(sh_function_arg_advance): Delete.
	* config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	(PASS_IN_REG_P): Eliminate cast.
	* config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
	const_tree and a bool.
	(sh_function_arg): Likewise.
	(sh_output_mi_thunk): Call sh_function_arg_advance) and
	sh_function_arg.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (push_regs): Emit movml for interrupt handler
	when possible.
	(sh_expand_epilogue): Likewise.
	* config/sh/sh.md (movml_push_banked): New insn.
	(movml_pop_banked): Likewise.

2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>

	* genautomata.c (gen_regexp_repeat, gen_regexp_allof,
	gen_regexp_oneof, gen_regexp_sequence): Use the string found
	in vector element 0 rather than the original string when there's
	only one element.
	(gen_regexp): Remove extra semicolon.

	* config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
	thumb2_movsf_vfp): Set attribute "insn".
	* config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
	not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
	thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
	arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
	arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
	thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
	thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
	movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
	if_not_move, if_shift_move, if_move_shift, if_shift_shift,
	if_not_arith, if_arith_not, cond_move_not): Likewise.

2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
	New declaration.
	(rs6000_allocate_stack_temp): Ditto.
	(rs6000_expand_convert_si_to_sfdf): Ditto.

	* config/rs6000/rs6000.c (rs6000_override_options): Adjust long
	line.  Update the options set if power6 or power7 server/embedded
	type options are used.  If we give a warning for no vsx under
	-mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
	(rs6000_allocate_stack_temp): New function to allocate a stack
	tempoary and adjust the address so it meets either REG+OFFSET or
	REG+REG addressing requirements.
	(rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
	that they can be used with the LFIWAX/LFIWZX instrucitons.
	(rs6000_expand_convert_si_to_sfdf): New helper funciton for
	converting signed/unsigned SImode to either SFmode/DFmode.

	* config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
	whether certain instructions can be generated.
	(TARGET_FCTIDZ): Ditto.
	(TARGET_STFIWX): Ditto.
	(TARGET_LFIWAX): Ditto.
	(TARGET_LFIWZX): Ditto.
	(TARGET_FCFIDS): Ditto.
	(TARGET_FCFIDU): Ditto.
	(TARGET_FCFIDUS): Ditto.
	(TARGET_FCTIDUZ): Ditto.
	(TARGET_FCTIWUZ): Ditto.

	* config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
	(UNSPEC_FCTID): Ditto.
	(UNSPEC_LFIWAX): Ditto.
	(UNSPEC_LFIWZX): Ditto.
	(UNSPEC_FCTIWUZ): Ditto.
	(rreg): Use correct constraints.
	(SI_CONVERT_FP): New mode attribute for floating point conversion
	tests.
	(E500_CONVERT): Ditto.
	(lfiwax): New insns for converting from integer to floating point
	utilizing newer instructions.  Attempt to optimize conversions
	that come from memory so that we don't load the value into a GPR,
	spill it to the stack and reload it into a FPR.
	(floatsi<mode>2_lfiwax): Ditto.
	(floatsi<mode>2_lfiwax_mem): Ditto.
	(floatsi<mode>2_lfiwax_mem2): Ditto.
	(lfiwzx): Ditto.
	(floatunssi<mode>2_lfiwzx): Ditto.
	(floatunssi<mode>2_lfiwzx_mem): Ditto.
	(floatunssi<mode>2_lfiwzx_mem2): Ditto.
	(floatdidf2_mem): Ditto.
	(floatunsdidf2_fcfidu): Ditto.
	(floatunsdidf2_mem): Ditto.
	(floatunsdisf2): Ditto.
	(floatunsdisf2_fcfidus): Ditto.
	(floatunsdisf2_mem): Ditto.
	(floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
	Use FCFID on 32-bit hosts that support it.
	(floatsidf2_internal): Ditto.
	(floatunssisf2): Ditto.
	(floatunssidf2): Ditto.
	(floatunssidf2_internal): Ditto.
	(floatsisf2): Ditto.
	(floatdidf2): Ditto.
	(floatdidf2_fpr): Ditto.
	(floatunsdidf2): Ditto.
	(floatdisf2): Ditto.
	(floatdisf2_fcfids): Ditto.
	(floatdisf2_internal1): Ditto.
	(fixuns_truncsfsi2): Delete, merge into common pattern for both
	SF/DF.  Add power7 support.
	(fix_truncsfsi2): Ditto.
	(fixuns_truncdfsi2): Ditto.
	(fixuns_truncdfdi2): Ditto.
	(fix_truncdfsi2): Ditto.
	(fix_truncdfsi2_internal): Ditto.
	(fix_truncdfsi2_internal_gfxopt): Ditto.
	(fix_truncdfsi2_mfpgpr): Ditto.
	(fctiwz): Ditto.
	(btruncdf2): Ditto.
	(btruncdf2_fpr): Ditto.
	(btructsf2): Ditto.
	(ceildf2): Ditto.
	(ceildf2_fpr): Ditto.
	(ceilsf2): Ditto.
	(floordf2): Ditto.
	(floordf2_fpr): Ditto.
	(floorsf2): Ditto.
	(rounddf2): Ditto.
	(rounddf2_fpr): Ditto.
	(roundsf2): Ditto.
	(fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
	(fix_trunc<mode>di2): Ditto.
	(fixuns_trunc<mode>si2): Ditto.
	(fixuns_trunc<mode>di2): Ditto.
	(fctiwz_<mode>): Ditto.
	(btrunc<mode>2): Ditto.
	(btrunc<mode>2_fpr): Ditto.
	(ceil<mode>2): Ditto.
	(ceil<mode>2_fpr): Ditto.
	(floor<mode>2): Ditto.
	(float<mode>2_fpr): Ditto.
	(round<mode>2): Ditto.
	(round<mode>2_fpr): Ditto.
	(fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
	(fixuns_trunc<mode>si2_stfiwx): Ditto.
	(fix_truncdfsi2_internal): Ditto.
	(fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
	converted value on stack, loaded into GPR, and then stored into
	the final destination.
	(fix_trunc<mode>di2_fctidz): New pattern for targets supporting
	FCTIDZ.
	(lrint<mode>di2): New insn, provide the lrint builtin functions.
	(ftruncdf2): Delete, unused.
	(fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.

	* config/rs6000/vsx.md (toplevel): Update copyright year.
	(VSr2): Use "ws" contraint for DFmode, not "!r#r".
	(VSr3): Ditto.

2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
	    Jeremie Salvucci  <jeremie.salvucci@free.fr>

	* gengtype.c (output_type_enum): Test the right union member.

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

	PR target/41484
	* config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
	operands for operand 1.
	(sse4_1_extendv4qiv4si2): Ditto.
	(sse4_1_extendv2qiv2di2): Ditto.
	(sse4_1_extendv4hiv4si2): Ditto.
	(sse4_1_extendv2hiv2di2): Ditto.
	(sse4_1_extendv2siv2di2): Ditto.
	(sse4_1_zero_extendv8qiv8hi2): Ditto.
	(sse4_1_zero_extendv4qiv4si2): Ditto.
	(sse4_1_zero_extendv2qiv2di2): Ditto.
	(sse4_1_zero_extendv4hiv4si2): Ditto.
	(sse4_1_zero_extendv2hiv2di2): Ditto.
	(sse4_1_zero_extendv2siv2di2): Ditto.
	(*sse4_1_extendv8qiv8hi2): Remove insn pattern.
	(*sse4_1_extendv4qiv4si2): Ditto.
	(*sse4_1_extendv2qiv2di2): Ditto.
	(*sse4_1_extendv4hiv4si2): Ditto.
	(*sse4_1_extendv2hiv2di2): Ditto.
	(*sse4_1_extendv2siv2di2): Ditto.
	(*sse4_1_zero_extendv8qiv8hi2): Ditto.
	(*sse4_1_zero_extendv4qiv4si2): Ditto.
	(*sse4_1_zero_extendv2qiv2di2): Ditto.
	(*sse4_1_zero_extendv4hiv4si2): Ditto.
	(*sse4_1_zero_extendv2hiv2di2): Ditto.
	(*sse4_1_zero_extendv2siv2di2): Ditto.

2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>

	* config/mips/mips-protos.h (mips_function_arg_advance): Delete
	(mips_function_arg): Delete.
	(mips_function_arg_boundary): Take a const_tree.
	* config/mips/mips.c (mips_function_arg_boundary): Likewise.
	(mips_arg_info): Likewise.
	(mips_setup_incoming_varargs): Call mips_function_arg_advance
	instead of FUNCTION_ARG_ADVANCE.
	(mips_function_arg_advance): Adjust prototype.  Make static.
	(mips_function_arg): Likewise.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
	* config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.

2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
	(function_arg): Delete.
	(function_arg_boundary): Take a const_tree.
	* config/rs6000/rs6000.c (function_arg_boundary): Likewise.
	(rs6000_spe_function_arg): Likewise.
	(rs6000_parm_start): Likewise.
	(rs6000_arg_size): Likewise.
	(rs6000_darwin64_record_arg_advance_recurse): Likewise.
	(rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
	(rs6000_mixed_function_arg): Likewise.
	(function_arg): Rename to...
	(rs6000_function_arg): ...this.
	(function_arg_advance): Rename to...
	(rs6000_function_arg_advance_1): ...this
	(rs6000_function_arg_advance): New function.  Call it.
	(setup_incoming_varargs): Call rs6000_function_arg_advance_1.
	(rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
	(rs6000_function_value): Likewise.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.md (enabled): Test the value of arch_enabled
	rather than just using it.

2010-08-27  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* dse.c (group_info.base_mem, get_group_info): Use BLKmode to
	cover all the possible offsets from this base.
	(scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.

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

	PR tree-optimization/44485
	* calls.c (flags_from_decl_or_type): For const or pure
	noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
	together with ECF_CONST resp. ECF_PURE.
	* builtins.c (expand_builtin): Use flags_from_decl_or_type
	instead of querying flags directly.
	* tree-ssa-loop-niter.c (finite_loop_p): Likewise.
	* tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.

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

	PR tree-optimization/45255
	* tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
	and externals are also invariant.

2010-08-25  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/44858
	* combine.c (try_combine): If recog_for_combine added CLOBBERs to
	newi2pat, make sure they don't affect newpat.

	PR rtl-optimization/45400
	* combine.c (simplify_shift_const_1) <case SUBREG>: Only use
	SUBREG_REG if both modes are of MODE_INT class.

2010-08-25  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
	* config/arm/arm.md (generic_sched): No for Cortex-A5.
	(generic_vfp): Likewise.
	(cortex-a5.md): Include.
	* config/arm/cortex-a5.md: New.

2010-08-25  Richard Guenther  <rguenther@suse.de>

	* alias.c (get_alias_set): Assign a single alias-set to all pointers.
	* gimple.c (gimple_get_alias_set): Remove special handling
	for pointers.

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

	PR middle-end/45355
	* combine.c (try_combine): Use reg_overlap_mentioned_p rather than
	dead_or_set_p when computing i0_feeds_i2_n.

	* combine.c (find_split_point): Undo canonicalization of multiply-add
	to (minus x (mult)) when it seems likely that this will increase the
	chances of a split.

2010-08-25  Richard Guenther  <rguenther@suse.de>

	PR lto/44562
	* lto-streamer.c (lto_record_common_node): Do not mess with
	TYPE_CANONICAL when not in lto.
	* gimple.c (gimple_register_type): Likewise.

2010-08-25  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45316
	* tree-ssa-pre.c (eliminate): Properly clean EH info.

2010-08-25  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45393
	* tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
	and clean EH info.  Avoid SSA update.
	(execute_cse_sincos): Cleanup the CFG if it has changed.

2010-08-25  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45379
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
	TARGET_MEM_REF in alignment computation.

2010-08-25  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/45059
	* tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
	type conversions from newop{1,2}.  Assert t is a comparison and
	newop{1,2} after the stripping are gimple vals.

2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>

	* config/arm/iterators.md (VU, SE, V_widen_l): New.
	(V_unpack, US): New.
	* config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
	(vec_unpack<US>_lo_<mode>): Likewise.
	(neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
	(neon_vec_unpack<US>_lo_<mode>): Likewise.
	(vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
	(vec_widen_<US>mult_hi_<mode>): Likewise.
	(neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
	(neon_vec_<US>mult_hi_<mode>"): Likewise.
	(neon_unpack<US>_<mode>): Widening move intermediate step for
	vectorizing without -mvectorize-with-neon-quad.
	(neon_vec_<US>mult_<mode>): Widening multiply intermediate step
	for vectorizing without -mvectorize-with-neon-quad.
	* config/arm/predicates.md (vect_par_constant_high): Check for
	high-half lanes of a vector.
	(vect_par_constant_low): Check for low-half lanes of a vector.

2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (struct ifc_dr): New.
	(IFC_DR): New.
	(DR_WRITTEN_AT_LEAST_ONCE): New.
	(DR_RW_UNCONDITIONALLY): New.
	(memref_read_or_written_unconditionally): Use the cached values
	when possible.
	(write_memref_written_at_least_once): Same.
	(if_convertible_loop_p): Initialize and free DR->aux fields.

2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>

	* gimple.c (gimple_could_trap_p_1): Not static anymore.
	Pass an extra bool parameter include_mem.
	(gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
	(gimple_assign_rhs_could_trap_p): Same.
	* gimple.h (gimple_could_trap_p_1): Declared.
	* tree-data-ref.h (same_data_refs_base_objects): New.
	(same_data_refs): New.
	* tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
	(write_memrefs_written_at_least_once): New.
	(ifcvt_memrefs_wont_trap): New.
	(operations_could_trap): New.
	(ifcvt_could_trap_p): New.
	(if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
	Gets a vector of data refs.
	(if_convertible_stmt_p): Same.
	(if_convertible_loop_p_1): New.
	(if_convertible_loop_p): Call if_convertible_loop_p_1.

2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>

	* common.opt (ftree-loop-if-convert-stores): New flag.
	* doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
	* tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
	the created statement before GSI.
	(if_convertible_phi_p): Allow virtual phi nodes when
	flag_loop_if_convert_stores is set.
	(if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
	Do not handle types that do not match is_gimple_reg_type.
	Remove loop and bb parameters.  Call gimple_could_trap_p instead of
	when flag_loop_if_convert_stores is set, as LHS can contain
	memory refs.
	(if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
	to if_convertible_gimple_assign_stmt_p.
	(if_convertible_loop_p): Update call to if_convertible_stmt_p.
	(replace_phi_with_cond_gimple_assign_stmt): Renamed
	predicate_scalar_phi.  Do not handle virtual phi nodes.
	(ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
	Call predicate_scalar_phi.
	(insert_gimplified_predicates): Insert the gimplified predicate of a BB
	just after the labels for flag_loop_if_convert_stores, otherwise
	insert the predicate in the end of the BB.
	(predicate_mem_writes): New.
	(combine_blocks): Call predicate_all_scalar_phis.  When
	flag_loop_if_convert_stores is set, call predicate_mem_writes.
	(tree_if_conversion): Call mark_sym_for_renaming when
	flag_loop_if_convert_stores is set.
	(main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
	flag_loop_if_convert_stores is set.

2010-08-24  Anatoly Sokolov  <aesok@post.ru>

	* config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
	pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
	(pa_function_value): Make static.
	(override_options): Rename to...
	(pa_option_override): ...this. Make static.
	(TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
	TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
	TARGET_OPTION_OVERRIDE): Define.
	* config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
	LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
	Remove.
	* config/pa/pa-protos.h (override_options): Remove.

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

	PR middle-end/45379
	* tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
	if addr->index is NULL or zero.
	* tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
	TARGET_MEM_REF more properly.
	(indirect_ref_may_alias_decl_p): Likewise.
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
	* alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.

2010-08-23  Anatoly Sokolov  <aesok@post.ru>

	* config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
	(m32c_override_options): Rename to...
	(m32c_option_override): ...this. Make static.
	(TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
	* config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
	Remove.
	* config/m32c/m32c-protos.h (m32c_override_options,
	m32c_function_value_regno_p): Remove.

2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
	Fix a typo in a previous commit.

2010-08-23  Kai Tietz  <kai.tietz@onevision.com>

	* tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
	Pre-initialize innerloop_iters to one.

2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-flow.h (may_be_nonaddressable_p): New definition. Make the
	existing static function global.

	* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
	is changed to global.

	* tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
	may_be_nonaddressable_p on base, and don't collect this reference
	if the address of the base could not be taken.

2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
	enable the compiler to autovectorize mathmetical functions for
	power7 using the Mathematical Acceleration Subsystem library.

	* config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
	handle which vector math library we have.
	(rs6000_override_options): Add -mveclibabi=mass support.
	(rs6000_builtin_vectorized_libmass): New function to handle auto
	vectorizing math functions that are in the MASS library.
	(rs6000_builtin_vectorized_function): Call it.

	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
	-mveclibabi=mass.

2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR boehm-gc/34544
	* gthr-posix.h (__gthread_active_init): Delete.
	(__gthread_active_p): Do activity check here.
	Don't include errno.h on hppa-hpux.  Update comment.
	* gthr-posix95.h (__gthread_active_init): Delete.
	(__gthread_active_p): Do activity check here.
	Don't include errno.h on hppa-hpux.  Update comment.
	* config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
	* config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
	add -lpthread when -mt or -pthread is specified.
	* config/pa/pa-hpux11.h (LIB_SPEC): likewise.
	(LINK_GCC_C_SEQUENCE_SPEC): Define.
	* config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
	(stublib.c, pthread_default_stacksize_np-stub.o,
	pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
	$(T)libgcc_stub.a): Add methods.
	* config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
	(stublib.c, pthread_default_stacksize_np-stub.o,
	pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
	* config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
	pthread_mutex_unlock): New stubs.

2010-08-22  Joseph Myers  <joseph@codesourcery.com>

	* Makefile.in (gccspec.o, cppspec.o): Update dependencies.
	* common.opt (L, nodefaultlibs, nostdlib, pg, static): New
	options.
	* config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
	* config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
	* config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
	* config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
	* config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
	"-l".
	* cppspec.c: Include opts.h.
	(lang_specific_driver): Use cl_decoded_option structures.
	* doc/tm.texi.in (MATH_LIBRARY): Update documentation.
	* doc/tm.texi: Regenerate.
	* gcc.c (translate_options): Translate -d to -foutput-class-dir=.
	(driver_handle_option): Allow driver options needing no special
	processing.
	(process_command): Decode options before call to
	lang_specific_driver.  Pass decoded options to
	lang_specific_driver.
	* gcc.h (lang_specific_driver): Update prototype.
	* gccspec.c: Include opts.h.
	(lang_specific_driver): Use cl_decoded_option structures.
	* opts-common.c (option_ok_for_language, generate_option,
	generate_option_input_file): New.
	(decode_cmdline_option): Use option_ok_for_language.
	(decode_cmdline_options_to_array): Use generate_option_input_file.
	(handle_generated_option): Use generate_option.
	* opts.h (generate_option, generate_option_input_file): Declare.

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

	* config/mips/mips.c (mips_override_options): Rename to...
	(mips_option_override): ...this. Make static.
	(TARGET_OPTION_OVERRIDE): Define.
	(mips_in_small_data_p): Update comment.
	* config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
	(FIXED_REGISTERS): Update comment.
	* config/mips/mips-protos.h (mips_override_options): Remove.

2010-08-21  Olivier Hainque  <hainque@adacore.com>

	* config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.

2010-08-21  Olivier Hainque  <hainque@adacore.com>

	* config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
	ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.

2010-08-20  Jan Hubicka  <jh@suse.cz>

	* tree-pass.h (pass_ipa_cdtor_merge): New function.
	* cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
	heap allocated.
	(record_cdtor_fn): Move to ipa.c; do not test for
	have_ctors_dtors.
	(build_cdtor): Move to ipa.c; add code avoiding construction
	when target have ctors/dtors and there is only one ctor/dtor at given
	priority.
	(compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
	sort; reverse order of constructors.
	(cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
	(cgraph_finalize_function): Do not call record_cdtor_fn.
	(cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
	(cgraph_build_static_cdtor): Move to ipa.c.
	* ipa.c: Include target.h and tree-iterator.h.
	(cgraph_build_static_cdtor, static_ctors, static_dtors,
	record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
	build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
	pass_ipa_cdtor_merge): New.
	* passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
	* ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
	bounds access.

2010-08-20  Jan Hubicka  <jh@suse.cz>

	PR c++/45307
	PR c++/17736
	* cgraph.h (cgraph_only_called_directly_p,
	cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
	static cdtors.
	* cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
	are not needed.
	(cgraph_finalize_function): Static cdtors are reachable.
	(cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.

2010-08-20  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
	flag_wpa.
	* lto-streamer-out.c (lto_output): Likewise.
	* passes.c (ipa_write_optimization_summaries): Initialize statement
	uids.

2010-08-20  Olivier Hainque  <hainque@adacore.com>

	* tree.h (alias_diag_flags): New enum.
	(alias_pair): Add an 'emitted_diags' field.
	* varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
	(assemble_alias): Initialize emitted_diags of new pairs.

2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>

	* config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
	* config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
	* config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
	(STACK_CHECK_PROTECT): Define.
	* config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
	(output_probe_stack_range): Likewise.
	(rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
	builtin stack checking is enabled.
	* config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
	* config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
	(probe_stack_range): New insn.

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

	PR target/45336
	* config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
	short first.

	* config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
	char first.

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

	PR target/45336
	* config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
	to cover zero extension into 64-bit register.
	(*sse2_pextrw): Likewise.
	(*sse4_1_pextrd_zext): New insn.

2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>

	revert r163410, partially revert r163267.
	* config/rs6000/darwin.h (LIB_SPEC): Remove.
	* config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
	Darwin versions.

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

	PR middle-end/44974
	* builtins.c (expand_builtin): Don't optimize away
	calls to DECL_LOOPING_CONST_OR_PURE_P builtins.

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

	* config/i386/i386.md (ashift %rsp splitter): Remove splitter.
	(pro_epilogue_adjust_stack_di_2): Use "l" constraint for
	alternative 1 of operand 2.

2010-08-20  Jakub Jelinek  <jakub@redhat.com>
	    Paolo Bonzini  <bonzini@gnu.org>

	* simplify-rtx.c (simplify_unary_operation_1): Optimize
	(sign_extend (zero_extend (...)) and
	({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).

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

	PR rtl-optimization/45353
	* sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
	after bb_note is a BARRIER.

2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>

	* config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
	linking libgcc.a.

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

	* tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.

2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>

	* ggc-common.c (ggc_mark_root_tab): New function, split out from...
	(ggc_mark_roots): ...here.

2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>

	* vec.h (FOR_EACH_VEC_ELT): Define.
	* c-decl.c: Use it.
	* cfgloop.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cgraph.c: Likewise.
	* cgraphunit.c: Likewise.
	* combine.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* dbxout.c: Likewise.
	* df-scan.c: Likewise.
	* dominance.c: Likewise.
	* dse.c: Likewise.
	* dwarf2out.c: Likewise.
	* except.c: Likewise.
	* expr.c: Likewise.
	* function.c: Likewise.
	* gcse.c: Likewise.
	* genattr.c: Likewise.
	* ggc-common.c: Likewise.
	* gimplify.c: Likewise.
	* graphite-blocking.c: Likewise.
	* graphite-clast-to-gimple.c: Likewise.
	* graphite-dependences.c: Likewise.
	* graphite-interchange.c: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* graphite.c: Likewise.
	* haifa-sched.c: Likewise.
	* ifcvt.c: Likewise.
	* implicit-zee.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-struct-reorg.c: Likewise.
	* ipa.c: Likewise.
	* ira-build.c: Likewise.
	* ira-color.c: Likewise.
	* ira-emit.c: Likewise.
	* lambda-code.c: Likewise.
	* loop-invariant.c: Likewise.
	* loop-unroll.c: Likewise.
	* lower-subreg.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-opts.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* lto-streamer.c: Likewise.
	* lto-symtab.c: Likewise.
	* matrix-reorg.c: Likewise.
	* opts.c: Likewise.
	* predict.c: Likewise.
	* print-tree.c: Likewise.
	* sdbout.c: Likewise.
	* sel-sched-dump.c: Likewise.
	* sel-sched-ir.c: Likewise.
	* sel-sched.c: Likewise.
	* sese.c: Likewise.
	* stor-layout.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chrec.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-emutls.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-outof-ssa.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-ssa-live.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-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-vect-data-refs.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-vrp.c: Likewise.
	* tree.c: Likewise.
	* value-prof.c: Likewise.
	* var-tracking.c: Likewise.
	* varasm.c: Likewise.
	* vmsdbgout.c: Likewise.

2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Guenther  <richard.guenther@gmail.com>

	* gimplify.c (gimplify_modify_expr): When assigning to volatiles,
	copy the src value and return a copy.
	* doc/extend.texi (Volatiles): Move from C++ to C and expand.
	(C++ Volatiles): Adjust to describe C++ semantics only.

2010-08-20  Joseph Myers  <joseph@codesourcery.com>

	* doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
	be zero or nonzero.
	* doc/tm.texi: Regenerate.
	* defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
	* df-scan.c (df_get_exit_block_use_set), reginfo.c
	(init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
	Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
	* config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
	to 1.

2010-08-20  Olivier Hainque  <hainque@adacore.com>

	* config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
	an extra nop past a sibling call at the very end.

2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>

	PR bootstrap/45350
	* combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
	a comment.

2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>

	* target.def (function_arg, function_incoming_arg): Remove const
	qualifier on CUMULATIVE_ARGS parameter.
	* targhooks.h (default_function_arg, default_function_incoming_arg):
	Likewise.
	* targhooks.c (default_function_arg, default_function_incoming_arg):
	Likewise.
	* config/i386/i386.c (ix86_function_arg): Likewise.

2010-08-19  Jakub Jelinek  <jakub@redhat.com>

	PR target/45336
	* simplify-rtx.c (simplify_unary_operation_1): Optimize nested
	SIGN_EXTENDs or ZERO_EXTENDs.

2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/42172
	* combine.c (combine_validate_cost): New arg I0.  All callers changed.
	Take its cost into account if nonnull.
	(insn_a_feeds_b): New static function.
	(combine_instructions): Look for four-insn combinations.
	(can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
	them into account when computing all_adjacent and looking for other
	uses.
	(combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
	changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
	(try_combine): New arg I0.  Handle four-insn combinations.
	(distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
	like ELIM_I1.

2010-08-19  Jason Merrill  <jason@redhat.com>

	PR c++/45307
	* gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
	if ctor is empty.
	(gimplify_modify_expr_rhs): Adjust.

2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>

	* cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
	bitmap_bit_p.
	* config/bfin/bifn.c (bfin_discover_loop): Likewise.
	* dominance.c (iterate_fix_dominators): Likewise.
	* dse.c (set_usage_bits): Likewise.
	(set_position_unneeded, record_store): Likewise.
	* gimple-fold.c (get_maxval_strlen): Likewise.
	* haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
	* ipa-inline.c (update_caller_keys): Likewise.
	* ipa-split.c (verify_non_ssa_vars): Likewise.
	* ipa-type-escape.c (mark_type, close_type_seen): Likewise.
	(close_type_exposed_parameter, close_type_full_escape): Likewise.
	(close_addressof_down): Likewise.
	* ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
	(setup_allocno_left_conflicts_size): Likewise.
	(ira_reassign_conflict_allocnos): Likewise.
	(ira_reassign_pseudos): Likewise.
	* ira-emit.c (change_loop): Likewise.
	* loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
	* lto-streamer-out.c (write_symbol): Likewise.
	* predict.c (expr_expected_value_1): Likewise.
	* regstat.c (regstat_bb_compute_ri): Likewise.
	* sel-sched.c (create_block_for_bookkeeping): Likewise.
	(track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
	* stmt.c (expand_case): Likewise.
	* tree-eh.c (emit_eh_dispatch): Likewise.
	* tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
	* tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
	Likewise.
	(rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
	(rdg_build_components): Likewise.
	* tree-object-size.c (collect_object_sizes_for): Likewise.
	* tree-sra.c (convert_callers): Likewise.
	* tree-ssa-coalesce.c (live_track_add_partition): Likewise.
	* tree-ssa-live.c (mark_all_vars_used_1): Likewise.
	* tree-ssa-pre.c (bitmap_set_replace_value): Likewise.

2010-08-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*lea_1): Use P mode iterator.
	(lea add splitter): Also handle DImode operands.
	(DImode lea add splitter): Use x86_64_immediate_operand for operand 2
	predicate.  Do not use ix86_lea_for_add_ok.
	(zext DImode lea add splitter): Use ix86_lea_for_add_ok.
	(lea ashift splitter): Also handle DImode operands.
	(DImode lea ashift splitter): Remove splitter.

2010-08-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
	ix86_binary_operator_ok.

2010-08-19  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/44691
	* sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
	is not a register.

2010-08-19  Ian Bolton  <ian.bolton@arm.com>

	PR target/45070
	* config/arm/arm.c (arm_output_epilogue): Ensure that return
	 value of size 1-3 is handled correctly.

2010-08-19  Ian Bolton  <ian.bolton@arm.com>

	* tree-switch-conversion.c (gen_inbound_check): Ensure that the
	type for the conditional has wide enough range.

2010-08-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/45327
	* config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
	ix86_binary_operator_ok.

2010-08-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
	<default>:  Swap operands 1 and 2 for alternative 2 to use existing
	code to output insn mnemonic.  Fix comment.
	(*addsi_1_zext): Add r-r-0 alternative 1.
	<TYPE_LEA>: Split insn to lea.
	<default>: Handle alternative 1.
	(*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
	multi-level if_then_else RTX to set "type" attribute.
	<default>: Handle alternative 2.
	(*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
	Use cond RTX instead of multi-level if_then_else RTX to set
	"type" attribute.
	<default>: Handle alternatives 2 and 4.
	(lea splitters): Update calls to ix86_lea_for_add_ok.

	* config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
	argument.
	* config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.

2010-08-18  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
	use operand helpers.

2010-08-18  Paolo Bonzini  <bonzini@gnu.org>

	PR middle-end/45292
	* optabs.c (expand_bool_compare_and_swap): Expand pending
	pops before trying the optab.

2010-08-18  Yao Qi  <yao@codesourcery.com>

	PR target/45094
	* config/arm/arm.c (output_move_double): Fix typo generating
	instructions ('ldr'->'str').

2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR rtl-optimization/42575
	* optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
	live ranges.

2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/arm/arm-protos.h (arm_expand_sync): New.
	(arm_output_memory_barrier, arm_output_sync_insn): New.
	(arm_sync_loop_insns): New.
	* config/arm/arm.c (FL_ARCH7): New.
	(FL_FOR_ARCH7): Include FL_ARCH7.
	(arm_arch7): New.
	(arm_print_operand): Support %C markup.
	(arm_legitimize_sync_memory): New.
	(arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
	(arm_process_output_memory_barrier, arm_output_memory_barrier): New.
	(arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
	(arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
	(arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
	(arm_process_output_sync_insn, arm_output_sync_insn): New.
	(arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
	* config/arm/arm.h (struct arm_sync_generator): New.
	(TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
	(TARGET_HAVE_MEMORY_BARRIER): New.
	(TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
	* config/arm/arm.md: Include sync.md.
	(UNSPEC_MEMORY_BARRIER): New.
	(VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
	(VUNSPEC_SYNC_OP):New.
	(VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
	(sync_result, sync_memory, sync_required_value): New attributes.
	(sync_new_value, sync_t1, sync_t2): Likewise.
	(sync_release_barrier, sync_op): Likewise.
	(length): Add logic to length attribute defintion to call
	arm_sync_loop_insns when appropriate.
	* config/arm/sync.md: New file.

2010-08-17  Jakub Jelinek  <jakub@redhat.com>

	* tree.h (host_integerp): Add ATTRIBUTE_PURE when not
	ENABLE_TREE_CHECKING.
	(tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
	and GCC >= 4.3.

2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
	or optimizing for size, always avoid lea if possible.

	* config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.

2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>

	* unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
	Dunmmy function with NULL return unless the target is
	OSX >= 10.6 (Darwin10).

2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR target/45258
	* gcc.c (spec_function): Add remove-outfile.
	(remove_outfile_spec_function): New function.
	* config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
	* invoke.texi (replace-outfile): Document.

2010-08-17  Uros Bizjak  <ubizjak@gmail.com>

	PR target/45296
	* reginfo.c (globalize_reg): Reject stack registers.

2010-08-17  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-dom.c (struct edge_info): Use a VEC for the
	list of conditional equivalences.
	(free_all_edge_infos): Adjust.
	(record_equivalences_from_incoming_edge): Likewise.
	(record_cond): Likewise.
	(build_and_record_new_cond): Likewise.
	(record_conditions): Likewise.
	(dom_opt_leave_block): Likewise.

2010-08-17  Kai Tietz  <kai.tietz@onevision.com>

	* doc/invoke.texi (ms-extension): Add documentation.

2010-08-17  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.

2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>

	PR c/40563
	* c-decl.c (diagnose_uninitialized_cst_member): New function.
	(finish_decl): Use it to issue a -Wc++-compat warning about
	uninitialized const field in struct or union.

	(finish_struct): Use strip_array_types.

2010-08-17  Jakub Jelinek  <jakub@redhat.com>

	* function.c (block_fragments_nreverse, blocks_nreverse_all): New
	functions.
	(reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
	(reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
	call block_nreverse here.
	(blocks_nreverse): Rename decl temporary to block.

2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>

	* config/arm/thumb2.md (thumb2_notsi_shiftsi,
	thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
	thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
	thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
	thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
	thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
	thumb2_iorsi3): Delete.
	(orsi_notsi_si): No longer a named pattern.
	(orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
	* config/arm/predicates.md (shift_amount_operand): New.
	(mult_operator): New.
	* config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
	attr enabled): New.
	(iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
	arch matches t2.
	(not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
	(not_shiftsi_compare0): Likewise, renamed from
	arm_notsi_shiftsi_compare0.
	(not_shiftsi_compare0_scratch): Likweise, renamed from
	arm_notsi_shiftsi_compare0_scratch.
	(cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
	(cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
	(arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
	so that the register alternative is disabled when the shift_operator
	is MULT.  Use "M" as the constraint for constants.
	(arith_shiftsi splitter): Enable for TARGET_32BIT.
	(arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
	constraint for constants.
	(arith_shiftsi_compare0_scratch): Likewise.
	(sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
	Handle Thumb2 alternative.

2010-08-16  Joseph Myers  <joseph@codesourcery.com>

	* doc/options.texi (NoDriverArg): Document.
	* gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
	-MDX and -MMDX.
	* opt-functions.awk (switch_flags): Handle NoDriverArg.
	* opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
	marking for CL_NO_DRIVER_ARG options when in the driver.
	* opts.h (CL_NO_DRIVER_ARG): Define.
	(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
	CL_COMMON): Update values.

2010-08-16  Joseph Myers  <joseph@codesourcery.com>

	* common.opt: Add driver options.
	(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
	* doc/options.texi (Driver, RejectDriver): Document.
	* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
	print_prog_name, print_multi_directory, print_sysroot,
	print_multi_os_directory, print_multi_lib,
	print_sysroot_headers_suffix, report_times, combine_flag,
	use_pipes, wrapper_string): Remove.
	(save_switch, driver_unknown_option_callback,
	driver_wrong_lang_callback, driver_post_handling_callback,
	driver_handle_option): New.
	(spec_lang, last_language_n_infiles): Make file-scope static
	instead of local to process_command.
	(process_command): Use decode_cmdline_options_to_array and
	read_cmdline_option for option processing.  Compute have_c in
	prescan of decoded options.
	* opt-functions.awk (switch_flags): Handle Driver and
	RejectDriver.
	(var_type, var_type_struct): Handle Separate options as generating
	const char * variables.
	* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
	CL_TARGET to be passed by caller if required.
	(decode_cmdline_options_to_array): Update comment.
	* opts.c (complain_wrong_lang): Handle options only valid for the
	driver.
	(decode_options): Update call to decode_cmdline_options_to_array.
	(print_filtered_help): Ignore driver-only options.
	(print_specific_help): Ignore CL_DRIVER.
	(common_handle_option): Don't call print_specific_help for CL_DRIVER.
	* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
	(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
	Update values.

2010-08-16  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_types_in_gimple_reference): Verify
	TARGET_MEM_REF a bit.
	* tree-ssa-address.c (addr_for_mem_ref): Adjust.
	(create_mem_ref_raw): Always create TMR_OFFSET, store the
	alias pointer type via it.
	(copy_mem_ref_info): Adjust.
	(maybe_fold_tmr): Likewise.
	* tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
	(reference_alias_ptr_type): Likewise.
	* tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
	adjust documentation of TMR_OFFSET operand.
	* alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
	use the alias pointer type.
	* expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
	initialize mem attrs but the TMR itself.
	* tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
	similar to MEM_REF.
	* tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
	* tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
	(unshare_and_remove_ssa_names): Likewise.
	(copy_ref_info): Adjust.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
	TARGET_MEM_REF case.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
	at TMR_ORIGINAL.
	* tree.h (TMR_ORIGINAL): Remove.
	* gimple.c (get_base_address): For TARGET_MEM_REF with a
	symbol return that.
	* tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
	with a symbol.
	(get_addr_base_and_unit_offset): Likewise.
	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
	TARGET_MEM_REFs.
	(indirect_ref_may_alias_decl_p): Likewise.
	(refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.

2010-08-15  Uros Bizjak  <ubizjak@gmail.com>

	* doc/invoke.texi (-fomit-frame-pointer): Document that starting
	with GCC version 4.6, the default setting (when not optimizing
	for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
	been changed to -fomit-frame-pointer.

2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
	Darwin10.  Do not link libgcc.a for Darwin >= 9.

2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/invoke.texi (Warning Options): Fix terminology and markup
	in the description of how unknown warning options are handled.

2010-08-15  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-data-refs.c (vect_setup_realignment): Support realignment
	in basic blocks.
	(vect_supportable_dr_alignment): Check alignment for basic blocks.
	* tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
	data references.
	(vect_bb_vectorization_profitable_p): New function.
	(vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
	check if it's worthwhile to vectorize the basic block.

2010-08-14  Anatoly Sokolov  <aesok@post.ru>

	* reload.h (register_move_cost, memory_move_secondary_cost,
	secondary_reload_class): Adjust prototype.
	* rtl.h (reg_class_subset_p): Adjust prototype.
	* reload.c (secondary_reload_class): Change arguments type from
	enum reg_class to reg_class_t. Change result type to reg_class_t.
	* reginfo.c (register_move_cost, reg_class_subset_p): Change
	arguments type from enum reg_class to reg_class_t.
	(memory_move_secondary_cost): Change arguments type from
	enum reg_class to reg_class_t. Change type of saved_flags to
	reg_class_t.

	* config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
	Remove macros.
	(mips_cost): Remove.
	(struct mips_rtx_cost_data): Moved to mips.c.
	* config/mips/mips-protos.h (mips_register_move_cost): Remove.
	* config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
	(mips_cost): Make static.
	(mips_canonicalize_move_class): Change argument type to reg_class_t.
	Change result type to reg_class_t.
	(mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
	type from enum reg_class to reg_class_t.
	(mips_register_move_cost): Make static. Change arguments
	type from enum reg_class to reg_class_t.
	(mips_memory_move_cost): New function.
	(TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.

2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/43358
	* ira-lives.c (process_single_reg_class_operands): Adjust the costs
	of a single hard register, using simplify_subreg_regno to decide
	what that register should be.

2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>

	* config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
	* config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
	(loongson_pmull<V_suffix>): Rename to...
	(mul<mode>3): ...this and use MULT instead of an UNSPEC.

2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>

	* configure.ac: Enable -fomit-frame-pointer on darwin
	which support dwarf2.
	* config/i386/i386.c (override_options): Same.

2010-08-13  Jie Zhang  <jie@codesourcery.com>

	* config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.

2010-08-12  Joseph Myers  <joseph@codesourcery.com>

	* gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
	-MMD.

2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
	up dot_prod pattern searching if a stmt is outside the loop.

2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	* config.gcc: Handle --enable-frame-pointer.

	* configure.ac: Add --enable-frame-pointer.
	* configure: Regenerated.

	* config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
	(override_options): If not configured with --enable-frame-pointer,
	enable -fomit-frame-pointer (but not for TARGET_MACHO or when
	optimizing for size), -fasynchronous-unwind-tables and
	-maccumulate-outgoing-args by default.

2010-08-12  Jakub Jelinek  <jakub@redhat.com>

	* builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.

	PR middle-end/45262
	* fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
	-a overflows.  Normalize the range.

2010-08-12  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45232
	* tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
	for types with undefined overflow.
	(reassociate_bb): Allow re-associating of bit and min/max
	operations for types with undefined overflow.
	* tree-ssa-forwprop.c (associate_plusminus): New function.
	(tree_ssa_forward_propagate_single_use_vars): Call it.

2010-08-12  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (struct ptr_info_def): Add align and misalign fields.
	* tree-ssa-alias.c (get_ptr_info): Move ...
	* tree-ssanames.c (get_ptr_info): ... here.  Initialize
	align and misalign fields conservatively.
	* tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
	derive alignment information.
	(evaluate_stmt): Derive alignment information from memory
	allocation functions.
	* tree.h (get_pointer_alignment): Make unsigned.
	* builtins.c (get_object_alignment): Use alignment information we
	have computed for pointers.
	(get_pointer_alignment): Likewise.  Make conservative, return
	and unsigned value.
	(expand_builtin_strlen): Adjust.
	(expand_builtin_memcmp): Likewise.
	(expand_builtin_strcmp): Likewise.
	(expand_builtin_strncmp): Likewise.
	(get_builtin_sync_mem): Use at least mode alignment.
	(fold_builtin_memset): Adjust.
	(fold_builtin_memory_op): Likewise.
	* gimple-pretty-print.c (dump_gimple_phi): Alongside alias
	information also dump pointer alignment knowledge.
	(dump_gimple_stmt): Likewise.

2010-08-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (LONG_TYPE_SIZE): Remove.
	(EMPTY_FIELD_BOUNDARY): Remove.
	* config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.

2010-08-12  Jakub Jelinek  <jakub@redhat.com>

	PR debug/45259
	* caller-save.c (save_call_clobbered_regs): Only swap notes with
	DEBUG_INSNs if n_regs_saved.

2010-08-12  Wei Guozhi  <carrot@google.com>

	PR target/44999
	* config/arm/arm.md (andsi3): Change to zero extension if possible.
	* config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.

2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-int.h (ira_remove_allocno_copy_from_list): Remove.

	* ira-build.c (ira_remove_allocno_copy_from_list): Remove.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
	the case removed in the previous patch, when the only phi argument
	is defined in the same loop as the phi node itself.  Handle it
	separately from the invariant case by both propagating it outside
	the region and replacing the phi node with an assign.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
	constant phi nodes with one argument are is_gimple_min_invariant
	and SSA_NAME_IS_DEFAULT_DEF.

2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-cloog-util.c (oppose_constraint):
	Extend loop counter's value range (CLOOG_ORG).
	(cloog_matrix_to_ppl_constraint): Same.
	(new_Constraint_System_from_Cloog_matrix): Same.
	* graphite-cloog-compat.h (matrix_num_type): New.

2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite.c (graphite_initialize): Do not initialize
	CLooG and initialize the Parma Polyhedra Library
	manually when using CLOOG_ORG.
	(graphite_finalize): Do not finalize CLooG and finalize
	the Parma Polyhedra Library manually when using CLOOG_ORG.
	* graphite-cloog-compat.h (cloog_initialize): Hide function
	when using CLOOG_ORG.
	(cloog_finalize): Same.

2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (free_scattering): Change
	CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
	(CLOOG_ORG).
	(build_cloog_prog): Same.
	* graphite-cloog-compat.h (cloog_domain): Removed.
	(cloog_scattering): New.
	(cloog_set_domain): Removed.
	(cloog_set_scattering): New.
	(cloog_next_domain): Removed.
	(cloog_next_scattering): New.
	(cloog_set_next_domain): Removed.
	(cloog_set_next_scattering): New.
	(CloogScatteringList): New.
	(CloogScattering): New.
	(cloog_scattering_free): New.
	(new_Cloog_Scattering_from_ppl_Polyhedron): New.
	* graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
	New.

2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (build_cloog_prog): Extend with
	CloogState.
	(set_cloog_options): Same.
	(print_clast_stmt): Same.
	(scop_to_clast): Same.
	(print_generated_program): Same.
	(gloog): Same.
	* graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
	(scop_to_clast): Extend with CloogState.
	* graphite-cloog-util.c: Include graphite-cloog-compat.h
	(new_Cloog_Domain_from_ppl_Polyhedron):
	Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
	(new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
	(new_Cloog_Domain_from_ppl_Polyhedron): Same.
	* graphite-cloog-util.h (build_cloog_prog): Same.
	* graphite-cloog-copat.h (build_cloog_prog): New.
	(CloogState): New.
	(cloog_state_malloc): New.
	(cloog_state_free): New.
	(cloog_loop_malloc): New.
	(cloog_options_malloc): New.
	(cloog_statement_alloc): New.
	(cloog_domain_from_cloog_matrix): New.
	(new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
	(new_Cloog_Domain_from_ppl_Polyhedron): New.

2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
	type of NAME now depends on used CLooG version.
	(clast_to_gcc_expression): Replace expr_* with clast_expr_*.
	(gcc_type_for_clast_expr): Same.
	(print_clast_stmt): Replace pprint with clast_pprint.
	* graphite-cloog-compat.h: Provide compatibility macros for
	CLooG Legacy.
	(clast_name_p): New.
	(clast_expr_term): New.
	(clast_expr_red): New.
	(clast_expr_bin): New.
	(clast_pprint): New.

2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
	compatible to newer CLooG releases (CLOOG_ORG).
	(build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
	(scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
	* graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
	(build_cloog_prog) : New.
	(cloog_program_extract_scalars): New.
	(cloog_program_scatter): New.

2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
	conditionally (CLOOG_ORG).
	* graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
	(cloog_statement_usr): New.
	(cloog_domain): Same.
	(cloog_set_domain): Same.
	(cloog_next_domain): Same.
	(cloog_set_next_domain): Same.
	(cloog_program_nb_scattdims): Same.
	(cloog_program_set_nb_scattdims): Same.
	(cloog_program_names): Same.
	(cloog_program_set_names): Same.
	(cloog_program_set_context): Same.
	(cloog_program_set_loop): Same.
	(cloog_program_blocklist): Same.
	(cloog_program_set_blocklist): Same.
	(cloog_program_scaldims): Same.
	(cloog_program_set_scaldims): Same.
	(cloog_names_nb_parameters): Same.
	(cloog_names_set_nb_parameters): Same.
	(cloog_names_parameters): Same.
	(cloog_names_set_parameters): Same.
	(cloog_names_set_nb_iterators): Same.
	(cloog_names_set_iterators): Same.
	(cloog_names_set_nb_scattering): Same.
	(cloog_names_set_scattering): Same.
	(cloog_statement_set_usr): Same.
	(cloog_loop_set_next): Same.
	(cloog_loop_set_domain): Same.
	(cloog_loop_set_block): Same.
	(cloog_block_list_next): Same.
	(cloog_block_list_set_next):
	(cloog_block_list_set_block): Same.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
	a bool.
	(rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
	(rewrite_commutative_reductions_out_of_ssa_loop): Same.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
	when something has been changed.
	(rewrite_commutative_reductions_out_of_ssa): Same.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (propagate_expr_outside_region): Also
	handle the case when def is in the sese region.
	(rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
	for invariant expressions.
	(rewrite_cross_bb_phi_deps): Removed.
	(rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
	rewrite_cross_bb_phi_deps.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c
	(rewrite_commutative_reductions_out_of_ssa_loop): Call
	scev_analyzable_p only on is_gimple_reg

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (propagate_expr_outside_region): New.
	(rewrite_close_phi_out_of_ssa): Propagate constant values or
	parametric expressions outside the scop region.
	(rewrite_cross_bb_scalar_deps): Same.
	* sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
	SSA_NAME_DEF_STMT only on SSA_NAMEs.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_name): Do not
	instantiate default definitions.

2010-08-11  Vladimir Kargov  <kargov@gmail.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
	(loop_exits_from_bb_p): New.
	* cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
	(loop_exits_from_bb_p): Declared.
	* graphite-scop-detection.c (scopdet_basic_block_info): Call
	loop_exits_to_bb_p.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
	extra parameter for the region.  Call scev_analyzable_p.
	(rewrite_reductions_out_of_ssa): Update call to
	rewrite_close_phi_out_of_ssa.
	(rewrite_cross_bb_phi_deps): Same.
	(rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
	parameter for the region.  Call scev_analyzable_p.
	(rewrite_commutative_reductions_out_of_ssa): Update call to
	rewrite_commutative_reductions_out_of_ssa_loop.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (rename_uses): Call unshare_expr before force_gimple_operand.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
	SSA scalar phi nodes that can be scev_analyzable_p.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
	handle SSA_NAME_IS_DEFAULT_DEF.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (rename_uses): Handl unconditionally gimple_debug statements.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
	case non close-phi nodes with one argument.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.h (scev_analyzable_p): Scevs could be expressions without
	chrecs and still be scev_analyzable_p.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
	* cfgloop.h (struct loop): Remove single_iv field.
	* graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
	(scop_canonicalize_loops): Removed.
	(scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
	over all the loop phi nodes in loop->header.
	(build_poly_scop): Remove use of scop_canonicalize_loops.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
	handle GIMPLE_CALL.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-chrec.c (chrec_apply): Should only apply to the specified
	variable.  Also handle multivariate chains of recurrences that
	satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
	(debug_clast_name_indexes_1): Removed.
	(debug_clast_name_indexes): Removed.
	(pbb_to_depth_to_oldiv): Removed.
	(build_iv_mapping): Replace the use of rename_map with iv_map.
	(translate_clast_user): Remove uses of rename_map.  Allocate and
	free iv_map.
	(translate_clast_for_loop): Remove uses of rename_map.
	(translate_clast_for): Same.
	(translate_clast_guard): Same.
	(translate_clast): Same.
	(gloog): Same.
	* graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
	* graphite-sese-to-poly.c (scev_analyzable_p): Moved...
	* sese.c (set_rename): Now static.
	(rename_variables_in_stmt): Removed.
	(rename_uses): New.
	(is_parameter): Removed.
	(is_iv): Removed.
	(expand_scalar_variables_call): Removed.
	(expand_scalar_variables_ssa_name): Removed.
	(expand_scalar_variables_expr): Removed.
	(expand_scalar_variables_stmt): Removed.
	(expand_scalar_variables): Removed.
	(rename_variables): Removed.
	(remove_condition): Removed.
	(get_true_edge_from_guard_bb): Removed.
	(get_false_edge_from_guard_bb): Removed.
	(struct igp): Removed.
	(default_before_guard): Removed.
	(convert_for_phi_arg): Removed.
	(add_guard_exit_phis): Removed.
	(insert_guard_phis): Removed.
	(graphite_copy_stmts_from_block): Now also uses iv_map and a
	region.  Do not copy conditions.  Do not copy induction variables.
	Call rename_uses.
	(copy_bb_and_scalar_dependences): Allocate a local rename_map for
	the translated statement.  Use the iv_map for the induction
	variable renaming.
	* sese.h (copy_bb_and_scalar_dependences): Update declaration.
	(set_rename): Removed declaration.
	(scev_analyzable_p): ...here.
	* tree-chrec.c (chrec_apply_map): New.
	* tree-chrec.h (chrec_apply_map): Declared.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
	insert_loop_close_phis.
	* sese.c (name_defined_in_loop_p): Removed.
	(expr_defined_in_loop_p): Removed.
	(alive_after_loop): Removed.
	(close_phi_not_yet_inserted_p): Removed.
	(struct alep): Removed.
	(add_loop_exit_phis): Removed.
	(insert_loop_close_phis): Removed.

2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-cloog-util.c
	(cloog_matrix_to_ppl_constraint): Fix flipped condition.
	* graphite-poly.c
	(psct_scattering_dim_for_loop_depth): Same.

2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-cloog-util.h: Added cloog.h.
	* graphite-blocking.c: Removed cloog.h.
	* graphite-dependences.c: Same.
	* graphite-interchange.c: Same.
	* graphite-poly.c: Same.
	* graphite-ppl.c: Same.
	* graphite-scop-detection.c: Same.
	* graphite-sese-to-poly.c:
	Removed cloog.h.
	Removed graphite-clast-to-gimple.h.
	(check_poly_representation): Removed (unused).
	* graphite-sese-to-poly.h
	(check_poly_representation): Removed (unused).

2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* Makefile.in (OBJS-common): Added graphite-cloog-util.o.
	(graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
	(graphite-cloog-util.o): New.
	(graphite-ppl.o): Added graphite-cloog-util.h.
	* graphite-clast-to-gimple.c:
	Added graphite-cloog-util.h to include statements.
	* graphite-cloog-util.c: New.
	(new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
	(new_Cloog_Domain_from_ppl_Polyhedron): Same.
	(new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
	(new_C_Polyhedron_from_Cloog_Matrix): Same.
	(insert_constraint_into_matrix): Same.
	(ppl_Constrain_System_number_of_constraints): Same.
	(new_Cloog_Matrix_from_ppl_Constraint_System): Same.
	(oppose_constraint): Same.
	(cloog_matrix_to_ppl_constraint): Same.
	(new_Constraint_System_from_Cloog_Matrix): Same.
	* graphite-cloog-util.h: New.
	(new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
	(new_Cloog_Domain_from_ppl_Polyhedron): Same.
	(new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
	(new_C_Polyhedron_from_Cloog_Matrix): Same.
	(insert_constraint_into_matrix): Same.
	* graphite-ppl.c:
	Added graphite-cloog-util.h to include statements.
	(new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
	(new_Cloog_Domain_from_ppl_Polyhedron): Same.
	(new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
	(new_C_Polyhedron_from_Cloog_Matrix): Same.
	(insert_constraint_into_matrix): Same.
	(ppl_Constrain_System_number_of_constraints): Same.
	(new_Cloog_Matrix_from_ppl_Constraint_System): Same.
	(oppose_constraint): Same.
	(cloog_matrix_to_ppl_constraint): Same.
	(new_Constraint_System_from_Cloog_Matrix): Same.
	* graphite-ppl.h:
	(new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
	graphite-cloog-util.h.
	(new_Cloog_Domain_from_ppl_Polyhedron): Same.
	(new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
	(new_C_Polyhedron_from_Cloog_Matrix): Same.
	(insert_constraint_into_matrix): Same.

2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-clast-to-gimple.c
	(precision_for_value): Resolve value_* calls to matching mpz_* calls.
	(precision_for_interval): Same.
	(gcc_type_for_interval): Same.
	(compute_type_for_level): Same.
	* graphite-interchange.c
	(lst_interchange_profitable_p): Same.
	* graphite-poly.c
	(psct_scattering_dim_for_loop_depth): Same.
	* graphite-ppl.c
	(ppl_max_for_le_pointset): Same.
	(ppl_min_for_le_pointset): Same.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
	(rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
	rewrite_close_phi_out_of_ssa.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
	rename_map.
	* sese.c (debug_rename_map): Same.
	(get_rename): Same.
	(set_rename): Same.
	(rename_variables_in_stmt): Same.
	(expand_scalar_variables_call): Same.
	(expand_scalar_variables_ssa_name): Same.
	(expand_scalar_variables_expr): Same.
	(expand_scalar_variables_stmt): Same.
	(expand_scalar_variables): Same.
	(rename_variables): Same.
	(graphite_copy_stmts_from_block): Same.
	(copy_bb_and_scalar_dependences): Same.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (copy_renames): Removed.
	(translate_clast_for): Do not call copy_renames.
	(translate_clast_guard): Same.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
	(rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
	before rewrite_cross_bb_scalar_deps.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
	Early return in when flag_associative_math is not set.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
	of SSA copies on edges except for loop->latch.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
	Split out of rewrite_reductions_out_of_ssa.
	* graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
	Declared.
	* graphite.c (graphite_transform_loops): Call it.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.

2010-08-11  Alexander Monakov  <amonakov@ispras.ru>

	* dbgcnt.def (graphite_scop): New counter.
	* graphite.c: Include dbgcnt.h.
	(graphite_transform_loops): Use new counter to limit transformations.
	* Makefile.in (graphite.o): Depend on DBGCNT_H.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* passes.c (init_optimization_passes): Add pass_graphite.
	Schedule a pass_copy_prop before pass_graphite_transforms.
	* timevar.def (TV_GRAPHITE): Declared.
	* tree-pass.h (pass_graphite): Declared.
	* tree-ssa-loop.c (pass_graphite): New.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
	Remove calls to rename_nb_iterations and rename_sese_parameters.
	* graphite-clast-to-gimple.h (gloog): Update declaration.
	* graphite.c (graphite_transform_loops): Update call to gloog.
	* sese.c (rename_variables_in_expr): Removed.
	(rename_nb_iterations): Removed.
	(rename_sese_parameters): Removed.
	* sese.h (rename_nb_iterations): Removed.
	(rename_sese_parameters): Removed.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gloog): Remove call to
	sese_adjust_liveout_phis.
	* graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
	SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
	(rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
	rewrite_phi_out_of_ssa.
	* sese.c (get_vdef_before_sese): Removed.
	(sese_adjust_vphi): Removed.
	(sese_adjust_liveout_phis): Removed.
	* sese.h (sese_adjust_liveout_phis): Removed.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
	argument for the place after which to insert the out of SSA copy.
	(rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
	(rewrite_phi_out_of_ssa): Same.
	(rewrite_cross_bb_scalar_deps): Same.
	(insert_copyout): Removed.
	(insert_copyin): Removed.
	(translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
	insert_out_of_ssa_copy_on_edge instead of insert_copyout and
	insert_copyin.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
	(rewrite_reductions_out_of_ssa): Same.
	(rewrite_commutative_reductions_out_of_ssa): Same.
	(build_poly_scop): Do not call these functions.
	* graphite-sese-to-poly.h (build_poly_scop): Declared.
	(rewrite_reductions_out_of_ssa): Declared.
	(rewrite_commutative_reductions_out_of_ssa): Declared.
	* graphite.c (graphite_transform_loops): Call on every scop
	rewrite_commutative_reductions_out_of_ssa before calling
	rewrite_reductions_out_of_ssa and build_scop_bbs.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (dot_deps): Make system call to dotty run
	in background.
	(dot_deps_stmt): Same.
	* graphite-poly.c (dot_lst): Same.

2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
	phi_arg_in_outermost_loop.
	(remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
	(remove_invariant_phi): Same.

2010-08-11  Anatoly Sokolov  <aesok@post.ru>

	* target.def (output_addr_const_extra): New hook.
	* doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_asm_output_addr_const_extra): New function.
	* targhooks.h (default_asm_output_addr_const_extra): Declare.
	* final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
	target hook.

	* config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
	* config/i386/i386-protos.h (output_addr_const_extra): Remove.
	* config/i386/i386.h (output_addr_const_extra): Rename to...
	(i386_asm_output_addr_const_extra): ...this. Make static.
	(TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.

2010-08-11  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.

2010-08-11  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
	* config/stormy16/stormy16-lib2-cmpsi2.c: New file.
	* config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
	stormy16-lib2-cmpsi.c.

	* config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
	-O2.

2010-08-11  Joseph Myers  <joseph@codesourcery.com>

	* opts.h (struct cl_option_handler_func): Make handler take
	cl_decoded_option structure as parameter, not individual elements.
	(struct cl_option_handlers): Make callbacks take cl_decoded_option
	structure as parameter, not individual elements.
	(handle_option): Take cl_decoded_option structure as parameter,
	not individual elements.
	(handle_generated_option): Declare.
	* opts-common.c (handle_option): Take cl_decoded_option structure
	as parameter, not individual elements.  Update calls to callback
	and handler functions.
	(handle_generated_option): New.
	(read_cmdline_option): Update calls to callback functions and
	handle_option.
	* opts.c (common_handle_option, complain_wrong_lang,
	unknown_option_callback, post_handling_callback,
	lang_handle_option, target_handle_option): Take cl_decoded_option
	structure as parameter, not individual elements.
	(lang_handle_option, target_handle_option, common_handle_option):
	Assert option has at most one argument.
	(enable_warning_as_error): Call handle_generated_option instead of
	handle_option.  Do not pass -Werror argument as argument of
	generated option.

2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
	'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
	(SUBWORD_BOOL_CAS): Likewise.
	(SUBWORD_SYNC_OP): Likewise.
	(SUBWORD_TEST_AND_SET): Likewise.
	(FETCH_AND_OP_WORD): Parenthesise INF_OP
	(SUBWORD_SYNC_OP): Likewise.
	(OP_AND_FETCH_WORD): Likewise.

2010-08-10  Xinliang David Li  <davidxl@google.com>

	* tree-ssa-loop-ivopts.c (get_address_cost): Properly
	compute max/min offset in address.

2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-live.c: Include sbitmap.h.
	(remove_some_program_points_and_update_live_ranges): Use sbitmaps.
	Compress live ranges even more.

2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>

	* coverage.c (ctr_labels): Delete.

2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>

	PR bootstrap/45177
	* config/arm/arm.c (multiple_operation_profitable_p): Move xscale
	test here from arm_gen_load_multiple_1.
	(arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
	multiple_operation_profitable_p.

2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>

	* tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
	(fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.

2010-08-10  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
	after saving registers.  Assert that SSE registers are only saved
	with a sufficiently aligned frame.
	(ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
	remove stack_realign_fp handling.
	(ix86_expand_prologue): Save int registers before stack_realign_fp,
	and do not mark the stack alignment as frame related.
	(ix86_expand_epilogue): SP is now invalid with stack_realign_fp.

	* dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
	saves when re-aligning the stack.

2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>

	* basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
	* cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
	(alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.

2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>

	* dwarf2out.c (struct die_struct): Move die_tag to the end.

2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>

	* config/arm/iterators.md: New file.
	* config/arm/arm.md: Include iterators.md.
	(QHSI): Move to new file.
	(LTUGEU, cnb, optab, ior_xor): Likewise.
	* config/arm/iwmmxt.md (VMMX): Move to new file.
	(VSHFT, MMX_char): Likewise.
	* config/arm/neon.md (VD): Move to new file.
	(VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
	(VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
	(VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
	(V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
	(V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
	(V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
	(V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
	(V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
	(scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
	(Is_d_reg, V_mode_nunits): Likewise.
	* config/arm/vec-common.md (VALL): Move to new file.
	(VALLW, VINT, VINTW): Likewise.

2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>

	PR middle-end/45182
	* combine.c (make_compound_operation): Don't try to convert
	shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.

2010-08-10  Richard Guenther  <rguenther@suse.de>

	* tree.h (get_object_alignment): Adjust prototype.
	* builtins.c (get_object_alignment): Return unsigned int,
	drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
	and TARGET_MEM_REF properly.
	(get_pointer_alignment): Adjust.
	* emit-rtl.c (get_mem_align_offset): Adjust comment.
	(set_mem_attributes_minus_bitpos): Adjust.
	* tree-ssa-ccp.c (get_value_from_alignment): Adjust.

2010-08-10  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
	(copy_prop_visit_assignment): Simplify.
	(copy_prop_visit_stmt): Also visit assignments from
	constants.
	(copy_prop_visit_phi_node): Use operand_equal_p.

2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>

	* ipa-split.c (find_split_points): Free stack.

2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
	* tree.c (tree_node_kind): Delete corresponding entries.

2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>

	* alias.c (may_alias_p): Remove unused ret.

2010-08-09  Bingfeng Mei  <bmei@broadcom.com>

	* ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
	alias_sets_conflict_p.
	(walk_mems_1): Moved from alias.c.
	(insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
	in alias.c.
	(add_inter_loop_mem_dep): Use insns_may_alias_p now.
	* cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
	* alias.c (walk_mems_2): Moved to ddg.c.
	(walk_mems_1): Ditto.
	(insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
	to ddg.c.
	(nonoverlapping_memrefs_p): Add flag to guard offset-based memory
	disambiguation.
	*(may_alias_p): New function to check whether two memory expression
	may alias or not. Currently used in buidling inter-iteration memory
	dependence.
	*alias.h (nonoverlapping_memrefs_p): New flag as third argument.
	(insn_alias_sets_conflict_p): Removed
	*rtl.h (may_alias_p): New function prototype.

2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.c (nreverse): Assert that we don't have a BLOCK.

2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>

	* builtins.c (fold_builtin_next_arg): Use stdarg_p.
	* config/arm/arm.c (arm_get_pcs_model): Likewise.
	* config/avr/avr.c (init_cumulative_args): Likewise.
	* config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
	* config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
	* config/m68k/m68k.c (m68k_return_pops_args): Likewise.
	* config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
	* config/pa/pa.c (hppa_builtin_saveregs): Likewise.
	* config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
	* config/rs6000/rs6000.c (init_cumulative_args): Likewise.
	* dwarf2out.c (gen_subprogram_die): Likewise.
	* function.c (allocate_struct_function): Likewise.
	* c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
	(deserves_ellipsis): Delete.

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

	* tree-ssa-copy.c (cached_last_copy_of): Remove.
	(valueize_val): New function.
	(get_last_copy_of): Remove.
	(set_copy_of_val): Simplify.
	(dump_copy_of): Likewise.
	(copy_prop_visit_cond_stmt): Use valueize_val.
	(copy_prop_visit_phi_node): Properly handle unvisited names.
	Drop code managing copy-of chains.
	(init_copy_prop): Adjust.
	(fini_copy_prop): Likewise.
	(execute_copy_prop): Remove obsolete comment.

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

	PR middle-end/44632
	* function.c (gimplify_parameters): Do not clear addressable
	bit of the original parameter.

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

	PR middle-end/45212
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
	alignment from MEM_REF offset only if we took it from the
	base object.

2010-08-09  Eric Fisher  <joefoxreal@gmail.com>

	* doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.

2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>

	* c-tree.h (build_arg_info): Declare.
	* c-decl.c (build_arg_info): Define.
	(get_parm_info): Call it.  Delete initialization code.
	* c-parser.c (c_parser_parms_declarator): Likewise.
	(c_parser_parms_list_declaractor): Likewise.

2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>

	* c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
	(struct c_arg_info): Change type of tags field.
	* c-decl.c (grokdeclarator): Update for changed type of tags field.
	(get_parm_info): Likewise.
	(store_parm_decls_newstyle): Likewise.

2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
	(branch_island_list): Delete.
	(branch_islands): Declare.
	(add_compiler_branch_island): Adjust for branch_islands instead of
	branch_island_list.
	(macho_branch_islands): Likewise.
	(no_previous_def): Likewise.
	(get_prev_label): Likewise.

2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR boehm-gc/34544
	* gthr-posix.h (__gthread_start): Delete.
	(__gthread_active_init): Use pthread_default_stacksize_np instead of
	pthread_create to determine if hpux pthreads are active.
	* gthr-posix95.h (__gthread_start): Delete.
	(__gthread_active_init): Likewise use pthread_default_stacksize_np.

2010-08-08  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
	_WIN64 not expanded.

2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR target/45213
	* config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
	to output 32bit SFmode immediate as 8 byte sign extended value.

2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
	'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
	(SUBWORD_BOOL_CAS): Likewise.
	(SUBWORD_SYNC_OP): Likewise.
	(SUBWORD_TEST_AND_SET): Likewise.
	(FETCH_AND_OP_WORD): Parenthesise INF_OP
	(SUBWORD_SYNC_OP): Likewise.
	(OP_AND_FETCH_WORD): Likewise.

2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
	* config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
	(arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
	(arm_adjust_cost): Split into xscale_sched_adjust_cost and a
	generic part.
	(cortex_a9_sched_adjust_cost): New function.
	(xscale_sched_adjust_cost): New function.
	* config/arm/arm-protos.h (struct tune_params): New field
	sched_adjust_cost.
	* config/arm/arm-cores.def: Adjust costs for cortex-a9.

2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/44942
	* config/sparc/sparc.c (function_arg_advance): Always take into account
	the padding, if any.

2010-08-06  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (struct prop_value_d): Add mask member.
	(dump_lattice_value): Dump it.
	(get_default_value): Adjust.
	(get_constant_value): Likewise.
	(set_value_varying): Likewise.
	(set_lattice_value): Make sure to not go up the lattice
	with bitwise constant values.
	(get_value_for_expr): Handle ADDR_EXPRs.
	(value_to_double_int): New function.
	(get_value_from_alignment): Likewise.
	(do_dbg_cnt): Adjust.
	(ccp_lattice_meet): Handle partially constant values.
	(bit_value_unop_1): New function.
	(bit_value_binop_1): Likewise.
	(bit_value_unop): Likewise.
	(bit_value_binop): Likewise.
	(evaluate_stmt): Track partially constant values if
	flag_tree_bit_ccp is set.
	(ccp_fold_stmt): Dump if we folded a predicate.
	(ccp_visit_stmt): Adjust.
	* common.opt (ftree-bit-ccp): New flag.
	* doc/invoke.texi (ftree-bit-ccp): Document.
	* opts.c (decode_options): Enable bit-CCP at -O1.

2010-08-06  Alan Modra  <amodra@gmail.com>

	* doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
	and -mrelocatable-lib description.

2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>

	From Martin Thuresson  <martint@google.com>
	* postreload.c (reload_cse_simplify_operands): Use
	SET_REGNO_RAW instead of SET_REGNO.
	* caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
	SET_REGNO.
	* ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
	instead of SET_REGNO.
	* rtl.h (SET_REGNO_RAW): New macro.

2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>

	* rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
	computations.  Fix formatting issues.
	(num_sign_bit_copies1): Likewise.
	(canonicalize_condition): Likewise.

2010-08-05  Richard Henderson  <rth@redhat.com>

	* toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
	(floor_log2): Use clz_hwi.
	(exact_log2): Use ctz_hwi.
	* toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
	* builtins.c (fold_builtin_bitop): Use them.
	* simplify-rtx.c (simplify_const_unary_operation): Likewise.
	* combine.c (get_pos_from_mask): Use ctz_hwi.
	* double-int.c (double_int_ctz): Likewise.
	* explow.c (force_reg): Likewise.
	* tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.

2010-08-05  Richard Henderson  <rth@redhat.com>

	PR target/45189
	* config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
	the alignment constant is properly sign-extended.

2010-08-05  Richard Guenther  <rguenther@suse.de>

	* expr.c (store_expr): Use emit_block_move only if both
	source and target are MEMs.  Use store_bit_field if only
	the target is a MEM.

2010-08-05  Richard Henderson  <rth@redhat.com>

	PR debug/45188
	* dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
	(INCOMING_RETURN_ADDR_RTX): Likewise.
	(dwarf2out_do_frame): Remove conditional compilation.
	(dwarf2out_frame_init): Likewise.

2010-08-05  Nicolas Setton  <setton@adacore.com>

	* gcov.c (flag_display_progress): New static variable.
	(main): Display progress info on standard output if requested.
	(options): Add -d/--display-progress.
	(print_usage): Print them.
	(process_args): Handle them.
	* doc/gcov.texi: Document them.

2010-08-05  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_discover_new_direct_edges): New function.
	(ipcp_insert_stage): Redirect only edges not flagged with
	indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
	discovered constants.

2010-08-05  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (enum ipa_lattice_type): Changed comments.
	(struct ipa_param_descriptor): New fields types and
	cannot_devirtualize.
	(ipa_param_cannot_devirtualize_p): New function.
	(ipa_param_types_vec_empty): Likewise.
	(ipa_make_edge_direct_to_target): Declare.
	* ipa-cp.c: Fixed first stage driver name in initial comment,
	described devirtualization there too.
	(ipcp_analyze_node): Call ipa_analyze_params_uses.
	(ipcp_print_all_lattices): Print devirtualization info.
	(ipa_set_param_cannot_devirtualize): New function.
	(ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
	lattice to BOTTOM.
	(ipcp_init_stage): Merged into...
	(ipcp_generate_summary): ...its caller.
	(ipcp_change_tops_to_bottom): Also process type lists.
	(ipcp_add_param_type): New function.
	(ipcp_copy_types): Likewise.
	(ipcp_propagate_types): Likewise.
	(ipcp_propagate_stage): Also propagate types.
	(ipcp_need_redirect_p): Variable jump_func moved to its scope block.
	Also return true if propagated types require it.
	(ipcp_update_callgraph): Dump redirection info.
	(ipcp_process_devirtualization_opportunities): New function.
	(ipcp_const_param_count): Include known type information.
	(ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
	on new node.  Fixed formatting.
	* ipa-prop.c (make_edge_direct_to_target): Renamed to
	ipa_make_edge_direct_to_target and changed all callers.  Made
	externally visible.
	(ipa_node_duplication_hook): Duplicate types vector.
	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
	redirect outgoing calls for which we can't get a decl from the
	statement.  Check that we can get a decl from the call statement.
	* ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
	ipa_analyze_params_uses only when ipa-cp is disabled.
	* tree-inline.c (get_indirect_callee_fndecl): Removed.
	(expand_call_inline): Do not call get_indirect_callee_fndecl.
	* params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
	* Makefile.in (ipa-cp.o): Add gimple.h to dependencies.

2010-08-05  Uros Bizjak  <ubizjak@gmail.com>

	* expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
	temporary. Emit move from temporary to accum, so REG_EQUAL note will
	be attached to this insn in correct mode.

2010-08-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_decompose_address): Check for SI_REG
	using REGNO of base_reg directly.

2010-08-05  Jie Zhang  <jie@codesourcery.com>

	PR tree-optimization/45144
	* tree-sra.c (type_consists_of_records_p): Return false
	if the record contains bit-field.

2010-08-04  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (struct ix86_frame): Remove padding and
	to_allocate members.
	(ix86_compute_frame_layout): Don't store them.
	(ix86_can_use_return_insn_p): Use a more direct and more obviously
	correct condition for the position of the stack pointer.
	(ix86_expand_prologue): Compute remaining stack allocation based
	on the ultimate stack pointer offset.
	(ix86_expand_epilogue): Use more obvious expressions testing for
	the stack pointer already pointing to the saved registers.

	* config/i386/i386.c (ix86_expand_epilogue): Eliminate code
	duplication deconstructing the frame pointer.  Simplify
	deallocation of the local stack frame.

	* reg-notes.def (CFA_EXPRESSION): New.
	* dwarf2out.c (dwarf2out_frame_debug): Handle it.
	(dwarf2out_frame_debug_cfa_expression): New.
	(dwarf2out_frame_debug_def_cfa): Handle simple MEMs.

	* config/i386/i386.h (struct machine_frame_state): Add realigned flag.
	* config/i386/i386.c (ix86_expand_prologue): Set it.
	(ix86_expand_epilogue): Clear it.
	(ix86_emit_save_reg_using_mov):	For registers saved in a realigned
	context, add REG_CFA_EXPRESSION notes.

	* config/i386/i386.h (struct machine_frame_state): Rename from
	machine_cfa_state.  Add members tracking SP and FP regardless
	of the current CFA register.
	(ix86_cfa_state): Remove.
	* config/i386/i386.c (struct ix86_frame): Add reg_save_offset
	and sse_reg_save_offset members.
	(ix86_compute_frame_layout): Set them.
	(gen_push): Increment sp_offset too.
	(choose_baseaddr_len, choose_baseaddr): New.
	(ix86_emit_save_reg_using_mov): New.
	(ix86_emit_save_regs_using_mov): Use it.
	(ix86_emit_save_sse_regs_using_mov): Likewise.
	(ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
	compare vs the saved red_zone_offset.
	(pro_epilogue_adjust_stack): Adjust sp_offset.
	(ix86_adjust_stack_and_probe): Likewise.
	(ix86_expand_prologue): Set up, use, and validate the new
	frame_state_info members.  Use gen_frame_mem.
	(ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
	(ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
	new frame_state_info members.
	(ix86_emit_leave): Likewise.
	(ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
	out-of-range stack pointer offsets here.
	(ix86_emit_restore_sse_regs_using_mov): Likewise.
	(ix86_expand_epilogue): Use and validate the new frame_state_info
	members.  Break up and simplify the logic selecting the
	restore_regs_via_mov code path.  Ensure that there will be no
	out-of-range stack pointer offsets.

	* config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.

	* config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
	argument name to reflect the expected tree; fix indentation.
	(ix86_asm_output_function_label): Output the entire 32-bit
	ms_hook here as bytes ...
	(ix86_expand_prologue): ... not here as insns.  Attach the
	unwind info for the ms_hook to a blockage insn.
	(ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
	(ix86_ms_bitfield_layout_p): Fix indentation.
	* config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.

	* config/i386/i386.c (ix86_using_red_zone): New.
	(ix86_compute_frame_layout, ix86_add_cfa_restore_note,
	ix86_expand_prologue, ix86_force_to_memory): Use it.

	* config/i386/i386.c (ix86_expand_prologue): Simplify logic
	saving the int registers.

	* dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
	and DWARF2_UNWIND_INFO conditional compilation.

2010-08-04  Richard Henderson  <rth@redhat.com>

	PR debug/45171
	* dwarf2out.c (gen_typedef_die): Don't re-generate the die of
	an is_naming_typedef_decl.

2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/45162
	* df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
	* dce.c (word_dce_process_block): Likewise.

2010-08-04  Steve Ellcey  <sje@cup.hp.com>

	PR target/44583
	* config/ia64/constraints.md (Z): New.
	* config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
	(xfreg_or_signed_fp01_operand): New.
	* config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
	with fr_reg_or_signed_fp01_operand and constraint G with Z.
	(subsf3): Ditto.
	(*maddsf4): Ditto.
	(*msubsf4): Ditto.
	(adddf3): Ditto.
	(adddf3_trunc): Ditto.
	(subdf3): Ditto.
	(*subdf3_trunc): Ditto.
	(*madddf4): Ditto.
	(*madddf4_trunc): Ditto.
	(*msubdf4): Ditto.
	(*msubdf4_trunc): Ditto.
	(addxf3): Replace xfreg_or_fp01_operand with
	xfreg_or_signed_fp01_operand and constraint G with Z.
	(*addxf3_truncsf): Ditto.
	(*addxf3_truncdf): Ditto.
	(subxf3): Ditto.
	(*subxf3_truncsf): Ditto.
	(*subxf3_truncdf): Ditto.
	(*maddxf4): Ditto.
	(*maddxf4_truncsf): Ditto.
	(*maddxf4_truncdf): Ditto.
	(*msubxf4): Ditto.
	(*msubxf4_truncsf): Ditto.
	(*msubxf4_truncdf): Ditto.

2010-08-04  Richard Guenther  <rguenther@suse.de>

	* alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
	if either alias-set is zero.

2010-08-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
	* tree-ssa-ccp.c: ... here.
	* tree-ssa-copy.c: ... and here.
	* tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
	value_range_t): Move ...
	* tree-vrp.c: ... here.
	* tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
	(substitute_and_fold): Adjust prototype.
	* tree-ssa-propagate.c (replace_uses_in): Adjust.
	(replace_phi_args_in): Likewise.
	(substitute_and_fold): Take callback to query lattice instead
	of pointer to lattice.  Replace SSA name defs with lattice
	values first.
	* tree-ssa-ccp.c (ccp_finalize): Adjust.
	* tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
	(get_value): New function.
	(fini_copy_prop): Adjust.
	* tree-vrp.c (vrp_finalize): Adjust.

2010-08-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45176
	* expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
	points-to set for original MEM_REF.

2010-08-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (get_constant_value): New function.
	(get_rhs_assign_op_for_ccp): Remove.
	(valueize_op): New function.
	(ccp_fold): Use get_constant_value and valueize_op.
	(fold_const_aggregate_ref): Likewise.
	(ccp_fold_stmt): Likewise.
	(visit_assignment): Simplify.

2010-08-04  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
	* double-int.h (double_int_ctz): Declare.
	* double-int.c (double_int_ctz): New function.

2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
	Define.
	picochip_expand_movmemhi : Expand movmem pattern.
	* config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
	Declare.
	* config/picochip/picochip.md (movmemhi) : New pattern.

2010-08-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.

2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>

	* simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
	NEG as operand of a MULT by merging it with the other operand.
	* combine.c (make_compound_operation): Use trunc_int_for_mode when
	generating a MULT with constant.  Canonicalize PLUS and MINUS involving
	MULT.
	* config/arm/constraints.md (M): Examine only 32 bits of a
	HOST_WIDE_INT.
	* config/arm/predicates.md (power_of_two_operand): Likewise.

2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
	non-NOTE insns.

2010-08-03  Jan Hubicka  <jh@suse.cz>

	* ipa-split.c (struct split_point): Add split_part_set_retval.
	(find_retval): Forward declare.
	(test_nonssa_use, mark_nonssa_use): Special case return by reference.
	(consider_split): Compute current->split_part_set_retval.
	(visit_bb): Do not look into return value.
	(split_function): Handle !split_part_set_retval

2010-08-03  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (completely_scalarize_record): New parameter REF, create
	its own access->expr intead of using build_ref_for_offset.

2010-08-03  Joseph Myers  <joseph@codesourcery.com>

	* config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
	* config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
	* config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
	* config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
	* config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
	* config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
	* config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
	DEFAULT_SWITCH_TAKES_ARG.
	* config/rx/rx.opt (-patch=): Remove option.
	* config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
	* defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
	* doc/invoke.texi (RX Options): Remove -patch=.
	* gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
	(option_map): Remove --profile-blocks, --quiet and --silent.

2010-08-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
	* config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
	(ix86_expand_branch): Add op0 and op1 arguments.  Do not access
	ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
	Update calls to ix86_expand_compare and ix86_expand_branch.
	(ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
	ix86_expand_compare.
	(ix86_expand_compare): Add op0 and op1 arguments.  Do not access
	ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
	Make static.
	(ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
	and ix86_compare_op1.  Update calls to ix86_expand_compare.
	(ix86_expand_int_movcc): Ditto.
	(ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
	* config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
	(ix86_expand_setcc): Ditto.
	(ix86_expand_compare): Remove prototype.
	* config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
	ix86_compare_op0 and ix86_compare_op1.  Update calls
	to ix86_expand_branch to directly pass operands[1] and operands[2].
	(cbranchxf4): Ditto.
	(cbranch<MODEF:mode>4): Ditto.
	(cbranchcc4): Ditto.
	(cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
	Update calls to ix86_expand_setcc to directly pass operands[2] and
	operands[3].
	(cstorexf4): Ditto.
	(cstore<MODEF:mode>4): Ditto.
	(cstorecc4): Ditto.

2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/45063
	* caller-save.c (save_call_clobbered_regs): Remove regs from
	hard_regs_saved when they are set.

2010-08-02  Uros Bizjak  <ubizjak@gmail.com>

	PR target/41089
	* config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
	as volatile.

2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>

	* common.opt (ftree-loop-distribute-patterns): New.
	* invoke.texi (-ftree-loop-distribute-patterns): Documented.
	* opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
	at -O3.
	* tree-data-ref.c (stores_zero_from_loop): New.
	* tree-data-ref.h (stores_zero_from_loop): Declared.
	* tree-loop-distribution.c (tree_loop_distribution): Call
	stores_zero_from_loop.
	(tree_loop_distribution): Check flag_tree_loop_distribute_patterns.

2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>

	* postreload.c (reload_cse_simplify_operands): Take attribute enabled
	into account.

	* final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
	* config/arm/arm.c (thumb1_code): New variable.
	(arm_override_options): Set it.
	(thumb1_final_prescan_insn): Keep track of condition code status.
	(arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
	jumps that depend on them.
	* config/arm/arm.h (thumb1_code): Declare variable.
	(struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
	members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
	thumb1_cc_mode.
	(CC_STATUS_INIT): New macro.
	* config/arm/constraints.md (Pd): New constraint.
	* config/arm/predicates.md (noov_comparison_operator): New predicate.
	* config/arm/arm.md (is_thumb1): New define_attr.
	(conds): Set default to "clob" when generating Thumb1 code.
	(thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
	code are set.  Use two-operand assembly syntax.
	(thumb1_subsi3_insn): Condition codes are set.  Now a properly named
	pattern.
	(thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
	codes are set.  Use two-operand assembly syntax.
	(zero_extendhisi splitter): Remove constraints.
	(thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
	thumb1_movsf_insn): Set conds attribute as appropriate.
	(cbranchsi4_insn): Use condition code status from struct
	machine_function to determine whether the comparison can be eliminated.
	Discourage the alternative using high registers.
	(movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
	orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
	bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
	subsi3_cbranch): Delete.
	(movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
	one subtract and one cbranch insn.

	* config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
	thumb2_movdf_soft_insn): Delete patterns.
	* config/arm/arm.md (arm_pool_range, thumb2_pool_range,
	arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
	(pool_range, neg_pool_range): Use them to define defaults.
	(movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
	and allow for TARGET_32BIT.

	PR target/40457
	* config/arm/arm.h (arm_regs_in_sequence): Declare.
	* config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
	load_multiple_sequence, store_multiple_sequence): Delete
	declarations.
	(arm_gen_load_multiple, arm_gen_store_multiple): Adjust
	declarations.
	* config/arm/ldmstm.md: New file.
	* config/arm/arm.c (arm_regs_in_sequence): New array.
	(load_multiple_sequence): Now static.  New args SAVED_ORDER,
	CHECK_REGS.  All callers changed.
	If SAVED_ORDER is nonnull, copy the computed order into it.
	If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
	(store_multiple_sequence): Now static.  New args NOPS_TOTAL,
	SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
	If SAVED_ORDER is nonnull, copy the computed order into it.
	If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
	like REGS.  Handle Thumb mode.
	(arm_gen_load_multiple_1): New function, broken out of
	arm_gen_load_multiple.
	(arm_gen_store_multiple_1): New function, broken out of
	arm_gen_store_multiple.
	(arm_gen_multiple_op): New function, with code from
	arm_gen_load_multiple and arm_gen_store_multiple moved here.
	(arm_gen_load_multiple, arm_gen_store_multiple): Now just
	wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
	changed.
	(gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
	* config/arm/predicates.md (commutative_binary_operator): New.
	(load_multiple_operation, store_multiple_operation): Handle more
	variants of these patterns with different starting offsets.  Handle
	Thumb-1.
	* config/arm/arm.md: Include "ldmstm.md".
	(ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
	ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
	stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
	peepholes): Delete.
	* config/arm/ldmstm.md: New file.
	* config/arm/arm-ldmstm.ml: New file.

	* config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
	if statement which adds extra costs to frame-related expressions.

2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (COSTS_N_INSNS): Remove definition.

2010-08-01  Uros Bizjak  <ubizjak@gmail.com>

	PR target/45142
	* config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
	alternative 2.
	(vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
	split V4SI operands.

2010-08-01  Anatoly Sokolov  <aesok@post.ru>

	* config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
	* config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
	* config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
	(TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.

2010-07-31  Kai Tietz  <kai.tietz@onevision.com>

	* cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
	LOCAL_INCLUDE_DIR.

2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>

	* tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
	used in the call to optab_for_tree_code.  Fix the second
	is_widening_mult_p call.  Check that both unwidened operands
	have the same sign.

2010-07-31  John Tytgat  <John.Tytgat@aaug.net>

	* config/arm/arm.c (arm_function_arg): Remove superfluous test.

2010-07-31  Anatoly Sokolov  <aesok@post.ru>

	* config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.

2010-07-30  DJ Delorie  <dj@redhat.com>

	* config/rx/predicates.md (rx_constshift_operand): New.
	* config/rx/rx.md (zs_cond): New.
	(cbranchsi4): Remove mode.
	(*cbranchsi4_<code>): Likewise.
	(*tstbranchsi4_<code>): New.
	(*tstbranchsi4r_<code>): New.
	(*tstbranchsi4m_eq): New.
	(*tstbranchsi4m_ne): New.
	(cbranchsf4): Remove mode.
	(*cbranchsf4_<code>): Likewise.

2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>

	* rtlanal.c (simplify_subreg_regno): Don't treat
	HARD_FRAME_POINTER_REGNUM specially.

2010-07-30  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (-G): Don't define option here.
	* config/g.opt: New.
	* config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
	rs6000/powerpc and score targets.
	* opts.c (common_handle_option): Don't handle -G here.
	* config/alpha/alpha.c (alpha_handle_option): Handle -G.
	* config/frv/frv.c (frv_handle_option): Handle -G.
	* config/ia64/ia64.c (ia64_handle_option): Handle -G.
	* config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
	* config/m32r/m32r.c (m32r_handle_option): Handle -G.
	* config/mips/mips.c (mips_handle_option): Handle -G.
	* config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
	* config/score/score.c (score_handle_option): Handle -G.

2010-07-30  Anatoly Sokolov  <aesok@post.ru>

	* config/mmix/mmix.c: Include basic-block.h.

2010-07-30  Jakub Jelinek  <jakub@redhat.com>

	PR debug/45055
	PR rtl-optimization/45137
	* rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
	prototypes.
	* emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
	New functions.
	* combine.c (next_nonnote_nondebug_insn): Removed.
	* ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
	* haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
	* sched-deps.c (sched_analyze_insn): Likewise.
	(fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
	* rtlanal.c (canonicalize_condition): Likewise.
	* postreload.c (reload_combine_recognize_pattern): Likewise.
	(reload_cse_move2add): Use next_nonnote_nondebug_insn.

2010-07-29  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (int_cond): Remove code iterator.
	(fp_cond): Ditto.
	(cbranch<mode>4): Use ordered_comparison_operator predicate
	for operator0.
	(cstore<mode>4): Ditto for operator1.
	(mov<SWIM:mode>cc and corresponding splitter): Ditto.
	(add<mode>cc): ditto.

2010-07-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45141
	* expr.c (expand_expr_real_1): Check for not handled base address.

2010-07-30  Richard Guenther  <rguenther@suse.de>

	* ipa-prop.c (ipa_modify_formal_parameters): Use
	build_distinct_type_copy.

2010-07-30  Anthony Green  <green@moxielogic.com>

	* config/moxie/rtems.h: New file.
	* config.gcc: Add moxie-rtems support.

2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>

	* dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
	df flags as in run_fast_df_dce.

2010-07-29  Jakub Jelinek  <jakub@redhat.com>

	Revert:
	2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>

	* rtl.def (NOTE): Swap operands 4 and 5.
	* rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
	NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
	Adjust accordingly.
	* gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.

2010-07-29  Jakub Jelinek  <jakub@redhat.com>

	PR debug/45110
	* dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
	(gen_formal_types_die): Add DW_AT_object_pointer in methods.
	(gen_subprogram_die): Likewise.  Remove it when removing declaration's
	formal parameters.
	(gen_decl_die): Change return type to dw_die_ref, return what
	gen_formal_parameter_die returned.

2010-07-29  Martin Jambor  <mjambor@suse.cz>

	* dbgcnt.def (eipa_sra): New counter.
	* tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.

2010-07-29  Xinliang David Li  <davidxl@google.com>

	PR bootstrap/45119
	* tree-ssa-loop-ivopts.c (get_address_cost): Revert change
	in revision 162652.

2010-07-29  Richard Guenther  <rguenther@suse.de>

	* timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
	(TV_TREE_STORE_CCP): Likewise.
	(TV_TREE_REDPHI): Likewise.

2010-07-29  Richard Guenther  <rguenther@suse.de>

	* double-int.h (double_int_and_not): New function.
	* combine.c (try_combine): Use it.
	* tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.

2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/42575
	* dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
	Argument AU removed.  All callers changed.  Ignore artificial refs.
	Use return value of df_word_lr_simulate_defs to decide whether an insn
	is necessary.
	(fast_dce): Rename arg to WORD_LEVEL.
	(run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
	static.
	(pass_fast_rtl_byte_dce): Delete.
	* dce.h (run_word_dce): Declare.
	* df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
	All callers changed.  Simplify code to only deal with two-word regs.
	* df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
	(DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
	(DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
	(DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
	(struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
	(df_word_lr_mark_ref): Declare.
	(df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
	df_word_lr_simulate_uses): Declare or rename from byte variants.
	(df_byte_lr_simulate_artificial_refs_at_top,
	df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
	df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
	declarations.
	(df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
	(enum df_mm): Delete.
	* df-byte-scan.c: Delete file.
	* df-problems.c (df_word_lr_problem_data): Renamed from
	df_byte_lr_problem_data, all members deleted except for
	WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
	(df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
	df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
	df_byte_lr_get_regno_len, df_byte_lr_check_regs,
	df_byte_lr_confluence_0): Delete functions.
	(df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
	callers changed.
	(df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
	Don't initialize members that were deleted, don't try to discover data
	about registers.  Ignore hard regs.
	(df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
	(df_word_lr_mark_ref): New function.
	(df_word_lr_bb_local_compute): Renamed from
	df_byte_bb_lr_local_compute; all callers changed.  Use
	df_word_lr_mark_ref.  Assert that artificial refs don't include
	pseudos.  Ignore hard registers.
	(df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
	Assert that exit block uses don't contain pseudos.
	(df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
	(df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
	callers changed.  Ignore hard regs.
	(df_word_lr_transfer_function): Renamed from
	df_byte_lr_transfer_function; all callers changed.
	(df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
	(df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
	changed.
	(df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
	callers changed.
	(problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
	confluence operator 0 set to NULL.
	(df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
	callers changed.
	(df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
	Return bool, true if bitmap changed or insn otherwise necessary.
	All callers changed.  Simplify using df_word_lr_mark_ref.
	(df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
	all callers changed.  Simplify using df_word_lr_mark_ref.
	* lower-subreg.c: Include "dce.h"
	(decompose_multiword_subregs): Call run_word_dce if df available.
	* Makefile.in (lower-subreg.o): Adjust dependencies.
	(df-byte-scan.o): Delete.
	* timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.

2010-07-29  Richard Guenther  <rguenther@suse.de>

	* tree.c (build_vector): Assert that the vector constant
	has enough elements.
	(build_vector_from_ctor): Pad with trailing zeros.

2010-07-29  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45120
	* tree-ssa-structalias.c (get_constraint_for_component_ref):
	Handle offset in DEREFs properly.
	(get_constraint_for_1): Handle MEM_REF offset properly.

2010-07-29  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45034
	* convert.c (convert_to_integer): Always use an unsigned
	type for narrowed negate and bitwise not.

2010-07-29  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
	to outer loop when creating reduction epilogue for double reduction,
	and switch back to the inner loop when updating the phi nodes.
	Update uses of outer loop exit phi nodes in double reduction (instead
	of uses of reduction).

2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
	popcount on power7 and parity on power6 systems.
	(rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
	(rs6000_emit_parity): Add support for power6 prtyd/prtyw
	instructions.

	* config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
	(UNSPEC_PARITY): Ditto.
	(SFDF): New iterator for SF/DF.
	(rreg2): New mode attribute for floating register constraint.
	(TARGET_FLOAT): New mode attribute for whether single/double float
	is supported.
	(popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
	pattern.
	(parity<mode>2_cmpb): New insn for parity on power6 and newer
	machines.
	(copysign<mode>3): Combine copysignsf3, copysigndf3 into one
	pattern.  Add support for fcpsgn instruction added in power6.
	(copysignsf3): Delete.
	(copysigndf3): Delete.
	(copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
	instead of if_then_else in RTL to avoid problems with -0.

	* config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
	of if_then_else to mirror scalar code.
	(vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
	rs6000.md.

	* config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
	instead of if_then_else.

2010-07-28  Xinliang David Li  <davidxl@google.com>

	* tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
	(dump_cand): Dump var_before/after.
	(htab_inv_expr_eq): New function.
	(htab_inv_expr_hash): New function.
	(tree_ssa_iv_optimize_init): Support pseudo invariants.
	(add_candidate_1): consider base type precision.
	(set_use_iv_cost): New parameter.
	(adjust_setup_cost): Use profile information.
	(get_address_cost): Do not hard code width in computing address
	offset limits.
	(compare_aff_trees): New function.
	(get_loop_invariant_expr_id): New function.
	(get_computation_cost_at): New parameter and use profile information.
	(get_computation_cost): New parameter.
	(determine_use_iv_cost_generic): Pass new parameter.
	(determine_use_iv_cost_address): Ditto.
	(determine_use_iv_cost_condition): Ditto.
	(autoinc_possible_for_pair): Ditto.
	(determine_use_iv_costs): More dumps.
	(iv_ca_get_num_inv_exprs): New function.
	(iv_ca_recount_cost): Consider loop invariants in register pressure
	cost.
	(iv_ca_add_use): New parameter.
	(iv_ca_dump): Better dumping.
	(iv_ca_extend): New parameter.
	(try_add_cand_for): Attempt to get better partial solution.
	(try_improve_iv_set): Pass new parameter to iv_ca_extend.
	(create_new-ivs): More dumps.
	(rewrite_use_compare): Ditto.
	(free_loop_data): More cleanup.
	(treee_ssa_iv_optimize_finalize): Ditto.

2010-07-28  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
	* config/i386/i386.c (ix86_profile_before_prologue): New.
	(override_options): Add special handling for -mfentry.
	(ix86_function_regparm): Likewise.
	(ix86_function_sseregparm): Likewise.
	(ix86_frame_pointer_required): Likewise.
	(ix86_expand_prologue): Check for ms_hook_prologue.
	(x86_function_profiler): Adjust mcount output.
	(TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
	* config/i386/i386.opt (mfentry): New.
	* doc/invoke.texi (mfentry): Add documentation.
	* doc/tm.texi: Regenerated..
	* doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
	* final.c (final_start_function): Replace macro
	PROFILE_BEFORE_PROLOGUE by target hook.
	* function.c (thread_prologue_and_epilogue_insns): Likewise.
	* target.def (profile_before_prologue): New hook.
	* targhooks.c (default_profile_before_prologue): New.
	* targhooks.h (default_profile_before_prologue): New.

2010-07-28  Jakub Jelinek  <jakub@redhat.com>

	PR debug/45105
	* gcse.c (hoist_code): Use FOR_BB_INSNS macro.

	PR debug/45103
	* dwarf2out.c (dwarf2out_var_location): Always consider
	NOTE_DURING_CALL_P notes, even when not followed by real instructions.

2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR rtl-optimization/45107
	* gcse.c (hash_scan_set): Use max_distance for gcse-las.

2010-07-28  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
	(set_lattice_value): Do not query an old default value.
	(get_value_for_expr): New function.  Properly canonicalize
	float values.
	(ccp_visit_phi_node): Use it.

2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/arm/arm.c (arm_pcs_default): Remove static.
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
	__ARM_PCS_VFP to indicate soft/hard-float calling convention.
	(arm_pcs_default): Declare.

2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>

	* config/rs6000/rs6000.c (rs6000_override_options):
	Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
	... to darwin_rs6000_override_options.
	(rs6000_return_in_memory): Update preceding comment for darwin
	64 bit ABI.  Use TARGET_MACHO inline.
	(rs6000_darwin64_struct_check_p): New.
	(function_arg_advance): Use rs6000_darwin64_struct_check_p.
	(function_arg): Likewise.
	(rs6000_arg_partial_bytes): Likewise.
	(rs6000_function_value): Likewise.

2010-07-28  Andi Kleen  <ak@linux.intel.com>

	* lto-opts.c (lto_file_read_options): Add loop over all inputs.

2010-07-28  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44903
	* builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
	targets try harder to not generate unaligned accesses.

2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR rtl-optimization/45101
	* gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
	for gcse-las.

2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/44885
	* tree-sra.c (find_param_candidates): Skip pointer types to arrays
	with non-aliased component.

2010-07-28  Joseph Myers  <joseph@codesourcery.com>

	* config/darwin-driver.c (SWITCH_TAKES_ARG,
	WORD_SWITCH_TAKES_ARG): Remove.
	* cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
	* defaults.h (DEFAULT_SWITCH_TAKES_ARG,
	DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
	(SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
	definitions from gcc.c.
	* gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
	defaults.h.
	* gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
	Move to defaults.h.
	* opts-common.c: Include tm.h.
	(decode_cmdline_option): Use SWITCH_TAKES_ARG and
	WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
	Handle more than one argument.  Set canonical_option_num_elements.
	(decode_cmdline_options_to_array): Set
	canonical_option_num_elements and trailing elements of
	canonical_option.
	* opts.h (struct cl_decoded_option): Allow four elements in
	canonical_option.  Add field canonical_option_num_elements.
	* Makefile.in (opts-common.o): Update dependencies.

2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/44790
	PR middle-end/44993
	* expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
	sure the base has address_mode before adding the offset.

2010-07-27  Xinliang David Li  <davidxl@google.com>

	* tree-flow.h (create_mem_ref): Add one new parameter.
	* tree-ssa-address.c (create_mem_ref): New parameter.
	(addr_to_parts): Ditto.
	(move_variant_to_index): New function.
	* tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.

2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>

	* rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
	4 and 5.
	* rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
	NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
	NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
	* gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
	CODE_LABELs and NOTEs.
	* caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
	* combine.c (try_combine): Likewise.
	* ira.c (setup_prohibited_mode_move_regs): Likewise.
	* print-rtl.c (print_rtx): Start REG_NOTES on a new line.

2010-07-27  Joseph Myers  <joseph@codesourcery.com>

	* coretypes.h (struct cl_option_handlers): Declare.
	* hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
	* hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
	* langhooks-def.h (lhd_handle_option): Declare.
	(LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
	* langhooks.c (lhd_handle_option): New.
	* langhooks.h (struct lang_hooks): Update prototype and return
	value type of handle_option hook.
	* optc-gen.awk: Generate target_flags_explicit definition for the
	driver.
	* opts-common.c: Include diagnostic.h.
	(handle_option): Move from opts.c.  Update prototype and return
	value type.  Use handlers structure.
	(read_cmdline_option): Move from opts.c.  Update prototype.  Use
	handlers structure.
	(set_option): Move from opts.c.
	* opts.c (common_handle_option): Update prototype and return value
	type.  Update calls to handle_option and enable_warning_as_error.
	(unknown_option_callback, post_handling_callback,
	lang_handle_option, target_handle_option): New.
	(handle_option, read_cmdline_option): Move to opts-common.c.
	(read_cmdline_options): Update prototype.  Update call to
	read_cmdline_option.
	(decode_options): Initialize and use handlers structure.
	(set_option): Move to opts-common.c.
	(enable_warning_as_error): Update prototype.  Update call to
	handle_option.
	* opts.h (struct cl_option_handler_func, struct
	cl_option_handlers): New.
	(handle_option, enable_warning_as_error): Update prototypes.
	(read_cmdline_option): Declare.
	* Makefile.in (opts-common.o): Update dependencies.

2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/arm/arm.c (params.h): Include.
	(arm_override_options): Tune gcse-unrestricted-cost.
	* config/arm/t-arm (arm.o): Define dependencies.

2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR target/42495
	PR middle-end/42574
	* basic-block.h (get_dominated_to_depth): Declare.
	* dominance.c (get_dominated_to_depth): New function, use
	get_all_dominated_blocks as a base.
	(get_all_dominated_blocks): Use get_dominated_to_depth.

	* gcse.c (occr_t, VEC (occr_t, heap)): Define.
	(hoist_exprs): Remove.
	(alloc_code_hoist_mem, free_code_hoist_mem): Update.
	(compute_code_hoist_vbeinout): Add debug print outs.
	(hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.

	* params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
	quadratic behavior.
	* params.h (MAX_HOIST_DEPTH): New macro.
	* doc/invoke.texi (max-hoist-depth): Document.

2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR rtl-optimization/40956
	* config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
	constants.

2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR target/42495
	PR middle-end/42574
	* config/arm/arm.c (legitimize_pic_address): Use
	gen_calculate_pic_address pattern to emit calculation of PIC address.
	(will_be_in_index_register): New function.
	(arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
	(thumb1_legitimate_address_p): Use it provided !strict_p.
	* config/arm/arm.md (calculate_pic_address): New expand and split.

2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR target/42495
	PR middle-end/42574
	* config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
	* config/arm/arm.md (define_split "J", define_split "K"): Make
	IRA/reload friendly.

2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* gcse.c (insert_insn_end_basic_block): Update signature, remove
	unused checks.
	(pre_edge_insert, hoist_code): Update.

2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR target/42495
	PR middle-end/42574
	* gcse.c (hoist_expr_reaches_here_p): Remove excessive check.

2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* gcse.c (hoist_code): Generate new pseudo for every new set insn.

2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR rtl-optimization/40956
	PR target/42495
	PR middle-end/42574
	* gcse.c (compute_code_hoist_vbeinout): Consider more expressions
	for hoisting.
	(hoist_code): Count occurences in current block too.

2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* gcse.c (struct expr:max_distance): New field.
	(doing_code_hoisting_p): New static variable.
	(want_to_gcse_p): Change signature.  Allow constrained hoisting of
	simple expressions, don't change behavior for PRE.  Set max_distance.
	(insert_expr_in_table): Set new max_distance field.
	(hash_scan_set): Update.
	(hoist_expr_reaches_here_p): Stop search after max_distance
	instructions.
	(find_occr_in_bb): New static function.  Use it in ...
	(hoist_code): Calculate sizes of basic block before any changes are
	done.  Pass max_distance to hoist_expr_reaches_here_p.
	(one_code_hoisting_pass): Set doing_code_hoisting_p.

	* params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
	(PARAM_GCSE_UNRESTRICTED_COST): New parameters.
	* params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
	macros.
	* doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
	Document.

2010-07-27  Jeff Law  <law@redhat.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	* gcse.c (compute_transpout, transpout): Remove, move logic
	to prune_expressions.
	(compute_pre_data): Move pruning of trapping expressions ...
	(prune_expressions): ... here.  New static function.
	(compute_code_hoist_data): Use it.
	(alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.

2010-07-27  Xinliang David Li  <davidxl@google.com>

	* tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
	(rewrite_use_address): Adjust iv update position when needed.

2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* dbgcnt.def (hoist_insn): New debug counter.
	* gcse.c (hoist_code): Use it.

2010-07-27  Xinliang David Li  <davidxl@google.com>

	* tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
	(niter_for_single_dom_exit): Passes additional parameter.
	(iv_period): Fix comments.
	(may_eliminate_iv): Handles multiple exit loops properly.
	(free_tree_niter_desc): New function.
	(free_loop_data): Frees up loop iteration descriptors.

2010-07-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/44542
	* cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
	of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
	instead of MAX_SUPPORTED_STACK_ALIGNMENT.
	(expand_one_var): Don't consider DECL_ALIGN for variables for
	which expand_one_stack_var_at has been already called.

	PR testsuite/44701
	* doc/md.texi: Clarify m and es constraints on PowerPC and m and S
	constraints on IA-64.

2010-07-27  Jie Zhang  <jie@codesourcery.com>

	PR target/44290
	Revert:
	2010-07-23  Jie Zhang  <jie@codesourcery.com>

	* tree-sra.c (ipa_sra_preliminary_function_checks): Return
	false if ! tree_versionable_function_p.

2010-07-27  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (add_data_member_location_attribute): Use
	add_AT_unsigned instead of add_AT_int if offset is non-negative.

2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>

	* postreload.c (try_replace_in_use): New static function.
	(reload_combine_recognize_const_pattern): Use it here.  Allow
	substituting into a final add insn, and substituting into a memory
	reference in an insn that sets the reg.

2010-07-27  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (o): Add MissingArgError.
	* doc/options.texi (MissingArgError): Document.
	* hooks.c (hook_bool_constcharptr_size_t_false): Remove.
	* hooks.h (hook_bool_constcharptr_size_t_false): Remove.
	* langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
	(LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
	* langhooks.h (struct lang_hooks): Remove missing_argument.
	* optc-gen.awk: Handle MissingArgError and output new structure
	field initializers.
	* opts.c (read_cmdline_option): Use missing_argument_error field
	instead of missing_argument langhook.
	* opts.h (struct cl_option): Add missing_argument_error field.
	* system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.

2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>

	PR target/29090
	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
	Darwin64 ABI, for zero-sized objects.

2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>

	PR target/35491
	PR target/29090

	Merge from Apple local 4.2.1.
	2005-05-11  Stan Shebs  <shebs@apple.com>
	Fix 64-bit varargs for Darwin (Radar 4028089).
	* config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
	* config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
	Add argument, add case for 8-byte register half-filled with a float.
	(rs6000_darwin64_record_arg_advance_recurse): Detect and handle
	single-precision floats specially.

2010-07-27  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/44152
	* tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
	complex numbers for further check.
	(vect_supported_load_permutation_p): Check nodes with
	complex numbers.

2010-07-27  Joseph Myers  <joseph@codesourcery.com>

	* langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
	LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
	(LANG_HOOKS_INIT_OPTIONS): Update default definition.
	(LANG_HOOKS_INITIALIZER): Add new hooks.
	* langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
	* langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
	and complain_wrong_lang_p.  Update init_options prototype.
	* c-objc-common.c (c_initialize_diagnostics): First call
	c_common_initialize_diagnostics.
	* c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
	LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
	* coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
	* hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
	(hook_uint_void_0): New.
	* hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
	(hook_uint_void_0): New.
	* opts-common.c (decode_cmdline_option,
	decode_cmdline_options_to_array): Also fill in canonical_option field.
	* opts.c (complain_wrong_lang): Use langhook to determine whether
	to complain instead of special-casing LTO.
	(decode_options): Separate lang_mask determination with
	option_lang_mask hook from call of init_options hook.
	* opts.h (struct cl_decoded_option): Add canonical_option.

2010-07-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/45083
	* tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.

2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>

	* postreload.c (reload_combine_recognize_const_pattern): Move test
	for limiting the insn movement to the right scope.

	PR rtl-optimization/45051
	* reload1.c (delete_output_reload): Use refers_to_regno_p rather
	than reg_mentioned_p.

2010-07-26  Richard Henderson  <rth@redhat.com>

	PR target/44132
	* tree-emutls.c: New file.
	* Makefile.in (OBJS-common): Add it.
	* tree-pass.h (pass_ipa_lower_emutls): Declare.
	* passes.c (init_optimization_passes): Add it.

	* dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
	pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
	* expr.c (emutls_var_address): Delete.
	(expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
	* output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
	(emutls_finish): Delete.
	* toplev.c (compile_file): Don't call it.
	* tree.h (emutls_decl): Delete.
	* varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
	(emutls_finish, emutls_finalize_control_var): Delete.
	(emutls_object_type): Move to tree-emutls.c.
	(EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
	default_emutls_var_fields, get_emutls_object_type,
	get_emutls_init_templ_addr, emutls_decl, emutls_common_1
	default_emutls_var_init): Likewise.
	(get_variable_section): Don't special case emutls.
	(assemble_variable, do_assemble_alias, categorize_decl_for_section,
	default_elf_select_section, default_unique_section,
	default_encode_section_info): Likewise.
	* varpool.c (decide_is_variable_needed): Likewise.
	* gimple-iterator.c (update_call_edge_frequencies): New
	(gsi_insert_on_edge_immediate): Use it.
	(gsi_insert_seq_on_edge_immediate): Likewise.
	(gsi_commit_one_edge_insert): Likewise.

	* config/i386/i386.c (x86_64_elf_select_section): Don't handle
	SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
	(x86_64_elf_unique_section): Likewise.

2010-07-26  Jan Hubicka  <jh@suse.cz>

	* lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
	GTY((skip)).

2010-07-26  Anatoly Sokolov  <aesok@post.ru>

	* target.def (output_source_filename): New hook.
	* doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
	* doc/tm.texi: Regenerate.
	* toplev.c (output_file_directive) Remove function.
	* toplev.h (output_file_directive) Remove.
	* output.h (default_asm_output_source_filename,
	output_file_directive): Declare.
	* varasm.h (default_asm_output_source_filename,
	output_file_directive): New functions.

	* config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
	* config/mips/mips-protos.h (mips_output_filename): Remove.
	* config/mips/mips.c (mips_output_filename): Make Static.
	(TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.

2010-07-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43784
	* tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
	if the destination is used by the call.

2010-07-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45073
	* gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
	SSA updating on being in SSA form.

2010-07-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45056
	* gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.

2010-07-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45071
	* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
	adjust op->opcode.

2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>

	* config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
	save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
	save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
	save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
	save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
	save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
	save_r31, return_r31, save_interrupt, return_interrupt,
	save_all_interrupt, return_all_interrupt, L_save_r2_r31,
	L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
	L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
	new ABI requirements.
	(save_r6_r9, L_callt_save_r6_r9): Remove.
	* config/v850/predicates.md (even_reg_operand, disp23_operand,
	const_float_1_operand const_float_0_operand): New Predicates.
	(pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
	pattern_is_ok_for_epilogue): Update as per the ABI requirements.
	* config/v850/t-v850: Update multilibs for new target variants.
	(save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
	* config/v850/t-v850e: Likewise.
	* config/v850/v850.c (v850_issue_rate): New.
	(v850_strict_argument_naming): New.
	(function_arg): Modify to generate a different ABI.
	(print_operand): Update case 'z' to support float modes.
	(output_move_single): Modify to generate appropriate and better
	assembly.
	(v850_float_z_comparison_operator, v850_select_cc_mode,
	v850_float_nz_comparison_operator,  v850_gen_float_compare,
	v850_gen_compare): New functions to support comparison of float values.
	(ep_memory_offset): Add support for V850E2 targets.
	(INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
	(INTERRUPT_REGPARM_NUM): Remove.
	(compute_register_save_size): Add extra case to save/restore long call.
	(use_prolog_function): New function to support prologue.
	(expand_prologue): Add support for V850E2 targets and modified
	as per the current ABI requirements.
	(expand_epilogue): Likewise.
	(construct_restore_jr): Modify based on TARGET_LONG_CALLS.
	(construct_save_jarl): Likewise.
	(construct_dispose_instruction): Update as per the current ABI
	requirements.
	(construct_prepare_instruction): Likewise.
	* config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
	(TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
	(CPP_SPEC): Updated to support v850e2 targets.
	(STRICT_ALIGNMENT): Modified.
	(FIRST_PSEUDO_REGISTER): Updated to add even registers.
	(FIXED_REGISTERS): Likewise.
	(CALL_USED_REGISTERS): Likewise.
	(CONDITIONAL_REGISTER_USAGE): Updated.
	(HARD_REGNO_MODE_OK): Updated.
	(reg_class): Updated to add even registers.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(REGNO_REG_CLASS): Updated for CC registers.
	(REG_CLASS_FROM_LETTER): Added support for even registers.
	(REGNO_OK_FOR_BASE_P): Updated for CC registers.
	(STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
	ARG_POINTER_REGNUM): Updated.
	(FUNCTION_ARG_ADVANCE): Define.
	(REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
	(OUTGOING_REG_PARM_STACK_SPACE): Remove.
	(EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
	(GO_IF_LEGITIMATE_ADDRESS): Updated.
	(SELECT_CC_MODE): Define.
	(REGISTER_NAMES): Updated to add psw and fcc registers.
	(ADDITIONAL_REGISTER_NAMES): Updated.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
	(JUMP_TABLES_IN_TEXT_SECTION): Updated.
	* config/v850/v850.md (define_constants): Define new constants.
	(type): Update store,bit1,macc,div,fpu and single attributes.
	(cpu): New attribute.
	(cc): Add set_z attribute.
	(unsign23byte_load, sign23byte_load, unsign23hword_load,
	sign23hword_load, 23word_load, 23byte_store, 23hword_store,
	23word_store): New instructions for 23-bit displacement load and store.
	(movqi_internal, movhi_internal): Update the attributes.
	(movsi, movsi_internal_v850e): Updated to support v850e2 targets.
	(movsi_internal_v850e, movsi_internal, movsf_internal): Update
	the attributes.
	(v850_tst1): Modified using CC_REGNUM.
	(tstsi): Remove.
	(cmpsi): Modified as define_expand from define_insn.
	(cmpsi_insn, cmpsf, cmpdf): New instructions.
	(addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
	udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
	v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
	one_cmplsi2): Clobber the CC_REGNUM register.
	(v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
	v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
	v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
	(setf_insn, set_z_insn, set_nz_insn): New instructions for
	v850e2v3 target.
	(movsicc_normal_cc, movsicc_reversed_cc): New instructions.
	(movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
	targets.
	(sasf_1, sasf_2): Remove.
	(sasf): New instruction.
	(rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
	targets. CC_REGNUM register is clobbered and attributes are
	updated.
	(branch_z_normal, branch_z_invert, branch_nz_normal,
	branch_nz_invert): New branch related instructions.
	(jump): Updated the attributes.
	(switch): Update to support new targets. CC_REGNUM register is
	clobbered and attributes are updated.
	(call_internal_short, call_internal_long, call_value_internal_short,
	call_value_internal_long): Updated the attributes.
	(zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
	clobbered and attributes are updated.
	(extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
	Update to support new targets. CC_REGNUM register is clobbered.
	(ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
	instructions.
	(lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
	are updated.
	(ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
	divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
	negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
	floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
	rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
	cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
	cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
	cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
	movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
	movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
	point instructions defined for V850e2v3 target.
	(callt_save_interrupt, callt_return_interrupt, return_interrupt):
	Add support for V850E2 targets and CC_REGNUM register is clobbered.
	(callt_save_all_interrupt, callt_restore_all_interrupt): Add
	support for new targets.
	* config/v850/v850-modes.def: New file.
	* config/v850/v850.opt(mstrict-align): Remove.
	(mno-strict-align, mjump-tables-in-data-section, mv850e2,
	mv850e2v3): New command line options for V850.
	* config.gcc: Update the newly added files.
	* doc/invoke.texi: Update the newly added command line options for
	V850 target.

2010-07-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45052
	* ipa-pure-const.c (check_stmt): Check volatileness.

2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/44707
	* config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
	* config/sparc/sparc.c: Include reload.h.
	(legitimize_tls_address): Rename into...
	(sparc_legitimize_tls_address): ...this.
	(legitimize_pic_address): Rename into...
	(sparc_legitimize_pic_address): ...this.
	(sparc_expand_move): Adjust to above renaming.
	(sparc_tls_referenced_p): Likewise.
	(sparc_legitimize_tls_address): Likewise.
	(sparc_legitimize_pic_address): Likewise.
	(sparc_legitimize_address): Likewise.
	(sparc_output_mi_thunk): Likewise.
	(sparc_legitimize_reload_address): New global function.  Recognize
	(lo_sum (high ...) ...) patterns generated by earlier passes.
	* config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.

2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/44484
	* config/sparc/predicates.md (memory_reg_operand): Delete.
	* config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
	(*sync_compare_and_swap): Encode the address form in the pattern.
	(*sync_compare_and_swapdi_v8plus): Likewise.

2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
	Streamline paragraph on compatibility with the system compiler.

2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/45035
	* alias.c (true_dependence_1): Fix thinko in merge of old
	true_dependence and canon_true_dependence.

2010-07-23  Jan Hubicka  <jh@suse.cz>

	* lto-streamer-out.c (write_symbol): Fix visibilities of external
	references.

2010-07-23  Le-Chun Wu  <lcwu@google.com>

	* omega.c (omega_eliminate_redundant): Remove a self-assign statement.
	* tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
	and an unnecessary assignment.
	* dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
	self-assign warning.
	* config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
	unnecessary self-init.

2010-07-23  Richard Guenther  <rguenther@suse.de>

	PR lto/43071
	* gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
	for -flto and -fwhopr.

2010-07-23  Kai Tietz  <kai.tietz@onevision.com>

	PR target/41943
	* Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
	(stmp-int-hdrs): Prefix/postfix headers by include_next.
	* config.gcc (user_headers_inc_next_pre): New.
	(user_headers_inc_next_post): Likewise.
	(*-w64-mingw*): Use for float.h post-fixing, and for
	stddef.h/stdarg.h pre-fixing by include_next.
	* configure.ac (user_headers_inc_next_post): New.
	(user_headers_inc_next_pre): New.
	* configure: Regenerated.

2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac: Don't disable TLS on Solaris 8/9 by default
	Set tga_func for Solaris 2/x86 resp. SPARC.
	Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
	(LIB_THREAD_LDFLAGS_SPEC): Define.
	(LIB_TLS_SPEC): Define.  Check for required Sun ld version.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
	-pthread, -threads, LIB_TLS_SPEC with -pthread.
	* doc/install.texi (Specific, *-*-solaris2*): Document use of
	alternate thread libraries on Solaris 8.
	Document TLS patch requirements.
	* doc/sourcebuild.texi (Add Options): Sort alphabetically.
	Document tls.

	PR target/18788
	* config/sol2.h (LIB_SPEC): Link with thread libraries even with
	-shared.

2010-07-23  Jakub Jelinek  <jakub@redhat.com>

	* tree.h (struct tree_base): Add nameless_flag bitfield.
	(TYPE_NAMELESS, DECL_NAMELESS): Define.
	* omp-low.c (create_omp_child_function, scan_omp_parallel,
	scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
	DECL_ARTIFICIAL where needed.
	* dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
	(type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
	has DECL_NAMELESS set.

2010-07-23  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/44915
	* ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
	* ipa-inline.c (cgraph_mark_inline_edge): Likewise.
	(analyze_function): Likewise.

2010-07-23  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/44914
	* tree-sra.c (sra_modify_function_body): Return true if CFG was
	changed, add purging dead eh edges.
	(ipa_sra_modify_function_body): Return true if CFG was changed,
	simplify purging dead eh edges.
	(modify_function): Return true if CFG was changed.
	(perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
	was changed.
	(ipa_early_sra): Likewise.

2010-07-23  Jie Zhang  <jie@codesourcery.com>

	PR target/44290
	* attribs.c (decl_attributes): Insert "noinline" and "noclone"
	if "naked".
	* tree-sra.c (ipa_sra_preliminary_function_checks): Return
	false if ! tree_versionable_function_p.

2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>

	* builtins.def (BUILT_IN_ARGS_INFO): Remove.
	* ipa-pure-const.c (special_builtlin_state): Remove
	BUILT_IN_ARGS_INFO case.
	* tree-stdarg.c (execute_optimize_stdarg): Likewise.
	* builtins.c (expand_builtin): Likewise.
	(expand_builtin_args_info): Remove.
	* doc/tm.texi (__builtin_args_info): Remove.
	(__builtin_next_arg): Adjust to not refer to __builtin_args_info.
	* doc/tm.text.in: Likewise.

2010-07-23  Richard Guenther  <rguenther@suse.de>

	* lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
	(lto_symtab_merge_decls_2): Likewise.
	* tree-ssa.c (useless_type_conversion_p): Likewise.
	* lto-streamer-in.c (input_gimple_stmt): Likewise.
	* gimple.c (gtc_visited2, gtc_ob2): Remove.
	(struct type_pair_d): Make same_p an array indexed by mode.
	Update comment.
	(lookup_type_pair): Update initialization.
	(struct sccs): Adjust same_p type.
	(gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
	Adjust.
	(print_gimple_types_stats): Likewise.
	* gimple.h (enum gtc_mode): New.
	(gimple_types_compatible_p): Adjust prototype.

2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
	again after processing insn.

2010-07-23  Jie Zhang  <jie@codesourcery.com>

	* tree-sra.c (ipa_sra_preliminary_function_checks): Dump
	proper words when !tree_versionable_function_p.

2010-07-23  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45037
	* tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.

2010-07-23  Jie Zhang  <jie@codesourcery.com>

	* doc/extend.texi: Remove IP2K from the description of naked attribute.
	Add MCORE instead.

2010-07-10  Andi Kleen  <ak@linux.intel.com>

	PR lto/44992
	* lto-opts.c (lto_write_options): Add NULL file_data argument to
	lto_get_section_name.
	* lto-section-out.c (lto_destroy_simple_output_block): Likewise.
	* lto-streamer-out.c (produce_asm): Likewise.
	(copy_function): Likewise.
	(produce_symtab): Likewise.
	(produce_asm_for_decls): Likewise.
	* lto-streamer.c (lto_get_section_name): Add file_data argument.
	Rewrite to add random postfix to LTO sections.
	* lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
	(lto_get_section_name): Add file_data argument to prototype.

2010-07-10  Andi Kleen  <ak@linux.intel.com>

	* lto-section-in.c (lto_section_name): Synchronize names
	with lto_get_section_name.

2010-07-10  Andi Kleen  <ak@linux.intel.com>

	* lto-opts.c (lto_read_file_options): Check for missing section.

2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>

	* ira.c (check_allocation): Correctly handle the case where an allocno
	with two objects was allocated to a single reg.

2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>

	* tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
	(is_widening_mult_p): Likewise.
	(convert_to_widen): Use them.
	(convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
	well as integer ones.

2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>

	* alias.c (true_dependence_1): New function, merged version of
	true_dependence and canon_true_dependence.
	(true_dependence): Simplify.
	(canon_true_dependence): Simplify.

2010-07-22  Richard Henderson  <rth@redhat.com>

	PR target/45027
	* config/i386/i386.c (setup_incoming_varargs_64): Force the use
	of V4SFmode for the SSE saves; increase stack alignment if needed.
	(ix86_gimplify_va_arg): Don't increase stack alignment here.

2010-07-22  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/45028
	* recgprop.c (copyprop_hardreg_forward_1): If changed is true,
	call cprop_find_used_regs again via note_uses.

2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>

	* alias.c (get_alias_set): Fix formatting issues.

2010-07-22  Steve Ellcey  <sje@cup.hp.com>

	PR middle-end/44878
	* stmt.c (expand_value_return):  Call promote_function_mode with
	a for_return argument of 2 when returning by reference.

2010-07-22  Dodji Seketeli  <dodji@redhat.com>

	PR debug/45024
	* dwarf2out.c (scope_die_for): Don't fall back to the compilation
	unit DIE if we can find the scope DIE.

2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>

	* ira-build.c (ira_create_object): New arg SUBWORD; all callers
	changed.  Initialize OBJECT_SUBWORD.
	(ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
	(ira_create_allocno_objects): Renamed from ira_create_allocno_object;
	all callers changed.
	(merge_hard_reg_conflicts): Iterate over allocno subobjects.
	(finish_allocno): Likewise.
	(move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
	(remove_low_level_allocnos): Likewise.
	(update_bad_spill_attribute): Likewise.
	(setup_min_max_allocno_live_range_point): Likewise.
	(sort_conflict_id_map): Likewise.
	(ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
	(ior_hard_reg_conflicts): New function.
	(ior_allocate_object_conflicts): Renamed first argument to OBJ.
	(compress_conflict_vecs): Iterate over objects, not allocnos.
	(ira_add_live_range_to_object): New function.
	(object_range_compare_func): Renamed from allocno_range_compare_func.
	All callers changed.
	(setup_min_max_conflict_allocno_ids): For allocnos with multiple
	subobjects, widen the min/max range of the lowest-order object to
	potentially include all other such low-order objects.
	* ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
	(check_allocation): Likewise.  Use more fine-grained tests for register
	conflicts.
	* ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
	allocno subobjects.
	(assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
	choices about which bits to set in each set.  Don't use
	ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
	using the multiple sets we computed.
	(push_allocno_to_stack): Iterate over allocno subobjects.
	(all_conflicting_hard_regs_coalesced): New static function.
	(setup_allocno_available_regs_num): Use it.
	(setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
	subobjects.
	(coalesced_allocno_conflict): Test subobject 0 in each allocno.
	(setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
	by ALLOCNO_NUM_OBJECTS.
	(calculate_spill_cost): Likewise.
	(color_pass): Express if statement in a more normal way.
	(ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
	(slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
	(setup_slot_coalesced_allocno_live_ranges): Likewise.
	(allocno_reload_assign): Likewise.
	(ira_reassign_pseudos): Likewise.
	(fast_allocation): Likewise.
	* ira-conflicts.c (build_conflict_bit_table): Likewise.
	(print_allocno_conflicts): Likewise.
	(ira_build_conflicts): Likewise.
	(allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
	callers changed.  Test subword 0 of each allocno for conflicts.
	(build_object_conflicts): Renamed from build_allocno_conflicts.  All
	callers changed.  Iterate over allocno subobjects.
	* ira-emit.c (modify_move_list): Iterate over allocno subobjects.
	* ira-int.h (struct ira_allocno): New member: num_objects.
	Rename object to objects and change it into an array.
	(ALLOCNO_OBJECT): Add new argument N.
	(ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
	(ira_create_allocno_objects): Renamed from ira_create_allocno_object.
	(ior_hard_reg_conflicts): Declare.
	(ira_add_live_range_to_object): Declare.
	(ira_allocno_object_iterator): New.
	(ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
	(FOR_EACH_ALLOCNO_OBJECT): New macro.
	* ira-lives.c (objects_live): Renamed from allocnos_live; all
	uses changed.
	(allocnos_processed): New sparseset.
	(make_object_born): Renamed from make_allocno_born; take an
	ira_object_t argument.  All callers changed.
	(make_object_dead): Renamed from make_allocno_dead; take an
	ira_object_t argument.  All callers changed.
	(update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
	All callers changed.
	(mark_pseudo_regno_live): Iterate over allocno subobjects.
	(mark_pseudo_regno_dead): Likewise.
	(mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
	functions.
	(mark_ref_live): Detect subword accesses and call
	mark_pseudo_regno_subword_live as appropriate.
	(mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
	(process_bb_nodes_live): Deal with object-related updates first; set
	and test bits in allocnos_processed to avoid computing allocno
	statistics more than once.
	(create_start_finish_chains): Iterate over objects, not allocnos.
	(print_object_live_ranges): New function.
	(print_allocno_live_ranges): Use it.
	(ira_create_allocno_live_ranges): Allocate and free allocnos_processed
	and objects_live.

2010-07-22  Richard Guenther  <rguenther@suse.de>

	PR lto/42451
	* gimple.c (gtc_next_dfs_num): New global.
	(struct sccs): Make value a union, add integer same_p member.
	(gtc_visit): New function.
	(gimple_types_compatible_p_1): New function, split out from ...
	(gimple_types_compatible_p): ... here.  Start a DFS walk here.
	(iterative_hash_gimple_type): Adjust for sccs change.

2010-07-22  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/44891
	* tree-sra.c: Include gimple-pretty-print.h.
	(replace_uses_with_default_def_ssa_name): Renamed to
	get_repl_default_def_ssa_name, return the new SSA name instead of
	replacing the old one.
	(sra_modify_assign): Dump a message when removing a load, if the LHS
	is an SSA_NAME, do not do any propagation, just set the RHS to a
	default definition SSA NAME, type convert if necessary.
	* Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.

2010-07-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/45017
	* tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
	TYPE_PRECISION of integral types in addition to size.

2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
	when no C library is specified.

2010-07-22  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (struct ipa_node_params): Updated comment.
	(struct ipa_edge_args): Likewise.
	* Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.

2010-07-22  Martin Jambor  <mjambor@suse.cz>

	* cgraphunit.c (verify_edge_count_and_frequency): New function.
	(verify_cgraph_node): Verify frequencies of indirect edges.
	* tree-inline.c (tree_function_versioning): Update frequencies of
	indirect edges.

2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/43698
	* config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
	Set *arm_rev to be predicable.

2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin.h (LINK_COMMAND_SPEC): Split into...
	(LINK_COMMAND_SPEC_A): New.
	(DSYMUTIL): New.
	(DSYMUTIL_SPEC): New.
	* config/darwin9.h (LINK_COMMAND_SPEC): Remove.
	(DSYMUTIL_SPEC): Update for darwin >= 9 requirements.

2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>

	* calls.c (load_register_parameters): Move check for zero
	sized items so that only the call to
	mem_overlaps_already_clobbered_arg_p () is protected.

2010-07-22  Jan Hubicka  <jh@suse.cz>

	* ipa-pure-const.c (varying_state): Break out from ...
	(get_function_state): ... here; always return varying_state
	when state would be NULL otherwise.
	(remove_node_data): Do not free varying state.

2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>

	PR bootstrap/44970
	PR middle-end/45009
	* postreload.c: Include "target.h".
	(reload_combine_closest_single_use): Don't take DEBUG_INSNs
	into account.
	(fixup_debug_insns): Don't copy the rtx.
	(reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
	Don't copy when replacing.  Call fixup_debug_insns in the case where
	we merged one add with another.
	(reload_combine_recognize_pattern): Fail if there aren't any uses.
	Try harder to determine whether we're picking a valid index register.
	Don't set store_ruid for an insn we're going to scan in the
	next iteration.
	(reload_combine): Remove unused code.
	(reload_combine_note_use): When updating use information for
	an old insn, ignore a use that occurs after store_ruid.
	* Makefile.in (postreload.o): Update dependencies.

	* function.c (record_hard_reg_sets): Restrict the previous change
	to cases where the incoming nominal mode is the same as the
	incoming promoted mode and everything happens in MODE_INT.

2010-07-21  Jakub Jelinek  <jakub@redhat.com>

	PR debug/45015
	* var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
	ASM_OPERANDS_OUTPUT_IDX.
	(adjust_insn): For inline asm with multiple sets ensure first
	ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
	the insn.

2010-07-21  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
	comparison for avoiding xmm register saves.  Emit the xmm register
	saves explicitly.
	* config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
	(UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
	(sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
	Remove patterns and the associated splitters.

2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
	and imagine parts of a complex, so that they can have the same
	base and fall into the same group.

2010-07-21  Richard Guenther  <rguenther@suse.de>

	PR lto/45018
	* tree.c (find_decls_types_r): Do not follow TREE_CHAIN
	of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
	TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.

2010-07-21  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/44900
	* tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
	(sra_modify_assign): Move gsi to the next statmenent unconditionally.

2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>

	PR middle-end/44738
	* tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.

2010-07-21  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45013
	* tree-ssa.c (useless_type_conversion_p): Dispatch to
	gimple_types_compatible_p only when in lto.
	* gimple.c (gimple_types_compatible_p): Use canonical types
	to speed up comparison.

2010-07-21  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (referenced_var): Move define ...
	* tree-flow-inline.h (referenced_var): ... here as an inline
	function.  Assert here ...
	* tree-dfa.c (referenced_var_lookup): ... instead of here.
	* tree-ssa.c (maybe_optimize_var): Check if the variable
	is in referenced vars.
	(execute_update_addresses_taken): Remove old broken check.
	* gimple-pretty-print.c (pp_points_to_solution): Use
	referenced_var_lookup.
	* tree-into-ssa.c (dump_decl_set): Likewise.

2010-07-21  Jakub Jelinek  <jakub@redhat.com>

	PR debug/45003
	* var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
	* dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
	ZERO_EXTEND here.

2010-07-20  Richard Henderson  <rth@redhat.com>

	* vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.

2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>

	* config/arm/arm.md (thumb1_addsi3): Add alternative and split for
	computing the sum of the stack pointer and a large constant.
	* config/arm/constraints.md (M): Remove superfluous parentheses.
	(Pc): New constraint.

2010-07-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/45006
	* cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
	operand's type if exp is tcc_unary class tree.

2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
	Reverse sense of if_then_else condition.

2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
	* config/rs6000/rs6000.c (rs6000_override_options): Set
	rs6000_block_move_inline_limit appropriately.
	(expand_block_move): Use rs6000_block_move_inline_limit.
	* doc/invoke.texi (mblock-move-inline-limit): Document.

2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>

	* postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
	FROM and TO.  All callers changed.  Don't look for tracked uses,
	just scan the RTL for DEBUG_INSNs and substitute.
	(reload_combine_recognize_pattern): Call fixup_debug_insns.
	(reload_combine): Ignore DEBUG_INSNs.

2010-07-20  Jakub Jelinek  <jakub@redhat.com>

	* var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
	depth to 8 from 5.

	PR debug/45003
	* cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
	or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
	instead of the result's type.

2010-07-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44977
	* tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
	SSA form.

2010-07-20  Richard Guenther  <rguenther@suse.de>

	* lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
	(lto_symtab_merge_decls_2): Likewise.
	* gimple.h (gimple_types_compatible_p): Declare.
	* gimple.c (gimple_queue_type_fixup): Remove.
	(gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
	(gimple_compatible_complete_and_incomplete_type_p): New function.
	(gimple_types_compatible_p): Adjust.
	(gimple_register_type): Remove type fixup code.
	(print_gimple_types_stats): Adjust.
	(free_gimple_type_tables): Likewise.
	* lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
	* tree-ssa.c (useless_type_conversion_p): Likewise.

2010-07-20  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44971
	PR middle-end/44988
	* tree-ssa.c (maybe_optimize_var): New function split out from ...
	(execute_update_addresses_taken): ... here.
	(non_rewritable_mem_ref_base): Likewise.
	(execute_update_addresses_taken): Do not iterate over all referenced
	vars but just all local decls and parms.
	Properly check call and asm arguments and rewrite call arguments.

2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
	to top level.
	* config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
	definitions ...
	* config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
	New macro.
	* config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.

2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>

	* gengtype.c (start_root_entry): New function, split out from
	write_root.  Check whether V is null and raise an error if so.
	(write_field_root): Check for V being null.  Don't raise an error here;
	set V to null instead.
	(write_root): Update comment above function.  Use start_root_entry.

2010-07-19  Xinliang David Li  <davidxl@google.com>

	PR testsuite/44932
	* tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
	def edges.
	(find_uninit_use): Add dump.
	(is_use_properly_guarded): Ditto.
	(warn_uninitialized_phi): Ditto.
	(execute_late_warn_uninitialized): Ditto.

2010-07-19  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44941
	* expr.c (emit_block_move_hints): Move zero size check first.
	Move asserts to more useful places.
	* calls.c (load_register_parameters): Check for zero size.

2010-07-19  Richard Henderson  <rth@redhat.com>

	* tree-optimize.c (execute_all_early_local_passes): New.  Change
	cgraph_state here ...
	(execute_early_local_optimizations): ... not here.  Remove.
	(pass_early_local_passes, pass_all_early_optimizations): Update.

2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>

	* postreload.c (reload_combine_closest_single_use): Ignore the
	number of uses for DEBUG_INSNs.
	(fixup_debug_insns): New static function.
	(reload_combine_recognize_const_pattern): Use it.  Don't let the
	main loop be affected by DEBUG_INSNs.
	Really disallow moving adds past a jump insn.
	(reload_combine_recognize_pattern): Don't update use_ruid here.
	(reload_combine_note_use): Do it here.
	(reload_combine): Use control_flow_insn_p rather than JUMP_P.

2010-07-19  Bingfeng Mei  <bmei@broadcom.com>

	* ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
	of a loop.
	* loop-doloop.c (doloop_condition_get): Skip possible debug_insn.

2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>

	* config/i386/darwin.h: Define darwin_emit_branch_islands.
	(TARGET_MACHO_BRANCH_ISLANDS): New.
	(FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
	* config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
	default value.
	* config/i386/i386.c (output_pic_addr_const): Do not emit
	branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
	(x86_output_mi_thunk): Adjust symbol creation.
	* config/rs6000/darwin.h: Define darwin_emit_branch_islands.
	Remove out of date comment.
	* config/rs6000/rs6000.c (print_operand): Adjust symbol.
	(DARWIN_LINKER_GENERATES_ISLANDS): Remove.
	(DARWIN_GENERATE_ISLANDS): Ditto.
	(output_call):  Do not emit branch islands unless
	darwin_emit_branch_islands is set.
	* config/darwin.c: Declare darwin_emit_branch_islands.
	(machopic_indirect_data_reference): Do not emit unless
	darwin_emit_branch_islands is set.
	(darwin_override_options): Set darwin_emit_branch_islands
	where it is needed.
	* config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.

2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/sourcebuild.texi (Effective-Target Keywords): Document
	sse_runtime, sse2_runtime.

2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips16_build_call_stub): Zero-extend the
	low half of a single-register SCmode return value before ORing
	it with the high half.
	* config/mips/mips16.S (MERGE_GPRf): Likewise.

2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/44805
	* config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
	on all targets.

2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/42235
	* postreload.c (reload_cse_move2add): Return bool, true if anything.
	changed.  All callers changed.
	(move2add_use_add2_insn): Likewise.
	(move2add_use_add3_insn): Likewise.
	(reload_cse_regs): If reload_cse_move2add changed anything, rerun
	reload_combine.
	(RELOAD_COMBINE_MAX_USES): Bump to 16.
	(last_jump_ruid): New static variable.
	(struct reg_use): New members CONTAINING_MEM and RUID.
	(reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
	(reload_combine_split_one_ruid, reload_combine_split_ruids,
	reload_combine_purge_insn_uses, reload_combine_closest_single_use
	reload_combine_purge_reg_uses_after_ruid,
	reload_combine_recognize_const_pattern): New static functions.
	(reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
	is true for our reg and that we have available index regs.
	(reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
	callers changed.  Use them to initialize fields in struct reg_use.
	(reload_combine): Initialize last_jump_ruid.  Be careful when to
	take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
	Call reload_combine_recognize_const_pattern.
	(reload_combine_note_store): Update REAL_STORE_RUID field.

2010-07-16  Jason Merrill  <jason@redhat.com>

	* Makefile.in (opts-common.o): Depend on options.h.

2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.c (build_common_builtin_nodes): Use build_function_type_list
	instead of build_function_type.
	* tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
	* cgraphunit.c (cgraph_build_static_cdtor): Likewise.

2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
	do all the work.
	(rs6000_emit_int_cmove): Use function pointers for insn generation.
	Don't force values into registers unnecessarily.
	(output_isel): Assert that we're not given conditions we can't handle.
	Delete corresponding code.
	* config/rs6000/rs6000.md (isel_signed_<mode>): Use
	scc_comparison_operator constraint.  Permit 0 for the consequent
	operand.  Permit any GPR for the alternative operand.
	(isel_unsigned_<mode>): Likewise.

2010-07-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/44942
	* config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
	argument to const_tree.
	* config/i386/i386.c (function_arg_advance): If padding needs to be
	inserted before argument, increment cum->words by number of padding
	words as well.
	(contains_aligned_value_p): Change argument to const_tree.
	(ix86_function_arg_boundary): Change second argument to const_tree.

2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/42235
	* function.c (record_hard_reg_sets): New static function.
	(assign_parm_setup_reg): If an optab for extending exists and the
	generated code clobbbers no hard regs, emit the insn directly and
	create a REG_EQUIV note.

2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>

	* c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
	TREE_CHAIN.
	* c-typeck.c (push_init_level): Likewise.
	(process_init_element): Likewise.

2010-07-15  Anatoly Sokolov  <aesok@post.ru>

	* tree.h (enum tree_index): Add TI_INTEGER_THREE.
	(integer_three_node): Add.
	* tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
	NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
	* builtins.c (expand_builtin_prefetch): Use common tree nodes instead
	of call build_int_cst.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
	* tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
	(find_interesting_uses_address): Ditto.
	* tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
	* tree-eh.c (lower_eh_constructs_2): Ditto.
	* tree-vect-loop.c (get_initial_def_for_induction): Ditto.
	* c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
	* expmed.c (expand_divmod): Ditto.
	* tree-mudflap.c (mx_register_decls): Ditto.
	* varasm.c (array_size_for_constructor): Ditto.
	* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
	* c-parser.c (c_parser_postfix_expression): Ditto.

2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>

	* postreload.c (last_label_ruid, first_index_reg, last_index_reg):
	New static variables.
	(reload_combine_recognize_pattern): New static function, broken out
	of reload_combine.
	(reload_combine): Use it.  Only initialize first_index_reg and
	last_index_reg once.

2010-07-15  Richard Henderson  <rth@redhat.com>

	* cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
	when done.

2010-07-15  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
	comdats for broken gold.
	(lto_sy	mtab_merge_decls_1): Set used_from_object_file correctly.

2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (TREE_RTL_OPERAND_CHECK): Delete.

2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (DECL_CHAIN): Define.
	* alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
	* c-decl.c: Likewise.
	* c-parser.c: Likewise.
	* c-typeck.c: Likewise.
	* cfgexpand.c: Likewise.
	* cgraph.c: Likewise.
	* cgraphunit.c: Likewise.
	* combine.c: Likewise.
	* config/alpha/alpha.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/frv/frv.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/winnt-cxx.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/pa/som.h: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/symbian-cxx.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/vxworks.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.
	* coverage.c: Likewise.
	* dbxout.c: Likewise.
	* dwarf2out.c: Likewise.
	* emit-rtl.c: Likewise.
	* expr.c: Likewise.
	* function.c: Likewise.
	* gimple-low.c: Likewise.
	* gimple-pretty-print.c: Likewise.
	* gimplify.c: Likewise.
	* integrate.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa-struct-reorg.c: Likewise.
	* ipa-type-escape.c: Likewise.
	* langhooks.c: Likewise.
	* lto-cgraph.c: Likewise.
	* omp-low.c: Likewise.
	* stor-layout.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-dfa.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-mudflap.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.
	* var-tracking.c: Likewise.
	* varasm.c: Likewise.

2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR target/44877
	* config/spu/spu.c (spu_expand_builtin_1): Allow references
	(as well as pointers) as argument to mask_for_load builtins.

2010-07-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44946
	* tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
	with accessing only padding properly.

2010-07-15  Jan Hubicka  <jh@suse.cz>

	* ipa.c (function_and_variable_visibility): Variables marked as used
	should not be localized.

2010-07-15  Jan Hubicka  <jh@suse.cz>

	* cgraph.c: Include lto-streamer.h
	(change_decl_assembler_name): Work when assembler name hash is at place.
	(cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
	be sure to rename it to avoid name clash.
	* ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
	Localize hidden symbols only when locally defined.

2010-07-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.

2010-07-15  Magnus Granberg  <zorry@gentoo.org>
	    Kevin F. Quinn  <kevquinn@gentoo.org>

	* builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
	* common.opt: Add -Wtrampolines.
	* doc/invoke.texi: Add -Wtrampolines.

2010-07-15  Jie Zhang  <jie@codesourcery.com>

	* config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
	cortex_a8_issue_ls.

2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>

	* config/i386/cygwin.h (LIBGCJ_SONAME): Update.
	* config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.

2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (reg_names): Remove prototype.
	(call_used_regs): Likewise.

2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>

	* config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
	"unused" with attribute "used".
	(__JCR_END__): Likewise.
	* config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
	"used" attribute.
	(__JCR_LIST__): Replace attribute "unused" with attribute "used".

2010-07-14  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-in.c (maybe_fixup_handled_component): Remove.
	(maybe_fixup_decls): Likewise.
	(input_gimple_stmt): Do not fixup anything.
	* lto-streamer-out.c (output_gimple_stmt): Make sure all
	non-automatic variable uses are wrapped inside a MEM_REF.

2010-07-14  Richard Henderson  <rth@redhat.com>

	* passes.c (rest_of_decl_compilation): Do not call assemble_variable
	for functions.
	* varasm.c (assemble_variable): Remove early exit for functions;
	assert that we're given a variable.

2010-07-14  Jie Zhang  <jie@codesourcery.com>

	* config/arm/cortex-a8.md (cortex_a8_alu): Don't use
	cortex_a8_default when neon_type is not none.

2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>

	* lower-subreg.c (subreg_context): New static bitmap.
	(decompose_multiword_subregs): Allocate and free it.
	(find_decomposable_subregs): Set a bit in it for a register that
	occurs in a subreg that changes mode but not size.
	(can_decompose_p): Test it instead of non_decomposable_context.

2010-07-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44824
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
	is_gimple_mem_ref_addr.
	(tree_ssa_forward_propagate_single_use_vars): Do not propagate
	non-decl_address_invariant_p addresses.

2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>

	* reload.c (find_reloads): Revert code to penalize small register
	classes that was brought in with the IRA merge.

2010-07-14  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
	as base of ARRAY_REFs.

2010-07-14  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44930
	* tree-pretty-print.c (do_niy): Do not print a newline.

2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>

	* ira-int.h (struct ira_object): New.
	(ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
	(struct ira_allocno): Remove members min, max,
	conflict_allocno_array, conflict_id, conflict_allocno_array_size,
	conflict_allocnos_num and conflict_vec_p.  Add new member object.
	(OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
	OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
	OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
	OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
	ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
	ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
	ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
	ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
	an ira_object_t rather than ira_allocno_t.  All uses changed.
	(ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
	contains a vector of ira_object_t; all uses changed.
	(ira_objects_num): Declare variable.
	(ira_create_allocno_object): Declare function.
	(ira_conflict_vector_profitable_p): Adjust prototype.
	(ira_allocate_conflict_vec): Renamed from
	ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
	(ira_allocate_object_conflicts): Renamed from
	ira_allocate_allocno_conflicts; first arg now ira_object_t.
	(struct ira_object_iterator): New.
	(ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
	(ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
	to conflict_vec_p.  All uses changed.
	(ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
	Changed to take into account that conflicts are now tracked for
	objects.
	* ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
	Args changed to accept ira_object_t.  All uses changed.
	(allocnos_conflict_p): New static function.
	(collected_conflict_objects): Renamed from collected_allocno_objects;
	now a vector of ira_object_t.  All uses changed.
	(build_conflict_bit_table): Changed to take into account that
	conflicts are now tracked for objects.
	(process_regs_for_copy, propagate_copies, build_allocno_conflicts)
	(print_allocno_conflicts, ira_build_conflicts): Likewise.
	* ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
	setup_allocno_left_conflicts_size, allocno_reload_assign,
	fast_allocation): Likewise.
	* ira-lives.c (make_hard_regno_born, make_allocno_born)
	process_single_reg_class_operands, process_bb_node_lives): Likewise.
	* ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
	Likewise.
	* ira-build.c (ira_objects_num): New variable.
	(ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
	contains a vector of ira_object_t; all uses changed.
	(ira_object_id_map_vec): Corresponding change.
	(object_pool): New static variable.
	(initiate_allocnos): Initialize it.
	(finish_allocnos): Free it.
	(ira_create_object, ira_create_allocno_object, create_allocno_objects):
	New functions.
	(ira_create_allocno): Don't set members that were removed.
	(ira_set_allocno_cover_class): Don't change conflict hard regs.
	(merge_hard_reg_conflicts): Changed to take into account that
	conflicts are now tracked for objects.
	(ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
	allocate_conflict_bit_vec, ira_allocate_object_conflicts,
	compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
	setup_min_max_allocno_live_range_point, allocno_range_compare_func,
	setup_min_max_conflict_allocno_ids, ):  Likewise.
	(add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
	to ira_object_t; all callers changed.
	(ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
	to ira_object_t, all callers changed.
	(clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
	to ira_object_t, all callers changed.
	(conflict_check, curr_conflict_check_tick): Renamed from
	allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
	changed.
	(compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
	arg changed to ira_object_t, all callers changed.
	(create_cap_allocno): Call ira_create_allocno_object.
	(finish_allocno): Free the corresponding object.
	(sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
	callers changed.  Adjusted for dealing with objects.
	(ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
	dealing with objects.
	* ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.

	* ira-int.h (struct live_range): Rename allocno member to object
	and change type to ira_object_t.
	(struct ira_object): New member live_ranges.
	(struct ira_allocno): Remove member live_ranges.
	(ALLOCNO_LIVE_RANGES): Remove.
	(OBJECT_LIVE_RANGES): New macro.
	(ira_create_live_range, ira_copy_live_range_list,
	ira_merge_live_range_list, ira_live_ranges_intersect_p,
	ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
	* ira-build.c (ira_create_object): Initialize live ranges here.
	(ira_create_allocno): Not here.
	(ira_create_live_range): Rename from ira_create_allocno_live_range, arg
	changed to ira_object_t, all callers changed.
	(copy_live_range): Rename from copy_allocno_live_range, all callers
	changed.
	(ira_copy_live_range_list): Rename from
	ira_copy_allocno_live_range_list, all callers changed.
	(ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
	all callers changed.
	(ira_live_ranges_intersect_p): Rename from
	ira_allocno_live_ranges_intersect_p, all callers changed.
	(ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
	callers changed.
	(ira_finish_live_range_list): Rename from
	ira_finish_allocno_live_range_list, all callers changed.
	(change_object_in_range_list): Rename from change_allocno_in_range_list,
	last arg changed to ira_object_t, all callers changed.
	(finish_allocno): Changed to expect live ranges in the allocno's object.
	(move_allocno_live_ranges, copy_allocno_live_ranges,
	update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
	ira_flattening, ira_build): Likewise.
	* ira-color.c (allocnos_have_intersected_live_ranges_p,
	slot_coalesced_allocno_live_ranges_intersect,
	setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
	* ira-conflicts.c (build_conflict_bit_table): Likewise.
	* ira-emit.c (add_range_and_copies_from_move_list): Likewise.
	* ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
	make_allocno_dead, create_start_finish_chains,
	remove_some_program_points_and_update_live_ranges,
	ira_debug_live_range_list): Likewise.

	* ira-int.h (ira_object_conflict_iterator): Rename from
	ira_allocno_conflict_iterator.
	(ira_object_conflict_iter_init): Rename from
	ira_allocno_conflict_iter_init, second arg changed to
	* ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
	FOR_EACH_ALLOCNO_CONFLICT.
	* ira-color.c (assign_hard_reg, push_allocno_to_stack)
	setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
	ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
	* ira-conflicts.c (print_allocno_conflicts): Likewise.

2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR other/44874
	* tree-dump.c (dump_options): Add enumerate_locals entry.
	Add TDF_NOID exclusion to all entry.
	* tree-dump.h (dump_enumerated_decls): Declare.
	* tree-pretty-print.c (dump_generic_node): For TDF_NOID,
	Don't display type uid.
	(print_declaration): Don't crash on TREE_TYPE (t) == 0.
	* tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
	* tree-ssa-live.c: Include gimple.h.
	(numbered_tree_d): New struct.
	(numbered_tree): New typedef.
	(DEF_VEC_O (numbered_tree): New.
	(DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
	(compare_decls_by_uid, dump_enumerated_decls_push): New functions.
	(dump_enumerated_decls): Likewise.
	* tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
	debug info and flag_dump_final_insns, call dump_enumerated_decls.
	* tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
	* Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).

2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* expmed.h (MAX_BITS_PER_WORD): Move to...
	* defaults.h (MAX_BITS_PER_WORD): ...here.

2010-07-13  DJ Delorie  <dj@redhat.com>

	* config/h8300/h8300.c (h8300_init_once): Default to
	-fstrict_volatile_bitfields.

	* config/sh/sh.c (sh_override_options): Default to
	-fstrict_volatile_bitfields.

	* config/rx/rx.c (rx_option_override): New.

	* config/m32c/m32c.c (m32c_override_options): Default to
	-fstrict_volatile_bitfields.

2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (build_function_call_expr): Delete.
	(build_call_expr_loc_array): New function.
	(build_call_expr_loc_vec): New function.
	* tree-flow.h (struct omp_region): Change type of ws_args field
	to a VEC.
	* builtins.c (build_function_call_expr): Delete.
	(build_call_expr_loc_array): New function.
	(build_call_expr_loc): Call it.  Use XALLOCAVEC.
	(build_call_expr): Likewise.
	(build_call_expr_loc_vec): New function.
	* cgraphunit.c (build_cdtor): Call build_call_expr instead of
	build_function_call_expr.
	* expr.c (emutls_var_address): Likewise.
	* varasm.c (emutls_common_1): Likewise.
	* omp-low.c (expand_omp_atomic_mutex): Likewise.
	(expand_omp_taskreg): Adjust for new type of region->ws_args.
	(get_ws_args_for): Return a VEC instead of a tree.
	(expand_parallel_call): Call build_call_expr_loc_vec instead of
	build_function_call_expr.
	* stor-layout.c (self_referential_size): Likewise.

2010-07-13  Jakub Jelinek  <jakub@redhat.com>

	PR testsuite/44701
	* recog.c (constrain_operands): Allow side-effects in memory
	operands if either < or > constraint is used, rather than if
	both < and > is used.

2010-07-13  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44911
	* tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
	MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
	without name.

2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/44761
	* mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
	to variable emited.
	* config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
	* config/sh/sh.md (symGOT_load): Likewise.
	(symDTPOFF2reg): Likewise.
	(symTPOFF2reg): Likewise.

2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
	* expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.

2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
	explanation.
	Find ucontext_t * on Solaris 11.
	(x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
	Handle new Solaris 11 __sighndlr patterns.

2010-07-13  Jakub Jelinek  <jakub@redhat.com>

	PR debug/44901
	* vec.h (VEC_block_remove): Fix comment.
	* tree-ssa-live.c (remove_unused_locals): Don't use
	VEC_unordered_remove on local_decls, instead replace a single
	vector element in each iteration if at least one element had
	to be removed and VEC_truncate at the end.
	* omp-low.c (expand_omp_taskreg): Likewise.

2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-decl.c (finish_function): Fix typo in comment.

2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/44921
	* postreload.c (move2add_use_add3_insn): Silence gcc warning
	on min_regno.

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

	* tree-vrp.c (simplify_bit_ops_using_ranges): New function.
	(simplify_stmt_using_ranges): Use it.

2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
	member.  Do not mark as GTY(()).
	* config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
	(spu_builtin_decls): New static variable.
	(spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
	(spu_init_builtins): Likewise.
	(spu_builtin_mul_widen_even): Likewise.
	(spu_builtin_mul_widen_odd): Likewise.
	(spu_builtin_mask_for_load): Likewise.
	(spu_builtin_vec_perm): Likewise.
	* config/spu/spu-c.c: Include "target.h".
	(spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
	of using spu_builtins[].fndecl.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_override_options): Make -mflip-mips16
	imply -minterlink-mips16.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.h (mips16_globals): Declare.
	(SWITCHABLE_TARGET): Define.
	* config/mips/mips.c: Include target-globals.h.
	(mips16_globals): New variable.
	(mips_set_mips16_mode): Use save_target_globals and
	restore_target_globals instead of target_reinit.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
	to say that the function can be called more than once.
	* target-globals.c (save_target_globals): Call init_reg_sets.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
	* bb-reorder.h: New file.
	* bb-reorder.c (default_target_bb_reorder): New variable.
	(this_target_bb_reorder): New conditional variable.
	(uncond_jump_length): Redefine as a macro.
	* target-globals.h (this_target_bb_reorder): Declare.
	(target_globals): Add a bb_reorder field.
	(restore_target_globals): Copy the bb_reorder field to
	this_target_bb-reorder.
	* target-globals.c: Include bb-reorder.h.
	(default_target_globals): Initialize the bb_reorder field.
	(save_target_globals): Likewise.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
	* gcse.h: New file.
	* gcse.c: Include gcse.h.
	(default_target_gcse): New variable.
	(this_target_gcse): New conditional variable.
	(can_copy): Redefine as a macro.
	(can_copy_init_p): New macro.
	(can_copy_p): Remove can_copy_init_p.
	* target-globals.h (this_target_gcse): Declare.
	(target_globals): Add a gcse field.
	(restore_target_globals): Copy the gcse field to this_target_gcse.
	* target-globals.c: Include gcse.h.
	(default_target_globals): Initialize the gcse field.
	(save_target_globals): Likewise.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
	and x_ira_prohibited_mode_move_regs_initialized_p.
	(ira_prohibited_mode_move_regs): Redefine as a macro.
	* ira.c (ira_prohibited_mode_move_regs): Delete.
	(ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* reload.h (target_reload): Add x_cached_reg_save_code and
	x_cached_reg_restore_code.
	* caller-save.c (cached_reg_save_code, cached_reg_restore_code):
	Redefine as macros.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (target-globals.o): Depend on builtins.h.
	* builtins.h: New file.
	* builtins.c: Include builtins.h.
	(default_target_builtins): New variable.
	(this_target_builtins): New conditional variable.
	(apply_args_mode, apply_result_mode): Redefine as macros.
	* target-globals.h (this_target_builtins): Declare.
	(target_globals): Add a builtins field.
	(restore_target_globals): Copy the builtins field to
	this_target_builtins.
	* target-globals.c: Include builtins.h.
	(default_target_globals): Initialize the builtins field.
	(save_target_globals): Likewise.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
	(algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
	from expmed.c.
	(target_expmed): Add x_alg_hash and x_alg_hash_used_p.
	(alg_hash, alg_hash_used_p): New macros.
	* expmed.c (init_expmed): Clear alg_hash if reinitializing.
	(alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
	(alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
	x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
	* ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
	(this_op_costs, costs_classes): Redefine as macros.
	(record_reg_classes): Don't take op_costs as a parameter.
	(record_operand_costs): Likewise.  Update calls to record_reg_classes.
	(scan_one_insn): Update call to record_operand_costs.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
	* ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
	(target_ira_int): New structure.
	(default_target_ira_int): Declare.
	(this_target_ira_int): Declare as a variable or define as a macro.
	(ira_reg_mode_hard_regset, ira_register_move_cost)
	(ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
	(ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
	(prohibited_class_mode_regs, ira_important_classes_num)
	(ira_important_classes, ira_reg_class_intersect)
	(ira_reg_classes_intersect_p, ira_reg_class_super_classes)
	(ira_reg_class_union): Redefine as macros.
	* ira.h (target_ira): New structure.
	(default_target_ira): Declare.
	(this_target_ira): Declare as a variable or define as a macro.
	(ira_available_class_regs, ira_hard_regno_cover_class)
	(ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
	(ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
	(ira_class_hard_regs_num): Redefine as macros.
	* ira.c (default_target_ira, default_target_ira_int): New variables.
	(this_target_ira, this_target_ira_int): New conditional variables.
	(ira_reg_mode_hard_regset, ira_memory_move_cost)
	(ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
	(ira_class_subset_p): Delete.
	(no_unit_alloc_regs): Redefine as a macro.
	(ira_class_hard_regs, ira_non_ordered_class_hard_regs)
	(ira_class_hard_regs_num, ira_class_hard_reg_index)
	(ira_available_class_regs): Delete.
	(alloc_reg_class_subclasses): Redefine as a macro.
	(ira_reg_class_cover_size, ira_reg_class_cover)
	(ira_important_classes_num, ira_important_classes)
	(ira_important_class_nums, ira_class_translate): Delete.
	(cover_class_order): Document the variable's lifetime.
	(reorder_important_classes): Don't set ira_important_class_nums.
	(ira_reg_class_intersect, ira_reg_classes_intersect_p)
	(ira_reg_class_super_classes, ira_reg_class_union)
	(ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
	Delete.
	(setup_reg_class_nregs): Don't set ira_max_regs.
	(prohibited_class_mode_regs): Delete.
	* target-globals.h (this_target_ira, this_target_ira_int): Declare.
	(target_globals): Add ira and ira_int fields.
	(restore_target_globals): Copy the ira field to this_target_ira
	and the ira_int field to this_target_ira_int.
	* target-globals.c: Include ira-int.h.
	(default_target_globals): Initialize the ira and ira_int fields.
	(save_target_globals): Likewise.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
	* cfgloop.h (target_cfgloop): New structure.
	(default_target_cfgloop): Declare.
	(this_target_cfgloop): Declare as a variable or define as a macro.
	(target_avail_regs, target_clobbered_regs, target_res_regs)
	(target_reg_cost, target_spill_cost): Redefine as macros.
	* cfgloopanal.c (default_target_cfgloop): New variable.
	(this_target_cfgloop): New conditional variable.
	(target_avail_regs, target_clobbered_regs, target_res_regs)
	(target_reg_cost, target_spill_cost): Delete.
	* target-globals.h (this_target_cfgloop): Declare.
	(target_globals): Add a cfgloop field.
	(restore_target_globals): Copy the cfgloop field to
	this_target_cfgloop.
	* target-globals.c: Include cfgloop.h.
	(default_target_globals): Initialize the cfgloop field.
	(save_target_globals): Likewise.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* regs.h (target_regs): Add x_direct_load, x_direct_store and
	x_float_extend_from_mem.
	(direct_load, direct_store, float_extend_from_mem): New macros.
	* expr.c (direct_load, direct_store, float_extend_from_mem): Delete.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
	(target-globals.o): Depend on $(LIBFUNCS_H).
	* libfuncs.h: Include hashtab.h.
	(libfunc_entry): Moved from optabs.c.
	(target_libfuncs): New structure.
	(default_target_libfuncs): Declare.
	(this_target_libfuncs): Declare as a variable or define as a macro.
	(libfunc_table): Redefine as a macro.
	* optabs.c (default_target_libfuncs): New variable.
	(this_target_libfuncs): New conditional variable.
	(libfunc_table): Delete.
	(libfunc_entry): Moved to optabs.h.
	(libfunc_hash): Redefine as a macro.
	(hash_libfunc, eq_libfunc): Fix comments.
	(init_optabs): Use libfunc_hash to detect cases where the function
	has already been called.  Clear the hash table instead of
	recreating it.
	* target-globals.h (this_target_libfuncs): Declare.
	(target_globals): Add a libfuncs field.
	(restore_target_globals): Copy the libfuncs field to
	this_target_libfuncs.
	* target-globals.c: Include libfuncs.h.
	(default_target_globals): Initialize the libfuncs field.
	(save_target_globals): Likewise.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
	in all dependency lists.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
	* optabs.h (target_optabs): New structure.
	(default_target_optabs): Declare.
	(this_target_optabs): Declare as a variable or define as a macro.
	(optab_table, convert_optab_table, direct_optab_table): Redefine
	as macros.
	* optabs.c (default_target_optabs): New variable.
	(this_target_optabs): New conditional variable.
	(optab_table, convert_optab_table, direct_optab_table): Delete.
	* target-globals.h (this_target_optabs): Declare.
	(target_globals): Add a optabs field.
	(restore_target_globals): Copy the optabs field to
	this_target_optabs.
	* target-globals.c: Include expr.h and optabs.h.
	(default_target_globals): Initialize the optabs field.
	(save_target_globals): Likewise.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* flags.h (target_flagstate): Add x_flag_excess_precision.
	(flag_excess_precision): Redefine as a macro.
	* toplev.c (flag_excess_precision): Delete.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
	* libgcc2.c (MIN_UNITS_PER_WORD): Delete.
	* hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
	(no_caller_save_reg_set): Redefine as a macro.
	* reload.h (target_reload): Add x_caller_save_initialized_p and
	x_regno_save_mode.
	(caller_save_initialized_p): Redefine as a macro.
	* caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
	(MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
	(regno_save_mode): Redefine as a macro.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
	* expmed.h: New file.
	* expmed.c (default_target_costs): New variable.
	(this_target_costs): New conditional variable.
	(sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
	(shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
	(sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
	* target-globals.h (this_target_expmed): Declare.
	(target_globals): Add a expmed field.
	(restore_target_globals): Copy the expmed field to
	this_target_expmed.
	* target-globals.c: Include expmed.h.
	(default_target_globals): Initialize the expmed field.
	(save_target_globals): Likewise.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (target-globals.o): Depend on reload.h.
	* reload.h (target_reload): New structure.
	(default_target_reload): Declare.
	(this_target_reload): Declare as a variable or define as a macro.
	(indirect_symref_ok, double_reg_address_ok): Redefine as macros.
	* reload1.c (default_target_reload): New variable
	(this_target_reload): New conditional variable.
	(indirect_symref_ok, double_reg_address_ok): Delete.
	(spill_indirect_levels): Redefine as a macro.
	* target-globals.h (this_target_reload): Declare.
	(target_globals): Add a reload field.
	(restore_target_globals): Copy the reload field to
	this_target_reload.
	* target-globals.c: Include hard-reg-set.h.
	(default_target_globals): Initialize the reload field.
	(save_target_globals): Likewise.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (target_rtl): Add x_static_reg_base_value.
	* alias.c (static_reg_base_value): Redefine as a macro.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
	(GTFILES): Remove reginfo.c.
	* rtl.h (target_rtl): Add x_top_of_stack.
	(top_of_stack): New macro.
	* reginfo.c: Don't include ggc.h or gt-reginfo.h.
	(top_of_stack): Delete.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* regs.h (target_regs): Add x_hard_regs_of_mode,
	x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
	x_may_move_out_cost and x_last_mode_for_init_move_cost.
	(have_regs_of_mode, contains_reg_of_mode, move_cost)
	(may_move_in_cost, may_move_out_cost): Redefine as macros.
	* reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
	(may_move_in_cost, may_move_out_cost): Delete.
	(last_mode_for_init_move_cost): Redefine as a macro.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* hard-reg-set.h (target_hard_regs): New structure.
	(default_target_hard_regs): Declare.
	(this_target_hard_regs): Declare as a variable or define as a macro.
	(fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
	(call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
	(reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
	(reg_class_size, reg_class_subclasses, reg_class_subunion)
	(reg_class_superunion, reg_names): Redefine as macros.
	* reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
	(call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
	(regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
	(reg_class_contents, reg_class_size, reg_class_subclasses)
	(reg_class_subunion, reg_class_superunion, reg_names): Delete.
	(default_target_hard_regs): New variable
	(this_target_hard_regs, initial_call_really_used_regs)
	(initial_reg_alloc_order): New conditional variables.
	(initial_reg_names): New variable.
	(init_reg_sets): Assert that initial_call_really_used_regs,
	initial_reg_alloc_order and initial_reg_names
	are all the same size as their variable counterparts.  Use them to
	initialize those counterparts.
	* target-globals.h (this_target_hard_regs): Declare.
	(target_globals): Add a hard_regs field.
	(restore_target_globals): Copy the hard_regs field to
	this_target_hard_regs.
	* target-globals.c: Include hard-reg-set.h.
	(default_target_globals): Initialize the hard_regs field.
	(save_target_globals): Likewise.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (target-globals.o): Depend on $(RTL_H).
	* rtl.h (target_rtl): New structure.
	(default_target_rtl): Declare.
	(this_target_rtl): Declare as a variable or define as a macro.
	(global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
	Redefine as macros.
	* emit-rtl.c (default_target_rtl): New variable.
	(this_target_rtl): New conditional variable.
	(global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
	(return_address_pointer_rtx): Delete.
	(initial_regno_reg_rtx): New macro.
	(init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
	(init_emit_regs): Likewise.
	* target-globals.h (this_target_rtl): Declare.
	(target_globals): Add a rtl field.
	(restore_target_globals): Copy the rtl field to this_target_rtl.
	* target-globals.c: Include rtl.h.
	(default_target_globals): Initialize the rtl field.
	(save_target_globals): Likewise.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (target-globals.o): Depend on $(REGS_H).
	* regs.h (target_reg_modes): New structure.
	(default_target_reg_modes): Declare.
	(this_target_reg_modes): Declare as a variable or define as a macro.
	(hard_regno_nregs, reg_raw_mode): Redefine as macros.
	* reginfo.c (default_target_reg_modes): New variable.
	(this_target_reg_modes): New conditional variable.
	(hard_regno_nregs, reg_raw_mode): Delete.
	* target-globals.h (this_target_regs): Declare.
	(target_globals): Add a regs field.
	(restore_target_globals): Copy the regs field to this_target_regs.
	* target-globals.c: Include regs.h.
	(default_target_globals): Initialize the regs field.
	(save_target_globals): Likewise.

2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/tm.texi.in (SWITCHABLE_TARGET): Document.
	* doc/tm.texi: Regenerate.
	* Makefile.in (OBJS-common): Add target-globals.o.
	(gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
	and target-globals.h.
	(target-globals.o): New rule.
	(GTFILES): Include $(srcdir)/target-globals.h.
	* defaults.h (SWITCHABLE_TARGET): Define.
	* gengtype.c (open_base_files): Add target-globals.h to the
	list of includes.
	* target-globals.h: New file.
	* target-globals.c: Likewise.

	* Makefile.in (target-globals.o): Depend on $(FLAGS_H).
	* flags.h (target_flag_state): New structure.
	(default_target_flag_state): Declare.
	(this_target_flag_state): Declare as a variable or define as a macro.
	(align_loops_log): Redefine as a macro.
	(align_loops_max_skip, align_jumps_log): Likewise.
	(align_jumps_max_skip, align_labels_log): Likewise.
	(align_labels_max_skip, align_functions_log): Likewise.
	* toplev.c (default_target_flag_state): New variable.
	(this_target_flag_state): New conditional variable.
	(align_loops_log): Delete.
	(align_loops_max_skip, align_jumps_log): Likewise.
	(align_jumps_max_skip, align_labels_log): Likewise.
	(align_labels_max_skip, align_functions_log): Likewise.
	* target-globals.h (this_target_flag_state): Declare.
	(target_globals): Add a flag_state field.
	(restore_target_globals): Copy the flag_state field to
	this_target_flag_state.
	* target-globals.c: Include flags.h.
	(default_target_globals): Initialize the flag_state field.
	(save_target_globals): Likewise.

2010-07-12  Jie Zhang  <jie@codesourcery.com>

	* postreload.c (reg_symbol_ref[]): New.
	(move2add_use_add2_insn): New.
	(move2add_use_add3_insn): New.
	(reload_cse_move2add): Handle SYMBOL + OFFSET case.
	(move2add_note_store): Likewise.

2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR rtl-optimization/44752
	* genautomata.c (main): Don't emit an empty file even if there
	is no automaton.

2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
	ix86_solaris_return_in_memory.
	* config/i386-protos.h: Reflect this.
	* config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
	* config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
	Move ...
	* config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.

2010-07-12  Jie Zhang  <jie@codesourcery.com>

	* config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
	align the stack when it's going to be saved.

2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR pch/14940
	* config/host-solaris.c (mmap_fixed): New function.
	(sol_gt_pch_get_address): Use it.
	(sol_gt_pch_use_address): Likewise.

2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
	pentiumpro on Solaris 8 and 9/x86.
	* doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
	Document SSE/SSE2 support.
	* doc/sourcebuild.texi (Effective-Target Keywords): Document sse.

2010-07-12  Andi Kleen  <ak@linux.intel.com>

	* lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
	instead of gcc_assert to print better error message for multiple
	prevailing defs.

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

	* config/i386/i386.c (ix86_asm_output_function_label): Change format
	string placeholder from 0x%x to %#x.
	(ix86_code_end): Use putc to output '\n'.
	(ix86_print_operand) <case ';'>: Use putc to output ';'.

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

	* config/i386/winnt.c (i386_pe_file_end): Quote symbol name
	in directive -export.

2010-07-10  Anatoly Sokolov  <aesok@post.ru>

	* reginfo.h (reg_classes_intersect_p): Change arguments type to
	reg_class_t.
	* rtl.h (reg_classes_intersect_p): Adjust prototype.

	* config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
	Remove macros.
	* config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
	rs6000_memory_move_cost): Remove
	* config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
	TARGET_MEMORY_MOVE_COST): Define.
	(rs6000_register_move_cost): Make static. Change arguments type from
	enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
	(rs6000_memory_move_cost): Make static. Change arguments type from
	'enum reg_class' to reg_class_t.

2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>

	PR middle-end/42505
	* tree-inline.c (estimate_num_insns): Refactor builtin complexity
	lookup code into....
	* builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
	new functions.
	* tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
	* cfgloopanal.c (target_clobbered_regs): Define.
	(init_set_costs): Initialize target_clobbered_regs.
	(estimate_reg_pressure_cost): Add call_p argument.  When true,
	adjust the number of available registers to exclude the
	call-clobbered registers.
	* cfgloop.h (target_clobbered_regs): Declare.
	(estimate_reg_pressure_cost): Adjust declaration.
	* tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
	(ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
	(determine_set_costs): Dump target_clobbered_regs.
	(loop_body_includes_call): New function.
	(tree_ssa_iv_optimize_loop): Use it to initialize new field.
	* loop-invariant.c (gain_for_invariant): Adjust arguments to pass
	call_p flag through.
	(best_gain_for_invariant): Likewise.
	(find_invariants_to_move): Likewise.
	(move_single_loop_invariants): Likewise, using already-computed
	has_call field.

2010-07-10  Richard Guenther  <rguenther@suse.de>
	    Joern Rennecke  <joern.rennecke@embecosm.com>

	PR debug/44832
	* tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
	(remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
	unless they have DECL_IGNORED_P set.

2010-07-10  Richard Guenther  <rguenther@suse.de>

	PR lto/44889
	* gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
	helper function.
	(gimple_types_compatible_p): Similar to pointed-to
	types allow and merge a mix of complete and incomplete aggregate.
	Use gimple_fixup_complete_and_incomplete_subtype_p for that.
	(iterative_hash_gimple_type): Adjust for that.

2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.

2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>

	PR objc/44140
	* config/darwin.c (output_objc_section_asm_op): Save and restore
	section when outputting ObjC section list.

2010-07-09  Jan Hubicka  <jh@suse.cz>

	* lto-streamer-out.c (produce_symtab): Do not write alias
	cgraph/varpool nodes.

2010-07-09  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c (declare_return_variable): Fix ICE while
	inlining DECL_BY_VALUE function not in SSA form

2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>

	PR tree-optimization/44576
	* tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
	New.  Pull out from is_loop_prefetching_profitable to implement
	the trip count to ahead ratio heuristic.
	(mem_ref_count_reasonable_p): New.  Pull out from
	is_loop_prefetching_profitable to implement the instruction to
	memory reference ratio heuristic.  Also consider not reasonable if
	the memory reference count is above a threshold (to avoid
	explosive compilation time.
	(insn_to_prefetch_ratio_too_small_p): New.  Pull out from
	is_loop_prefetching_profitable to implement the instruction to
	prefetch ratio heuristic.
	(is_loop_prefetching_profitable): Removed.
	(loop_prefetch_arrays): Distribute the cost analysis across the
	function to allow early exit of the prefetch analysis.
	is_loop_prefetching_profitable is splitted into three functions,
	with each one called as early as possible.
	(PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
	number of memory references in a loop is considered too many.

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

	* reload.c (find_reloads): Don't clear badop if we have a winreg
	alternative, but not win, and the class only has fixed regs.
	* hard-reg-set.h (class_only_fixed_regs): Declare.
	* reginfo.c (class_only_fixed_regs): New array.
	(init_reg_sets_1): Initialize it.
	* config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
	discourage alternatives using the stack pointer.

	* config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.

	* config/arm/arm.md (Thumb-1 ldrsb peephole): New.

	* config/arm/arm.md (cbranchqi4): Fix array size.
	(addsi3_cbranch): Also andle alternative 2 like alternative 3 when
	calculating length.

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

	* gimple.c (struct type_fixup_s): New struct and VEC type.
	(gimple_register_type_fixups): New static global.
	(gimple_queue_type_fixup): New function.
	(gimple_types_compatible_p): Queue type fixups instead of
	applying them here.
	(gimple_register_type): Apply queued fixups for the
	canonical type.  Empty the type fixup queue.

2010-07-09  Uros Bizjak  <ubizjak@gmail.com>

	* configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
	* configure: Regenerate.
	* config.in: Ditto.

2010-07-09  Jakub Jelinek  <jakub@redhat.com>
	    Denys Vlasenko  <dvlasenk@redhat.com>
	    Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	PR tree-optimization/28632
	* tree-vrp.c (zero_nonzero_bits_from_vr): New function.
	(extract_range_from_binary_expr): Further optimize
	BIT_AND_EXPR and BIT_IOR_EXPR.

2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (fold_or_predicates): New.
	(add_to_predicate_list): Call it.

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

	PR middle-end/44890
	* tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
	if base is a pointer.
	* tree-cfg.c (verify_expr): Update MEM_REF checking.

2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/44877
	* config/rs6000/rs6000.c (rs6000_expand_builtin): Use
	POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
	builtin mask for load/store builtins.

2010-07-09  Uros Bizjak  <ubizjak@gmail.com>

	* configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
	for "lock addl".
	* configure: Regenerate.
	* config/i386/i386.c (ix86_print_operand) <case ';'>:
	Remove TARGET_MACHO.

2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
	default ISA flags.
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.

2010-07-09  Tom de Vries  <tjvries@xs4all.nl>

	* tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.

2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.md (commsTestPort): Emit more
	efficient sequence for tstport instruction.

2010-07-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_veclib_handler): Make static.

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

	PR tree-optimization/44852
	* tree-ssa-alias.c: Include toplev.h for exact_log2.
	(indirect_ref_may_alias_decl_p): Properly handle negative offsets
	in MEM_REF.
	(indirect_refs_may_alias_p): Likewise.
	* Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).

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

	PR tree-optimization/44882
	* tree-vect-stmts.c (vectorizable_store): Do not assert alias
	sets do conflict.
	(vectorizable_load): Likewise.

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

	PR target/40657
	* config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
	All callers changed.
	Handle the case when we're called for the epilogue.
	(thumb_unexpanded_epilogue): Use it.
	(thumb1_expand_epilogue): Likewise.

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

	* tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
	both ranges are range_int_cst_p with non-negative minimum,
	try harder to derive smaller range.

2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* genrecog.c: Include diagnostic-core.h before toplev.h.
	* genoutput.c: Likewise.
	* genextract.c: Likewise.
	* genautomata.c: Likewise.
	* genemit.c: Likewise.
	* genpeep.c: Likewise.
	* genattrtab.c: Likewise.
	* genconditions.c: Likewise.
	* genpreds.c: Likewise.

2010-07-08  Andi Kleen  <ak@linux.intel.com>

	* lto-section-in.c (lto_section_name): Add missing comma.

2010-07-08  Anatoly Sokolov  <aesok@post.ru>

	* config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
	* config/ia64/ia64-protos.h (ia64_override_options): Remove.
	* config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
	(ia64_override_options): Rename to...
	(ia64_option_override): ... this one. Make static.

2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/44843
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
	pointed-to type of the offset in a MEM_REF to compute the alignment.

2010-07-08  Kai Tietz  <kai.tietz@onevision.com>

	* final.c (final_scan_insn): Replace
	TARGET_UNWIND_INFO macro check by unwind_emit
	hook NULL check.
	* targhooks.c (default_unwind_emit): Removed.
	* targhooks.h (default_unwind_emit): Likewise.
	* target.def (unwind_emit): Set default value to NULL.

	* config/i386/i386-protos.h (ix86_asm_output_function_label):
	New prototype.
	* config/i386/i386.c (ix86_function_ms_hook_prologue): Check
	for NULL fntype argument and allow 64-bit targets.
	(ix86_asm_output_function_label): New function.
	(ix86_expand_prologue): Handle 64-bit ms hook prologue.
	(ix86_handle_fndecl_attribute): Likewise.
	* doc/extend.texi (ms_hook_prologue): Adjust documentation.
	* doc/doc/tm.texi: Regenerated.
	* doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
	(ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
	* defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
	* config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
	ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
	* config/elfos.h: Likewise.
	* config/i386/cygming.h: Likewise.
	* config/netbsd-aout.h: Likewise.
	* config/openbsd.h: Likewise.
	* config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
	by ix86_asm_output_function_label function call.
	* varasm.c (assemble_start_function): Use
	ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.

2010-07-08  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
	New function.
	* cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
	Declare.
	* ipa-cp.c (ipcp_estimate_growth): Use it.
	* ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
	Likewise.

2010-07-08  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c (declare_return_variable): Allocate annotation for new
	temporary.

2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/44710
	* tree-if-conv.c (parse_predicate): New.
	(add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
	Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.

2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>

	* common.opt (ftree-loop-if-convert): New flag.
	* doc/invoke.texi (ftree-loop-if-convert): Documented.
	* tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
	when flag_tree_loop_if_convert is set.

2010-07-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c: Use short syntax for function calls
	through function pointers.
	* config/i386/i386.md: Ditto.

2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.

2010-07-08  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
	stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.

2010-07-08  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
	instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
	(loc_list_from_tree): Likewise.
	(output_loc_operands): Handle outputting DW_OP_const[48]u
	with loc->dtprel set.
	(resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.

2010-07-08  Jan Hubicka  <jh@suse.cz>

	* ipa.c: Include pointer-set.h
	(cgraph_externally_visible_p): New attribute ALIASED;
	when in LTO, hidden symbols are local unless they are aliased.
	(function_and_variable_visibility): Compute aliased nodes;
	handle LTO and hidden symbol on functions and vars.
	* cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
	for COMDAT symbols; handle COMDAT_GROUPS also at vars.

2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
	* config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
	* config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
	* config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
	* config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
	* config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
	(ix86_gen_probe_stack_range): Likewise.
	(override_options): Set them.
	(ix86_target_stack_probe): New function.
	(ix86_compute_frame_layout): Force use of push instructions to
	save registers if stack checking with probes is enabled.
	(get_scratch_register_on_entry): New function.
	(release_scratch_register_on_entry): Likewise.
	(ix86_adjust_stack_and_probe): Likewise.
	(output_adjust_stack_and_probe): Likewise.
	(ix86_emit_probe_stack_range): Likewise.
	(output_probe_stack_range): Likewise.
	(ix86_expand_prologue): Emit stack checking code if static built-in
	stack checking is enabled.
	Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
	* config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
	(output_adjust_stack_and_probe): Likewise.
	(output_probe_stack_range): Likewise.
	* config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
	(allocate_stack_worker_32): Test ix86_target_stack_probe instead of
	TARGET_STACK_PROBE.
	(allocate_stack_worker_64): Likewise.
	(allocate_stack): Likewise.
	(adjust_stack_and_probe): New insn.
	(probe_stack_range): Likewise.

2010-07-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44831
	* tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
	a MEM_REF preserving TBAA info of the original dereference.
	Dereference the original pointer if the address is not invariant.
	(propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
	at least one invariant address that we are going to dereference.

2010-07-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44861
	* tree-vect-stmts.c (vectorizable_store): Preserve TBAA
	information when building MEM_REFs.
	(vectorizable_load): Likewise.
	* tree-vect-data-refs.c (vect_setup_realignment): Likewise.

2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sol2-c.c: Do not include diagnostic-core.h.

2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR bootstrap/44768
	* cfgexpand.c (estimated_stack_frame_size): Make self-contained
	with respect to current_function_decl. Pass decl of the function.
	* tree-inline.h (estimated_stack_frame_size): Adjust prototype.
	* ipa-inline.c (compute_inline_parameters): Pass decl to
	estimated_stack_frame_size.

2010-07-08  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
	New function.
	(valueize_refs): Call it.

2010-07-08  Richard Guenther  <rguenther@suse.de>

	PR rtl-optimization/44838
	* tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
	SSA form do not use pointer equivalence.

2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (AT_linkage_name): Delete.
	(add_linkage_attr): New function.
	(add_linkage_name): Call it to emit the linkage attribute.
	(dwarf2out_finish): Likewise.
	(move_linkage_attr): Explicitly accept both attribute variants.

2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* toplev.h: Do not include diagnostic-core.h.
	Include diagnostic-core.h in every file that includes toplev.h.
	* c-tree.h: Do not include toplev.h.
	* pretty-print.h: Update comment.
	* Makefile.in: Update dependencies.
	* alias.c: Include diagnostic-core.h in every file that includes
	toplev.h.
	* attribs.c: Likewise.
	* auto-inc-dec.c: Likewise.
	* bb-reorder.c: Likewise.
	* bt-load.c: Likewise.
	* caller-save.c: Likewise.
	* calls.c: Likewise.
	* cfg.c: Likewise.
	* cfganal.c: Likewise.
	* cfgbuild.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfghooks.c: Likewise.
	* cfgloop.c: Likewise.
	* combine.c: Likewise.
	* config/alpha/alpha.c: Likewise.
	* config/arc/arc.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/pe.c: Likewise.
	* config/avr/avr.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/cris/cris.c: Likewise.
	* config/crx/crx.c: Likewise.
	* config/darwin-c.c: Likewise.
	* config/darwin.c: Likewise.
	* config/fr30/fr30.c: Likewise.
	* config/frv/frv.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/host-darwin.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/netware.c: Likewise.
	* config/i386/nwld.c: Likewise.
	* config/i386/winnt-cxx.c: Likewise.
	* config/i386/winnt-stubs.c: Likewise.
	* config/i386/winnt.c: Likewise.
	* config/ia64/ia64-c.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/lm32/lm32.c: Likewise.
	* config/m32c/m32c-pragma.c: Likewise.
	* config/m32c/m32c.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/m68hc11/m68hc11.c: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mep/mep-pragma.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/moxie/moxie.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pdp11/pdp11.c: Likewise.
	* config/picochip/picochip.c: Likewise.
	* config/rs6000/rs6000-c.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/score/score.c: Likewise.
	* config/score/score3.c: Likewise.
	* config/score/score7.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/symbian-base.c: Likewise.
	* config/sh/symbian-c.c: Likewise.
	* config/sh/symbian-cxx.c: Likewise.
	* config/sol2-c.c: Likewise.
	* config/sol2.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/v850/v850-c.c: Likewise.
	* config/v850/v850.c: Likewise.
	* config/vax/vax.c: Likewise.
	* config/vxworks.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.
	* convert.c: Likewise.
	* cse.c: Likewise.
	* cselib.c: Likewise.
	* dbgcnt.c: Likewise.
	* dbxout.c: Likewise.
	* ddg.c: Likewise.
	* dominance.c: Likewise.
	* emit-rtl.c: Likewise.
	* explow.c: Likewise.
	* expmed.c: Likewise.
	* fixed-value.c: Likewise.
	* fold-const.c: Likewise.
	* fwprop.c: Likewise.
	* gcse.c: Likewise.
	* ggc-common.c: Likewise.
	* ggc-page.c: Likewise.
	* ggc-zone.c: Likewise.
	* gimple-low.c: Likewise.
	* gimplify.c: Likewise.
	* graph.c: Likewise.
	* haifa-sched.c: Likewise.
	* ifcvt.c: Likewise.
	* implicit-zee.c: Likewise.
	* integrate.c: Likewise.
	* ira-build.c: Likewise.
	* ira-color.c: Likewise.
	* ira-conflicts.c: Likewise.
	* ira-costs.c: Likewise.
	* ira-lives.c: Likewise.
	* ira.c: Likewise.
	* lists.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-iv.c: Likewise.
	* lto-opts.c: Likewise.
	* lto-symtab.c: Likewise.
	* main.c: Likewise.
	* modulo-sched.c: Likewise.
	* optabs.c: Likewise.
	* params.c: Likewise.
	* plugin.c: Likewise.
	* postreload-gcse.c: Likewise.
	* postreload.c: Likewise.
	* predict.c: Likewise.
	* profile.c: Likewise.
	* real.c: Likewise.
	* regcprop.c: Likewise.
	* reginfo.c: Likewise.
	* regmove.c: Likewise.
	* reorg.c: Likewise.
	* resource.c: Likewise.
	* rtl.c: Likewise.
	* rtlanal.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-ebb.c: Likewise.
	* sched-rgn.c: Likewise.
	* sdbout.c: Likewise.
	* sel-sched-dump.c: Likewise.
	* sel-sched-ir.c: Likewise.
	* simplify-rtx.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* store-motion.c: Likewise.
	* targhooks.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-nomudflap.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-optimize.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-phinodes.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-loop.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa-uninit.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vrp.c: Likewise.
	* varasm.c: Likewise.
	* vec.c: Likewise.
	* web.c: Likewise.
	* xcoffout.c: Likewise.

2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>

	* gengtype.c (write_field_root): New function.
	(write_root): Use it.

2010-07-07  Wei Guozhi  <carrot@google.com>

	* config/arm/thumb2.md (peephole2 to convert zero_extract/compare
	of lowest bits to lshift/compare): Add a missing line.

2010-07-07  Wei Guozhi  <carrot@google.com>

	* config/arm/thumb2.md (peephole2 to convert zero_extract/compare
	of lowest bits to lshift/compare): New.

2010-07-07  Tom Tromey  <tromey@redhat.com>

	* doc/tm.texi: Update.
	* doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
	Add @hook.
	* target.def (want_debug_pub_sections): New hook.
	* config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
	* dwarf2out.c (add_pubname_string): Check
	targetm.want_debug_pub_sections.
	(add_pubname): Likewise.
	(add_pubtype): Likewise.

2010-07-07  Jie Zhang  <jie@codesourcery.com>

	* genautomata.c (output_automata_list_min_issue_delay_code):
	Correctly decompress min_issue_delay.

2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/44404
	* auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
	possible, use reg_overlap_mentioned_p instead.

2010-07-07  Duncan Sands  <baldrick@free.fr>

	PR middle-end/41355
	* tree.c (build_function_type_skip_args): Copy the original type using
	build_distinct_type_copy rather than copy_node.

2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/44850
	* config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
	revision 161876.
	(ix86_expand_prologue): Likewise.
	(ix86_handle_fndecl_attribute): Likewise.
	(ix86_asm_declare_function_name): Likewise.
	* config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
	* config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
	(SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
	* config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
	* doc/extend.texi: Likewise.

2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/44844
	* config/i386/i386.md (rdrand<mode>): Changed to expand to
	retry if the carry flag isn't valid.
	(rdrand<mode>_1): New.

2010-07-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44790
	* expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
	for expanding the constant offset for MEM_REFs.

2010-07-07  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-propagate.h (valid_gimple_call_p): Remove.
	* tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
	* gimple.h (is_gimple_operand): Remove.
	* gimple.c (is_gimple_operand): Likewise.
	(walk_gimple_op): Fix wi->val_only setting for calls.
	* tree-cfg.c (verify_gimple_call): Fix argument validation.
	* tree-profile.c (tree_gen_ic_func_profiler): Do not create
	invalid gimple calls.

2010-07-06  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (output_cgraph): Add missing declaration.

2010-07-06  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (output_cgraph): Output toplevel asms only into first
	partition.

2010-07-06  Alexandre Oliva  <aoliva@redhat.com>

	* doc/gimple.texi (GIMPLE_DEBUG): Document.
	* doc/rtl.texi (Debug Information): New node.
	(NOTE_INSN_VAR_LOCATION): Document.
	(debug_insn): Likewise.
	* doc/generic.texi (DEBUG_EXPR_DECL): Document.

2010-07-07  Jan Hubicka  <jh@suse.cz>

	With parts by Richard Guenther.

	PR middle-end/44813
	* tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
	for functions passed by reference.
	* tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
	in memory when passed by reference.
	* tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
	beggining.
	* ipa-split.c (split_function): Cleanup way return value is passed;
	handle SSA DECL_BY_REFERENCE retvals.
	* tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
	DECL_BY_REFERENCE is set.
	* tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
	find_what_p_points_to): Handle RESULT_DECL.
	* tree-inline.c (declare_return_variable): Get new entry_block argument;
	when passing by reference ensure that RESULT_DECL is gimple_val.
	(remap_gimple_op_r): Remap RESULT_DECL ssa name.
	(remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.

2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/44787
	* config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
	* config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.

2010-07-06  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
	(lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
	with body can prevail.
	(lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
	(lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
	* cgraph.c (cgraph_get_node_or_alias): New function.
	* cgraph.h (cgraph_get_node_or_alias): Declare.

2010-07-06  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
	support.
	(ix86_expand_prologue): Likewise.
	(ix86_handle_fndecl_attribute): Likewise.
	(ix86_asm_declare_function_name): New function for
	ASM_DECLARE_FUNCTION_NAME.
	* config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
	* config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
	(SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
	* config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
	* doc/extend.texi: Adjust documentation about ms_hook_prologue
	attribute.

2010-07-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (immediate_operand): New mode attribute.

	(pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
	pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
	using P mode iterator.
	(pro_epilogue_adjust_stack_di_2): Rename from
	pro_epilogue_adjust_stack_rex64_2.

	* config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.

2010-07-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
	through gen_mov_insv_1 function pointer.
	(fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
	gen_truncxf<mode>2 through gen_truncxf function pointer.
	(remainder<mode>3): Ditto.
	(cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
	(allocate_stack): Call gen_allocate_stack_worker_64 or
	gen_allocate_stack_worker_32 through gen_allocate_stack_worker
	function pointer.
	(probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
	function pointer.

2010-07-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
	operand constraint instead of <r><i>m.

2010-07-06  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44828
	* convert.c (convert_to_integer): Watch out for overflowing
	MULT_EXPR as well.

2010-07-05  Jan Hubicka  <jh@suse.cz>

	* lto-streamer.c (write_symbol_vec): Rename to ...
	(write_symbol) ... this one; write only symbol given and when
	present in cache. Sanity check that what is defined is present
	in cgraph/varpool with body/finalized decl.
	(write_symbols_of_kind): Remove.
	(produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
	pairs to produce symtab.
	(produce_asm_for_decls): Update call of produce_symtab; don't do so
	when doing WPA streaming.

2010-07-05  Jan Hubicka  <jh@suse.cz>

	* gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
	function is still available to fold into.

2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>

	* vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
	* function.h (struct_function): Change type of local_decls field
	to a VEC.
	(add_local_decl): New function.
	(FOR_EACH_LOCAL_DECL): New macro.
	* cfgexpand.c (init_vars_expansion): Adjust for new type of
	cfun->local_decls.
	(estimated_stack_frame_size): Likewise.
	(expand_used_vars): Likewise.
	* cgraphbuild.c (build_cgraph_edges): Likewise.
	* function.c (instantiate_decls_1): Likewise.
	* ipa-struct-reorg.c (build_data_structure): Likewise.
	* ipa-type-escape.c (analyze_function): Likewise.
	* lto-streamer-in.c (input_function): Likewise.
	* lto-streamer-out.c (output_function): Likewise.
	* tree-ssa-live.c (remove_unused_locals): Likewise.
	* tree.c (free_lang_data_in_decl): Likewise.
	(find_decls_types_in_node): Likewise.
	* omp-low.c (remove_exit_barrier): Likewise.
	(expand_omp_taskreg): Likewise.
	(list2chain): Rename to...
	(vec2chain): ...this.  Adjust.
	* cgraphunit.c (assemble_thunk): Call add_local_decl.
	* tree-cfg.c (replace_by_duplicate_decl): Likewise.
	* gimple-low.c (record_vars_into): Likewise.
	* tree-inline.c (remap_decls): Likewise.
	(declare_return_variable): Likewise.
	(declare_inline_vars): Likewise.
	(copy_forbidden): Adjust for new type of cfun->local_decls.
	(add_local_variables): New function.
	(expand_call_inline): Call it.
	(tree_function_versioning): Likewise.

2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>

	AVX Programming Reference (June, 2010)
	* config/i386/cpuid.h (bit_F16C): New.
	(bit_RDRND): Likewise.
	(bit_FSGSBASE): Likewise.

	* config/i386/i386-builtin-types.def: Add
	"DEF_FUNCTION_TYPE (UINT16)", function types for
	float16 <-> float conversions and
	"DEF_FUNCTION_TYPE (VOID, UINT64)".

	* config/i386/i386-c.c (ix86_target_macros_internal): Support
	OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
	OPTION_MASK_ISA_F16C.

	* config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
	(OPTION_MASK_ISA_RDRND_SET): Likewise.
	(OPTION_MASK_ISA_F16C_SET): Likewise.
	(OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
	(OPTION_MASK_ISA_RDRND_UNSET): Likewise.
	(OPTION_MASK_ISA_F16C_UNSET): Likewise.
	(OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
	(ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
	(ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
	(pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
	(override_options): Handle them.
	(ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
	(ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
	IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
	IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
	IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
	IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
	IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
	IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
	IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
	(bdesc_args): Likewise.
	(ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
	V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
	(ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
	VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
	Handle non-memory store.

	* config/i386/i386.h (TARGET_FSGSBASE): New.
	(TARGET_RDRND): Likewise.
	(TARGET_F12C): Likewise.

	* config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
	(UNSPEC_VCVTPS2PH): Likewise.
	(UNSPECV_RDFSBASE): Likewise.
	(UNSPECV_RDGSBASE): Likewise.
	(UNSPECV_WRFSBASE): Likewise.
	(UNSPECV_WRGSBASE): Likewise.
	(UNSPECV_RDRAND): Likewise.
	(rdfsbase<mode>): Likewise.
	(rdgsbase<mode>): Likewise.
	(wrfsbase<mode>): Likewise.
	(wrgsbase<mode>): Likewise.
	(rdrand<mode>): Likewise.

	* config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.

	* config/i386/immintrin.h (_rdrand_u16): New.
	(_rdrand_u32): Likewise.
	(_readfsbase_u32): Likewise.
	(_readfsbase_u64): Likewise.
	(_readgsbase_u32): Likewise.
	(_readgsbase_u64): Likewise.
	(_writefsbase_u32): Likewise.
	(_writefsbase_u64): Likewise.
	(_writegsbase_u32): Likewise.
	(_writegsbase_u64): Likewise.
	(_rdrand_u64): Likewise.
	(_cvtsh_ss): Likewise.
	(_mm_cvtph_ps): Likewise.
	(_mm256_cvtph_ps): Likewise.
	(_cvtss_sh): Likewise.
	(_mm_cvtps_ph): Likewise.
	(_mm256_cvtps_ph): Likewise.

	* config/i386/sse.md (vcvtph2ps): New.
	(*vcvtph2ps_load): Likewise.
	(vcvtph2ps256): Likewise.
	(vcvtps2ph): Likewise.
	(*vcvtps2ph): Likewise.
	(*vcvtps2ph_store): Likewise.
	(vcvtps2ph256): Likewise.

	* doc/extend.texi: Document FSGSBASE and RDRND built-in functions.

	* doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.

2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR bootstrap/44512
	* genenums.c (main): Output include of insn-constants.h
	* Makefile.in (insn-enums.o): Depend on insn-constants.h.

2010-07-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
	(override_options): Initialize it.
	(ix86_expand_prologue): Use it.

2010-07-05  Jakub Jelinek  <jakub@redhat.com>

	* tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.

2010-07-05  Anatoly Sokolov  <aesok@post.ru>

	* double-int.h (fit_double_type): Remove declaration.
	* double-int.c (fit_double_type): Remove function.
	* tree.h (int_fits_type_p): Adjust prototype.
	* tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
	instead of fit_double_type.
	(build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
	instead of fit_double_type and build_int_cst_wide.
	* builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
	instead of fit_double_type and build_int_cst_wide.
	(fold_builtin_object_size): Use double_int_fits_to_tree_p instead
	of fit_double_type.

2010-07-05  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
	in_other_partition.
	* lto-cgraph.c (referenced_from_other_partition_p,
	reachable_from_other_partition_p): Use in_other_partition flags.
	(output_node, output_varpool_node): COMDAT nodes always have private
	copies and thus are never used from other partition.

2010-07-05  Anatoly Sokolov  <aesok@post.ru>

	* config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
	* config/ia64/t-ia64 (ia64.o): Depend on reload.h.
	* config/ia64/ia64.c Include reload.h.
	(ia64_memory_move_cost): New function.
	(TARGET_MEMORY_MOVE_COST): Define.
	(ia64_register_move_cost): Replace MEMORY_MOVE_COST with
	memory_move_cost.

2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>

	PR middle-end/42505
	* tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
	comments about cost model.
	(try_add_cand_for):  Add second strategy for choosing initial set
	based on original IVs, controlled by ORIGINALP argument.
	(get_initial_solution): Add ORIGINALP argument.
	(find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
	(find_optimal_iv_set): Try two different strategies for choosing
	the IV set, and return the one with lower cost.

2010-07-05  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.

2010-07-05  Richard Guenther  <rguenther@suse.de>

	* tree.c (reference_alias_ptr_type): New function.
	* tree.h (reference_alias_ptr_type): Declare.
	* tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
	allow non-TARGET_MEM_REF new refs.
	(rewrite_use_address): Pass old alias pointer type to create_mem_ref.
	* tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
	Build a MEM_REF instead of a TARGET_MEM_REF if possible.
	(create_mem_ref): Get alias pointer type.  Adjust calls to
	create_mem_ref_raw.
	(maybe_fold_tmr): Likewise.
	* tree-flow.h (create_mem_ref): Adjust prototype.

2010-07-05  Jakub Jelinek  <jakub@redhat.com>

	PR c++/44808
	* gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
	*from_p is VAR_DECL.

2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (build_call_list): Remove.
	* tree.c (build_call_list): Remove.

2010-07-05  Richard Guenther  <rguenther@suse.de>

	* double-int.h (double_int_sub): Declare.
	* double-int.c (double_int_sub): New function.
	* dwarf2out.c (field_byte_offset): Use it.
	* fixed-value.c (do_fixed_add): Likewise.
	(do_fixed_multiply): Likewise.
	(do_fixed_divide): Likewise.
	* tree-predcom.c (add_ref_to_chain): Likewise.
	(determine_roots_comp): Likewise.
	* tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.

2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>

	* vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
	implementations.

2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>

	* config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
	* arm-modes.def (CC_NOTB): Don't define.
	* config/arm/arm.md (arm_adddi3): Generate canonical RTL.
	(adddi_sesidi_di, adddi_zesidi_di): Likewise.
	(LTUGEU): New code_iterator.
	(cnb, optab): New corresponding code_attrs.
	(addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
	to canonical form.  Operands 1 and 2 are commutative.  Parametrize
	using LTUGEU.
	(addsi3_carryin_shift_<optab>): Likewise.
	(addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
	Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
	(addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
	(subsi3_compare): Renamed from subsi3_compare0_c.
	Change CC_NOTB to CC.
	(arm_subsi3_insn): Allow constants for operand 0.
	(compare_scc peephole for eq case): New.
	(compare_scc splitters): Change CC_NOTB to CC.

2010-07-05  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-im.c (for_each_index): Do not handle
	ALIGN_INDIRECT_REF.
	(gen_lsm_tmp_name): Likewise.
	* tree-dump.c (dequeue_and_dump): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	(op_code_prio): Likewise.
	(op_symbol_code): Likewise.
	* tree.c (staticp): Likewise.
	(build1_stat): Likewise.
	* tree.h (INDIRECT_REF_P): Likewise.
	* fold-const.c (maybe_lvalue_p): Likewise.
	(operand_equal_p): Likewise.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
	(ao_ref_init_from_vn_reference): Likewise.
	* tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
	(find_interesting_uses_address): Likewise.
	* dwarf2out.c (loc_list_from_tree): Likewise.
	* gimplify.c (gimplify_expr): Likewise.
	* tree-eh.c (tree_could_trap_p): Likewise.
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
	* cfgexpand.c (expand_debug_expr): Likewise.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
	* tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
	* tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
	* config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* expr.c (safe_from_p): Likewise.
	(expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
	* tree-vect-data-refs.c (vect_setup_realignment): Build
	BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
	* tree-vect-stmts.c (vectorizable_load): Likewise.
	* tree.def (ALIGN_INDIRECT_REF): Remove.

2010-07-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44784
	* tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
	for inserted stmts.
	(find_or_generate_expression): Fix SCCVN insertion check.

2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>

	* config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
	* config/rs6000/e500crtsav64gprctr.asm: Likewise.
	* config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
	directives.

2010-07-05  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
	statements that are not vectorized.
	* tree-vect-stmts.c (vect_get_load_cost): Update the value stored
	in INSIDE_COST.

2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>

	PR bootstrap/44820
	* config/arm/arm.c (arm_attr_length_move_neon): Delete regno.

2010-07-05  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
	RESULT_DECLs properly.

2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/44695
	* config/i386/i386.md (extract_code): Removed.
	(<u>divmodqi4): Likewise.
	(divmodqi4): New.
	(udivmodqi4): Likewise.
	(divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
	(udivmodhiqi3): Likewise.

2010-07-04  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (input_edge): Do not care about resolution decisions.

2010-07-04  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (init_cgraph): Only initialize dump file if it
	is not already initialized.

2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
	(vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
	(cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
	(sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
	(sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
	(sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
	(sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
	(sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
	(sync_new_nand_optab): Redefine as macros.
	(sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
	Delete.
	(direct_optab_index): New enum.
	(direct_optab_d): New structure.
	(direct_optab): New typedef.
	(direct_optab_table): Declare.
	(direct_optab_handler, set_direct_optab_handler): New functions.
	(sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
	(sync_lock_release_optab): New macros.
	* optabs.c (direct_optab_table): New variable.
	(movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
	(prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
	cmpstr_optab and cmpstrn_optab.
	(emit_conditional_move): Likewise for movcc_optab.
	(can_conditionally_move_p): Likewise for movcc_gen_code.
	(init_insn_codes): Clear direct_optab_table.
	(init_optabs): Don't initialize the new "direct optabs" here.
	(get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
	vcond_gen_code.
	(expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
	(expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
	(expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
	(expand_sync_operation): Likewise other sync_*_optabs.
	(expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
	to sync_compare_and_swap_optab.
	(expand_sync_lock_test_and_set): Use direct_optab_handler for
	sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
	to the names of both.
	* builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
	cmpstr_optab and cmpstrn_optab.
	(expand_builtin_lock_release): Likewise sync_lock_release.
	* expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
	(cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
	(sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
	(sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
	(sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
	(sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
	(sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
	(sync_lock_test_and_set, sync_lock_release): Delete.
	(emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
	(emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
	* genopinit.c (optabs): Use set_direct_optab_handler for the new
	macro optabs.
	* omp-low.c (expand_omp_atomic_fetch_op): Update the type of
	the "optab" local variable.  Use direct_optab_handler for optab and
	sync_compare_and_swap_optab.
	* reload1.c (reload_in_optab, reload_out_optab): Delete.
	* targhooks.c (default_secondary_reload): Use direct_optab_handler for
	reload_in_optab and reload_out_optab.
	* config/alpha/alpha.c (alpha_secondary_reload): Likewise.
	* config/frv/frv.c (frv_alloc_temp_reg): Likewise.
	* config/pa/pa.c (pa_secondary_reload): Likewise.
	* java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
	for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
	(compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
	(VMSupportsCS8_builtin): Likewise.

2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* optabs.h (optab_handlers): Change type of insn_code to int.
	(optab_handler, set_optab_handler, convert_optab_handler)
	(set_convert_optab_handler): Treat the insn_code field as "insn_code -
	CODE_FOR_nothing".
	* optabs.c (optab_table, convert_optab_table): Always zero-initialize.
	(init_insn_codes): Zero both the above arrays.
	(init_optabs): Never call init_insn_codes first time around.

2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* optabs.h (optab_handler, convert_optab_handler): Turn into
	inline functions that return an insn code.
	(set_optab_handler, set_convert_optab_handler): New functions.
	* builtins.c: Replace optab_handler(X)->insn_code with
	optab_handler or set_optab_handler thoughout.  Likewise
	convert_optab_handler(X)->insn_code with convert_optab_handler
	and set_convert_optab_handler.
	* expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
	reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
	tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
	tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
	tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
	config/spu/spu.c: Likewise.

2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/44531
	* config.gcc (sh*-*-*): Use regular expressions instead of
	the 'i' modifier for sed substitutions.

2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>

	* gimple.c (gimple_body): Comments added.

2010-07-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44809
	* gimplify.c (gimplify_expr): Properly build a MEM_REF instead
	of an INDIRECT_REF.

2010-07-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44479
	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
	extra SSA name copy statements which preserves points-to
	information.
	* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
	Copy points-to information for all pointers.  Properly handle
	MEM_REFs.
	(vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
	copy statements.
	* Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
	dependency.

2010-07-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44785
	* tree-inline.c (initialize_inlined_parameters): Do not
	re-use pointer-map slot over remap_type call.

2010-07-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.

2010-07-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44656
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
	again after value-replacing in the defintions lhs.

2010-07-04  Ira Rosen  <irar@il.ibm.com>
	    Revital Eres  <eres@il.ibm.com>

	* doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
	Document new arguments.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_builtin_vectorization_cost): Add new arguments.
	Handle unaligned store.
	* targhooks.h (default_builtin_vectorization_cost): Add new arguments.
	* target.def (builtin_vectorization_cost): Add new arguments.
	* target.h (enum vect_cost_for_stmt): Add unaligned_store.
	* tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
	of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
	(vect_vfa_segment_size): Fix indentation.
	* tree-vectorizer.h (struct _vect_peel_info): New.
	(struct _vect_peel_extended_info): New.
	(struct _loop_vec_info): Add new field for peeling hash table and a
	macro for its access.
	(VECT_MAX_COST): Define.
	(vect_get_load_cost): Declare.
	(vect_get_store_cost, vect_get_known_peeling_cost,
	vect_get_single_scalar_iteraion_cost): Likewise.
	(vect_supportable_dr_alignment): Add new argument.
	* tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
	field.
	(destroy_loop_vec_info): Free peeling hash table.
	(vect_analyze_loop_form): Update call to builtin_vectorization_cost.
	(vect_analyze_loop): Move vect_enhance_data_refs_alignment before
	vect_analyze_slp. Fix indentation.
	(vect_get_single_scalar_iteraion_cost): New function.
	(vect_get_known_peeling_cost): Likewise.
	(vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
	Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
	statement. Move outside cost calculation inside unknown peeling case.
	Call vect_get_known_peeling_cost for known amount of peeling.
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
	reference to the print message of forced alignment.
	(vect_verify_datarefs_alignment): Update call to
	vect_supportable_dr_alignment.
	(vect_get_data_access_cost): New function.
	(vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
	vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
	vect_peeling_hash_choose_best_peeling): Likewise.
	(vect_enhance_data_refs_alignment): Fix documentation. Use hash table
	to store all the accesses in the loop and find best possible access to
	align using peeling for known alignment case. For unknown alignment
	check if stores are preferred or if peeling is worthy.
	(vect_find_same_alignment_drs): Analyze pairs of loads too.
	(vect_supportable_dr_alignment): Add new argument and check aligned
	accesses according to it.
	* tree-vect-stmts.c (vect_get_stmt_cost): New function.
	(cost_for_stmt): Call vect_get_stmt_cost.
	(vect_model_simple_cost): Likewise.
	(vect_model_store_cost): Call vect_get_stmt_cost. Call
	vect_get_store_cost to calculate the cost of the statement.
	(vect_get_store_cost): New function.
	(vect_model_load_cost): Call vect_get_stmt_cost. Call
	vect_get_load_cost to calculate the cost of the statement.
	(vect_get_load_cost): New function.
	(vectorizable_store): Update call to vect_supportable_dr_alignment.
	(vectorizable_load): Likewise.
	* config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
	* config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
	arguments. Handle unaligned store.
	* config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
	(rs6000_builtin_support_vector_misalignment): Return true for word and
	double word alignments for VSX.
	* tree-vect-slp.c (vect_build_slp_tree): Update calls to
	vect_supportable_dr_alignment and builtin_vectorization_cost.

2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/44597
	* config/pa/predicates.md (prefetch_cc_operand): Remove.
	(prefetch_nocc_operand): Likewise.
	* config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
	(prefetch_20): New insn.
	(prefetch_cc): Remove.
	(prefetch_nocc): Likewise.

2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* expr.c (vector_mode_valid_p): Move to c-common.c.
	* expr.h (vector_mode_valid_p): Do not declare here.
	* system.h: Poison GCC_EXPR_H in front-ends.
	* Makefile.in: Update dependencies.

2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/44705
	* config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.

2010-07-03  Jan Hubicka  <jh@suse.cz>

	* timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
	TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
	* cfgexpand.c (gimple_expand_cfg): Use new timevars.
	* var-tracking.c (vt_find_locations, variable_tracking_main_1):
	Likewise.

	* lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
	Update timevars.V
	* timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
	(TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
	TV_IPA_LTO_DECL_OUT): New.
	* lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.

2010-07-03  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (update_edge_key): Break out from ...
	update_callers_keys): ... here;
	(update_callee_keys): Update only the edges from caller to callee.
	(update_all_calle_keys): Do what update_calle_keys did.
	(decide_inlining_of_small_functions): Avoid recomputing of all
	callees when badness increase.

2010-07-03  Jie Zhang  <jie@codesourcery.com>

	* config/arm/arm.c (arm_attr_length_move_neon): New.
	* config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
	* config/arm/neon.md (define_mode_attr V_slen): Remove.
	(neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
	to compute length attribute.

2010-07-03  Jie Zhang  <jie@codesourcery.com>

	* config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
	as predicate for operand 1 and remove its constraint.
	* config/arm/predicates.md (vfp_register_operand): New.
	* config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
	(*push_fp_multi): Likewise.

2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.

2010-07-03  Jan Hubicka  <jh@suse.cz>

	* config/i386/i386.c (override_options): Revert accidental commit.

2010-07-02  Le-Chun Wu  <lcwu@google.com>

	PR c++/44128
	* doc/invoke.texi: Update documentation of -Wshadow.

2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
	comparisons.  Adjust to take both operands.
	(arm_select_cc_mode): Handle DImode comparisons.
	(arm_gen_compare_reg): Generate a scratch register for DImode
	comparisons which require one.  Use xor for Thumb equality checks.
	(arm_const_double_by_immediates): New.
	(arm_print_operand): Allow 'Q' and 'R' for constants.
	(get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
	* config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
	arm_canonicalize_comparison.
	* config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
	* config/arm/arm-protos.h (arm_canonicalize_comparison): Update
	prototype.
	(arm_const_double_by_immediates): Declare.
	* config/arm/constraints.md (Di): New constraint.
	* config/arm/predicates.md (arm_immediate_di_operand)
	(arm_di_operand, cmpdi_operand): New.
	* config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
	(*arm_cmpdi_insn, *arm_cmpdi_unsigned)
	(*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
	(cstoredi4): Handle non-Cirrus also.

2010-07-02  Julian Brown  <julian@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	PR target/43703
	* config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
	(smax<mode>3): Disable for NEON float modes when
	flag_unsafe_math_optimizations is false.
	* config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
	(*mul<mode>3_neon)
	(mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
	(reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
	for NEON float modes when flag_unsafe_math_optimizations is false.
	(quad_halves_<code>v4sf): Only enable if
	flag_unsafe_math_optimizations is true.
	* doc/invoke.texi (ARM Options): Add note about floating point
	vectorization requiring -funsafe-math-optimizations.

2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	* config/arm/neon.md (UNSPEC_VABA): Delete.
	(UNSPEC_VABAL): Delete.
	(UNSPEC_VABS): Delete.
	(UNSPEC_VMUL_N): Delete.
	(adddi3_neon): New.
	(subdi3_neon): New.
	(mul<mode>3add<mode>_neon): Make the pattern named.
	(mul<mode>3neg<mode>add<mode>_neon): Likewise.
	(neon_vadd<mode>): Replace with define_expand, and move the remaining
	unspec parts...
	(neon_vadd<mode>_unspec): ...to this.
	(neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
	(neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
	(neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
	(neon_vaba<mode>): Rewrite in terms of vabd.
	(neon_vabal<mode>): Rewrite in terms of vabdl.
	(neon_vabs<mode>): Rewrite without unspec.
	* config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
	(*arm_subdi3): Likewise.
	* config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
	No_op attribute to disable assembly output checks.
	* config/arm/arm_neon.h: Regenerated.
	* doc/arm-neon-intrinsics.texi: Regenerated.

2010-07-02  Jan Hubicka  <jh@suse.cz>

	* ipa-split.c (split_function): For aggregate values, set the return
	slot optimization bit.  When passing DECL_BY_REFERENCE, produce
	*<retval> = fncall.part ().
	(execute_split_functions): Do not care about DECL_BY_REFERENCE.

2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>

	* config/arm/neon.md (UNSPEC_VAND): Delete.
	(UNSPEC_VBIC): Delete.
	(UNSPEC_VCLZ): Delete.
	(UNSPEC_VCNT): Delete.
	(UNSPEC_VEOR): Delete.
	(UNSPEC_VORN): Delete.
	(UNSPEC_VORR): Delete.
	(iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
	core registers too.
	(anddi3_neon): Likewise.
	(orndi3_neon): Likewise.
	(bicdi3_neon): Likewise.
	(xordi3_neon): Likewise.
	(neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
	rid of unspec and handle unused operand.
	(neon_vcnt<mode>): Similarly, with popcount<mode>2.
	* config/arm/predicates.md (imm_for_neon_logic_operand):
	Require TARGET_NEON.
	(imm_for_neon_inv_logic_operand): Likewise.
	* config/arm/arm.md (define_split for logical_binary_operator):
	Disable for NEON registers.
	(anddi3): Add new define_expand, and rename the insn.  Disable
	this insn for NEON, where anddi3_neon now applies.
	(*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
	(iordi3): As for anddi3.
	(xordi3): Likewise.
	* config/arm/neon.ml (Vand): Split DImode variants and mark them
	as No_op to disable testing for exact instruction match.
	(Vorr): Likewise.
	(Veor): Likewise.
	(Vbic): Likewise.
	(Vorn): Likewise.
	* config/arm/arm_neon.h: Regenerated.
	* doc/arm-neon-intrinsics.texi: Regenerated.

2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.h (emit_stack_probe): Declare.
	* explow.c (emit_stack_probe): Make global.
	(anti_adjust_stack_and_probe): Fix comments.
	* config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
	* config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
	* config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
	* config/sparc/sparc.c: Include except.h.
	(sparc_emit_probe_stack_range): New function.
	(output_probe_stack_range): Likewise.
	(sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
	built-in stack checking is enabled.
	* config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
	* config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
	(probe_stack_range): New insn.

2010-07-02  Richard Guenther  <rguenther@suse.de>

	PR target/43958
	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
	for argument alignment.

2010-07-02  Jan Hubicka  <jh@suse.cz>

	* ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
	walk backwards from entry_bb to check only those basic block of header
	that might lead to execution of split part.
	(consider_split) ... here.
	(find_return_bb): Allow assignment in return BB.
	(find_retval): New.
	(split_function): Fix name of cloned function; take care of updating
	return value in return_bb containing move.

2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>

	PR target/44771
	* config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
	used variable insn.

2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>

	* implicit-zee.c (combine_reaching_defs): Fix long lines.
	(is_set_with_extension_DI): Delete.
	(struct zero_extend_info): New structure.
	(add_removable_zero_extend): New function.
	(find_removable_zero_extends): Use note_stores to find SETs.
	(find_and_remove_ze): Fix long line, remove superfluous parentheses.

2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
	is_miss_rate_acceptable. Pull total_positions computation
	out of the loops.  Early return if miss_positions exceeds
	the acceptable threshold.
	* tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
	is_miss_rate_acceptable after renaming of compute_miss_rate.

2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>

	PR middle-end/44576
	* tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
	of 1000) for miss rate if the address diference is greater than or
	equal to the cache line size (the two reference will never hit the
	same cache line).

2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/42835
	* config/arm/arm-modes.def (CC_NOTB): New mode.
	* config/arm/arm.c (get_arm_condition_code): Handle it.
	* config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
	* config/arm/arm.md (subsi3_compare0_c): New pattern.
	(compare_scc): Now a define_and_split.  Add a number of extra
	splitters before it.

	PR target/42172
	* config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
	and ZERO_EXTEND.
	(arm_rtx_costs_1): Likewise.
	(arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
	* config/arm/arm.md (is_arch6): New attribute.
	(zero_extendhisi2, zero_extendqisi2, extendhisi2,
	extendqisi2): Tighten the code somewhat, avoiding invalid
	RTL to occur in the expander patterns.
	(thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
	(thumb1_zero_extendhisi2_v6): Delete.
	(thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
	(thumb1_extendhisi2_v6): Delete.
	(thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
	(thumb1_extendqisi2_v6): Delete.
	(zero_extendhisi2 for register input splitter): New.
	(zero_extendqisi2 for register input splitter): New.
	(thumb1_extendhisi2 for register input splitter): New.
	(extendhisi2 for register input splitter): New.
	(extendqisi2 for register input splitter): New.
	(TARGET_THUMB1 extendqisi2 for memory input splitter): New.
	(arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
	and add support for a register alternative requiring a split.
	(thumb1_zero_extendqisi2): Likewise.
	(arm_zero_extendqisi2): Likewise.
	(arm_extendhisi2): Likewise.
	(arm_extendqisi2): Likewise.

2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>

	* config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
	instead of an unspec.
	(neon_expand_vector_init): Likewise.
	* config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
	(UNSPEC_VDUP_LANE): Delete.
	(UNSPEC VDUP_N): Delete.
	(UNSPEC_VGET_HIGH): Delete.
	(UNSPEC_VGET_LANE): Delete.
	(UNSPEC_VGET_LOW): Delete.
	(UNSPEC_VMVN): Delete.
	(UNSPEC_VSET_LANE): Delete.
	(V_double_vector_mode): New.
	(vec_set<mode>_internal): Make code emitted match that for the
	corresponding intrinsics.
	(vec_setv2di_internal): Likewise.
	(neon_vget_lanedi): Rewrite to expand into emit_move_insn.
	(neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
	(neon_vset_lane<mode>): Combine double and quad patterns and
	expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
	(neon_vset_lanedi): Rewrite to expand into emit_move_insn.
	(neon_vdup_n<mode>): Rewrite RTL without unspec.
	(neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
	(neon_vdup_nv2di): Rewrite RTL without unspec and merge with
	with neon_vdup_lanev2di, adjusting the pattern from the latter
	to be predicable for consistency.
	(neon_vdup_lane<mode>_internal): New.
	(neon_vdup_lane<mode>): Turn into a define_expand and rewrite
	to avoid using an unspec.
	(neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
	(neon_vdup_lanev2di): Turn into a define_expand.
	(neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
	(neon_vget_high<mode>): Replace with....
	(neon_vget_highv16qi): New pattern using canonical RTL.
	(neon_vget_highv8hi): Likewise.
	(neon_vget_highv4si): Likewise.
	(neon_vget_highv4sf): Likewise.
	(neon_vget_highv2di): Likewise.
	(neon_vget_low<mode>): Replace with....
	(neon_vget_lowv16qi): New pattern using canonical RTL.
	(neon_vget_lowv8hi): Likewise.
	(neon_vget_lowv4si): Likewise.
	(neon_vget_lowv4sf): Likewise.
	(neon_vget_lowv2di): Likewise.

	* config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
	test for this emitting vmov.
	(Vset_lane): Likewise.
	(Vdup_n): Likewise.
	(Vmov_n): Likewise.

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

2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>

	* config/arm/neon.md (vec_extractv2di): Correct error in register
	numbering to reconcile with neon_vget_lanev2di.

2010-07-02  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (pt_solution_set_var): New function.
	* tree-ssa-alias.h (pt_solution_set_var): Declare.
	* tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
	points-to information.

2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>

	* config/s390/s390.c (override_options): Adopt prefetching
	at -O3 to handle flag_prefetch_loop_arrays as a tristate.

2010-07-02  Jan Hubicka  <jh@suse.cz>

	* df-problems.c (df_kill_notes): Do not collect dead  notes.
	(df_set_note): Just call add_reg_note.
	(df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
	df_create_unused_note): Do not deal with lists of old notes.
	(df_note_bb_compute): Likewise.

2010-07-02  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (find_func_aliases): Handle
	pointer alignment via BIT_AND_EXPR.
	* tree-vrp.c (extract_range_from_binary_expr): Likewise.

2010-07-02  Richard Guenther  <rguenther@suse.de>

	* tree-data-ref.c (initialize_data_dependence_relation): Handle
	mismatching number of dimensions properly.

2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR target/44707
	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
	(lo_sum (high ...) ...) patterns generated by earlier passes.

2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/install.texi (Prerequisites): Document Perl requirement on
	Solaris 2.
	(Specific, *-*-solaris2*): Document GNU c++filt requirement.

2010-07-02  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44777
	* tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.

2010-07-02  Jan Hubicka  <jh@suse.cz>

	PR middle-end/44706
	* predict.c (predict_paths_for_bb): Handle case when control dependence
	BB has only abnormal edges.

2010-07-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44748
	* tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
	the embedded conversion in MEM_REFs.

2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>

	* reload.c: Include toplev.h.
	* recog.c:  Likewise.
	* Makefile.in: Adjust dependencies.

2010-07-01  Jakub Jelinek  <jakub@redhat.com>

	PR debug/44694
	* dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
	or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.

2010-07-01  Richard Guenther  <rguenther@suse.de>

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
	types for offsets.

2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR target/44732
	* config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
	Fix argument types.

2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/44727
	* config/i386/i386.md (peephole2 for arithmetic ops with memory):
	Make sure operand 0 dies.

2010-07-01  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42834
	PR middle-end/44468
	* doc/gimple.texi (is_gimple_mem_ref_addr): Document.
	* doc/generic.texi (References to storage): Document MEM_REF.
	* tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
	(print_call_name): Likewise.
	* tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
	(build_simple_mem_ref_loc): New function.
	(mem_ref_offset): Likewise.
	* tree.h (build_simple_mem_ref_loc): Declare.
	(build_simple_mem_ref): Define.
	(mem_ref_offset): Declare.
	* fold-const.c: Include tree-flow.h.
	(operand_equal_p): Handle MEM_REF.
	(build_fold_addr_expr_with_type_loc): Likewise.
	(fold_comparison): Likewise.
	(fold_unary_loc): Fold
	VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
	(fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
	fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
	(ptr_deref_may_alias_ref_p_1): Likewise.
	(ao_ref_base_alias_set): Properly differentiate base object for
	offset and TBAA.
	(ao_ref_init_from_ptr_and_size): Use MEM_REF.
	(indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
	(indirect_refs_may_alias_p): Likewise.
	(refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
	chasing code.
	(ref_maybe_used_by_call_p_1): Handle MEM_REF.
	(call_may_clobber_ref_p_1): Likewise.
	* dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
	* expr.c (expand_assignment): Handle MEM_REF.
	(store_expr): Handle MEM_REFs from STRING_CSTs.
	(store_field): If expanding a MEM_REF of a non-addressable
	decl use bitfield operations.
	(get_inner_reference): Handle MEM_REF.
	(expand_expr_addr_expr_1): Likewise.
	(expand_expr_real_1): Likewise.
	* tree-eh.c (tree_could_trap_p): Handle MEM_REF.
	* alias.c (ao_ref_from_mem): Handle MEM_REF.
	(get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
	* tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
	(dr_analyze_indices): Likewise.
	(dr_analyze_alias): Likewise.
	(object_address_invariant_in_loop_p): Likewise.
	* gimplify.c (mark_addressable): Handle MEM_REF.
	(gimplify_cond_expr): Build MEM_REFs.
	(gimplify_modify_expr_to_memcpy): Likewise.
	(gimplify_init_ctor_preeval_1): Handle MEM_REF.
	(gimple_fold_indirect_ref): Adjust.
	(gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
	* tree.def (MEM_REF): New tree code.
	* tree-dfa.c: Include toplev.h.
	(get_ref_base_and_extent): Handle MEM_REF.
	(get_addr_base_and_unit_offset): New function.
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
	* gimple-fold.c (may_propagate_address_into_dereference): Handle
	MEM_REF.
	(maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
	accesses if the array has just one dimension.  Remove always true
	parameter.  Do not require type compatibility here.
	(maybe_fold_offset_to_component_ref): Remove.
	(maybe_fold_stmt_indirect): Remove.
	(maybe_fold_reference): Remove INDIRECT_REF handling.
	Fold back to non-MEM_REF.
	(maybe_fold_offset_to_address): Simplify.  Deal with type
	mismatches here.
	(maybe_fold_reference): Likewise.
	(maybe_fold_stmt_addition): Likewise.  Also handle
	&ARRAY + I in addition to &ARRAY[0] + I.
	(fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
	(gimple_get_relevant_ref_binfo): Handle MEM_REF.
	* cfgexpand.c (expand_debug_expr): Handle MEM_REF.
	* tree-ssa.c (useless_type_conversion_p): Make most pointer
	conversions useless.
	(warn_uninitialized_var): Handle MEM_REF.
	(maybe_rewrite_mem_ref_base): New function.
	(execute_update_addresses_taken): Implement re-writing of MEM_REFs
	to SSA form.
	* tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
	INDIRECT_REF handling.
	(copy_tree_body_r): Handle MEM_REF.
	* gimple.c (is_gimple_addressable): Adjust.
	(is_gimple_address): Likewise.
	(is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
	invariant base are invariant.
	(is_gimple_min_lval): Adjust.
	(is_gimple_mem_ref_addr): New function.
	(get_base_address): Handle MEM_REF.
	(count_ptr_derefs): Likewise.
	(get_base_loadstore): Likewise.
	* gimple.h (is_gimple_mem_ref_addr): Declare.
	(gimple_call_fndecl): Handle invariant MEM_REF addresses.
	* tree-cfg.c (verify_address): New function, split out from ...
	(verify_expr): ... here.  Use for verifying ADDR_EXPRs and
	the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
	INDIRECT_REFs.
	(verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
	INDIRECT_REF.  Allow conversions.
	(verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
	a register does not change its size.
	(verify_types_in_gimple_reference): Verify MEM_REF.
	(verify_gimple_assign_single): Disallow INDIRECT_REF.
	Handle MEM_REF.
	* tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
	New.
	(mark_address_taken): Handle MEM_REF.
	(get_indirect_ref_operands): Pass through opf_not_non_addressable.
	(get_asm_expr_operands): Pass opf_not_non_addressable.
	(get_expr_operands): Handle opf_[not_]non_addressable.
	Handle MEM_REF.  Remove INDIRECT_REF handling.
	* tree-vrp.c (check_array_ref): Handle MEM_REF.
	(search_for_addr_array): Likewise.
	(check_array_bounds): Likewise.
	(vrp_stmt_computes_nonzero): Adjust for MEM_REF.
	* tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
	(ref_always_accessed_p): Likewise.
	(gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
	* tree-complex.c (extract_component): Do not handle INDIRECT_REF.
	Handle MEM_REF.
	* cgraphbuild.c (mark_load): Properly check for NULL result
	from get_base_address.
	(mark_store): Likewise.
	* tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
	* tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
	handling for MEM_REF.
	* tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
	&MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
	* builtins.c (stabilize_va_list_loc): Use the function ABI
	valist type if we couldn't canonicalize the argument type.
	Always dereference with the canonical va-list type.
	(maybe_emit_free_warning): Handle MEM_REF.
	(fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
	memmove to memcpy.
	* builtins.c (fold_builtin_memory_op): Use ref-all types
	for all memcpy foldings.
	* omp-low.c (build_receiver_ref): Adjust for MEM_REF.
	(build_outer_var_ref): Likewise.
	(scan_omp_1_op): Likewise.
	(lower_rec_input_clauses): Likewise.
	(lower_lastprivate_clauses): Likewise.
	(lower_reduction_clauses): Likewise.
	(lower_copyprivate_clauses): Likewise.
	(expand_omp_atomic_pipeline): Likewise.
	(expand_omp_atomic_mutex): Likewise.
	(create_task_copyfn): Likewise.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
	Remove old union trick.  Initialize constant offsets.
	(ao_ref_init_from_vn_reference): Likewise.  Do not handle
	INDIRECT_REF.  Init base_alias_set properly.
	(vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
	(vn_reference_fold_indirect): Adjust for MEM_REFs.
	(valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
	for ARRAY_REFs.
	(may_insert): Remove.
	(visit_reference_op_load): Do not test may_insert.
	(run_scc_vn): Remove parameter, do not fiddle with may_insert.
	* tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
	a field to store the constant offset this op applies.
	(run_scc_vn): Adjust prototype.
	* cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
	* tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
	MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
	bother about volatile qualifiers on pointers.
	(fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
	* tree-ssa-loop-ivopts.c
	* tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
	(strip_offset_1): Likewise.
	(find_interesting_uses_address): Replace INDIRECT_REF handling with
	MEM_REF handling.
	(get_computation_cost_at): Likewise.
	* ipa-pure-const.c (check_op): Handle MEM_REF.
	* tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
	* tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
	and constants.
	* ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
	* tree-parloops.c (take_address_of): Adjust for MEM_REF.
	(eliminate_local_variables_1): Likewise.
	(create_call_for_reduction_1): Likewise.
	(create_loads_for_reductions): Likewise.
	(create_loads_and_stores_for_name): Likewise.
	* matrix-reorg.c (may_flatten_matrices_1): Sanitize.
	(ssa_accessed_in_tree): Handle MEM_REF.
	(ssa_accessed_in_assign_rhs): Likewise.
	(update_type_size): Likewise.
	(analyze_accesses_for_call_stmt): Likewise.
	(analyze_accesses_for_assign_stmt): Likewise.
	(transform_access_sites): Likewise.
	(transform_allocation_sites): Likewise.
	* tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
	* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
	not handle INDIRECT_REF.
	* tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
	(cond_store_replacement): Likewise.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
	MEM_REF, no not handle INDIRECT_REFs.
	(insert_into_preds_of_block): Properly initialize avail.
	(phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
	for ARRAY_REFs.  Properly handle reference lookups that
	require a bit re-interpretation.
	(can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
	* tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
	(build_ref_for_offset_1): Remove.
	(build_ref_for_offset): Build MEM_REFs.
	(gate_intra_sra): Disable for now.
	(sra_ipa_modify_expr): Handle MEM_REF.
	(ipa_early_sra_gate): Disable for now.
	* tree-sra.c (create_access): Swap INDIRECT_REF handling for
	MEM_REF handling.
	(disqualify_base_of_expr): Likewise.
	(ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
	MEM_REF handling.
	(sra_ipa_modify_expr): Remove INDIRECT_REF handling.
	Use mem_ref_offset.  Remove bogus folding.
	(build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
	(make_fancy_name_1): Add support for MEM_REF.
	* tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
	* tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
	* ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
	(compute_complex_ancestor_jump_func): Likewise.
	(ipa_analyze_virtual_call_uses): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
	INDIRECT_REF folding with more generalized MEM_REF folding.
	(tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
	(forward_propagate_addr_into_variable_array_index): Also handle
	&ARRAY + I in addition to &ARRAY[0] + I.
	* tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
	* tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
	creates assignments with overlap.
	* tree-nested.c (get_static_chain): Adjust for MEM_REF.
	(get_frame_field): Likewise.
	(get_nonlocal_debug_decl): Likewise.
	(convert_nonlocal_reference_op): Likewise.
	(struct nesting_info): Add mem_refs pointer-set.
	(create_nesting_tree): Allocate it.
	(convert_local_reference_op): Insert to be folded mem-refs.
	(fold_mem_refs): New function.
	(finalize_nesting_tree_1): Perform defered folding of mem-refs
	(free_nesting_tree): Free the pointer-set.
	* tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
	(vectorizable_load): Likewise.
	* tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
	(propagate_with_phi): Likewise.
	* tree-object-size.c (addr_object_size): Handle MEM_REFs
	instead of INDIRECT_REFs.
	(compute_object_offset): Handle MEM_REF.
	(plus_stmt_object_size): Handle MEM_REF.
	(collect_object_sizes_for): Dispatch to plus_stmt_object_size
	for &MEM_REF.
	* tree-flow.h (get_addr_base_and_unit_offset): Declare.
	(symbol_marked_for_renaming): Likewise.
	* Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
	(fold-const.o): Add $(TREE_FLOW_H).
	* tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
	(find_func_clobbers): Likewise.
	* ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
	(decompose_access): Likewise.
	(replace_field_acc): Likewise.
	(replace_field_access_stmt): Likewise.
	(insert_new_var_in_stmt): Likewise.
	(get_stmt_accesses): Likewise.
	(reorg_structs_drive): Disable.
	* config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
	(ix86_canonical_va_list_type): Likewise.

2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR other/44566
	* coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
	* target.def (struct gcc_target): Replace enum reg_class with
	reg_class_t in hook argument / return types.
	* doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
	(TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
	(TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
	* targhooks.h (default_branch_target_register_class): Likewise.
	(default_ira_cover_classes, default_secondary_reload): Likewise.
	(default_memory_move_cost, default_register_move_cost): Likewise.
	* targhooks.c (default_branch_target_register_class): Likewise.
	(default_ira_cover_classes, default_secondary_reload): Likewise.
	(default_memory_move_cost, default_register_move_cost): Likewise.
	* reload.c (push_secondary_reload, secondary_reload_class): Likewise.
	* bt-load.c (branch_target_load_optimize): Likewise.
	* ira.c (setup_cover_and_important_classes): Likewise.
	* ira-costs.c (copy_cost): Likewise.
	* reload1.c (emit_input_reload_insns): Likewise.
	* config/alpha/alpha.c (alpha_secondary_reload): Likewise.
	* config/frv/frv.c (frv_secondary_reload): Likewise.
	* config/s390/s390.c (s390_secondary_reload): Likewise.
	* config/i386/i386.c (i386_ira_cover_classes): Likewise.
	(ix86_secondary_reload, ix86_memory_move_cost): Likewise.
	(ix86_register_move_cost): Likewise.
	* config/sh/sh-protos.h (sh_secondary_reload): Likewise.
	* config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
	* config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
	* config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
	* config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
	(rs6000_ira_cover_classes): Likewise.
	* config/picochip/picochip.c (picochip_secondary_reload): Likewise.
	* config/picochip/picochip-protos.h (picochip_secondary_reload):
	Likewise.
	* config/pa/pa.c (pa_secondary_reload): Likewise.
	* config/mips/mips.c (mips_ira_cover_classes): Likewise.
	* config/bfin/bfin.c (bfin_secondary_reload): Likewise.
	* config/ia64/ia64.c (ia64_register_move_cost): Likewise.
	* doc/tm.texi: Regenerate.

2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>

	PR bootstrrap/44726
	* graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
	use.
	(build_alias_set_optimal_p): Likewise.
	(build_base_obj_set_for_drs): Likewise.

2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>

	* target.def: Remove comment about licensing problems of function
	declarations.

	* target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
	* doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
	* doc/tm.texi: Regenerate.

	* target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
	* doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.

	* target.def (enum_va_list_p): Use DEFHOOK.
	* doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
	Rename ptype to ptree.
	* doc/tm.texi: Regenerate.

	* target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
	* doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
	* doc/tm.texi: Regenerate.

	* target.def (memory_move_cost): Use DEFHOOK.
	* doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
	Rename regclass AKA class to rclass.
	* doc/tm.texi: Regenerate.

	* target.def (pragma_parse): Use DEFHOOK.
	* doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
	s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
	* doc/tm.texi: Regenerate.

	* target.def (pass_by_reference): Use DEFHOOK.
	* doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
	* doc/tm.texi: Regenerate.

	* target.def (resolve_overloaded_builtin): Rename params to arglist.
	Use DEFHOOK.
	* doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
	* doc/tm.texi: Regenerate.

	* target.def (return_pops_args): Use DEFHOOK.
	* doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
	Rename stack-size to size.
	* doc/tm.texi: Regenerate.

	* target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
	last-sched_cycle to last_clock, cur_cycle to clock.
	* doc/tm.texi.in: Use @hook.
	* doc/tm.texi: Regenerate.

	* target.def (print_operand, print_operand_address): Update comment.
	(print_operand_punct_valid_p): Likewise.

2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
	to rtl.h.
	(error_for_asm,	warning_for_asm): Move declarations to rtl-error.h.
	* rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
	* rtl-error.h: New.
	* regrename.c: Do not include toplev.h. Include rtl-error.h.
	* rtl-error.c: Likewise.
	* reload.c: Likewise.
	* recog.c:  Likewise.
	* sel-sched.c: Likewise.
	* function.c: Likewise.
	* reg-stack.c: Likewise.
	* cfgrtl.c: Likewise.
	* reload1.c: Likewise.
	* final.c: Include rtl-error.
	* Makefile.in: Adjust dependencies.

2010-06-30  Jan Hubicka  <jh@suse.cz>

	PR middle-end/PR44706
	* ipa-split (split_function): Refine conditions when to use DECL_RESULT
	to return the value.

2010-06-30  Michael Matz  <matz@suse.de>

	PR bootstrap/44699
	* tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
	* gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
	a gimple reg, attach the original VDEF to the last store in the
	sequence.

2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>

	PR other/44034
	* config/darwin.c (darwin_override_options): Use renamed
	targetm.asm_out.emit_unwind_label.

2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>

	PR tree-optimization/39799
	* tree-inline.c (remap_ssa_name): Initialize variable only if
	SSA_NAME_OCCURS_IN_ABNORMAL_PHI.

2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>

	* c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.

2010-06-30  Richard Guenther  <rguenther@suse.de>

	PR target/44722
	* config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
	against oscillation with reverse peephole2.

2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/44721
	* config/i386/i386.md (peephole2 for arithmetic ops with memory):
	Fix last commit.

2010-06-30  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx-modes.def: New file.
	* config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
	(CC_REGNUM): Define.
	(FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
	register.
	(CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
	(SELECT_CC_MODE): Define.
	* config/rx/rx.md (CC_REG): Define.  Update all patterns to use
	(reg:CC CC_REG) instead of (cc0).
	(attr "cc"): Delete.
	(cbranchsi4): Do not split compare and branch here. Instead move
	it to...
	(cbranchsi4_<code>): ... here.  New patterns.
	(cmpsi): Call rx-compare_redundant to find out if it is necessary
	to emit the compare instruction.
	* config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
	cc_status flags.
	(rx_get_stack_layout): Iterate up to before CC_REGNUM not
	FIRST_PSEUDO_REGNUM.
	(rx_expand_prologue, rx_expand_epilogue): Likewise.
	(rx_notice_update_cc): Delete.
	(rx_cc_modes_compatible): New function.
	(flags_needed_for_conditional): New function.
	(flags_from_mode): New function.
	(rx_compare_redundant): New function - scans backwards through
	insn list to find out if condition flags are already set correctly.
	(TARGET_CC_MODES_COMPATIBLE): Define.
	* config/rx/rx-protos.h (rx_compare_redundant): Prototype.

	* config/rx/rx.h (BRANCH_COST): Define.
	(REGISTER_MOVE_COST): Define.
	* config/rx/predicates (rx_source_operand): Allow all constant types.
	* config/rx/rx.md (addsi3): Add alternative for swapped operands.
	(tstsi4): New pattern.
	* config/rx/rx.c (rx_memory_move_cost): Define.
	(TARGET_MEMORY_MOVE_COST): Define.

2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* tree.h (block_may_fallthru): Declare here.
	* tree-flow.h (block_may_fallthru): Do not declare here.
	* c-typeck.c: Do not include tree-flow.h. Include gimple.h and
	bitmap.h
	* Makefile.in (c-typeck.o): Update dependencies.

2010-06-30  Jakub Jelinek  <jakub@redhat.com>

	PR debug/44694
	* cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
	* cselib.c (cfa_base_preserved_regno): New static variable.
	(cselib_reset_table): Don't reset cfa_base_preserved_regno instead
	of REGNO (cfa_base_preserved_val->locs->loc).
	(cselib_preserve_cfa_base_value): Add regno argument, set
	cfa_base_preserved_regno to it.
	(cselib_invalidate_regno): Allow removal of registers other than
	cfa_base_preserved_regno from cfa_base_preserved_val.
	(cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
	* var-tracking.c (adjust_mems): Replace sp or hfp even outside
	of MEM addresses, if not on LHS.
	(reverse_op): Don't add reverse ops for cfa_base_rtx.
	(vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.

2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>

	* recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
	static variables.
	(peep2_buf_position): New static function.
	(peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
	peephole2_optimize): Use it.
	(peep2_attempt, peep2_update_life): New static functions, broken out
	of peephole2_optimize.
	(peep2_fill_buffer): New static function.
	(peephole2_optimize): Change the main loop to try to fill the buffer
	with the maximum number of insns before matching them against
	peepholes.  Use a forward scan.  Remove special case for targets with
	conditional execution.
	* genrecog.c (change_state): Delete dead code.
	* config/i386/i386.md (peephole2 for arithmetic ops with memory):
	Rewrite so as not to expect the second insn to have had a peephole
	applied yet.

2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>

	* genhooks.c (emit_findices): Cast field precision to int.
	(emit_documentation): Likewise.

2010-06-29  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/43801
	* cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
	if old_decl was DECL_ONE_ONLY.

	PR debug/44668
	* dwarf2out.c (add_accessibility_attribute): New function.
	(gen_subprogram_die, gen_variable_die, gen_field_die): Use it
	instead of adding DW_AT_accessibility manually.
	(gen_enumeration_type_die, gen_struct_or_union_type_die,
	gen_typedef_die): Use it.

2010-06-29  Douglas B Rupp  <rupp@gnat.com>

	* vmsdbgout.c (full_name): Just output the file name if not native.

2010-06-29  Douglas B Rupp  <rupp@gnat.com>

	* vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
	(funcnam_table): New static table.
	(funcnum_table): New static table.
	(write_rtnbeg): Write value saved in funcnum_table.
	(write_rtnend): Write value saved in funcnum_table.
	(vmsdbgout_begin_function): Save current function info in
	(vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
	(vmsdbgout_finish): Iterate over funcnum_table.

2010-06-29  Douglas B Rupp  <rupp@gnat.com>

	* vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
	(vmsdbgout_type_decl): Declare
	(vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
	(FUNC_EPILOGUE_LABEL): New macro
	(vmsdbgout_begin_epilogue): New function.
	(vmsdbgout_type_decl): New function.

2010-06-29  Douglas B Rupp  <rupp@gnat.com>

	* vmsdbg.h: Update copyright.

2010-06-29  Douglas B Rupp  <rupp@gnat.com>

	* vmsdbg.h (DST_K_TBG): New DST constant.
	* vmsdbgout.c (addr_const_to_string): Removed, not referenced.
	(write_modbeg): Cast module_language to avoid warning.
	(write_rtnbeg): Use DST_K_TBG vice magic mystery number.

2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR other/44034
	* target.def, doc/tm.texi.in, genhooks.c: New files.
	* target.h: Instead of defining individual hook members,
	define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
	include target.def.
	* target-def.h: Instead of defining individual hook initializers,
	include target-hooks-def.h.
	* df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
	targetm.live_on_entry -> targetm.extra_live_on_entry
	targetm.sched.md_finish ->targetm.sched.finish
	targetm.sched.md_init -> targetm.sched.init
	targetm.sched.md_init_global -> targetm.sched.init_global
	targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
	targetm.asm_out.except_table_label ->
	  targetm.asm_out.emit_except_table_label
	targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
	targetm.target_help -> targetm.help
	targetm.vectorize.builtin_support_vector_misalignment ->
	  targetm.vectorize.support_vector_misalignment
	targetm.file_start_app_off -> targetm.asm_file_start_app_off
	targetm.file_start_file_directive ->
	 targetm.asm_file_start_file_directive
	* dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
	* varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
	* config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
	TARGET_VECTOR_ALIGNMENT_REACHABLE ->
	  TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
	TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
	  TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
	TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
	* config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
	* Makefile.in (TARGET_H): Depend on target.def.
	(TARGET_DEF_H): Depend on target-hooks-def.h.
	(target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
	(s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
	* doc/tm.texi: Regenerate.

	* Makefile.in (s-tm-texi): Remove stray tab / rule.

	* config/m68k/m68k.c (targetm.sched.init_global): Update comment.
	(targetm.sched.init): Likewise.

2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>

	PR bootstrap/44713
	* config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
	(function_arg_advance_32): Const-ify TYPE parameter.
	(function_arg_advance_64): Likewise.  Change type of NAMED to bool.
	(ix86_function_arg_advance): Change type of NAMED to bool.
	(function_arg_32): Const-ify CUM and TYPE parameters.
	(function_arg_64): Likewise.  Change type of NAMED to bool.
	(function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
	to bool.
	(ix86_function_arg): Change type of NAMED to bool.
	(ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
	last argument as a bool.

2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>

	* doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
	(OVERRIDE_OPTIONS): Add note of obsolescence.
	Replace references with references to TARGET_OPTION_OVERRIDE.
	(Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
	 the macro).
	* targhooks.c (default_target_option_override): New function.
	* targhooks.h (default_target_option_override): Declare.
	* target.h (struct gcc_target): Add override member to
	target_option member.
	* toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
	targetm.target_option.override call.
	* target-def.h (TARGET_OPTION_OVERRIDE): Define.
	(TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.

2010-06-29  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c: Replace incomming by incomin and clonning by cloning.

2010-06-29  Jan Hubicka  <jh@suse.cz>

	* predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
	unreachable.
	(rebuild_frequencies): New function.
	* predict.h (rebuild_frequencies): Declare.
	* tree-inline.c (copy_cfg_body): Compute properly count & frequency of
	entry block and edge reaching new_entry.
	(tree_function_versioning): When doing partial cloning, rebuild
	frequencies when done.
	* passes.c (execute_function_todo): Use rebild_frequencies.

2010-06-29  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (dump_variable): Remove noalias_state dumping.
	* tree-flow.h (enum noalias_state): Remove.
	(struct var_ann_d): Remove noalias_state member.

2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/43902
	* config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
	(maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
	(maddhidi4): Likewise.

	Revert parts of the change for PR25130.
	* cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
	MEM_ALIAS_SET.

2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>

	* calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
	targetm.calls.function_incoming_arg, and
	targetm.calls.function_arg_advance instead of FUNCTION_ARG,
	FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
	* target.h (struct gcc_target): Add function_arg_advance,
	function_arg, and function_incoming_arg fields.
	* target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
	(TARGET_FUNCTION_INCOMING_ARG): Define.
	(TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
	and TARGET_FUNCTION_INCOMING_ARG.
	* targhooks.h (default_function_arg_advance): Declare.
	(default_function_arg, default_function_incoming_arg): Declare.
	* targhooks.c (default_function_arg_advance): New function.
	(default_function_arg, default_function_incoming_arg): New function.
	* config/i386/i386.c (function_arg_advance): Rename to...
	(ix86_function_arg_advance): ...this.  Make static.
	(function_arg): Rename to...
	(ix86_function_arg): ...this.  Make static.
	(TARGET_FUNCTION_ARG_ADVANCE): Define.
	(TARGET_FUNCTION_ARG): Define.
	* config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
	(FUNCTION_ARG): Delete.
	* config/i386/i386-protos.h (function_arg_advance): Delete prototype.
	(function_arg): Delete prototype.

2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>

	* reginfo.c (init_reg_sets_1): Adjust comments.
	* combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
	* calls.c (prepare_call_address): Likewise.
	(emit_call_1): Use targetm.calls.return_pops_args.
	(expand_call): Likewise.
	* function.c (assign_parms): Likewise.
	* system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
	* target.h (struct gcc_target) [struct calls]: Add
	return_pops_args field.
	* targhooks.h (default_return_pops_args): Declare.
	* targhooks.c (default_return_pops_args): Define.
	* target-def.h (TARGET_RETURN_POPS_ARGS): Define.
	(TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
	* doc/tm.texi (RETURN_POPS_ARGS): Rename to...
	(TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
	documentation.
	* config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
	* config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
	* config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
	* config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
	* config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
	* config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
	* config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
	* config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
	* config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
	* config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
	* config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
	* config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
	* config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
	* config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
	* config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
	* config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
	* config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
	* config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
	* config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
	* config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
	* config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
	* config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
	* config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
	* config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
	* config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
	* config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
	* config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
	* config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
	* config/score/score.h (RETURN_POPS_ARGS): Likewise.
	* config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
	* config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
	* config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
	* config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
	* config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
	* config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
	* config/i386/i386-protos.h (ix86_return_pops_args): Delete.
	* config/i386/i386.h (RETURN_POPS_ARGS): Delete.
	* config/i386/i386.c (ix86_return_pops_args): Make static.
	Constify arguments.
	(TARGET_RETURN_POPS_ARGS): Define.
	* config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
	* config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
	(TARGET_RETURN_POPS_ARGS): Define.
	* config/vax/vax.h (RETURN_POPS_ARGS): Move to...
	* config/vax/vax.c (vax_return_pops_args): ...here.  New function.
	(TARGET_RETURN_POPS_ARGS): Define.

2010-06-29  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44667
	* tree-inline.c (initialize_inlined_parameters): Make sure
	to remap the inlined parameter variable substitutions types.

2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/44659
	* combine.c (make_compound_operation) <SUBREG>: Do not return the
	result of force_to_mode if it partially re-expanded the compound.

2010-06-28  Jan Hubicka  <jh@suse.cz>

	PR middle-end/44671
	* ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
	RESULT_DECL.

2010-06-28  Anatoly Sokolov  <aesok@post.ru>

	* double-int.h (force_fit_type_double): Remove declaration.
	* double-int.c (force_fit_type_double): Move to tree.c.
	* tree.h (force_fit_type_double): Declare.
	* tree.h (force_fit_type_double): Moved from double-int.c. Use
	double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
	double_int_to_tree instead of fit_double_type and build_int_cst_wide.
	* convert.c (convert_to_pointer): Adjust call to
	force_fit_type_double.
	* tree-vrp.c (extract_range_from_assert,
	extract_range_from_unary_expr): Adjust call to force_fit_type_double.
	* fold-const.c: Update comment.
	(int_const_binop, fold_convert_const_int_from_int,
	fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
	extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
	fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
	round_up_loc): Adjust call to force_fit_type_double.

2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.

2010-06-28  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (convert_callers): New parameter, change fndecls of
	recursive calls.
	(modify_function): Pass the old decl to convert_callers.

2010-06-28  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_init_cloned_node): Replace calls to
	ipa_check_create_node_params and ipa_initialize_node_params with
	checking asserts they are not necessary.

2010-06-28  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/44687
	* ipa-split.c (split_function): Use DECL_RESULT to store return value.

2010-06-28  Martin Jambor  <mjambor@suse.cz>

	PR c++/44535
	* gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
	(gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
	instead of BINFO_BASE_BINFO.

2010-06-28  Michael Matz  <matz@suse.de>

	PR middle-end/44592
	* gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
	proper VDEF chain for intermediate stores in the sequence.

2010-06-28  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/44357
	* ipa-inline.c (add_new_edges_to_heap): Do not add edges to
	uninlinable functions.

2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>

	* config.gcc (powerpc*-*-*): Handle titan.
	* config/rs6000/rs6000.c (titan_cost): New costs.
	(rs6000_override_options): Add "titan" to processor_target_table.
	Add Titan to branch alignment logic.
	Correctly set rs6000_cost for titan.
	* config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
	* config/rs6000/titan.md: New file.
	* doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.

2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>

	* tree-browser.c (TB_history_stack): Convert to a VEC.
	(TB_SET_HEAD): Adjust for new type of TB_history_stack.
	(TB_history_prev): Likewise.

2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>

	* vec.h (vec_heap_free): Add parentheses around free.

2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>

	* system.h: Poison GCC_EXCEPT_H for front-end files.

	* langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
	langhook.
	* langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
	Define to NULL by default.
	* except.h: Define GCC_EXCEPT_H.
	(doing_eh): Remove prototype.
	(init_eh, init_eh_for_function): Move prototypes to toplev.h.
	(lang_protect_cleanup_actions): Remove.
	* except.c (lang_protect_cleanup_actions): Remove.
	(doing_eh): Remove.
	(gen_eh_region): Don't check doing_eh here.
	* toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
	* tree-eh.c (honor_protect_cleanup_actions): Use new langhook
	instead of lang_protect_cleanup_actions.
	* omp-low.c (maybe_catch_exception): Likewise.
	* Makefile.in: Update dependencies.

2010-06-28  Bingfeng Mei  <bmei@broadcom.com>

	* cgraph.h (struct varpool_node): new used_from_object_file flag.
	(struct cgraph_local_info): new used_from_object_file flag.
	* cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
	(cgraph_clone_node): initialize used_from_object_file.
	(cgraph_create_virtual_clone): initialize used_from_object_file.
	* lto-symbtab.c (lto_symtab_merge_decls_1): Set
	used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
	when compiling with -fwhole-program.
	(lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
	internal resolver.
	* ipa.c (function_and_variable_visibility): Set externally_visible
	flag of varpool_node if used_from_object_file flag is set.
	(cgraph_externally_visible_p): check used_from_object_file flag.
	* doc/invoke.texi (-fwhole-program option): Change description of
	externally_visible attribute accordingly.
	* doc/extend.texi (externally_visible): Ditto.

2010-06-27  Jan Hubicka  <jh@suse.cz>

	* params.def (max-inline-insns-auto): Default to 40.
	* doc/invoke.texi (max-inline-insns-auto): Document the change.

2010-06-27  Jan Hubicka  <jh@suse.cz>

	PR middle-end/44671
	PR middle-end/44686
	* tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
	signature change.
	* ipa-split.c (split_function): Always clear DECL_BUILT_IN.
	* ipa-prop.c (ipa_modify_formal_parameters): Likewise.

2010-06-27  Anatoly Sokolov  <aesok@post.ru>

	* target.h (struct gcc_target): Add register_move_cost field.
	* target-def.h (TARGET_REGISTER_MOVE_COST): New.
	(TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
	* targhooks.c (default_register_move_cost): New function.
	* targhooks.h (default_register_move_cost): Declare function.
	* defaults.h (REGISTER_MOVE_COST): Delete.
	* ira-int.h (ira_register_move_cost): Update comment.
	* ira.c (ira_register_move_cost): Update comment.
	* reload.h (register_move_cost): Declare.
	* reginfo.c (register_move_cost): New function.
	(move_cost): Update comment.
	(init_move_cost, memory_move_secondary_cost): Replace
	REGISTER_MOVE_COST with register_move_cost.
	* postreload.c (reload_cse_simplify_set): (Ditto.).
	* reload.c (find_valid_class, find_reloads): (Ditto.).
	* reload1.c (choose_reload_regs): (Ditto.).
	* doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
	(REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
	* doc/md.texi (can_create_pseudo_p): Update documentation.

	* config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
	* config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
	* config/i386/i386.h (ix86_memory_move_cost): Make static.
	(TARGET_MEMORY_MOVE_COST): Define.

	* config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
	* config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
	* config/ia64/ia64.h (ia64_memory_move_cost): Make static.
	(TARGET_MEMORY_MOVE_COST): Define.

2010-06-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44683
	* tree-ssa-dom.c (record_edge_info): Record equivalences for the
	false edge from the inverted condition.

2010-06-27  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44684
	* tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
	(stmt_may_clobber_ref_p_1): Do not bother to call the oracle
	for register LHS.  Or non-store assignments.

2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_emit_set_const32): Make static.
	(sparc_emit_set_const64): Likewise.  Remove disabled code.
	* config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
	(sparc_emit_set_const64): Likewise.

2010-06-26  Catherine Moore  <clm@codesourcery.com>

	* config/mips/mips.md (alu_type): New attribute.
	(type): Infer type from alu_type.
	(*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
	*baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
	*subsi3_extended, negsi2, negdi2, *low<mode>,
	*low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
	xor<mode>3, *nor<mode>3,
	*zero_extend<GPR:mode>_trunc<SHORT:mode>,
	*zero_extendhi_truncqi):  Set alu_type instead of type.

2010-06-26  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha.c (alpha_need_linkage): Adjust
	splay_tree_new_ggc call.
	(alpha_use_linkage): Likewise.

2010-06-26  Joseph Myers  <joseph@codesourcery.com>

	* collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
	* doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
	* gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
	(static_specs): Remove switches_need_spaces.
	(process_command, do_self_spec): Hardcode handling "-o" instead of
	checking switches_need_spaces.
	* system.h (SWITCHES_NEED_SPACES): Poison.

2010-06-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44393
	* tree-loop-distribution.c (generate_loops_for_partition): Fix
	stmt removal and VOP renaming.
	(generate_memset_zero): Remove redundant stmt updating.
	* tree-flow.h (mark_virtual_ops_in_bb): Remove.
	* tree-cfg.c (mark_virtual_ops_in_bb): Likewise.

2010-06-26  Jan Hubicka  <jh@suse.cz>

	* ipa-split.c (consider_split): PHI in entry block is OK as long as all
	edges comming from header are equivalent.
	(visit_bb): Handle PHIs correctly.
	* tree-inline.c (copy_phis_for_bb): Be able to copy
	PHI from entry edge.
	(copy_cfg_body): Produce edge from entry BB before copying PHIs.

2010-06-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44674
	* tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
	decls.  Handle LABEL_DECLs like FUNCTION_DECLs.

2010-06-26  Joseph Myers  <joseph@codesourcery.com>

	* gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
	add_infile, alloc_switch): New.
	(process_command): Remove variable lang_n_infiles.  Process
	options in a single pass.  Use new functions for allocating
	infiles and switches arrays.  Properly skip operands of
	-Xpreprocessor and -Xassembler.

2010-06-26  Jan Hubicka  <jh@suse.cz>

	PR middle-end/44671
	* cgraphunit.c (cgraph_function_versioning): Remove wrong
	cgraph_make_decl_local call; fix typo copying RTL data.

2010-06-25  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
	(m32c_output_aligned_common): Likewise.
	* config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
	* config/m32c/m32c-pragma.c (m32c_pragma_address): New.
	(m32c_register_pragmas): Register it.
	* config/m32c/m32c.c (m32c_get_pragma_address): New.
	(m32c_insert_attributes): Set #pragma address decls volatile.
	(pragma_entry_eq): New.
	(pragma_entry_hash): New.
	(m32c_note_pragma_address): New.
	(m32c_get_pragma_address): New.
	(m32c_output_aligned_common): New.
	* doc/extend.texi: Document the new pragma.

	* config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
	also.
	* config/m32c/predicates.md (m32c_any_operand): Check the code
	instead of memory_operand so as to allow matching volatile MEMs.
	(m32c_nonimmediate_operand): Likewise.
	(mra_operand): Allow volatiles.

2010-06-25  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/44610
	* simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
	address if the offset is unknown.

2010-06-25  Douglas B Rupp  <rupp@gnat.com>

	* dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
	* dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
	* config/ia64/ia64-protos.h (ia64_start_function): Declare.
	* config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
	to ia64_start_function. Invoke it.
	* config/ia64/ia64.c (ia64_start_function): Call new function
	dwarf2out_vms_debug_main_pointer.

2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (insert_gimplified_predicates): Do not insert
	statements computing the true predicate.

2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (init_bb_predicate): Initialize the predicate
	to boolean_true_node.
	(reset_bb_predicate): New.
	(predicate_bbs): Call reset_bb_predicate.

2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (combine_blocks): Remove FIXME comment.
	(tree_if_conversion): Returns true when something has been changed.
	(main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
	changed something.

2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
	* dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
	* tree-if-conv.c: Include dbgcnt.h.
	(tree_if_conversion): Use if_conversion_tree to count the number of
	if-convertible loops.

2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>

	* common.opt (fprefetch-loop-arrays): Re-define
	-fprefetch-loop-arrays as a tri-state option with the initial
	value of -1.
	* tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
	pass only when flag_prefetch_loop_arrays > 0.
	* toplev.c (process_options): Note that, with tri-states,
	flag_prefetch_loop_arrays>0 means prefetching is enabled.
	* config/i386/i386.c (override_options): Enable prefetching at -O3
	for a set of CPUs that sw prefetching is helpful.
	(software_prefetching_beneficial_p): New.  Return TRUE if software
	prefetching is beneficial for the given CPU.

2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/44326
	* implicit-zee.c (find_removable_zero_extends): Replace
	INSN_P with NONDEBUG_INSN_P.

2010-06-25  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
	(struct ipa_node_params): Removed the modification_analysis_done flag.
	(ipa_is_param_modified): Removed.
	(ipa_analyze_node): Declare.
	(ipa_compute_jump_functions): Remove declaration.
	(ipa_count_arguments): Likewise.
	(ipa_detect_param_modifications): Likewise.
	(ipa_analyze_params_uses): Likewise.
	* ipa-prop.c (struct param_analysis_info): New type.
	(visit_store_addr_for_mod_analysis): Removed.
	(visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
	moved down in the file.
	(ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
	(ipa_count_arguments): Made static.
	(mark_modified): New function.
	(is_parm_modified_before_call): New function.
	(compute_pass_through_member_ptrs): New parameter parms_info, call
	is_parm_modified_before_call instead of ipa_is_param_modified.
	(ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
	it to compute_pass_through_member_ptrs.
	(ipa_compute_jump_functions): New parameter parms_info, pass it to
	ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
	on the callee if it is analyzed.  Made static.
	(ipa_analyze_indirect_call_uses): New parameter parms_info, call
	is_parm_modified_before_call instead of ipa_is_param_modified.
	(ipa_analyze_call_uses): New parameter parms_info, pass it to
	ipa_analyze_indirect_call_uses.
	(ipa_analyze_stmt_uses): New parameter parms_info, pass it to
	ipa_analyze_call_uses.
	(ipa_analyze_params_uses): New parameter parms_info, pass it to
	ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
	(ipa_analyze_node): New function.
	(ipa_print_node_params): Do not dump the modified flag.
	(ipa_write_node_info): Assert uses_analysis_done rather than streaming
	it.  Do not stream the modified parameter flag.
	(ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
	it.  Do not stream the modified parameter flag.
	* ipa-cp.c (ipcp_analyze_node): Removed.
	(ipcp_init_stage): Iterate only once over the nodes, analyze each one
	with only a call to ipa_analyze_node.
	* ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
	node with only a call to ipa_analyze_node.

2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.

2010-06-25  Jan Hubicka  <jh@suse.cz>

	* tree-pass.h (pass_split_functions): Declare.
	* opts.c (decode_options): Enable function splitting at -O2
	* timevar.def (TV_IPA_FNSPLIT): New macro.
	* ipa-split.c: New file.
	* common.opt (-fpartial-inlining): New flag.
	* Makefile.in (ipa-split.o): New object file.
	* passes.c (init_optimization_passes): Add ipa-split.
	* params.def (partial-inlining-entry-probability): New parameters.
	* doc/invoke.texi (-fpartial-inlining): New.

2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 44665
	* tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
	* gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
	(gimplify_expr): Likewise.

2010-06-25  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
	statements instead of bailing out on them.
	(ipa_analyze_indirect_call_uses): Do not require that loads from the
	parameter are in the same BB as the condition.  Update comments.

2010-06-25  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/43866
	* tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
	true or always false, return NULL_TREE.
	(tree_unswitch_single_loop): Optimize conditions even when reaching
	max-unswitch-level parameter.  If num > 0, optimize first all conditions
	using entry checks, then do still reachable block discovery and consider
	only conditions in still reachable basic blocks in the loop.

	PR tree-optimization/44539
	* tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
	the call doesn't have LHS, but has VDEF.

2010-06-25  Joseph Myers  <joseph@codesourcery.com>

	* config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
	* doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
	* gcc.c (enum add_del, struct modify_target, modify_target): Remove.
	(process_command): Remove code conditional on MODIFY_TARGET_NAME.
	* system.h (MODIFY_TARGET_NAME): Poison.

2010-06-25  Alan Modra  <amodra@gmail.com>

	* doc/invoke.texi: Delete mcmodel=medium from powerpc options.
	* config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
	CMODEL_LARGE as default.
	* config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
	(offsettable_ok_by_alignment): Delete.
	(rs6000_emit_move): Remove mcmodel=medium optimization.

2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>

	With large parts from Jim Wilson:
	PR target/43902
	* tree-pretty-print.c (dump_generic_node, op_code_prio): Add
	WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
	* optabs.c (optab_for_tree_code): Likewise.
	(expand_widen_pattern_expr): Likewise.
	* tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
	out of execute_optimize_widening_mul.
	(convert_plusminus_to_widen): New function.
	(execute_optimize_widening_mul): Use the two new functions.
	* expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
	Remove code to generate widening multiply-accumulate.  Add support
	for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
	* gimple-pretty-print.c (dump_ternary_rhs): New function.
	(dump_gimple_assign): Call it when appropriate.
	* tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
	* cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
	(expand_gimple_stmt_1): Likewise.
	(expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
	WIDEN_MULT_MINUS_EXPR.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree-inline.c (estimate_operator_cost): Likewise.
	* gimple.c (extract_ops_from_tree_1): Renamed from
	extract_ops_from_tree.  Add new arg for a third operand; fill it.
	(gimple_build_assign_stat): Support operations with three operands.
	(gimple_build_assign_with_ops_stat): Likewise.
	(gimple_assign_set_rhs_from_tree): Likewise.
	(gimple_assign_set_rhs_with_ops_1): Renamed from
	gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
	(get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
	(get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
	WIDEN_MULT_MINUS_EXPR.
	* gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
	(extract_ops_from_tree_1): Adjust declaration.
	(gimple_assign_set_rhs_with_ops_1): Likewise.
	(gimple_build_assign_with_ops): Pass NULL for last operand.
	(gimple_build_assign_with_ops3): New macro.
	(gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
	gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
	functions.
	* tree-cfg.c (verify_gimple_assign_ternary): New static function.
	(verify_gimple_assign): Call it.
	* doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
	(Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
	functions for dealing with three-operand statements.
	* tree.c (commutative_ternary_tree_code): New function.
	* tree.h (commutative_ternary_tree_code): Declare it.
	* tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
	ternary statements.
	(gimple_assign_nonzero_warnv_p): Likewise.
	* tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
	* tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
	(ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
	* tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
	(struct hashtable_expr): New member ternary in the union.
	(initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
	(hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
	(iterative_hash_hashable_expr): Likewise.
	(print_expr_hash_elt): Handle EXPR_TERNARY.
	* gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
	* tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
	statements.  Handle GIMPLE_TERNARY_RHS.

2010-06-25  Jan Hubicka  <jh@suse.cz>

	* doc/invoke.texi (-Wsuggest-attribute): Add noreturn.

2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>

	PR c/44517
	* c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
	parameters are not good.
	(c_parser_parameter_declaration): Error unknown type name if the type
	name can't start declaration specifiers.

2010-06-25  Joseph Myers  <joseph@codesourcery.com>

	* gcc.c (translate_options): Don't mention +e in comment.
	(process_command): Don't handle +e specially.

2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>

	* ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.

	* ira-build.c (merge_hard_reg_conflicts): New function.
	(create_cap_allocno, copy_info_to_removed_store_destinations,
	propagate_some_info_from_allocno, propagate_allocno_info): Use it.
	(move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
	(remove_unnecessary_allocnos, remove_low_level_allocnos)
	copy_nifo_to_removed_store_destination): Use them.
	* ira-lives.c (make_hard_regno_born): New function, split out of
	make_regno_born.
	(make_allocno_born): Likewise.
	(make_hard_regno_dead): New function, split out of make_regno_dead.
	(make_allocno_dead): Likewise.
	(inc_register_pressure): New function, split out of set_allocno_live.
	(dec_register_pressure): New function, split out of clear_allocno_live.
	(mark_pseudo_regno_live): New function, split out of mark_reg_live.
	(mark_hard_reg_live): Likewise.  Use inc_register_pressure.
	(mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
	(mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
	(make_pseudo_conflict): Use mark_pseudo_regno_dead and
	mark_pseudo_regno_live.
	(process_bb_node_lives): Use mark_pseudo_regno_live,
	make_hard_regno_born and make_allocno_dead.
	(make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
	set_allocno_live, clear_allocno_live): Delete functions.

	* ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
	* ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
	functions.
	(ira_flattening): Use ira_parent_allocno.
	* ira-conflicts.c (process_regs_for_copy, propagate_copies)
	build_allocno_conflicts): Use ira_parent_or_cap_allocno.

	* ira-color.c (assign_hard_reg): Improve formatting of multi-line for
	statement.

	* ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
	TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
	minmax_set_iter_cond, minmax_set_iter_next,
	FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
	CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
	ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
	ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
	uses changed.

	* ira-int.h (struct live_range, live_range_t): Renamed from struct
	ira_allocno_live_range and allocno_live_range_t; all uses changed.
	* ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
	All uses changed.

2010-06-24  Richard Earnshaw  <rearnsha@arm.com>

	* thumb2.md (thumb2_tlobits_cbranch): Delete.
	(peephole2 to convert zero_extract/compare of single bit to
	 lshift/compare): New.

2010-06-24  Anatoly Sokolov  <aesok@post.ru>

	* fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
	recursive call and call to 'int_const_binop'.
	(build_range_check, fold_cond_expr_with_comparison, unextend,
	fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
	multiple_of_p): Adjust call to const_binop.

2010-06-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
	determine size of XFmode operand.
	(XFmode extended DFmode push splitter): Ditto.
	(XFmode extended SFmode push splitter): Ditto.

2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/44588
	* config/i386/i386.md (extract_code): New.
	(<u>divmodqi4): Likewise.
	(divmodhiqi3): Likewise.
	(udivmodhiqi3): Likewise.
	(<u>divqi3): Remvoved.

2010-06-24  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/44492
	* recog.h (struct recog_data): Add is_asm field.
	* recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
	present in constraints of inline-asm operand and memory operand
	contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
	(extract_insn): Initialize recog_data.is_asm.
	* doc/md.texi (Constraints): Document operand side-effect rules.

2010-06-24  Andi Kleen  <ak@linux.intel.com>

	* c-parser.c (c_parser_conditional_expression): Call
	warn_for_omitted_condop.
	* doc/invoke.texi: Document omitted condop warning.

2010-06-24  Nick Clifton<nickc@redhat.com>

	* loop-unswitch.c (compare_and_jump_seq): Assert that the last
	insn in the sequence is a jump insn before setting its label.

2010-06-24  Alan Modra  <amodra@gmail.com>

	* collect2.c (main): Match exactly --version and --help.

2010-06-24  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c-pragma.c: Don't include rtl.h.

2010-06-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
	using X87MODEF mode iterator.
	(pushsf splitter): Macroize splitter using P mode iterator.
	(*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
	mode iterator.

	(*movxf_internal): Rename from *movxf_integer.
	(*movxf_internal_nointeger): Rename from *movxf_nointeger.
	(*movdf_internal_rex64): Rename from *movdf_integer_rex64.
	(*movdf_internal): Rename from *movdf_integer.
	(*movdf_internal_nointeger): Rename from *movdf_nointeger.
	(*movsf_internal): Rename from *movdf_1.

2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>

	* coretypes.h (gimple_seq_node_d, gimple_seq_node)
	(const_gimple_seq_node): Removed typedefs.

	* gimple.h (gimple_seq_node_d, gimple_seq_node)
	(const_gimple_seq_node): Added typedefs moved from coretypes.h.

2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
	CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
	CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
	and CODE_FOR_vec_extract_lo_v4df.

	* config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
	Changed to define_insn_and_split.
	(vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
	(vec_extract_lo_v16hi): Likewise.
	(vec_extract_lo_v32qi): Likewise.
	(avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
	(avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.

2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR target/44640
	* config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
	* config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
	(spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
	(spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
	(spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.

	PR target/44640
	* config/spu/spu.c (ea_load_store_inline): Use add_reg_note.

	PR other/44644
	* df-core.c (struct df): Rename to df_d.
	* df.h (struct df): Likewise.
	* dse.h (struct df): Remove forward declaration.
	* recog.h (struct insn_data): Rename to:
	(struct_insn_data_d).  Adjusted all users.

2010-06-23  Arnaud Charlet  <charlet@adacore.com

	PR ada/22220
	* doc/install.texi: Update requirements to build GNAT.

2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>

	* config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
	enum type.
	(m68k_sched_attr_opx_type): Remove unreachable return.
	(m68k_sched_attr_opy_type): Likewise.
	(m68k_sched_attr_size): Likewise.
	(sched_get_opxy_mem_type): Likewise.
	(m68k_sched_attr_op_mem): Likewise.

2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>

	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
	new statement and adjust VDEF only if necessary.  Remove superfluous
	call to maybe_clean_or_replace_eh_stmt.
	* gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
	copy the flags.
	* gimple-iterator.c (gsi_replace): Clear BB of old statement here...
	* tree-inline.c (copy_bb): ...and not there.

2010-06-22  Cary Coutant  <ccoutant@google.com>

	* dwarf2out.c (is_nested_in_subprogram): New function.
	(should_move_die_to_comdat): Use it.
	(copy_ancestor_tree): Don't mark DIEs here.
	(copy_decls_walk): Start walk from root of newly-added tree;
	mark DIEs here instead.

2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (unit): Also check sseishft1.

2010-06-22  Jan Hubicka  <jh@suse.cz>

	* gimple.h (gimple_expr_code): Do checking on when gimple checking is
	enabled.

2010-06-22  Jan Hubicka  <jh@suse.cz>

	* df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
	df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
	Return true if something changed.
	* df.h (df_confluence_function_n): Return bool.
	* df-core.c (df_worklist_propagate_forward,
	df_worklist_propagate_backward): Track changes and ages.
	(df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
	track ages.
	* dse.c (dse_confluence_n): Return always true.

2010-06-22  Jan Hubicka  <jh@suse.cz>

	* bitmap.c (bitmap_clear_bit): Micro optimize.

2010-06-22  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (SWI1248x): New mode iterator.
	(SWI48x): Ditto.
	(SWI12): Ditto.
	(SWI24): Ditto.

	(mov<mode>): Macroize expander from mov{qi,hi,si,di} using
	SWI1248x mode iterator.
	(*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
	using SWI124 mode iterator.
	(*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
	mode iterator.
	(*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
	*pushdi2_prologue_rex64 using P mode iterator.
	(*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
	using SWI48 mode iterator.
	(*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
	(*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
	using SWI1248x mode iterator.
	(*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
	(*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
	SWI48 mode iterator.
	(*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
	iterator.
	(*swap<mode>_2): Ditto from *swap{qi,hi}_2.
	(movstrict<mode>): Macroize expander from movstrict{qi,hi} using
	SWI12 mode iterator.
	(*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
	SWI12 mode iterator.
	(*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
	(*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
	SWI24 mode iterator.
	(*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
	SWI48 mode iterator.
	(mov<mode>_insn_1): New expander.
	(*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
	using SWI48x mode iterator.

	(*movoi_internal_avx): Rename from *movoi_internal.
	(*movti_internal_rex64): Rename from *movti_rex64.
	(*movti_internal_sse): Rename from *movti_sse.
	(*movdi_internal_rex64): Rename from *movdi_1_rex64.
	(*movdi_internal): Rename from *movdi_2.
	(*movsi_internal): Rename from *movsi_1.
	(*movhi_internal): Rename from *movhi_1.
	(*movqi_internal): Rename from *movqi_1.

	(insv): Update the call to gen_movsi_insv_1 for rename.
	* config/i386/i386.c (promote_duplicated_reg): Ditto.

2010-06-22  Jan Hubicka  <jh@suse.cz>

	* passes.c (execute_function_todo): Move call of statistics_fini_pass
	to ...
	(execute_todo) ... this one.

2010-06-22  Alan Modra  <amodra@gmail.com>

	PR target/44364
	* config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
	* caller-save.c (insert_restore, insert_save): Use non-validate
	form of adjust_address.

2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/39690
	* config/pa/pa.c (override_options): Disable
	-freorder-blocks-and-partition.

2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/44615
	* config/i386/atom.md (atom_sseishft_2): Also check sseishft1.

	* config/i386/i386.md (type): Add sseishft1

	* config/i386/ppro_insn (ppro_insn): Also check sseishft1.
	(ppro_insn_load): Likewise.
	(ppro_insn_store): Likewise.
	(ppro_insn_both): Likewise.

	* config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
	(*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
	for type.
	(*vec_extractv2di_1_avx): Likewise.
	(*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
	type.  Remove atom_unit.
	(*vec_extractv2di_1_sse2): Likewise.

2010-06-21  DJ Delorie  <dj@redhat.com>

	* diagnostic.h (diagnostic_classification_change_t): New.
	(diagnostic_context): Add history and push/pop list.
	(diagnostic_push_diagnostics): Declare.
	(diagnostic_pop_diagnostics): Declare.
	* diagnostic.c (diagnostic_classify_diagnostic): Store changes
	from pragmas in a history chain instead of the global table.
	(diagnostic_push_diagnostics): New.
	(diagnostic_pop_diagnostics): New.
	(diagnostic_report_diagnostic): Scan history chain to find state
	of diagnostics as of the diagnostic location.
	* opts.c (set_option): Pass UNKNOWN_LOCATION to
	diagnostic_classify_diagnostic.
	(enable_warning_as_error): Likewise.
	* diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
	use in the history chain.
	* doc/extend.texi: Document pragma GCC diagnostic changes.

2010-06-21  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (add_linkage_name): New function.  Don't add
	anything to DW_TAG_member DIEs.
	(add_name_and_src_coords_attributes): Use it.
	(gen_variable_die): Call it for C++ static data members if
	specification is DW_TAG_member.

	* dwarf2out.c (base_type_die): Use DW_ATE_UTF for
	C++ char16_t and char32_t.

	* Makefile.in (build/genattrtab.o): Depend on vecprim.h.
	* genattrtab.c: Include vecprim.h.
	(cached_attrs, cached_attr_count, attrs_seen_once,
	attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
	attrs_cached_after): New variables.
	(find_attrs_to_cache): New function.
	(FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
	(write_test_expr): Add attrs_cached argument, return it too,
	attempt to cache non-const attributes used more than once in
	a single case handling.
	(write_attr_get): Use find_attrs_to_cache, for caching candidates
	emit cached_* variables.  Adjust write_attr_set callers.
	(write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
	to find attributes that should be cached in this block.  Adjust
	write_test_expr callers.
	(write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
	callers.
	(make_automaton_attrs): Adjust write_test_expr caller.

	* Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
	* genattrtab.c (check_tune_attr, find_tune_attr): New functions.
	(make_automaton_attrs): If find_tune_attr returns non-NULL,
	write separate internal_dfa_insn_code_* and insn_default_latency_*
	functions for each attribute's value and emit init_sched_attrs
	function and function pointers.
	* genattr.c (const_attrs, reservations): New variables.
	(gen_attr): Add const attributes to const_attrs vector.
	(check_tune_attr, find_tune_attr): New functions.
	(main): Add reservations to reservations vector.  If find_tune_attr
	returns true, add prototype for init_sched_attrs and make
	internal_dfa_insn_code and insn_default_latency function pointers,
	otherwise define init_sched_attrs as dummy macro.
	* cfgexpand.c: Include insn-attr.h.
	(gimple_expand_cfg): Call init_sched_attrs.

	* stmt.c (resolve_asm_operand_names): Fix handling of %%.

	PR target/44575
	* config/i386/i386.c (ix86_gimplify_va_arg): When copying
	va_arg from a set of register save slots into a temporary,
	if the container is bigger than type size, do the copying
	using smaller mode or using memcpy.

	PR bootstrap/44426
	* sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
	prototype.
	(sel_print_to_dot): Remove macro.
	(sel_print): Likewise.  New prototype.
	* sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
	(sel_print): New function.

2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
	__STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.

2010-06-21  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.h (PTRDIFF_TYPE): Define.
	(SMALL_REGISTER_CLASS): Define (to zero).
	(PRINT_OPERAND): Delete.
	(PRINT_OPERAND_ADDRESS): Delete.
	* config/rx/rx-protos.h (rx_print_operand): Delete prototype.
	(rx_print_operand_address): Delete prototype.
	* config/rx/rx.c (rx_print_operand): Make static.
	Allow %H and %L to handle CONST_DOUBLEs.
	(rx_print_operand_address): Make static.
	(rx_gen_move_template): Rename local variable 'template' to
	out_template.
	(rx_function_arg): Do not pass unknown sized objects in registers.
	(TARGET_PRINT_OPERAND): Define.
	(TARGET_PRINT_OPERAND_ADDRESS): Define.

2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).

2010-06-21  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.c (ix86_compute_frame_layout): Avoid
	stack-alignment for simple leaf-functions.

2010-06-20  Alexandre Oliva  <aoliva@redhat.com>

	* doc/install.texi: Document bootstrap-lto.

2010-06-20  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/44248
	* lto-streamer-in.c (input_bb): Leave debug stmts alone.
	(input_function): Drop them here, if VTA is disabled.

2010-06-20  Uros Bizjak  <ubizjak@gmail.com>

	PR target/44546
	* config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
	New predicate.
	* config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
	ix86_swapped_fp_comparsion_operator instead of
	ix86_fp_comparison_operator.

	(*fp_jcc_1_387): Rename from *fp_jcc_3_387.
	(*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
	(*fp_jcc_2_387): Rename from *fp_jcc_5_387.
	(*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
	(*fp_jcc_3_387): Rename from *fp_jcc_7_387.
	(*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.

2010-06-20  Joseph Myers  <joseph@codesourcery.com>

	PR other/32998
	* opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
	OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
	* opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
	(decode_cmdline_option): Update for this return value.  Set
	orig_option_with_args_text field.  Set arg field for unknown
	options.  Make static.
	(decode_cmdline_options_to_array): New.
	(prune_options): Update handling of find_opt return value.
	* opts.c (read_cmdline_option): Take decoded option.  Return void.
	(read_cmdline_options): Take decoded options.
	(decode_options): Add parameters for decoded options.  Use
	decode_cmdline_options_to_array.  Use decoded options for -O
	scan.  Use integral_argument for -O parameters.  Update call to
	read_cmdline_options.
	(enable_warning_as_error): Update handling of find_opt return value.
	* opts.h: Update comment on unknown options.
	(struct cl_decoded_option): Update comments on opt_index and arg.
	Add orig_option_with_args_text.
	(decode_cmdline_option): Remove.
	(decode_cmdline_options_to_array): Declare.
	(decode_options): Update prototype.
	* toplev.c (save_argv): Remove.
	(save_decoded_options, save_decoded_options_count): New.
	(read_integral_parameter): Remove.
	(print_switch_values): Use decoded options.
	(toplev_main): Don't set save_argv.  Update call to decode_options.
	* toplev.h (read_integral_parameter): Remove.
	* varasm.c (elf_record_gcc_switches): Don't handle holding back names.

2010-06-19  Richard Earnshaw  <rearnsha@arm.com>

	PR target/44072
	* arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
	immediate.
	* constraints.md (Pw, Px): New constraints.
	* thumb2.md (cmpsi2_addneg peephole2): New peepholes.

2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (fma4modesuffixf4): Removed.
	(ssemodesuffixf2s): Likewise.
	(ssemodesuffixf4): Likewise.
	(ssemodesuffixf2c): Likewise.
	(ssescalarmodesuffix2s): Likewise.
	(avxmodesuffixf2c): Likewise.
	(ssemodesuffix): New.
	(ssescalarmodesuffix): Likewise.
	Update patterns with ssemodesuffix and ssescalarmodesuffix.

2010-06-19  Philip Herron  <herron.philip@googlemail.com>

	* c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.

2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>

	* stor-layout.c (debug_rli): Remove unused local variables.

2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/40900
	* expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
	original expression for later reuse.
	<expand_decl_rtl>: Use promote_function_mode to compute the signedness
	of the promoted RTL for a SSA_NAME on the LHS of a call statement.

2010-06-18  Anatoly Sokolov  <aesok@post.ru>

	* double-int.h (double_int_to_shwi, double_int_to_uhwi,
	double_int_fits_in_uhwi_p): Implement as static inline.
	(double_int_xor): New inline function.
	(double_int_lrotate, double_int_rrotate, double_int_max,
	double_int_umax, double_int_smax, double_int_min, double_int_umin,
	double_int_smin): Declare.
	(lrotate_double, rrotate_double): Remove declaration.
	* double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
	double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
	(double_int_lrotate, double_int_rrotate, double_int_max,
	double_int_umax, double_int_smax, double_int_min, double_int_umin,
	double_int_smin): New function.
	* fold-const.c (int_const_binop): Clean up, use double_int_*
	functions.
	* simplify-rtx.c (simplify_const_binary_operation): Clean up, use
	double_int_* and immed_double_int_const functions.

2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>

	* function.h (types_used_by_cur_var_decl): Change type to a VEC.
	* function.c (types_used_by_cur_var_decl): Likewise.
	(used_types_insert): Adjust for new type of types_used_by_cur_var_decl.

2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (record_layout_info): Change type of pending_statics field
	to a VEC.
	* stor-layout.c (start_record_layout): Store NULL into
	pending_statics.
	(debug_rli): Call debug_vec_tree instead of debug_tree.
	(place_field): Likewise.
	(finish_record_layout): Likewise.

2010-06-18  Alan Modra  <amodra@gmail.com>

	* config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.

2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/43740
	* config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
	for SET source operand from SET destination operand.

2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/39871
	* reload1.c (init_eliminable_invariants): For flag_pic, disable
	equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
	(function_invariant_p): Rule out a plus of frame or arg pointer with
	a SYMBOL_REF.
	* ira.c (find_reg_equiv_invariant_const): Likewise.

2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>

	* config/rs6000/rs6000.c (print_operand) <'K'>: Also use
	print_operand_address and puts to output the operand for CONST.

2010-06-17  Jakub Jelinek  <jakub@redhat.com>

	PR debug/44572
	* dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
	hook.

2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>

	* v850-protos.h (print_operand): Delete.
	(print_operand_address): Delete.
	* v850.h (PRINT_OPERAND): Delete.
	(PRINT_OPERAND_PUNCT_VALID_P): Delete.
	(PRINT_OPERAND_ADDRESS): Delete.
	* v850.c (print_operand_address): Rename to...
	(v850_print_operand_address): ...this.  Make static. Call
	v850_print_operand.
	(print_operand): Rename to...
	(v850_print_operand): ...this.  Make static.  Call
	v850_print_operand_address.
	(v850_print_operand_punct_valid_p): New function.
	(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
	(TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.

2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>

	* config/sh/sh-protos.h (print_operand): Delete.
	(print_operand_address): Delete.
	* config/sh/sh.h (PRINT_OPERAND): Delete.
	(PRINT_OPERAND_PUNCT_VALID_P): Delete.
	(PRINT_OPERAND_ADDRESS): Delete.
	* config/sh/sh.c (sh_print_operand_address): Make static.
	(sh_print_operand): Make static.  Call sh_print_operand_address
	and sh_print_operand.
	(sh_print_operand_punct_valid_p): New function.
	(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
	(TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.

2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>

	* config/mcore/mcore-protos.h (mcore_print_operand): Delete.
	(mcore_print_operand_address): Delete.
	* config/mcore/mcore.h (PRINT_OPERAND): Delete.
	(PRINT_OPERAND_PUNCT_VALID_P): Delete.
	(PRINT_OPERAND_ADDRESS): Delete.
	* config/mcore/mcore.c (mcore_print_operand_address): Make static.
	(mcore_print_operand): Make static.
	(mcore_print_operand_punct_valid_p): New function.
	(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
	(TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.

2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>

	* config/m68hc11/m68hc11-protos.h (print_operand): Delete.
	(print_operand_address): Delete.
	* config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
	(PRINT_OPERAND_ADDRESS): Delete.
	* config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
	static.
	(m68hc11_print_operand): Make static.
	(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.

2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>

	* config/m32r/m32r-protos.h (m32r_print_operand): Delete.
	(m32r_print_operand_address): Delete.
	* config/m32r/m32r.h (m32r_punct_chars): Delete.
	(PRINT_OPERAND): Delete.
	(PRINT_OPERAND_PUNCT_VALID_P): Delete.
	(PRINT_OPERAND_ADDRESS): Delete.
	* config/m32r/m32r.c (m32r_punct_chars): Make static.
	(m32r_print_operand_address): Make static.
	(m32r_print_operand): Make static.
	(m32r_print_operand_punct_valid_p): New function.
	(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
	(TARGET_PRINT_OPERAND_ADDRESS): Define.

2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>

	* config/iq2000/iq2000-protos.h (print_operand): Delete.
	(print_operand_address): Delete.
	* config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
	(PRINT_OPERAND_PUNCT_VALID_P): Delete.
	(PRINT_OPERAND_ADDRESS): Delete.
	(iq2000_print_operand_punct): Delete.
	* config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
	(iq2000_print_operand_address): Make static.
	(iq2000_print_operand): Make static.
	(iq2000_print_operand_punct_valid_p): New function.
	(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
	(TARGET_PRINT_OPERAND_ADDRESS): Define.

2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>

	* config/frv/frv-protos.h (frv_print_operand): Delete.
	(frv_print_operand_address): Delete.
	* config/frv/frv.h (PRINT_OPERAND): Delete.
	(PRINT_OPERAND_PUNCT_VALID_P): Delete.
	(PRINT_OPERAND_ADDRESS): Delete.
	* config/frv/frv.c (frv_print_operand_address): Make static.
	(frv_print_operand): Make static.
	(frv_print_operand_punct_valid_p): New function.
	(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
	(TARGET_PRINT_OPERAND_ADDRESS): Define.

2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (vec_member): Declare.
	* tree.c (vec_member): Define.

2010-06-17  Richard Guenther  <rguenther@suse.de>

	* tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
	* tree-flow.h (array_ref_contains_indirect_ref): Likewise.

2010-06-17  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (declare_return_variable): Remove bogus code.

2010-06-17  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (gimplify_bind_expr): Always promote complex
	and vector variables to registers if possible.

2010-06-17  Richard Guenther  <rguenther@suse.de>

	* expr.c (get_inner_reference): Use double_int for bit_offset
	calculation.

2010-06-16  DJ Delorie  <dj@redhat.com>

	* common.opt (-fstrict-volatile-bitfields): new.
	* doc/invoke.texi: Document it.
	* fold-const.c (optimize_bit_field_compare): For volatile
	bitfields, use the field's type to determine the mode, not the
	field's size.
	* expr.c (expand_assignment): Likewise.
	(get_inner_reference): Likewise.
	(expand_expr_real_1): Likewise.
	* expmed.c (store_fixed_bit_field): Likewise.
	(extract_bit_field_1): Likewise.
	(extract_fixed_bit_field): Likewise.

2010-06-16  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.

2010-06-16  Douglas B Rupp  <rupp@gnat.com>

	* config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
	(ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
	* dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
	* debug.c: Likewise.
	* sdbout.c: Likewise.
	* vmsdbgout.c: Likewise.
	* debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
	* doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
	* dwarf2asm.c (dw2_asm_output_vms_delta): New function.
	(ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
	* dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
	* dwarf2out.c (dw_fde_struct): New fields
	dw_fde_vms_{end,begin}_prologue.
	(PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
	(dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
	(dwarf2out_vms_end_prologue): New function.
	(dwarf2out_vms_begin_epilogue): New function.
	(dw_val_struct): New value dw_val_class_vms_delta.
	(gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
	begin_epilogue for VMS.
	(AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
	new static functions.
	(dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
	(AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
	static functions.
	(print_die): New case dw_val_class_vms_delta.
	(attr_checksum): Likewise.
	(same_dw_val_p: Likewise.
	(size_of_die): Likewise.
	(value_format): Likewise.
	(output_die): Likewise.
	(gen_subprogram_die): Call add_AT_vms_delta on VMS.
	(dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
	* dwarf2out.h (dwarf2out_begin_epilogue): Rename to
	dwarf2out_cfi_begin_epilogue
	* final.c (final_scan_insn): Likewise. Call begin_epilogue.

2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>

	* config/cris/cris-protos.h (cris_print_operand): Delete.
	(cris_print_operand_address): Delete.
	* config/cris/cris.h (PRINT_OPERAND): Delete.
	(PRINT_OPERAND_PUNCT_VALID_P): Delete.
	(PRINT_OPERAND_ADDRESS): Delete.
	* config/cris/cris.c (cris_print_operand_address): Make static.
	(cris_print_operand): Make static.
	(cris_print_operand_punct_valid_p): New function.
	(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
	(TARGET_PRINT_OPERAND_ADDRESS): Define.

2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>

	* config/arm/arm-protos.h (arm_print_operand): Delete.
	(arm_print_operand_address): Delete.
	* config/arm/arm.h (PRINT_OPERAND): Delete.
	(PRINT_OPERAND_PUNCT_VALID_P): Delete.
	(PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
	(THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
	* config/arm/arm.c (arm_print_operand_address): ...here.  New function.
	(arm_print_operand): Make static.
	(arm_print_operand_punct_valid_p): New function.
	(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
	(TARGET_PRINT_OPERAND_ADDRESS): Define.

2010-06-16  Nick Clifton  <nickc@redhat.com>

	* config/rx/constraints.md (NEGint4): New constraint.
	* config/rx/rx.md (attr cc): Add set_zsc.
	(cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
	initialised.
	(cmpsf): Likewise.
	(call_internal): Clobber the cc0 register.
	(call_value_internal): Likewise.
	(cstoresi4): Likewise.
	(movsieq): Likewise.
	(movsine): Likewise.
	(addsi3): Add alternative to handle small negative constants.
	(sunsi3): Likewise.
	(addsi3): Do not set the O bit in the cc0 register.
	(adddi3): Likewise.
	(subsi3): Likewise.
	(subdi3): Likewise.
	(andsi3): Reorder alternatives to prefer shorter forms.
	(mulsi3): Likewise.
	(iorsi3): Likewise.
	(negsi2): Note that the cc0 flags are set.
	(rotlsi3): Note that only the Z and S bits are set in cc0.
	(lshrsi3): Likewise.
	(ashlsi3): Likewise.
	(subsf3): Use %Q for the MEM operand.
	(fix_truncsfsi2): Likewise.
	(floatsisf2): Likewise.
	(bitset): Remove early clobber from destination.
	(bitset_in_memory): Likewise.
	(lrintsf2): Clobber the cc0 register.
	* config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
	(rx_print_operand): Handle %N.

2010-06-16  Jan Hubicka  <jh@suse.cz>

	* df-core.c (df_compact_blocks): Free problem_temps vector.

2010-06-16  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/43905
	* tree-sra.c: Include tree-inline.h.
	(create_abstract_origin): Removed.
	(modify_function): Version the call graph node instead of creating
	abstract origins and dealing with same_body aliases.
	* tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
	function is versionable.
	* Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.

2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
	(CHOOSE_DYNAMIC_LINKER): Update.

2010-06-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
	*prefetch_sse and *prefetch_sse_rex using P mode iterator.
	(*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
	*prefetch_3dnow_rex.

2010-06-15  Anatoly Sokolov  <aesok@post.ru>

	* target.h (struct asm_out):Add declare_constant_name field.
	* target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
	(TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
	* output.h (default_asm_declare_constant_name): Declare.
	(assemble_label): Update prototype.
	* varasm.c (assemble_constant_contents): Use
	targetm.asm_out.declare_constant_name target hook.
	(assemble_label): Add 'file' argument.
	(default_asm_declare_constant_name): New function.
	* system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
	* doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
	(TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.

	* config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
	* config/darwin.c (darwin_asm_declare_constant_name): New function.
	(machopic_output_indirection): Update assemble_label argument list.
	* config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
	(TARGET_ASM_DECLARE_CONSTANT_NAME): Define.

2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/44391
	* graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
	size_one_node for pointer types.  Do not call gmp_cst_to_tree.

2010-06-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.

2010-06-15  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
	hard-float ABI.

2010-06-15  Alexandre Oliva  <aoliva@redhat.com>

	* tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
	don't get a vector type for output.

2010-06-15  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/44536
	* langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
	* langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
	(LANG_HOOKS_DECLS): Add it.
	* gimplify.c (omp_notice_variable): Call
	lang_hooks.decls.omp_report_decl.

2010-06-15  Martin Jambor  <mjambor@suse.cz>

	PR lto/44464
	* tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
	on the newly dead SSA name.

2010-06-15  Alan Modra  <amodra@gmail.com>

	* doc/invoke.texi: Add mcmodel to powerpc options.
	* configure.ac: Add HAVE_LD_LARGE_TOC test.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/rs6000/linux64.opt (mcmodel): New.
	* config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
	(TARGET_CMODEL, SET_CMODEL): Define.
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
	select CMODEL_MEDIUM default.
	* config/rs6000/rs6000.h (enum rs6000_cmodel): New.
	(TARGET_CMODEL): Define default.
	* config/rs6000/rs6000.c (cmodel): New variable.
	(rs6000_explicit_options): Add cmodel field.
	(rs6000_handle_option): Handle -mcmodel.
	(create_TOC_reference): Add largetoc_reg param.  Generate high,
	lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
	(rs6000_delegitimize_address): Recognise new toc reference rtl
	and minimal-toc rtl.
	(rs6000_legitimize_reload_address): Handle new toc references.
	(print_operand_address): Handle legitimate_constant_pool_address_p
	match before lo_sum.
	(rs6000_eliminate_indexed_memrefs): Tidy.
	(rs6000_emit_move): Tweak threshold for inlining constants.
	Keep rs6000_emit_allocate_stack large stack frame offsets
	loaded into r0 inline.
	(rs6000_generate_compare <cmptf_internal2>): One more clobber.
	(tocrel_base, tocrel_offset): New variables.
	(toc_relative_expr_p): Set them here.
	(print_operand_address): Skip over any offset on constant pool address.
	(rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
	(rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
	(offsettable_ok_by_alignment): New function.
	(rs6000_emit_move): Address suitably aligned local symbol_refs
	relative to the toc pointer for -mcmodel=medium.
	(legitimate_constant_pool_address_p): Make param const_rtx.  Add
	strict param.  Allow lo_sum version of addressing.  Verify reg
	used for -mminimal-toc and -mcmodel != small.  Update all callers.
	* config/rs6000/constraints.md: Update for above change.
	* config/rs6000/predicates.md: Likewise.
	* config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
	code.
	(tls_gd): Split for -mcmodel=medium/large.
	(tls_gd_high, tls_gd_low): New.
	(tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
	(tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
	(tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
	(largetoc_high, largetoc_low): New.
	(cmptf_internal2): Add clobber.
	* config/rs6000/rs6000-protos.h: Update.

2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
	true if no prefetch is going to be generated for a given group.
	(estimate_prefetch_count): Use prefetch_mod and unroll_factor to
	estimate the prefetch_count.
	(loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
	prefetch count by considering the unroll_factor and prefetch_mod
	for is_loop_prefetching_profitable.

2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>

	* config/m68k/m68k.c (m68k_delegitimize_address): Don't do
	anything if the argument is not a MEM.

2010-06-14  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/43650
	PR debug/44181
	PR debug/44247
	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
	debug stmts.
	(canonicalize_loop_ivs): Likewise.

2010-06-14  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/43656
	* haifa-sched.c (setup_insn_reg_pressure_info,
	update_register_pressure): Reject debug insns.
	(ready_sort): Don't setup reg pressure for debug insns.
	(schedule_insn): Don't update reg pressure for debug insns.

2010-06-14  Richard Guenther  <rguenther@suse.de>

	* lto-streamer.c (cached_bp): Remove.
	(bitpack_delete): Likewise.
	(bitpack_create): Likewise.
	(bp_get_next_word): Likewise.
	(bp_pack_value, bp_unpack_value): Move ...
	* lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
	Re-implement.
	(struct bitpack_d): Likewise.
	(bitpack_create, lto_output_bitpack, lto_input_bitpack):
	New inline functions.
	* lto-streamer-out.c (lto_output_bitpack): Remove.
	(pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
	(pack_value_fields): Adjust.
	(lto_write_tree): Likewise.
	(output_gimple_stmt): Likewise.
	(output_function): Likewise.
	* lto-streamer-in.c (input_gimple_stmt): Adjust.
	(input_function): Likewise.
	(unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
	(lto_input_bitpack): Remove.
	(lto_materialize_tree): Adjust.
	* Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
	* lto-cgraph.c (lto_output_edge): Adjust.
	(lto_output_node): Likewise.
	(lto_output_varpool_node): Likewise.
	(lto_output_ref): Likewise.
	(input_node): Likewise.
	(input_varpool_node): Likewise.
	(input_ref): Likewise.
	(input_edge): Likewise.
	(output_node_opt_summary): Likewise.
	(input_node_opt_summary): Likewise.
	* ipa-pure-const.c (pure_const_write_summary): Likewise.
	(pure_const_read_summary): Likewise.
	* ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
	(ipa_read_indirect_edge_info): Likewise.
	(ipa_write_node_info): Likewise.
	(ipa_read_node_info): Likewise.

2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/44534
	* config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
	(vec_extract_lo_v16hi): Likewise.
	(vec_extract_lo_v32qi): Likewise.

2010-06-14  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/44426
	* tree.h (build_call_expr): Don't define as vararg macro, instead
	add a prototype.
	* builtins.c (build_call_nofold): Remove.
	(expand_builtin_int_roundingfn, expand_builtin_pow,
	expand_builtin_mempcpy_args, expand_builtin_stpcpy,
	expand_builtin_memset_args, expand_builtin_strcmp,
	expand_builtin_strncmp, expand_builtin_memory_chk): Use
	build_call_nofold_loc instead of build_call_nofold.
	(build_call_expr): New function.

	PR tree-optimization/44508
	* tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
	* tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
	don't eliminate trivially dead stmts.
	* tree-vrp.c (vrp_finalize): Pass false as last argument
	to substitute_and_fold.
	* tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
	to substitute_and_fold.
	* tree-ssa-ccp.c (ccp_finalize): Likewise.

	PR bootstrap/44509
	* c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.

2010-06-14  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/44507
	* tree-vect-loop.c (get_initial_def_for_reduction): Use -1
	to build initial vector for BIT_AND_EXPR.
	* tree-vect-slp.c (vect_get_constant_vectors): Likewise.

2010-06-14  Jakub Jelinek  <jakub@redhat.com>

	* config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
	adjust z10prop set_attr.

2010-06-13  Jan Hubicka  <jh@suse.cz>

	* bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
	bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
	bitmap_ior_into, bitmap_xor, bitmap_xor_into,
	bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
	datastructure checks into checking asserts.
	* rtlanal.c (find_reg_note): Use gcc_checking_assert.
	* tree-ssa-sccvn.c (VN_INFO): Likewise.
	* df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
	df_ref_create_structure): Likewise.
	* alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
	pool_free): Use gcc_checking_assert.
	* alias.c (get_alias_set): Likewise.
	* var-tracking.c (variable_htab_free, shared_hash_copy,
	canonicalize_values_mark, variable_merge_over_cur): Likewise.
	* lto-streamer.c (bp_unpack_value): Likewise.

2010-06-13  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-in.c (lto_input_ts_type_tree_pointers):
	Do not stream but initialize TYPE_CANONICAL to NULL.
	(lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
	* gimple.c (gimple_types_compatible_p): Disregard
	TYPE_STRUCTURAL_EQUALITY_P.
	(gimple_register_type): Use TYPE_CANONICAL as cache.
	* lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
	before registering common types.
	* config/i386/i386.c (ix86_function_arg_boundary): Do not
	use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
	* tree.h (TYPE_CANONICAL): Clarify documentation.

2010-06-13  Anatoly Sokolov  <aesok@post.ru>

	* config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
	LIBCALL_VALUE): Remove macros.
	* config/ia64/ia64-protos.h (ia64_function_value): Remove.
	* config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
	TARGET_FUNCTION_VALUE_REGNO_P): Define.
	(ia64_libcall_value, ia64_function_value_regno_p): New functions.
	(ia64_function_value): Make static. Handle receiving the function
	type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.

2010-06-12  Jan Hubicka  <jh@suse.cz>

	* cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
	at correct place.

2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>

	* config/arm/arm.c (thumb2_reorg): Fix errors in previous change.

2010-06-12  Jan Hubicka  <jh@suse.cz>

	* df-core.c (df_clear_bb_info): New function.
	(df_set_blocks): bb_info is always allocated.
	(df_get_bb_info): Use block_info_elt_size.
	(df_set_bb_info): Likewise.
	(df_compact_blocks): Update for new block_info.
	(grow_bb_info): New function.
	* df-problems.c (df_grow_bb_info): Move to df-core.c
	(df_rd_set_bb_info): Remove.
	(df_rd_free_bb_info): Do not free block pool.
	(df_rd_alloc): Do not create pool, use check for
	obstack presence instead of NULL pointer for new blocks.
	(df_rd_free): DO not free alloc pool; clear block_info.
	(problem_RD): Add size of block info structure.
	(df_lr_set_bb_info): Remove.
	(df_lr_free_bb_info): Do not free block pool.
	(df_lr_alloc): Do not create pool, use check for
	obstack presence instead of NULL pointer for new blocks.
	(df_lr_free): DO not free alloc pool; clear block_info.
	(problem_LR): Add size of block info structure.
	(df_live_set_bb_info): Remove.
	(df_live_free_bb_info): Do not free block pool.
	(df_live_alloc): Do not create pool, use check for
	obstack presence instead of NULL pointer for new blocks.
	(df_live_free): DO not free alloc pool; clear block_info.
	(problem_LIVE): Add size of block info structure.
	(problem_CHAIN): Add size of block info structure.
	(df_byte_lr_set_bb_info): Remove.
	(df_byte_lr_free_bb_info): Do not free block pool.
	(df_byte_lr_alloc): Do not create pool, use check for
	obstack presence instead of NULL pointer for new blocks.
	(df_byte_lr_free): DO not free alloc pool; clear block_info.
	(problem_BYTE_LR): Add size of block info structure.
	(problem_NOTE): Add size of block info structure.
	(df_byte_MD_set_bb_info): Remove.
	(df_byte_MD_free_bb_info): Do not free block pool.
	(df_byte_MD_alloc): Do not create pool, use check for
	obstack presence instead of NULL pointer for new blocks.
	(df_byte_MD_free): DO not free alloc pool; clear block_info.
	(problem_BD): Add size of block info structure.
	* df-scan.c (df_scan_free_internal): Free block pool.
	(df_scan_set_bb_info): Remove.
	(df_scan_free_bb_info): Check for artificial_defs instead
	of bb_info being non-NULL.
	(df_scan_alloc): DO not create df_scan_block pool.
	(problem_SCAN): Set size of block info.
	(df_bb_refs_record): Do not allocate bb_info.
	* df.h (df_problem): Add block_info_elt_size.
	(struct dataflow): Change block_info to void *.
	(df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
	df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
	in-line structures.

2010-06-12  Jan Hubicka  <jh@suse.cz>

	PR tree-optimize/44485
	* tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
	containing use of return value of noreturn function.

2010-06-12  Anatoly Sokolov  <aesok@post.ru>

	* targhooks.c (default_function_value): Don't use
	FUNCTION_OUTGOING_VALUE.
	* system.h (FUNCTION_OUTGOING_VALUE): Poison.
	* doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.

2010-06-12  Kazu Hirata  <kazu@codesourcery.com>

	* config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
	Add crtfastmath.o to extra_parts.
	* config/mips/crtfastmath.c: New.
	* config/mips/linux.h (ENDFILE_SPEC): New.

2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
	old_type in parameter.
	(gcc_type_for_value): Update call to gcc_type_for_interval.
	(compute_type_for_level_1): Renamed compute_type_for_level.
	Update call to gcc_type_for_interval.

2010-06-11  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
	flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.

2010-06-11  Joseph Myers  <joseph@codesourcery.com>

	* opts-common.c: Include options.h.
	(integral_argument): Move from opts.c.
	(decode_cmdline_option): New.  Based on read_cmdline_option.
	* opts.c (integral_argument): Move to opts-common.c.
	(read_cmdline_option): Move most contents to
	decode_cmdline_option.  Use %qs in diagnostics.
	* opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
	CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
	decode_cmdline_option): New.

2010-06-11  Uros Bizjak  <ubizjak@gmail.com>

	PR target/44481
	* config/i386/i386.md (UNSPEC_PARITY): New unspec.
	(paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
	(partiysi2_cmp): Ditto.
	(*partiyhi2_cmp): Ditto.
	(*parityqi2_cmp): Remove.

2010-06-11  Jan Hubicka  <jh@suse.cz>

	* bitmap.h (bmp_iter_next_bit): New.
	(bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.

2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
	computed cost.

2010-06-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (unspec): New define_c_enum.
	(unspecv): Ditto.

2010-06-10  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).

2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/44483
	* tree-if-conv.c (bb_predicate_s): New struct.
	(bb_predicate_p): New.
	(bb_has_predicate): New.
	(bb_predicate): New.
	(set_bb_predicate): New.
	(bb_predicate_gimplified_stmts): New.
	(set_bb_predicate_gimplified_stmts): New.
	(add_bb_predicate_gimplified_stmts): New.
	(init_bb_predicate): New.
	(free_bb_predicate): New.
	(is_predicated): Use bb_predicate.
	(add_to_predicate_list): Use bb_predicate and set_bb_predicate.
	(predicate_bbs): Same.  Gimplify the condition of the basic blocks
	before processing their successors.
	(clean_predicate_lists): Removed.
	(find_phi_replacement_condition): Use bb_predicate.
	(process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
	computations.
	(insert_gimplified_predicates): New.
	(combine_blocks): Call insert_gimplified_predicates.
	(tree_if_conversion): Call free_bb_predicate instead of
	clean_predicate_lists.

2010-10-11  Paul Brook  <paul@codesourcery.com>

	* doc/invoke.texi: Document ARM -mcpu=cortex-m4.
	* config/arm/arm.c (all_architectures): Change v7e-m default to
	cortexm4.
	* config/arm/arm-cores.def: Add cortex-m4.
	* config/arm/arm-tune.md: Regenerate.

2010-06-11  Jan Hubicka  <jh@suse.cz>

	* ipa-pure-const.c (special_builtlin_state): New function.
	(check_call): Use it instead of special casign BUILT_IN_RETURN.
	(propagate_pure_const): Use it.

2010-06-11  Jan Hubicka  <jh@suse.cz>

	* df-problems.c (df_live_scratch): Convert to bitmap_head.
	(df_live_alloc): Initialize df_live_scratch when initializing
	problem_data.
	(df_live_transfer_function): Update uses of df_live_scratch.
	(df_live_free): Free problem_data; clear df_live_scratch before
	releasing the obstack.
	(df_md_free): Free problem data.

2010-06-11  Jan Hubicka  <jh@suse.cz>

	* doc/invoke.texi (Wsuggest-attribute): Document.
	(Wmissing-noreturn): Remove.
	* ipa-pure-const.c (warn_function_noreturn): New function.
	* opts.c (decode_options): Set warn_suggest_attribute_noreturn on
	warn_missing_noreturn.
	* common.opt (Wsuggest-attribute=noreturn): New.
	* tree-flow.h (warn_function_noreturn): Declare.
	* tree-cfg.c (execute_warn_function_noreturn): Use
	warn_function_noreturn.
	(gate_warn_function_noreturn): New.
	(pass_warn_function_noreturn): Update.

2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c-typeck.c (handle_warn_cast_qual): Add loc
	parameter. Improve warning message.
	(build_c_cast): Pass location to handle_warn_cast_qual.

2010-06-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
	that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
	insn mnemonic.
	(pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.

2010-06-10  Dodji Seketeli  <dodji@redhat.com>

	Fix bootstap on mips
	* dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
	be naming typedefs.

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

	* system.h (helper_const_non_const_cast): New inline for
	gcc version <= 4.0.
	(CONST_CAST2): For gcc version <= 4.0 use
	new helper to do const/non-const casting.

2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/md.texi: Document the "unspec" and "unspecv" enum names.
	* Makefile.in (OBJS-common): Include insn-enums.o.
	(insn-enums.o): New rule.
	(simple_generated_c): Add insn-enums.c.
	(build/genenums.o): New rule.
	(genprogmd): Add "enums".
	* genconstants.c (print_enum_type): Declare a C string array
	for each enum.
	* genenums.c: New file.
	* print-rtl.c (print_rtx): If defined, use the "unspecv" enum
	for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
	UNSPEC and (as a fallback) for UNSPEC_VOLATILE.

2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/md.texi (define_enum_attr): Document.
	* rtl.def (DEFINE_ENUM_ATTR): New rtx.
	* read-md.h (lookup_enum_type): Declare.
	* read-md.c (lookup_enum_type): New function.
	* genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
	* genattrtab.c (attr_desc): Add an enum_name field.
	(evaluate_eq_attr): Take the associated attribute as argument.
	Get the enum prefix from the enum_name field, if defined.
	Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
	(simplify_test_exp): Pass attr to evaluate_eq_attr.
	(add_attr_value): New function, split out from...
	(gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
	(write_test_expr): Pass attr to evaluate_eq_attr.
	(write_attr_get): Use the enum_name as the enum tag, if defined.
	(write_attr_valueq): Use the enum_name as a prefix, if defined.
	(find_attr): Initialize enum_name.
	(main): Handle DEFINE_ENUM_ATTR.
	* gensupport.c (process_rtx): Likewise.
	* config/mips/mips.h (mips_tune_attr): Delete.
	* config/mips/mips.md (cpu): Use define_attr_enum.

2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/md.texi (define_c_enum, define_enum): Document.
	* read-md.h (md_constant): Add a parent_enum field.
	(enum_value, enum_type): New structures.
	(upcase_string, traverse_enum_types): Declare.
	* read-md.c (enum_types): New variable.
	(upcase_string, add_constant): New functions.
	(handle_constants): Don't create the hash table here.
	Use add_constant.
	(traverse_md_constants): Don't check for a null md_constants.
	(decimal_string, handle_enum, traverse_enum_types): New functions.
	(read_md_files): Initialize md_constants and md_enums.
	* genconstants.c (print_md_constant): Ignore info argument.
	Only print constants that belong to no enum.
	(print_enum_type): New function.
	(main): Don't pass stdout to print_md_constant.  Call print_enum_type
	for each defined enum type.
	* config/mips/mips.md (processor): New define_enum.
	(unspec): New define_c_enum.
	(UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
	(UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
	(UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
	(UNSPEC_MEMORY_BARRIER): Moved to sync.md.
	(UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
	(UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
	(UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
	(UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
	(UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
	(UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
	(UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
	(UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
	(UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
	(UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
	(UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
	(UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
	(UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
	(UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
	(UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
	(UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
	(UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
	(UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
	(UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
	(UNSPEC_RDDSP): Move to mips-dsp.md.
	(UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
	(UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
	(UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
	(UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
	(UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
	(UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
	(UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
	(UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
	(UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
	(UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
	(UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
	(UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
	(UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
	Moved to mips-dspr2.md.
	(UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
	(UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
	(UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
	(UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
	(UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
	(UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
	(UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
	(UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
	(UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
	(UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
	(UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
	UNSPEC_LOONGSON_PSADBH)
	(UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
	(UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
	(UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
	(UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
	(UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
	(UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
	(UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
	(cpu): Update comment.
	* config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
	(UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
	(UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
	(UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
	* config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
	UNSPEC_LOONGSON_PCMPEQ)
	(UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
	UNSPEC_LOONGSON_PINSR_0)
	(UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
	(UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
	(UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
	(UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
	(UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
	UNSPEC_LOONGSON_PSADBH)
	(UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
	(UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
	(UNSPEC_LOONGSON_PSUBD): Moved from mips.md
	* config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
	(UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
	(UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
	(UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
	* config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
	(UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
	(UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
	(UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
	(UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
	(UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
	(UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
	(UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
	(UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
	(UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
	(UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
	(UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
	(UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
	(UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
	(UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
	(UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
	(UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
	(UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
	(UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
	(UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
	(UNSPEC_RDDSP): Moved from mips.md.
	* config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
	(UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
	(UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
	(UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
	(UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
	(UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
	(UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
	(UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
	(UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
	(UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
	(UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
	(UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
	(UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
	(UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
	* config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
	(UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
	(UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
	(UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
	(UNSPEC_SCC): Moved from mips.md.
	* config/mips/mips.c (mips_arch, mips_tune): Change enum from
	"processor_type" to "processor".
	(mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
	* config/mips/mips.h (processor_type): Delete.
	(mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
	"processor_type" to "processor".

2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* configure.ac (tm_include_list): Add insn-constants.h.
	* configure: Regenerate.
	* Makefile.in (GTM_H): Move insn-constants.h here from...
	(TM_H): ...here.
	* mkconfig.sh: Remove special handling for insn-constants.h.

2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (BUILD_RTL): Move build/read-md.o to...
	(BUILD_MD): ...this new variable.
	(simple_generated_rtl_h, simple_generated_rtl_c): New variables
	that include the old contents of simple_generated_h and
	simple_generated_c.
	(simple_generated_h, simple_generated_c): Include them.  Add
	insn-constants.h.
	(s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
	and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
	Remove these dependencies from the main rule and include
	insn-conditions.md in the command line only if it appears
	in the dependency list.
	(insn-constants.h, s-constants): Delete.
	(build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
	or gensupport.h.
	(build/genmddeps.o): Likewise.
	(genprogrtl): New variable that contains everything from genprogmd
	except mddeps and constants.
	(genprogmd): Redefine in terms of genprogrtl.  Make these programs
	depend on $(BUILD_MD)
	(genprog): New variable.  Make these programs depend on
	$(BUILD_ERRORS).
	* genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
	(main): Use read_md_files instead of init_rtx_reader_args.
	* genconstants.c: As for genmddeps.c.
	* read-md.h (read_skip_construct): Declare.
	* read-md.c (read_skip_construct): New function.
	(handle_file): Allow a null handle_directive, skipping the
	construct if so.
	(parse_include): Update the comment accordingly.

2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
	* genmddeps.c: Include read-md.h.
	(main): Call init_rtx_reader_args instead of init_md_reader_args.
	* genattr.c (main): Likewise.
	* genattrtab.c (main): Likewise.
	* genautomata.c (main): Likewise.
	* gencodes.c (main): Likewise.
	* genconditions.c (main): Likewise.
	* genconfig.c (main): Likewise.
	* genconstants.c (main): Likewise.
	* genemit.c (main): Likewise.
	* genextract.c (main): Likewise.
	* genflags.c (main): Likewise.
	* genopinit.c (main): Likewise.
	* genoutput.c (main): Likewise.
	* genpeep.c (main): Likewise.
	* genrecog.c (main): Likewise.
	* genpreds.c (main): Likewise.
	* gensupport.h (in_fname): Move to read-md.h.
	(init_md_reader_args_cb): Rename to...
	(init_rtx_reader_args_cb): ...this and return a bool.
	(init_md_reader_args): Rename to...
	(init_rtx_reader_args): ...this and return a bool.
	(include_callback): Move to read-md.h.
	* gensupport.c (in_fname, include_callback, base_dir, max_include_len)
	(file_name_list, first_dir_md_include): Move to read-md.c
	(first_bracket_include): Delete unused variable.
	(last_dir_md_include): Move to read-md.c.
	(process_include): Delete, moving code to read-md.c:handle_include.
	(process_rtx): Don't handle INCLUDE.
	(save_string): Delete.
	(rtx_handle_directive): New function.
	(init_md_reader_args_cb): Rename to...
	(init_rtx_reader_args_cb): ...this and return a boolean success value.
	Use read_md_args.
	(init_md_reader_args): Rename to...
	(init_rtx_reader_args): ...this and return a boolean success value.
	* rtl.def (INCLUDE): Delete.
	* rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
	argument.
	* read-rtl.c (read_conditions): Don't gobble ')' here.
	(read_mapping): Likewise.
	(read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
	Handle top-level non-rtx constructs here rather than in read_rtx_1.
	Store the whole queue in *X.  Remove call to init_md_reader.
	(read_rtx_1): Rename to...
	(read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
	Don't handle top-level non-rtx constructs here.  Don't handle (nil)
	here.
	(read_nested_rtx): New function.  Handle (nil) here rather than
	in read_rtx_code.
	(read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
	gobble ')' here.
	* read-md.h (directive_handler_t): New type.
	(in_fname, include_callback): Moved from read-md.h.
	(read_constants, init_md_reader): Delete.
	(read_md_files): Declare.
	* read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
	(last_dir_md_include_ptr, include_callback, max_include_len): Moved
	from gensupport.c.
	(read_constants): Rename to...
	(handle_constants): ...this.  Don't gobble ')' here.
	(handle_include, handle_file, handle_toplevel_file)
	(parse_include): New functions, mostly taken from gensupport.c.
	(init_md_reader): Subsume into...
	(read_md_files): ...this new function.

2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* read-md.h (read_char): Increment read_md_lineno after reading '\n'.
	(unread_char): Decrement read_md_lineno after putting back '\n'.
	* read-md.c (fatal_with_file_and_line): Push back any characters
	that we decide not to add to the context.
	(read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
	fatal_expected_char in cases where '/' ends a line (for example).
	(read_name): Don't increment read_md_lineno here.
	(read_escape): Likewise.
	(read_quoted_string): Likewise.
	(read_braced_string): Likewise.

2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (READ_MD_H): Add $(HASHTAB_H).
	(build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
	* genconstants.c: Include read-md.h.
	* read-rtl.c (md_constants): Move to read-md.c.
	(md_name): Move to read-md.h.
	(initialize_iterators): Use leading_string_hash instead of def_hash
	and leading_string_eq_p instead of def_name_eq_p.
	(read_name): Move to read-md.c.
	(def_hash, def_name_eq_p): Delete.
	(read_constants, traverse_md_constants): Move to read-md.c.
	* rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
	* read-md.h: Include hashtab.h.
	(md_name): Moved from read-rtl.c.
	(md_constant): Moved from read-md.h.
	(leading_string_hash, leading_string_eq_p, read_name)
	(read_constants, traverse_md_constants): Declare.
	* read-md.c (md_constants): Moved from read-rtl.c.
	(leading_string_hash, leading_string_eq_p): New functions.
	(read_name, read_constants, traverse_md_constants): Moved from
	read-rtl.c.

2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* read-rtl.c (md_name): New structure.
	(read_name): Take an md_name instead of a buffer pointer.
	Use the "string" field instead of strcpy when expanding constants.
	(read_constants): Remove the tmp_char argument.  Update the calls
	to read_name, using two local name buffers instead of the tmp_char
	argument.  Merge the constant-creation code.
	(read_conditions): Remove the tmp_char argument.  Update the calls
	to read_name, using a local name buffer instead of the tmp_char
	argument.
	(read_mapping): Replace tmp_char variable with a local name buffer.
	Update the calls to read_name.
	(read_rtx_1): Likewise.  Update the calls to read_constants and
	read_conditions.

2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (build/read-md.o): Depend on errors.h.
	* read-md.h (error_with_line): Declare.
	* read-md.c: Include errors.h.
	(message_with_line_1): New function, extracted from...
	(message_with_line): ...here.
	(error_with_line): New function.
	* genattrtab.c: If a call to message_with_line is followed by
	"have_error = 1;", replace both statements with a call to
	error_with_line.
	* genoutput.c: Likewise.
	* genpreds.c: Likewise.
	* genrecog.c: If a call to message_with_line is followed by
	"error_count++;", replace both statements with a call to
	error_with_line.
	(errorcount): Delete.
	(main): Don't check it.
	* gensupport.c: If a call to message_with_line is followed by
	"errors = 1;", replace both statements with a call to error_with_line.
	(errors): Delete.
	(process_define_cond_exec): Check have_error instead of errors.
	(init_md_reader_args_cb): Likewise.  Don't set errors.

2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* read-md.h (read_md_file): Declare.
	(read_char, unread_char): New functions.
	(fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
	(read_quoted_string, read_string): Remove FILE * argument.
	* read-md.c (read_md_file): New variable.
	(read_md_filename, read_md_lineno): Update comments and remove
	unnecessary initialization.
	(fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
	(read_escape, read_quoted_string, read_braced_string, read_string):
	Remove FILE * argument.  Update calls accordingly, using read_char
	and unread_char instead of getc and ungetc.
	* rtl.h (read_rtx): Remove FILE * argument.
	* read-rtl.c (iterator_group): Remove FILE * argument from
	"find_builtin".
	(iterator_traverse_data): Remove "infile" field.
	(find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
	(add_mapping, read_name, read_constants, read_conditions)
	(validate_const_int, find_iterator, read_mapping, check_code_iterator)
	(read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
	Remove file arguments from all calls, using read_char and unread_char
	instead of getc and ungetc.
	* gensupport.c (process_include): Preserve read_md_file around
	the include.  Set read_md_file to the handle of the included file.
	Update call to read_rtx.
	(init_md_reader_args_cb): Set read_md_file to the handle of the file
	and remove local FILE *.  Update calls to read_rtx.

2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* read-md.h (read_rtx_lineno): Rename to...
	(read_md_lineno): ...this.
	(read_rtx_filename): Rename to...
	(read_md_filename): ...this.
	(copy_rtx_ptr_loc): Rename to...
	(copy_md_ptr_loc): ...this.
	(print_rtx_ptr_loc): Rename to...
	(print_md_ptr_loc): ...this.
	* read-md.c: Likewise.  Update references after renaming.
	(string_obstack): Replace RTL with MD in comment.
	(set_rtx_ptr_loc): Rename to...
	(set_md_ptr_loc): ...this.
	(get_rtx_ptr_loc): Rename to...
	(get_md_ptr_loc): ...this.
	* genconditions.c: Update references after renaming.
	* genemit.c: Likewise.
	* genoutput.c: Likewise.
	* genpreds.c: Likewise.
	* gensupport.c: Likewise.
	* read-rtl.c: Likewise.

2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (READ_MD_H): New variable.
	(BUILD_RTL): Add build/read-md.o.
	(lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
	(build/gensupport.o, build/read-rtl.o, build/genattr.o)
	(build/genattrtab.o, build/genconditions.o build/genemit.o)
	(build/genextract.o, build/genflags.o, build/genoutput.o)
	(build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
	(build/read-md.o): New rule.
	* defaults.h (obstack_chunk_alloc, obstack_chunk_free)
	(OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
	* coretypes.h: ...here.
	* lto-wrapper.c: Include coretypes.h instead of defaults.h.
	* pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
	* genattr.c: Include read-md.h.
	* genattrtab.c: Likewise.
	* genconditions.c: Likewise.
	* genemit.c: Likewise.
	* genextract.c: Likewise.
	* genflags.c: Likewise.
	* genoutput.c: Likewise.
	* genpreds.c: Likewise.
	* genrecog.c: Likewise.
	* rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
	(join_c_conditions, print_c_condition, read_rtx_filename)
	(read_rtx_lineno): Move to read-md.h.
	* read-rtl.c: Include read-md.h.
	(ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
	(joined_conditions, joined_conditions_obstack, read_rtx_lineno)
	(read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
	(leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
	(copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
	(print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
	(read_braced_string, read_string): Move to read-md.c.
	(read_rtx): Move some initialization to init_md_reader and call
	init_md_reader here.
	* gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
	Move to read-md.h.
	* gensupport.c: Include read-md.h.
	(message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
	* read-md.h, read-md.c: New files.

2010-06-10  Anatoly Sokolov  <aesok@post.ru>

	* config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
	LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
	* config/moxie/moxie-protos.h (moxie_function_value): Remove.
	* config/moxie/moxie.c (moxie_function_value): Make static.
	(moxie_libcall_value, moxie_function_value_regno_p): New functions.
	(TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.

2010-06-10  Martin Jambor  <mjambor@suse.cz>

	* Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
	* dbgcnt.def (tree_sra): New counter.
	* tree-sra.c: Include dbgcnt.h.
	(gate_intra_sra): Check tree_sra debug counter.

2010-06-10  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/44258
	* tree-sra.c (build_access_subtree): Return false iff there is a
	partial overlap.
	(build_access_trees): Likewise.
	(analyze_all_variable_accesses): Disqualify candidates if
	build_access_trees returns true for them.

2010-06-10  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41371
	* var-tracking.c (find_loc_in_1pdv): Remove recursion, only
	tail-recurse into canonical node.  Fast-forward over
	non-canonical VALUEs.

2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR boostrap/44470
	* config/i386/i386.md (*add<mode>_1): Revert revision 160394.
	(*addsi_1_zext) <TYPE_LEA>: Likewise.
	(add lea splitter): Likewise.
	(add_zext lea splitter): Likewise.

2010-06-10  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.

2010-06-10  Jan Hubicka  <jh@suse.cz>

	* df-problems.c (df_live_problem_data): Add live_bitmaps.
	(df_live_alloc): Initialize problem data and live_osbtacks.
	(df_live_finalize): Remove obstack, problem data; do not
	clear all bitmaps.
	(df_live_top_dump, df_live_bottom_dump): Do not dump old
	data when not allocated.
	(df_live_verify_solution_start): Do not allocate problem data.
	(df_live_verify_solution_end): Check if out is allocated.
	(struct df_md_problem_data): New structure.
	(df_md_alloc): Allocate problem data.
	(df_md_free): Free problem data; do not clear bitmaps.

2010-06-10  Jan Beulich  <jbeulich@novell.com>

	PR bootstrap/37304
	* configure.ac: Replace $() with ${} when intending to expand
	variables rather than invoking commands.
	* configure: Re-generate.

2010-06-10  Jan Hubicka  <jh@suse.cz>

	PR rtl-optimization/44460
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
	TYPE_NEEDS_CONSTRUCTING sanity check.

2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/include/fdl.texi: Move to GFDL version 1.3.

	* doc/cpp.texi: Move to GFDL version 1.3.
	* doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
	* doc/gccint.texi: Move to GFDL version 1.3.
	* doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
	* doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
	* doc/invoke.texi: Move to GFDL version 1.3.

2010-06-09  Jan Hubicka  <jh@suse.cz>

	* ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
	Break out from ...
	(propagate) ... here; swap the order.

2010-06-09  Jan Hubicka  <jh@suse.cz>

	* bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
	bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
	bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
	bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.

2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (gather_memory_references_ref):
	Do not the gather memory reference in the outer loop if the step
	is not a constant.

2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
	Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
	8 to 4.  Minor change of the related comments.

2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_name): Do not fail
	the scev analysis when the variable is not used outside the loop
	in a close phi node: call compute_overall_effect_of_inner_loop.

2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (single_pred_cond): Renamed
	single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
	(build_sese_conditions_before): Renamed call to single_pred_cond.
	(build_sese_conditions_after): Same.

2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h: Fix comments and indentation.
	* graphite-sese-to-poly.c: Same.
	(build_sese_conditions_before): Compute stmt and gbb only when needed.
	* tree-chrec.c: Fix comments and indentation.
	(tree-ssa-loop-niter.c): Same.

2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/42461
	* dce.c (deletable_insn_p): Return true for const or pure calls again.
	* except.c (insn_could_throw_p): Return false if !flag_exceptions.

2010-06-09  Jan Hubicka  <jh@suse.cz>

	* bitmap.c (bitmap_and): Walk array forward.
	(bitmap_and_compl_into): Likewise.
	(bitmap_xor): Likewise.
	(bitmap_xor_into):  Likewise.
	(bitmap_equal_p): Likewise.
	(bitmap_intersect_p): Likewise.
	(bitmap_intersect_compl_p): Likewise.
	(bitmap_ior_and_into): Likewise.
	(bitmap_elt_copy): Likewise.
	(bitmap_and_compl): Likewise.
	(bitmap_elt_ior): Likewise.

2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>

	* opts-common.c (prune_options): Ensure replacement argv array
	is correctly terminated by a NULL entry.

2010-06-09  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (varpool_first_static_initializer,
	varpool_next_static_initializer): Make checking only when
	checking enabled.
	* tree-vectorizer.h (vinfo_for_stmt): Remove check.
	(set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
	gcc_assert to gcc_checking_assert.
	* tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
	phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
	op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
	op_iter_init_phiuse, op_iter_init_phidef,
	array_ref_contains_indirect_ref, ref_contains_array_ref): Use
	gcc_checking_assert.
	* emit-rtl.h (set_first_insn, set_last_insn): Likewise.
	* tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
	partition_is_global, live_on_entry, live_on_exit,
	live_merge_and_clear): Likewise.
	* system.h (gcc_checking_assert): New macro.
	* gimple.h (set_bb_seq): Use gcc_checking_assert.

2010-06-09  Jason Merrill  <jason@redhat.com>

	* Makefile.in (TAGS): Collect tags info from c-family.

2010-06-09  Jan Hubicka  <jh@suse.cz>

	* gimple.h (gcc_gimple_checking_assert): New macro.
	(gimple_set_def_ops, gimple_set_use_ops,
	gimple_set_vuse, gimple_set_vdef,
	gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
	gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
	gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
	gimple_asm_output_op, gimple_asm_output_op_ptr,
	gimple_asm_set_output_op, gimple_asm_clobber_op,
	gimple_asm_set_clobber_op, gimple_asm_label_op,
	gimple_asm_set_label_op, gimple_try_set_kind,
	gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
	gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
	gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
	gimple_omp_for_index_ptr, gimple_omp_for_set_index,
	gimple_omp_for_initial, gimple_omp_for_initial_ptr,
	gimple_omp_for_set_initial, gimple_omp_for_final,
	gimple_omp_for_final_ptr, gimple_omp_for_set_final,
	gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
	gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
	conditional with ENABLE_GIMPLE_CHECKING.
	(gimple_phi_set_arg): Likewise; replace memcpy by assignment.

2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>

	* tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
	(get_computation_cost_at): Use it.
	(determine_use_iv_cost_condition): Likewise.
	(determine_iv_cost): Likewise.

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

	* tree-ssa-loop-niter.c (simplify_replace_tree): Do not
	replace constants.

2010-06-09  Kai Tietz  <kai.tietz@onevision.com>

	* c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.

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

	PR tree-optimization/44423
	* tree-sra.c (dump_access): Dump also grp_assignment_read.
	(analyze_access_subtree): Pass negative allow_replacements to children
	if the current type is scalar.

2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR testsuite/42843
	* gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
	* doc/plugins.texi (Plugin license check): Update information
	on type of plugin_is_GPL_compatible.
	* Makefile.in (PLUGINCC): Define as $(COMPILER).
	(PLUGINCFLAGS): Define as $(COMPILER_FLAGS).

2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>

	* config/arm/arm.c (thumb2_reorg): New function.
	(arm_reorg): Call it.
	* config/arm/thumb2.md (define_peephole2 for flag clobbering
	arithmetic operations): Delete.

2010-06-09  Edmar Wienskoski  <edmar@freescale.com>

	PR target/44067
	* config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
	e500v2 target.

2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR plugins/44459
	* gcc-plugin.h: Encapsulate all declarations in extern "C".

2010-06-08  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (single_succ_edge, single_pred_edge, ei_container,
	ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.

2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>

	PR tree-optimization/39874
	PR middle-end/28685
	* gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
	Declare.
	* gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
	same_bool_result_p): New.
	(and_var_with_comparison, and_var_with_comparison_1,
	and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
	(or_var_with_comparison, or_var_with_comparison_1,
	or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
	* tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
	maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
	of combine_comparisons.
	* tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.

2010-06-08  Anatoly Sokolov  <aesok@post.ru>

	* config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
	LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
	* config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
	pdp11_function_value_regno_p): New functions.
	(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
	TARGET_FUNCTION_VALUE_REGNO_P): Define.

2010-06-08  Kazu Hirata  <kazu@codesourcery.com>

	* config/arm/arm.c (arm_rtx_costs_1): Don't special case for
	Thumb-2 in the MINUS case.

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.

	* doc/gty.texi (GTY Options): Document typed GC allocation and
	variable_size GTY option.

	* ggc-internal.h: New.

	* ggc.h: Update copyright year.
	(digit_string): Move to stringpool.c.
	(ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
	(gt_pch_save_stringpool, gt_pch_fixup_stringpool)
	(gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
	(init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
	(ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
	(ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
	(ggc_force_collect, ggc_get_size, ggc_statistics)
	(ggc_print_common_statistics): Move to ggc-internal.h.
	(digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
	(ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
	(GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
	(ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
	(ggc_min_heapsize_heuristic, ggc_alloc_zone)
	(ggc_alloc_zone_pass_stat): Remove.
	(ggc_internal_alloc_stat, ggc_internal_alloc)
	(ggc_internal_cleared_alloc_stat): New.
	(GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
	(ggc_internal_vec_alloc_stat)
	(ggc_internal_cleared_vec_alloc_stat)
	(ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
	(ggc_alloc_atomic_stat, ggc_alloc_atomic)
	(ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
	(ggc_cleared_alloc_ptr_array_two_args): New.
	(htab_create_ggc, splay_tree_new_ggc): Redefine.
	(ggc_splay_alloc): Change the type of the first argument to
	enum gt_types_enum.
	(ggc_alloc_string): Make macro.
	(ggc_alloc_string_stat): New.
	(ggc_strdup): Redefine.
	(rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
	(ggc_alloc_rtvec_sized): New.
	(ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
	(ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
	(ggc_internal_cleared_alloc_zone_stat)
	(ggc_internal_zone_alloc_stat)
	(ggc_internal_zone_cleared_alloc_stat)
	(ggc_internal_zone_vec_alloc_stat)
	(ggc_alloc_zone_rtx_def_stat)
	(ggc_alloc_zone_tree_node_stat)
	(ggc_alloc_zone_cleared_tree_node_stat)
	(ggc_alloc_cleared_gimple_statement_d_stat): New.

	* ggc-common.c: Include ggc-internal.h.
	(ggc_internal_cleared_alloc_stat): Rename from
	ggc_alloc_cleared_stat.
	(ggc_realloc_stat): Use ggc_internal_alloc_stat.
	(ggc_calloc): Remove.
	(ggc_cleared_alloc_htab_ignore_args): New.
	(ggc_cleared_alloc_ptr_array_two_args): New.
	(ggc_splay_alloc): Add obj_type parameter.
	(init_ggc_heuristics): Formatting fixes.

	* ggc-none.c: Update copyright year.
	(ggc_alloc_stat): Rename to ggc_alloc_stat.
	(ggc_alloc_cleared_stat): Rename to
	ggc_internal_cleared_alloc_stat.
	(struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.

	* ggc-page.c: Update copyright year.  Include ggc-internal.h.
	Remove references to ggc_alloc in comments.
	(ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
	(ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
	(new_ggc_zone, destroy_ggc_zone): Remove.
	(struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.

	* ggc-zone.c: Include ggc-internal.h.  Remove references to
	ggc_alloc in comments.
	(ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
	(ggc_internal_alloc_zone_pass_stat): New.
	(ggc_internal_cleared_alloc_zone_stat): New.
	(ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
	(ggc_alloc_stat): Rename ggc_internal_alloc_stat.
	(new_ggc_zone, destroy_ggc_zone): Remove.

	* stringpool.c: Update copyright year.  Include ggc-internal.h
	(digit_vector): Make static.
	(digit_string): Moved from ggc.h.
	(stringpool_ggc_alloc): Use ggc_alloc_atomic.
	(ggc_alloc_string): Rename to ggc_alloc_string_stat.

	* Makefile.in (GGC_INTERNAL_H): New.
	(ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
	$(GGC_INTERNAL_H) to dependencies.

	* gengtype.c: Update copyright year.
	(walk_type): Accept variable_size GTY option.
	(USED_BY_TYPED_GC_P): New macro.
	(write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
	whitespace at the end of strings.
	(get_type_specifier, variable_size_p): New functions.
	(alloc_quantity, alloc_zone): New enums.
	(write_typed_alloc_def): New function.
	(write_typed_struct_alloc_def): Likewise.
	(write_typed_typed_typedef_alloc_def): Likewise.
	(write_typed_alloc_defns): Likewise.
	(output_typename, write_splay_tree_allocator_def): Likewise.
	(write_splay_tree_allocators): Likewise.
	(main): Call write_typed_alloc_defns and
	write_splay_tree_allocators.

	* lto-streamer.h (lto_file_decl_data_ptr): New.

	* passes.c (order): Define using cgraph_node_ptr.

	* strinpool.c (struct string_pool_data): Declare nested_ptr using
	ht_identifier_ptr.

	* gimple.h (union gimple_statement_d): Likewise.

	* rtl.h (struct rtx_def): Likewise.
	(struct rtvec_def): Likewise.

	* tree.h (union tree_node): Likewise.

	* tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.

	* cfgloop.c (record_loop_exits): Use htab_create_ggc.

	* tree-scalar-evolution.c (scev_initialize): Likewise.

	* alias.c (record_alias_subset): Update splay_tree_new_ggc call.

	* dwarf2asm.c (dw2_force_const_mem): Likewise.

	* omp-low.c (lower_omp_critical): Likewise.

	* bitmap.h (struct bitmap_head_def): Update comment to not
	reference ggc_alloc.

	* config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.

	* ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.

	* ipa-prop.c (duplicate_ggc_array): Rename to
	duplicate_ipa_jump_func_array.  Use typed GC allocation.
	(ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.

	* gimple.c (gimple_alloc_stat): Use
	ggc_alloc_cleared_gimple_statement_d_stat.

	* varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.

	* tree.c (make_node_stat): Use
	ggc_alloc_zone_cleared_tree_node_stat.
	(make_tree_vec_stat): Likewise.
	(build_vl_exp_stat): Likewise.
	(copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
	(make_tree_binfo_stat): Likewise.
	(tree_cons_stat): Likewise.

	* rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
	(shallow_copy_rtx_stat): Likewise.
	(make_node_stat): Likewise.

	* lto-symtab.c: Fix comment.

	* tree-cfg.c (create_bb): Update comment to not reference
	ggc_alloc_cleared.
	* tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.

	* varpool.c (varpool_node): Use typed GC allocation.
	(varpool_extra_name_alias): Likewise.

	* varasm.c (emutls_decl): Likewise.
	(get_unnamed_section): Likewise.
	(get_noswitch_section): Likewise.
	(get_section): Likewise.
	(get_block_for_section): Likewise.
	(build_constant_desc): Likewise.
	(create_constant_pool): Likewise.
	(force_const_mem): Likewise.

	* tree.c (build_vl_exp_stat): Likewise.
	(build_real): Likewise.
	(build_string): Likewise.
	(decl_debug_expr_insert): Likewise.
	(decl_value_expr_insert): Likewise.
	(type_hash_add): Likewise.
	(build_omp_clause): Likewise.

	* tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.

	* tree-ssa.c (init_tree_ssa): Likewise.

	* tree-ssa-structalias.c (heapvar_insert): Likewise.

	* tree-ssa-operands.c (ssa_operand_alloc): Likewise.

	* tree-ssa-loop-niter.c (record_estimate): Likewise.

	* tree-ssa-alias.c (get_ptr_info): Likewise.

	* tree-scalar-evolution.c (new_scev_info_str): Likewise.

	* tree-phinodes.c (allocate_phi_node): Likewise.

	* tree-iterator.c (tsi_link_before): Likewise.
	(tsi_link_after): Likewise.

	* tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.

	* tree-dfa.c (create_var_ann): Likewise.

	* tree-cfg.c (create_bb): Likewise.

	* toplev.c (alloc_for_identifier_to_locale): Likewise.
	(general_init): Likewise.

	* stringpool.c (stringpool_ggc_alloc): Likewise.
	(gt_pch_save_stringpool): Likewise.

	* sese.c (if_region_set_false_region): Likewise.

	* passes.c (do_per_function_toporder): Likewise.

	* optabs.c (set_optab_libfunc): Likewise.
	(set_conv_libfunc): Likewise.

	* lto-symtab.c (lto_symtab_register_decl): Likewise.

	* lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
	(input_eh_region): Likewise.
	(input_eh_lp): Likewise.
	(make_new_block): Likewise.
	(unpack_ts_real_cst_value_fields): Likewise.

	* lto-section-in.c (lto_new_in_decl_state): Likewise.

	* lto-cgraph.c (input_node_opt_summary): Likewise.

	* loop-init.c (loop_optimizer_init): Likewise.

	* lambda.h (lambda_vector_new): Likewise.

	* lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.

	* ira.c (update_equiv_regs): Likewise.

	* ipa.c (cgraph_node_set_new): Likewise.
	(cgraph_node_set_add): Likewise.
	(varpool_node_set_new): Likewise.
	(varpool_node_set_add): Likewise.

	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
	(duplicate_ipa_jump_func_array): Likewise.
	(ipa_read_node_info): Likewise.

	* ipa-cp.c (ipcp_create_replace_map): Likewise.

	* integrate.c (get_hard_reg_initial_val): Likewise.

	* gimple.c (gimple_alloc_stat): Likewise.
	(gimple_build_omp_for): Likewise.
	(gimple_seq_alloc): Likewise.
	(gimple_copy): Likewise.

	* gimple-iterator.c (gsi_insert_before_without_update): Likewise.
	(gsi_insert_after_without_update): Likewise.

	* function.c (add_frame_space): Likewise.
	(insert_temp_slot_address): Likewise.
	(assign_stack_temp_for_type): Likewise.
	(allocate_struct_function): Likewise.
	(types_used_by_var_decl_insert): Likewise.

	* except.c (init_eh_for_function): Likewise.
	(gen_eh_region): Likewise.
	(gen_eh_region_catch): Likewise.
	(gen_eh_landing_pad): Likewise.
	(add_call_site): Likewise.

	* emit-rtl.c (get_mem_attrs): Likewise.
	(get_reg_attrs): Likewise.
	(start_sequence): Likewise.
	(init_emit): Likewise.

	* dwarf2out.c (new_cfi): Likewise.
	(queue_reg_save): Likewise.
	(dwarf2out_frame_init): Likewise.
	(new_loc_descr): Likewise.
	(find_AT_string): Likewise.
	(new_die): Likewise.
	(add_var_loc_to_decl): Likewise.
	(clone_die): Likewise.
	(clone_as_declaration): Likewise.
	(break_out_comdat_types): Likewise.
	(new_loc_list): Likewise.
	(loc_descriptor): Likewise.
	(add_loc_descr_to_each): Likewise.
	(add_const_value_attribute): Likewise.
	(tree_add_const_value_attribute): Likewise.
	(add_comp_dir_attribute): Likewise.
	(add_name_and_src_coords_attributes): Likewise.
	(lookup_filename): Likewise.
	(store_vcall_insn): Likewise.
	(dwarf2out_init): Likewise.

	* dbxout.c (dbxout_init): Likewise.

	* config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.

	* config/sparc/sparc.c (sparc_init_machine_status): Likewise.

	* config/score/score7.c (score7_output_external): Likewise.

	* config/score/score3.c (score3_output_external): Likewise.

	* config/s390/s390.c (s390_init_machine_status): Likewise.

	* config/rs6000/rs6000.c (builtin_function_type): Likewise.
	(rs6000_init_machine_status): Likewise.
	(output_toc): Likewise.

	* config/pa/pa.c (pa_init_machine_status): Likewise.
	(get_deferred_plabel): Likewise.

	* config/moxie/moxie.c (moxie_init_machine_status): Likewise.

	* config/mmix/mmix.c (mmix_init_machine_status): Likewise.

	* config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.

	* config/mep/mep.c (mep_init_machine_status): Likewise.
	(mep_note_pragma_flag): Likewise.

	* config/m32c/m32c.c (m32c_init_machine_status): Likewise.

	* config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.

	* config/ia64/ia64.c (ia64_init_machine_status): Likewise.

	* config/i386/winnt.c (i386_pe_record_external_function): Likewise.
	(i386_pe_maybe_record_exported_symbol): Likewise.

	* config/i386/i386.c (get_dllimport_decl): Likewise.
	(ix86_init_machine_status): Likewise.
	(assign_386_stack_local): Likewise.

	* config/frv/frv.c (frv_init_machine_status): Likewise.

	* config/darwin.c (machopic_indirection_name): Likewise.

	* config/cris/cris.c (cris_init_machine_status): Likewise.

	* config/bfin/bfin.c (bfin_init_machine_status): Likewise.

	* config/avr/avr.c (avr_init_machine_status): Likewise.

	* config/arm/arm.c (arm_init_machine_status): Likewise.

	* config/alpha/alpha.c (alpha_init_machine_status): Likewise.
	(alpha_need_linkage): Likewise.
	(alpha_use_linkage): Likewise.

	* cgraph.c (cgraph_allocate_node): Likewise.
	(cgraph_create_edge_1): Likewise.
	(cgraph_create_indirect_edge): Likewise.
	(cgraph_add_asm_node): Likewise.

	* cfgrtl.c (init_rtl_bb_info): Likewise.

	* cfgloop.c (alloc_loop): Likewise.
	(rescan_loop_exit): Likewise.

	* cfg.c (init_flow): Likewise.
	(alloc_block): Likewise.
	(unchecked_make_edge): Likewise.

	* c-parser.c (c_parse_init): Likewise.
	(c_parse_file): Likewise.

	* c-decl.c (bind): Likewise.
	(record_inline_static): Likewise.
	(push_scope): Likewise.
	(make_label): Likewise.
	(lookup_label_for_goto): Likewise.
	(finish_struct): Likewise.
	(finish_enum): Likewise.
	(c_push_function_context): Likewise.

	* bitmap.c (bitmap_element_allocate): Likewise.
	(bitmap_gc_alloc_stat): Likewise.

	* alias.c (record_alias_subset): Likewise.
	(init_alias_analysis): Likewise.

2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>

	* fold-const.c (fold_comparison): Remove redundant parenthesis.
	* tree-inline.c (expand_call_inline): Pass translated return value of
	cgraph_inline_failed_string to diagnostic function.

2010-06-08  Andrew Pinski  <pinskia@gmail.com>
	    Shujing Zhao  <pearly.zhao@oracle.com>

	PR c/37724
	* c-typeck.c (convert_for_assignment): Call pedwarn_init if the
	implicit bad conversions is initialization.
	(error_init): Use gmsgid instead of msgid for argument name and change
	the call for error.
	(pedwarn_init): Use gmsgid instead of msgid for argument name and
	change the call for pedwarn.
	(warning_init): Use gmsgid instead of msgid for argument name and
	change the call for warning.

2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>

	* config/mips/mips-protos.h (mips_print_operand): Delete.
	(mips_print_operand_address): Delete.
	* config/mips/mips.h (mips_print_operand_punct): Delete.
	(PRINT_OPERAND): Delete.
	(PRINT_OPERAND_PUNCT_VALID_P): Delete.
	(PRINT_OPERAND_ADDRESS): Delete.
	* config/mips/mips.c (mips_print_operand_punct): Make static.
	(mips_print_operand_address): Make static.
	(mips_print_operand): Make static.  Call
	mips_print_operand_punct_valid_p.
	(mips_print_operand_punct_valid_p): New function.
	(TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
	(TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.

2010-06-07  Jan Hubicka  <jh@suse.cz>

	PR middle-end/44454
	(df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
	are allocated.

2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_build_builtin_va_list): Set tree type
	name of RECORD.

2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/sourcebuild.texi (Effective-Target Keywords, Other
	attributes): Document gas.

2010-06-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*add<mode>_1): Remove alternative 2.
	<TYPE_LEA>: Split instruction.
	<default>: Remove alternative 2 handling.
	(*addsi_1_zext) <TYPE_LEA>: Split instruction.
	(add lea splitter): Generate SImode lea for mode sizes <= SImode.
	(add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.

	(*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
	(ashift_zext lea splitter): Use DImode for multiplication.

	* config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
	to generate addition.

2010-06-07  Joseph Myers  <joseph@codesourcery.com>

	* common.opt (fira-verbose): Use Var.
	(fpcc-struct-return): Use Init instead of VarExists.
	* defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
	toplev.c.
	* flags.h (flag_signed_char, flag_short_enums,
	flag_pcc_struct_return, flag_ira_verbose,
	flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
	* toplev.c (flag_detailed_statistics, flag_signed_char,
	flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
	(DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
	* toplev.h (flag_crossjumping, flag_if_conversion,
	flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
	flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
	flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
	flag_cprop_registers, time_report, flag_ira_loop_pressure,
	flag_ira_coalesce, flag_ira_move_spills,
	flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.

2010-06-07  Jan Hubicka  <jh@suse.cz>

	* df-core.c (df_analyze_problem): Do verification after allocation.

	* df-problems.c (df_lr_problem_data): Add lr_bitmaps.
	(df_lr_alloc): Initialize problem data; move bitmaps to
	lr_bitmaps obstack.
	(df_lr_finalize): Free problem data; do not bother to free bitmaps.
	(df_lr_verify_solution_start): Do not initialize problem data;
	allocate bitmaps in lr_bitmaps.
	(df_lr_verify_solution_end): Do not free problem data.

2010-06-07  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
	if caller is noreturn.
	* ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
	* ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
	* ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
	* ipa-pure-const.c (check_decl): Add IPA parameter.
	(state_from_flags): New function.
	(better_state, worse_state): New functions.
	(check_call): When in IPA mode, do not care about callees.
	(check_load, check_store): Update.
	(check_ipa_load, check_ipa_store): New.
	(check_stmt): When in IPA mode, use IPA checkers.
	(analyze_function): Use state_from_flags.
	(propagate): Check indirect edges and references.

2010-06-07  Kazu Hirata  <kazu@codesourcery.com>

	PR rtl-optimization/44404
	* auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
	of count_occurrences to see if it's safe to modify mem_insn.

2010-06-07  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (gimplify_cleanup_point_expr): For empty body
	and EH-only cleanup drop the cleanup instead of inserting it
	unconditionally.

2010-06-07  Ira Rosen  <irar@il.ibm.com>

	* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
	documentation.
	* targhooks.c (default_builtin_vectorization_cost): New function.
	* targhooks.h (default_builtin_vectorization_cost): Declare.
	* target.h (enum vect_cost_for_stmt): Define.
	(builtin_vectorization_cost): Change argument and comment.
	* tree-vectorizer.h: Remove cost model macros.
	* tree-vect-loop.c: Include target.h.
	(vect_get_cost): New function.
	(vect_estimate_min_profitable_iters): Replace cost model macros with
	calls to vect_get_cost.
	(vect_model_reduction_cost, vect_model_induction_cost): Likewise.
	* target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
	default implementation.
	* tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
	calls to target hook builtin_vectorization_cost.
	(vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
	Likewise.
	* Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
	* config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
	implementation to return costs.
	* config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
	* config/spu/spu.h: Remove vectorizer cost model macros.
	* config/i386/i386.h: Likewise.
	* tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
	a call to target hook builtin_vectorization_cost.

2010-06-06  Sriraman Tallam  <tmsriram@google.com>

	PR target/44319
	* config/i386/i386.c (override_options): Turn zee pass on for level 2
	and above and defer till target is known.
	(optimization_options): Turn on zee pass if TARGET_64BIT is set and
	turn off otherwise.

2010-05-25  Jan Hubicka  <jh@suse.cz>

	* df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
	(df_compact_blocks): Likewise.
	* df.h (struct df): Turn hardware_regs_used,
	regular_block_artificial_uses, eh_block_artificial_uses,
	insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
	bitmap_head.
	* df-problems.c (df_lr_local_compute, df_lr_confluence_0,
	df_byte_lr_alloc, df_simulate_fixup_sets): Update.
	* df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
	df_scan_blocks, df_insn_delete, df_insn_rescan,
	df_insn_rescan_debug_internal, df_insn_rescan_all,
	df_process_deferred_rescans, df_process_deferred_rescans,
	df_notes_rescan, df_get_call_refs, df_get_call_refs,
	regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
	df_record_entry_block_defs, df_record_exit_block_uses,
	df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
	df_scan_verify): Update.

2010-05-25  Dodji Seketeli  <dodji@redhat.com>

	PR c++/44188
	* c-common.c (is_typedef_decl): Move this definition ...
	* tree.c (is_typedef_decl): ... here.
	(typdef_variant_p): Move definition here from cp/tree.c.
	* c-common.h (is_typedef_decl): Move this declaration ...
	* tree.h (is_typedef_decl): ... here.
	(typedef_variant_p): Move declaration here from cp/cp-tree.h
	* dwarf2out.c (is_naming_typedef_decl): New function.
	(gen_tagged_type_die): Split out of ...
	(gen_type_die_with_usage): ... this function. When an anonymous
	tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
	is emitted for the typedef.
	(gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
	anonymous tagged types.

2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/20000
	* c-decl.c (grokdeclarator): Delete warning.

2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
	newly built CALL_EXPR.
	* tree-profile.c (tree_profiling): Don't profile functions produced
	for built-in stuff.

2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>

	PR bootstrap/44427
	PR bootstrap/44428
	* genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
	endianness-independent.

2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>

	* c-common.c: Move to c-family/.
	* c-common.def: Likewise.
	* c-common.h: Likewise.
	* c-cppbuiltin.c: Likewise.
	* c-dump.c: Likewise.
	* c-format.c: Likewise.
	* c-format.h : Likewise.
	* c-gimplify.c: Likewise.
	* c-lex.c: Likewise.
	* c-omp.c: Likewise.
	* c.opt: Likewise.
	* c-opts.c: Likewise.
	* c-pch.c: Likewise.
	* c-ppoutput.c: Likewise.
	* c-pragma.c: Likewise.
	* c-pragma.h: Likewise.
	* c-pretty-print.c: Likewise.
	* c-pretty-print.h: Likewise.
	* c-semantics.c: Likewise.
	* stub-objc.c: Likewise.

	* gengtype.c (get_file_langdir): Special-case files in c-family/.
	(get_output_file_with_visibility): Fix name for c-common.h.
	* c-config-lang.in: Update paths in gtfiles for files in c-family/.

	* c-tree.h: Update include path for moved files.
	* c-lang.c: Likewise.
	* c-lang.h: Likewise.
	* c-parser.c: Likewise.
	* c-convert.c: Likewise.
	* c-decl.c: Likewise.
	* c-objc-common.c: Likewise.
	* configure.ac: Make sure c-family/ exists in the build directory.
	* configure: Regenerate.
	* Makefile.in: Update paths for moved files.  Regroup files per
	location and update dependencies.  Move generated_files down after
	ALL_GTFILES_H.

	* config/spu/spu-c.c: Update paths for moved files.
	* config/mep/mep-pragma.c: Likewise.
	* config/darwin-c.c: Likewise.
	* config/i386/msformat-c.c: Likewise.
	* config/i386/i386-c.c: Likewise.
	* config/avr/avr-c.c: Likewise.
	* config/sol2-c.c: Likewise.
	* config/ia64/ia64-c.c: Likewise.
	* config/rs6000/rs6000-c.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/arm-c.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/v850/v850-c.c: Likewise.

	* config/t-darwin: Fix dependencies for moved files.
	* config/t-sol2: Fix dependencies for moved files.
	* config/mep/t-mep: Fix dependencies for moved files.
	* config/ia64/t-ia64: Fix dependencies for moved files.
	* config/rs6000/t-rs6000: Fix dependencies for moved files.
	* config/v850/t-v850: Fix dependencies for moved files.
	* config/v850/t-v850e: Fix dependencies for moved files.

	* config/m32c/m32c-pragma.c

	* po/exgettext: Look in c-family/ also.

2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-dce.c (mark_last_stmt_necessary): New function.
	(mark_control_dependent_edges_necessary): Call it instead of marking
	the last statement manually.
	(propagate_necessity): Likewise.

2010-06-05  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (compute_dominance_frontiers): Updated.
	(compute_idf): Likewise.

	* tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
	for dominance frontiers.
	(rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
	(insert_updated_phi_nodes_for): Likewise.
	(update_ssa): Likewise.
	* cfganal.c (compute_dominance_frontiers_1): Likewise.
	(compute_dominance_frontiers): Likewise.
	(compute_idf): Likewise.
	* df-problems.c (df_md_local_compute): Likewise.

2010-06-05  Anatoly Sokolov  <aesok@post.ru>

	* target.h (struct gcc_target): Add memory_move_cost field.
	* target-def.h (TARGET_MEMORY_MOVE_COST): New.
	(TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
	* targhooks.c (default_memory_move_cost): New function.
	* targhooks.h (default_memory_move_cost): Declare function.
	* reload.h (memory_move_cost): Declare.
	(memory_move_secondary_cost): Change type of 'in' argument to bool.
	* reginfo.c (memory_move_cost): New function.
	(memory_move_secondary_cost): Change type of 'in' argument to bool.
	* ira.h (ira_memory_move_cost): Update comment.
	* ira.c (ira_memory_move_cost): Update comment.
	(setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
	with memory_move_cost.
	* postreload.c (reload_cse_simplify_set): (Ditto.).
	* reload1.c (choose_reload_regs): (Ditto.).
	* doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
	(MEMORY_MOVE_COST):  Revise documentation.

	* config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
	* config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
	* config/i386/i386.h (ix86_memory_move_cost): Make static. Change
	type of 'in' argument to bool.
	(TARGET_MEMORY_MOVE_COST): Define.

2010-06-05  Jan Hubicka  <jh@suse.cz>

	* ipa-pure-const.c (propagate): Fix typo in handling of functions
	that cannot return.  Be more careful when merging the results with
	previously known ones.

2010-06-05  Matthias Klose  <doko@ubuntu.com>

	* gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
	function to add the -iplugindir option.
	(find_plugindir_spec_function): Add new declaration and function.
	(static_spec_func): Use it for "find-plugindir".

2010-06-05  Jakub Jelinek  <jakub@redhat.com>

	PR c++/44361
	* c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
	* c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
	statement expression.

2010-06-05  Jan Hubicka  <jh@suse.cz>

	* df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
	(df_rd_problem_data): Convert sparse_invalidated_by_call,
	dense_invalidated_by_call to bitmap head.
	(df_rd_alloc, df_rd_bb_local_compute_process_def,
	df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
	df_rd_start_dump, df_lr_verify_transfer_functions,
	df_live_verify_transfer_functions, df_chain_create_bb,
	df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
	df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
	df_simulate_one_insn_forwards, df_md_alloc,
	df_md_bb_local_compute_process_def,
	df_md_bb_local_compute_process_def, df_md_local_compute,
	df_md_transfer_function df_md_free): Update.

2010-06-05  Joseph Myers  <joseph@codesourcery.com>

	PR c/44322
	* c-typeck.c (build_unary_op): Merge qualifiers into pointer
	target type for ADDR_EXPR; require no changes to qualifiers except
	for function types.
	* c-tree.h (c_build_type_variant): Remove.

2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>

	* genautomata.c (get_excl_set): Do work per element, not per char.
	(check_presence_pattern_sets): Similar.
	(check_absence_pattern_sets): Similar.

2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>

	* genautomata.c (curr_state_pass_num): Delete.
	(min_issue_delay_pass_states): Delete.
	(min_issue_delay): Delete.
	(initiate_min_issue_delay_pass_states): Delete.
	(output_min_issue_delay_table): Compute min_issue_delay_vect
	using a breadth-first search variant.
	(output_tables): Don't call initiate_min_issue_delay_pass_states.

2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR boostrap/44421
	* df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
	(df_byte_lr_bb_local_compute): Likewise.

2010-06-03  Jason Merrill  <jason@redhat.com>

	Implement noexcept operator (5.3.7)
	* c-common.c (c_common_reswords): Add noexcept.
	* c-common.h (enum rid): Add RID_NOEXCEPT.

2010-06-04  Joseph Myers  <joseph@codesourcery.com>

	* config/darwin-driver.c (darwin_default_min_version): Use
	GCC-specific formats in diagnostics.
	* cppspec.c (lang_specific_driver): Use GCC-specific formats in
	diagnostics.
	* gcc.c (translate_options, read_specs, add_sysrooted_prefix,
	execute, process_command, end_going_arg, do_self_spec, do_spec_1,
	eval_spec_function, handle_braces, process_brace_body, main,
	perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
	getenv_spec_function, compare_version_strings,
	version_compare_spec_function): Use GCC-specific formats in
	diagnostics.

2010-06-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
	that operand 0 and operand 1 are equal.
	(*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
	(*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
	and operand 1 are equal.
	<default>: Ditto.  Remove ??? comment.
	(*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
	and operand 1 are equal.
	<default>: Ditto.  Remove ??? comment.
	(*adddi_4) <default>: Remove assert that operand 0 and operand 1
	are equal.
	(*add<mode>_4) <default>: Ditto.
	(*add<mode>_5) <TYPE_INCDEC, default>: Ditto.

2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>

	* config/i386/i386-protos.h (ix86_print_operand): Declare.
	* config/i386/i386.c (ix86_print_operand): Make non-static.
	* config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
	* output.h (output_operand): Declare.
	* final.c (output_operand): Make non-static.

2010-06-04  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/44013
	* sched-deps.c (add_dependence_list_and_free): Don't free lists
	when processing debug insns.

	PR debug/41371
	* var-tracking.c (find_loc_in_1pdv): Mark initial value before
	recursing.  Check that recursion is bounded.  Rename inner var
	to avoid hiding incoming argument.

2010-06-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
	operands[2] == 255.
	(*addqi_3): Ditto.
	(*addqi_4): Ditto.
	(*addqi_5): Ditto.
	(*addqi_ext_1_rex64): Ditto.
	(*addqi_ext_1): Ditto.

	(*addqi_4): Check for incdec_operand in QImode.

	(*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
	using SWI mode iterator.
	(*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
	(*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
	mode iterator.
	(*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
	using SWI mode iterator.

2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/25880
	* c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
	* c-format.c (gcc_diag_flag_specs): Add hash.
	(gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
	(gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
	* c-pretty-print.c (pp_c_cv_qualifier): Rename as
	pp_c_cv_qualifiers. Handle qualifiers spelling here.
	(pp_c_type_qualifier_list): Call the function above.
	* c-pretty-print.h (pp_c_cv_qualifiers): Declare.
	* c-typeck.c (handle_warn_cast_qual): Print qualifiers.
	(WARN_FOR_QUALIFIERS): New macro.
	(convert_for_assignment): Use it.

2010-06-04  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.

2010-06-04  Jan Hubicka  <jh@suse.cz>

	* df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
	df_byte_lr_bb_info): Embedd bitmap_head into the structure.
	(DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
	DF_BYTE_LR_OUT): Update for embedded bitmaps.
	* fwprop.c (single_def_use_enter_block): Likewise.
	* ddg.c (create_ddg_dep_from_intra_loop_link,
	add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
	* loop-iv.c (latch_dominating_def): Likewise.
	* df-problems.c (df_rd_free_bb_info, df_rd_alloc,
	df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
	df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
	df_rd_transfer_function, df_rd_top_dump,
	df_rd_bottom_dump): Update.
	(df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
	df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
	df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
	df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
	df_lr_verify_solution_start, df_lr_verify_solution_end,
	df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
	df_live_free_bb_info, df_live_alloc, df_live_reset,
	df_live_bb_local_compute, df_live_init, df_live_transfer_function,
	df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
	df_live_verify_solution_start, df_live_verify_solution_end,
	df_live_verify_transfer_functions, df_chain_create_bb,
	df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
	df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
	df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
	df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
	df_byte_lr_confluence_0, df_byte_lr_confluence_n,
	df_byte_lr_transfer_function, df_byte_lr_top_dump,
	df_byte_lr_bottom_dump, df_create_unused_note,
	df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
	df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
	df_md_transfer_function, df_md_init, df_md_confluence_0,
	df_md_confluence_n,
	df_md_top_dump, df_md_bottom_dump): Update.
	(struct df_lr_problem_data): Embedd bitmap headers.

2010-06-04  Jan Hubicka  <jh@suse.cz>

	* dce.c (dce_process_block): Do not re-scan already marked
	instructions.

2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/39871
	PR rtl-optimization/40615
	PR rtl-optimization/42500
	PR rtl-optimization/42502
	* ira.c (init_reg_equiv_memory_loc: New function.
	(ira): Call it twice.
	* reload.h (calculate_elim_costs_all_insns): Declare.
	* ira-costs.c: Include "reload.h".
	(regno_equiv_gains): New static variable.
	(init_costs): Allocate it.
	(finish_costs): Free it.
	(ira_costs): Call calculate_elim_costs_all_insns.
	(find_costs_and_classes): Take estimated elimination costs
	into account.
	(ira_adjust_equiv_reg_cost): New function.
	* ira.h (ira_adjust_equiv_reg_cost): Declare it.
	* reload1.c (init_eliminable_invariants, free_reg_equiv,
	elimination_costs_in_insn, note_reg_elim_costly): New static functions.
	(elim_bb): New static variable.
	(reload): Move code out of here into init_eliminable_invariants and
	free_reg_equiv.  Call them.
	(calculate_elim_costs_all_insns): New function.
	(eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
	all callers changed.  If FOR_COSTS is true, don't call alter_reg,
	but call note_reg_elim_costly if we turned a valid memory address
	into an invalid one.
	* Makefile.in (ira-costs.o): Depend on reload.h.

2010-06-04  Julian Brown  <julian@codesourcery.com>

	* config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
	for pool ranges.

2010-06-04  Richard Guenther  <rguenther@suse.de>

	PR lto/41584
	* cgraph.h (struct varpool_node): Add lto_file_data field.
	* lto-cgraph.c (input_varpool_node): Initialize it.

2010-06-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
	* config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
	predicate in "type" attribute calculation.
	(*addsi_1_zext): Ditto.
	(*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
	(*addsi_2_zext): Ditto.
	(*add<mode>_3): Ditto.
	(*addsi_3_zext): Ditto.
	(*add<mode>_5): Ditto.

2010-06-03  Jan Hubicka  <jh@suse.cz>

	* tree-into-ssa.c (mark_block_for_update): Avoid redundant call
	of bitmap_bit_p.
	* cfganal.c (compute_dominance_frontiers_1): Likewise.

2010-06-03  Jan Hubicka  <jh@suse.cz>

	* df-problems.c (df_create_unused_note, df_note_bb_compute):
	micro-optimize the checks when to add new note.

2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>

	* final.c (output_asm_insn): Call
	targetm.asm_out.print_operand_punct_valid_p.  Update comments.
	(output_operand): Call targetm.asm_out.print_operand.  Update comments.
	(output_address): Call targetm.asm_out.print_operand_address.
	Update comments.
	* target.h (struct gcc_target): Add print_operand,
	print_operand_address, and print_operand_punct_valid_p fields.
	* targhooks.h (default_print_operand): Declare.
	(default_print_operand_address): Declare.
	(default_print_operand_punct_valid_p): Declare.
	* targhooks.c (default_print_operand): Define.
	(default_print_operand_address): Define.
	(default_print_operand_punct_valid_p): Define.
	* target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
	(TARGET_PRINT_OPERAND_ADDRESS): Likewise.
	(TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
	(TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
	TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
	* vmsdbgout.c (addr_const_to_string): Update comment.
	* config/i386/i386.c (print_operand): Rename to...
	(ix86_print_operand): ...this.  Make static.
	(print_operand_address): Rename to...
	(ix86_print_operand_address): ...this.  Make static.  Call
	ix86_print_operand instead of PRINT_OPERAND.
	(ix86_print_operand_punct_valid_p): New function.
	(TARGET_PRINT_OPERAND): Define.
	(TARGET_PRINT_OPERAND_ADDRESS): Define.
	(TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
	* config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
	(PRINT_OPERAND_PUNCT_VALID_P): Delete.
	(PRINT_OPERAND): Delete.
	(PRINT_OPERAND_ADDRESS): Delete.
	* config/i386/i386-protos.h (print_operand): Delete prototype.
	(print_operand_address): Delete prototype.

2010-06-03  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44403
	* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
	Preserve pointer qualifiers.
	(vect_create_data_ref_ptr): Likewise.

2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR c++/44294
	* defaults.h (MAX_FIXED_MODE_SIZE): New.

	* stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.

2010-06-03  Jakub Jelinek  <jakub@redhat.com>

	PR debug/44375
	* tree-cfg.c (gimple_can_merge_blocks_p): For -O0
	return false if merging the bbs would lead to goto_locus
	location being lost from the IL.

2010-06-03  Jan Hubicka  <jh@suse.cz>
	    Jakub Jelinek  <jakub@redhat.com>

	* var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
	set->regs[i] is NULL or has just one entry.

2010-06-03  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (lto_varpool_encoder_size): Remove.
	* lto-streamer.h (lto_varpool_encoder_size): New inline function.

2010-06-03  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (FL_TUNE): Define.
	(arm_default_cpu, arm_cpu_select): Remove.
	(all_cores): Populate core field.
	(arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
	(arm_find_cpu): New function.
	(arm_handle_option): Lookup cpu/architecture names.
	(arm_override_options): Cleanup mcpu/march/mtune handling.
	(arm_file_start): Ditto.

2010-06-03  Alan Modra  <amodra@gmail.com>

	PR target/44169
	* config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
	rtx to gen_load_toc_v4_PIC_1b.  Tidy.
	(rs6000_emit_load_toc_table): Likewise.

2010-06-02  Jan Hubicka  <jh@suse.cz>

	* passes.c (init_optimization_passes): Put ipa reference
	after ipa pure-const.

2010-06-02  Jan Hubicka  <jh@suse.cz>

	* ipa-reference.c (ipa_reference_local_vars_info_d): Remove
	calls_read_all and calls_write_all.
	(get_reference_optimization_summary): Fix formatting.
	(is_proper_for_analysis): Check that decl is not readonly.
	(propagate_bits): Check CONST/PURE/noreturn flags.
	(ipa_init): Move all_module_statics to optimization_summary_obstack.
	(analyze_function): Ignore indirect edges.
	(copy_global_bitmap): For all module statics, do nothing.
	(generate_summary): Do not print calls_read_all/calls_write_all.
	(read_write_all_from_decl): Take node as argument; check
	cgraph_node_cannot_return.
	(propagate): Reorganize read_all/write_all computation;
	check indirect edges; check ecf flags; use all_module_statics
	in the results; do not free all_module_statics.
	(stream_out_bitmap): Handle all_module_statics.
	(ipa_reference_write_optimization_summary): Likewise; use
	varpool/cgraph encoders to get boundaries.
	(ipa_reference_read_optimization_summary): Read in all_module_statics;
	use it when possible.

2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/44218
	* doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
	-mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.

	* doc/extend.texi (powerpc builtins): Document vec_recip,
	vec_rsqrt, vec_rsqrte altivec/vsx builtins.

	* config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
	(rs6000_emit_swrsqrt): Ditto.
	(rs6000_emit_swdivsf): Delete.
	(rs6000_emit_swdivdf): Ditto.
	(rs6000_emit_swrsqrtsf): Ditto.

	* config/rs6000/rs6000.c (rs6000_recip_bits): New global to
	describe the reciprocal estimate support for each type.
	(recip_options): Map -mrecip=<opt> into option bits.
	(gen_2arg_fn_t): New typedef for binary rtx gen function.
	(rs6000_debug_reg_global): If -mdebug=reg, print the state of the
	reciprocal estimate instructions.
	(rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
	debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
	Set up rs6000_recip_bits based on the -mrecip* options.  Print the
	cost information if -mdebug=cost or -mdebug=reg.
	(rs6000_override_options): Set -mrecip-precision for power6, and
	power7 machines.  If -mvsx or -mdfp, enable various options that
	came in previous instruction set ISAs, unless the option was
	explicitly disabled by the command line option.  Parse
	-mrecip=<opt> options.
	(rs6000_builtin_vectorized_function): Add support for vectorizing
	the reciprocal estimate builtins and expansions.
	(rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
	(bdesc_2arg): Add reciprocal estimate builtins.
	(bdesc_1arg): Add reciprocal square root estimate builtins.
	(rs6000_expand_builtin): Rewrite to use a switch statement,
	instead of multiple if/then/elses.  Add reciprocal estimate builtins.
	(rs6000_init_builtins): Create declarations for reciprocal
	estimate builtins.
	(rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
	sized, prefer traditional floating point registers, if integer
	vector types, prefer altivec registers.  Don't actually look at
	the memory address any more.
	(rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
	builtins.
	(rs6000_load_constant_and_splat): New helper function to load up
	the constant for reciprocal estimate instructions.
	(rs6000_emit_madd): New helper function for generating
	multiply/add type instructions, based on the current switches.
	(rs6000_emit_msub): Ditto.
	(rs6000_emit_mnsub): Ditto.
	(rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
	replace a divide with a reciprocal estimate and fixup, adding
	support for machines with high precision and vectors.
	(rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
	low precision machines.
	(rs6000_emit_swdiv): New common function to be called to replace a
	division with reciprocal estimate and fixup.
	(rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
	for double and vector types.  Add support for high precision machines.

	* config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
	the reciprocal estimate instructions can be generated.
	(TARGET_FRE): Ditto.
	(TARGET_FRSQRTES): Ditto.
	(TARGET_FRSQRTE): Ditto.
	(RS6000_RECIP_*): New macros for reciprocal estimate support.

	* config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
	square root estimate on vectors.
	(re<mode>2): New insn for reciprocal division estimate on vectors.

	* config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
	New builtin.
	(ALTIVEC_BUILTIN_VRECIPFP): Ditto.
	(ALTIVEC_BUITLIN_VEC_RE): Ditto.
	(ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
	(VSX_BUILTIN_RSQRT_V4SF): Ditto.
	(VSX_BUITLIN_RSQRT_V2DF): Ditto.
	(RS6000_BUILTIN_RSQRT): Ditto.
	(ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
	floating point builtin.

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
	macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
	__RECIP_PRECISION__ based on the command line switches.
	(altivec_overloaded_builtins): Add reciprocal estimate builtins.

	* config/rs6000/rs6000.opt (-mrecip): Document add support for
	replacing division instructions with reciprocal estimate and fixup.
	(-mrecip=<opt>): New option.
	(-mrecip-precision): Ditto.

	* config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
	(vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
	(vsx_copysignsf3): If -mvsx, use double precision cpsign on single
	precision scalar.

	* config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
	(UNSPEC_VREFP): Ditto.
	(altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
	conterparts with regard to support of -mno-fused-madd and -ffast-math.
	(altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
	reciprocal estimate instructions to be generated.
	(altivec_vrefp): Ditto.

	* config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
	estimate support.
	(rreg): New mode attribute for reciprocal estimate support.
	(recip<mode>3): New insn for division using reciprocal estimate
	and fixup builtins.
	(divide define_split): New define_split to convert floating point
	division to use reciprocal estimate if the user used the
	appropriate options and the split is run when we can add new
	pseudo registers for the fixup.
	(rsqrt<mode>2): New insn for reciprocal square root support.
	(recipsf3): Move into recip<mode>3.
	(recipdf3): Ditto.
	(fres): Use TARGET_FRES.
	(rsqrtsf2): Move into rsqrt<mode>2.
	(rsqrtsf_internal1): Use TARGET_FRSQRTSES.
	(copysignsf3): Add support for VSX.
	(fred): Use TARGET_FRE.
	(fred_fpr): Ditto.
	(rsqrtdf_internal1): New function for frsqrte instruciton.

	* config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
	(vec_rsqrt): Ditto.

2010-06-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44291
	* optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
	(set_user_assembler_libfunc): Likewise.

2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>

	* mkconfig.sh: Include insn-flags.h and insn-constants.h before
	defaults.h.
	* except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
	to defaults.h
	* expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
	DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
	FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
	STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
	STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
	STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
	STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
	STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
	* defaults.h: Updated for above mentioned changes.

2010-06-02  Kai Tietz  <kai.tietz@onevision.com>

	* c-common.c: Remove header include of tm_p.h.
	* Makefile.in (c-common.o): Remove TM_P_H dependency.

2010-06-02  Jakub Jelinek  <jakub@redhat.com>

	* tree.h (struct tree_decl_map): New type.
	(tree_decl_map_eq, tree_decl_map_marked_p): Define.
	(tree_decl_map_hash): New prototype.
	(debug_expr_for_decl, value_expr_for_decl): Change into
	tree_decl_map hashtab from tree_map.
	(init_ttree): Adjust initialization.
	(tree_decl_map_hash): New function.
	(decl_debug_expr_lookup, decl_debug_expr_insert,
	decl_value_expr_lookup, decl_value_expr_insert): Adjust.

2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
	linker emulations.
	* configure: Regenerate.
	* config.in: Regenerate.

	* config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
	(X86_64_EMULATION): Define.
	(TARGET_LD_EMULATION): Use them.

	* config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
	(SPARC64_EMULATION): Define.
	(LINK_ARCH_SPEC): Use them.

2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gcc_type_for_interval): Use
	smallest_mode_for_size for computing the precision types of new
	graphite IVs.  Do not call lang_hooks.types.type_for_size.

2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
	information.
	(remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.

2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/44363
	* tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
	return false instead.

2010-06-02  Jan Hubicka  <jh@suse.cz>

	PR middle-end/44295
	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
	create new cgraph node to check callee.

2010-06-02  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-in.c (input_gimple_stmt): Fix typo.

2010-06-02  Richard Guenther  <rguenther@suse.de>

	* lto-wrapper.c (lto_wrapper_exit): Rename to ...
	(lto_wrapper_cleanup): ... this.  Do not exit.
	(fatal): Adjust.  Exit here.
	(fatal_perror): Likewise.
	(fatal_signal): New function.
	(main): Set up signal handlers to cleanup temporary files.
	* Makefile.in (lto-wrapper.o): Adjust dependencies.

2010-06-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44377
	* tree-ssa-structalias.c (find_func_aliases): Fix typo.

2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/2097.md (z10_fhex): Remove insn reservation.
	* config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
	(*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
	*mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
	instruction.
	* config/s390/s390.c: Don't accept fp zeros as valid constants anymore.

2010-06-02  Jan Hubicka  <jh@suse.cz>

	* bitmap.c (bitmap_descriptor): Add search_iter.
	(bitmap_find_bit): Increment it.
	(print_statistics): Print it.

2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>

	* tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
	instead of gimple_build_call_vec.  Delete unnecessary local variable.

2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>

	* gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
	change from yesterday.

2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>

	* c-ada-spec.c: Clean up redundant includes.

2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>

	* gimplify.c: Do not include except.h and optabs.h.
	(gimplify_body): Do not initialize RTL profiling.
	* gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
	langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
	* gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
	output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
	langhooks.h.

	* tree-pretty-print.h: Include pretty-print.h.
	* gimple-pretty-print.h: Include pretty-print.h.

	* tree-pretty-print.c: Do not include diagnostic.h.
	* tree-vrp.c: Likewise.
	* tree-tailcall.c: Likewise
	* tree-scalar-evolution.c: Likewise
	* tree-ssa-dse.c: Likewise
	* tree-chrec.c: Likewise
	* tree-ssa-sccvn.c: Likewise
	* tree-ssa-copyrename.c: Likewise
	* tree-nomudflap.c: Likewise
	* tree-call-cdce.c: Likewise
	* tree-stdarg.c: Likewise
	* tree-ssa-math-opts.c: Likewise
	* tree-nrv.c: Likewise
	* tree-ssa-sink.c: Likewise
	* tree-browser.c: Likewise
	* tree-ssa-loop-ivcanon.c: Likewise
	* tree-ssa-loop.c: Likewise
	* tree-parloops.c: Likewise
	* tree-ssa-address.c: Likewise
	* tree-ssa-ifcombine.c: Likewise
	* tree-if-conv.c: Likewise
	* tree-data-ref.c: Likewise
	* tree-affine.c: Likewise
	* tree-ssa-phiopt.c: Likewise
	* tree-ssa-coalesce.c: Likewise
	* tree-ssa-pre.c: Likewise
	* tree-ssa-live.c: Likewise
	* tree-predcom.c: Likewise
	* tree-ssa-forwprop.c: Likewise
	* tree-ssa-dce.c: Likewise
	* tree-ssa-ter.c: Likewise
	* tree-ssa-loop-prefetch.c: Likewise
	* tree-optimize.c: Likewise
	* tree-ssa-phiprop.c: Likewise
	* tree-object-size.c: Likewise
	* tree-outof-ssa.c: Likewise
	* tree-ssa-structalias.c: Likewise
	* tree-switch-conversion.c: Likewise
	* tree-ssa-reassoc.c: Likewise
	* tree-ssa-operands.c: Likewise
	* tree-vectorizer.c: Likewise
	* tree-vect-data-refs.c: Likewise
	* tree-vect-generic.c: Likewise
	* tree-vect-stmts.c: Likewise
	* tree-vect-patterns.c: Likewise
	* tree-vect-slp.c: Likewise
	* tree-vect-loop.c: Likewise
	* tree-ssa-loop-ivopts.c: Likewise
	* tree-ssa-loop-im.c: Likewise
	* tree-ssa-loop-niter.c: Likewise
	* tree-ssa-loop-unswitch.c: Likewise
	* tree-ssa-loop-manip.c: Likewise
	* tree-ssa-loop-ch.c: Likewise
	* tree-dump.c: Likewise
	* tree-complex.c: Likewise

	* tree-into-ssa.c: Do not include diagnostic.h and expr.h.
	* tree-ssa-uninit.c: Likewise
	* tree-ssa-threadupdate.c: Likewise
	* tree-ssa-uncprop.c: Likewise
	* tree-ssa-ccp.c: Likewise
	* tree-ssa-dom.c: Likewise
	* tree-ssa-propagate.c: Likewise
	* tree-ssa-alias.c: Likewise
	* tree-dfa.c: Likewise
	* tree-cfgcleanup.c: Likewise
	* tree-sra.c: Likewise
	* tree-ssa-copy.c: Likewise
	* tree-ssa.c: Likewise
	* tree-profile.c: Likewise
	* tree-cfg.c: Likewise
	* tree-ssa-threadedge.c: Likewise
	* tree-vect-loop-manip.c: Likewise

	* tree-inline.c: Do not include diagnostic.h and expr.h.
	Include rtl.h.
	(copy_decl_for_dup_finish): Do not use NULL_RTX.

	* tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
	* tree-loop-distribution.c: Likewise.

2010-06-01  Jan Hubicka  <jh@suse.cz>

	* ipa-pure-const.c (local_pure_const): Do NORETURN discovery.

2010-06-01  Jan Hubicka  <jh@suse.cz>

	* tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
	remove return value.
	(split_bbs_on_noreturn_calls) .... here.
	* tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
	* tree-flow.h (fixup_noreturn_call): New.

2010-06-01  Jan Hubicka  <jh@suse.cz>

	* emit-rtl.c (remove_insn): Fix thinko in prevoius patch.

2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (build_nt_call_list): Delete.
	* tree.c (build_nt_call_list): Delete.

2010-06-01  Jan Hubicka  <jh@suse.cz>

	* fwprop.c: Make emit-rtl.h include last.
	* rtlanal.c: Include emit-rtl.h.
	* genautomata.c: Output emit-rtl include into insn-automata.c
	* df-scan.c: Include emit-rtl.h.
	* haifa-sched.c: Indlude emit-rtl.h.
	* mode-switching.c: Indlude emit-rtl.h.
	* graph.c: Indlude emit-rtl.h.
	* sel-sched.c: Include emit-rtl.h.
	* sel-sched-ir.c: Include emit-rtl.h.
	* ira-build.c: Include emit-rtl.h.
	* emit-rtl.c (first_insn, last_insn): Remove defines.
	(get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
	Move to emit-rtl.h.
	(set_new_first_and_last_insn, get_last_insn_anywhere,
	get_first_nonnote_insn, get_last_nonnote_insn, try_split,
	make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
	delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
	emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
	push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
	Use accessor functions.
	* emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
	 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
	set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
	mem_expr_equal_p): Move here from rtl.h.
	(get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
	Move here from emit-rtl.c; make inline.
	* cfglayout.h: Include emit-rtl.h.
	* rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
	 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
	set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
	mem_expr_equal_p, get_insns, set_first-insn,
	get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
	* reg-stack.c: Include emit-rtl.h.
	* dce.c: Likewise.

2010-06-01  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (tree_function_versioning): Update prototype.
	(cgraph_function_versioning): Update prototype.
	* cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
	bitmap.
	(cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
	(cgraph_materialize_clone, save_inline_function_body): Update use of
	tree_function_versioning.
	* tree-inline.c (copy_bb): Look for previous copied block to link
	after; fix debug output.
	(copy_cfg_body): Accept new_entry_block and bbs_to_copy.
	(copy_body): Likewise.
	(expand_call_inline): Update use of copy_body.
	(tree_function_versioning): Update use of copy body; accept
	blocks_to_copy and new_entry.

2010-06-01  Jan Hubicka  <jh@suse.cz>

	* gegenrtl.c: Remove unnecesary prototypes.
	(gendecl): Remove.
	(gendef): Produce static inline.
	(gencode): Remove.
	(main): Do not decode parameters; generate header only.
	* Makefile.in (genrtl.c): Remove.

2010-06-01  Jan Hubicka  <jh@suse.cz>

	* tree-switch-conversion.c (build_one_array): Make it readonly.

2010-06-01  Richard Guenther  <rguenther@suse.de>

	* optabs.c (init_optabs): Guard all accesses to reinit.
	* ipa-pure-const.c (propagate): Fix another typo.
	* opts.c (common_handle_option): Split assignment to bool.
	* c-opts.c (c_common_handle_option): Likewise.

2010-06-01  Arnaud Charlet  <charlet@adacore.com>
	    Matthew Gingell  <gingell@adacore.com>

	* doc/invoke.texi: Mention -fdump-ada-spec.
	* tree-dump.c (dump_files): Add ada-spec.
	(FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
	* tree-pass.h (tree_dump_index): Add TDI_ada.
	* gcc.c: Add support for -C without -E and for -fdump-ada-spec.
	(cpp_unique_options): Do not reject -C or -CC when -E isn't present.
	(default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
	* c-decl.c: Include c-ada-spec.h.
	(collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
	functions.
	(c_write_global_declarations): Add handling of -fdump-ada-spec.
	* c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
	* Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
	* c-ada-spec.h, c-ada-spec.c: New files.

2010-06-01  Richard Guenther  <rguenther@suse.de>

	PR lto/43853
	* ipa-pure-const.c (get_function_state): Hand back varying state
	if we do not have one.
	(has_function_state): New function.
	(duplicate_node_data): Adjust.
	(remove_node_data): Likewise.
	(pure_const_write_summary): Likewise.
	(propagate): Likewise.  Fix typo.

2010-06-01  Jan Hubicka  <jh@suse.cz>

	* tree-cfg.c (verify_stmt): Do not skip could_throw test.
	* passes.c (execute_function_todo): Do not make implicit verify_ssa.
	(execute_all_ipa_transforms): Do not play with the states.

2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/arm/t-linux-androideabi: New.
	* config.gcc (arm*-*-linux-androideabi): Include multilib config.

2010-06-01  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c (estimate_num_insns): For stdarg functions look
	into call statement to count cost of argument passing.

2010-06-01  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
	argument for fprintf.
	(ix86_output_addr_diff_elt): Likewise.
	(x86_function_profiler): Likewise.
	* config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
	(LPREFIX): Likewise.
	(ASM_GENERATE_INTERNAL_LABEL): Likewise.

2010-05-31  Jakub Jelinek  <jakub@redhat.com>

	PR target/44338
	* config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
	fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
	fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
	fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
	fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
	fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
	fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
	Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
	TARGET_FUSED_MADD.

2010-05-31  Jan Hubicka  <jh@suse.cz>

	* tree.h (tree_range_check_failed): Declare noreturn.

2010-05-31  Jan Hubicka  <jh@suse.cz>

	* gimple.c (gimple_call_builtin_p): New function.
	* gimple.h (gimple_call_builtin_p): Declare.
	* tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
	to exit.
	(execute_warn_function_return): BUILT_IN_RETURN is return.
	(split_critical_edges): Return edges are not critical.
	(is_ctrl_altering_stmt): Builtin_in_return is altering.
	(gimple_verify_flow_info): Handle built_in_return.
	(execute_warn_function_return): Handle built_in_return.
	* ipa-pure-const.c (check_call): Ignore builtin_return.

2010-05-31  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/44337
	* expr.c (expand_assignment): Don't store anything for out-of-bounds
	array accesses with non-MEM.

	PR tree-optimization/44182
	* tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
	newly needs to end a bb is followed by debug stmts, instead return
	true from the function at the end.
	(maybe_move_debug_stmts_to_successors): New function.
	(copy_cfg_body): Call it if copy_edges_for_bb returned true.

2010-05-31  Kai Tietz  <kai.tietz@onevision.com>

	PR target/44161
	* config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.

2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>

	* cgraphunit.c (cgraph_decide_is_function_needed): Really return false
	for nested functions in non-optimized compilation.

2010-05-31  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.

2010-05-30  Jan Hubicka  <jh@suse.cz>

	* predict.c (maybe_hot_edge_p): Calls to functions called once is cold.

2010-05-30  Richard Guenther  <rguenther@suse.de>

	PR lto/42975
	* tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
	(execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
	no longer needed.

2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>

	* config/darwin.c (output_objc_section_asm_op): Add comment.
	(name_needs_quotes): Add '_' to list of valid comment chars.
	(machopic_output_function_base_name): Remove unneeded quotes.
	(darwin_encode_section_info): Adjust asm whitespace.
	* config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
	(ASM_OUTPUT_LOCAL): Ditto.
	* config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
	* config/darwin.h (GLOBAL_ASM_OP): Ditto.
	* config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.

2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>

	* config/rs6000/rs6000.c (rs6000_output_function_entry): Use
	RS6000_OUTPUT_BASENAME unconditionally.
	(rs6000_output_function_epilogue): Likewise.

2010-05-30  Jan Hubicka  <jh@suse.cz>

	* toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
	nodes.

2010-05-30  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_assign_single): Implement
	verification for COND_EXPR rhs.

2010-05-30  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (cgraph_dump_file): Declare.
	* cgraphunit.c (cgraph_dump_file): Export.
	* ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.

2010-05-30  Jan Hubicka  <jh@suse.cz>

	* dwarf2out.c (reference_to_unused,
	premark_types_used_by_global_vars_helper): Avoid creation of new
	varpool nodes.

2010-05-30  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (cgraph_node_cannot_return,
	cgraph_edge_cannot_lead_to_return): New functions.
	* cgraph.c (cgraph_node_cannot_return,
	cgraph_edge_cannot_lead_to_return): Use them.
	* ipa-pure-const.c (pure_const_names): New static var.
	(check_call): Handle calls not leading to return.
	(pure_const_read_summary): Dump info read.
	(propagate): Dump info about propagation process; ignore side effects
	of functions not leading to exit; fix handling of pure functions.

2010-05-30  Jan Hubicka  <jh@suse.cz>

	* config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
	for tail call epilogues.

2010-05-30  Jan Hubicka  <jh@suse.cz>

	* passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
	ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
	dump files.

2010-05-29  Jan Hubicka  <jh@suse.cz>

	* ipa.c (cgraph_remove_unreachable_node): Walk references of correct
	node; remove references in node we no longer keep in cgrpah but need
	body of.

2010-05-29  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.

2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/44165
	* config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.

2010-05-29  Jan Hubicka  <jh@suse.cz>

	* tree-vrp.c (debug_value_range, debug_all_value_ranges,
	debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
	* tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
	debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
	debug_names_replaced_by, debug_update_ssa): Likewise.
	* sbitmap.c (debug_sbitmap): Likewise.
	* genrecog.c (debug_decision, debug_decision_list): Likewise.
	* tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
	debug_tree_chain): Likewise.
	* tree-loop-distribution.c (debug_rdg_partitions): Likewise.
	* cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
	* optabs.c (debug_optab_libfuncs): Likewise.
	(verify_loop_closed_ssa): Likewise.
	* value-prof.c (verify_histograms): Likewise.
	* reload.c (debug_reload_to_stream, debug_reload): Likewise.
	* bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
	* cfghooks.c (verify_flow_info): Likewise.
	* fold-const.c (debug_fold_checksum): Likewise.
	* omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
	* cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
	Likewise.
	* omega.c (debug_omega_problem): Likewise.
	* cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
	* tree-ssa-ccp.c (debug_lattice_value): Likewise.
	* dominance.c (verify_dominators, debug_dominance_info,
	debug_dominance_tree): Likewise.
	* df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
	* df_regno_debug, df_ref_debug,
	debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
	debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
	* tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
	* sel-sched.c (debug_state): Likewise.
	* tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
	Likewise.
	* cfganal.c (print_edge_list, verify_edge_list): Likewise.
	* dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
	* tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
	* gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
	Likewise.
	* c-pretty-print.c (debug_c_tree): Likewise.
	* sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
	debug_av_set, debug_lv_set, debug_ilist, debug_blist,
	debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
	* ebitmap.c (debug_ebitmap): Likewise.
	* function.c (debug_find_var_in_block_tree): Likewise.
	* print-rtl.c (debug_rtx): Likewise.
	(debug_rtx_count): Likewise.
	(debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
	* stor-layout.c (debug_rli): Likewise.
	* ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
	* tree-data-ref.c (debug_data_references,
	debug_data_dependence_relations, debug_data_reference,
	debug_data_dependence_relation, debug_rdg_vertex,
	debug_rdg_component, debug_rdg): Likewise.
	* tree-affine.c (debug_aff): Likewise.
	* tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
	Likewise.
	* except.c (debug_eh_tree, verify_eh_tree): Likewise.
	* emit-rtl.c (verify_rtl_sharing): Likewise.
	* tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
	debug_value_expressions): Likewise.
	* tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
	* sese.c (debug_rename_map, debug_ivtype_map): Likewise.
	* print-tree.c (debug_tree, debug_vec_tree): Likewise.
	* cfglayout.c (verify_insn_chain): Likewise.
	* graphite-clast-to-gimple.c (debug_clast_name_indexes,
	debug_clast_stmt, debug_generated_program): Likewise.
	* ggc-page.c (debug_print_page_list): Likewise.
	* tree-ssa-ter.c (debug_ter): Likewise.
	* graphite-dependences.c (debug_pddr): Likewise.
	* sched-deps.c (debug_ds): Likewise.
	* tree-ssa.c (verify_ssa): Likewise.
	* graphite-poly.c (debug_scattering_function, debug_iteration_domain,
	debug_scattering_functions, debug_iteration_domains, debug_pdr,
	debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
	debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
	* tree-inline.c (debug_find_tree): Likewise.
	* graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
	debug_ppl_powerset_matrix): Likewise.
	* var-tracking.c (debug_dv): Likewise.
	* system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
	* cfgloop.c (verify_loop_structure): Likewise.
	* plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
	* c-common.c (verify_sequence_points): Likewise.
	* sched-rgn.c (debug_regions, debug_region, debug_candidate,
	debug_candidates, debug_rgn_dependencies): Likewise.
	* tree-ssa-structalias.c (debug_constraint, debug_constraints,
	* debug_constraint_graph, debug_solution_for_var,
	debug_sa_points_to_info): Likewise.
	* sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
	Likewie.
	* tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
	debug_loops, debug_loop, debug_loop_num): Likewise.
	* passes.c (debug_pass): Likewise.
	(dump_properties): Likewise; add cfglayout property.
	(debug_properties): Likewise.
	* tree-ssa-reassoc.c (debug_ops_vector): Likewise.
	* varpool.c (debug_varpool): Likewise.
	* regcprop.c (debug_value_data): Likewise.
	* tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
	debug_immediate_uses_for): Likewise.

2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/44315
	* Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
	Filter out insn-flags.h.

2010-05-29  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (struct varpool_node_set_def,
	struct cgraph_node_set_def): Remove unused AUX pointer.
	(cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
	VEC_empty macro.

2010-05-29  Jan Hubicka  <jh@suse.cz>

	PR middle-end/44324
	* ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".

2010-05-29  Richard Guenther  <rguenther@suse.de>

	* lto-streamer.c (cached_bp): New global variable.
	(bitpack_create): Return the cached bitpack, if available.
	(bitpack_delete): Clear and cache the bitpack, if appropriate.
	(bp_pack_value): Remove redundant asserts.

2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/44306
	* tree-if-conv.c (is_true_predicate): New.
	(is_predicated): Use is_true_predicate.
	(add_to_predicate_list): Same.  Do not use unshare_expr.
	(add_to_dst_predicate_list): Same.

2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
	field on edges.
	(predicate_bbs): Same.
	(clean_predicate_lists): Same.
	(find_phi_replacement_condition): Do not AND the predicate from
	edge->aux.

2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/44315
	* Makefile.in (build/gencondmd.o): Add a missing `\'.

2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/44261
	config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
	(negdf2): Adjust expander pattern and use negdf2_slow.
	(negsf2): Likewise.

2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>

	* basic-block.h (struct control_flow_graph): Move last_label_uid field
	up.
	* df.h (struct df_base_ref): Move regno field up.
	* dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
	* expr.h (struct separate_ops): Move location field up.
	* optabs.h (struct optab_d): Move libcall_basename field down.
	* config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
	* config/i386/i386.h (struct machine_function): Convert call_abi field
	into a bitfield.  Move cfa field to the end of the structure.

2010-05-29  Jan Hubicka  <jh@suse.cz>

	* varpool.c (varpool_get_node): Fix lookup.

2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>

	* config/spu/spu-protos.h: Do not include rtl.h.  Protect
	RTL specific prototypes with #ifdef RTX_CODE.
	* config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
	* config/spu/t-spu-elf: Fix dependencies.

	* config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.

2010-05-29  Mike Stump  <mikestump@comcast.net>

	PR bootstrap/44315
	* Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
	TM_H when building to avoid dependency loops.

2010-05-29  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (cgraph_materialize_clone): Only remove calles,
	refs and body; not the whole node for masters of materialized clones.

2010-05-29  Mike Stump  <mikestump@comcast.net>

	* config/rs6000/rs6000-c.c: Remove c-tree.h include.

2010-05-29  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (clone_function_name): Take SUFFIX argument; export.
	(cgraph_create_virtual_clone): Take SUFFIX argument; udpate
	use of clone_function_name.
	* cgraph.h (cgraph_create_virtual_clone,
	cgraph_function_versioning): update prototypes.
	(clone_function_name): Declare.
	* ipa-cp.c (ipcp_insert_stage): Update call of
	cgraph_create_virtual_clone.
	* omp-low.c (create_omp_child_function_name): Use
	cgraph_create_virtual_clone.
	* cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
	(cgraph_function_versioning): Take SUFFIX argument; produce new name
	and make decl local.

2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>

	* vec.h: Include statistics.h
	* Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
	with VEC_H.

2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>

	* c-lex.c: Do not include c-tree.h.
	* c-pretty-print.c: Likewise.
	* c-opts.c: Likewise.
	* c-gimplify.c: Likewise.
	* c-common.c: Likewise.
	* c-dump.c: Likewise.  Include c-common.h.

2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>

	* c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
	before including diagnostic-core.h.
	(c_cpp_error): New prototype moved from c-tree.h.
	Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
	* c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
	(pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
	(c_cpp_error): Prototype moved to c-common.h.
	* Makefile.in: Update dependency for C_COMMON_H.

2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>

	* c-common.h: Add FIXME for awkward split of c_register_addr_space.
	* c-common.c (c_register_addr_space): Remove here.
	* c-decl.c (c_register_addr_space): Re-add here.

2010-05-28  Mike Stump  <mikestump@comcast.net>

	* config/darwin-c.c: Remove c-tree.h include.

2010-05-28  Joseph Myers  <joseph@codesourcery.com>

	* gcc.c: Include diagnostic.h.
	(error_count): Remove.  All users changed to use errorcount.
	(programname): Remove.  All users changed to use progname.
	(fancy_abort, internal_error, fatal_error, error, warning, inform,
	fnotice): Remove.
	(execute): Don't include "Internal error" and bug reporting
	information in argument of internal_error call.
	(process_command): Don't increment error_count after calling
	perror_with_name.
	(input_filename): Rename to gcc_input_filename.  All users
	changed.
	(main): Call diagnostic_initialize.  Register delete_temp_files
	with atexit.  Use seen_error to test for errors.
	* gcc.h: Include diagnostic-core.h.
	(fatal_error, error, warning): Remove.
	* Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
	(GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
	(gcc.o): Update dependencies.

2010-05-28  Jeff Law  <law@redhat.com>

	* ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
	functions.
	* ira.h (ira_bad_reload_regno): Declare
	* reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.

	* ira-color.c (update_curr_costs): Free updated hard reg costs.
	(ira_reassign_conflict_allocnos): Remove bogus asserts.
	(allocno_reload_assign): Likewise.

2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>

	* tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
	build1_stat.

2010-05-28  Richard Guenther  <rguenther@suse.de>

	PR lto/44312
	* lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
	Stream fixed-point constants mode.
	(unpack_ts_type_value_fields): Fix width of TYPE_MODE
	and TYPE_PRECISION.
	* lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
	Stream fixed-point constants mode.
	(pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
	and TYPE_PRECISION.

2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
	only place it was called from.
	(number_of_latch_executions): Do not return chrec_dont_know when the
	may_be_zero is a runtime condition: instead, return a COND_EXPR
	including the may_be_zero condition.
	* cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
	of nb_iterations.
	* tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
	COND_EXPRs.

2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
	generate COND_EXPRs for degenerate_phi_result.

2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/44293
	* tree-if-conv.c (if_convertible_loop_p): Check the
	if-convertibility of phi nodes in non predicated BBs.

2010-05-28  Joseph Myers  <joseph@codesourcery.com>

	* gcc.c (error, warning, inform): Remove duplicate ": " in output.

2010-05-28  Joseph Myers  <joseph@codesourcery.com>

	PR driver/15303
	* gcc.c (inform, warning, inform): New functions.
	(fatal_ice): Rename to internal_error; change cmsgid parameter to
	gmsgid.  All callers changed.
	(notice): Rename to fnotice; add parameter fp.  All callers changed.
	(fatal_error): Rename to fatal_signal.  All users changed.
	(fatal): Rename to fatal_error; change cmsgid parameter to
	gmsgid.  All callers changed.
	(process_command): Use warning instead of error for warnings.
	(end_going_arg): Don't use _() around argument of error.
	(do_spec_1): Use inform for message from %n specs.  Use warning
	instead of error for warnings.
	(main): Use inform for comparison messages.  Use warning for
	message about unused linker input.
	(error): Increment error_count.  Print "error: ".
	* gcc.h (fatal): Change to fatal_error.
	(warning): Declare.
	* config/darwin-driver.c (darwin_default_min_version): Use warning
	instead of fprintf for warnings.
	* cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.

2010-05-28  Julian Brown  <julian@codesourcery.com>

	* config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
	(*thumb2_addsi3_compare0_scratch): New.
	* config/arm/constraints.md (Pv): New.
	* config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
	for ARM mode only.
	(*addsi3_compare0_scratch): Likewise.

2010-05-28  Jan Hubicka  <jh@suse.cz>

	* ipa-reference.c (add_static_var): Remove redundant all_module_statics
	check.
	(ipa_reference_write_optimization_summary): Call is_proper_for_analysis
	only on local statics.

2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>

	* config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.

2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR bootstrap/44314
	* config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
	(OPTION_GLIBC): Define.

2010-05-28  Jakub Jelinek  <jakub@redhat.com>

	PR debug/41048
	* dwarf2out.c (double_int_type_size_in_bits): New function.
	(round_up_to_align): Change first argument and return value to
	double_int.
	(field_byte_offset): Work internally on double_ints.

	PR target/43636
	* builtins.c (expand_movstr): Use a temporary pseudo instead
	of target even when target is not NULL and not const0_rtx, but
	fails movstr predicate.
	* config/m32c/blkmov.md (movstr): Add predicate to first operand.

2010-05-28  Joseph Myers  <joseph@codesourcery.com>

	* final.c (rest_of_clean_state): Use %m in errors instead of
	strerror (errno).
	* gengtype.c (read_input_list, close_output_files): Use xstrerror
	instead of strerror.
	* toplev.c (process_options): Use %m in errors instead of strerror
	(errno).
	* tree-dump.c (dump_begin): Use %m in errors instead of strerror
	(errno).

2010-05-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_fn_abi_va_list): Make static.
	(ix86_canonical_va_list_type): Make static.  Add declaration.
	(ix86_enum_va_list): Make static.  Reindent.
	* config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
	(ix86_canonical_va_list_type): Ditto.
	(ix86_enum_va_list): Ditto.

2010-05-28  Richard Guenther  <rguenther@suse.de>

	* lto-wrapper.c (run_gcc): With -save-temps generate a
	user-visible ltrans filename.  Fixup ltrans unit numbering.

2010-05-28  Kai Tietz  <kai.tietz@onevision.com>

	* c-common.c (c_common_nodes_and_builtins): Replace use
	of TARGET_ENUM_VA_LIST by target hook enum_va_list.
	* config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
	to ix86_enum_va_list.
	* config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
	* doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
	(TARGET_ENUM_VA_LIST_P): Add hook description.
	* target-def.h (TARGET_ENUM_VA_LIST_P): Added.
	* target.h (gcc_target): Add enum_va_list hook.

	PR bootstrap/44299
	* config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
	* config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
	* config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.

2010-05-28  Alan Modra  <amodra@gmail.com>

	PR target/44266
	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
	emit_library_call machinery to set up __tls_get_addr calls.

2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md (movqi): Fix typo ('*' -> '#').

2010-05-28  Dodji Seketeli  <dodji@redhat.com>

	Revert fix for PR c++/44188
	* c-common.c (is_typedef_decl): Revert the moving of  this
	definition ...
	* tree.c (is_typedef_decl): ... here.
	(typdef_variant_p): Revert the moving of this  definition
	here from cp/tree.c.
	* c-common.h (is_typedef_decl): Revert the moving of this
	declaration ...
	* tree.h (is_typedef_decl): ... here.
	(typedef_variant_p): Revert the moving of this  declaration here
	from cp/cp-tree.h
	* dwarf2out.c (is_naming_typedef_decl): Revert this new function.
	(gen_tagged_type_die): Revert the splitting out of ...
	(gen_type_die_with_usage): ... this function. Revert the anonymous
	tagged type handling.
	(gen_typedef_die): Revert emitting DW_TAG_typedef  for
	typedefs naming anonymous tagged types.

2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000-modes.def (PSImode): Delete.

2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
	* config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
	throughout.
	* config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
	"xer" to "ca".
	Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
	XER_REGS to CA_REGS throughout.
	* config/rs6000/rs6000.h: Same.
	(ADDITIONAL_REGISTER_NAMES): Add "xer".
	* config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
	that mode_iterator "P" is the size for arithmetic carries as well.
	* doc/md.texi (rs6000 section, "z" constraint): Fix documentation.

2010-05-28  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/44255
	* combine.c (struct rtx_subst_pair): Define unconditionally.
	(propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
	copy_rtx pair->to instead of cleanup_auto_inc_dec it.
	Call make_compound_operation on pair->to.
	(propagate_for_debug): Don't call make_compound_operation here.
	Always use simplify_replace_fn_rtx.

2010-05-27  Sterling Augustine  <sterling@tensilica.com>

	* doc/invoke.texi (xtensa options): Add -mforce-no-pic.
	* config/xtensa/xtensa.c (override_options): Check
	  TARGET_FORCE_NO_PIC and set flag_pic.
	* config/xtensa/xtensa.opt: Document -mforce-no-pic

2010-05-27  Kai Tietz  <kai.tietz@onevision.com>

	PR bootstrap/44299
	* config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
	* config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.

2010-05-27  Joseph Myers  <joseph@codesourcery.com>

	* diagnostic-core.h: New.  Contents moved from diagnostic.h and
	toplev.h.
	* diagnostic.c: Don't include toplev.h.
	(progname): Define.  Moved from toplev.c.
	(seen_error): New function.
	* diagnostic.h: Include diagnostic-core.h.
	(diagnostic_t, emit_diagnostic): Don't declare here.
	* toplev.c (progname): Move to toplev.c.
	(emit_debug_global_declarations, compile_file, finalize,
	do_compile, toplev_main): Use seen_error.
	* toplev.h: Include diagnostic-core.h.
	(trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
	internal_error, warning, warning_at, error, error_n, error_at,
	fatal_error, pedwarn, permerror, sorry, inform, inform_n,
	verbatim, fnotice, progname): Move to diagnostic-core.h.
	* builtins.c: Include diagnostic-core.h instead of diagnostic.h.
	(expand_builtin_expect): Use seen_error.
	* c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
	(c_make_fname_decl, c_write_global_declarations): Use seen_error.
	* c-format.c: Include diagnostic-core.h instead of diagnostic.h.
	* c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
	* c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
	* c-lex.c (c_lex_with_flags, interpret_float): Don't increment
	errorcount for errors.
	* c-opts.c (c_common_finish): Use seen_error.
	* cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
	* cgraphunit.c (verify_cgraph_node, verify_cgraph,
	cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
	* coverage.c: Include diagnostic-core.h instead of diagnostic.h.
	(get_coverage_counts): Use seen_error.
	* dwarf2out.c (dwarf2out_finish): Use seen_error.
	* gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
	gimplify_body): Use seen_error.
	* ipa-inline.c (cgraph_early_inlining): Use seen_error.
	* ipa-pure-const.c (gate_pure_const): Use seen_error.
	* ipa-reference.c (gate_reference): Use seen_error.
	* jump.c: Include diagnostic-core.h instead of diagnostic.h.
	* lambda-code.c: Include diagnostic-core.h instead of
	diagnostic.h.
	* lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
	* lto-compress.c: Include diagnostic-core.h instead of
	diagnostic.h.
	* lto-section-in.c: Include diagnostic-core.h instead of
	diagnostic.h.
	* lto-streamer-out.c: Include diagnostic-core.h instead of
	diagnostic.h.
	* lto-streamer.c: Include diagnostic-core.h instead of
	diagnostic.h.
	(gate_lto_out): Use seen_error.
	* matrix-reorg.c: Include diagnostic-core.h instead of
	diagnostic.h.
	* omega.c: Include diagnostic-core.h instead of diagnostic.h.
	* omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
	(gate_expand_omp, lower_omp_1): Use seen_error.
	* passes.c: Include diagnostic-core.h instead of diagnostic.h.
	(rest_of_decl_compilation, rest_of_type_compilation,
	gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
	* tree-cfg.c (label_to_block_fn): Use seen_error.
	* tree-inline.c (optimize_inline_calls): Use seen_error.
	* tree-mudflap.c (mudflap_finish_file): Use
	seen_error.
	* tree-optimize.c (gate_all_optimizations,
	gate_all_early_local_passes, gate_all_early_optimizations): Use
	seen_error.
	* tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
	* varpool.c: Include diagnostic-core.h instead of diagnostic.h.
	(varpool_remove_unreferenced_decls,
	varpool_assemble_pending_decls): Use seen_error.
	* Makefile.in (DIAGNOSTIC_CORE_H): Define.
	(TOPLEV_H, DIAGNOSTIC_H): Update.
	(c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
	lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
	c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
	builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
	coverage.o, lambda-code.o): Update dependencies.

2010-05-25  Dodji Seketeli  <dodji@redhat.com>

	PR c++/44188
	* c-common.c (is_typedef_decl): Move this definition ...
	* tree.c (is_typedef_decl): ... here.
	(typdef_variant_p): Move definition here from cp/tree.c.
	* c-common.h (is_typedef_decl): Move this declaration ...
	* tree.h (is_typedef_decl): ... here.
	(typedef_variant_p): Move declaration here from cp/cp-tree.h
	* dwarf2out.c (is_naming_typedef_decl): New function.
	(gen_tagged_type_die): Split out of ...
	(gen_type_die_with_usage): ... this function. When an anonymous
	tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
	is emitted for the typedef.
	(gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
	anonymous tagged types.

2010-05-27  Jason Merrill  <jason@redhat.com>

	* print-tree.c (debug_vec_tree): New fn.
	(print_vec_tree): New fn.
	* tree.h: Declare them.
	* gdbinit.in (pvt): New command.

	* print-tree.c (print_node) [TREE_VEC]: Print elements normally.

	* gdbinit.in (pdd): New command.

2010-05-27  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
	(update_caller_keys): Return early if there are no callers;
	only update fibheap when decresing the key.
	(update_callee_keys): Avoid recursion.
	(decide_inlining_of_small_functions): When badness does not match;
	re-insert into fibheap.

2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>

	* Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
	(ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
	(ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
	(ALL_HOST_OBJS): Now a union of the above two.
	<section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
	all files in ALL_HOST_FRONTEND_OBJS.
	* system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.

	* c-common.c: Pretend to be a backend file by undefining
	IN_GCC_FRONTEND (still need rtl.h here).

2010-05-27  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
	* cgraphunit.c (clone_of_p): Compile only when checking is enabled.

2010-05-27  Jan Hubicka  <jh@suse.cz>

	* sched-ebb.c: Rename struct deps to struct deps_desc.
	* ddg.c: Likewise.
	* sel-sched-ir.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-int.h: Likewise.
	* sched-rgn.c: Likewise.

2010-05-27  Jon Beniston  <jon@beniston.com>

	PR 43726
	* config/lm32/lm32.h: Remove definition of
	GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.

2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	PR lto/44230
	* dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.

2010-05-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44284
	* tree-vect-stmts.c (vectorizable_assignment): Handle
	sign-changing conversions as simple copy.

2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* gthr-posix.h (pthread_cancel): Don't declare if compiling against
	Bionic C library.
	(__gthread_active_p): Check for pthread_create if compiling against
	Bionic C library.

2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>

	Support compilation for Android platform.  Reimplement -mandroid.

	* config.gcc (*linux*): Include linux-android.h and linux-android.opt.
	(*android*): Set ANDROID_DEFAULT.
	(arm*-*-linux*): Include linux-android.h.
	(arm*-*-eabi*): Don't include previous -mandroid implementation.
	* config/arm/eabi.h: Remove, move Android-specific parts ...
	* config/linux-android.h: ... here.  New file.
	* config/arm/eabi.opt: Rename to ...
	* config/linux-android.opt: ... this.
	(mandroid): Allow -mno-android option.  Initialize based on
	ANDROID_DEFAULT.
	* config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
	Move logic to corresponding LINUX_TARGET_* macros.
	(TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
	* config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
	(STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
	Android definitions.
	(LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
	* doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
	Document.

2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>

	Add support for Bionic C library

	* config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
	macro.
	(DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
	(bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.

	* config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
	(LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
	(CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
	to support multiple C libraries.  Handle Bionic.
	(BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
	(BIONIC_DYNAMIC_LINKER64): Define.
	(LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
	Update.
	(TARGET_HAS_SINCOS): Enable for Bionic.

	* config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
	the last option specified on command line take effect.
	(linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
	(mbionic): New.
	(mglibc, muclibc): Update.

	* config/alpha/linux-elf.h, config/rs6000/linux64.h,
	* config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
	DEFAULT_LIBC.

	* doc/invoke.texi (-mglibc, -muclibc): Update.
	(-mbionic): Document.

2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* c-common.h (c_register_addr_space): Add prototype.
	(ADDR_SPACE_KEYWORD): Remove.
	* c-common.c (c_register_addr_space): New function.
	(c_addr_space_name): Reimplement.
	(c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.

	* config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
	(REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.

	* doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
	Remove TARGET_ADDR_SPACE_KEYWORDS.

2010-05-27  Joseph Myers  <joseph@codesourcery.com>

	* input.c: New file.
	* input.h (main_input_filename): Move declaration to toplev.h.
	* toplev.c (input_location, line_table): Move to input.c
	* toplev.h (main_input_filename): Move declaration from input.h.
	* tree.c (expand_location): Move to input.c.
	* Makefile.in (OBJS-common): Add input.o.
	(input.o): Add dependencies.

2010-05-27  Richard Guenther  <rguenther@suse.de>

	* lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
	for non-existant files.
	(fork_execute): Mark args_name file as deleted.

2010-05-27  Kai Tietz  <kai.tietz@onevision.com>

	PR bootstrp/44287
	* c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
	(narrow_signed_type): Likewise.

2010-05-26  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (verify_cgraph_node): Do checking that DECL match
	edge only when checking is enabled; check using former_clone_of;
	check inline clones too.
	(cgraph_materialize_clone): Record former_clone_of pointer.
	(cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
	combining redirections; dump args_to_skip bitmap
	(cgraph_materialize_all_clones): Do no redirection here.
	* ipa-inline.c (inline_transform): Do redirection here.
	* cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
	cheking only).

2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>

	* config/avr/avr-c.c: Do not include regs.h.
	Include cpplib.h for cpp_define and tree.h for c-common.h.
	* config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
	* config/avr/t-avr: Fix dependencies for avr-c.o.

2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>

	* explow.c (set_stack_check_libfunc): Adjust to accept name as a
	string instead of SYMBOL_REF rtx.
	* rtl.h (set_stack_check_libfunc): Move prototype from here...
	* libfuncs.h: ...to here.  Adjust for explow.c change.

2010-05-26  Joseph Myers  <joseph@codesourcery.com>

	* pretty-print.c: Don't include ggc.h.
	(identifier_to_locale_alloc, identifier_to_locale_free): Define.
	(identifier_to_locale): Use them for allocation.
	* pretty-print.h (identifier_to_locale_alloc,
	identifier_to_locale_free): Declare.
	* toplev.c (alloc_for_identifier_to_locale): New.
	(general_init): Set identifier_to_locale_alloc and
	identifier_to_locale_free.
	* Makefile.in (pretty-print.o): Update dependencies.

2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
	pointer types if they have different alignment or mode.

2010-05-26  Anatoly Sokolov  <aesok@post.ru>

	* config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
	LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
	* config/sparc/sparc-protos.h (function_value): Remove declaration.
	* config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
	sparc_function_value_regno_p): New functions.
	(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
	TARGET_FUNCTION_VALUE_REGNO_P): Define.
	(function_value): Rename to...
	(sparc_function_value_1): ... this. Make static. Change 'incoming_p'
	argument to 'outgoing'.
	(function_arg_record_value, function_arg_union_value,
	function_arg_vector_value): Update comment.

2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (struct dw_fde_struct): Reorder flags.
	(fde_needed_for_eh_p): New predicate.
	(output_call_frame_info): Use it throughout to decide whether FDEs
	are needed for EH purpose.
	(dwarf2out_begin_prologue): Reorder assignments.

2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
	special case loop->header.
	(is_predicated): New.
	(if_convertible_loop_p): Call it.

2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
	iterator in parameter.  Do not generate code during the analysis.
	(tree_if_convert_cond_stmt): Removed.
	(tree_if_convert_stmt): Removed.
	(predicate_bbs): New.
	(if_convertible_loop_p): Call predicate_bbs.
	(tree_if_conversion): Simplify the top-level logic as predicate_bbs
	now contains all the analysis part.

2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
	statements in the analysis part.
	(tree_if_convert_stmt): Update comment.
	(remove_conditions_and_labels): New.
	(combine_blocks): Call remove_conditions_and_labels.
	(tree_if_conversion): Update comment.

2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
	than 2 predecessors or more than 2 successors.

2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
	of loops in which the data dependence analysis fails.

2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (if_convertible_loop_p): Do not compute/free
	CDI_POST_DOMINATORS.
	(tree_if_conversion): Same.

2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (tree_if_conversion): Do not return a bool.

2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c: Update copyright years.  Fix comments.
	Fix indentation.

2010-05-26  Kai Tietz  <kai.tietz@onevision.com>

	* builtin-types.def (BT_INT128): New primitive type.
	(BT_UINT128): Likewise.
	* c-common.c (c_common_r): Add __int128 keyword.
	(c_common_type_for_size): Handle __int128.
	(c_common_type_for_mode): Likewise.
	(c_common_signed_or_unsigned_type): Likewise.
	(c_common_nodes_and_builtins): Add builtin type
	if target supports 128-bit integer scalar.
	* c-common.h (enum rid): Add RID_INT128.
	* c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
	if target supports 128-bit integer scalar.
	* c-decl.c (declspecs_add_type): Handle new keyword __int128.
	(finish_declspecs): Likewise.
	* c-parser.c (c_token_starts_typename): Handle RID_INT128.
	(c_token_starts_declspecs): Likewise.
	(c_parser_declspecs): Likewise.
	(c_parser_attributes): Likewise.
	(c_parser_objc_selector): Likewise.
	* c-pretty-print.c (pp_c_integer_constant): Handle __int128.
	* c-tree.h (enum c_typespec_keyword): Add cts_int128.
	* gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
	* tree.c (make_or_reuse_type): Likewise.
	(make_unsigned_type): Likewise.
	(build_common_tree_nodes_2): Likewise.
	* tree.h (enum integer_type_kind): Add itk_int128 and
	itk_unsigned_int128.
	(int128_integer_type_node): New define.
	(int128_unsigned_type_node): New define.
	* doc/extend.texi: Add documentation about __int128 type.

2010-05-26  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (copy_nary): Adjust.
	(copy_phis): Rename to ...
	(copy_phi): ... this.  Adjust.
	(copy_references): Rename to ...
	(copy_reference): ... this.  Adjust.
	(process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
	result into the valid table.

2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>

	* config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
	insn-config.h, insn-codes.h, recog.h, and optabs.h.

2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.

2010-05-26  Richard Guenther  <rguenther@suse.de>

	* opts.c (common_handle_option): Handle OPT_Ofast.

2010-05-26  Joseph Myers  <joseph@codesourcery.com>

	* diagnostic.c: Don't include opts.h.
	(permissive_error_option): Define.
	(diagnostic_initialize): Take n_opts parameter.  Allocate memory
	for classify_diagnostic.  Don't use memset for
	classify_diagnostic.  Initialize new and recently added fields.
	(diagnostic_classify_diagnostic): Use context->n_opts instead of
	N_OPTS.
	(diagnostic_report_diagnostic): Pass context parameter to
	diagnostic_report_warnings_p.  Use option_enabled and option_name
	hooks from context.
	(emit_diagnostic): Use permissive_error_option.
	(permerror): Likewise.
	* diagnostic.h: Don't include options.h.
	(struct diagnostic_context): Add n_opts, opt_permissive,
	inhibit_warnings, warn_system_headers, option_enabled and
	option_name fields.  Change classify_diagnostic to a pointer.
	* opts-diagnostic.h: New file.
	* opts.c: Include opts-diagnostic.h.
	(common_handle_option): Set global_dc fields for -Wfatal-errors,
	-Wsystem-headers, -fshow-column, -pedantic-errors and -w.
	(option_name): New function.
	* c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
	(c_common_handle_option): Set global_dc->permissive for
	-fpermissive.
	* c-common.c (c_cpp_error): Save and restore
	global_dc->warn_system_headers, not variable warn_system_headers.
	* toplev.c: Include opts-diagnostic.h.
	(general_init): Update call to diagnostic_initialize.  Set
	global_dc->show_column, global_dc->option_enabled and
	global_dc->option_name.
	(process_options): Don't set global_dc fields here.
	* Makefile.in (DIAGNOSTIC_H): Remove options.h.
	(diagnostic.o, opts.o, toplev.o): Update dependencies.

2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.md (movsi): Split a movsi from a
	const after reload.

2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* ggc-zone.c: Update copyright year.
	(poison_region): Mark memory for Valgrind as undefined before
	memset () call and inaccessible afterwards.
	(ggc_pch_total_size): Change type of i to int.

2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* ggc-common.c (ggc_free_overhead): Allow empty slot.

2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* ggc-common.c: Update copyright year.
	(ggc_rlimit_bound): Remove prototype.  Compile only if
	!ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
	(ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
	&& !ENABLE_GC_ALWAYS_COLLECT.  Make static.
	(ggc_min_heapsize_heuristic): Likewise.

2010-05-26  Richard Guenther  <rguenther@suse.de>

	PR rtl-optimization/44164
	* tree-ssa-alias.c (aliasing_component_refs_p): Fix the
	no-common access-path disambiguation.
	(indirect_ref_may_alias_decl_p): Adjust.
	(indirect_refs_may_alias_p): Likewise.
	(refs_may_alias_p_1): Likewise.

2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>

	* c-typeck.c: Do not include expr.h.

2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>

	* rtl.h (decl_default_tls_model): Move prototype from here...
	* output.h: ...to here.
	* c-decl.c: Do not include rtl.h.
	* c-pragma.c: Likewise.
	* c-parser.c: Likewise.
	* c-gimplify.c: Likewise.  And also not hard-reg-set.
	* c-common.c: Do not include rtl.h.  Include tm_p.h and add a
	FIXME note for it.  Add a FIXME note for expr.h.
	* config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
	ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
	defined.

2010-05-26  Jakub Jelinek  <jakub@redhat.com>

	PR target/44199
	* config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
	or total_size is larger than red zone size for non-V4 ABI, emit a
	stack_tie resp. frame_tie insn before stack pointer restore.
	* config/rs6000/rs6000.md (frame_tie): New insn.

2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>

	* function.h (struct function): Add can_throw_non_call_exceptions bit.
	* lto-streamer-in.c (input_function): Stream it in.
	* lto-streamer-out.c (output_function): Stream it out.
	* function.c (allocate_struct_function): Set it.
	(expand_function_end): Substitute cfun->can_throw_non_call_exceptions
	for flag_non_call_exceptions.
	* cfgbuild.c (control_flow_insn_p): Likewise.
	(make_edges): Likewise.
	* cfgexpand.c (expand_stack_alignment): Likewise.
	* combine.c (distribute_notes): Likewise.
	* cse.c (cse_extended_basic_block): Likewise.
	* except.c (insn_could_throw_p): Likewise.
	* gcse.c (simple_mem): Likewise.
	* ipa-pure-const.c (check_call): Likewise.
	(check_stmt ): Likewise.
	* lower-subreg.c (lower-subreg.c): Likewise.
	* optabs.c (emit_libcall_block): Likewise.
	(prepare_cmp_insn): Likewise.
	* postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
	* postreload.c (rest_of_handle_postreload): Likewise.
	* reload1.c (reload_as_needed): Likewise.
	(emit_input_reload_insns): Likewise.
	(emit_output_reload_insns): Likewise.
	(fixup_abnormal_edges): Likewise.
	* sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
	* store-motion.c (find_moveable_store): Likewise.
	* tree-eh.c (stmt_could_throw_p): Likewise.
	(tree_could_throw_p): Likewise.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
	* config/arm/arm.c (arm_expand_prologue): Likewise.
	(thumb1_expand_prologue): Likewise.
	* config/rx/rx.md (cbranchsf4): Likewise.
	(cmpsf): Likewise.
	* config/s390/s390.c (s390_emit_prologue): Likewise.
	* tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
	(inline_forbidden_into_p): New predicate.
	(expand_call_inline): Use it to forbid inlining.
	(tree_can_inline_p): Likewise.

2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>

	* config/i386/i386-c.c: Do not include rtl.h.
	* config/i386/t-i386: Update dependencies.

2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>

	* attribs.c: Do not include rtl.h.
	* Makefile.in: Update dependencies.

2010-05-25  Anatoly Sokolov  <aesok@post.ru>

	* double-int.h (double_int_and): New.
	* combine.c (try_combine): Clean up, use double_int_* and
	immed_double_int_const functions.

2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
	stderr to /dev/null instead of grep -q.
	* configure: Regenerate.

2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>

	* Makefile.in (EXCEPT_H): Fix typo.

2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-build.c (update_conflict_hard_reg_costs): New.
	(ira_build): Call update_conflict_hard_reg_costs.

2010-05-25  Jakub Jelinek  <jakub@redhat.com>

	PR debug/41371
	* var-tracking.c (find_loc_in_1pdv): Guard asserts with
	ENABLE_CHECKING.
	(intersect_loc_chains): Walk the s2var's loc_chain together
	with s1node chain as long as the locations are equal, don't
	call find_loc_in_1pdv in that case.

	PR debug/42801
	* tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
	(copy_bind_expr): ... instead of here.
	(copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
	if the block hasn't been remapped.
	* dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
	emitting concrete instance of abstract VLA, add DW_AT_type attribute.

2010-05-25  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44069
	* gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
	out-of-bounds array accesses.

2010-05-25  Richard Guenther  <rguenther@suse.de>

	* lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
	(lto_wrapper_exit): Unlink all LTRANS temporary files on error.
	(run_gcc): Re-organize to make cleanup easier.

2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (optimization_options): Fix and move the
	flag_prefetch_loop_arrays override ...
	(override_options): ... here.

2010-05-25  Joseph Myers  <joseph@codesourcery.com>

	* diagnostic.c: Don't include plugin.h.
	(diagnostic_report_diagnostic): Don't handle plugins specially
	here.  Pass context to internal_error callback.
	* diagnostic.h (struct diagnostic_context): Add context parameter
	to internal_error callback.
	* plugin.c (warn_if_plugins, plugins_internal_error_function): New.
	* plugin.h (struct diagnostic_context): Declare.
	(warn_if_plugins, plugins_internal_error_function): Declare.
	* toplev.c (general_init): Set global_dc->internal_error.
	* Makefile.in (diagnostic.o): Update dependencies.

2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>

	* config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
	* config/rs6000/t-darwin64: New.
	* config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
	build crt2.

2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>

	PR 44203
	* tree-ssa-loop-prefetch.c: Fix logic for step calculation to
	match the original (and intended) behaviour before r159557.  This
	changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
	in two ways.

2010-05-25  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi: Document -Ofast.
	* target.h (struct gcc_target): Add handle_ofast.
	* target-def.h (TARGET_HANDLE_OFAST): Add.
	(TARGET_INITIALIZER): Adjust.
	* opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
	* common.opt (Ofast): Add.

2010-05-25  Paolo Bonzini  <bonzini@gnu.org>

	* doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
	* doc/md.texi (cstoreXX4): Update for cond-optab changes.

2010-05-25  Paolo Bonzini  <bonzini@gnu.org>

	PR target/43610
	* optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
	even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
	false_rtx.  Use false_rtx to compute the correct *ptest for reversed
	comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.

2010-05-25  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (loc_descr_plus_const): When offset is negative, use
	DW_OP_minus with negated offset instead of DW_OP_plus.
	(loc_list_from_tree): Don't test whether second operand is INTEGER_CST.

2010-05-25  Wei Guozhi  <carrot@google.com>

	* config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
	tst instruction and a new alternative.
	* config/arm/constraints.md (Pu): New constraint.

2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>

	* function.c (assign_stack_local_1): Initialize variable
	to avoid warning when bootstrapping at -O3.

2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>

	* configure.ac (all_lang_makefiles): Remove everything related to it.
	* configure: Regenerate.
	* Makefile.in: Fix reference to ada Make-lang.in.
	Remove support for LANG_MAKEFILES.

2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
	* doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
	description.  Add arm_neon_fp16_ok.
	(Add Options): Add arm_neon and arm_neon_fp16.

2010-05-24  Joseph Myers  <joseph@codesourcery.com>

	* diagnostic.c: Don't include flags.h.
	(pedantic_warning_kind, permissive_error_kind): Take diagnostic
	context parameters.  Check flags in the context passed as a parameter.
	(diagnostic_build_prefix): Add context parameter.  Check
	show_column flag in context.
	(diagnostic_action_after_output): Check fatal_errors flag in context.
	(diagnostic_report_current_module): Check show_column flag in context.
	(default_diagnostic_starter): Update call to
	diagnostic_build_prefix.
	(diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
	(emit_diagnostic): Pass context to permissive_error_kind.
	(permerror): Pass context to permissive_error_kind.
	* diagnostic.h (struct diagnostic_context): Add show_column,
	pedantic_errors, permissive and fatal_errors fields.
	(diagnostic_build_prefix): Update prototype.
	* langhooks.c
	* toplev.c (process_options): Set flags in global_dc from
	flag_show_column, flag_pedantic_errors, flag_permissive,
	flag_fatal_errors.
	* tree-diagnostic.c (default_tree_diagnostic_starter): Update call
	to diagnostic_build_prefix.
	* Makefile.in (diagnostic.o): Update dependencies.

2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/ia32intrin.h (__crc32q): Define only if
	__SSE4_2__ is defined.

2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>

	PR target/44132
	PR middle-end/43602
	* varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
	DECL_VISIBILITY_SPECIFIED.
	(emutls_decl): Set DECL_PRESERVE_P and copy
	DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
	(emutls_finalize_control_var): New callback.
	(emutls_finish): Finalize emutls control variables.
	* toplev.c (compile_file): Move the call to emutls_finish ()
	before varpool_assemble_pending_decls ().

2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>

	* config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
	added to the preprocessor condition.

2010-05-24  Paul Brook  <paul@codesourcery.com>

	* gengtype-lex.l: Add HARD_REG_SET.
	* expr.c (expand_expr_real_1): Record writes to hard registers.
	* function.c (rtl_data): Add asm_clobbers.
	* ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
	(ira_setup_eliminable_regset): Remove regs_asm_clobbered.
	Use crtl->asm_clobbers.

2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/makefile.texi (Makefile): Mention stages 'profile'
	and 'feedback' for profiledbootstrap.

2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/44245
	* config/i386/i386.c (def_builtin): Properly check
	OPTION_MASK_ISA_64BIT.

2010-05-23  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (diagnose_mismatched_decls): Give error for duplicate
	typedefs with different but compatible types.  Allow duplicate
	typedefs with the same type except for pedantic non-C1X, but give
	warning for variably modified types.
	* c-typeck.c (tagged_types_tu_compatible_p,
	function_types_compatible_p, type_lists_compatible_p,
	comptypes_internal): Add parameter different_types_p; set
	*different_types_p for different but compatible types.  All
	callers changed.
	(comptypes_check_different_types): New.
	* c-tree.h (comptypes_check_different_types): Declare.

2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>

	* regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
	* jump.c: Include basic-block.h.
	* profile.c: Likewise.
	* tree-profile.c: Likewise.
	* coverage.c: Likewise.
	* basic-block.h (optimize_function_for_size_p): Move to function.h.
	(optimize_function_for_speed_p): Likewise.
	* function.h (optimize_function_for_size_p,
	optimize_function_for_speed_p): Moved here from basic-block.h.
	* Makefile.in: Update dependencies.

2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
	before calling make; allow override through $MAKE.
	* doc/invoke.texi (Optimize Options): Document override.

2010-05-23  Anatoly Sokolov  <aesok@post.ru>

	* config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
	(TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
	(rs6000_mode_dependent_address_ptr): Make static.
	* config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
	* config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
	Remove.

2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>

	PR target/43869
	* config/i386/i386.c: Make sure that the correct regparm is passed.

2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>

	* sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
	* sbitmap.c: ...to here to internalize sbitmap element access.
	Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
	Explain why basic-block.h is included.
	* function.h: Include tm.h for CUMULATIVE_ARGS.
	* Makefile.in: Update dependencies.

2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>

	* coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
	New core types.
	* sbitmap.h (struct sbitmap_def): Do not typedef here.
	* sbitmap.c: Include sbitmap.h.
	* basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
	hard-reg-set.h.  Split everything related to regsets out from here...
	* regset.h: ...to here.  New file.
	* df.h: Include regset.h and sbitmap.h.
	* tree-flow.h: Likewise.
	* cfgloop.h: Likewise.
	* except.h: Do not include sbitmap.h.  Include hashtab.h.
	* cgraph.h: Include vec.h and function.h.
	* reload.h (struct insn_chain): Change types of live_throughout
	and dead_or_set from regset_head to bitmap_head.
	(compute_use_by_pseudos): Be defined also if regset.h is not included.
	* ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
	spilled_regs from regset_head to bitmap_head to avoid dependency
	in regset.h.
	* sel-sched-ir.h: Include regset.h.
	* reload.c: Include df.h before reload.h.
	* caller-save.c: Likewise.
	* reload1.c: Likewise.
	* ira.c: Likewise.
	(mark_elimination): Update type of r to bitmap, consistent with
	DF_LR_IN.
	* dominance.c: Include bitmap.h.
	* modulo-sched.c: Include df.h.
	* cfganal.c: Include bitmap.h and sbitmap.h.
	* cfgbuild.c: Include sbitmap.h.
	* lcm.c: Include sbitmap.h.
	* gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
	* domwalk.c: Include sbitmap.h, exclude ggc.h.
	* cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
	* cselib.c: Include bitmap.h.
	* tree-optimize.c: Include regset.h.
	* stmt.c: Include bitmap.h.
	* Makefile.in: Update dependencies.

2010-05-22  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (struct varpool_node): Add same_comdat_group.
	* lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
	pointer.
	(output_varpool): Update call of lto_output_varpool_node.
	(input_varpool): Read same_comdat_group pointer.
	(input_varpool_1): Fixup same_comdat_group pointer.
	* ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
	group is needed, all are.
	* varpool.c (varpool_remove_node): Remove node from same comdat group
	linklist too.
	(varpool_analyze_pending_decls): Walk same comdat groups.

2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>

	* rtl.h (union rtunion_def): Remove rt_bit member.
	(XBITMAP, X0BITMAP, XCBITMAP): Remove.
	* print-rtl (print_rtx): Do not print the member.
	* gengtype.c (adjust_field_rtx_def): Do not handle it.
	* gengenrtl.c (type_from_format): Likewise.
	(accessor_from_format): Likewise.

2010-05-22  Joseph Myers  <joseph@codesourcery.com>

	* dbgcnt.c: Include toplev.h instead of errors.h.
	* ira-emit.c: Don't include errors.h.
	* ira.c: Include toplev.h instead of errors.h.
	* lto-compress.c: Include toplev.h instead of errors.h.
	* Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
	ira.o, dbgcnt.o): Update dependencies.

2010-05-22  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_types_compatible_p): Check type qualifications
	before merging pointer to complete and pointer to incomplete type.
	* lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
	we use our own resolution algorithm.  The gold linker plugin
	doesn't do the job we want it to do here.

2010-05-22  Anatoly Sokolov  <aesok@post.ru>

	* config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
	* config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
	(sparc_mode_dependent_address_p): New function.

2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>

	* Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.

	* timevar.c: Do not include any core headers.
	(timevar_print): De-i18n-ize.
	(print_time): Likewise.
	* timevar.h (timevar_push, timevar_pop): Make inline functions.

2010-05-21  Joseph Myers  <joseph@codesourcery.com>

	* diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
	langhooks-def.h.
	(diagnostic_initialize): Initialize x_data not last_function.
	(diagnostic_report_current_function): Move to tree-diagnostic.c.
	(default_diagnostic_starter): Call
	diagnostic_report_current_module not
	diagnostic_report_current_function.
	(diagnostic_report_diagnostic): Initialize x_data not
	abstract_origin.
	(verbatim): Likewise.
	* diagnostic.h (struct diagnostic_info): Change abstract_origin to
	x_data.
	(struct diagnostic_context): Change last_function to x_data.
	(diagnostic_auxiliary_data): Replace with
	diagnostic_context_auxiliary_data and
	diagnostic_info_auxiliary_data.
	(diagnostic_last_function_changed, diagnostic_set_last_function,
	diagnostic_report_current_function): Move to tree-diagnostic.h.
	(print_declaration, dump_generic_node, print_generic_stmt,
	print_generic_stmt_indented, print_generic_expr,
	print_generic_decl, debug_c_tree, dump_omp_clauses,
	print_call_name, debug_generic_expr, debug_generic_stmt,
	debug_tree_chain, default_tree_printer): Move to
	tree-pretty-print.h.
	(debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
	print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
	gimple-pretty-print.h.
	* pretty-print.c: Don't include tree.h
	(pp_base_format): Don't handle %K here.
	(pp_base_tree_identifier): Move to tree-pretty-print.c.
	* pretty-print.h (text_info): Change abstract_origin to x_data.
	(pp_tree_identifier, pp_unsupported_tree,
	pp_base_tree_identifier): Move to tree-pretty-print.h.
	* gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
	tree-pretty-print.h: New files.
	* tree-pretty-print.c: Include tree-pretty-print.h.
	(percent_K_format): New.  Moved from pretty-print.c.
	(pp_base_tree_identifier): Move from pretty-print.c.
	* c-objc-common.c: Include tree-pretty-print.h.
	(c_tree_printer): Handle %K here.
	* langhooks.c: Include tree-diagnostic.h.
	(lhd_print_error_function): Use diagnostic_abstract_origin macro.
	* toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
	(default_tree_printer): Handle %K using percent_K_format.
	(general_init): Use default_tree_diagnostic_starter.
	* tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
	(free_lang_data): Use default_tree_diagnostic_starter.
	* c-pretty-print.c: Include tree-pretty-print.h.
	* cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
	* cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
	* dwarf2out.c: Include tree-pretty-print.h.
	* except.c: Include tree-pretty-print.h.
	* gimple-pretty-print.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* gimplify.c: Include tree-pretty-print.h.
	* graphite-poly.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* ipa-cp.c: Include tree-pretty-print.h.
	* ipa-inline.c: Include gimple-pretty-print.h.
	* ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
	* ipa-pure-const.c: Include gimple-pretty-print.h.
	* ipa-struct-reorg.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* ipa-type-escape.c: Include tree-pretty-print.h.
	* print-rtl.c: Include tree-pretty-print.h.
	* print-tree.c: Include gimple-pretty-print.h.
	* sese.c: Include tree-pretty-print.h.
	* tree-affine.c: Include tree-pretty-print.h.
	* tree-browser.c: Include tree-pretty-print.h.
	* tree-call-cdce.c: Include gimple-pretty-print.h.
	* tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
	* tree-chrec.c: Include tree-pretty-print.h.
	* tree-data-ref.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-dfa.c: Include tree-pretty-print.h.
	* tree-if-conv.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-inline.c: Include tree-pretty-print.h.
	* tree-into-ssa.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-nrv.c: Include tree-pretty-print.h.
	* tree-object-size.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-outof-ssa.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-parloops.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-predcom.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-scalar-evolution.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-sra.c: Include tree-pretty-print.h.
	* tree-ssa-address.c: Include tree-pretty-print.h.
	* tree-ssa-alias.c: Include tree-pretty-print.h.
	* tree-ssa-ccp.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-ssa-coalesce.c: Include tree-pretty-print.h.
	* tree-ssa-copy.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-ssa-copyrename.c: Include tree-pretty-print.h.
	* tree-ssa-dce.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-ssa-dom.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-ssa-dse.c: Include gimple-pretty-print.h.
	* tree-ssa-forwprop.c: Include tree-pretty-print.h.
	* tree-ssa-ifcombine.c: Include tree-pretty-print.h.
	* tree-ssa-live.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-ssa-loop-im.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-ssa-loop-niter.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
	* tree-ssa-math-opts.c: Include gimple-pretty-print.h.
	* tree-ssa-operands.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-ssa-phiprop.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-ssa-pre.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-ssa-propagate.c: Include gimple-pretty-print.h.
	* tree-ssa-reassoc.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-ssa-sccvn.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-ssa-sink.c: Include gimple-pretty-print.h.
	* tree-ssa-ter.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-ssa-uninit.c: Include gimple-pretty-print.h.
	* tree-ssa.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-stdarg.c: Include gimple-pretty-print.h.
	* tree-switch-conversion.c: Include gimple-pretty-print.h.
	* tree-tailcall.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-vect-data-refs.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-vect-loop-manip.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-vect-loop.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-vect-patterns.c: Include gimple-pretty-print.h.
	* tree-vect-slp.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-vect-stmts.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* tree-vectorizer.c: Include tree-pretty-print.h.
	* tree-vrp.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* value-prof.c: Include tree-pretty-print.h and
	gimple-pretty-print.h.
	* var-tracking.c: Include tree-pretty-print.h.
	* Makefile.in (OBJS-common): Add tree-diagnostic.o.
	(tree-diagnostic.o): New dependencies.
	(c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
	tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
	tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
	tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
	tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
	tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
	tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
	tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
	tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
	tree-ssa-address.o, tree-ssa-loop-niter.o,
	tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
	tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
	tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
	gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
	tree-data-ref.o, sese.o, graphite-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,
	tree-parloops.o, tree-stdarg.o, tree-object-size.o,
	gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
	toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
	ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
	ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
	tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
	tree-switch-conversion.o, var-tracking.o, value-prof.o,
	cfgexpand.o, pretty-print.o): Update dependencies.

2010-05-22  Andreas Tobler  <andreast@fgznet.ch>

	* tree-ssa-structalias.c: Remove tm_p.h from include.

2010-05-21  Jeff Law  <law@redhat.com>

	* ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.

2010-05-21  Jason Merrill  <jason@redhat.com>

	* tree-eh.c (cleanup_is_dead_in): New.
	(lower_try_finally): Don't generate a dead cleanup region.
	(lower_cleanup): Likewise.

2010-05-21  Jakub Jelinek  <jakub@redhat.com>

	PR debug/44223
	* haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
	unchain each use from the cyclic next_regno_use chain first.

2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>

	* real: Do not include gmp.h, mpfr.h, and mpc.h.
	(REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
	(real_value_negate, real_value_abs): New prototypes.
	(do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
	* realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
	new include file for interface between MPFR and REAL_VALUE_TYPE.
	* real.c: Include realmpfr.h.
	(real_arithmetic2): Remove legacy function.
	(real_value_negate): New.
	(real_value_abs): New.
	(mfpr_from_real, real_from_mpfr): Move from here...
	* realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
	* builtins.c: Include realmpfr.h.
	* fold-const.c: Include realmpfr.h.
	(fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
	(fold_negate_const): Likewise.
	(fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
	* toplev.c: Include realmpfr.h.
	* simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
	and real_value_negate.
	* fixed-value.c (check_real_for_fixed_mode): Likewise.
	* config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
	(vfp3_const_double_index): Likewise.
	(arm_print_operand): Likewise.
	* Makefile.in: Update dependencies.

2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (override_options): Increase the default
	of max-completely-peel-times.

2010-05-21  Julian Brown  <julian@codesourcery.com>
	    Mark Mitchell  <mark@codesourcery.com>

	* config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
	sibling calls for Thumb-1.
	* config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
	* config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
	Thumb-2.
	(*call_insn, *call_value_insn): Don't use for Thumb-2.
	(sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
	for Thumb-2.
	(return): New expander.
	(*arm_return): New name for ARM return insn.
	* config/arm/thumb2.md (*thumb2_return): New insn pattern.

2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>

	* config.gcc (sparc64-*-rtems*): New target.

2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.c (build_function_decl_skip_args): Fix grammar.
	(build_function_type_list_1): Fix typos, adjust formatting.

2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>

	* tree.h: Include real.h and fixed-value.h as basic datatypes.
	* dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
	tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
	tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
	tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
	genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
	tree-pretty-print.c, tree-loop-distribution.c,
	tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
	tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
	tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
	tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
	tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
	tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
	tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
	tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
	tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
	tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
	genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
	tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
	gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
	tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
	tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
	store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
	tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
	tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
	tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
	tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
	fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
	tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
	config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
	config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
	config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
	config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
	config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
	config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
	config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
	config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
	config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
	config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
	config/score/score7.c, config/score/score.c, config/arm/arm.c,
	config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
	config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
	config/bfin/bfin.c: Clean up redundant includes.
	* Makefile.in: Update accordingly.

2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>

	PR middle-end/44204
	* builtins.c (fold_call_stmt): Pass &error_mark_node if the call
	statement has no arguments.

2010-05-21  Kai Tietz  <kai.tietz@onevision.com>

	PR/44139
	* varasm.c (emutls_decl): Merge attributes to new decl.

2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/44101
	* gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
	around the uniquized constructor if its type requires a conversion.

2010-05-21  Jakub Jelinek  <jakub@redhat.com>

	PR debug/44205
	* tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
	at -O0 goto_locus of any of the incoming edges differs from
	goto_locus of outgoing edge, or gimple_location of any of the
	labels differs.

2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>

	* ira.c (ira_non_ordered_class_hard_regs): Define.
	(setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
	* ira-int.h (ira_non_ordered_class_hard_regs): Declare.
	* ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
	cost of unaligned hard regs when allocating multi-reg pseudos.

2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>

	* config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
	for TARGET_NO_FLOAT.
	* config/mips/mips.c (mips_file_start): Expand conditional expression
	into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
	(mips_override_options): Move -mno-float override -msoft-float and
	-mhard-float.
	* config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
	Condition(TARGET_SUPPORTS_NO_FLOAT).
	* config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
	__mips_no_float here.
	(SUBTARGET_OVERRIDE_OPTIONS): Delete.
	(TARGET_SUPPORTS_NO_FLOAT): Define.
	* config/mips/sdemtk.opt: Delete.

2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>

	* ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.

2010-05-20  Uros Bizjak  <ubizjak@gmail.com>

	PR target/43733
	* configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
	instead of sahf only for 64bit targets.

2010-05-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/44178
	* haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
	setup_ref_regs for DEBUG_INSNs.

2010-05-20  Jan Hubicka  <jh@suse.cz>

	PR middle-end/44197
	* varpool.c (varpool_remove_node): Handle in-varpool aliases.

2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>

	PR bootstrap/43870
	* df-scan.c (df_ref_compare): Stabilize sort.

2010-05-20  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
	argument.  Don't use DW_OP_piece if offset is non-zero,
	put offset into second DW_OP_bit_piece argument.
	(dw_sra_loc_expr): Adjust callers.  For memory expressions
	compute offset.

2010-05-20  Hans-Peter Nilsson  <hp@axis.com>

	PR target/44202
	* config/cris/cris.md ("*addsi3_v32"): Correct "cc"
	settings for 16-bit-constant "addo" alternative.

2010-05-19  James E. Wilson  <wilson@codesourcery.com>

	* config/mips/mips-dsp.md (add<DSPV:mode>3,
	mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.

	PR target/43764
	* mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
	(mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
	Use it.

2010-05-19  Joseph Myers  <joseph@codesourcery.com>

	* diagnostic.c (FLOAT, FFS): Don't undefine.
	* passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
	* cse.c, regmove.c: Remove comments about stdio.h and rtl.h
	include ordering.

2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>

	* combine.c (propagate_for_debug): Call make_compound_operation
	on the source value.
	(try_combine): When implementing a split chosen by find_split_point,
	either copy i2src or set it to null.  Assert that i2src is not null
	before substituting into CALL_INSN_FUNCTION_USAGE.

2010-05-19  Anatoly Sokolov  <aesok@post.ru>

	* double-int.h (double_int_ior): New function.
	* tree.h (build_int_cst_wide_type): Remove.
	* tree.c (build_int_cst_wide_type): Remove.
	* fold-const.c (native_interpret_int): Use double_int_to_tree instead
	of build_int_cst_wide_type.
	* stor-layout.c (set_sizetype): (Ditto.).
	* dojump.c (do_jump): Use build_int_cstu instead of
	build_int_cst_wide_type.

2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* langhooks.h (struct lang_hooks): Add new field deep_unsharing.
	* langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
	(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
	* gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
	TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
	propagate the 'data' argument to copy_tree_r.
	(copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
	Propagate 'data' argument to walk_tree.
	(copy_if_shared): New function.
	(unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
	(unmark_visited): New function.
	(unshare_body): Call copy_if_shared instead of doing it manually.
	(unvisit_body): Call unmark_visited instead of doing it manually.

2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>

	* hooks.h (hook_tree_tree_tree_bool_null): Rename to...
	(hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
	* hooks.c: Likewise.
	* target-def.h (TARGET_FOLD_BUILTIN): Define to
	hook_tree_tree_int_treep_bool_null.
	* target.h (struct gcc_target): Update signature of fold_builtin
	field.
	* doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
	* builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
	instead of the call expression.
	(fold_builtin_call_array): Pass n and argarray directly.
	(fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
	consing a list.
	* config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
	MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
	`i' and use it in place of `arity'.
	* config/sparc/sparc.c (sparc_fold_builtin): Update signature.
	Dereference `args' directly.
	* config/xtensa/xtensa (xtensa_fold_builtin): Likewise.

2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/sourcebuild.texi (Effective-Target Keywords): Document
	3dnow, sse3, sse2.
	(Directives): Document optional	dg-require-effective-target
	selector.

2010-05-19  Richard Guenther  <rguenther@suse.de>

	PR lto/44196
	* tree.c (find_decls_types_r): Walk BLOCKs and its vars.

2010-05-19  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi (-fwhopr): Document new optional jobs argument.
	* common.opt (fwhopr=): New.
	* opts.c (common_handle_option): Handle OPT_fwhopr.
	* gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
	* collect2.c (main): Match -fwhopr*.
	* lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
	Execute ltrans stage in parallel when jobs is bigger than 1.

2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
	pentiumpro on Solaris 8/x86 with Sun as.
	* configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
	hidden alias bug.
	(gcc_cv_as_ix86_quad): Check for .quad directive.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.

2010-05-19  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
	also for indirect edges.  Actual printing moved...
	(ipa_print_node_jump_functions_for_edge): ...here.
	(ipa_compute_jump_functions): Renamed to
	ipa_compute_jump_functions_for_edge and made static.
	(ipa_compute_jump_functions): New function.
	(make_edge_direct_to_target): Check if the number of arguments on
	the newly direct edge is the same as the number of parametrs of
	the callee.
	* ipa-cp.c (ipcp_init_stage): Most functionality moved to new
	ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
	* ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
	analysis functions unconditionally, call the new
	ipa_analyze_params_uses on the node instead of every edge.

2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>

	* tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
	to tree.
	(dump_mem_ref): Adopt debug code to handle a tree as step.  This
	also checks for a constant int vs.  non-constant but
	loop-invariant steps.
	(find_or_create_group): Change the sort algorithm to only consider
	steps that are constant ints.
	(idx_analyze_ref): Adopt code to handle a tree instead of a
	HOST_WIDE_INT for step.
	(gather_memory_references_ref): Handle tree instead of int and be
	prepared to see a NULL_TREE.
	(prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
	prefetches if the step cannot be calculated at compile time.
	(issue_prefetch_ref): Issue prefetches for non-constant but
	loop-invariant steps.

2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>

	Revert:
	2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (build_call_list): Remove.
	* tree.c (build_call_list): Remove.

2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (build_call_list): Remove.
	* tree.c (build_call_list): Remove.

2010-05-18  Jan Hubicka  <jh@suse.cz>

	* ipa-reference.c (propagate): Walk all nodes in the cleanup stage.

2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/43332
	* haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.

2010-05-18  Anatoly Sokolov  <aesok@post.ru>

	* tree.h (build_int_cstu): Implement as static inline.
	* tree.c (build_int_cstu): Remove function.
	(double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
	sign extended.

2010-05-18  Richard Guenther  <rguenther@suse.de>

	PR lto/44143
	* lto-wrapper.c (verbose): New variable.  Initialize from -v.
	(debug): Initialize from -save-temps.
	(collect_execute): Print command-line when verbose.
	(run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
	for ltrans invocation.  Produce -dumpbase flag again.
	(process_args): Remove.
	(main): Simplify.
	* collect2.c (maybe_run_lto_and_relink): Only pass object
	files to lto-wrapper.
	* gcc.c (LINK_COMMAND_SPEC): Likewise.

2010-05-18  Jan Hubicka  <jh@suse.cz>

	* opts.c (decode_options): Do not disable whopr at ipa_cp.
	* ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.

2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>

	PR lto/44184
	* lto-streamer-out.c (output_gimple_stmt): Output number of labels
	in a GIMPLE_ASM.
	* lto-streamer-in.c (input_gimple_stmt): Read number of labels
	in a GIMPLE_ASM.

2010-05-18  Jakub Jelinek  <jakub@redhat.com>

	PR debug/41371
	* var-tracking.c (find_loc_in_1pdv): Add a few checks from
	rtx_equal_p inline.

2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>

	* config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
	lto-macho as lto_binary_reader.

	* darwin.c (darwin_asm_named_section): Do not add assembler comment
	after .section directive; just print it before the directive instead.

2010-05-17  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_create_virtual_clone): Only check
	versionable_function_p when not in wpa and checking is enabled.
	* cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
	there are no more functions to materialize.

2010-05-17  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (struct ipa_replace_map): Add parm_num parameter.
	* lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
	New functions.
	(output_cgraph): Call output_cgraph_opt_summary.
	(input_cgrpah): Call input_cgraph_opt_summary.
	(output_cgraph_opt_summary_p, output_node_opt_summary,
	input_node_opt_summary, input_cgraph_opt_section): New functions.
	* lto-section-in.c (lto_section_name): Add cgraphopt.
	* tree-inline.c (tree_function_versioning): Handle parm_num.
	* lto-streamer.c (lto_get_section_name): Handle cgraphopt.
	* lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.

2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>

	* doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
	* tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
	the insn to prefetch ratio heuristic to loops with known trip count.

2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
	(schedule_prefetches): Do not generate a prefetch if the unroll factor
	is far from what is required by the prefetch.

2010-05-17  Jan Hubicka  <jh@suse.cz>

	* ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
	(ipcp_estimate_growth): Likewise.
	(ipcp_const_param_count): Likewise.
	(ipcp_insert_stage): Likewise.
	* ipa-prop.c (visit_load_for_mod_analysis): New function.
	(visit_store_addr_for_mod_analysis): Set used flag.
	(ipa_detect_param_modifications): Set used flag for SSE params;
	update use of walk_stmt_load_store_addr_ops.
	(ipa_print_node_params): Print used flag.
	(ipa_write_node_info): Stream used flag.
	(ipa_read_node_info): Likewise.
	* ipa-prop.h (struct ipa_param_descriptor): Add used field.
	(ipa_is_param_used): New function.
	(lto_ipa_fixup_call_notes): Remove unused declaration.

2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/44074
	* configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/i386/i386.c (print_operand) <case ;>: Also print ";" if
	!HAVE_AS_IX86_REP_LOCK_PREFIX.
	Don't emit whitespace.
	* config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
	(*rep_movsi): Likewise.
	(*rep_movsi_rex64): Likewise.
	(*rep_movqi): Likewise.
	(*rep_movqi_rex64): Likewise.
	(*rep_stosdi_rex64): Likewise.
	(*rep_stossi): Likewise.
	(*rep_stossi_rex64): Likewise.
	(*rep_stosqi): Likewise.
	(*rep_stosqi_rex64): Likewise.
	(*cmpstrnqi_nz_1): Use {%;} after repz.
	(*cmpstrnqi_nz_rex_1): Likewise.
	(*cmpstrnqi_1): Likewise.
	(*cmpstrnqi_rex_1): Likewise.
	(*strlenqi_1): Use {%;} after repnz.
	(*strlenqi_rex_1): Likewise.
	* config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
	(*sync_compare_and_swap<mode>): Likewise.
	(sync_double_compare_and_swap<mode>): Likewise.
	(*sync_double_compare_and_swapdi_pic): Likewise.
	(sync_old_add<mode>): Likewise.
	(sync_add<mode>): Likewise.
	(sync_sub<mode>): Likewise.
	(sync_<code><mode>): Likewise.

2010-05-17  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
	otr_token and polymorphic.
	* cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
	(cgraph_clone_edge): Copy the above fields.
	* tree.c (get_binfo_at_offset): New function.
	* tree.h (get_binfo_at_offset): Declare.
	* ipa-prop.h (enum jump_func_type): Added known_type jump function
	type, reordered items, updated comments.
	(union jump_func_value): Added base_type field, reordered fields.
	(enum ipa_lattice_type): Moved down in the file.
	(struct ipa_param_descriptor): New field polymorphic.
	(ipa_is_param_polymorphic): New function.
	* ipa-prop.c: Include gimple.h and gimple-fold.h.
	(ipa_print_node_jump_functions): Print known type jump functions.
	(compute_complex_pass_through): Renamed to...
	(compute_complex_assign_jump_func): this.
	(compute_complex_ancestor_jump_func): New function.
	(compute_known_type_jump_func): Likewise.
	(compute_scalar_jump_functions): Create known type and complex ancestor
	jump functions.
	(ipa_note_param_call): New parameter polymorphic, set the corresponding
	flag in the call note accordingly.
	(ipa_analyze_call_uses): Renamed to...
	(ipa_analyze_indirect_call_uses): this.  New parameter target, define
	variable var only in the block where it is used.
	(ipa_analyze_virtual_call_uses): New function.
	(ipa_analyze_call_uses): Likewise.
	(combine_known_type_and_ancestor_jfs): Likewise.
	(update_jump_functions_after_inlining): Implemented handling of a
	number of new jump function types combination.
	(print_edge_addition_message): Removed.
	(make_edge_direct_to_target): New function.
	(try_make_edge_direct_simple_call): Likewise.
	(try_make_edge_direct_virtual_call): Likewise.
	(update_call_notes_after_inlining): Renamed to...
	(update_indirect_edges_after_inlining): this.  Moved edge creation for
	indirect calls to try_make_edge_direct_simple_call, also calls
	try_make_edge_direct_virtual_call for virtual calls.
	(ipa_print_node_params): Changed the header message.
	(ipa_write_jump_function): Stream also known type jump functions.
	(ipa_read_jump_function): Likewise.
	(ipa_write_indirect_edge_info): Stream new fields in
	cgraph_indirect_call_info.
	(ipa_read_indirect_edge_info): Likewise.
	* Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
	GIMPLE_FOLD_H.

2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.

2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (CALL_EXPR_ARGS): Delete.
	(call_expr_arglist): Delete.
	* tree.c (call_expr_arglist): Delete.
	* builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
	targetm.fold_builtin.
	* config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
	Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
	* config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
	arglist parameter.  Use CALL_EXPR_ARG.
	(picochip_expand_builtin_3op): Likewise.
	(picochip_expand_builtin_2opvoid): Likewise.
	(picochip_expand_array_get): Likewise.
	(picochip_expand_array_put): Likewise.
	(picochip_expand_array_testport): Likewise.
	(picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
	rather than arglist.
	* config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
	CALL_EXPR_ARGS.
	* config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
	than TREE_VALUE and TREE_CHAIN.
	* config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
	* doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
	the arglist.

2010-05-17  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/42347
	* cfglayout.c (fixup_reorder_chain): Allow returnjump_p
	to have no fallthru edge.

	PR middle-end/44102
	* cfgcleanup.c (try_optimize_cfg): When removing trivially empty
	bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
	mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
	add BARRIER after previous bb if needed.

2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.c (build_function_type_list_1): Remove bogus assert condition.

2010-05-17  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
	unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
	with copy_reg rtx param.
	(rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
	Correct cases where code for ABI_V4 did not initialise the reg
	used to access frame.  Also leave frame_reg_rtx as sp for large
	frames that save no regs.

2010-05-17  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/44133
	* tree-sra.c (create_access_replacement): New parameter rename, mark
	the replaement for renaming only when it is true.
	(get_access_replacement): Pass true in the rename parameter of
	create_access_replacement.
	(get_unrenamed_access_replacement): New function.
	(replace_uses_with_default_def_ssa_name): New parameter racc, get the
	replacement declaration from it.

2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>

	* function.c (try_fit_stack_local, add_frame_space): New static
	functions.
	(assign_stack_local_1): Use them.  Look for opportunities to use
	space previously wasted on alignment.
	* function.h (struct frame_space): New.
	(struct rtl_data): Add FRAME_SPACE_LIST member.
	* reload1.c (something_was_spilled): New static variable.
	(alter_reg): Set it.
	(reload): Test it in addition to testing if the frame size changed.

2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>

	* config/s390/s390.c: Define sane prefetch settings and activate
	flag_prefetch_loop_arrays on -O3.
	* config/s390/s390.h: Declare that read can use write prefetch.

2010-05-17  Jakub Jelinek  <jakub@redhat.com>

	* lto-streamer-out.c (lto_output): Fix --enable-checking=release
	build.

2010-05-16  Jan Hubicka  <jh@suse.cz>

	* ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
	function body; do not check stdarg field of struct function.

2010-05-16  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (dump_cgraph_node): Dump versionable flag.
	* cgraph.h (cgraph_local_info): Add versionable flag.
	* ipa-cp.c (ipcp_analyze_node): Set versionable flag.
	(ipcp_versionable_function_p): Use it.
	* lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
	versionable flag.

2010-05-16  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_clone_node): Take decl argument and insert
	clone into hash when it is different from orig.
	(cgraph_create_virtual_clone): Update use of cgraph_clone_node.
	* cgraph.h (cgraph_clone_node): Update prototype.
	* lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
	(lto_cgraph_encoder_delete): Delete body map.
	(lto_cgraph_encoder_size): Move to header.
	(lto_cgraph_encoder_encode_body_p,
	lto_set_cgraph_encoder_encode_body): New.
	(lto_output_node): Do not take written_decls argument; output clone_of
	pointer.
	(add_node_to): Add include_body_argument; call
	lto_set_cgraph_encoder_encode_body on master of the clone.
	(add_references): Update use of add_node_to.
	(compute_ltrans_boundary): Likewise.
	(output_cgraph): Do not create written_decls bitmap.
	(input_node): Take nodes argument; stream in clone_of correctly.
	(input_cgraph_1): Update use of input_node.
	* lto-streamer-out.c (lto_output): Use encoder info to decide
	what bodies to output.
	* ipa-inline.c (cgraph_clone_inlined_nodes,
	cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
	* lto-streamer.h (lto_cgraph_encoder_d): Add body.
	(lto_cgraph_encoder_size): Define here.
	(lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
	Declare.

2010-05-16  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi (-fipa-struct-reorg): Do not mention
	-fipa-type-escape.
	* ipa-type-escape.c (gate_type_escape_vars): Run when
	-fipa-struct-reorg runs.
	* opts.c (decode_options): Do not unset flag_ipa_type_escape.
	* common.opt (fipa-type-escape): Remove.

2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
	(decode_options): Likewise.
	* Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.

2010-05-16  Jan Hubicka  <jh@suse.cz>

	* ipa.c (function_and_variable_visibility): Also bring local all
	aliases.

2010-05-16  Richard Guenther  <rguenther@suse.de>

	* alias.c (nonoverlapping_memrefs_p): Remove use of
	IPA type-escape information.

2010-05-16  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (c_common_reswords): Add _Static_assert for C.
	* c-parser.c (c_token_starts_declaration,
	c_parser_next_token_starts_declaration,
	c_parser_static_assert_declaration_no_semi,
	c_parser_static_assert_declaration): New.
	(c_parser_declaration_or_fndef): Add parameter static_assert_ok.
	Handle static assertions if static_assert_ok.
	(c_parser_external_declaration, c_parser_declaration_or_fndef,
	c_parser_compound_statement_nostart, c_parser_label,
	c_parser_for_statement, c_parser_objc_methodprotolist,
	c_parser_omp_for_loop): All callers of
	c_parser_declaration_or_fndef changed.
	(c_parser_struct_declaration): Handle static assertions.
	(c_parser_compound_statement_nostart): Use
	c_parser_next_token_starts_declaration and
	c_token_starts_declaration to detect start of declarations.
	(c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
	Likewise.

2010-05-16  Anatoly Sokolov  <aesok@post.ru>

	* config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
	LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
	* config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
	TARGET_FUNCTION_VALUE_REGNO_P): Define.
	(mmix_function_outgoing_value): Rename to...
	(mmix_function_value): ...this. Make static. Add 'outgoing' argument.
	(mmix_function_value_regno_p): Make static.
	(mmix_libcall_value): New function.
	* config/mmix/mmix-protos.h (mmix_function_outgoing_value,
	mmix_function_value_regno_p): Remove declaration.

2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
	BUILT_IN_ALLOCA if stack checking is enabled.

2010-05-16  Richard Guenther  <rguenther@suse.de>

	* var-tracking.c (vars_copy_1): Inline ...
	(vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
	(variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
	(variable_merge_over_cur): Adjust.  Merge asserts.
	(variable_merge_over_src): Likewise.
	(dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
	(variable_post_merge_new_vals): Merge asserts.
	(variable_post_merge_perm_vals): Likewise.
	(find_mem_expr_in_1pdv): Likewise.
	(dataflow_set_different_value): Remove.
	(onepart_variable_different_p): Merge asserts.
	(variable_different_p): Likewise.
	(dataflow_set_different_1): Inline ...
	(dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
	(emit_notes_for_differences_1): Merge asserts.

2010-05-16  Richard Guenther  <rguenther@suse.de>

	* lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
	* optabs.c (libfunc_decl_hash): Likewise.
	* varasm.c (emutls_decl): Likewise.

2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>

	* c-decl.c: Don't include gimple.h.
	(merge_decls): Do not copy gimple_body.

2010-05-15  Jason Merrill  <jason@redhat.com>

	* c.opt: Add -fnothrow-opt.

2010-05-15  Jan Hubicka  <jh@suse.cz>

	* ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
	analyzed.
	* passes.c (ipa_write_summaries): Write all analyzed nodes.

2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>

	* vecir.h: New file with VEC primitives for tree, gimple, and rtl.
	* Makefile.in: Add it.
	Fix all other Makefile dependencies for changes below.
	* tree.h: Include it instead of defining VEC primitives here.
	* gimple.h: Likewise.
	* rtl.h: Likewise.
	* tree-inline.h: Inlclude vecir.h instead of gimple.h.
	* except.h: Include vecir.h, break dependence on tree.h.

	* gimplify.c (append_to_statement_list_1, append_to_statement_list):
	Move from here...
	* tree-iterator.c: ...to here.
	* tree-iterator.h: Fix file introduction comment.  Add extern markers.

	* c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
	tm_p.h.
	* c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
	* c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
	integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
	tree-mudflap.h, and target.h.
	* c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
	predict.h, tree-inline.h, gimple.h, and langhooks.h.
	* c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
	Add FIXME for why gimple.h is still included (should be unnecessary
	since GCC 4.5 gimplification unit-at-a-time).
	* c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
	* c-pragma.c: Add FIXME for why function.h needs to be included just
	for cfun, at front-end level.
	Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
	Do not include ggc.h, but include vecprim.h for VEC(char).
	* c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
	Explain why target.h is included.
	* c-omp.h: Do not include tm.h, function.h, and bitmap.h.
	Explain why gimple.h is included.
	* c-ppoutput.c: Do not include tm.h.
	* c-common.c: Do not include gimple.h.  Explain why expr.h is included.
	* c-parses.c: Explain why rtl.h is included, and that this (and only
	this) is also why tm.h must be included.
	Do not include except.h.
	* c-lang.c: Do not include ggc.h.

2010-05-15  Uros Bizjak  <ubizjak@gmail.com>

	* targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.

2010-05-15  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (grokfield): Allow typedefs for anonymous structs and
	unions by default if those structs and unions have no tags.  Do
	not condition anonymous struct and unions handling on flag_iso.
	Allow anonymous structs and unions for C1X.
	(finish_struct): Do not diagnose lack of named fields when
	anonymous structs and unions present for C1X.  Accept flexible
	array members in structure with anonymous structs or unions but no
	directly named fields.
	* doc/extend.texi (Unnamed Fields): Update.

2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple.h (compare_field_offset): Rename into...
	(gimple_compare_field_offset): ...this.
	* gimple.c (compare_field_offset): Rename into...
	(gimple_compare_field_offset): ...this.  Compare the full access if
	the offset is self-referential.
	(gimple_types_compatible_p): Adjust for above renaming.
	* lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
	DECL_NONADDRESSABLE_P flag of fields before merging them.

2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.h (ctor_to_list): Delete.
	* tree.c (ctor_to_list): Delete.

2010-05-15  Jan Hubicka  <jh@suse.cz>

	* ipa-reference.c: Include toplev.h
	(is_proper_for_analysis): Only add to all_module_statics
	if it is allocated.
	(write_node_summary_p, stream_out_bitmap,
	ipa_reference_write_optimization_summary,
	ipa_reference_read_optimization_summary): New.
	(struct ipa_opt_pass_d pass_ipa_reference): Add
	optimization summary streaming.
	* lto-cgraph.c (referenced_from_this_partition_p,
	reachable_from_this_partition_p): New functions.
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
	call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
	* opts.c (decode_options): Enable ipa_reference.
	* Makefile.in (ipa-reference.o): Add toplev.h dependency.
	* lto-streamer.h (referenced_from_this_partition_p,
	reachable_from_this_partition_p): Declare.

2010-05-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44038
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
	taking the address of a V_C_E of a constant.

2010-05-14  Jan Hubicka  <jh@suse.cz>

	* tree.h (memory_identifier_string): Remove.
	* ipa-reference.c: Update comment; do not include gt-ipa-reference.h
	(ipa_reference_global_vars_info_d): Remove statics_not_read and
	statics_not_written.
	(ipa_reference_optimization_summary_d): New structure.
	(ipa_reference_optimization_summary_t): New type and vector.
	(ipa_reference_vars_info_d): Embedd structures instead of using
	pointers.
	(reference_vars_to_consider): Remove out of GGC space.
	(module_statics_escape): Remove.
	(global_info_obstack): Rename to ...
	(optimization_summary_obstack): ... this one.
	(initialization_status_t): Remove.
	(memory_identifier_string): Remove.
	(get_reference_vars_info): Fix indenting.
	(set_reference_vars_info): Likewise.
	(get_reference_optimization_summary): New.
	(set_reference_optimization_summary): New.
	(get_global_reference_vars_info): Remove.
	(ipa_reference_get_read_global): Remove.
	(ipa_reference_get_written_global): Remove.
	(ipa_reference_get_not_read_global): Update.
	(ipa_reference_get_not_written_global): Update.
	(is_proper_for_analysis): Outlaw addressable.
	(propagate_bits): Update for new datastructures.
	(analyze_variable): Remove.
	(init_function_info): Update for new datastructures.
	(clean_function_local_data): Remove.
	(clean_function): Remove.
	(copy_global_bitmap): Use optimizations_summary_obstack.
	(duplicate_node_data): Duplicate optimization summary only.
	(remove_node_data): Remove optimization summary only.
	(generate_summary): Do not analyze variables; do not compute
	module_statics_escape; do not prune solutions by it.
	(read_write_all_from_decl): Fix typos in comments.
	(propagate): Doscover readonly and nonaddressable first;
	update for new datastructures; share global bitmaps.
	* ipa-reference.h (ipa_reference_get_read_global,
	ipa_reference_get_written_global): Remove.
	* ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
	* Makefile.in: Remove ipa-refereference from GT files.

2010-05-14  Jakub Jelinek  <jakub@redhat.com>

	PR debug/44112
	* dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
	for all SYMBOL_REF_DECLs.

2010-05-14  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
	(varpool_all_refs_explicit_p): New inline function.
	* ipa-reference.c: Update comment.
	(module_statics_written): Remove.
	(get_static_decl): Remove.
	(ipa_init): Do not initialize module_statics_written.
	(analyze_function): Likewise.
	(generate_summary): Likewise; do not compute module_statics_readonly
	and do not update variable flags.
	(propagate): Call ipa_discover_readonly_nonaddressable_vars.
	* ipa.c: Inlucde flags.h
	(cgraph_local_node_p): New.
	(cgraph_remove_unreachable_nodes): Return early when not optimizing;
	promote functions to local.
	(ipa_discover_readonly_nonaddressable_vars): New function.
	(function_and_variable_visibility): Use cgraph_local_node_p.
	* varpool.c (varpool_finalize_decl): Set force_output for
	DECL_PRESERVE_P vars.

2010-05-14  Jan Hubicka  <jh@suse.cz>

	* ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.

2010-05-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44119
	* tree-ssa-pre.c (eliminate): Properly mark replacement of
	a PHI node necessary.

2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.

2010-05-14  Jason Merrill  <jason@redhat.com>

	PR c++/44127
	* gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
	(gimple_call_set_nothrow): New.
	* gimple.c (gimple_build_call_from_tree): Call it.
	(gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.

	PR c++/44127
	* gimplify.c (gimplify_seq_add_stmt): No longer static.
	* gimple.h: Declare it.
	* gimple.c (gimple_build_eh_filter): No ops.

2010-05-14  Jan Hubicka  <jh@suse.cz>

	* ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
	nodes already in queue.
	(cgraph_remove_unreachable_nodes): Cleanup; fix problem with
	re-enqueueing node.

2010-05-14  Jakub Jelinek  <jakub@redhat.com>

	PR debug/44136
	* cfgexpand.c (expand_debug_expr): If non-memory op0
	has BLKmode, return NULL.

2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config.gcc: Add support for --with-cpu option for bdver1.
	* config/i386/i386.h (TARGET_BDVER1): New macro.
	(ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
	to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
	(ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
	to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
	Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
	(TARGET_CPU_DEFAULT_NAMES): Add bdver1.
	(processor_type): Add PROCESSOR_BDVER1.
	* config/i386/i386.md: Add bdver1 as a new cpu attribute to match
	processor_type in config/i386/i386.h.
	Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
	movaps <reg, reg> instead of movapd <reg, reg> when replacing
	movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
	Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
	to emit packed xor instead of packed double/packed integer
	xor for SSE and AVX when moving a zero value.
	* config/i386/sse.md: Add check for
	TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
	movapd/movdqa for SSE and AVX.
	Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
	single logical operations i.e and, or and xor instead of packed double
	logical operations for SSE and AVX.
	* config/i386/i386-c.c (ix86_target_macros_internal):
	Add PROCESSOR_BDVER1.
	* config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
	(has_fma4, has_xop): New.
	* config/i386/i386.c (bdver1_cost): New variable.
	(m_BDVER1): New macro.
	(m_AMD_MULTIPLE): Add m_BDVER1.
	(x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
	x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
	x86_tune_use_simode_fiop, x86_tune_promote_qimode,
	x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
	x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
	x86_tune_sse_partial_reg_dependency,
	x86_tune_sse_unaligned_load_optimal,
	x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
	x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
	x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
	x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
	x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
	Enable/disable for bdver1.
	(processor_target_table): Add bdver1_cost.
	(cpu_names): Add bdver1.
	(override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
	 processor_alias_table.
	(ix86_expand_vector_move_misalign): Change.
	TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
	Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
	Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
	of movupd/movdqu for SSE and AVX.
	(ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
	(ix86_tune_adjust_cost): Add code for bdver1.
	(standard_sse_constant_opcode): Add check for
	TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
	of packed double xor for SSE and AVX.

2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>

	* tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
	result to unsigned.

2010-05-14  Tristan Gingold  <gingold@adacore.com>

	* toplev.c (default_debug_hooks): Remove this variable.
	(process_options): Remove assignments to default_debug_hooks.

2010-05-14  Martin Jambor  <mjambor@suse.cz>

	* langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
	(LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
	* langhooks.h (struct lang_hooks_for_decls): Removed field
	fold_obj_type_ref.
	* tree.c (free_lang_data): Remove assignment to
	lang_hooks.fold_obj_type_ref.
	* tree.def (OBJ_TYPE_REF): Update comment.

2010-05-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44124
	* tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.

2010-05-14  Alan Modra  <amodra@gmail.com>

	PR target/44075
	* config/rs6000/rs6000.c (struct machine_function): Reorder
	fields for better packing.  Add lr_save_state.
	(rs6000_ra_ever_killed): Return lr_save_state if set.
	(rs6000_emit_eh_reg_restore): Set lr_save_state.

2010-05-13  Jan Hubicka  <jh@suse.cz>

	* varpool.c (decide_is_variable_needed): Drop code checking
	TREE_SYMBOL_REFERENCED.

2010-05-13  Jan Hubicka  <jh@suse.cz>

	* final.c (output_addr_const): Do not call mark_decl_referenced.
	* cgraphunit.c (process_function_and_variable_attributes): Use
	mark_needed_node dirrectly.
	(assemble_thunk): Do not call mark_decl_referenced.

2010-05-13  Anatoly Sokolov  <aesok@post.ru>

	* targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.

2010-05-13  Jeff Law  <law@redhat.com>

	* ira-conflicts.c (print_allocno_conflicts): New function broken out
	from...
	(print_conflicts): Call print_allocno_conflicts.

2010-05-13  Jakub Jelinek  <jakub@redhat.com>

	PR debug/44104
	* dwarf2out.c (modified_type_die): Don't dereference mod_type_die
	if it is NULL.

2010-05-13  Kai Tietz  <kai.tietz@onevision.com>

	* config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
	t-mingw-w64 or t-mingw-w32 for multilib configuration.
	* config/i386/t-mingw-w32: New.
	* config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.

2010-05-13  Martin Jambor  <mjambor@suse.cz>

	* gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
	gimple-fold.c).
	* gimple-fold.c (get_base_binfo_for_type): New function.
	(gimple_get_relevant_ref_binfo): Likewise.
	(gimple_fold_obj_type_ref_known_binfo): Likewise.
	(gimple_fold_obj_type_ref): Likewise.
	(fold_gimple_call): Simplify condition for folding virtual calls
	and call gimple_fold_obj_type_ref.
	* gimple.h (gimple_get_relevant_ref_binfo): Declare.
	(gimple_fold_obj_type_ref_known_binfo): Likewise.

2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>

	* config/rs6000/rs6000-protos.h
	(rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
	* config/rs6000/rs6000.c (rs6000_mode_dependent_address)
	(rs6000_debug_mode_dependent_address)
	(rs6000_mode_dependent_address_ptr): Likewise.

2010-05-13  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43983
	* var-tracking.c (track_expr_p): Allow tracking of variables optimized
	by SRA.
	* Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
	* tree-sra.c (create_access_replacement): Call unshare_expr before
	passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
	* dwarf2out.c: Include tree-flow.h.
	(struct var_loc_node): Rename var_loc_note field to loc, add comment.
	(size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
	Handle DW_OP_bit_piece.
	(decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
	construct_piece_list, adjust_piece_list): New functions.
	(add_var_loc_to_decl): Handle SRA optimized variables.
	Adjust for var_loc_note to loc field renaming.
	(dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
	in VAR_LOCATION note.
	(new_loc_descr_op_bit_piece): New function.
	(dw_sra_loc_expr): New function.
	(dw_loc_list): Use it.  Don't handle the last range after the
	loop, handle it inside of the loop.  Adjust for var_loc_note
	to loc field renaming.
	(add_location_or_const_value_attribute): Only special case
	single entry loc lists if loc is NOTE_P.  Adjust for
	var_loc_note to loc field renaming.
	(dwarf2out_var_location): Don't set newloc->var_loc_note
	and newloc->next here.

2010-05-12  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
	flag.
	* cgraph.h (cgraph_only_called_directly_p,
	cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
	(cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
	* cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
	(assemble
	* ipa.c (cgraph_remove_unreachable_nodes): Use
	cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
	flags.
	* tree-inline.c (copy_bb): Check address_taken flag.
	* tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
	externally_visible flag.

2010-05-12  Jason Merrill  <jason@redhat.com>

	PR bootstrap/44048
	PR target/44099
	* dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
	* sdbout.c (plain_type_1): Likewise.
	* dwarf2out.c (is_base_type): Likewise.
	(gen_type_die_with_usage): Likewise.  Generate
	DW_TAG_unspecified_type for any LANG_TYPE.

2010-05-12  Jan Hubicka  <jh@suse.cz>

	* cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
	indrect edges too.
	* cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
	(cgraph_clone_edge): Update.
	(cgraph_node_remove_callees): Remove indirect calls too.
	* cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
	(cgraph_create_indirect_edge): Update prototype.
	* ipa-reference.c (has_proper_scope_for_analysis): Rename to
	is_proper_for_analysis.
	(add_new_function, visited_nodes, function_insertion_hook_holder,
	get_local_reference_vars_info, mark_address_taken, mark_address,
	mark_load, mark_store, check_asm_memory_clobber, check_call,
	scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
	(ipa_init): Do not initialize visited_nodes;
	function_insertion_hook_holder.
	(analyze_variable): Rewrite.
	(analyze_function): Rewrite.
	(copy_local_bitmap): Remove.
	(duplicate_node_dat): Do not duplicate local info.
	(generate_summary): Simplify to only walk cgraph.
	(write_node_summary_p, ipa_reference_write_summary,
	ipa_reference_read_summary): Remove.
	(propagate): Do not remove function insertion;
	generate summary.
	(pass_ipa_reference): NULLify summary handling fields.
	* lto-cgraph.c (lto_output_edge): Output ecf_flags.
	(input_edge): Input ecf_flags.
	* ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
	(update_indirect_edges_after_inlining): Ignore edges with unknown
	param.

2010-05-12  Sriraman Tallam  <tmsriram@google.com>

	* implicit-zee.c: New file.
	* tree-pass.h (pass_implicit_zee): Declare.
	* passes.c (init_optimization_passes): Add zee pass.
	* common.opt (fzee): New flag.
	* timevar.def (TV_ZEE): Define.
	* config/i386/i386.c (optimization_options): Turn on ZEE for level 2
	and beyond.
	* Makefile.in (implicit-zee.o): Add new build file.

2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
	    Nathan Froyd  <froydnj@codesourcery.com>

	* c-common.c (sync_resolve_params): Remove write-only variable.

2010-05-12  Anatoly Sokolov  <aesok@post.ru>

	* target.h (struct gcc_target): Add mode_dependent_address_p field.
	* target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
	(TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
	* targhooks.c (default_mode_dependent_address_p): New function.
	* targhooks.h (default_mode_dependent_address_p): Declare function.
	* doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
	(GO_IF_MODE_DEPENDENT_ADDRESS): Update.
	* recog.c (mode_dependent_address_p): Call mode_dependent_address_p
	target hook. Change return type to bool.
	* recog.h (mode_dependent_address_p): Change return type to bool.

2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
	    Nathan Froyd  <froydnj@codesourcery.com>

	* tree-mudflap.c (build_function_type_0, build_function_type_1,
	build_function_type_2, build_function_type_3): Remove.
	(mudflap_init): Use build_function_type_list.

2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
	    Nathan Froyd  <froydnj@codesourcery.com>

	* coverage.c (build_fn_info_value): Call build_constructor instead of
	build_constructor_from_list.
	(build_ctr_info_value): Likewise.
	(build_gcov_info): Likewise.

2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>

	* tree.c (build_constructor): Compute TREE_CONSTANT for the
	resultant constructor.
	(build_constructor_single): Don't set TREE_CONSTANT.
	(build_constructor_from_list): Don't compute TREE_CONSTANT.

2010-05-12  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (struct varpool_node): Add aux.
	* varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
	* varpool.c (varpool_remove_node): Do not remove initializer.
	(varpool_reset_queue): Export.
	(varpool_finalize_decl): Volatile vars are forced to be output.
	* lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
	replaced decl.
	* ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
	process_references, varpool_can_remove_if_no_refs): New functions.
	(cgraph_remove_unreachable_nodes): Handle variables too.

2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/44088
	* config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.

2010-05-12  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/44085
	* gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
	change value of ORT_TASK.
	(new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
	(omp_notice_threadprivate_variable): New function.
	(omp_notice_variable): Call it for threadprivate variables.
	If enclosing ctx is a task, print enclosing task rather than
	enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
	(gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
	if task has untied clause.

	PR debug/42278
	* dwarf2out.c (base_type_die): Don't add name attribute here.
	(modified_type_die): Instead of sizetype use
	its underlying original type.  If a DW_TAG_base_type doesn't
	have name added, add __unknown__.
	(dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
	always call force_type_die instead.

2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* targhooks.c (default_stack_protect_guard): Avoid sharing RTL
	for __stack_chk_guard.

2010-05-11  Jakub Jelinek  <jakub@redhat.com>

	* c-opts.c (c_common_parse_file): If start_end_main_source_file,
	don't call start_source_file debug hook here...
	(finish_options): ... but here, after outputting predefined and
	command line defines and undefs.

	PR middle-end/44071
	* cfglayout.c (fixup_reorder_chain): Allow asm goto to have
	no fallthru edge.
	* cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
	optimizing away empty bb with no successors, move over its
	footer chain to fallthru predecessor.
	* cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
	(rtl_split_edge): For asm goto call patch_jump_insn even if
	splitting fallthru edge.

	PR c++/44059
	* config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
	even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
	* config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
	* dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
	on DW.ref.* decls.

	PR c++/44062
	* c-parser.c (c_parser_expression): Mark LHS of a comma
	expression as read if it is a decl, handled component or
	COMPOUND_EXPR with that on the RHS.
	* c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
	if it is a decl or handled component.

2010-05-11  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_symtab_free): New function.
	* lto-streamer.h (lto_symtab_free): Declare.

2010-05-11  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
	that if function is needed it is reachable.
	(lto_output_node): See if it the function is reachable or referenced.
	(output_cgraph): Update call of lto_output_node.
	* lto-streamer.h (reachable_from_other_partition_p): Declare.

2010-05-11  Jan Hubicka  <jh@suse.cz>

	* crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
	Mark as used.

2010-05-11  Jan Hubicka  <jh@suse.cz>

	PR tree-optimize/44063
	* ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
	queue.
	(cgraph_decide_inlining_of_small_function): Skip check when disrgarding
	limits.
	(estimate_function_body_sizes): Compute sizes even when disregarding.

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

	* collect2.c (maybe_lto_object_file): Add x64-coff magic and check.

2010-05-11  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
	into every boundary.

2010-05-11  Jan Hubicka  <jh@suse.cz>

	* matrix-reorg.c (matrix_reorg): Rebuild edges.

2010-05-11  Jan Hubicka  <jh@suse.cz>

	* lto-streamer.c (lto_streamer_cache_add_to_node_array,
	lto_streamer_cache_delete): Put nodes into heap.
	* lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
	heap.

2010-05-11  Jan Hubicka  <jh@suse.cz>

	* cgraphbuild.c (cgraph_rebuild_references): New.
	* cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
	out extern inlines.
	* cgraph.h (cgraph_rebuild_references): Declare.
	* tree-inline.c (tree_function_versioning): Use it.
	* ipa-struct-reorg.c (do_reorg_for_func): Likewise.

2010-05-11  Jan Hubicka  <jh@suse.cz>

	* cgraph.c: Include ipa-utils.h
	(cgraph_create_virtual_clone): Update references.
	* Makefile.in (cgraph.o): Add dependency at ipa-utils.h

2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>

	* tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
	prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
	cache size.

2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>

	* tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.

2010-05-11  Jakub Jelinek  <jakub@redhat.com>

	* gcc.c (execute): For -### don't quote arguments that
	contain just alphanumerics and _/-. characters.
	* doc/invoke.texi: Document that change for -###.

	PR debug/44023
	* df-problems.c (struct dead_debug): Add to_rescan field.
	(dead_debug_init): Clear to_rescan field.
	(dead_debug_finish): Rescan all debug insns in to_rescan
	bitmap and free the bitmap.
	(dead_debug_insert_before): Instead of rescanning debug insns
	immediately queue their rescanning until dead_debug_finish.
	(df_note_bb_compute): After dead_debug_add do continue instead
	of break.

2010-05-10  Jakub Jelinek  <jakub@redhat.com>

	PR debug/44028
	* haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
	clear also INSN_REG_USE_LIST.

2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.

2010-05-10  Jan Hubicka  <jh@suse.cz>

	* lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
	commited change.

2010-05-10  Jan Hubicka  <jh@suse.cz>

	* passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
	Allocate encoders.
	* lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
	* lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
	(lto_streamer_cache_create): Init alloc pool.
	(lto_streamer_cache_delete): Free alloc pool.
	* lto-streamer.h: Include alloc pool.
	(lto_streamer_cache_d): Use alloc pool.
	* lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.

2010-05-10  Jan Hubicka  <jh@suse.cz>

	* Makefile.in (cgraphbuild.o): Add dependency on except.h.
	* cgraphbuild.c: Include except.h
	(record_type_list, record_eh_tables): New function.
	(build_cgraph_edges, rebuild_cgraph_edges): Use it.

2010-05-10  Jan Hubicka  <jh@suse.cz>

	* crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
	__frame_dummy_init_array_entry, force_to_data): Attribute as used
	rather than unused.

2010-05-10  Michael Matz  <matz@suse.de>

	* tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
	(can_reassociate_p): Use FLOAT_TYPE_P.
	* tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
	(vect_force_simple_reduction): ... this.
	* tree-parloops.c (gather_scalar_reductions): Use
	vect_force_simple_reduction.
	* tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
	vect_is_simple_reduction, add modify argument, if true rewrite
	"a-b" into "a+(-b)".
	(vect_is_simple_reduction, vect_force_simple_reduction): New
	functions.
	(vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.

2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
	    Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/44012
	* ira-build.c (remove_unnecessary_allocnos): Nullify
	regno_allocno_map of the removed allocno.

2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
	to /dev/null.
	* configure: Regenerate.

2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sol2.c (solaris_assemble_visibility): Declare decl, vis
	unused.
	Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
	* configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
	support in Sun ld.
	* configure: Regenerate.

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

	* lto-symtab.c (lto_symtab_entry_marked_p): Make entry
	marked if the entry identifier is marked.

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

	* c-common.c (struct c_common_attributes): Add fnspec attribute.
	(handle_fnspec_attribute): New function.
	* gimple.h (gimple_call_return_flags): Declare.
	(gimple_call_arg_flags): Likewise.
	* gimple.c (gimple_call_arg_flags): New function.
	(gimple_call_return_flags): Likewise.
	* tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
	New argument flags.
	(ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
	return value flags.
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
	* tree-ssa-structalias.c (make_constraint_from_heapvar): Split
	main work to ...
	(make_heapvar_for): ... this new function.
	(handle_rhs_call): Handle fnspec attribute argument specifiers.
	(handle_lhs_call): Likewise.
	(find_func_aliases): Adjust.

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

	PR tree-optimization/44050
	* tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.

2010-05-10  Wei Guozhi  <carrot@google.com>

	PR target/42879
	* config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.

2010-05-09  Joseph Myers  <joseph@codesourcery.com>

	PR c/10676
	* c-typeck.c (lookup_field): Take a type directly.  Update
	recursive calls.
	(build_component_ref): Update call to lookup_field.
	(set_init_label): Use lookup_field to find initialized field.
	Handle returned list of fields like a sequence of designators.

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

	PR middle-end/44024
	* fold-const.c (tree_single_nonzero_warnv_p): Properly
	handle &FUNCTION_DECL.

2010-05-09  Joseph Myers  <joseph@codesourcery.com>

	PR c/4784
	* c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
	structures and unions recursively.
	(detect_field_duplicates): Move duplicate detection with a hash to
	detect_field_duplicates_hash.  Always use a hash if anonymous
	structures or unions are present.
	* doc/extend.texi (Unnamed Fields): Document that duplicate fields
	give errors.

2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/44046
	* config/i386/driver-i386.c (host_detect_local_cpu): Properly
	detect Atom, Core 2 and Core i7.

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

	* gcc.c (store_arg): Handle temporary file deletion for
	joined arguments.

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

	PR middle-end/44043
	* ipa-inline.c (estimate_function_body_sizes): Return after
	disregarding inline limits.

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

	* gcc.c (store_arg): Revert last change.

2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>

	PR middle-end/28685
	* tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
	(optimize_ops_list): Call it.

2010-05-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44030
	* tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
	NECESSARY flag if we propagate from a inserted expression.

2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
	domain types as equal if they are both PLACEHOLDER_EXPRs.

2010-05-08  Richard Guenther  <rguenther@suse.de>

	* lto-wrapper.c (run_gcc): Remove linker output from
	command line for LTRANS invocation.

2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>

	* config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
	lto-macho as lto_binary_reader.
	* target.h (struct gcc_target): New hooks lto_start and	lto_end.
	* target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
	* cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
	in lto_start and lto_end calls.
	(is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
	magic numbers.
	(scan_prog_file): Update is_elf_or_coff call.
	* doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.

	* collect2.c (main): Fix enum comparison.

	* config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
	Add prototypes.
	* darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
	* darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
	and TARGET_ASM_LTO_END.
	* darwin.c: Include obstack.h and lto-streamer.h.
	(lto_section_names_offset, lto_section_names_obstack,
	lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
	global variables.
	(LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
	(darwin_asm_lto_start): New function.  Redirect output to asm_out_file
	to a temporary file.
	(darwin_asm_lto_end): New function.  Restore asm_out_file.
	(darwin_asm_named_section): For LTO sections, replace the name with
	the offset of the section name in a string table, and build this
	table.
	(darwin_file_start): Initialize global vars for LTO support.
	(darwin_file_end): If output to asm_out_file was redirected, append it
	to the proper asm_out_file here.  Add the section names section.

2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>

	* c-pragma.c (pending_weak_d, pending_weak): New.
	(pending_weaks): Change the type to VEC((pending_weak,gc) *.
	(maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
	handle_pragma_weak): Update the uses of pending_weaks.

2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR documentation/44016
	* doc/standards.texi (Standards): Link to unversioned
	cxx0x_status.html page.

2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>

	PR target/43708
	* config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
	in addition to TREE_USED, to avoid "set but unused" warnings.

2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
	(is_loop_prefetching_profitable): Do not insert prefetches
	when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
	times the prefetch ahead distance.

2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
	Account for loop unrolling in the insn-to-prefetch ratio heuristic.
	(loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
	the unroll_factor.

2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>

	* tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
	a diagnostic info when the insn-to-mem ratio is too small.

2010-05-07  Richard Guenther  <rguenther@suse.de>

	* gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
	the linker plugin.
	(store_arg): Queue temp_filename for deletion instead of
	the whole argument.

2010-05-07  Richard Guenther  <rguenther@suse.de>

	* lto-wrapper.c (DUMPBASE_SUFFIX): Define.
	(run_gcc): Handle LTRANS phase invocation.
	* collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.

2010-05-07  Jakub Jelinek  <jakub@redhat.com>

	* tree.h (TREE_ADDRESSABLE): Adjust comment to say that
	this is also meaningful on PARM_DECLs and RESULT_DECLs.

2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.

2010-05-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44020
	* tree-ssa-pre.c (execute_pre): Do not remove dead inserted
	code when PRE is not yet initialized.

2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/mips/dbxmdebug.h: Remove.
	* config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.

2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>

	* c-typeck.c (build_binary_op): Warn ordered comparison of pointer
	with null pointer and also warn about ordered comparison of zero with
	pointer if -Wextra.

2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-blocking.c
	(pbb_strip_mine_profitable_p): Replace Value with mpz_t.
	* graphite-clast-to-gimple.c
	(clast_to_gcc_expression): Same.
	(precision_for_value): Same.
	(precision_for_interval): Same.
	(gcc_type_for_interval): Same.
	(graphite_create_new_guard): Same.
	(compute_bounds_for_level): Same.
	(graphite_create_new_loop_guard): Same.
	* graphite-interchange.c
	(build_linearized_memory_access): Same.
	(pdr_stride_in_loop): Same.
	(memory_strides_in_loop_1): Same.
	(memory_strides_in_loop): Same.
	(extend_scattering): Same.
	(psct_scattering_dim_for_loop_depth): Same.
	(pbb_number_of_iterations): Same.
	* graphite-poly.h
	(debug_iteration_domains): Same.
	* graphite-ppl.c
	(new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
	(ppl_set_inhomogeneous_gmp): Same.
	(ppl_strip_loop): Same.
	(ppl_lexico_compare_linear_expressions): Same.
	(ppl_read_polyhedron_matrix): Same.
	(ppl_max_for_le_pointset): Same.
	* graphite-ppl.h
	(ppl_read_polyhedron_matrix): Same.
	(tree_int_to_gmp): Same.
	(gmp_cst_to_tree): Same.
	(ppl_set_inhomogeneous): Same.
	(ppl_set_inhomogeneous_tree): Same.
	(ppl_set_coef): Same.
	(ppl_set_coef_tree): Same.
	* graphite-sese-to-poly.c
	(build_pbb_scattering_polyhedrons): Same.
	(build_scop_scattering): Same.
	(scan_tree_for_params_right_scev): Same.
	(scan_tree_for_params): Same.
	(find_params_in_bb): Same.
	(find_scop_parameters): Same.
	(add_upper_bounds_from_estimated_nit): Same.
	(build_loop_iteration_domains): Same.
	(add_condition_to_domain): Same.
	(pdr_add_memory_accesses): Same.

2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
	CLooG's value_* macros to their respective mpz_* counterparts.
	* graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
	(graphite_create_new_loop_guard): Same.
	* graphite-interchange.c (build_linearized_memory_access): Same.
	(pdr_stride_in_loop): Same.
	(memory_strides_in_loop_1): Same.
	(1st_interchange_profitable_p): Same.
	* graphite-poly.c (extend_scattering): Same.
	(psct_scattering_dim_for_loop_depth): Same.
	(pbb_number_of_iterations): Same.
	(pbb_number_of_iterations_at_time): Same.
	* graphite-poly.h (new_1st_loop): Same.
	* graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
	(oppose_constraint): Same.
	(insert_constraint_into_matrix): Same.
	(ppl_set_inhomogeneous_gmp): Same.
	(ppl_set_coef_gmp): Same.
	(ppl_strip_loop): Same.
	(ppl_lexico_compare_linear_expressions): Same.
	(ppl_max_for_le_pointset): Same.
	(ppl_min_for_le_pointset): Same.
	(ppl_build_realtion): Same.
	* graphite-ppl.h (gmp_cst_to_tree): Same.
	(ppl_set_inhomogeneous): Same.
	(ppl_set_inhomogeneous_tree): Same.
	(ppl_set_coef): Same.
	(ppl_set_coef_tree): Same.
	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
	(build_scop_scattering): Same.
	(add_value_to_dim): Same.
	(scan_tree_for_params_right_scev): Same.
	(scan_tree_for_params_int): Same.
	(scan_tree_for_params): Same.
	(find_params_in_bb): Same.
	(find_scop_parameters): Same.
	(add_upper_bounds_from_estimated_nit): Same.
	(build_loop_iteration_domains): Same.
	(create_linear_expr_from_tree): Same.
	(add_condition_to_domain): Same.
	(pdr_add_memory_accesses): Same.

2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
	    Jason Merrill  <jason@redhat.com>

	* c-common.c (c_common_reswords): Add nullptr.
	* c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
	* dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
	(gen_type_die_with_usage): Likewise.
	* dbxout.c (dbxout_type): Likewise.
	* sdbout.c (plain_type_1): Likewise.

2010-05-06  Jason Merrill  <jason@redhat.com>

	* gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
	Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
	ret appropriately.
	(gimplify_compound_lval): Return GS_ALL_DONE as appropriate.

	* gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
	stripping WITH_SIZE_EXPR.
	(gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
	change.

2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
	list of obsolete configurations.
	Disabled check for obsolete configurations.
	(mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
	Removed support for previous versions.
	* config/mips/iris.h: Removed.
	* config/mips/iris5.h: Removed.
	* config/mips/iris6.h: Merged old iris.h contents.
	(TARGET_IRIX): Removed.
	(DRIVER_SELF_SPECS): Removed mabi=32.
	(IDENT_ASM_OP): Removed undef.
	(STARTFILE_SPEC): Removed mabi=32.
	(ENDFILE_SPEC): Likewise.
	(IRIX_SUBTARGET_LINK_SPEC): Likewise.
	(MACHINE_TYPE): Update for IRIX 6.5.
	* config/mips/mips.c (mips_build_builtin_va_list): Replaced
	TARGET_IRIX by TARGET_IRIX6.
	(mips_file_start): Likewise.
	(mips_output_external): Remove IRIX 5/6 O32 support.
	(mips_output_function_prologue): Likewise.
	* config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
	TARGET_IRIX6.
	(TARGET_CPU_CPP_BUILTINS): Likewise.
	(TARGET_IRIX): Removed.
	* config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
	(MULTILIB_DIRNAMES): Removed 32.
	(MULTILIB_OSDIRNAMES): Removed ../lib.
	* doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
	(Specific, mips-sgi-irix5): Document removal.
	(Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
	Remove references to older IRIX 6 releases and the O32 ABI.

2010-05-06  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/43994
	* df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
	instead of DF_REF_REAL_REG.

2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/43888
	* config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
	handling to still return true for x64 targets.

2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.

2010-05-06  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/43791
	* ipa-inline.c (update_caller_keys): Remove bogus
	disregard_inline_limits check.

2010-05-06  Michael Matz  <matz@suse.de>

	PR tree-optimization/43984
	* tree-ssa-pre.c (inserted_phi_names): Remove.
	(inserted_exprs): Change to bitmap.
	(create_expression_by_pieces): Set bits, don't append to vector.
	(insert_into_preds_of_block): Don't handle inserted_phi_names.
	(eliminate): Don't look at inserted_phi_names, remove deleted
	insns from inserted_exprs.
	(remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
	(init_pre, fini_pre): Allocate and free bitmaps.
	(execute_pre): Insert insns on edges before elimination.

2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* tree.c (initializer_zerop): Handle STRING_CST.

2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 40989
	* doc/invoke.texi (Wimplicit): Document as C only.
	* opts.c (common_handle_option): Add argument kind.
	(handle_option): Rename as read_cmdline_option. Factor out code to...
	(handle_option): ... here. New.
	(handle_options): Rename as read_cmdline_options.
	(decode_options): Update call.
	(set_option): Use option index instead of option pointer. Classify
	diagnostics correctly.
	(enable_warning_as_error): Call handle_option.
	* opts.h (set_option): Update declaration.
	(handle_option): Declare.
	* langhooks.h (struct lang_hooks): Add argument kind to handle_option.
	* c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
	* c-opts.c (set_Wimplicit): Delete.
	(c_family_lang_mask): New static constant.
	(c_common_handle_option): Add argument kind. Use handle_option
	instead of set_Wimplicit.
	(c_common_post_options): warn_implicit and warn_implicit_int
	are disabled by default.
	* c-common.c (warn_implicit): Do not define here.
	* c-common.h (warn_implicit): Do not declare here.
	(c_common_handle_option): Update declaration.
	* lto-opts.c (lto_reissue_options): Update call to set_option.

2010-05-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43571
	* domwalk.c (walk_dominator_tree): Walk the dominator
	sons in more optimal order.

2010-05-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43934
	* tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
	(stmt_cost): Likewise.
	(extract_true_false_args_from_phi): New helper.
	(determine_max_movement): For PHI nodes verify we can hoist them
	and compute their cost.
	(determine_invariantness_stmt): Handle PHI nodes.
	(move_computations_stmt): Likewise.  Hoist PHI nodes in
	if-converted form using COND_EXPRs.
	(move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
	(tree_ssa_lim): Likewise.
	* tree-flow.h (tree_ssa_lim): Adjust prototype.
	* tree-ssa-loop.c (tree_ssa_loop_im): Return todo.

2010-05-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43987
	* tree-ssa-structalias.c (could_have_pointers): For possibly
	address-taken variables force pointers to be recorded.
	(create_variable_info_for_1): Likewise.
	(push_fields_onto_fieldstack): Pass in wheter all fields
	must have pointers.
	(find_func_aliases): Query types instead of vars whether
	they contain pointers where appropriate.

2010-05-06  Jan Hubicka  <jh@suse.cz>

	* cgraphbuild.c (record_reference_ctx): Add varpool_node.
	(record_reference, mark_address, mark_load, mark_store): Record
	references.
	(record_references_in_initializer): Update call of record_references.
	(rebuild_cgraph_edges): Remove all references before rebuiding.
	* cgraph.c (cgraph_create_node): Clear ref list.
	(cgraph_remove_node): Remove references.
	(dump_cgraph_node): Dump references.
	(cgraph_clone_node): Clone references.
	* cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
	(struct cgraph_node, varpool_node): Add ref_lst.
	* ipa-ref.c: New file.
	* ipa-ref.h: New file.
	* ipa-ref-inline.h: New file.
	* lto-cgraph.c (output_varpool): Take cgrag node set argument.
	(referenced_from_other_partition_p): New function.
	(lto_output_varpool_node): Take set arugment; call
	referenced_from_other_partition.
	(lto_output_ref): New.
	(add_references): New.
	(output_refs): New.
	(output_cgraph): Compute boundary based on references; output refs.
	(output_varpool): Accept cgraph_node_set argument.
	(input_ref): New.
	(input_refs): New.
	(input_cgraph): Call input_refs.
	* lto-section-in.c (lto_section_name): Add refs.
	* Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
	(ipa-ref.o): New file.
	* varpool.c (varpool_node): Clear ipa ref list.
	(varpool_remove_node): Remove references.
	(dump_varpool_node): Dump references.
	(varpool_assemble_decl): Only compile finalized ones.
	(varpool_extra_name_alias): Initialize ref list.
	* lto-streamer.c (lto-get_section_name): Add .refs section.
	* lto-streamer.h (lto_section_type): Add LTO_section_refs.
	(referenced_from_other_partition_p): Declared.

2010-05-06  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/43901
	* tree-vect-stmts.c (vectorizable_call): Assert that vector
	type is not NULL if it's transformation phase, and return
	FALSE if it's analysis.
	(vectorizable_conversion, vectorizable_operation,
	vectorizable_type_demotion, vectorizable_type_promotion): Likewise.

2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>

	* config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
	Delete.
	* config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
	New define.
	* config/mips/mips-protos.h
	(mips_small_register_classes_for_mode_p): Delete prototype.

2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>

	* config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
	* config/arm/arm.c (multiple_operation_profitable_p,
	compute_offset_order): New static functions.
	(load_multiple_sequence, store_multiple_sequence): Use them.
	Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
	memory offsets, not register numbers.
	(emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.

2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>

	* stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
	(get_pending_sizes, put_pending_size, put_pending_sizes):
	Update the uses of pending_sizes.
	* c-decl.c (store_parm_decls): Likewise.
	* c-tree.h (struct c_arg_info): Likewise.
	* tree.h: Update the prototype for get_pending_sizes and
	put_pending_sizes.

2010-05-05  Jason Merrill  <jason@redhat.com>

	PR debug/43370
	* c-common.c (handle_aligned_attribute): Respect
	ATTR_FLAG_TYPE_IN_PLACE.

	PR testsuite/43758
	* target.h (struct gcc_target): Add attribute_takes_identifier_p.
	* target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
	(TARGET_INITIALIZER): Use it.
	* c-common.c (attribute_takes_identifier_p): Call it.
	* c-common.h: Update prototype.
	* config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
	(TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.

2010-05-05  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43950
	* dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
	DW_ID_down_case for Fortran compilation units.

2010-05-05  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
	handle aliases.

2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_return_expr): Gimplify the size expressions of
	a variable-sized RESULT_DECL.

2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.

2010-05-05  Jason Merrill  <jason@redhat.com>

	PR c++/43787
	* gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
	returns GS_OK.
	(gimplify_modify_expr_rhs): Return GS_OK if anything changed.

2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR debug/43478
	* df-problems.c (struct dead_debug_use, struct dead_debug): New.
	(dead_debug_init, dead_debug_finish): New functions.
	(dead_debug_add, dead_debug_insert_before): Likewise.
	(df_note_bb_compute): Initialize a dead_debug object, add dead
	debug uses to it, insert debug bind insns before death insns,
	reset debug insns that refer to pending uses at the end.
	* rtl.h (make_debug_expr_from_rtl): New prototype.
	* varasm.c (make_debug_expr_from_rtl): New function.

2010-05-05  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (output_varpool): Forward declare; work on encoder.
	(lto_varpool_encoder_new, lto_varpool_encoder_delete,
	lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
	lto_varpool_encoder_deref, lto_varpool_encoder_size,
	lto_varpool_encoder_encode_initializer_p,
	lto_set_varpool_encoder_encode_initializer): New functions.
	(lto_output_cgraph): Take vset parameter too; compute varpool encoder;
	call output_varpool.
	(input_varpool_node): Do not always set analyzed.
	(input_cgraph_1): Return vector of cgraph nodes.
	(input_varpool_1): Return vector of varpools.
	(input_cgraph): Free the vectors.
	* lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
	output only initializers needed.
	(lto_output): Only call output_cgraph.
	(produce_asm_for_decls): Call lto_varpool_encoder_delete.
	* lto-section-out.c (lto_new_out_decl_state): Initialize
	state->varpool_node_encoder.
	* lto-streamer.h (lto_varpool_encoder_d): New.
	(lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
	(lto_cgraph_encoder_delete, output_cgraph): Update prototype.
	(lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
	lto_varpool_encoder_encode, lto_varpool_encoder_delete,
	lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
	Declare.
	(output_varpool, input_varpool): Remove declarations.

2010-05-05  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
	with body can prevail.

2010-05-05  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
	size.

2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.

	* gengtype.h (erro_at_line): Constify pos argument.

	* gengtype.c: Include hashtab.h.
	(enum gc_used): Document GC_MAYBE_POINTED_TO.
	(error_at_line): Constify pos argument.
	(do_typedef): Initialize p->opt field.
	(get_file_gtfilename): Fix comment typo.
	(struct walk_type_data): Constify line field.
	(get_output_file_for_structure): New function.
	(write_local_func_for_structure): Constify orig_s argument.
	Use get_output_file_for_structure.
	(write_func_for_structure): Use get_output_file_for_structure.
	(INDENT): New define.
	(dump_pair, dump_type, dump_type_list, dump_typekind)
	(dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
	(dump_type_u_a, dump_type_u_param_struct, dump_everything): New
	functions.
	(seen_types): New variable.
	(main): New variable do_dump.  Process "-d" command line option.
	Call dump_everything if dump requested.

2010-05-05  Jakub Jelinek  <jakub@redhat.com>

	* var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
	in a temporary instead of invoking the macro multiple times.
	(track_expr_p): Likewise.

2010-05-04  Neil Vachharajani  <nvachhar@google.com>

	* doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
	per new semantics.
	* opts.c (decode_options): Enable -Werror=coverage-mismatch.
	* coverage.c (get_coverage_counts): Always emit a warning.  Adjust
	conditions for printing notes.
	* common.opt (-Wcoverage-mismatch): Allow negative, default to
	true, update documentation.
	* Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.

2010-05-04  Jakub Jelinek  <jakub@redhat.com>

	PR c/43981
	* c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
	on dimen.

2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/43799
	* config/i386/i386.md (sse_prologue_save): Clobber CC register.
	(*sse_prologue_save_insn1): Likewise.
	(SSE prologue save splitter): Likewise.

2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (free_lang_data_in_one_sizepos): New inline function.
	(free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
	types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
	(free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
	all decls.  Call it on DECL_FIELD_OFFSET of fields.
	(find_decls_types_r): Follow DECL_VALUE_EXPR.
	(iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.

2010-05-04  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (build_access_from_expr_1): The first parameter type
	changed to simple tree.
	(build_access_from_expr): Likewise, gsi parameter was eliminated.
	(scan_assign_result): Renamed to assignment_mod_result, enum elements
	renamed as well.
	(build_accesses_from_assign): Removed all parameters except for a
	simple gimple statement.  Now returns a simple bool.
	(scan_function): All non-analysis parts moved to separate functions
	sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
	parameters and updated both callers.
	(sra_modify_expr): Removed parameter data.
	(sra_modify_function_body): New function.
	(perform_intra_sra): Call sra_modify_function_body to modify the
	function body.
	(replace_removed_params_ssa_names): Parameter data changed into
	adjustments vector.
	(sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
	changed the parameter dont_convert to convert with the opposite
	meaning.
	(sra_ipa_modify_assign): Parameter data changed into adjustments
	vector, return value changed to bool.
	(ipa_sra_modify_function_body): New function.
	(sra_ipa_reset_debug_stmts): Updated a comment.
	(modify_function): Use ipa_sra_modify_function_body to modify function
	body.

2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/43671
	* alias.c (true_dependence): Handle the same VALUE in x and mem.
	(canon_true_dependence): Likewise.
	(write_dependence_p): Likewise.

2010-05-04  Jan Hubicka  <jh@suse.cz>

	* Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
	* cgraphbuild.c: Include ipa-utils.h
	(record_reference_ctx): New struct.
	(record_reference): Simplify to work on initializers; not statements.
	(mark_address, mark_load, mark_store): New.
	(build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
	walk PHI nodes too.
	(record_references_in_initializer): Update use of record_reference.
	(rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
	walk PHI nodes too.

2010-05-04  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
	node will be removed anyway.
	(lto_varpool_replace_node): Allow also unanalyzed nodes;
	relink aliases of node into prevailing node.
	* varpool.c (varpool_remove_node): Remove aliases properly;
	when removing node, remove all its aliases too; remove DECL_INITIAL
	of removed node; ggc_free the varpool node.

2010-05-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43879
	* tree-ssa-structalias.c (alias_get_name): Use
	DECL_ASSEMBLER_NAME if available.
	(create_function_info_for): Return the varinfo node.
	(ipa_pta_execute): Associate same-body aliases and extra names
	with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.

2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.

2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>

	PR bootstrap/43964
	* ira-color.c (assign_hard_reg): Declare rclass and add_cost
	only if HONOR_REG_ALLOC_ORDER is not defined.

2010-05-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43949
	* tree-vrp.c (extract_range_from_binary_expr): Only handle
	TRUNC_MOD_EXPR.

2010-04-26  Jason Merrill  <jason@redhat.com>

	* c.opt (-fstrict-enums): New.
	* doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.

2010-05-03  David Ung  <davidu@mips.com>
	    James E. Wilson  <wilson@codesourcery.com>

	* config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
	emit the trap instruction before the divide for TUNE_74K.

2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>

	* doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
	(TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
	based on the above, for new target hook.

	* hooks.c (hook_bool_mode_true): New generic hook.
	* hooks.h (hook_bool_mode_true): Add prototype.

	* target.h (struct gcc_target): Add small_register_classes_for_mode_p
	target hook.
	* target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
	target hook, set to hook_bool_mode_false.
	* regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
	* reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
	with targetm.small_register_classes_for_mode_p.
	(find_reusable_reload): Likewise.
	(combine_reloads): Likewise.
	* reload1.c (reload_as_needed): Likewise.
	* cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
	* ifcvt.c (noce_process_if_block, check_cond_move_block,
	dead_or_predicable): Likewise.
	* regmove.c (optimize_reg_copy_1): Likewise.
	* calls.c (prepare_call_address): Likewise.
	(precompute_register_parameters): Likewise.

	* config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
	hook definition.
	* config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
	implementation of the hook that considers all register classes
	small except for SH64.
	(sh_override_options): Use the new hook.
	* config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
	Add prototype.

	* config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
	hook definition.
	* config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
	implementation of the hook that considers all register classes
	small for THUMB1.
	* config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
	Add prototype.

	* config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
	hook definition.
	* config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
	implementation of the hook that considers all register classes
	small for MIPS16.
	* config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
	Add prototype.

	* config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
	hook definition.
	* config/m32c/m32c.h: Likewise.
	* config/pdp11/pdp11.h: Likewise.
	* config/avr/avr.h: Likewise.
	* config/xtensa/xtensa.h: Likewise.
	* config/m68hc11/m68hc11.h: Likewise.
	* config/mn10300/mn10300.h: Likewise.
	* config/mcore/mcore.h: Likewise.
	* config/h8300/h8300.h: Likewise.
	* config/bfin/bfin.h: Likewise.

	* config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
	* config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.

2010-05-03  Anatoly Sokolov  <aesok@post.ru>

	* double-int.h (tree_to_double_int): Remove macro.
	(double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
	* tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
	(tree_to_double_int): New function.
	* double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
	Move ...
	* tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.

2010-05-03  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43971
	* tree-ssa-structalias.c (get_constraint_for_1): Fix
	constraints in the !flag_delete_null_pointer_checks case.

2010-05-03  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43972
	* config/i386/i386.c (ix86_delegitimize_address): Make sure the
	result mode matches original rtl mode.

2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/43888
	* config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.

2010-05-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
	when processing flag options.

2010-05-02  Uros Bizjak  <ubizjak@gmail.com>

	* gcov-iov.c (main): Change format string placeholder
	from %#08x to 0x%08x.
	* genchecksum.c (dosum): Change format string placeholder
	from %#02x to 0x%02x.

2010-05-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43879
	* tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.

2010-05-02  Bruno Haible  <bruno@clisp.org>

	* doc/extend.texi (Function Attributes): Fix a typo.

2010-05-02  Uros Bizjak  <ubizjak@gmail.com>

	Revert:
	* hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
	placeholder from 0x%x to %#x.
	(HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
	* config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
	* config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
	* config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
	* config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
	* config/i386/i386.c (ix86_target_string): Ditto.
	* config/i386/i386.c (output_pic_addr_const): Ditto.
	(print_operand): Ditto.

2010-05-02  Uros Bizjak  <ubizjak@gmail.com>

	* vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
	placeholder from 0x%x to %#x.
	(ASM_OUTPUT_DEBUG_DATA1): Ditto.
	(ASM_OUTPUT_DEBUG_DATA4): Ditto.
	(ASM_OUTPUT_DEBUG_DATA): Ditto.
	(ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
	(ASM_OUTPUT_DEBUG_DATA8): Ditto.
	* optc-gen.awk: Ditto.
	* hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
	(HOST_WIDE_INT_PRINT_HEX): Ditto.
	(HOST_WIDEST_INT_PRINT_HEX): Ditto.
	(HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.

2010-05-01  Anatoly Sokolov  <aesok@post.ru>

	* target.h (struct calls): Add function_value_regno_p field.
	* target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
	(TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
	* targhooks.c (default_function_value_regno_p): New function.
	* targhooks.h (default_function_value_regno_p): Declare function.
	* rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
	* builtins.c. (apply_result_size): (Ditto.).
	* combine.c. (likely_spilled_retval_p): (Ditto.).
	* mode-switching.c. Include 'target.h'.
	(create_pre_exit): Use function_value_regno_p hook.
	* Makefile.in (mode-switching.o): Add dependency on TARGET_H.
	* doc/tm.texi (FUNCTION_VALUE_REGNO_P,
	TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.

	* config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
	* config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
	(ix86_function_value_regno_p): Declare as static, change argument
	type to const unsigned int.
	* config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.

2010-05-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43949
	* tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
	types.
	(extract_range_from_binary_expr): Handle *_MOD_EXPR.

2010-05-01  Anatoly Sokolov  <aesok@post.ru>

	* rtl.h (CONST_DOUBLE_P): Define.
	(rtx_to_double_int): Declare.
	* emit-rtl.c (rtx_to_double_int): New function.
	* dwarf2out.c (insert_double): New function.
	(loc_descriptor, add_const_value_attribute): Clean up, use
	rtx_to_double_int and insert_double functions.

2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/extend.texi (Inline): Add missing return keyword to examples.
	(Function Attributes, Variable Attributes, Pragmas): Hyphenate
	"command-line".

2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
	the variable part of the offset as well.  Use highest_pow2_factor for
	all alignment checks.

2010-04-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43879
	* tree-ssa-structalias.c (type_could_have_pointers): Functions
	can have pointers.

2010-04-30  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
	varpool.
	(lto_symtab_merge_decls_1): Remove logic looking for an initializer.

2010-04-30  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
	New.
	* lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
	* lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
	(lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
	cgraph_node_set_needs_ltrans_p): Remove.

2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>

	* sdbout.c: Include vec.h, do not include varray.h.
	(deferred_global_decls, sdbout_global_decl,
	sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
	* toplev.c: Do not include varray.h.
	(dump_memory_report): Do not dump VARRAY statistics.
	* gengtype.c (open_base_file): Ignore varray.h.
	* Makefile.in: Update for abovementioned changes.
	Remove all traces of varray.c and varray.h.
	* varray.c: Remove file.
	* varray.h: Remove file.

2010-04-30  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (lto_output_varpool_node): Always output constant pool
	references.

2010-04-30  Jan Hubicka  <jh@suse.cz>

	* tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
	needed.

2010-04-30  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (get_constraint_for_1): Generate
	constraints for CONSTRUCTOR.

2010-04-30  Richard Guenther  <rguenther@suse.de>

	PR lto/43946
	* passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
	first after all lowering passes.

2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>

	* toplev.c: Include varray.h for statistics dumping.
	* tree.h: Do not declare varray_head_tag.
	* tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
	regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
	c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
	gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
	lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
	tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
	c-common.c, c-common.h, reg-stack.c, basic-block.h,
	tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
	include varray.h.
	* Makefile.in: Update for abovementioned changes.

2010-04-30  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43942
	* tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.

2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (picochip_legitimize_address): Define.
	Use this function to do machine-specific conversion.
	(picochip_legitimize_reload_address): Likewise.
	(picochip_legitimate_address_p): Check valid base register only if
	strict.
	(picochip_check_conditional_copy): Check for modw only if opnd is
	register.
	* config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
	to call the function in c.
	* config/picochip/picochip-protos.h
	(picochip_legitimize_reload_address): Define.
	* config/picochip/picochip.md (supported_compare1): Define.

2010-04-30  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (cgraph_local_info): Remove for_functions_valid.
	(cgraph_global_info): Remove inlined.
	(LTO_cgraph_tag_names): Remove.
	(LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
	* lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
	simplify cgraph tags and document.
	(lto_output_node): Use only LTO_cgraph_unavail_node and
	LTO_cgraph_analyzed_node; Do not save analzed, reachable,
	for_functions_valid, global info, process and output flags.
	(input_overwrite_node): Initialize estimated stack size and
	estimated growth.  Do not read flags we no longer store.
	(input_node): Likewise do not read info no longer stored.
	* ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
	flag.

2010-04-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43879
	* tree-ssa-structalias.c (get_constraint_for_1): Properly
	handle non-zero initializers.

2010-04-30  Richard Guenther  <rguenther@suse.de>

	* builtins.c (fold_builtin_1): Delete free (0).

2010-04-29  Jan Hubicka  <jh@suse.cz>

	* gengtype.c (open_base_files): Add lto-streamer.h
	* cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
	(pass_ipa_cp): GGC collect.
	* toplev. (compile_file): Do not output symbols.
	* ipa-inline.c (pass_ipa_inline): Add ggc collect.
	* timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
	TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
	* lto-section-in.c: Include ggc.h
	(lto_new_in_decl_state): Alloc in GGC.
	(lto_delete_in_decl_state): Likewise.
	* ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
	Collect.

2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/42895
	* doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
	ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
	(HONOR_REG_ALLOC_ORDER): Describe new macro.
	* ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
	* ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
	account only if HONOR_REG_ALLOC_ORDER is not defined.
	* config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
	* system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.

2010-04-29  Jon Grant  <04@jguk.org>

	* collect2.c (vflag): Change type from int to bool.
	(debug): Likewise.
	(helpflag): New global bool.
	(main): Set vflag and debug with boolean, not integer truth values.
	Accept new "--help" option and output usage text if found.
	* collect2.h (vflag): Update prototype.
	(debug): Likewise.

2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/43936
	* plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.

2010-04-29  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/43935
	* plugin.h (invoke_plugin_callbacks): Annotate arguments
	with ATTRIBUTE_UNUSED.

2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/43921
	* config/i386/i386.c (get_some_local_dynamic_name): Replace
	INSN_P with NONDEBUG_INSN_P.
	(distance_non_agu_define): Likewise.
	(distance_agu_use): Likewise.

2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>

	From Dominique d'Humieres  <dominiq@lps.ens.fr>
	PR bootstrap/43858
	* ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
	test_set.

2010-04-29  Brian Hackett  <bhackett1024@gmail.com>

	* plugin.h (invoke_plugin_callbacks): New inline function.
	* plugin.c (flag_plugin_added): New global flag.
	(add_new_plugin): Initialize above flag.
	(invoke_plugin_callbacks): Rename to ...
	(invoke_plugin_callbacks_full): ... this.

2010-04-28  Jan Hubicka  <jh@suse.cz>

	* lto-symtab.c (lto_symtab_entry_def) Add vnode.
	(lto_varpool_replace_node): New.
	(lto_symtab_resolve_symbols): Resolve varpool nodes.
	(lto_symtab_merge_decls_1): Prefer decls with varpool node.
	(lto_symtab_merge_cgraph_nodes_1): Merge varpools.
	* cgraph.h (varpool_node_ptr): New type.
	(varpool_node_ptr): New vector.
	(varpool_node_set_def): New structure.
	(varpool_node_set): New type.
	(varpool_node_set): New vector.
	(varpool_node_set_element_def): New structure.
	(varpool_node_set_element, const_varpool_node_set_element): New types.
	(varpool_node_set_iterator): New type.
	(varpool_node): Add prev pointers, add used_from_other_partition,
	in_other_partition.
	(varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
	varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
	varpool_get_node, varpool_remove_node): Declare.
	(vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
	varpool_node_set_size): New inlines.
	* cgraph.c (dump_cgraph_node): Dump asm names of aliases.
	* tree-pass.h (varpool_node_set_def): Forward declare.
	(ipa_opt_pass_d): Summary writting takes vnode sets too.
	(ipa_write_optimization_summaries): Update prototype.
	* ipa-cp.c (ipcp_write_summary): Update.
	* ipa-reference.c (ipa_reference_write_summary): Update.
	* lto-cgraph.c (lto_output_varpool_node): New static function.
	(output_varpool): New function.
	(input_varpool_node): New static function.
	(input_varpool_1): New function.
	(input_cgraph): Input varpool.
	* ipa-pure-const.c (pure_const_write_summary): Update.
	* lto-streamer-out.c (lto_output): Update, output varpool too.
	(write_global_stream): Kill WPA hack.
	(produce_asm_for_decls): Update.
	(output_alias_pair_p): Handle variables.
	(output_unreferenced_globals): Output only needed partition of varpool.
	* ipa-inline.c (inline_write_summary): Update.
	* lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
	cgraph.
	* lto-section-in.c (lto_section_name): Add varpool and jump funcs.
	* ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
	varpool_node_set_new, varpool_node_set_add,
	varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
	debug_varpool_node_set): New functions.
	* passes.c (rest_of_decl_compilation): when in LTO do not finalize.
	(execute_one_pass): Process new decls too.
	(ipa_write_summaries_2): Pass around vsets.
	(ipa_write_summaries_1): Likewise.
	(ipa_write_summaries): Build vset; be more selective about cgraph nodes
	to add.
	(ipa_write_optimization_summaries_1): Pass around vsets.
	(ipa_write_optimization_summaries): Likewise.
	* varpool.c (varpool_get_node): New.
	(varpool_node): Update doubly linked lists.
	(varpool_remove_node): New.
	(dump_varpool_node): More dumping.
	(varpool_enqueue_needed_node): Update doubly linked lists.
	(decide_is_variable_needed): Kill ltrans hack.
	(varpool_finalize_decl): Kill lto hack.
	(varpool_assemble_decl): Skip decls in other partitions.
	(varpool_assemble_pending_decls): Update doubly linkes lists.
	(varpool_empty_needed_queue): Likewise.
	(varpool_extra_name_alias): Likewise.
	* lto-streamer.c (lto_get_section_name): Add vars section.
	* lto-streamer.h (lto_section_type): Update.
	(output_varpool, input_varpool): Declare.

2010-04-28  Mike Stump  <mikestump@comcast.net>

	* config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.

2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>

	* lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
	record or union type with RECORD_OR_UNION_TYPE_P predicate.
	(lto_input_ts_type_tree_pointers): Likewise.
	* lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
	(lto_output_ts_type_tree_pointers): Likewise.

2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>

	Uniquization of constants at the Tree level
	* tree.h (DECL_IN_CONSTANT_POOL): New macro.
	(tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
	bit to the end.
	(tree_output_constant_def): Declare.
	* gimplify.c (gimplify_init_constructor): When using block copy, first
	uniquize the constant constructor on the RHS.
	* lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
	DECL_IN_CONSTANT_POOL flag.
	* lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
	* varasm.c (make_decl_rtl): Deal with variables belonging to the global
	constant pool.
	(assemble_variable): Deal with symbols belonging to the tree constant
	pool.
	(get_constant_section): Add ALIGN parameter and simplify.
	(build_constant_desc): Build a VAR_DECL and attach it to the symbol.
	(assemble_constant_contents): Use the expression of the VAR_DECL.
	(output_constant_def_contents): Use the alignment of the VAR_DECL.
	(tree_output_constant_def): New global function.
	(mark_constant): Use the expression of the VAR_DECL.
	(place_block_symbol): Use the alignment of the VAR_DECL and the size of
	its expression.
	(output_object_block): Likewise and assemble the expression.

2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>

	* lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
	hash_tree, eq_tree): New tree hash table.
	(lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
	[LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
	lto_orig_address_remove): Reimplement.

2010-04-28  Xinliang David Li  <davidxl@google.com>

	PR c/42643
	* tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
	(compute_uninit_opnds_pos): New function.
	(is_non_loop_exit_postdominating): New function.
	(compute_control_dep_chain): New function.
	(find_pdom): New function.
	(convert_control_dep_chain_into_preds): New function.
	(find_predicates): New function.
	(find_control_equiv_block): New function.
	(collect_phi_def_edges): New function.
	(find_def_preds): New function.
	(find_dom): New function.
	(dump_predicates): New function.
	(get_cmp_code): New function.
	(is_value_included_in): New function.
	(find_matching_predicate_in_rest_chains): New function.
	(use_pred_not_overlap_with_undef_path_pred): New function.
	(is_use_properly_guarded): New function.
	(normalize_cond_1): New function.
	(is_and_or_or): New function.
	(normalize_cond): New function.
	(is_gcond_subset_of): New function.
	(is_subset_of_any): New function.
	(is_or_set_subset_of): New function.
	(is_and_set_subset_of): New function.
	(is_norm_cond_subset_of): New function.
	(is_pred_expr_subset_of): New function.
	(is_pred_chain_subset_of): New function.
	(is_included_in): New function.
	(is_superset_of): New function.
	(find_uninit_use): New function.
	(warn_uninitialized_phi): New function.
	(compute_possibly_undefined_names): New function.
	(ssa_undefined_value_p): New function.
	(execute_late_warn_uninitialized): New function.
	* tree-ssa.c (ssa_undefined_value_p): Removed.
	(warn_uninit): Changed to extern.
	(warn_uninitialized_phi): Removed.
	(warn_uninitialized_vars): Changed to extern.
	(execute_late_warn_uninitialized): Removed
	* tree-flow.h: Add new prototypes.
	* timevar.def: Add new time variable.
	* Makefile.in: Add new build file.

2010-04-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
	type if available.

2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/22224
	* config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.

2010-04-28  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (struct cgraph_node): New field indirect_calls.
	(struct cgraph_indirect_call_info): New type.
	(struct cgraph_edge): Removed field indirect_call. New fields
	indirect_info, indirect_inlining_edge and indirect_unknown_callee.
	(cgraph_create_indirect_edge): Declare.
	(cgraph_make_edge_direct): Likewise.
	(enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
	* ipa-prop.h (struct ipa_param_call_note): Removed.
	(struct ipa_node_params): Removed field param_calls.
	(ipa_create_all_structures_for_iinln): Declare.
	* cgraph.c: Described indirect edges and uids in initial comment.
	(cgraph_add_edge_to_call_site_hash): New function.
	(cgraph_edge): Search also among the indirect edges, use
	cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
	(cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
	one, use cgraph_add_edge_to_call_site_hash to add edges to the call
	site hash.
	(initialize_inline_failed): Assign a reason to indirect edges.
	(cgraph_create_edge_1): New function.
	(cgraph_create_edge): Moved some functionality to
	cgraph_create_edge_1.
	(cgraph_create_indirect_edge): New function.
	(cgraph_edge_remove_callee): Add an assert checking for
	non-indirectness.
	(cgraph_edge_remove_caller): Special-case indirect edges.
	(cgraph_remove_edge): Likewise.
	(cgraph_set_edge_callee): New function.
	(cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
	(cgraph_make_edge_direct): New function.
	(cgraph_update_edges_for_call_stmt_node): Do nothing only when also
	the declaration of the call statement matches.
	(cgraph_node_remove_callees): Special-case indirect edges.
	(cgraph_clone_edge): Likewise.
	(cgraph_clone_node): Clone also the indirect edges.
	(dump_cgraph_node): Dump indirect_inlining_edge flag instead of
	indirect_call, dump count of indirect_calls edges.
	* ipa-prop.c (iinlining_processed_edges): New variable.
	(ipa_note_param_call): Create indirect edges instead of
	creating notes.  New parameter node.
	(ipa_analyze_call_uses): New parameter node, pass it on to
	ipa_note_param_call.
	(ipa_analyze_stmt_uses): Likewise.
	(ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
	(print_edge_addition_message): Work on edges rather than on notes.
	(update_call_notes_after_inlining): Likewise, renamed to
	update_indirect_edges_after_inlining.
	(ipa_create_all_structures_for_iinln): New function.
	(ipa_free_node_params_substructures): Do not free notes.
	(ipa_edge_duplication_hook): Propagate bits within
	iinlining_processed_edges bitmap.
	(ipa_node_duplication_hook): Do not duplicate notes.
	(free_all_ipa_structures_after_ipa_cp): Renamed to
	ipa_free_all_structures_after_ipa_cp.
	(free_all_ipa_structures_after_iinln): Renamed to
	ipa_free_all_structures_after_iinln.
	(ipa_write_param_call_note): Removed.
	(ipa_read_param_call_note): Removed.
	(ipa_write_indirect_edge_info): New function.
	(ipa_read_indirect_edge_info): Likewise.
	(ipa_write_node_info): Do not stream notes, do stream information
	in indirect edges.
	(ipa_read_node_info): Likewise.
	(lto_ipa_fixup_call_notes): Removed.
	* ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
	* ipa-inline.c (pass_ipa_inline): Likewise.
	* cgraphunit.c (verify_cgraph_node): Check also indirect edges.
	* cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
	* tree-inline.c (copy_bb): Removed an unnecessary double check for
	is_gimple_call.
	* tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
	edges.
	* lto-cgraph.c (output_outgoing_cgraph_edges): New function.
	(output_cgraph): Stream also indirect edges.
	(lto_output_edge): Added capability to stream indirect edges.
	(input_edge): Likewise.
	(input_cgraph_1): Likewise.
	* lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
	of indirect edges.

2010-04-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43879
	PR tree-optimization/43909
	* tree-ssa-structalias.c (struct variable_info): Add
	only_restrict_pointers flag.
	(new_var_info): Initialize it.  Increment stats.total_vars here.
	(create_function_info_for): Do not increment stats.total_vars here.
	(get_function_part_constraint): Fix build with C++.
	(insert_into_field_list): Remove.
	(push_fields_onto_fieldstack): Properly merge fields.
	(create_variable_info_for): Split and simplify.
	(create_variable_info_for_1): New piece.
	(intra_create_variable_infos): Properly make restrict constraints
	from parameters.

2010-04-28  Richard Guenther  <rguenther@suse.de>

	PR c++/43880
	* tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.

2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	    Jan Hubicka  <hubicka@ucw.cz>

	* doc/invoke.texi (-Wsuggest-attribute=const,
	-Wsuggest-attribute=pure): Document.
	* ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
	(function_always_visible_to_compiler_p,
	suggest_attribute, warn_function_pure, warn_function_const):
	New functions.
	(check_call): Improve debug info.
	(analyze_function): Do not check availability.
	(add_new_function): Check availability.
	(propagate): Output warnings.
	(skip_function_for_local_pure_const): New function.
	(local_pure_const): Use it; output warnings.
	* common.opt (Wsuggest-attribute=const,
	Wsuggest-attribute=pure): New.

2010-04-27  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
	force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
	or DW_CFA_def_cfa_offset{,_sf}.

2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h: Fix truncated long macros.

2010-04-27  Kai Tietz  <kai.tietz@onevision.com>

	* collect2.c (TARGET_64BIT): Redefine to target's default.
	* tlink.c: Likewise.
	* config/i386/cygming.h (USER_LABEL_PREFIX): Define
	dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
	* config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
	for underscoring __USER_LABEL_PREFIX__.
	* config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
	(SUB_LINK_ENTRY32): New.
	(SUB_LINK_ENTRY64): New.
	(LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
	* config/i386/mingw32 (SUB_LINK_ENTRY32): New.
	(SUB_LINK_ENTRY64): New.
	(SUB_LINK_ENTRY): New.
	(LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
	(DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
	x64 target is choosen.
	* config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
	* configure: Regenerated.
	* configure.ac (leading-mingw64-underscores): Option added.

2010-04-27  Jan Hubicka  <jh@suse.cz>

	* doc/invoke.texi (-fipa-profile): Document.
	* opts.c (decode_options): Enable ipa-profile at -O1.
	* timevar.def (TV_IPA_PROFILE): Define.
	* common.opt (fipa-profile): Add.
	* cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
	flag for clones.
	(cgraph_propagate_frequency): Handle only local ones.
	* tree-pass.h (pass_ipa_profile): Declare.
	* ipa-profile.c (gate_profile): Use flag_ipa_profile.
	(pass_ipa_profile): Use TV_IPA_PROFILE.
	* ipa.c (ipa_profile): New function.
	(gate_ipa_profile): Likewise.
	(pass_ipa_profile): New global variable.
	* passes.c (pass_ipa_profile): New.

2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>

	* config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.

2010-04-27  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/43812
	* ipa.c (dissolve_same_comdat_group_list): New function.
	(function_and_variable_visibility): Call
	dissolve_same_comdat_group_list when comdat group contains external or
	newly local nodes.
	* cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
	lists are circular and that they contain only DECL_ONE_ONLY nodes.

2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>

	* varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
	(const_hash_1) <VECTOR_CST>: New case.
	(compare_constant) <VECTOR_CST>: Likewise.
	<ADDR_EXPR>: Deal with LABEL_REFs.
	(copy_constant) <VECTOR_CST>: New case.

2010-04-27  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_propagate_frequency): New function.
	* cgraph.h (cgraph_propagate_frequency): Declare.
	* ipa-inline.c (cgraph_clone_inlined_nodes): Call
	cgraph_propagate_frequency.

2010-04-27  Jakub Jelinek  <jakub@redhat.com>

	* unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.

2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/40657
	* config/arm/arm.c (thumb1_extra_regs_pushed): New function.
	(thumb1_expand_prologue, thumb1_output_function_prologue): Call it
	here to determine which regs to push and how much stack to reserve.

2010-04-27  Jie Zhang  <jie@codesourcery.com>

	* doc/gimple.texi (gimple_statement_with_ops): Remove
	addresses_taken field.
	(gimple_statement_with_memory_ops): Likewise.

2010-04-27  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c (eni_inlining_weights): Remove.
	(estimate_num_insns): Special case more builtins.

2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>

	PR c/32207
	* c-typeck.c (build_binary_op): Move forward check for comparison
	pointer with null pointer constant and adjust the diagnostic message.

2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR lto/42776
	* configure.ac (gcc_cv_as_section_has_align): Set if installed
	binutils supports extended .section directive needed by LTO, or
	warn if older binutils found.
	(LTO_BINARY_READER): New AC_SUBST'd variable.
	(LTO_USE_LIBELF): Likewise.
	* config.gcc (lto_binary_reader): New target-specific configure
	variable.
	* Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
	(LTO_USE_LIBELF): Likewise.
	* configure: Regenerate.

	* collect2.c (is_elf): Rename from this ...
	(is_elf_or_coff): ... to this, and recognize and allow i386 COFF
	 object files in addition to ELF-formatted ones.
	(scan_prog_file): Caller updated.  Also allow for LTO info marker
	symbol to be prefixed or not by an extra underscore.

	* config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
	* config/i386/winnt.c: Also #include lto-streamer.h
	(i386_pe_asm_named_section): Specify 1-byte section alignment for
	LTO named sections.
	(i386_pe_asm_output_aligned_decl_common): Add comment.
	(i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.

2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>

	PR target/43889
	* config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
	Add missing earlyclobber for second alternative.

2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>

	* df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
	bits for artificial defs at the top of the block.
	* fwprop.c (single_def_use_enter_block): Don't call it.

2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR 43715
	* configure.ac: Use "$gcc_cv_nm -g" on darwin
	instead of "$gcc_cv_objdump -T".
	Use "-undefined dynamic_lookup" on darwin.
	* configure: Regenerate.

2010-04-26  Jakub Jelinek  <jakub@redhat.com>

	PR c/43893
	* c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.

2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>

	* c-parser.c (struct c_token): Move location field up.
	* c-tree.h (struct c_typespec): Move expr_const_operands field up.
	(struct c_declspecs): Convert typespec_word, storage_class, and
	default_int_p into bitfields.
	(struct c_declarator): Move loc field up.

2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>

	* cfgloop.h (struct loop): Move can_be_parallel field up.
	* ipa-prop.h (struct ip_node_params): Move bitfields up.
	* tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
	down.
	(struct iv_cand): Convert pos field into a bitfield.
	* tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
	field up.
	(struct _stmt_vec_info): Shuffle fields for better packing.

2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>

	* varasm.c (IN_NAMED_SECTION): Remove guard.
	* config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
	(IN_NAMED_SECTION_P): ...this.
	(ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.

2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
	Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
	of shadowing it.  Fix comments.

2010-04-26  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_create_node): Set node frequency to normal.
	(cgraph_clone_node): Copy function frequency.
	* cgraph.h (node_frequency): New enum
	(struct cgraph_node): Add.
	* final.c (rest_of_clean_state): Update.
	* lto-cgraph.c (lto_output_node): Output node frequency.
	(input_overwrite_node): Input node frequency.
	* tre-ssa-loop-ivopts (computation_cost): Update.
	* lto-streamer-out.c (output_function): Do not output function
	frequency.
	* predict.c (maybe_hot_frequency_p): Update and handle functions
	executed once.
	(cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
	attribute lookup.
	(probably_never_executed_bb_p, optimize_function_for_size_p): Update.
	(compute_function_frequency): Set noreturn functions to be executed
	once.
	(choose_function_section): Update.
	* lto-streamer-in.c (input_function): Do not input function frequency.
	* function.c (allocate_struct_function): Do not initialize function
	frequency.
	* function.h (function_frequency): Remove.
	(struct function): Remove function frequency.
	* ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
	(try_update): Update.
	* tree-inline.c (initialize_cfun): Do not update function frequency.
	* passes.c (pass_init_dump_file): Update.
	* i386.c (ix86_compute_frame_layout): Update.
	(ix86_pad_returns): Update.

2010-04-26  Jie Zhang  <jie@codesourcery.com>

	PR tree-optimization/43833
	* tree-vrp.c (range_int_cst_p): New.
	(range_int_cst_singleton_p): New.
	(extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
	when both operands are constants.  Use range_int_cst_p in
	BIT_IOR_EXPR case.

2010-04-26  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.

2010-04-26  Richard Guenther  <rguenther@suse.de>

	PR lto/43080
	* gimple.c (gimple_decl_printable_name): Deal gracefully
	with a NULL DECL_NAME.

2010-04-26  Richard Guenther  <rguenther@suse.de>

	PR lto/42425
	* tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
	if emitting debug information and it is either a function
	or a namespace decl.

2010-04-26  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.h (struct _stmt_vec_info): Add new field to
	determine if the statement is vectorizable, and a macro to access it.
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
	Skip statements that can't be vectorized. If the analysis fails,
	mark the statement as unvectorizable if vectorizing basic block.
	(vect_compute_data_refs_alignment): Likewise.
	(vect_verify_datarefs_alignment): Skip statements marked as
	unvectorizable. Add print.
	(vect_analyze_group_access): Skip statements that can't be
	vectorized. If the analysis fails, mark the statement as
	unvectorizable if vectorizing basic block.
	(vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
	* tree-vect-stmts.c (vectorizable_store): Fix the number of
	generated stmts for SLP.
	(new_stmt_vec_info): Initialize the new field.
	* tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
	statements marked as unvectorizable.

2010-04-25  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (flag_isoc1x): New.
	(flag_isoc99): Update comment.
	* c-common.h (flag_isoc1x): New.
	(flag_isoc99): Update comment.
	* c-cppbuiltin.c (builtin_define_float_constants): Also define
	__<type>_DECIMAL_DIG__.
	* c-opts.c (set_std_c1x): New.
	(c_common_handle_option): Handle -std=c1x and -std=gnu1x.
	(set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
	* c.opt (-std=c1x, -std=gnu1x): New options.
	* doc/cpp.texi: Mention -std=c1x.
	* doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
	* doc/extend.texi: Mention -std=c1x and -std=gnu1x.
	* doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
	* doc/standards.texi: Mention C1X.
	* ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
	LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
	LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
	Define for C1X.

2010-04-25  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/gmon-sol2.c (_mcleanup): Change format string
	placeholder from 0x%x to %#x.
	* config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
	* config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
	* config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
	* config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
	* config/i386/i386.c (ix86_target_string): Ditto.
	(output_pic_addr_const): Ditto.
	(print_operand): Ditto.

2010-04-25  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c (find_split_point): Add third argument.  Use it
	to find nested multiply-accumulate instructions.  Adjust calls.
	(try_combine): Adjust call to find_split_point.

2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Add Dodji Seketeli.

2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>

	PR tree-optimization/41442
	* fold-const.c (merge_truthop_with_opposite_arm): New function.
	(fold_binary_loc): Call it.

2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* toplev.c (general_init): Set default for fdiagnostics-show-option.
	* opts.c (common_handle_option): Allow disabling it.
	* common.opt (fdiagnostics-show-option): Add Var. Enabled by default.

2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
	between modes if both types are integral.

2010-04-23  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43572
	* tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.

2010-04-23  Richard Guenther  <rguenther@suse.de>

	PR lto/43455
	* tree-inline.c (tree_can_inline_p): Also check compatibility
	of return types.

2010-04-23  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/43846
	* tree-sra.c (struct access): New flag grp_assignment_read.
	(build_accesses_from_assign): Set grp_assignment_read.
	(sort_and_splice_var_accesses): Propagate grp_assignment_read.
	(enum mark_read_status): New type.
	(analyze_access_subtree): Propagate grp_assignment_read, create
	accesses also if both direct_read and root->grp_assignment_read.

2010-04-23  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/43835
	* tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
	function does not have type attributes.

2010-04-23  Richard Guenther  <rguenther@suse.de>

	PR lto/42653
	* tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
	of FUNCTION_DECLs.

2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* sese.h (create_if_region_on_edge): Remove.

	* sese.c (create_if_region_on_edge): Make static.

	* tree-inline.c: Do not include ggc.h.

	* expr.c: Do not include ggc.h.

	* Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
	dependencies.

2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/43744
	* config/sh/sh.c (find_barrier): Don't emit a constant pool
	in the middle of insns for casesi_worker_2.

2010-04-22  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.

2010-04-22  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/43842
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
	loop unrolling in update of exit phis. Fix comment.
	* tree-vect-slp.c (vect_analyze_slp): Check that there are at
	least two reduction statements in the loop before starting SLP
	analysis.

2010-04-22  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.

2010-04-22  Alexander Monakov  <amonakov@ispras.ru>

	* tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
	to simplify a + ~a.

2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* tree-parloops.c (loop_parallel_p): New argument
	parloop_obstack.  Pass it down.
	(parallelize_loops): New variable parloop_obstack.  Initialize it,
	pass it down, free it.

	* tree-loop-linear.c (linear_transform_loops): Pass down
	lambda_obstack.

	* tree-data-ref.h (lambda_compute_access_matrices): New argument
	of type struct obstack *.

	* tree-data-ref.c (analyze_subscript_affine_affine): New variable
	scratch_obstack.  Initialize it, pass down, free it.

	* lambda.h (lambda_loop_new): Remove.
	(lambda_matrix_new, lambda_matrix_inverse)
	(lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
	argument of type struct obstack *.

	* lambda-trans.c (lambda_trans_matrix_new): New argument
	lambda_obstack.  Pass it down, use obstack allocation for ret.
	(lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
	it down.

	* lambda-mat.c (lambda_matrix_get_column)
	(lambda_matrix_project_to_null): Remove.
	(lambda_matrix_new): New argument lambda_obstack.  Use obstack
	allocation for mat.
	(lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
	lambda_obstack.

	* lambda-code.c (lambda_loop_new): New function.
	(lambda_lattice_new, compute_nest_using_fourier_motzkin)
	(lambda_compute_auxillary_space, lambda_compute_target_space)
	(lambda_loopnest_transform, gcc_loop_to_lambda_loop)
	(lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
	(build_access_matrix): New argument lambda_obstack.  Use obstack
	allocation for am.
	(lambda_compute_step_signs, lambda_compute_access_matrices): New
	argument lambda_obstack.  Pass it down.

2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>

	* optabs.h (expand_widening_mult): Declare.

2010-04-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43845
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
	lookup the CALL_EXPR function and arguments.

2010-04-22  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16.c
	(xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
	* config/stormy16/stormy16.h: Tidy up formatting.
	(DONT_USE_BUILTIN_SETJMP): Remove definition.
	* config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
	(ineqbranchsi): Delete pattern.
	* config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
	* config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
	* config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
	stormy16-lib2-ucmpsi2.c.

2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>

	* ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
	df_simulate_find_noclobber_defs as appropriate.  Keep track of an
	extra set merge_set_noclobber, and use it to relax the final test
	slightly.
	* df.h (df_simulate_find_noclobber_defs): Declare.
	* df-problems.c (df_simulate_find_defs): Don't ignore partial or
	conditional defs.
	(df_simulate_find_noclobber_defs): New function.

2010-04-22  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md: Use {} around multi-line preparation statements.

2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* c-tree.h (push_init_level, pop_init_level, set_init_index)
	(process_init_element): New argument of type struct obstack *.

	* c-typeck.c (push_init_level, pop_init_level, set_designator)
	(set_init_index, set_init_label, set_nonincremental_init)
	(set_nonincremental_init_from_string, find_init_member)
	(output_init_element, output_pending_init_elements)
	(process_init_element): New argument braced_init_obstack.  Pass it
	down.
	(push_range_stack, add_pending_init): New argument
	braced_init_obstack.  Use obstack allocation.

	* c-parser.c (c_parser_initelt, c_parser_initval): New argument
	braced_init_obstack.  Pass it down.
	(c_parser_braced_init): New variables ret, braced_init_obstack.
	Initialize obstack, pass it down and finally free it.

2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>

	PR middle-end/29274
	* tree-pass.h (pass_optimize_widening_mul): Declare.
	* tree-ssa-math-opts.c (execute_optimize_widening_mul,
	gate_optimize_widening_mul): New static functions.
	(pass_optimize_widening_mul): New.
	* expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
	<case MULT_EXPR>: Remove support for widening multiplies.
	* tree.def (WIDEN_MULT_EXPR): Tweak comment.
	* cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
	simplify_gen_unary rather than directly building extensions.
	* tree-cfg.c (verify_gimple_assign_binary): Add tests for
	WIDEN_MULT_EXPR.
	* expmed.c (expand_widening_mult): New function.
	* passes.c (init_optimization_passes): Add pass_optimize_widening_mul.

2010-04-21  Jan Hubicka  <jh@suse.cz>

	* timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
	* lto-section-in.c (lto_section_name): Remove wpa_fixup.
	* lto-wpa-fixup.c: Remove.
	* Makefile.in (lto-wpa-fixup.o): Remove.
	* passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
	(execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
	* lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.

2010-04-21  Jan Hubicka  <jh@suse.cz>

	* tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
	add write_optimization_summary, read_optimization_summary.
	(ipa_write_summaries_of_cgraph_node_set): Remove.
	(ipa_write_optimization_summaries): Declare.
	(ipa_read_optimization_summaries): Declare.
	* ipa-cp.c (pass_ipa_cp): Update.
	* ipa-reference.c (pass_ipa_reference): Update.
	* ipa-pure-const.c (pass_ipa_pure_const): Update.
	* lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
	Update.
	* ipa-inline.c (pass_ipa_inline): Update.
	* ipa.c (pass_ipa_whole_program): Update.
	* lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
	* passes.c (ipa_write_summaries_1): Do not test wpa.
	(ipa_write_optimization_summaries_1): New.
	(ipa_write_optimization_summaries): New.
	(ipa_read_summaries): Do not test ltrans.
	(ipa_read_optimization_summaries_1): New.
	(ipa_read_optimization_summaries): New.

2010-04-21  Jan Hubicka  <jh@suse.cz>

	* lto-cgraph.c (lto_output_node): Do not output comdat groups
	for boundary nodes.
	(output_cgraph): Do not arrange comdat groups for boundary nodes.

2010-04-21  Jakub Jelinek  <jakub@redhat.com>

	PR debug/40040
	* dwarf2out.c (add_name_and_src_coords_attributes): Add
	DW_AT_{,MIPS_}linkage_name even for Fortran decls.

2010-04-21  Jan Hubicka  <jh@suse.cz>

	* ipa-prop.c (ipa_edge_removal_hook): Check for bounds.

2010-04-21  Jan Hubicka  <jh@suse.cz>

	* varpool.c (decide_is_variable_needed): Variable is always needed
	during ltrans.

2010-04-21  Jan Hubicka  <jh@suse.cz>

	* opts.c (decode_options): Enable pure-const pass for whopr.

2010-04-21  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (dump_cgraph_node): Dump also assembler name.
	* ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
	at WPA dumping.
	(cgraph_decide_inlining): Do not expect callee to be removed in all
	cases.

2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>

	* config/avr/avr-devices.c (avr_mcu_types): Add missing comma.

2010-04-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (x86_shrd): Add athlon_decode and
	amdfam10_decode attributes.

2010-04-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/43570
	* omp-low.c (scan_sharing_clauses): Don't scan_omp_op
	OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
	(lower_copyprivate_clauses): Use private var in outer
	context instead of original var.  Make sure the types
	are correct for VLAs.

2010-04-21  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
	to non-pointer objects.

2010-04-21  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
	last chain entry if it starts with the still current label.
	(add_location_or_const_value_attribute): Check that
	loc_list->first->next is NULL instead of comparing ->first with ->last.
	(dwarf2out_var_location): Pass last_label resp. last_postcall_label
	to add_var_loc_to_decl.

	* dwarf2out.c (output_call_frame_info): For dw_cie_version
	>= 4 add also address size and segment size fields into CIE header.

	* unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
	long as address size is the same as sizeof (void *) and
	segment size is 0.
	* unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
	address size or segment size is unexpected, return DW_EH_PE_omit.
	(classify_object_over_fdes): If get_cie_encoding returned
	DW_EH_PE_omit, return -1.
	(init_object): If classify_object_over_fdes returned -1,
	pretend there were no FDEs at all.

2010-04-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (bswap<mode>2): Macroize expander from
	bswap{si,di}2 using SWI48 mode iterator.
	(*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
	SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
	set modrm attribute of bswap insn to 0 and remove length attribute.
	(*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
	iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
	set mode attribute to <MODE> and remove length attribute.

2010-04-20  James E. Wilson  <wilson@codesourcery.com>

	PR rtl-optimization/43520
	* ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
	zero available registers.

2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_cproj): Fold more cases.

2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (build_complex_cproj, fold_builtin_cproj): New.
	(fold_builtin_1): Fold builtin cproj.
	* builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
	Use ATTR_CONST_NOTHROW_LIST.

2010-04-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
	and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
	ffsi2_no_cmove for !TARGET_CMOVE.
	(ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
	(ffssi2): Remove expander.
	(*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
	mode iterator.
	(ctz<mode>2): Ditto from ctz{si,di}2.
	(clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
	mode iterator.
	(clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
	mode iterator.

2010-04-20  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (AT_linkage_name): Define.
	(clone_as_declaration): Handle DW_AT_linkage_name.
	(add_name_and_src_coords_attributes): Use AT_linkage_name instead
	of DW_AT_MIPS_linkage_name.
	(move_linkage_attr): Likewise.
	(dwarf2out_finish): Likewise.

2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>

	PR middle-end/41952
	* fold-const.c (fold_comparison): New folding rule.

2010-04-20  Anatoly Sokolov  <aesok@post.ru>

	* double-int.h (double_int_setbit): Declare.
	* double-int.c (double_int_setbit): New function.
	* rtl.h (immed_double_int_const): Declare.
	* emit-rtl.c (immed_double_int_const): New function.
	* builtins.c (expand_builtin_signbit): Clean up, use double_int_*
	and immed_double_int_const functions.
	* optabs.c (expand_absneg_bit, expand_copysign_absneg,
	expand_copysign_bit): (Ditto.).
	* simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
	* tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
	* dojump.c (prefer_and_bit_test): (Ditto.).
	* expr.c (convert_modes, reduce_to_bit_field_precision,
	const_vector_from_tree): (Ditto.).
	* expmed.c (mask_rtx, lshift_value): (Ditto.).

2010-04-20  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
	(dump_cgraph_node): Dump new flags.
	* cgraph.h (struct cgraph_node): Add flags
	reachable_from_other_partition and in_other_partition.
	(cgraph_can_remove_if_no_direct_calls_p): Functions used by
	other partition can not be removed.
	* cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
	the other partition must be output; silence sanity checking on
	leaking functions bodies from other paritition.
	* lto-cgraph.c (reachable_from_other_partition_p): New function.
	(lto_output_node): Output new flags; do not sanity check that inline
	clones are output; drop lto_forced_extern_inline_p code; do not mock
	visibility flags at partition boundaries.
	(add_node_to): New function.
	(output_cgraph): Use it to sort functions so masters appear before
	clones.
	(input_overwrite_node): Input new flags.
	* passes.c (ipa_write_summaries): Do not call
	lto_new_extern_inline_states.
	* lto-section-out.c (forced_extern_inline,
	lto_new_extern_inline_states lto_delete_extern_inline_states,
	lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
	* lto-streamer.h (lto_new_extern_inline_states,
	* lto_delete_extern_inline_states, lto_force_functions_extern_inline,
	lto_forced_extern_inline_p): Kill.

2010-04-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (do_sd_constraint): Add edges only
	from vars that can have pointers.
	(process_constraint): Dump useless constraints.

2010-04-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
	(dump_sa_points_to_info): Remove asserts.
	(init_base_vars): nothing_id isn't an escape point nor does it
	have pointers.

2010-04-20  Jakub Jelinek  <jakub@redhat.com>

	* tree.h (TYPE_REF_IS_RVALUE): Define.
	* dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
	should_move_die_to_comdat, prune_unused_types_walk): Handle
	DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
	(modified_type_die, gen_reference_type_die): Emit
	DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
	if TYPE_REF_IS_RVALUE and -gdwarf-4.

2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR target/43635
	* config/s390/s390.c (s390_emit_call): Turn direct into indirect
	calls for -fpic -m31 if they have been sibcall optimized.

2010-04-19  James E. Wilson  <wilson@codesourcery.com>

	* config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
	ar.lc fixed and call-used.

	* config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.

2010-04-19  Jan Hubicka  <jh@suse.cz>

	* opts.c (decode_options): Disable whpr incompatible passes.
	* lto/lto.c (lto_1_to_1_map): Skip clones.
	(read_cgraph_and_symbols): Do not mark everything as needed.
	(do_whole_program_analysis): Do map only after optimizing;
	set proper cgraph_state; use passmanager.

2010-04-19  DJ Delorie  <dj@redhat.com>

	* cfgexpand.c (expand_debug_expr): Check for mismatched modes in
	POINTER_PLUS_EXPR and fix them.

2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>

	* config/avr/avr-devices.c (avr_mcu_types): Add support for new
	devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
	attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
	atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
	atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
	atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
	atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
	atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
	m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
	atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
	* config/avr/t-avr.c (MULTILIB_MATCHES): Same.

2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>

	* ifcvt.c (noce_try_cmove_arith): Fix long lines.
	(check_cond_move_block): Likewise.
	(cond_move_process_if_block): Likewise.
	(noce_find_if_block): Improve formatting.
	(find_if_header): Pass 0 to memset and tweak conditions.
	(cond_exec_find_if_block): Fix long lines and tweak conditions.

2010-04-19  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
	for -gdwarf-4.

	PR middle-end/43337
	* tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
	with non-local decl doesn't need chain.

2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-color.c (allocno_reload_assign): Avoid accumulating
	reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.

2010-04-19  Martin Jambor  <mjambor@suse.cz>

	* gimple.h (create_tmp_reg): Declare.
	* gimplify.c (create_tmp_reg): New function.
	(gimplify_return_expr): Use create_tmp_reg.
	(gimplify_omp_atomic): Likewise.
	(gimple_regimplify_operands): Likewise.
	* tree-dfa.c (make_rename_temp): Likewise.
	* tree-predcom.c (predcom_tmp_var): Likewise.
	(reassociate_to_the_same_stmt): Likewise.
	* tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
	(get_replaced_param_substitute): Likewise.
	* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
	* tree-ssa-phiopt.c (cond_store_replacement): Likewise.
	* tree-ssa-pre.c (get_representative_for): Likewise.
	(create_expression_by_pieces): Likewise.
	* tree-tailcall.c (adjust_return_value_with_ops): Likewise.
	(create_tailcall_accumulator): Likewise.

2010-04-19  Martin Jambor  <mjambor@suse.cz>

	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
	new_stmt.
	(cgraph_materialize_all_clones): Assert	!need_ssa_update_p.

2010-04-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43796
	* tree-vrp.c (adjust_range_with_scev): Lookup init and step
	from SCEV in the lattice.
	(vrp_visit_phi_node): Dump change.

2010-04-19  Richard Guenther  <rguenther@suse.de>

	* configure.ac: Fix quoting around elf_getshstrndx ABI check.
	* configure: Re-generated.

2010-04-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43783
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
	constant ARRAY_REF operands two and three if possible.

2010-04-19  Uros Bizjak  <ubizjak@gmail.com>

	PR target/43766
	* config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.

2010-04-19  Jie Zhang  <jie@codesourcery.com>

	PR target/43662
	* reginfo.c (reinit_regs): Set caller_save_initialized_p to false.

2010-04-19  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/37027
	* tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
	and macro to access it.
	(vectorizable_reduction): Add argument.
	(vect_get_slp_defs): Likewise.
	* tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
	statements for possible use in SLP.
	(new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
	(destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
	(vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
	add new argument.
	(vectorizable_reduction): Likewise.
	* tree-vect-stmts.c (vect_get_vec_defs): Update call to
	vect_get_slp_defs.
	(vectorizable_type_demotion, vectorizable_type_promotion,
	vectorizable_store): Likewise.
	(vect_analyze_stmt): Update call to vectorizable_reduction.
	(vect_transform_stmt): Likewise.
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
	(vect_build_slp_tree): Fix indentation. Check that there are no loads
	from different interleaving chains in same node.
	(vect_slp_rearrange_stmts): New function.
	(vect_supported_load_permutation_p): Allow load permutations for
	reductions. Call vect_slp_rearrange_stmts() to rearrange statements
	inside SLP nodes if necessary.
	(vect_analyze_slp_instance): Handle reductions.
	(vect_analyze_slp): Try to build SLP instances originating from groups
	of reductions.
	(vect_detect_hybrid_slp_stmts): Skip reduction statements.
	(vect_get_constant_vectors): Create initial vectors for reductions
	according to reduction code. Add new argument.
	(vect_get_slp_defs): Add new argument, pass it to
	vect_get_constant_vectors.
	(vect_schedule_slp_instance): Remove SLP tree root statements.

2010-04-19  Jakub Jelinek  <jakub@redhat.com>

	* tree.h (ENUM_IS_SCOPED): Define.
	* dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
	for ENUM_IS_SCOPED enums.

2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (fold_comparison): Use ssizetype.
	* gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
	* ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
	* tree-loop-distribution.c (build_size_arg_loc): Likewise.
	* tree-object-size.c (compute_object_sizes): Use size_type_node.

	* tree.h (initialize_sizetypes): Remove parameter.
	(build_common_tree_nodes): Remove second parameter.
	* stor-layout.c (initialize_sizetypes): Remove parameter.
	Always create an unsigned type.
	(set_sizetype): Assert that the passed type is unsigned and simplify.
	* tree.c (build_common_tree_nodes): Remove second parameter.
	Adjust call to initialize_sizetypes.
	* c-decl.c (c_init_decl_processing): Remove second argument in call to
	build_common_tree_nodes.

2010-04-18  Matthias Klose  <doko@ubuntu.com>

	* gcc.c (main): Search for liblto_plugin.so with mode R_OK.

2010-04-18  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/43771
	* tree-vect-slp.c (vect_supported_load_permutation_p): Check that
	load permutation doesn't have gaps.

2010-04-18  Jan Hubicka  <jh@suse.cz>

	* i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
	(sse_prologue_save_insn expander): Use new pattern.
	(sse_prologue_save_insn1): New pattern and splitter.
	(sse_prologue_save_insn): Update to deal also with 64bit aligned
	blocks.
	* i386.c (setup_incoming_varargs_64): Do not compute jump
	destination here.
	(ix86_gimplify_va_arg): Update alignment needed.
	(ix86_local_alignment): Do not align all local arrays to 128bit.

2010-04-17  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (cgraph_early_inlining): Handle flattening too.

2010-04-17  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (negdi2): Remove redundant code to force values into a
	register.

2010-04-17  Richard Earnshaw  <rearnsha@arm.com>

	* arm/bpabi.S: Add EABI alignment attributes to objects.
	* arm/bpabi-v6m.S: Likewise.
	* arm/crti.asm: Likewise.
	* arm/crtn.asm: Likewise.
	* arm/lib1funcs.asm: Likewise.
	* arm/libunwind.S: Likewise.

2010-04-17  Richard Earnshaw  <rearnsha@arm.com>

	* arm-protos.h (tune_params): New structure.
	* arm.c (current_tune): New variable.
	(arm_constant_limit): Delete.
	(struct processors): Add pointer to the tune parameters.
	(arm_slowmul_tune): New tuning option.
	(arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
	(all_cores): Adjust to pick up the tuning model.
	(arm_constant_limit): New function.
	(arm_override_options): Select the appropriate tuning model.  Delete
	initialization of arm_const_limit.
	(arm_split_constant): Use the new constant-limit model.
	(arm_rtx_costs): Pick up the current tuning model.
	* arm.md (is_strongarm, is_xscale): Delete.
	* arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
	for Xscale variant architectures.
	(mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.

2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (arm_gen_constant): Remove unused variable
	can_shift.
	(arm_rtx_costs_1): Remove unused variable extra_cost.
	(arm_unwind_emit_set): Use variable offset.
	(thumb1_output_casesi): Remove unused variable flags.

2010-04-16  Jeff Law  <law@redhat.com>

	* ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
	needing assignment rather than doing a two-phase assignment.  Remove
	unused variable 'm'.

2010-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/43767
	* alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.

2010-04-16  Doug Kwan  <dougkwan@google.com>

	* tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
	(next_operand_entry_id): New static variable.
	(sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
	(add_to_ops_vec): Assigned unique ID to operand entry.
	(struct oecount_s): New field ID.
	(oecount_cmp): Stabilize qsort comparotor by using unique IDs.
	(undistribute_ops_list): Assign unique IDs to oecounts.
	(init_reassoc): reset next_operand_entry_id.

2010-04-16  Doug Kwan  <dougkwan@google.com>

	* config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
	missing left parenthesis.

2010-04-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
	*btdi_rex64 using SWI48 mode iterator.
	(*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
	(*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
	*jcc_btdi_mask_rex64.

2010-04-16  Anatoly Sokolov  <aesok@post.ru>

	* double-int.h (tree_to_double_int): Convert to macro.
	* double-int.c (tree_to_double_int): Remove.

2010-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43762
	* dwarf2out.c (add_bound_info): Always call loc_list_from_tree
	with want_address 2 and in case a single element list might be
	possible, call it again with want_address 0.

2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>

	* config/h8300/h8300.c (print_operand) : Modify case 'V' and
	case 'W' print operands for HI mode.
	* config/h8300/h8300.h (Y0, Y2) : New constraints.
	* config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
	(bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
	* config/h8300/predicate.md (bit_register_indirect_operand): New.

	* config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.

	* config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
	cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
	#xx:3 and #xx:4 mode.

	* config/h8300/h8300.md (inverted load with HImode dest): Add
	support for H8300SX.

	* config/h8300/predicate.md (bit_operand): Allow immediate values that
	satisfy 'U' constraint.

2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
	* configure: Regenerate.
	* config.in: Regenerate.
	* doc/install.texi (Prerequisites): Document that Solaris 2 libelf
	works.

2010-04-16  Richard Guenther  <rguenther@suse.de>

	* tree.h (struct tree_decl_minimal): Move pt_uid ...
	(struct tree_decl_common): ... here.
	(DECL_PT_UID): Adjust.
	(SET_DECL_PT_UID): Likewise.
	(DECL_PT_UID_SET_P): Likewise.

2010-04-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43572
	* tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
	* tree-ssa-alias.c (call_may_clobber_ref_p): Export.
	* tree-flow.h (is_call_clobbered): Remove.
	* tree-flow-inline.h (is_call_clobbered): Likewise.
	* tree-dfa.c (dump_variable): Do not dump call clobber state.
	* tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
	(execute_return_slot_opt): Adjust.
	* tree-tailcall.c (suitable_for_tail_opt_p): Remove
	check for call clobbered vars here.
	(find_tail_calls): Move tailcall verification to the
	proper place.

2010-04-16  Diego Novillo  <dnovillo@google.com>

	* doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.

2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/40603
	* config/arm/arm.md (cbranchqi4): New pattern.
	* config/arm/predicates.md (const0_operand,
	cbranchqi4_comparison_operator): New predicates.

2010-04-16  Richard Guenther  <rguenther@suse.de>

	* gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
	(dump_gimple_stmt): Likewise.

2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>

	* recog.h (struct recog_data): New field is_operator.
	(struct insn_operand_data): New field is_operator.
	* recog.c (extract_insn): Set recog_data.is_operator.
	* genoutput.c (output_operand_data): Emit code to set the
	is_operator field.
	* reload.c (find_reloads): Use it rather than testing for an
	empty constraint string.

	PR target/41514
	* config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
	If the previous insn is a cbranchsi4_insn with the same arguments,
	omit the compare instruction.

	* config/arm/arm.md (addsi3_cbranch): If destination is a high
	register, inputs must be low registers and we need a low register
	scratch.  Handle alternative 2 like alternative 3.

2010-04-16  Jakub Jelinek  <jakub@redhat.com>

	* alias.c (memrefs_conflict_p): If x and y are the same VALUE,
	don't call get_addr on both.  If one expression is a VALUE and
	the other a REG, check VALUE's locs if the REG isn't among them.

2010-04-16  Christian Bruel  <christian.bruel@st.com>

	* config/sh/sh.h (sh_frame_pointer_required): New function.
	* config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
	(flag_omit_frame_pointer) Set.
	(MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
	(rounded_frame_size): Adjust size with outgoing_args_size.
	(sh_set_return_address): Must return from stack pointer.
	* config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
	(SUBTARGET_FRAME_POINTER_REQUIRED): Define.
	(ACCUMULATE_OUTGOING_ARGS): Define.
	* doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
	* config/sh/sh.opt (maccumulate-outgoing-args): New option.

2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/43471
	* config/sh/sh.c (sh_legitimize_reload_address): Use
	MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
	Remove a unneeded check for offset_base.

2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>

	* configure: Regenerated.

2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_call_save_register_used): Switch back
	to HARD_REGNO_NREGS.

2010-04-15  Richard Guenther  <rguenther@suse.de>

	* alias.c (alias_set_subset_of): Handle alias-set zero
	child properly.

2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	* config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
	alternatives according to use of high and low regs.
	* config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
	* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
	optimizing for size on Thumb-2.

2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>

	* config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.

2010-04-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (struct variable_info): Add
	is_fn_info flag.
	(new_var_info): Initialize it.
	(dump_constraints): Support printing last added constraints.
	(debug_constraints): Adjust.
	(dump_constraint_graph): Likewise.
	(make_heapvar_for): Check for NULL cfun.
	(get_function_part_constraint): New function.
	(get_fi_for_callee): Likewise.
	(find_func_aliases): Properly implement IPA PTA constraints.
	(process_ipa_clobber): New function.
	(find_func_clobbers): Likewise.
	(insert_into_field_list_sorted): Remove.
	(create_function_info_for): Properly allocate vars for IPA mode.
	Do not use insert_into_field_list_sorted.
	(create_variable_info_for): Properly generate constraints for
	global vars in IPA mode.
	(dump_solution_for_var): Always dump the solution.
	(set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
	(find_what_var_points_to): Adjust.
	(pt_solution_set): Change.
	(pt_solution_ior_into): New function.
	(pt_solution_empty_p): Export.
	(pt_solution_includes_global): Adjust.
	(pt_solution_includes_1): Likewise.
	(pt_solutions_intersect_1): Likewise.
	(dump_sa_points_to_info): Check some invariants.
	(solve_constraints): Move constraint dumping ...
	(compute_points_to_sets): ... here.
	(ipa_pta_execute): ... and here.
	(compute_may_aliases): Do not re-compute points-to info
	locally if IPA info is available.
	(ipa_escaped_pt): New global var.
	(ipa_pta_execute): Properly implement IPA PTA.
	* tree-into-ssa.c (dump_decl_set): Support dumping
	decls not in referenced-vars.
	* tree-flow.h (struct gimple_df): Add ipa_pta flag.
	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
	(dump_points_to_solution): Likewise.
	* tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
	* tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
	(remap_gimple_stmt): Reset call clobber/use information if necessary.
	(copy_decl_to_var): Copy DECL_PT_UID.
	(copy_result_decl_to_var): Likewise.
	* tree.c (make_node_stat): Initialize DECL_PT_UID.
	(copy_node_stat): Copy it.
	* tree.h (DECL_PT_UID): New macro.
	(SET_DECL_PT_UID): Likewise.
	(DECL_PT_UID_SET_P): Likewise.
	(struct tree_decl_minimal): Add pt_uid member.
	* tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
	(pt_solution_empty_p): Declare.
	(pt_solution_set): Adjust.
	(ipa_escaped_pt): Declare.
	* cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
	* gimple-pretty-print.c (pp_points_to_solution): New function.
	(dump_gimple_call): Dump call clobber/use information.
	* tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
	* tree-pass.h (TDF_ALIAS): New dump option.
	* tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
	* doc/invoke.texi (-fipa-pta): Update documentation.

2010-04-15  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (OBJS-common): Add gimple-fold.o.
	(gimple-fold.o): New rule.
	* tree.h (maybe_fold_offset_to_reference,
	maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
	prototypes ...
	* gimple.h: ... here.
	* tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
	may_propagate_address_into_dereference): Move prototypes ...
	* gimple.h: ... here.
	* tree-ssa-ccp.c (get_symbol_constant_value,
	may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
	maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
	maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
	maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
	ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
	fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
	gimplify_and_update_call_from_tree): Move ...
	* gimple-fold.c: ... here.  New file.
	(ccp_fold_builtin): Rename to ...
	(gimple_fold_builtin): ... this.
	* tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.

2010-04-15  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
	fit_double_type, force_fit_type_double, add_double_with_sign,
	neg_double, mul_double_with_sign, lshift_double, rshift_double,
	lrotate_double, rrotate_double, div_and_round_double): Move ...
	* double-int.c: ... here.
	* tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
	add_double, neg_double, mul_double_with_sign, mul_double,
	lshift_double, rshift_double, lrotate_double, rrotate_double,
	div_and_round_double): Move prototypes ...
	* double-int.h: ... here.

2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/43742
	* config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
	matching constraints to ensure inputs match the output.

2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/43742
	* config/sh/sh.md (doloop_end_split): Remove "+r" constraint
	in an input-only operand.

2010-04-15  Anatoly Sokolov  <aesok@post.ru>

	* double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
	(double_int_not, double_int_lshift, double_int_rshift): Declare.
	(double_int_negative_p): Convert to static inline function.
	* double-int.c (double_int_lshift, double_int_lshift): New functions.
	(double_int_negative_p): Remove.
	* tree.h (lshift_double, rshift_double):
	* tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
	* fold-const.c (fold_convert_const_int_from_real,
	fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
	(lshift_double): Change type of arith argument to bool.
	(rshift_double): Change type of arith argument to bool. Correct
	comment.
	* expmed.c (mask_rtx, lshift_value): (Ditto.).

2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>

	PR target/21803
	* ifcvt.c (cond_exec_process_if_block): Look for identical sequences
	at the start and end of the then/else blocks, and omit them from the
	conversion.
	* cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
	argument; all callers changed.  Pass zero to old_insns_match_p instead.
	(flow_find_head_matching_sequence): New function.
	(old_insns_match_p): Check REG_EH_REGION notes for calls.
	* basic-block.h (flow_find_cross_jump,
	flow_find_head_matching_sequence): Declare functions.

2010-04-14  Jason Merrill  <jason@redhat.com>

	PR c++/36625
	* c-common.c (attribute_takes_identifier_p): New fn.
	* c-common.h: Declare it.

2010-04-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
	splitter condition.
	(*udivmod<mode>4): Ditto.

2010-04-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (maxmin_int): Rename code attribute from
	maxminiprefix and update all users.
	(maxmin_float): Ditto from maxminfprefix.
	(logic): Ditto from logicprefix.
	(absneg_mnemonic): Ditto from absnegprefix.
	* config/i386/mmx.md: Update all users of maxminiprefix,
	maxminfprefix and logicprefix for rename.
	* config/i386/sse.md: Ditto.
	* config/i386/sync.md (sync_<code><mode>): Update for
	logicprefix rename.

2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 42966
	* diagnostics.c (diagnostic_report_diagnostic): Mark specially
	warnings converted to errors.

2010-04-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
	used insn_type variable.
	(function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
	to avoid set-but-not-used warning.

2010-04-14  Uros Bizjak  <ubizjak@gmail.com>

	* df-core.c (df_ref_debug): Change format string placeholder
	from 0x%x to %#x.
	* dwarf2asm.c (dw2_asm_output_data_raw,
	dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
	dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
	* dwarf2out.c (output_cfi, output_cfi_directive,
	dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
	output_cfa_loc_raw, output_die, output_ranges, output_file_names):
	Ditto.
	* genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
	* print-rtl.c (print_rtx): Ditto.

2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR middle-end/42694
	* builtins.c (expand_builtin_pow_root): New function to expand pow
	calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
	series of sqrt and cbrt calls under -ffast-math.
	(expand_builtin_pow): Call it.

2010-04-14  Michael Matz  <matz@suse.de>

	PR tree-optimization/42963
	* tree-cfg.c (touched_switch_bbs): New static variable.
	(group_case_labels_stmt): New function broken out from ...
	(group_case_labels): ... here, use the above.
	(start_recording_case_labels): Allocate touched_switch_bbs.
	(end_recording_case_labels): Deallocate it, call
	group_case_labels_stmt.
	(gimple_redirect_edge_and_branch): Remember index of affected BB.

2010-04-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
	from insn template.

2010-04-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.

2010-04-13  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
	of optimized out static functions.
	(cgraph_edge_badness): Add DUMP parameter and dump reasons for the
	cost computation.  Also sanity check for overflows.
	(update_caller_keys): Update cgraph_edge_badness call; properly
	update fibheap and sanity check that it is up to date.
	(add_new_edges_to_heap): Update cgraph_edge_badness.
	(cgraph_decide_inlining_of_small_function): Likewise;
	add sanity checking that badness in heap is up to date;
	improve dumping of reason; Update badness of calls to the
	offline copy of function currently inlined; dump badness
	of functions not inlined because of unit growth limits.

2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/32628
	* c-common.c (pointer_int_sum): Disregard overflow that occured only
	because of sign-extension change when converting to sizetype here...
	* fold-const.c (fold_convert_const_int_from_int): ...and not here.

	* fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
	the folding to constants.  Remove redundant final conversion.
	(fold_binary) <associate>: Do not associate if the re-association of
	constants alone overflows.
	(fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
	to the end of the list.
	(multiple_of_p) <COND_EXPR>: New case.

2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* opt-functions.awk (opt_sanitized_name): New.
	(opt_enum): New.
	* optc-gen.awk: Use it
	* opth-gen.awk: Use it.

2010-04-13  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
	(sra_modify_assign): Delete stmts loading dead data even if racc has no
	children.  Call replace_uses_with_default_def_ssa_name to handle
	SSA_NAES on lhs.

2010-04-13  Michael Matz  <matz@suse.de>

	PR middle-end/43730
	* builtins.c (expand_builtin_interclass_mathfn): Also create
	a register if the predicate doesn't match.

2010-04-13  Diego Novillo  <dnovillo@google.com>

	* Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
	* c-pch.c: Include timevar.h.
	(c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
	(c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
	* ggc-common.c: Include timevar.h.
	(gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
	* timevar.def (TV_PCH_SAVE): Define.
	(TV_PCH_CPP_SAVE): Define.
	(TV_PCH_PTR_REALLOC): Define.
	(TV_PCH_PTR_SORT): Define.
	(TV_PCH_RESTORE): Define.
	(TV_PCH_CPP_RESTORE): Define.

2010-04-13  Michael Matz  <matz@suse.de>

	* tree-ssa-reassoc.c (repropagate_negates): Merge negates also
	into MINUS_EXPRs.
	(can_reassociate_p): New function.
	(break_up_subtract_bb, reassociate_bb): Use it.

2010-04-13  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/43737
	* builtins.c (c_readstr): Fix assert.

2010-04-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
	when generating cltd insn.

	(*ashl<mode>3_1): Remove special handling for register operand 2.
	(*ashlsi3_1_zext): Ditto.
	(*ashlhi3_1): Ditto.
	(*ashlhi3_1_lea): Ditto.
	(*ashlqi3_1): Ditto.
	(*ashlqi3_1_lea): Ditto.
	(*<shiftrt_insn><mode>3_1): Ditto.
	(*<shiftrt_insn>si3_1_zext): Ditto.
	(*<shiftrt_insn>qi3_1_slp): Ditto.
	(*<rotate_insn><mode>3_1): Ditto.
	(*<rotate_insn>si3_1_zext): Ditto.
	(*<rotate_insn>qi3_1_slp): Ditto.

2010-04-13  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (callused_id): Remove.
	(call_stmt_vars): New.
	(get_call_vi): Likewise.
	(lookup_call_use_vi): Likewise.
	(lookup_call_clobber_vi): Likewise.
	(get_call_use_vi): Likewise.
	(get_call_clobber_vi): Likewise.
	(make_transitive_closure_constraints): Likewise.
	(handle_const_call): Adjust to do per-call call-used handling.
	(handle_pure_call): Likewise.
	(find_what_var_points_to): Remove general callused handling.
	(init_base_vars): Likewise.
	(init_alias_vars): Initialize call_stmt_vars.
	(compute_points_to_sets): Process call-used and call-clobbered
	vars for call statements.
	(delete_points_to_sets): Free call_stmt_vars.

2010-04-13  Richard Guenther  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
	Only add RW dependence for dependence distance zero.
	Adjust maximal vectorization factor according to dependences.
	Move alignment handling ...
	(vect_find_same_alignment_drs): ... here.  New function.
	(vect_analyze_data_ref_dependences): Adjust.
	(vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
	(vect_analyze_data_refs): Adjust minimal vectorization factor
	according to data references.
	* tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
	dependences before determining the vectorization factor.
	Analyze alignment after determining the vectorization factor.
	* tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
	dependences before alignment.
	* tree-vectorizer.h (vect_analyze_data_ref_dependences):
	Adjust prototype.
	(vect_analyze_data_refs): Likewise.
	(MAX_VECTORIZATION_FACTOR): New define.

2010-04-13  Duncan Sands  <baldrick@free.fr>

	* except.h (lang_eh_type_covers): Remove.
	* except.c (lang_eh_type_covers): Likewise.

2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
	    Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
	* config/s390/s390.c: Replace UNTIS_PER_WORD with
	UNITS_PER_LONG where it is ABI relevant.
	(s390_return_addr_rtx): Likewise.
	(s390_back_chain_rtx): Likewise.
	(s390_frame_area): Likewise.
	(s390_frame_info): Likewise.
	(s390_initial_elimination_offset): Likewise.
	(save_gprs): Likewise.
	(s390_emit_prologue): Likewise.
	(s390_emit_epilogue): Likewise.
	(s390_function_arg_advance): Likewise.
	(s390_function_arg): Likewise.
	(s390_va_start): Likewise.
	(s390_gimplify_va_arg): Likewise.
	(s390_function_profiler): Likewise.
	(s390_optimize_prologue): Likewise.
	(s390_rtx_costs): Likewise.
	(s390_secondary_reload): Likewise.
	(s390_promote_function_mode): Likewise.
	(s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
	(s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
	registers available.
	(s390_unwind_word_mode): New function.
	(s390_function_value): Split 64 bit values into register pair if
	used as return value.
	(s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
	function call parameters.  Handle parallels.
	(TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
	(HARD_REGNO_CALL_PART_CLOBBERED): New macro.
	(DWARF_CIE_DATA_ALIGNMENT): New macro.
	(s390_expand_setmem): Remove unused variable src_addr.
	* longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
	deal with 64 bit registers.
	* config/s390/s390.h: Define __zarch__ predefined macro.
	Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
	(UNITS_PER_LONG): New macro.
	* libjava/include/s390-signal.h: Define extended ucontext
	structure containing the upper halfs of the 64 bit registers.

2010-04-13  Simon Baldwin  <simonb@google.com>

	* cfgexpand.c (gimple_expand_cfg): Clarify warning message text.

2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
	rvalue on the RHS if the LHS is of a non-renamable type.
	* tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.

2010-04-13  Matthias Klose  <doko@ubuntu.com>

	* gcc.c (cc1_options): Handle -iplugindir before processing
	the cc1 spec. Only add -iplugindir once.
	(cpp_unique_options): Add -iplugindir option if -fplugin* options
	found.
	* common.opt (iplugindir): Remove `Separate' property, initialize.
	* plugin.c (default_plugin_dir_name): Error with missing -iplugindir
	option.
	* Makefile.in (check-%, check-parallel-%): Create plugin dir.
	(distclean): Remove plugin dir.
	* doc/invoke.texi: Document -iplugindir.

2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>

	* doc/plugins.texi (Loading Plugins): Document short
	-fplugin=foo option.
	(Plugin API): Mention default_plugin_dir_name function.

	* gcc.c (find_file_spec_function): Add new declaration.
	(static_spec_func): Use it for "find-file".
	(find_file_spec_function): Add new function.
	(cc1_options): Add -iplugindir option if -fplugin* options found.

	* gcc-plugin.h (default_plugin_dir_name): Added new declaration.

	* plugin.c (add_new_plugin): Updated comment, and handle short
	plugin name.
	(default_plugin_dir_name): Added new function.

	* common.opt (iplugindir): New option to set the plugin directory.

2010-04-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (any_rotate): New code iterator.
	(rotate_insn): New code attribute.
	(rotate): Ditto.
	(SWIM124): New mode iterator.
	(<rotate_insn>ti3): New expander.
	(<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
	any_rotate code iterator.
	(<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
	using any_rotate code iterator and SWIM124 mode iterator.
	(ix86_rotlti3): New insn_and_split pattern.
	(ix86_rotrti3): Ditto.
	(ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
	ix86_rotl{di,ti}3 patterns.
	(ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
	(*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
	and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
	*{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
	code iterator and SWI mode iterator.
	(*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
	Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
	code iterator.
	(*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
	Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
	(bswap rotatert splitter): Add splitter.
	(bswap splitter): Macroize splitter using any_rotate code iterator.
	Add insn predicate to split only for TARGET_USE_XCHGB or when
	optimizing function for size.

2010-04-12  Steve Ellcey  <sje@cup.hp.com>

	* config/pa/pa.c (emit_move_sequence): Remove use of
	deleted variable flag_argument_noalias.

2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc: Removed *-*-solaris2.7* from list of obsolete
	configurations.
	Add to unsupported targets list.
	* configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
	sparc*-sun-solaris2.[567]* from target lists.
	* configure: Regenerate.
	* doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
	removal.
	Remove Solaris 7 patch references.
	(Specific, sparc-sun-solaris2.7): Removed.
	(sparc-sun-solaris2*): Update Solaris 7 example.
	(sparc64-*-solaris2*): Likewise.

2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.build (alpha*-dec-osf4*): Remove.
	* config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
	of obsolete configurations.
	(alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
	support.
	* config/alpha/t-osf4: Renamed to ...
	* config/alpha/t-osf5: ... this.
	* config/alpha/osf.h: Renamed to ...
	* config/alpha/osf5.h: ... this.
	Merged old osf5.h contents.
	Update comments.
	(ASM_SPEC): Use ASM_OLDAS_SPEC directly.
	(EXTRA_SPECS): Removed.
	* doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
	reflect removal of Tru64 UNIX V4.0/V5.0 support.
	Document that.

2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/contrib.texi (Contributors, Rainer Orth): Update.

2010-04-12  Kai Tietz  <kai.tietz@onevision.com>

	PR/43702
	* config/i386/i386.c (x86_this_parameter): Handle aggregate for
	__thiscall convention.

2010-04-12  Steve Ellcey  <sje@cup.hp.com>

	* config/pa/pa.c (hppa_legitimize_address): Remove unused variable
	orig_base.
	* config/pa/pa.md (call, call_value): Remove unused variable call_insn.

2010-04-12  Steve Ellcey  <sje@cup.hp.com>

	* function.c (assign_parms_initialize_all): Add unused attribute
	to fntype.

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

	* gsstruct.def (GSS_CALL): New.
	* gimple.def (GIMPLE_CALL): Change to GSS_CALL.
	* gimple.h: Include tree-ssa-alias.h.
	(struct gimple_statement_call): New.
	(union gimple_statement_struct_d): Add gimple_call member.
	(gimple_call_reset_alias_info): Declare.
	(gimple_call_use_set): New function.
	(gimple_call_clobber_set): Likewise.
	* Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
	* gimple.c (gimple_call_reset_alias_info): New function.
	(gimple_build_call_1): Call it.
	* lto-streamer-in.c (input_gimple_stmt): Likewise.
	* tree-inline.c (remap_gimple_stmt): Likewise.
	(expand_call_inline): Remove callused handling.
	* cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
	* tree-dfa.c (dump_variable): Likewise.
	* tree-parloops.c (parallelize_loops): Likewise.
	* tree-ssa.c (init_tree_ssa): Likewise.
	(delete_tree_ssa): Likewise.
	* tree-flow-inline.h (is_call_used): Remove.
	* tree-flow.h (struct gimple_df): Remove callused member.
	* tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
	* tree-ssa-alias.c (dump_alias_info): Remove callused handling.
	(ref_maybe_used_by_call_p_1): Simplify.
	(call_may_clobber_ref_p_1): Likewise.
	* tree-ssa-structalias.c (compute_points_to_sets): Set
	the call stmt used and clobbered sets.
	* tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
	(find_tail_calls): Verify the tail call.

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

	* ipa.c (cgraph_postorder): Adjust postorder to guarantee
	single-iteration always-inline inlining.
	* ipa-inline.c (cgraph_mark_inline): Do not return anything.
	(cgraph_decide_inlining): Do not handle always-inline specially.
	(try_inline): Remove always-inline cycle detection special case.
	Do not recurse on always-inlines.
	(cgraph_early_inlining): Do not iterate if not optimizing.
	(cgraph_gate_early_inlining): remove.
	(pass_early_inline): Run unconditionally.
	(gate_cgraph_decide_inlining): New function.
	(pass_ipa_inline): Use it.  Do not run the IPA inliner if
	not inlining or optimizing.
	(cgraph_decide_inlining_of_small_functions): Also consider
	always-inline functions.
	(cgraph_default_inline_p): Return true for nodes which should
	disregard inline limits.
	(estimate_function_body_sizes): Assume zero size and time for
	nodes which are marked as disregarding inline limits.
	(cgraph_decide_recursive_inlining): Do not perform recursive
	inlining on always-inline nodes.

2010-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/43699
	* c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
	for exprs satisfying handled_component_p.

2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (categorize_ctor_elements_1): Properly count sub-elements of
	non-constant aggregate elements.

	* gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
	is a real initialization.

2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>

	PR c/36774
	* c-decl.c (start_function): Move forward check for nested function.

2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
	* config/sh/sh.c: Include reload.h.
	(sh_legitimize_reload_address): New.
	* config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
	sh_legitimize_reload_address.

2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>

	* config/sh/sh.md (*movqi_pop): New insn pattern.
	* config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.

2010-04-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (any_shiftrt): New code iterator.
	(shiftrt_insn): New code attribute.
	(shiftrt): Ditto.
	(<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
	using any_shiftrt code iterator.
	(*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
	*{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
	(*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
	pattern from corresponding peephole2 patterns.
	(*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
	using any_shiftrt code iterator.
	(*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
	(*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
	(*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
	(*<shiftrt_insn><mode>3_cmp_zext): Ditto from
	*{ashr,lshr}<mode>3_cmp_zext.
	(*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.

2010-04-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
	scratch register.
	(*lshr<mode>3_cconly): Ditto.

2010-04-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (lshr<mode>3): Macroize expander from
	lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
	(*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
	pattern from *lshr{di,ti}3_1 and corresponding splitters using
	DWI mode iterator.
	(*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
	from corresponding peephole2 patterns.
	(*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
	*lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
	and *lshrdi3_1_rex64 using SWI mode iterator.
	(*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
	(*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
	(*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
	*lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
	and *lshrdi3_cmp_rex64 using SWI mode iterator.
	(*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
	(*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
	*lshrdi3_one_bit_cconly_rex64. Macroize insn from
	*lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
	SWI mode iterator.

2010-04-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (ashr<mode>3): Macroize expander from
	ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
	(*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
	pattern from *ashr{di,ti}3_1 and corresponding splitters using
	DWI mode iterator.
	(*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
	from corresponding peephole2 patterns.
	(ashrdi3_cvt): Rename from ashrdi3_63_rex64.
	(ashrsi3_cvt): Rename from ashrsi3_31.
	(*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
	(x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
	and x86_64_shift_adj_3 using SWI48 mode iterator.
	(*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
	*ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
	and *ashrdi3_1_rex64 using SWI mode iterator.
	(*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
	(*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
	(*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
	*ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
	and *ashrdi3_cmp_rex64 using SWI mode iterator.
	(*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
	(*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
	*ashrdi3_one_bit_cconly_rex64. Macroize insn from
	*ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
	SWI mode iterator.
	(sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
	* config/i386/i386.c (ix86_split_ashr): Update for renamed
	x86_shift<mode>_adj_3 expanders.

2010-04-10  Wei Guozhi  <carrot@google.com>

	PR target/42601
	* config/arm/arm.c (arm_pic_static_addr): New function.
	(legitimize_pic_address): Call arm_pic_static_addr when it detects
	a static symbol.
	(arm_output_addr_const_extra): Output expression for new pattern.
	* config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.

2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>

	* ira-costs.c (record_reg_classes): Ignore alternatives that are
	not enabled.

	* Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
	* web.c: Include "insn-config.h" and "recog.h".
	(union_match_dups): New function.
	(web_main): Call it.
	(union_defs): Don't try to recognize match_dups.

	* reload1.c (eliminate_regs_in_insn): Don't restore an operand
	if doing so would replace the entire pattern.

2010-04-09  Uros Bizjak  <ubizjak@gmail.com>

	PR target/43707
	PR target/43709
	* config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
	and splitter pattern.  Change splitter operand 1 predicate to
	nonmemory_operand.

2010-04-09  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
	lattices are addresses of CONST_DECLs with the same initial value.
	(ipcp_print_all_lattices): Print values of CONST_DECLs.
	* ipa-prop.c (ipa_print_node_jump_functions): Likewise.

2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
	    Bernd Schmidt  <bernds@codesourcery.com>

	* loop-invariant.c (replace_uses): New static function.
	(move_invariant_reg): Use it to ensure we can replace the uses.

2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (picochip_rtx_costs): Use correct
	function template.
	(picochip_override_options): Enable section anchors only above -O1.
	(picochip_reorg): Fixed a couple of build warnings.

2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (plugin -rdynamic test): Log result.
	* configure: Regenerate.
	* config/sol2.h (LINK_SPEC): Handle -rdynamic.
	(RDYNAMIC_SPEC): Define.
	* config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.

2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac: Determine Sun ld version numbers.
	(comdat_group): Restrict GNU ld version checks to gld.
	(comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
	(enable_comdat): Support --enable-comdat.
	* configure: Regenerate.
	* doc/install.texi (Configuration): Document --enable-comdat.

2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
	* config/sol2-gld.h: ... here.
	* config.gcc (sparc*-*-solaris2*): Reflect this.
	(i[34567]86-*-solaris2*): Use it.

2010-04-09  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
	setup_clocks_p.
	(final_emit_insn_group_barriers): Remove unused variable prev_insn.

2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 42965
	* diagnostic.c (diagnostic_initialize): Initialize
	some_warnings_are_errors.
	(diagnostic_finish): New.
	(diagnostic_action_after_output): Call it before exiting.
	(diagnostic_report_diagnostic): Do not print message here. Set
	some_warnings_are_errors.
	* diagnostic.h (diagnostic_context): Delete
	issue_warnings_are_errors_message. Add some_warnings_are_errors.
	(diagnostic_finish): Declare.
	* toplev.c (toplev_main): Call it before exit.

2010-04-09  Jason Merrill  <jason@redhat.com>

	PR c++/42623
	* c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
	for incomplete type.

	PR c++/41788
	* stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
	based on a warning flag.

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

	* tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.

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

	PR bootstrap/43684
	* varasm.c (default_assemble_visibility): Wrap vars that are
	set, but unused, by targets without GAS.
	* config/rs6000/rs6000.c (paired_emit_vector_compare):
	Remove set, but unused, vars.
	(rs6000_legitimize_tls_address): Likewise.
	(altivec_expand_dst_builtin): Likewise.
	* config/darwin.c (machopic_classify_symbol): Likewise.
	(machopic_indirection_name): Likewise.

2010-04-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (DWI): New mode iterator.
	(S): New mode attribute.
	(shift_operand): Ditto.
	(shift_immediate_operand): Ditto.
	(ashl_input_operand): Ditto.
	(ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
	using SDWIM mode iterator.
	(*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
	pattern from *ashl{di,ti}3_1 and corresponding splitters using
	DWI mode iterator.
	(*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
	from corresponding peephole2 patterns.
	(x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
	and x86_64_shift_adj_1 using SWI48 mode iterator.
	(x86_shift<mode>_adj_2): Ditto.
	(*ashldi3_1_rex64): Split TYPE_LEA pattern.
	(*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
	using SWI48 mode iterator.
	(*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
	*ashldi3_cmp_rex64 using SWI mode iterator.
	(*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
	*ashldi3_cconly_rex64 using SWI mode iterator.
	* config/i386/i386.c (ix86_split_ashl): Update for renamed
	x86_shift<mode>_adj_{1,2}.
	(ix86_split_ashr): Ditto.
	(ix86_split_lshr): Ditto.

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

	* target.h (builtin_conversion): Pass in input and output types.
	* targhooks.c (default_builtin_vectorized_conversion): Adjust.
	* targhooks.h (default_builtin_vectorized_conversion): Likewise.
	* tree-vect-stmts.c (vectorizable_conversion): Adjust.
	* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.

	* config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
	Handle AVX modes.
	* config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.

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

	PR target/43152
	* config/i386/sse.md (vcond<mode>): Handle AVX modes as well.

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

	* tree-vectorizer.h (struct _stmt_vec_info): Document
	that vectype is the type of the LHS.
	(supportable_widening_operation, supportable_narrowing_operation):
	Get both input and output vector types as arguments.
	(vect_is_simple_use_1): Declare.
	(get_same_sized_vectype): Likewise.
	* tree-vect-loop.c (vect_determine_vectorization_factor):
	Set STMT_VINFO_VECTYPE to the vector type of the def.
	(vectorizable_reduction): Adjust.
	* tree-vect-patterns.c (vect_recog_widen_mult_pattern):
	Adjust.  Specify the output vector type.
	(vect_pattern_recog_1): Adjust.
	* tree-vect-stmts.c (get_same_sized_vectype): New function.
	(vectorizable_call): Adjust.
	(vectorizable_conversion): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_type_demotion): Likewise.
	(vectorizable_type_promotion): Likewise.
	(vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
	the def.
	(vect_is_simple_use_1): New function.
	(supportable_widening_operation): Get both input and output
	vector types.
	(supportable_narrowing_operation): Likewise.
	* tree-vect-slp.c (vect_schedule_slp_instance): Adjust.

2010-04-09  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
	__thiscall and _thiscall as predefined macros.
	* config/i386/i386.c (ix86_handle_cconv_attribute): Add
	thiscall attribute handling.
	(ix86_comp_type_attributes): Likewise.
	(ix86_function_regparm): Likewise.
	(ix86_return_pops_args): Likewise.
	(init_cumulative_args): Likewise.
	(find_drap_reg): Likewise.
	(ix86_static_chain): Likewise.
	(x86_this_parameter): Likewise.
	(x86_output_mi_thunk): Likewise.
	(ix86_attribute_table): Add description for thiscall attribute.
	* config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
	* doc/extend.texi: Add documentation for thiscall.

2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/28584
	* c.opt (Wint-to-pointer-cast): Available in C++.
	* doc/invoke.texi (Wint-to-pointer-cast): Available in C++.

2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h (TREE_ADDRESSABLE): Document its effect for function types.
	* calls.c (expand_call): Pass the function type to aggregate_value_p.
	* function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
	the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
	function type instead.  Reorder and simplify checks.

	* gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.

2010-04-08  Jing Yu  <jingyu@google.com>
	    Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/42720
	* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
	loop unswitch conditions here from ...
	(tree_unswitch_single_loop): ... here.

2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c: Fix comments and simplify logic.

2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
	(tree_if_conversion): Same.  Update call to if_convertible_loop_p.
	(main_tree_if_conversion): Update call to tree_if_conversion.

2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 42485
	* doc/invoke.texi (-b,-V): Delete.
	* doc/tm.texi: Do not mention -b.
	* gcc.c (display_help): Delete -b and -V.
	(process_command): Delete -b and -V.
	* gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.

2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
	    Wolfgang Gellerich  <gellerich@de.ibm.com>

	Implement target hook for loop unrolling
	* target.h (loop_unroll_adjust): Add a new target hook function.
	* target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
	* doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
	* config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
	(s390_loop_unroll_adjust): Implement the new target hook for s390.
	* loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
	target hook.
	(decide_unroll_stupid): Likewise.

2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/43643
	* config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.

2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
	(Specific, *-*-solaris2*): Likewise.
	Don't prefer Sun as over GNU as.

2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* config/s390/s390.c (override_options): Adjust the z10 defaults
	for max-unroll-times, max-completely-peeled-insns
	and max-completely-peel-times.

2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_expand_movmem): Issue prefetch
	instructions for z10.
	(s390_expand_setmem): Likewise.
	(s390_expand_cmpmem): Likewise.

2010-04-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43679
	* tree-ssa-pre.c (eliminate): Only propagate copies.

2010-04-08  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/43681
	* expr.c (block_move_libcall_safe_for_call_parm): Avoid
	set but not used variable warning.

2010-04-08  Wei Guozhi  <carrot@google.com>

	PR target/41653
	* config/arm/arm.c (thumb1_size_rtx_costs): New function.
	(arm_size_rtx_costs): Call the new function when optimized for size.

2010-04-08  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43670
	* cfgexpand.c (expand_debug_expr): If for non-NULL offset
	op0 is not a MEM, just return NULL instead of assertion
	failure.
	(discover_nonconstant_array_refs): Don't walk debug stmts.

2010-04-08  Doug Kwan  <dougkwan@google.com>

	* configure.ac: Recognize gold and do not use its version number
	to test ld features.
	* configure: Regenerate.

2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR middle-end/40815
	* tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
	(negate_value): Move code to push elements to broken_up_substracts ...
	(eliminate_plus_minus_pair): ... here.  Push operands that have no
	negative pair to plus_negates.
	(repropagate_negates, init_reassoc, fini_reassoc): Update.

2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/install.texi (Configuration): Move description of
	--enable-lto, --with-libelf*, --enable-gold from Java section to
	general section.

	* doc/generic.texi (Working with declarations)
	(Function Properties, C and C++ Trees): Fix typos.
	* doc/sourcebuild.texi (Top Level): Likewise.

2010-04-07  Jakub Jelinek  <jakub@redhat.com>

	PR c/18624
	* tree.h (DECL_READ_P): Define.
	(struct tree_decl_common): Add decl_read_flag.
	* c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
	a set but not used warning.
	(merge_decls): Merge DECL_READ_P flag.
	(finish_decl, build_compound_literal): Set DECL_READ_P flag.
	(finish_function): Issue -Wunused-but-set-parameter diagnostics.
	* c-common.c (handle_used_attribute, handle_unused_attribute):
	Likewise.
	* c-tree.h (default_function_array_read_conversion, mark_exp_read):
	New prototypes.
	* c-typeck.c (default_function_array_read_conversion, mark_exp_read):
	New functions.
	(default_conversion, c_process_expr_stmt): Call mark_exp_read.
	* c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
	c_parser_binary_expression, c_parser_cast_expression,
	c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
	Call default_function_array_read_conversion instead of
	default_function_array_conversion where needed.
	(c_parser_unary_expression, c_parser_conditional_expression,
	c_parser_postfix_expression_after_primary, c_parser_initelt):
	Likewise.  Call mark_exp_read where needed.
	(c_parser_statement_after_labels, c_parser_asm_operands,
	c_parser_typeof_specifier, c_parser_sizeof_expression,
	c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
	where needed.
	* common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
	New.
	* toplev.c (warn_unused_but_set_variable): Default to warn_unused.
	(warn_unused_but_set_parameter): Default to warn_unused
	&& extra_warnings.
	* doc/invoke.texi: Document -Wunused-but-set-variable and
	-Wunused-but-set-parameter.

	* tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
	used count variable.
	* genemit.c (gen_expand, gen_split): Avoid set but not used warnings
	when operandN variables aren't used in the body of the expander
	or splitter.
	* tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
	FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
	* tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
	* tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
	FOR_EACH_IMM_USE_ON_STMT): Likewise.
	* tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
	* tree.c (PROCESS_ARG): Likewise.

2010-04-07  Simon Baldwin  <simonb@google.com>

	* diagnostic.h (diagnostic_override_option_index): New macro to
	set a diagnostic's option_index.
	* c-tree.h (c_cpp_error): Add warning reason argument.
	* opts.c (_warning_as_error_callback): New.
	(register_warning_as_error_callback): Store callback for
	warnings enabled via enable_warning_as_error.
	(enable_warning_as_error): Call callback, minor code tidy.
	* opts.h (register_warning_as_error_callback): Declare.
	* c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
	response to -Werror=.
	(c_common_init_options): Register warning_as_error_callback in opts.c.
	* common.opt: Add -Wno-cpp option.
	* c-common.c (struct reason_option_codes_t): Map cpp warning
	reason codes to gcc option indexes.
	* (c_option_controlling_cpp_error): New function, lookup the gcc
	option index for a cpp warning reason code.
	* (c_cpp_error): Add warning reason argument, call
	c_option_controlling_cpp_error for diagnostic_override_option_index.
	* doc/invoke.texi: Document -Wno-cpp.

2010-04-07  Richard Guenther  <rguenther@suse.de>

	* ipa-reference.c (mark_load): Use get_base_address.
	(mark_store): Likewise.

	* tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
	inserting GIMPLE_NOPs into the IL.
	* tree-ssa-structalias.c (get_constraint_for_component_ref):
	Explicitly strip handled components and indirect references.

	* fold-const.c (fold_unary_loc): Do not strip qualifiers when
	folding address expressions.
	* gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
	* tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
	operand_equal_p to compare decls.
	(ptr_deref_may_alias_decl_p): Likewise.
	* tree-ssa-operands.c (get_asm_expr_operands): Simplify
	* tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
	Handle reversed comparison ops.
	* tree-sra.c (asm_visit_addr): Use get_base_address.
	* ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
	* ipa-reference.c (mark_address): Use get_base_address.

2010-04-07  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (forward_propagate_addr_expr):
	Propagate constants everywhere.

2010-04-07  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43516
	* tree.c (MAX_INT_CACHED_PREC): Define.
	(nonstandard_integer_type_cache): New array.
	(build_nonstandard_integer_type): Cache results for precision
	<= MAX_INT_CACHED_PREC.

2010-04-07  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi (-fargument-alias, -fargument-noalias,
	-fargument-noalias-global, -fargument-noalias-anything): Remove.
	* common.opt: Likewise.
	* tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
	* alias.c (base_alias_check): Remove flag_argument_noalias handling.
	(nonoverlapping_memrefs_p): Likewise.
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
	* opts.c (common_handle_option): Handle OPT_fargument_alias,
	OPT_fargument_noalias, OPT_fargument_noalias_anything and
	OPT_fargument_noalias_global for backward compatibility.

2010-04-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43270
	* tree-vrp.c (check_array_ref): Fix flexible array member detection.
	* tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
	* tree-ssa-pre.c (phi_translate_1): Adjust.
	(fully_constant_expression): Split out vn_reference handling to ...
	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
	Fold reads from constant strings.
	(vn_reference_lookup): Handle fully constant references.
	(vn_reference_lookup_pieces): Likewise.
	* Makefile.in (expmed.o-warn): Add -Wno-error.

2010-04-07  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (find_param_candidates): Allow scalar va_list types.

2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>

	PR driver/41594
	* gcc.c: Add -static-libstdc++ to list of recognized options.

2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.

2010-04-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42617
	* expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
	bases build simple mem attributes to retain points-to information.

2010-04-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42617
	* alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
	preserve points-to related information.

2010-04-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42617
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
	discard plain indirect references.
	* fold-const.c (operand_equal_p): Guard against NULL_TREE type.
	* tree.c (tree_nop_conversion): Likewise.

2010-04-07  Dodji Seketeli  <dodji@redhat.com>

	PR debug/43628
	* dwarf2out.c (modified_type_die): Ignore artificial typedefs.

2010-04-06  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
	calling convention attributes on METHOD_TYPEs for w64 ABI, too.

2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c: Fix indentation and comments.

2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c: Sort static functions in topological order.

2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c: Fix indentation and comments.

2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43519
	* graphite-clast-to-gimple.c (max_signed_precision_type): Use
	lang_hooks.types.type_for_size instead of
	build_nonstandard_integer_type.
	When converting an unsigned type to signed, double its precision.
	(gcc_type_for_interval): Use lang_hooks.types.type_for_size.
	(gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
	(graphite_create_new_loop_guard): When ub + 1 wraps around,
	use lb <= ub.

2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43519
	* graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
	POINTER_PLUS_EXPR for pointer types.

2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43519
	* Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
	* graphite-clast-to-gimple.c: Include langhooks.h.
	(max_signed_precision_type): New.
	(max_precision_type): Takes two types as arguments.
	(precision_for_value): New.
	(precision_for_interval): New.
	(gcc_type_for_interval): New.
	(gcc_type_for_value): New.
	(gcc_type_for_clast_term): New.
	(gcc_type_for_clast_red): New.
	(gcc_type_for_clast_bin): New.
	(gcc_type_for_clast_expr): Split up into several functions.
	(gcc_type_for_clast_eq): Rewritten.
	(compute_bounds_for_level): New.
	(compute_type_for_level_1): New.
	(compute_type_for_level): New.
	(gcc_type_for_cloog_iv): Removed.
	(gcc_type_for_iv_of_clast_loop): Rewritten.
	(graphite_create_new_loop): Compute the lower and upper bound types
	with gcc_type_for_clast_expr.
	(graphite_create_new_loop_guard): Same.
	(find_cloog_iv_in_expr): Removed.
	(compute_cloog_iv_types_1): Removed.
	(compute_cloog_iv_types): Removed.
	(gloog): Do not call compute_cloog_iv_types.
	* graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
	GBB_CLOOG_IV_TYPES.
	(free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
	* sese.h (struct gimple_bb): Removed field cloog_iv_types.
	(GBB_CLOOG_IV_TYPES): Removed.

2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
	gimple_phi_num_args of the loop close SSA phi node is equal to 1.
	(detect_commutative_reduction): Same.

2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (graphite_verify): Remove redundant
	call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
	argument.
	* graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
	* graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
	(rewrite_commutative_reductions_out_of_ssa): Same.
	* passes.c (execute_function_todo): Call verify_ssa for every pass
	in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
	* tree-flow.h (verify_loop_closed_ssa): Update declaration.
	* tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
	with an extra argument.
	* tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
	verify_ssa only when the extra argument is true.
	(gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
	with an extra argument.
	(tree_transform_and_unroll_loop): Same.

2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>

	* passes.c (execute_function_todo): Call verify_loop_closed_ssa
	for all the passes of the LNO having LOOP_CLOSED_SSA.
	* tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
	* tree-loop-distribution.c (pass_loop_distribution): Same.
	* tree-pass.h (TODO_verify_loops): Removed.
	* tree-ssa-loop.c (pass_tree_loop_init): Same.
	(pass_lim): Same.
	(pass_tree_unswitch): Same.
	(pass_predcom): Same.
	(pass_vectorize): Same.
	(pass_linear_transform): Same.
	(pass_graphite_transforms): Same.
	(pass_iv_canon): Same.
	(pass_complete_unroll): Same.
	(pass_complete_unrolli): Same.
	(pass_parallelize_loops): Same.
	(pass_loop_prefetch): Same.
	(pass_iv_optimize): Same.

2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>

	PR middle-end/32824
	* passes.c (init_optimization_passes): Move pass_lim before
	pass_copy_prop and pass_dce_loop.

2010-04-06  Jakub Jelinek  <jakub@redhat.com>

	PR target/43667
	* config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
	instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
	(ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
	MULTI_* defines for 4 argument vpermil2p* builtins.

2010-04-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
	* config/i386/i386.c (x86_maybe_negate_const_int): New.
	(x86_output_mi_thunk): Use x86_maybe_negate_const_int.
	* config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
	*addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
	*addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
	*addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
	Use x86_maybe_negate_const_int to output insn mnemonic.
	(*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
	check from instruction predicate.  Update comments.
	* config/i386/sync.md (sync_add<mode>): Use
	x86_maybe_negate_const_int to output insn mnemonic.

2010-04-06  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/42906
	* tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
	IGNORE_SELF argument.  Set visited_control_parents for fully
	processed BBs.
	(find_obviously_necessary_stmts): Update call of
	mark_control_dependent_edges_necessary.
	(propagate_necessity): Likewise.  Handle PHI edges more curefully.

2010-04-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md: Remove comment about 'e' and 'E'
	operand modifier.

2010-04-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43627
	* tree-vrp.c (extract_range_from_unary_expr): Widenings
	of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
	not varying.

2010-04-06  Jakub Jelinek  <jakub@redhat.com>

	* BASE-VER: Change to 4.6.0.

	PR target/43638
	* config/i386/i386.c (print_operand): Remove 'e' and 'E' code
	handling.

2010-04-06  Richard Guenther  <rguenther@suse.de>

	PR middle-end/43661
	* fold-const.c (fold_comparison): Handle X * 0 CMP 0.

2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/invoke.texi (Optimize Options): Document that LTO
	won't remove object access purely due to incompatible
	declarations.

2010-04-04  Matthias Klose  <doko@ubuntu.com>

	* graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
	Initialize variable.

2010-04-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42509
	* alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
	require a non-NULL MEM_OFFSET.

2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>

	* ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
	basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
	collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
	config/alpha/predicates.md, config/arm/arm.md,
	config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
	config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
	config/darwin9.h, config/darwin.c, config/darwin.h,
	config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
	config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
	config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
	config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
	config/mips/mips.md, config/mn10300/mn10300.c,
	config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
	config/rs6000/aix.h, config/rs6000/dfp.md,
	config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
	config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
	config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
	config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
	config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
	config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
	c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
	diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
	doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
	doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
	fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
	gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
	graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
	graphite-dependences.c, graphite-poly.c, graphite-poly.h,
	graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
	graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
	intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
	ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
	ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
	loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
	objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
	opt-functions.awk, opth-gen.awk, params.def, passes.c,
	postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
	rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
	store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
	tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
	tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
	tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
	tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
	tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
	tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
	tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
	tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
	tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
	tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
	unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.

2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR other/43620
	* doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
	* aclocal.m4: Regenerate.

2010-04-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43629
	* tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
	if we have seen a constant value.

2010-04-02  Joseph Myers  <joseph@codesourcery.com>

	* read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.

2010-04-02  Richard Earnshaw  <rearnsha@arm.com>

	PR target/43469
	* arm.c (legitimize_tls_address): Adjust call to
	gen_tls_load_dot_plus_four.
	(arm_note_pic_base): New function.
	(arm_cannot_copy_insn_p): Use it.
	* thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
	constraint.

2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/43531

	Revert:
	2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in ($(out_object_file)): Depend on
	gt-$(basename $(notdir $(out_file))).h.

2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>

	* config.gcc (lm32-*-rtems*): Add t-lm32.

2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>

	* config.gcc: Add lm32-*-rtems*.
	* config/lm32/rtems.h: New file.

2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/42609
	* config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.

2010-04-01  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (output_compilation_unit_header): For
	-gdwarf-4 use version 4 instead of version 3.
	(output_line_info): For version 4 and above emit additional
	maximum ops per insn header field.
	(DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.

	* dwarf2out.c (is_c_family, is_java): Remove.
	(lower_bound_default): New function.
	(add_bound_info, gen_descr_array_type_die): Use it.

2010-04-01  Dodji Seketeli  <dodji@redhat.com>

	PR debug/43325
	* dwarf2out.c (gen_variable_die): Allow debug info for variable
	re-declaration when it happens in a function.

2010-04-01  Aldy Hernandez  <aldyh@redhat.com>

	* cgraph.c (cgraph_add_function_insertion_hook): Update comment.
	(cgraph_remove_function_insertion_hook): Same.
	(cgraph_call_function_insertion_hooks): Same.

2010-04-01  Richard Guenther  <rguenther@suse.de>

	PR middle-end/43614
	* tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
	and TREE_THIS_VOLATILE.
	(copy_ref_info): Likewise.
	* tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
	* tree.c (build6_stat): Ignore side-effects of all but arg5
	for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
	TARGET_MEM_REF.

2010-04-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43607
	* ipa-type-escape.c (check_call): Do not access non-existing
	arguments.

2010-04-01  Richard Guenther  <rguenther@suse.de>

	PR middle-end/43602
	Revert
	2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
		    Jack Howarth  <howarth@bromo.med.uc.edu>

	* tree-profile.c (tree_init_ic_make_global_vars): Make static
	variables TLS.

2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/install.texi (Prerequisites): Document libelf usability on
	IRIX 5/6 and Solaris 2.
	(Specific, i?86-*-solaris2.10): No 64-bit default configuration.
	Update GNU as, GNU ld requirements.
	(Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
	Document Sun Studio compiler download.
	Update and simplify as, ld recommendations.
	(Specific, *-*-solaris2.7): Note obsoletion, removal.

2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
	with_tune_32 to pentium4.

2010-04-01  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.

2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
	obsoletion, removal.
	Update IDO URL.
	Document GNU as requirement.
	Update configure requirements.
	(Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
	Recomment IRIX 6.5.18+.
	Document IDF/IDL requirement.
	Document GNU as requirement.
	Document GNU ld bootstrap failure.
	Remove freeware.sgi.com reference.

2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
	UNIX V4.0, V5.0 obsoletion, removal.
	Remove --with-gc=simple reference.
	Update VM requirements during bootstrap.
	Remove -oldas bootstrap description.
	Update binutils reference.
	Remove comparison failure note.

2010-03-31  Richard Guenther  <rguenther@suse.de>
	    Zdenek Dvorak  <ook@ucw.cz>
	    Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43464
	* tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
	with multiple arguments.
	(execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.

2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (print_pddr): Call print_pdr with an
	extra argument.
	* graphite-poly.c (debug_pdr): Add an extra argument for the
	verbosity level.
	(print_pdr): Same.
	(print_pbb_domain): Same.
	(print_pbb): Same.
	(print_scop_context): Same.
	(print_scop): Same.
	(print_cloog): Same.
	(debug_pbb_domain): Same.
	(debug_pbb): Same.
	(print_pdrs): Same.
	(debug_pdrs): Same.
	(debug_scop_context): Same.
	(debug_scop): Same.
	(debug_cloog): Same.
	(print_scop_params): Same.
	(debug_scop_params): Same.
	(print_iteration_domain): Same.
	(print_iteration_domains): Same.
	(debug_iteration_domain): Same.
	(debug_iteration_domains): Same.
	(print_scattering_function): Same.
	(print_scattering_functions): Same.
	(debug_scattering_function): Same.
	(debug_scattering_functions): Same.
	* graphite-poly.h (debug_pdr): Update declaration.
	(print_pdr): Same.
	(print_pbb_domain): Same.
	(print_pbb): Same.
	(print_scop_context): Same.
	(print_scop): Same.
	(print_cloog): Same.
	(debug_pbb_domain): Same.
	(debug_pbb): Same.
	(print_pdrs): Same.
	(debug_pdrs): Same.
	(debug_scop_context): Same.
	(debug_scop): Same.
	(debug_cloog): Same.
	(print_scop_params): Same.
	(debug_scop_params): Same.
	(print_iteration_domain): Same.
	(print_iteration_domains): Same.
	(debug_iteration_domain): Same.
	(debug_iteration_domains): Same.
	(print_scattering_function): Same.
	(print_scattering_functions): Same.
	(debug_scattering_function): Same.
	(debug_scattering_functions): Same.

2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_scattering_function_1): New.
	(print_scattering_function): Call it.
	(print_scop_params): Remove spaces at the end of lines.
	(print_cloog): New.
	(debug_cloog): New.
	* graphite-poly.h (print_cloog): Declared.
	(debug_cloog): Declared.

2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
	in loop->header.
	* tree-flow.h (canonicalize_loop_ivs): Updated declaration.
	* tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
	* tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
	to switch between adding the IV bump in loop->latch or in loop->header.

2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_scattering_function): Pretty print following
	the scoplib format.
	(print_pdr): Same.
	(print_pbb_domain): Same.
	(dump_gbb_cases): Same.
	(dump_gbb_conditions): Same.
	(print_pdrs): Same.
	(print_pbb): Same.
	(print_scop_params): Same.
	(print_scop_context): Same.
	(print_scop): Same.
	(print_pbb_body): New.
	(lst_indent_to): New.
	(print_lst): Start new lines with a #.
	* graphite-poly.h (pbb_bb): New.
	(pbb_index): Use pbb_bb.
	* graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
	disjuncts.
	* tree-data-ref.c (dump_data_reference): Start new lines with a #.

2010-03-31  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (size_of_die): For -gdwarf-4 use
	uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
	and 0 instead of 1 for dw_val_class_flag.
	(value_format): For -gdwarf-4 use DW_FORM_sec_offset for
	dw_val_class_range_list, dw_val_class_loc_list,
	dw_val_class_lineptr and dw_val_class_macptr, use
	DW_FORM_flag_present for dw_val_class_flag and
	DW_FORM_exprloc for dw_val_class_loc.
	(output_die): For -gdwarf-4 print dw_val_class_loc
	size as uleb128 instead of 1 or 2 bytes and don't print
	anything for dw_val_class_flag.

	* var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
	instead of cselib_lookup following by tweaking locs->setting_insn.

	PR bootstrap/43596
	* cselib.c (cselib_process_insn): Clear cselib_current_insn
	even before returning from label, setjmp call or volatile asm
	handling.

2010-03-31  Richard Guenther  <rguenther@suse.de>

	PR middle-end/43600
	* cgraphunit.c (cgraph_output_in_order): Do not allocate
	temporary data on stack.

2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
	(PUSHSECTION_ASM_OP): Remove.
	(POPSECTION_ASM_OP): Remove.
	(PUSHSECTION_FORMAT): Remove.
	* config/sol2.h (PUSHSECTION_FORMAT): Define.
	* config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
	* config/sol2.c (solaris_output_init_fini): Use it.

2010-03-31  Jie Zhang  <jie@codesourcery.com>

	PR 43574
	* opt-functions.awk (var_type_struct): Use signed char type
	for simple variables.

2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sol2.c: Include output.h.
	(solaris_assemble_visibility): New function.
	* config/t-sol2 (sol2.o): Add output.h dependency.
	* config/sol2-protos.h (solaris_assemble_visibility): Declare.
	* config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
	Redefine.

2010-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR target/43580
	* config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
	V2SImode or XFmode on PRE_DEC.

	PR debug/43557
	* cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
	BLKmode.

2010-03-31  Jie Zhang  <jie@codesourcery.com>

	PR 43562
	* reload.h (caller_save_initialized_p): Declare.
	* toplev.c (backend_init_target): Don't call
	init_caller_save but set caller_save_initialized_p to false.
	* caller-save.c (caller_save_initialized_p): Define.
	(init_caller_save): Check caller_save_initialized_p.
	* ira.c (ira): Call init_caller_save if flag_caller_saves.

2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/39048
	* config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
	and soft-fp/t-softfp to tmake_file.
	* config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
	(LIBGCC2_TF_CEXT): Define.
	(TF_SIZE): Define.

2010-03-30  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/42977
	* cselib.c (n_useless_values): Document handling of debug locs.
	(n_useless_debug_values, n_debug_values): New variables.
	(new_elt_loc_list): Don't add to debug values, keep count.
	(promote_debug_loc): New.
	(cselib_reset_table): Zero new variables.
	(entry_and_rtx_equal_p): Promote debug locs.
	(discard_useless_locs): Increment n_useless_debug_values for
	debug values.
	(remove_useless_values): Adjust n_useless_values and n_debug_values
	with n_useless_debug_values.
	(add_mem_for_addr): Promote debug locs.
	(cselib_lookup_mem): Likewise.
	(cselib_lookup_addr): Renamed to...
	(cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
	(cselib_log_lookup): ... this.  Turn into...
	(cselib_lookup_addr): ... new wrapper.
	(cselib_lookup_from_insn): New.
	(cselib_invalidate_regno): Increment n_useless_debug_values for
	debug values.
	(cselib_invalidate_mem): Likewise.
	(cselib_process_insn): Take n_deleted and n_debug_values into
	account to guard remove_useless_value call.
	(cselib_finish): Zero n_useless_debug_values.
	* cselib.h (cselib_lookup_from_insn): Declare.
	* sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
	(sched_analyze_2): Likewise.

2010-03-30  Jakub Jelinek  <jakub@redhat.com>

	* var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
	functions.
	(adjust_mems): Replace narrowing SUBREG of expression containing
	just PLUS, MINUS, MULT and ASHIFT of registers and constants
	with operations in the narrower mode.

	PR debug/43593
	* var-tracking.c (dataflow_set_clear_at_call): Invalidate just
	regs_invalidated_by_call instead all call_used_reg_set registers.

2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43430
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
	pointer comparisons with types_compatible_p.
	* tree-vect-stmts.c (vectorizable_call): Same.
	(vectorizable_condition): Same.

2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
	stack check if the mask would be zero.

2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
	    Jack Howarth  <howarth@bromo.med.uc.edu>

	* tree-profile.c (tree_init_ic_make_global_vars): Make static
	variables TLS.

2010-03-30  Joseph Myers  <joseph@codesourcery.com>

	PR other/25232
	* libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
	and __unordtf2.
	* config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
	Include ___unordxf2 and ___unordtf2.
	* config/i386/libgcc-glibc.ver: Do not define inheritance from
	GCC_4.4.0 here.

2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>

	* config/lm32/t-lm32: New file.
	* config.gcc: Use the above file when targetting lm32.

2010-03-28  Duncan Sands  <baldrick@free.fr>

	* Makefile.in (PLUGIN_HEADERS): Add except.h.

2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43431
	* tree-vect-loop.c (vect_estimate_min_profitable_iters):
	Improve vectorization cost model diagnostic.

2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43436
	* tree-vect-data-refs.c (vect_analyze_data_refs): When
	compute_data_dependences_for_loop returns false, early exit
	and output an extra diagnostic for the failed data reference
	analysis.

2010-03-29  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43560
	* tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
	(can_sm_ref_p): Treat stores to readonly locations as trapping.

2010-03-29  Jie Zhang  <jie@codesourcery.com>

	PR 43564
	* toplev.c (process_options): Set optimization_default_node
	and optimization_current_node.
	* opts.c (decode_options): Don't set optimization_default_node
	and optimization_current_node.

2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>

	* config/rtems.h: Abandon -qrtems_debug.

2010-03-28  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/43505
	* cgraph.c (cgraph_clone_node): When clonning a clone, replacement
	map should not be copied.

2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/41674
	* cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
	cdtors, set DECL_PRESERVE_P.
	* ipa.c (cgraph_externally_visible_p): Return true if declaration
	should be preseved.

2010-03-27  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/43528
	* stor-layout.c (place_field): Check that constant fits into
	unsigned HWI when skipping calculation of MS bitfield layout.

2010-03-27  Jan Hubicka  <jh@suse.cz>

	PR middle-end/43391
	* varasm.c (make_decl_rtl): Deal with COMMON flag to make
	notice_global_symbol work.

2010-03-27  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
	instead of dwarf2out_decl.
	(struct var_loc_node): Remove section_label field.
	(dwarf2out_function_decl): New function.
	(dwarf2out_var_location): Don't set section_label field.
	(dwarf2out_begin_function): Don't empty decl_loc_table here.

2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR tree-optimization/43544
	* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
	First argument for builtin vectorized function hook is now a
	tree to be able to distinguish between machine specific and
	standard builtins.
	* targhooks.c (default_builtin_vectorized_function): Ditto.
	* targhooks.h (default_builtin_vectorized_function): Ditto.
	* target.h (struct gcc_target): Ditto.
	* tree-vect-stmts.c (vectorizable_function): Ditto.
	* config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
	* config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
	Ditto.

2010-03-26  Joseph Myers  <joseph@codesourcery.com>

	PR c/43381
	* c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
	nested binding iff it is a FUNCTION_DECL.
	(store_parm_decls_newstyle): Pass nested=true to bind for
	FUNCTION_DECLs amongst parameters.

2010-03-26  Jakub Jelinek  <jakub@redhat.com>

	* var-tracking.c (vt_expand_loc_callback): Don't run
	cselib_expand_value_rtx_cb in dummy mode if
	cselib_dummy_expand_value_rtx_cb returned false.

	* var-tracking.c (emit_note_insn_var_location): For one part
	notes with offset 0, don't add EXPR_LIST around the location.
	* dwarf2out.c (loc_descriptor, dw_loc_list_1,
	add_location_or_const_value_attribute): Adjust for that change.

	PR debug/43540
	* dwarf2out.c (reg_save): For DW_CFA_expression put regnum
	into first operand and location into second.
	(dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
	dw_cfi_oprnd_loc for DW_CFA_expression.
	(dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
	(output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
	assume first argument is regnum and second argument is location.

2010-03-26  Uros Bizjak  <ubizjak@gmail.com>

	PR target/42113
	* config/alpha/alpha.md (*cmp_sadd_si): Change mode
	of scratch register to DImode.  Split to DImode comparison operator.
	Use SImode subreg of scratch register in the multiplication.
	(*cmp_sadd_sidi): Ditto.
	(*cmp_ssub_si): Ditto.
	(*cmp_ssub_sidi): Ditto.

2010-03-26  Uros Bizjak  <ubizjak@gmail.com>

	PR target/43524
	* config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
	Remove invalid assert and wrong comment.

2010-03-26  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43516
	* flags.h (final_insns_dump_p): New extern.
	* final.c (final_insns_dump_p): New variable.
	(rest_of_clean_state): Set it before -fdump-final-insns=
	dumping, clear afterwards.
	* print-rtl.c (print_rtx): If final_insns_dump_p don't dump
	MEM_ALIAS_SET on MEMs.

2010-03-26  David S. Miller  <davem@davemloft.net>

	* configure.ac: Fix sparc GOTDATA_OP bug check.
	* configure: Rebuild.

2010-03-26  Alan Modra  <amodra@gmail.com>

	* config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.

2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
	TLS_SECTION_ASM_FLAG.

2010-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/43511
	* config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
	Clear first_function_block_is_cold.

	PR c/43385
	* gimplify.c (gimple_boolify): Only recurse on __builtin_expect
	argument if the argument is truth_value_p.

2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/constraints.md: Update copyright year for my changes.

	PR target/43484
	* config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
	used in reg+reg addressing, swap registers.

2010-03-24  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43293
	* target.h (struct gcc_target): Add code_end hook.
	* target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
	if not yet defined.
	(TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
	* toplev.c (compile_file): Call targetm.asm_out.code_end
	hook before unwind info/debug info output.
	* config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
	* config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
	(TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
	* config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
	(TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
	* config/i386/i386.c (ix86_file_end): Renamed to...
	(ix86_code_end): ... this.  Make static.  Don't call
	file_end_indicate_exec_stack.  Emit unwind info using
	final_start_function/final_end_function.
	(darwin_x86_file_end): Remove.
	(TARGET_ASM_CODE_END): Define.
	* config/i386/i386.h (TARGET_ASM_FILE_END,
	NEED_INDICATE_EXEC_STACK): Don't define.
	* config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
	(TARGET_ASM_FILE_END): Define to darwin_file_end.
	* config/i386/i386-protos.h (ix86_file_end): Remove prototype.
	* doc/tm.texi (TARGET_ASM_CODE_END): Document.

	PR target/43498
	* config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
	at the beginning and final_end_function at the end.
	* config/s390/s390.c (s390_output_mi_thunk): Likewise.

2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
	and Sun as TLS syntax.
	(TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
	* configure: Regenerate.
	* config.in: Regenerate.
	* varasm.c (TLS_SECTION_ASM_FLAG): Define default.
	(default_elf_asm_named_section): Use it.
	* config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
	(i386_output_dwarf_dtprel): Likewise.
	(output_addr_const_extra): Likewise.
	(output_pic_addr_const): Lowercase @GOTTPOFF.
	(output_addr_const_extra): Likewise.
	(output_pic_addr_const): Lowercase @GOTNTPOFF.
	(output_addr_const_extra): Likewise.
	(output_pic_addr_const): Lowercase @INDNTPOFF.
	(output_addr_const_extra): Likewise.
	(output_pic_addr_const): Lowercase @NTPOFF.
	(output_addr_const_extra): Likewise.
	(output_pic_addr_const): Lowercase @TPOFF.
	(output_addr_const_extra): Likewise.
	* config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
	(*tls_global_dynamic_64): Likewise.
	(*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
	(*tls_local_dynamic_base_64): Lowercase	@TLSLD.

	* defaults.h (TLS_COMMON_ASM_OP): Provide default.
	(ASM_OUTPUT_TLS_COMMON): Use it.
	* config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.

	PR target/38118
	* config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
	* config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
	* config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
	* config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
	* config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
	(ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.

2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/i386.c (override_options): Don't accept
	-mtls-dialect=sun any longer.
	* config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
	* config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
	(*tls_local_dynamic_base_32_sun): Likewise.
	* config/i386/sol2.h (TARGET_SUN_TLS): Redefine.

2010-03-24  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43508
	* dwarf2out.c (mem_loc_descriptor): Don't ICE on
	VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.

	PR debug/43479
	* ira.c (adjust_cleared_regs): New function.
	(update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.

	PR debug/19192
	PR debug/43479
	* cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
	from gimple_block.
	* expr.c (expand_expr_real): Restore previous
	curr_insn_source_location and curr_insn_block after
	expand_expr_real_1 call.
	(expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
	instead of expand_expr_real_1.

2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/43413
	* ira-color.c (setup_allocno_available_regs_num): Count prohibited
	hard regs too.

2010-03-22  James E. Wilson  <wilson@codesourcery.com>

	PR target/43348
	* ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
	call_value_gp, sibcall_gp): Use 's' constraint not 'i'.

2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_target_string): Add -mfma.
	Fix a typo in comment.

2010-03-22  Mike Stump  <mikestump@comcast.net>

	PR target/23071
	* config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
	Don't overly align based upon packed packed fields.

2010-03-22  Jason Merrill  <jason@redhat.com>

	* c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
	Use () rather than [], and move before the element type.

2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/configfiles.texi (Configuration Files): Removed
	fixinc/Makefile*, intl/Makefile.*.
	* doc/makefile.texi: Fixed markup. Abstract from version
	control system used.
	(Makefile): Removed obsolete java/parse.y example.
	* doc/sourcebuild.texi: Likewise.
	(Top Level): Added config, gnattools, libdecnumber, libgcc,
	libgomp, libssp.  Removed fastjar.
	(Miscellaneous Docs): Clarify location.
	Added COPYING3, COPYING3.LIB.
	(Front End Directory): Moved Make-lang.in entry to new subsubsection.

2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/38085
	* config/i386/i386.c (x86_function_profiler)
	[!NO_PROFILE_COUNTERS]: Fix typo.
	* config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
	instead of callq.

2010-03-22  Janis Johnson  <janis187@us.ibm.com>
	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/sourcebuild.texi (Test Directives): Split into six
	subsections, with most of the current text in new subsections
	Directives, Selectors, and Final Actions.
	(Directives): Split list of test directives into multiple
	subsubsections.
	(Selectors): Describe use and syntax of selectors.
	(Effective-Target Keywords): Describe all existing keywords.
	(Add Options): Describe features for dg-add-options.
	(Require Support): Describe variants of dg-require-support.
	(Final Actions): Describe commands to use in dg-final.

2010-03-22  Michael Matz  <matz@suse.de>

	PR middle-end/43475
	* recog.c (validate_replace_rtx_group): Replace also in
	REG_EQUAL and REG_EQUIV notes.

2010-03-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43390
	* tree-vect-stmts.c (get_vectype_for_scalar_type): Make
	sure vector extracts are type correct.

2010-03-22  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40106
	* builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
	x * sqrt (x) even when optimizing for size if the target
	has native support for sqrt.

2010-03-22  Jakub Jelinek  <jakub@redhat.com>

	* varasm.c (make_decl_rtl_for_debug): Also clear
	flag_mudflap for the duration of make_decl_rtl call.

	PR debug/43443
	* var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
	locs from preserved VALUEs.

2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/42718
	* pa.md (movmemsi): Set align to one if zero.
	(movmemdi): Likewise.

2010-03-21  Richard Earnshaw  <rearnsha@arm.com>

	PR target/42321
	* arm.c (arm_output_epilogue): Correctly match VFP pop instructions
	with their corresponding prologue pushes.

2010-03-20  Andrew Pinski  <pinskia@gmail.com>

	PR target/43156
	* config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
	at the begining or end.
	(spu_expand_epilogue): Likewise.

2010-03-20  Richard Guenther  <rguenther@suse.de>

	PR rtl-optimization/43438
	* combine.c (make_extraction): Properly zero-/sign-extend an
	extraction of the low part of a CONST_INT.  Also handle
	CONST_DOUBLE.

2010-03-19  Mike Stump  <mikestump@comcast.net>

	* config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
	* config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
	(override_options): Use SUBTARGET32_DEFAULT_CPU.

2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>

	PR c/43211
	* c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
	an error.

2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>

	PR rtl-optimization/42258
	* ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
	use that may match DEF.

	PR target/40697
	* optabs.c (avoid_expensive_constant): Use rtx_cost to find out
	the cost of loading the constant rather than assuming
	COSTS_N_INSNS (1).
	* config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
	outer code is AND, do the same tests as the andsi3 expander and
	return COSTS_N_INSNS (1) if and is cheap.

	* optabs.c (avoid_expensive_constant): Fix formatting.

2010-03-19  Michael Matz  <matz@suse.de>

	PR c++/43116
	* attribs.c (decl_attributes): When rebuilding a function pointer
	type use the same qualifiers as the original pointer type.

2010-03-19  Martin Jambor  <mjambor@suse.cz>

	* doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
	and is_gimple_ip_invariant_address.

2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	Revert
	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.

2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/43399
	* config/arm/arm.c (emit_multi_reg_push): Update comments.
	Use PRE_MODIFY instead of PRE_DEC.
	(emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
	(vfp_emit_fstmd): Likewise.

2010-03-19  Michael Matz  <matz@suse.de>

	PR target/43305
	* builtins.c (expand_builtin_interclass_mathfn,
	expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
	if that fails.

2010-03-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43415
	* tree-ssa-pre.c (phi_translate): Split out worker to ...
	(phi_translate_1): ... this.
	(phi_translate): Move all caching here.  Cache all NARY
	and REFERENCE translations.

2010-03-19  David S. Miller  <davem@davemloft.net>

	With help from Eric Botcazou.
	* config/sparc/sparc.c: Include dwarf2out.h.
	(emit_pic_helper): Delete.
	(pic_helper_symbol_name): Delete.
	(pic_helper_emitted_p): Delete.
	(pic_helper_needed): New.
	(USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
	(get_pc_thunk_name): New.
	(load_pic_register): Remove 'delay_pic_helper' arg.  Use
	get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
	Set pic_helper_needed to true.  Don't call emit_pic_helper.
	(sparc_expand_prologue): Update load_pic_register call.
	(sparc_output_mi_thunk): Likewise.
	(sparc_file_end): Emit a hidden comdat symbol for the PIC
	thunk if possible.  Output CFI information as needed.

2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
	    Jack Howarth  <howarth@bromo.med.uc.edu>

	PR target/36399
	* config/i386/i386.h: Fix ABI on darwin x86-32.

2010-03-18  Aldy Hernandez  <aldyh@redhat.com>

	* tree.h: Declare make_decl_rtl_for_debug.
	* varasm.c (make_decl_rtl_for_debug): New.
	* dwarf2out.c (rtl_for_decl_location): Call it.
	* cfgexpand.c (expand_debug_expr): Call it.

2010-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/43399
	* var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
	mem_mode.

	PR bootstrap/43403
	* var-tracking.c (vt_init_cfa_base): Do nothing if
	cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.

2010-03-18  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/42873
	* var-tracking.c (canonicalize_vars_star): New.
	(dataflow_post_merge_adjust): Use it.

2010-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43058
	* var-tracking.c (non_suitable_const): New function.
	(add_uses): For DEBUG_INSNs with constants, don't record any
	value, instead just the constant value itself.
	(compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
	is not VAR_LOC_UNKNOWN_P, set var to the constant.
	(emit_notes_in_bb): Likewise.
	(emit_note_insn_var_location): For onepart variables if
	cur_loc is a VOIDmode constant, use DECL_MODE.

2010-03-18  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/42450
	* cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
	* cgraphunit.c (cgraph_materialize_all_clones): Update calls in
	all non-clones.  Moved call redirection...
	(cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
	(cgraph_materialize_all_clones): Dispose of all
	combined_args_to_skip bitmaps.
	(verify_cgraph_node): Do not check for edges pointing to wrong
	nodes in inline clones.
	* tree-inline.c (copy_bb): Call
	cgraph_redirect_edge_call_stmt_to_callee.
	* ipa.c (cgraph_remove_unreachable_nodes): Call
	cgraph_node_remove_callees even when there are used clones.

2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.

2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/43383
	* config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
	for 32bit.

2010-03-18  Michael Matz  <matz@suse.de>

	PR middle-end/43419
	* builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
	into sqrt(x) if we need to preserve signed zeros.

2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
	    Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/43360
	* loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
	note if we don't know its invariant status.

2010-03-18  Michael Matz  <matz@suse.de>

	PR tree-optimization/43402
	* tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
	PHI chains of ssa names registered for update.

2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>

	PR target/42427
	* config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
	non-offsettable and pre_modify update addressing.
	* config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
	and "2" alternatives "#".
	(*movdd_softfloat32): Make all alternatives "#";
	* config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
	(*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
	(*movdf_softfloat32): Make all alternatives "#";
	(movdi): Use the new DIFD mode iterator to create a common splitter
	for movdi, movdf and movdd patterns.

2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>

	* common.opt (dumpdir): Remove redundant tab.

2010-03-17  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/43347
	* tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
	original base is DECL_ARTIFICIAL or DECL_IGNORED_P.

2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>

	PR rtl-optimization/42216
	* regrename.c (create_new_chain): New function, broken out from...
	(scan_rtx_reg): ... here.  Call it.  Handle the case where we are
	appending a use to an empty chain.
	(build_def_use): Remove previous changes that convert OP_INOUT to
	OP_OUT operands; instead detect the case where an OP_INOUT operand
	uses a previously untracked register and create an empty chain for it.

2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/extend.texi (Function Attributes): Rewrite unfinished
	sentence in ms_abi documentation.

2010-03-17  Alan Modra  <amodra@gmail.com>

	* config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
	* config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
	* config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.

2010-03-16  Richard Henderson  <rth@redhat.com>

	PR middle-end/43365
	* tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
	(lower_try_finally): Save and restore eh_seq around the expansion
	of the try-finally.

2010-03-16  Aldy Hernandez  <aldyh@redhat.com>

	* graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
	statements before splitting block.

2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/sourcebuild.texi (Testsuites): Fix markup.
	Use pathnames relative to gcc/testsuite.
	(Test Directives): Move description of how timeout is determined.
	(Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
	(C Tests): Correct gcc.misc-tests directory.
	Framework tests now live in gcc.test-framework.

2010-03-16  Richard Guenther  <rguenther@suse.de>

	PR middle-end/43379
	* tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
	operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.

2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
	    Alexandre Oliva  <aoliva@redhat.com>

	PR tree-optimization/42917
	* lambda-code.c (remove_iv): Skip debug statements.
	(lambda_loopnest_to_gcc_loopnest): Likewise.
	(not_interesting_stmt): Debug statements are not interesting.

2010-03-16  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43051
	PR debug/43092
	* cselib.c (cselib_preserve_constants,
	cfa_base_preserved_val): New static variables.
	(preserve_only_constants): New function.
	(cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
	clear its REG_VALUES.  If cselib_preserve_constants, don't
	empty the whole hash table, but preserve there VALUEs with constants,
	cfa_base_preserved_val and cfa_base_preserved_val plus constant.
	(cselib_preserve_cfa_base_value): New function.
	(cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
	(cselib_init): Change argument to int bitfield.  Set
	cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
	is in it.
	(cselib_finish): Clear cselib_preserve_constants and
	cfa_base_preserved_val.
	* cselib.h (enum cselib_record_what): New enum.
	(cselib_init): Change argument to int.
	(cselib_preserve_cfa_base_value): New prototype.
	* postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
	* dse.c (dse_step1): Likewise.
	* cfgcleanup.c (thread_jump): Likewise.
	* sched-deps.c (sched_analyze): Likewise.
	* gcse.c (local_cprop_pass): Likewise.
	* simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
	If FN is non-NULL, call the callback always and whenever it returns
	non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
	* rtl.h (simplify_replace_fn_rtx): Add argument to callback.
	* combine.c (propagate_for_debug_subst): Add old_rtx argument,
	compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
	* Makefile.in (var-tracking.o): Depend on $(RECOG_H).
	* var-tracking.c: Include recog.h.
	(bb_stack_adjust_offset): Remove.
	(vt_stack_adjustments): Don't call it, instead just gather the
	adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
	(adjust_stack_reference): Remove.
	(compute_cfa_pointer): New function.
	(hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
	(struct adjust_mem_data): New type.
	(adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
	functions.
	(get_address_mode): New function.
	(replace_expr_with_values): Use it.
	(use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
	Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
	(adjust_sets): Remove.
	(add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
	Use get_address_mode.
	(get_adjusted_src): Remove.
	(add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
	MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
	(add_with_sets): Don't call adjust_sets.
	(fp_setter, vt_init_cfa_base): New functions.
	(vt_initialize): Change return type to bool.  Move most of pool etc.
	initialization to the beginning of the function from end.  Pass
	CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
	If !frame_pointer_needed, call vt_stack_adjustment before mos
	vector is filled, call vt_init_cfa_base if argp/framep has been
	eliminated to sp.  If frame_pointer_needed and argp/framep has
	been eliminated to hard frame pointer, set
	hard_frame_pointer_adjustment and call vt_init_cfa_base after
	encountering fp setter in the prologue.  For MO_ADJUST, call
	log_op_type before pusing the op into mos vector, not afterwards.
	Call adjust_insn before cselib_process_insn/add_with_sets,
	call cancel_changes (0) afterwards.
	(variable_tracking_main_1): Adjust for vt_initialize calling
	vt_stack_adjustments and returning whether it succeeded or not.

2010-03-15  Aldy Hernandez  <aldyh@redhat.com>

	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
	debug statements.

2010-03-15  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
	has been set.
	(based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
	drap_reg has not been set.

2010-03-15  Michael Matz  <matz@suse.de>

	PR middle-end/43300
	* tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
	use it to expand block copies.
	(insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
	insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
	(insert_value_copy_on_edge): Use store_expr for BLKmode values.

2010-03-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43367
	* tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
	elimination check.

2010-03-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43317
	* ipa-struct-reorg.c (create_new_general_access): Update stmt.

2010-03-15  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/43141
	* tree-sra.c (create_abstract_origin): New function.
	(modify_function): Call create_abstract_origin.

2010-03-15  Chris Demetriou  <cgd@google.com>

	* Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
	wasn't copied.

2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43354
	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
	call insert_out_of_ssa_copy for default definitions.

2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (my_long_long): Defined.
	(gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
	* graphite-sese-to-poly.c (my_long_long): Defined.
	(scop_ivs_can_be_represented): Use it.

2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
	graphite-max-bbs-per-function, and loop-block-tile-size.
	* params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
	with "maximum".
	(PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.

2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
	forward declaration.
	* graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
	(add_upper_bounds_from_estimated_nit): New.
	(build_loop_iteration_domains): Use it.

2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.

2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43306
	* tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
	should be an INTEGER_CST.  Also handle CASE_CONVERT.

2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_initialize): To bound the number of bbs per
	function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
	* params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
	* doc/invoke.texi: Document it.

2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
	* graphite-sese-to-poly.h (build_poly_scop): Same.

2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_poly_scop): Limit scops following
	the number of parameters in the scop.  Use as an upper bound
	PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
	* params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
	* doc/invoke.texi: Document it.

2010-03-13  Jerry Quinn  <jlquinn@optonline.net>

	* Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
	* doc/c-tree.texi: Remove.
	* doc/generic.texi: Merge c-tree.texi here.
	* doc/gccint.texi (Trees): Remove menu entry.
	(c-tree.texi): Remove @include.
	* doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
	* doc/languages.texi (Reading RTL): Ditto.

2010-03-12  Steve Ellcey  <sje@cup.hp.com>

	PR target/42869
	* config/ia64/sync.md (sync_compare_and_swap): Move memory fence.

2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR middle-end/42431
	* config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
	code added to work around reload clobbering CONST insns.

2010-03-12  Jakub Jelinek  <jakub@redhat.com>

	* cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
	(cselib_preserve_definitely, cselib_clear_preserve): Remove.
	(cselib_preserve_only_values): Remove retain argument, don't
	traverse hash table with cselib_{preserve_definitely,clear_preserve}.
	* cselib.h (cselib_preserve_only_values): Remove retain argument.
	* var-tracking.c (micro_operation): Move insn field before union.
	Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
	(struct variable_tracking_info_def): Remove n_mos field, change
	mos into a vector of micro_operations.
	(count_uses, count_uses_1, count_stores, count_with_sets): Remove.
	(bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
	compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
	changing into a vector.
	(add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
	come before all other uops generated by add_stores.
	(vt_add_function_parameters): Adjust for cselib_preserve_only_values
	argument removal.
	(vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
	a vector.  Run just one pass over the bbs instead of separate counting
	and computation phase.
	(vt_finalize): Free VTI (bb)->mos vector instead of array.

	PR debug/43329
	* tree-inline.c (remap_decls): Put old_var rather than origin_var
	into *nonlocalized_list vector.
	* dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
	even if origin is non-NULL.
	(gen_variable_die): Likewise.
	(process_scope_var): Don't change origin.
	(gen_decl_die): Likewise.
	* tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
	before adding new edges instead of after it, fix moving over
	debug stmts.

2010-03-11  David S. Miller  <davem@davemloft.net>

	* configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
	of four.
	* configure: Rebuild.

2010-03-11  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/43257
	* tree.c (assign_assembler_name_if_neeeded): New function.
	(free_lang_data_in_cgraph): Assembler name assignment moved to the
	above new function.
	* tree.h (assign_assembler_name_if_neeeded): Declare.
	* cgraphunit.c (cgraph_analyze_function): Create an assembler name for
	the function if needed.

2010-03-11  Chris Demetriou  <cgd@google.com>

	* Makefile.in (stmp-int-hdrs): Make include/unwind.h,
	include/stdint-gcc.h, and include/stdint.h world-readable.

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

	PR tree-optimization/43255
	* tree-vrp.c (process_assert_insertions_for): Do not insert
	asserts for trivial conditions.

2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR tree-optimization/43280
	* tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
	generation.  Move calculation of size out of the if branch.
	(find_bswap): Modify compare number generation.

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

	PR lto/43200
	* lto-streamer-in.c (maybe_fixup_decls): Simplify.
	(input_gimple_stmt): Fixup handled component types during
	operand read.  Also fix up decls in ADDR_EXPRs.

2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
	* config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.

2010-03-10  Jan Hubicka  <jh@suse.cz>

	PR c/43288
	* ipa.c (function_and_variable_visibility) Normalize COMMON bits.
	* varasm.c (get_variable_section): Don't do that here...
	(make_decl_rtl): ... and here.
	(do_assemble_alias): Produce decl RTL.
	(assemble_alias): Likewise.

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

	PR debug/43290
	* reg-notes.def (REG_CFA_SET_VDRAP): New note.
	* dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
	of fde->vdrap_reg.
	(dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
	(based_loc_descr): Only express drap or vdrap regno based expressions
	using DW_OP_fbreg when not optimizing.
	* config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
	make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
	REG_CFA_SET_VDRAP note.

2010-03-10  Alexander Monakov  <amonakov@ispras.ru>

	PR tree-optimization/43236
	* tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
	error in calculation of base address in reverse iteration case.
	(generate_builtin): Take number of latch executions if the statement
	is in the latch.

2010-03-10  Andrey Belevantsev  <abel@ispras.ru>

	PR middle-end/42859
	* tree-eh.c: Include pointer-set.h.
	(lower_eh_dispatch): Filter out duplicate case labels and
	remove the unneeded edge when the label is unused.  Return
	true when some edges are removed.
	(execute_lower_eh_dispatch): When any lowering resulted in
	removing an edge, also delete unreachable blocks.

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

	PR bootstrap/43287
	* config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
	UNSPEC_MACHOPIC_OFFSET.

2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>

	PR target/43294
	* config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
	(m68k_delegitimize_address): New function.

2010-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43299
	* dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.

	PR debug/43299
	* var-tracking.c (adjust_sets): New function.
	(count_with_sets, add_with_sets): Use it.
	(get_adjusted_src): New inline function.
	(add_stores): Use it.

	PR debug/43304
	* var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
	call cselib_dummy_expand_value_rtx_cb instead of
	cselib_expand_value_rtx_cb.

	PR debug/43293
	* config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
	* config/i386/i386.c: Include debug.h and dwarf2out.h.
	(ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
	and .cfi_endproc around the pic thunks.
	(output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
	all queued unwind info register saves are saved before the call.
	For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
	considered as sp-=4 for unwind info and the pop as sp+=4 which
	also clobbers dest, but doesn't actually restore it.

	PR debug/43290
	* config/i386/i386.c (ix86_get_drap_rtx): Don't set
	RTX_FRAME_RELATED_P.

2010-03-09  Jie Zhang  <jie@codesourcery.com>

	* config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
	whitespaces in output template.

2010-03-09  Jie Zhang  <jie@codesourcery.com>

	* ira-lives.c (check_and_make_def_use_conflict): Don't fall
	out array boundary.

2010-03-08  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
	builtins.exp in a separate job.

2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (add_param_constraints): Use
	lower_bound_in_type and upper_bound_in_type.

2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (add_param_constraints): Use sizetype
	instead of unsigned_type_node.

2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
	    Reza Yazdani  <reza.yazdani@amd.com>

	PR middle-end/43065
	* graphite-sese-to-poly.c (add_param_constraints): Insert bounds
	on pointer type parameters.

2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>

	PR middle-end/42644
	PR middle-end/42130
	* graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
	handle conversions from pointer to integers.
	(gcc_type_for_cloog_iv): Choose the smalles signed integer as an
	induction variable, to be able to work with code generated by CLooG.
	* graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
	(build_poly_scop): Bail out if we cannot codegen a loop.

2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (translate_clast): Do not short-cut
	code generation with gloog_error.

2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
	Call fold_convert on all the returned values.
	(expand_scalar_variables_expr): Pass to
	expand_scalar_variables_ssa_name the type of the resulting expression.

2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
	ppl_min_for_le_pointset.
	Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
	* graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.

2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (map_into_dep_poly): Removed.
	(dependence_polyhedron_1): Use combine_context_id_scat.

2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h (struct poly_scattering): Add layout documentation.
	(struct poly_bb): Same.
	(combine_context_id_scat): New.

2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42326
	* sese.c (name_defined_in_loop_p): Return false for default
	definitions.

2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
	and clean up the logic.

2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
	early return.

2010-03-08  Jakub Jelinek  <jakub@redhat.com>

	* var-tracking.c (remove_cselib_value_chains): Define only for
	ENABLE_CHECKING.
	(dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
	delete_slot_part, emit_notes_for_differences_1): Don't call
	remove_cselib_value_chains here.
	(set_slot_part, emit_notes_for_differences_2): Don't call
	add_cselib_value_chains here.
	(preserved_values): New vector.
	(preserve_value): New function.
	(add_uses, add_stores, vt_add_function_parameters): Use it
	instead of cselib_preserve_value.
	(changed_values_stack): New vector.
	(check_changed_vars_0): New function.
	(check_changed_vars_1, check_changed_vars_2): Use it.
	(emit_notes_for_changes): Call set_dv_changed (*, false) on all
	changed_values_stack VALUEs.
	(vt_emit_notes): For all preserved_values call
	add_cselib_value_chains.  If ENABLE_CHECKING call
	remove_cselib_value_chains before verifying value_chains is empty.
	Initialize and free changed_values_stack.
	(vt_initialize): Initialize preserved_values.
	(vt_finalize): Free preserved_values.

2010-03-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43269
	* tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
	region detection.

2010-03-08  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
	(ipa_is_param_called): Removed.
	* ipa-prop.c (ipa_note_param_call): Do not set the called flag.
	(ipa_print_node_params): Do not print the called flag.
	(ipa_write_node_info): Do not stream the called flag.
	(ipa_read_node_info): Likewise.

2010-03-07  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43176
	* Makefile.in (var-tracking.o): Depend on pointer-set.h.
	* cselib.c (struct expand_value_data): Add dummy field.
	(cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
	dummy to false.
	(cselib_dummy_expand_value_rtx_cb): New function.
	(cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
	any rtl.
	* cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
	* var-tracking.c: Include pointer-set.h.
	(variable): Change n_var_parts to char from int.  Add
	cur_loc_changed and in_changed_variables fields.
	(variable_canonicalize): Remove.
	(shared_var_p): New inline function.
	(unshare_variable): Maintain cur_loc_changed and
	in_changed_variables fields.  If var was in changed_variables,
	replace it there with new_var.  Just copy cur_loc instead of
	resetting it to something else.
	(variable_union): Don't recompute cur_loc.  Use shared_var_p.
	(dataflow_set_union): Don't call variable_canonicalize.
	(loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
	of their DEBUG_EXPR_TREE_DECLs.
	(canonicalize_loc_order_check): Verify that cur_loc is NULL
	and in_changed_variables and cur_loc_changed is false.
	(variable_merge_over_cur): Clear cur_loc, in_changed_variables
	and cur_loc_changed.  Don't update cur_loc here.
	(variable_merge_over_src): Don't call variable_canonicalize.
	(dataflow_set_preserve_mem_locs): Use shared_var_p.  When
	removing loc that is equal to cur_loc, clear cur_loc,
	set cur_loc_changed and ensure variable_was_changed is called.
	(dataflow_set_remove_mem_locs): Use shared_var_p.  Only
	compare pointers in cur_loc check, if it is equal to loc,
	clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
	(variable_different_p): Remove compare_current_location argument,
	don't compare cur_loc.
	(dataflow_set_different_1): Adjust variable_different_p caller.
	(variable_was_changed): If dv had some var in changed_variables
	already, reset in_changed_variables flag for it and propagate
	cur_loc_changed over to the new variable.  On empty var
	always set cur_loc_changed.  Set in_changed_variables on whatever
	var is added to changed_variables.
	(set_slot_part): Clear cur_loc_changed and in_changed_variables.
	Use shared_var_p.  When removing loc that is equal to cur_loc,
	clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
	end, don't set it to something else, just call variable_was_changed.
	(delete_slot_part): Use shared_var_p.  When cur_loc equals to
	loc being removed, clear cur_loc and set cur_loc_changed.
	Set cur_loc_changed if all locations have been removed.
	(struct expand_loc_callback_data): New type.
	(vt_expand_loc_callback): Add dummy mode in which no rtxes are
	allocated.  Always create SUBREGs if simplify_subreg failed.
	Prefer to use cur_loc, when that fails and still in
	changed_variables (and seen first time) recompute it.  Set
	cur_loc_changed of variables which had to change cur_loc and
	compute elcd->cur_loc_changed if any of the subexpressions used
	had to change cur_loc.
	(vt_expand_loc): Adjust to pass arguments in
	expand_loc_callback_data structure.
	(vt_expand_loc_dummy): New function.
	(emitted_notes): New variable.
	(emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
	that weren't used for any other decl in current
	emit_notes_for_changes call call vt_expand_loc_dummy to update
	cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
	first loc_chain location if NULL before.  Always use just
	cur_loc instead of first loc_chain location.  When cur_loc_changed
	is false, when not --enable-checking=rtl just don't emit any note.
	When rtl checking, compute the note and assert it is the same
	as previous note.  Clear cur_loc_changed and in_changed_variables
	at the end before removing from changed_variables.
	(check_changed_vars_3): New function.
	(emit_notes_for_changes): Traverse changed_vars to call
	check_changed_vars_3 on each changed var.
	(emit_notes_for_differences_1): Clear cur_loc_changed and
	in_changed_variables.  Recompute cur_loc of new_var.
	(emit_notes_for_differences_2): Clear cur_loc if new variable appears.
	(vt_emit_notes): Initialize and destroy emitted_notes.

2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>

	PR rtl-optimization/42220
	* regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
	Use verify_reg_tracked to determine if we should use OP_OUT rather
	than OP_INOUT.
	(build_def_use): If we see an in-out operand for a register that we
	know nothing about, treat is an output if possible, fail the block if
	not.

2010-03-06  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/42897
	* gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
	permanently.

2010-03-06  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/42897
	* tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
	uses of relevant DEFs that are dead outside the loop too.

2010-03-06  Alexandre Oliva  <aoliva@redhat.com>

	* var-tracking.c (dataflow_set_merge): Swap src and src2.
	Reverted:
	2010-01-13  Jakub Jelinek  <jakub@redhat.com>
	PR debug/41371
	* var-tracking.c (values_to_unmark): New variable.
	(find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
	values_to_unmark vector.  Moved body to...
	(find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
	instead queue it into values_to_unmark vector.
	(vt_find_locations): Free values_to_unmark vector.

2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>

	* Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
	(site.exp): Export them when plugins are enabled.

2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42326
	* tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
	that contain scevs.
	(chrec_fold_multiply): Same.

2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>

	PR c/43248
	* c-decl.c (build_compound_literal): Return early if init is
	an error_mark_node.

2010-03-04  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/43164
	PR tree-optimization/43191
	* tree-sra.c (type_consists_of_records_p): Reject records with
	zero-size bit-fields at the end.

2010-03-04  Mike Stump  <mikestump@comcast.net>

	* Makefile.in (TAGS): Remove *.y.

2010-03-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/40761
	* tree-ssa-pre.c (compute_antic): Walk reverse postorder
	in reverse order.
	(my_rev_post_order_compute): New function.
	(init_pre): Call it.

2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>

	PR middle-end/43209
	* tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
	decrease the cost of an IV candidate when the cost is infinite.

2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/extend.texi (Vector Extensions, X86 Built-in Functions):
	Use '3DNow!' for the extension of that name, ensure normal space
	after the string.
	* doc/invoke.texi (i386 and x86-64 Options): Likewise.

2010-03-03  Jeff Law  <law@redhat.com>

	* PR middle-end/32693
	* expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
	than gen_rtx_SUBREG.
	(extract_bit_field_1): Likewise.

2010-03-03  Janis Johnson  <janis187@us.ibm.com>

	* doc/sourcebuild.texi (Test directives): Document that arguments
	include-opts and exclude-opts are now optional for dg-skip-if,
	dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.

2010-03-03  Jason Merrill  <jason@redhat.com>

	PR c++/12909
	* cgraph.h (varpool_node): Add extra_name field.
	* varpool.c (varpool_extra_name_alias): New.
	(varpool_assemble_decl): Emit extra name aliases.
	(varpool_mark_needed_node): Look past an extra name alias.
	* lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
	* lto-streamer-in.c (lto_input_tree): Read it.
	* lto-streamer-out.c (output_unreferenced_globals): Write it.

2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>

	* config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
	(sparc*-*-solaris2*): ...this.

2010-03-03  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43229
	* cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
	WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
	ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
	FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.

	PR debug/43237
	* dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
	fallthrough to default handling, just with want_address 0 instead of 2.
	For single element lists, add_AT_loc directly, otherwise create an
	artificial variable DIE and stick location list to it.

	PR debug/43177
	* var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
	(VAL_EXPR_HAS_REVERSE): Define.
	(reverse_op): New function.
	(add_stores): For reversible operations add an extra MO_VAL_USE.

2010-03-02  Jason Merrill  <jason@redhat.com>

	* c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.

2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>

	* config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
	(sparc64-*-linux*): Likewise.
	(sparc64-*-solaris2*): Include assembler files before linker ones.
	(sparc-*-solaris2*): Simplify and reorder to match previous case.
	* config/sparc/gas.h: Delete.
	* config/sparc/sol2-64.h: Add copyright notice.
	* config/sparc/sol2-gas-bi.h: Likewise.
	* config/sparc/sol2-gld.h: Likewise.
	* config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
	* config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
	* config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
	* config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
	(sparc_elf_asm_named_section): Rename into...
	(sparc_solaris_elf_asm_named_section): ...this.  Always define.

2010-03-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (override_options): Fix -mtune error message.

2010-03-02  Jeff Law  <law@redhat.com>

	PR middle-end/42431
	* reload1.c (rtx_p, substitute_stack): Declare.
	(substitute): Record addresses of changed rtxs.
	(gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
	Restore the original rtx when complete.
	(reload): Free subsitute_stack when complete.

2010-03-02  Janis Johnson  <janis187@us.ibm.com>

	* doc/gccint.texi (menu): Add Testsuites as a chapter.
	* doc/sourcebuild.texi (Testsuites): Move up a level to be a
	new chapter.
	(Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
	LTO Testing, gcov Testing, profopt Testing, compat Testing,
	Torture Tests): Change from subsection to section.

2010-03-02  Jakub Jelinek  <jakub@redhat.com>
	    Steven Bosscher  <steven@gcc.gnu.org>

	* var-tracking.c (vt_initialize): Scan insns in ebb chunks
	instead of bb.

2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>

	PR middle-end/42640
	* tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
	the assignment from the new induction variable to the assignment
	of the value from the original loop PHI function.

2010-03-01  Janis Johnson  <janis187@us.ibm.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* doc/sourcebuild.texi (Test directives): Clarify options to
	dg-skip-if.

2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
	Disable cfi directives unless GCC and gas agree on using read-only
	.eh_frame sections for 64-bit.
	* configure: Regenerate.

2010-03-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43220
	* tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
	BUILT_IN_STACK_{SAVE,RESTORE} around alloca.

2010-03-01  Richard Guenther  <rguenther@suse.de>
	    Martin Jambor  <mjambor@suse.cz>

	PR middle-end/41250
	* gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
	gimplified parameters.

2010-03-01  Christian Bruel  <christian.bruel@st.com>

	* except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.

2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.

2010-03-01  Richard Guenther  <rguenther@suse.de>

	PR middle-end/43213
	* expr.c (expand_assignment): Use the alias-oracle to tell
	if the rhs aliases the result decl.

2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR pch/14940
	* config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
	to sol_gt_pch_get_address.
	(TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
	64-bit, SPARC and x86.
	(sol_gt_pch_get_address): New function.

2010-03-01  Marco Poletti  <poletti.marco@gmail.com>

	* toplev.h (inform_n, error_n): Declare.
	* diagnostic.c (inform_n, error_n): New function.

2010-03-01  Jakub Jelinek  <jakub@redhat.com>

	* cfgexpand.c (expand_used_vars): If an artificial non-ignored var
	has no rtl yet when processing local_decls, queue it and recheck
	if deferred stack allocation hasn't assigned it rtl.

2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (unspec_bbr_uid): New.
	(gen_block_redirect): Use it instead of INSN_UID.
	(gen_far_branch): Likewise.

2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
	it the same as TARGET_SUBTARGET64_ISA_DEFAULT.

2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/invoke.texi (Warning Options, RX Options): Fix typos.
	(Warning Options): -Wno-conversion-null is valid for
	Objective-C++ as well.
	* doc/tm.texi (Named Address Spaces): Likewise.
	* doc/plugins.texi (Plugins): Replace TABs with spaces.
	* doc/tree-ssa.texi (Tree SSA): Likewise.

2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/43202
	* config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
	by default.  Don't set the default arch for
	i[34567]86-*-darwin*|x86_64-*-darwin*.

2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/43202
	* config.gcc: Enable SSE math for i[34567]86-*-darwin* by
	default.  Set the default 32bit/64bit archs with $with_arch
	instead of $arch for i[34567]86-*-*|x86_64-*-* targets.

2010-02-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43186
	* params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
	* doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
	* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
	unroller iterations.

2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
	required and i[34567]86-*-* targets don't support 64bit ISA.

2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/43096
	* tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
	the same alias set.

2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc: Set the default arch at least to Prescott for
	i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
	if SSE math is enabled.

2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* diagnostic.c (diagnostic_initialize): Update.
	(diagnostic_report_diagnostic): Test inhibit_notes_p for
	informative notes.
	* diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
	(diagnostic_inhibit_notes): New.
	* toplev.c (process_options): inhibit notes with -fcompare-debug.

2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/20631
	* doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
	* doc/standards.texi: Likewise.
	* doc/extend.texi: Likewise.
	* doc/trouble.texi: Likewise.
	* doc/cppopts.texi: Likewise.
	* doc/install.texi: Likewise.
	* c.opt (std=c90,std=gnu90): New options.
	* c-opts.c (c_common_handle_option): Handle them.

2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/24577
	* c-decl.c (undeclared_variable): Use an informative note.

2010-02-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43186
	* gimple.h (gimple_fold): Remove.
	* gimple.c (gimple_fold): Remove.  Inline into single user ...
	* tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
	Try harder for conditions.

2010-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43190
	* function.c (used_types_insert): Don't skip through named pointer
	types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
	and it is different from the main variant's type.

2010-02-26  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.md (sminsi3): Remove bogus alternative.

2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc: Support --with-fpmath=sse for x86.

	* config/i386/ssemath.h: New.

	* doc/install.texi (--with-fpmath=sse): Documented.

2010-02-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43188
	* tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
	vector types of over-aligned element type.

2010-02-26  Uros Bizjak  <ubizjak@gmail.com>

	PR target/43175
	* config/i386/i386.c (expand_vec_perm_blend): Use correct
	operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.

2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* doc/invoke.texi (-fvar-tracking-assignments): Fix typo.

2010-02-26  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
	* var-tracking.c: Include diagnostic.h.
	(debug_dv): New function.
	(dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.

	PR debug/43160
	* var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
	(add_value_chain, add_value_chains, remove_value_chain,
	remove_value_chains): Handle DEBUG_EXPRs.
	(check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.

	PR debug/43161
	* regcprop.c (struct queued_debug_insn_change): New type.
	(struct value_data_entry): Add debug_insn_changes field.
	(struct value_data): Add n_debug_insn_changes field.
	(debug_insn_changes_pool): New variable.
	(free_debug_insn_changes, apply_debug_insn_changes,
	cprop_find_used_regs_1, cprop_find_used_regs): New functions.
	(kill_value_one_regno): Call free_debug_insn_changes if needed.
	(init_value_data): Clear debug_insn_changes and n_debug_insn_changes
	fields.
	(replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
	changes for them.
	(copyprop_hardreg_forward_1): Don't call apply_change_group for
	DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
	changes, call cprop_find_used_regs via note_stores.
	(copyprop_hardreg_forward): When copying vd from predecessor
	which has any queued DEBUG_INSN changes, make sure the pointers are
	cleared.  At the end call df_analyze and then if there are any
	DEBUG_INSN changes queued at the end of some basic block for still
	live registers, apply them.
	(pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.

2010-02-25  Uros Bizjak  <ubizjak@gmail.com>

	* config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
	(arm*-*-*): Ditto.

2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
	targets.  Set the default with_cpu/with_arch from arch/cpu.
	Allow x86-64 and native for with_cpu/with_arch.

2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>

	* ebitmap.c: Change calls to verify_popcount with calls to
	sbitmap_verify_popcount.
	(ebitmap_clear_bit): Fixed map->cacheindex test and
	map>cache update when bit clearing results in an empty
	element.

2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/43154
	* config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
	(vec_interleave_high<mode>): Rename from vec_interleave_highv2df
	and support both V2DF and V2DI modes.
	(vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
	support both V2DF and V2DI modes.
	(general): Delete trailing whitespace from a few patterns.

	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
	V2DF/V2DI interleave high/low builtins.

	* config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
	new VSX builtins.

	* config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
	interleave high/low functions.

2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
	#pragma extern_prefix.

2010-02-25  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43166
	* cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
	BLKmode, assert op0 is a MEM and just adjust its mode.

	PR debug/43165
	* cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
	if bitpos isn't multiple of mode's bitsize.

2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* c.opt (-ftemplate-depth=): New.
	(-ftemplate-depth-): Deprecate.
	* optc-gen.awk: Handle -ftemplate-depth=.
	* opth-gen.awk: Likewise.
	* c-opts.c (c_common_handle_option): Likewise.
	* doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.

2010-02-24  Jason Merrill  <jason@redhat.com>

	* doc/invoke.texi: Improve -Wabi and -fabi-version docs.

2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* cfg.c (alloc_aux_for_block): Remove inline.
	(alloc_aux_for_edge): Likewise.

2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.

2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
	* config/i386/sol2-gas.h: New file.
	* config.gcc (i[34567]86-*-solaris2*): Use it.

2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/43128
	* c-typeck.c (ep_convert_and_check): New.
	(build_conditional_expr): Use it.
	(build_binary_op): Likewise.

2010-02-24  Jakub Jelinek  <jakub@redhat.com>

	* regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.

	PR debug/43150
	* gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
	bounds even for -O+.
	* var-tracking.c (track_expr_p): If !need_rtl, don't mandate
	expr needs to have DECL_NAME set.

2010-02-24  Nick Clifton  <nickc@redhat.com>

	* config/mep/mep.c: Include gimple.h.
	(mep_function_uses_sp): Delete unused function.
	(mep_gimplify_va_arg_expr): Change types of pre_p and post_p
	parameters.  Use unsigned integers to count args.  Return a
	NULL_RTX instead of an error_mark_node.  Toidy up formatting.

2010-02-23  Jakub Jelinek  <jakub@redhat.com>

	PR target/43107
	* config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
	greater or equal to nelt instead of 2 * nelt.
	(expand_vec_perm_1): When op0 and op1 are equal, mask indexes
	with nelt - 1.

2010-02-23  Jason Merrill  <jason@redhat.com>

	PR debug/42800
	* cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
	in cfun->local_decls even if they have register types.

	PR c++/42837
	* stor-layout.c (place_field): Don't warn about unnecessary
	DECL_PACKED if the type is packed.

2010-02-23  Jakub Jelinek  <jakub@redhat.com>

	PR target/43139
	* config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
	GOTOFF relocs, even when the base reg isn't pic pointer.

2010-02-23  Michael Matz  <matz@suse.de>

	PR debug/43077
	* cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
	(expand_gimple_basic_block): Generate and use debug temps if there
	are debug uses left after the last real use of TERed ssa names.
	Unlink debug immediate uses when they are expanded.

2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 43123
	* config/i386/i386.c (override_options): Reorganise to provide
	better error messages.

2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43083
	* graphite-scop-detection.c (create_single_exit_edge): Move
	the call to find_single_exit_edge to....
	(create_sese_edges): ...here.  Don't handle multiple edges
	exiting the function.
	(build_graphite_scops): Don't handle multiple edges
	exiting the function.

2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43097
	* sese.c (get_rename): Assert that old_name is an SSA_NAME.
	(rename_variables_in_stmt): Continue when the use is not an SSA_NAME.

2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43026
	* sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.

2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/43126
	* c-typeck.c (convert_arguments): Print declaration location.
	* c-common.c (validate_nargs): Rename as
	builtin_function_validate_nargs.
	(check_builtin_function_arguments): Update.

2010-02-22  Richard Guenther  <rguenther@suse.de>

	PR lto/43045
	* tree-inline.c (declare_return_variable): Use the type of
	the call stmt lhs if available.

2010-02-22  Duncan Sands  <baldrick@free.fr>

	* passes.c (register_pass): Always consider all pass lists when
	ref_pass_instance_number is zero.

2010-02-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42749
	* tree-tailcall.c (adjust_return_value_with_ops): Drop update
	parameter.  Do arithmetic in the original type.
	(update_accumulator_with_ops): Likewise.
	(adjust_accumulator_values): Adjust.

2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
	(QI to BLKmode splitter): New splitter.

2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (initial_ix86_tune_features): Turn on
	X86_TUNE_INTER_UNIT_MOVES for m_ATOM.

2010-02-22  Richard Guenther  <rguenther@suse.de>

	* tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.

2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>

	Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
	* config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
	($(T)crti.o, $(T)crtn.o): Remove rules.

2010-02-21  Tobias Burnus  <burnus@net-b.de>

	PR fortran/35259
	* doc/invoke.texi (-fassociative-math): Document that this
	option is automatically enabled for Fortran.

2010-02-20  David S. Miller  <davem@davemloft.net>

	* configure.ac: Test if linker and assembler properly support
	GOTDATA_OP relocations.
	* configure: Rebuild.
	* config.in: Likewise.
	* config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
	(movsi_lo_sum_pic): Use %gdop_*() relocs if available.
	(movsi_high_pic): Likewise.
	(movdi_lo_sum_pic): Likewise.
	(movdi_high_pic): Likewise.
	(movsi_pic_gotdata_op): New pattern.
	(movdi_pic_gotdata_op): Likewise.
	* config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
	emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.

2010-02-20  Uros Bizjak  <ubizjak@gmail.com>

	PR target/43067
	* config/i386/sse.md (xop_mulv2div2di3_low): Change type
	attribute to ssemul.
	(xop_mulv2div2di3_high): Ditto.

2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/35669
	* c.opt (Wconversion-null): New option.
	* doc/invoke.texi (Wconversion-null): Document.

2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* common.opt (Wlarger-than-): Add Undocumented.

2010-02-19  Mike Stump  <mikestump@comcast.net>

	* config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.

2010-02-19  Jason Merrill  <jason@redhat.com>

	PR target/40332
	* configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
	* configure: Likewise.

2010-02-20  Alan Modra  <amodra@gmail.com>

	PR middle-end/42344
	* cgraph.h (cgraph_make_decl_local): Declare.
	* cgraph.c (cgraph_make_decl_local): New function.
	(cgraph_make_node_local): Use it.
	* cgraphunit.c (cgraph_function_versioning): Likewise.
	* ipa.c (function_and_variable_visibility): Likewise.

2010-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/43121
	* except.c (sjlj_emit_function_enter): Don't call
	add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
	directly.
	* rtl.h (add_reg_br_prob_note): Remove prototype.

2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR 41779
	* c-common.c (conversion_warning): Remove widening conversions
	before checking the conversion of integers to reals.

2010-02-19  Mike Stump  <mikestump@comcast.net>

	PR middle-end/43125
	* c-decl.c (merge_decls): Merge DECL_PRESERVE_P.

	PR objc/43061
	* cgraphunit.c (process_function_and_variable_attributes): Check
	DECL_PRESERVE_P instead of looking up attribute "used".
	* ipa-pure-const.c (check_decl): Likewise.
	* ipa-reference.c (has_proper_scope_for_analysis): Likewise.
	* ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
	* config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
	instead of attribute "used".
	* config/sol2-c.c (solaris_pragma_init): Likewise.
	(solaris_pragma_fini): Likewise.

2010-02-19  Jakub Jelinek  <jakub@redhat.com>

	* ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
	Use XCNEW instead of xcalloc.
	(add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
	XNEW instead of xmalloc.
	(get_fields): Use XNEWVEC instead of xmalloc.

	PR debug/43084
	* ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
	populate vars array.
	(create_new_general_access): For debug stmts just reset value.
	(get_stmt_accesses): For accesses within debug stmts just record them
	using add_access_to_acc_sites instead of preventing the peeling or
	counting them as accesses.

	PR middle-end/42233
	* dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.

2010-02-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42916
	* tree-vect-slp.c (vect_slp_analyze_bb): Count only real
	instructions.

2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>

	* configure.ac: Replace all uses of changequote in macro arguments
	with proper quoting.

2010-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/42233
	* loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.

2010-02-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42944
	* tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
	test for aliasing with errno.

2010-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/42233
	* expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
	do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
	* dojump.c: Include output.h.
	(inv): New inline function.
	(jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
	do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
	do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
	do_jump_by_parts_equality, do_compare_and_jump): Add PROB
	argument, pass it down to other calls.
	(do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
	add REG_BR_PROB note to the conditional jump.
	* cfgexpand.c (add_reg_br_prob_note): Removed.
	(expand_gimple_cond): Don't call it, add the probability
	as last argument to jumpif_1/jumpifnot_1.
	* Makefile.in (dojump.o): Depend on output.h.
	* builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
	callers.
	* expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
	* stmt.c (do_jump_if_equal): Likewise.
	* cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
	* loop-unswitch.c (compare_and_jump_seq): Likewise.
	* config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
	Likewise.
	* optabs.c (expand_doubleword_shift, expand_abs): Likewise.
	* expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
	jumpifnot_1 callers.
	(expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
	callers.
	(store_expr): Adjust jumpifnot caller.
	(store_constructor): Adjust jumpif caller.

	PR middle-end/42233
	* gimplify.c (gimple_boolify): For __builtin_expect call
	gimple_boolify also on its first argument.

2010-02-18  Uros Bizjak  <ubizjak@gmail.com>

	* configure.ac (gnu-unique-object): Wrap regexps using [] in
	changequote block.
	(__stack_chk_fail): Ditto.  Remove quadrigraphs.
	* configure: Regenerated.

2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
	lang_hooks.types_compatible_p instead of comptypes.

2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/arm/lib1funcs.asm (__prefer_thumb__): New define.
	(udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
	if __prefer_thumb__ is defined.

2010-02-18  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/43066
	* tree-sra.c (build_ref_for_offset_1): Return false on encountering an
	array with zero-sized element type.

2010-02-18  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (add_var_loc_to_decl): Change last argument to
	rtx, allocate struct var_loc_node here and return it to the
	caller, and only if it is actually needed.
	(dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
	move it earlier and return immediately if it returns NULL.

2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>

	* config/sparc/gas.h: New file.  Restore
	TARGET_ASM_NAMED_SECTION to its ELF default.
	* config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
	check !HAVE_GNU_AS.
	* config/sparc/sparc.c (sparc_elf_asm_named_section):
	Likewise.  Add ATTRIBUTE_UNUSED to prototype.
	* config.gcc (sparc*-*-linux*): Include sparc/gas.h
	after sparc/sysv4.h.

2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>

	* config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.

2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>

	* gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
	patterns from predicated pattern.

2010-02-17  Uros Bizjak  <ubizjak@gmail.com>

	PR target/43103
	* config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
	for insn mnemonic suffix.

2010-02-17  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
	to loop PHI nodes.

2010-02-17  Jakub Jelinek  <jakub@redhat.com>

	PR debug/42918
	* caller-save.c (save_call_clobbered_regs): If BB ends with
	a DEBUG_INSN, move any notes in between last real insn and the last
	DEBUG_INSN after the last DEBUG_INSN.

2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>

	* tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
	Fix return type.  Fix argument type.  Explain meaning of return value.

2010-02-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/41043
	* tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
	(vrp_visit_assignment_or_call): Do not ask SCEV for regular
	statements ...
	(vrp_visit_phi_node): ... but only for loop PHI nodes.

2010-02-16  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/43074
	* tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
	* tree-vect-loop.c (vect_analyze_loop_operations): Add
	vectorizable cycles in hybrid SLP check.
	* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.

2010-02-16  Richard Guenther  <rguenther@suse.de>

	* alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
	(true_dependence): If memrefs_conflict_p computes must-alias
	trust it.  Move TBAA check after offset-based disambiguation.
	(canon_true_dependence): Likewise.

2010-02-16  Alexandre Oliva  <aoliva@redhat.com>

	* params.def (PARAM_MAX_VARTRACK_SIZE): New.
	* doc/invoke.texi: Document it.
	* var-tracking.c: Include toplev.h and params.h.
	(vt_find_locations): Return bool indicating success.  Compute
	hash sizes unconditionally.  Check new parameter, report.
	(variable_tracking_main_1): Check vt_find_locations results and
	retry.  Renamed from...
	(variable_tracking_main): ... this.  New wrapper to preserve
	flag_var_tracking_assignments.
	* Makefile.in (var-tracking.o): Adjust dependencies.

2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/42854
	* config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
	if weak_import attribute is present.
	* config/darwin.c (machopic_select_section): Likewise.

2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>

	* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
	(TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
	(TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
	(TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.

	* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
	types.

	* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
	Fix argument types.

	* doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
	Rewrite text to refer to the names.

2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>

	* config/i386/i386-builtin-types.def
	(V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
	(V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
	(V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
	(V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
	* config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
	IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
	IX86_BUILTIN_VPERMIL2PS256.
	(MULTI_ARG_4_DF2_DI_I): Defined.
	(MULTI_ARG_4_DF2_DI_I1): Defined.
	(MULTI_ARG_4_SF2_SI_I): Defined.
	(MULTI_ARG_4_SF2_SI_I1): Defined.
	(bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
	__builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
	__builtin_ia32_vpermil2ps256.
	(ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
	MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
	MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
	(ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
	MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
	MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
	CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
	CODE_FOR_xop_vpermil2v8sf3.
	* config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
	* config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
	* config/i386/xopintrin.h (_mm_permute2_pd): New.
	(_mm256_permute2_pd): New.
	(_mm_permute2_ps): New.
	(_mm256_permute2_ps): New.

2010-02-15  Nick Clifton  <nickc@redhat.com>

	* config/h8300/h8300.c (h8300_push_pop): Use bool type for
	boolean parameters.  Use emit_jump_insn when emitting a pop
	instruction containing a return insn.
	(push): Use 'true' rather than '1' as second parameter to F.
	(h8300_expand_prologue): Likewise.
	Use 'true' and 'false' for boolean parameters to h8300_push_pop.
	(h8300_expand_epilogue): Likewise.

2010-02-15  Richard Guenther  <rguenther@suse.de>

	PR middle-end/43068
	* cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
	if that is zero.

2010-02-15  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
	delta.

2010-02-14  Marco Poletti  <poletti.marco@gmail.com>

	* intl.c (fake_ngettext): New function.
	* intl.h (fake_ngettext): Declare.
	(ngettext): Define macro.
	* collect2.c (notice_translated): New function.
	(main): Use notice_translated and ngettext.
	* collect2.h (notice_translated): Declare.

2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>

	* reorg.c (delete_computation): Comment fixes.
	* caller-save.c (setup_save_areas): Idem.
	* sel-sched-dump.c (dump_lv_set): Idem.
	* rtl.def: Idem.

2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_sched_init): New function.
	(TARGET_SCHED_INIT): Target hook defined.

2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
	    Jack Howarth  <howarth@bromo.med.uc.edu>
	    Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>

	PR target/42982
	Partial revert of unintended change in fix for PR41605.
	* config/darwin.h: Fix typo.
	* config/darwin9.h: Same.

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

	* c-pch.c (pch_init): Clear v.

2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42930
	* graphite-scop-detection.c (graphite_can_represent_scev): Call
	graphite_can_represent_init for MULT_EXPR.

2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42914
	PR middle-end/42530
	* graphite-sese-to-poly.c (remove_phi): New.
	(translate_scalar_reduction_to_array): Call remove_phi.

2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42771
	* graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
	* graphite-clast-to-gimple.h (gloog): Update declaration.
	* graphite-poly.c (new_scop): Clear POLY_SCOP_P.
	* graphite-poly.h (struct poly_bb): Add missing comments.
	(struct scop): Add poly_scop_p field.
	(POLY_SCOP_P): New.
	* graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
	* graphite.c (graphite_transform_loops): Build the polyhedral
	representation for each scop before code generation.
	* sese.c (rename_variables_in_operand): Removed.
	(rename_variables_in_expr): Return the renamed expression.
	(rename_sese_parameters): New.
	* sese.h (rename_sese_parameters): Declared.

2010-02-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42998
	* tree-ssa-pre.c (create_expression_by_pieces): Treat
	POINTER_PLUS_EXPR properly.

2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
	    Changpeng Fang  <changpeng.fang@amd.com>

	PR middle-end/40886
	* tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
	the cost of an IV candidate when the IV is used in a test against zero.

	* gcc.dg/tree-ssa/ivopts-3.c: New.

2010-02-11  Richard Guenther  <rguenther@suse.de>

	PR lto/41664
	* tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
	pointer-vs-decl case by swapping refs.  Handle some cases
	of pointer-vs-decl disambiguations more conservatively.
	* cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
	to false after expanding.

2010-02-11  Richard Guenther  <rguenther@suse.de>

	PR driver/43021
	* gcc.c (process_command): Handle LTO file@offset case more
	appropriately.

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

	* reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
	modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
	of DEBUG_INSNs.
	(eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.

	* dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
	if MEM's mode size isn't DWARF2_ADDR_SIZE.
	(mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
	Optimize eq/ne comparisons when both arguments are known to be
	zero-extended.
	(mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
	Don't mask operands unnecessarily if they are known to be already
	zero-extended.

2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
	instead of loop.

2010-02-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43017
	* tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
	for wrapping signed arithmetic.

2010-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR debug/43010
	* dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
	if no debug info should be emitted for it.

2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
	note when flag_exceptions is set.

2010-02-10  Duncan Sands  <baldrick@free.fr>

	* Makefile.in (PLUGIN_HEADERS): Add debug.h.

2010-02-10  Richard Guenther  <rguenther@suse.de>

	PR c/43007
	* tree.c (get_unwidened): Handle constants.
	* convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.

2010-02-10  Martin Jambor  <mjambor@suse.cz>

	PR lto/42985
	* ipa-prop.c (ipa_update_after_lto_read): Count parameters and
	check for variable argument counts independently.

2010-02-10  Christian Bruel  <christian.bruel@st.com>

	PR target/42841
	* config/sh/sh.c (find_barrier): Increase length for non delayed
	conditional branches.

2010-02-10  Christian Bruel  <christian.bruel@st.com>

	* config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.

2010-02-10  Jakub Jelinek  <jakub@redhat.com>

	* builtins.c (set_builtin_user_assembler_name): Also handle
	ffs if int is smaller than word.

2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/42973
	* ira-conflicts.c (get_dup): Remove.
	(process_reg_shuffles): Add new parameter.  Use it as an
	additional guard for copy generation.
	(add_insn_allocno_copies): Rewrite.

2010-02-09  Alexander Monakov  <amonakov@ispras.ru>

	* common.opt (fsched2-use-traces): Preserved for backward
	compatibility.
	* doc/invoke.texi: Remove the documentation about option
	-fsched2-use-traces.
	* sched-rgn.c (rest_of_handle_sched2): Remove usage of
	flag_sched2_use_traces.
	* opts.c (common_handle_option): Add OPT_fsched2_use_traces to
	the backward compatibility flag section.

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

	PR tree-optimization/43008
	* tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
	make HEAP variables initialized from global memory if they
	are not known builtin functions.
	(find_func_aliases): Adjust.

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

	PR tree-optimization/43000
	* tree-vrp.c (vrp_int_const_binop): Only handle unsigned
	arithmetic manually.

2010-02-08  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/42931
	* tree-loop-linear.c (try_interchange_loops): Don't call
	double_int_mul if estimated_loop_iterations failed.

2010-02-08  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/42898
	* tree-sra.c (build_accesses_from_assign): Do not mark in
	should_scalarize_away_bitmap if stmt has volatile ops.
	(sra_modify_assign): Do not process assigns piecemeal if if stmt
	has volatile ops.

2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>

	* doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.

2010-02-07  Adam Nemet  <adambnmet@gmail.com>

	* config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
	before the pattern.

2010-02-07  Andrew Pinski  <pinskia@gmail.com>

	PR middle-end/42946
	* df-core.c (df_finish_pass): Change type of saved_flags to int.

2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42988
	* graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
	to unknown_dependence.
	(graphite_legal_transform_dr): Handle the unknown_dependence.
	(graphite_carried_dependence_level_k): Same.

2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>

	* ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.

2010-02-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42991
	* expr.c (get_inner_reference): Always initialize *pbitsize.

2010-02-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42956
	* gimplify.c (gimple_fold_indirect_ref): Avoid generating
	new ARRAY_REFs on variable size element or minimal index arrays.
	Complete.
	* tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
	gimple_fold_indirect_ref.

2010-02-06  Richard Earnshaw  <rearnsha@arm.com>

	PR target/42957
	* arm.c (arm_override_options): Just return if the user has specified
	an invalid fpu name.

2010-02-03  Jason Merrill  <jason@redhat.com>

	PR c++/42870
	* config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
	i386_pe_maybe_record_exported_symbol.

2010-02-05  Steve Ellcey  <sje@cup.hp.com>

	PR target/42924
	* config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
	(pa_delegitimize_address): New function.

2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>

	* config/i386/msformat-c.c (ms_printf_length_specs): Set the
	scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.

2010-02-05  Richard Guenther  <rguenther@suse.de>

	PR lto/42762
	* lto-streamer-in.c (get_resolution): Deal with references
	to undefined functions.

2010-02-05  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
	(fold_const_aggregate_ref): Likewise.
	(ccp_fold_stmt): Substitute loads.
	(maybe_fold_reference): Verify types before substituting.
	Unshare properly.
	(fold_gimple_assign): Unshare properly.
	(fold_stmt_1): Insert conversion if necessary before replacing the RHS.

2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_override_options): Invert check
	for rs6000_gen_cell_microcode.

2010-02-04  Richard Guenther  <rguenther@suse.de>

	PR rtl-optimization/42952
	* dse.c (const_or_frame_p): Remove MEM handling.

2010-02-04  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
	(function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
	(mn10300_asm_output_mi_thunk): New function.
	(mn10300_can_output_mu_thunk): New function.
	* config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
	(FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
	(FUNCTION_ARG): Delete incorrect comment.

2010-02-03  Jason Merrill  <jason@redhat.com>

	PR c++/40138
	* fold-const.c (operand_equal_p): Handle erroneous types.

2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>

	* config/h8300/h8300.md (can_delay): Fix attibute condition.

2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/42941
	* sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
	of xmalloc.

2010-02-03  Jason Merrill  <jason@redhat.com>

	PR c++/35652
	* builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.

2010-02-03  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/42896
	* cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
	(cselib_reset_table): Renamed from...
	(cselib_reset_table_with_next_value): ... this.
	(cselib_get_next_uid): Renamed from...
	(cselib_get_next_unknown_value): ... this.
	* cselib.c (next_uid): Renamed from...
	(next_unknown_value): ... this.
	(cselib_clear_table): Adjust.
	(cselib_reset_table): Adjust.  Renamed from...
	(cselib_reset_table_with_next_value): ... this.
	(cselib_get_next_uid): Adjust.  Renamed from...
	(cselib_get_next_unknown_value): ... this.
	(get_value_hash): Use hash.
	(cselib_hash_rtx): Likewise.
	(new_cselib_val): Adjust.  Set and dump uid.
	(cselib_lookup_mem): Pass next_uid as hash.
	(cselib_subst_to_values): Likewise.
	(cselib_log_lookup): Dump uid.
	(cselib_lookup): Pass next_uid as hash.  Adjust.
	(cselib_process_insn): Adjust.
	(cselib_init): Initialize next_uid.
	(cselib_finish): Adjust.
	(dump_cselib_table): Likewise.
	* dse.c (canon_address): Dump value uid.
	* print-rtl.c (print_rtx): Print value uid.
	* var-tracking.c (VARIABLE_HASH_VAL): Dropped.
	(dvuid): New type.
	(dv_uid): New function, sort of renamed from...
	(dv_htab_hash): ... this, reimplemented in terms of it and...
	(dv_uid2hash): ... this.  New.
	(variable_htab_eq): Drop excess assertions.
	(tie_break_pointers): Removed.
	(canon_value_cmp): Compare uids.
	(variable_post_merge_New_vals): Print uids.
	(vt_add_function_parameters): Adjust.
	(vt_initialize): Reset table.  Adjust.

2010-02-03  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42944
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
	(call_may_clobber_ref_p_1): Likewise.  Properly handle
	malloc and calloc clobbering errno.

2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>

	* doc/invoke.texi: Fix name of sched1 dump.

	* opts.c (decode_options): Set flag_tree_switch_conversion
	only conditionally on optimize >= 2.

	* gcse.c: Assorted comment fixes in pass description.

2010-02-03  Anthony Green  <green@moxielogic.com>

	* config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
	nop padding in order to maintain alignment of storage location of
	target function address.
	(moxie_trampoline_init): Store target function address at newly
	aligned location.
	* config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
	to 32.
	(TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.

2010-02-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42927
	* tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.

2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc: Reenable check for obsolete targets.
	Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
	mips-sgi-irix6.[0-4]*.

2010-02-02  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
	constant size of 4 as being the same as 0.
	* doc/invoke.texi (RX Options): Document that -mmax-constant-size
	can take values in the range 0..4.

2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR java/41991
	* unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
	as _darwin10_Unwind_FindEnclosingFunction().
	* libgcc-libsystem.ver: New.

2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/41399
	* sched-deps.c (sched_analyze_insn): Ignore fixed registers for
	implicitly set registers.

2010-02-01  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
	(arm_override_options): Allow automatic selection of the thread
	pointer register if thumb2.
	(legitimize_pic_address): Improve code sequences for Thumb2.
	(arm_call_tls_get_addr): Likewise.
	(legitimize_tls_address): Likewise.
	* arm.md (pic_load_addr_arm): Delete.  Replace with ...
	(pic_load_addr_32bit): ... this.  New named pattern.
	* thumb2.md (pic_load_addr_thumb2): Delete.
	(pic_load_dot_plus_four): Delete.
	(tls_load_dot_plus_four): New named pattern.

2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR libgomp/29986
	* doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
	Document fix for TLS bug.

2010-01-31  Richard Guenther  <rguenther@suse.de>

	* tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
	conservatively correct.

2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/42850
	Revert:
	2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.

2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* doc/install.texi: Update recommended GMP/MPFR/MPC versions.

2010-01-31  Kai Tietz  <kai.tietz@onevision.com>

	* config.gcc: Adjust order of makefile fragments for mingw targets.

2010-01-31  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42898
	* gimplify.c (gimplify_init_constructor): For volatile LHS
	initialize a temporary.

2010-01-31  Matthias Klose  <doko@ubuntu.com>

	* configure.ac: Fix __stack_chk_fail check for cross builds configured
	--with-headers
	* configure: Regenerate.

2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
	the same alias set and their sizes different constantness.
	(aliasing_component_refs_p): Revert 2009-10-24 change.

2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
	unused.

2010-01-29  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
	Assert we successfully updated the call.

2010-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/42889
	* df.h (df_set_bb_dirty_nonlr): New prototype.
	* df-core.c (df_set_bb_dirty_nonlr): New function.
	* df-scan.c (df_insn_rescan): Call it instead of
	df_set_bb_dirty for DEBUG_INSNs.

2010-01-29  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37448
	* ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
	quadratic behavior in most cases.

2010-01-28  Uros Bizjak  <ubizjak@gmail.com>

	PR target/42891
	* config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
	in the call to gen_x86_movsicc_0_m1.

2010-01-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42871
	* tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.

2010-01-28  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
	into call arguments.

2010-01-28  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42883
	* tree-cfgcleanup.c (remove_forwarder_block): Do not remove
	the forwarder if the destination is an EH landing pad.

2010-01-28  Razya Ladelsky  <razya@il.ibm.com>

	* tree-parloops.c (transform_to_exit_first_loop): Update the basic
	block list passed to gimple_duplicate_sese_tail.
	(parallelize_loops): Avoid parallelization when the function
	has_nonlocal_label.
	Avoid parallelization when the preheader is IRREDUCIBLE.
	Try to optimize when estimated_loop_iterations_int is unresolved.
	Add the loop's location to the dump file.
	* tree-cfg.c (add_phi_args_after_redirect): Remove.
	(gimple_duplicate_sese_tail): Remove the check for the latch.
	Redirect nexits to the exit block.
	Remove handling of the incoming edges to the latch.
	Redirect the backedge from the copied latch to the exit bb.

2010-01-28  Michael Matz  <matz@suse.de>

	PR target/42881
	* config/i386/i386.c (ix86_expand_vector_init_duplicate):
	Wrap force_reg into a sequence, emit it before user.

2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>

	* config/arm/arm.md (bswapsi2): Add support for bswapsi2.
	(arm_rev): New.
	(arm_legacy_rev): Likewise.
	(thumb_legacy_rev): Likewise.

2010-01-27  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (mem_loc_descriptor): Remove special casing of
	CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
	on MEM's address failed, try avoid_constant_pool_reference and
	recurse if it returned something different.
	(loc_descriptor): If for MEM mem_loc_descriptor failed on the
	address, try avoid_constant_pool_reference and recurse if it
	returned something different.
	(dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
	address and avoid_constant_pool_reference returned something
	different, don't set have_address.

2010-01-27  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/42861
	* var-tracking.c (val_store): Add modified argument, obey it.
	Adjust callers.
	(count_uses): Move down logging of main.
	(compute_bb_dataflow): Use val_store for MO_VAL_USEs that
	don't need resolution.
	(emit_notes_in_bb): Likewise.

2010-01-27  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42878
	* tree-inline.c (remap_decl): Delay remapping of SSA name
	default definitions until we need them.

2010-01-27  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
	(rs6000_delegitimize_address): New function.

	* config/s390/s390.c (s390_delegitimize_address): Call
	delegitimize_mem_from_attrs.

	PR middle-end/42874
	* tree-inline.c (cannot_copy_type_1): Removed.
	(copy_forbidden): Don't forbid copying of functions containing
	records/unions with variable length fields.

2010-01-27  Christian Bruel  <christian.bruel@st.com>

	Revert:
	PR target/42841
	* config/sh/sh.c (find_barrier): Increase length for non delayed
	conditional branches.

2010-01-27  Matthias Klose  <doko@ubuntu.com>

	* configure.ac (gnu-unique-object): Fix ldd version check.
	* configure: Regenerate.

2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
	HAVE_GNU_AS value.
	* config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
	Test for HAVE_GNU_AS value.

2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
	* config/mips/iris.h (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.
	(INTMAX_TYPE, UINTMAX_TYPE): Define.
	(INTPTR_TYPE, UINTPTR_TYPE): Define.
	(SIG_ATOMIC_TYPE): Define.

2010-01-26  Richard Guenther  <rguenther@suse.de>

	* df-scan.c (df_scan_set_bb_info): Remove assert.
	(df_insn_rescan_debug_internal): Merge asserts.
	(df_install_ref): Likewise.
	(df_mark_reg): Use bitmap_set_range.
	(df_hard_reg_used_p): Remove assert.
	(df_hard_reg_used_count): Likewise.

2010-01-26  Richard Guenther  <rguenther@suse.de>

	PR rtl-optimization/42685
	* web.c (web_main): Ignore DEBUG_INSNs.

2010-01-26  Joern Rennecke  <amylaar@spamcop.net>

	* doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.

	(TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
	Fix types of fndecl and arglist parameters.

2010-01-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42806
	* tree-eh.c (unsplit_eh): Skip debug insns.

2010-01-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42250
	* ipa-type-escape.c (type_escape_execute): Do not analyze clones.

2010-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/42866
	* omp-low.c (expand_omp_sections): Only use single_pred if
	l2_bb is single_pred_p.

2010-01-25  Christian Bruel  <christian.bruel@st.com>

	PR target/42841
	* config/sh/sh.c (find_barrier): Increase length for non delayed
	conditional branches.
	(sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.

2010-01-24  David S. Miller  <davem@davemloft.net>

	* config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
	define if not using GAS.
	* config/sparc/sparc.c (sparc_elf_asm_named_section):
	Likewise.  Delete SECTION_MERGE code, which is only applicable
	when using GAS.

2010-01-24  Mark Mitchell  <mark@codesourcery.com>

	PR c++/42748
	* config/arm/arm.c (arm_mangle_type): Do not warn about changes to
	mangling of va_list in system headers.

2010-01-23  Toon Moene  <toon@moene.org>

	* tree-predcom.c (combine_chains): Return NULL, not false.

2010-01-23  Joern Rennecke  <amylaar@spamcop.net>

	* tree-loop-distribution.c (distribute_loop): Fix declaration and
	initialization of variable res to agree with return type.

2010-01-22  Steve Ellcey  <sje@cup.hp.com>

	* Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
	* tree-sra.c: Add include of expr.h.

2010-01-22  Jakub Jelinek  <jakub@redhat.com>

	* tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
	insert the debug stmt on the single non-EH edge from the stmt.

2010-01-22  Richard Henderson  <rth@redhat.com>

	PR tree-opt/42833
	* tree-sra.c (sra_modify_assign): Delay re-gimplification of
	the RHS until after generate_subtree_copies has insertted its
	code before the current statement.

2010-01-22  Joern Rennecke  <amylaar@spamcop.net>

	* doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.

	* gcc-plugin.h (plugin_init): Use "C" likage for c++.

2010-01-21  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/42585
	* tree-sra.c (struct access): New field grp_total_scalarization.
	(dump_access): Dump the new field.
	(should_scalarize_away_bitmap): New variable.
	(cannot_scalarize_away_bitmap): Likewise.
	(sra_initialize): Allocate new bitmaps.
	(sra_deinitialize): Free new bitmaps.
	(create_access_1): New function.
	(create_access): Parts moved to create_access_1.
	(type_consists_of_records_p): New function.
	(completely_scalarize_record): Likewise.
	(build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
	(build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
	(sort_and_splice_var_accesses): Hint groups with a total_scalarization
	access.
	(analyze_all_variable_accesses): Completely scalarize small eligible
	records.

2010-01-21  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.

2010-01-21  Andrew Haley  <aph@redhat.com>

	* gcc.c (process_command): Move lang_specific_driver before
	setting cc_libexec_prefix.

2010-01-21  Richard Guenther  <rguenther@suse.de>

	PR middle-end/19988
	* fold-const.c (negate_expr_p): Pretend only negative
	real constants are easily negatable.

2010-01-20  Janis Johnson  <janis187@us.ibm.com>
	    Jason Merrill  <jason@redhat.com>

	* tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
	(TYPE_TRANSPARENT_AGGR): this, for union and record.
	* calls.c (initialize argument_information): Handle it.
	* c-common.c (handle_transparent_union_attribute): Use new name.
	* c-decl.c (finish_struct): Ditto.
	* c-typeck.c (type_lists_compatible_p): Ditto.
	(convert_for_assignment): Use new name and also handle record.
	* function.c (aggregate_value_p): Handle it.
	(pass_by_reference): Ditto.
	(assign_parm_data_types): Ditto.
	* print-tree.c (print_node): Ditto.
	* lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
	* lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
	* tree.c (first_field): New fn.

2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR target/42818
	* config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
	even when linking statically, for now.

2010-01-20  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/42715
	* var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
	without a cselib val.
	(count_uses): Accept MO_VAL_SET with no val on stores.
	(add_stores): Likewise.

2010-01-20  Jakub Jelinek  <jakub@redhat.com>

	* var-tracking.c (check_value_val): Add a compile time assertion.
	(dv_is_decl_p): Simplify.
	(dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
	gcc_assert if ENABLE_CHECKING.

2010-01-20  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/42782
	* var-tracking.c: Include tree-flow.h.
	(mem_dies_at_call): New.
	(dataflow_set_preserve_mem_locs): Use it.
	(dataflow_set_remove_mem_locs): Likewise.
	(dump_var): Renamed from dump_variable.  Adjust all callers.
	(dump_var_slot): Renamed from dump_variable_slot.  Likewise.
	* Makefile.in (var-tracking.o): Adjust deps.

2010-01-20  Joern Rennecke  <amylaar@spamcop.net>

	* doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.

2010-01-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42717
	* tree-ssa-dce.c (get_live_post_dom): Remove.
	(forward_edge_to_pdom): Take an arbitrary edge to copy
	degenerate PHI args from.
	(remove_dead_stmt): Use the first post-dominator even if it
	does not contain live statements as redirection destination.

2010-01-20  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (estimate_num_insns): Handle EH builtins.

2010-01-20  Jakub Jelinek  <jakub@redhat.com>

	* sel-sched.c (create_speculation_check): Remove set but not used
	variable twin.
	(try_transformation_cache): Remove set but not used variable ds.
	(calculate_privileged_insns): Remove set but not used variables
	cur_insn and min_spec_insn.
	(find_best_expr): Remove set but not used variable avail_n.
	* tree-predcom.c (base_names_in_chain_on): Remove set but not used
	variable e.
	* cgraphunit.c (assemble_thunk): Remove set but not used variable
	false_label.
	* haifa-sched.c (remove_notes): Remove set but not used variable prev.
	* graphite-clast-to-gimple.c (gloog): Remove set but not used variable
	new_scop_exit_edge.

2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>

	PR bootstrap/42786
	* config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
	cpu types.  Add support for *-sse3 cpu types.
	(x86_64-*-*): Ditto.

2010-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/42803
	* varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
	argument, call initializer_constant_valid_p_1 instead of
	initializer_constant_valid_p, pass CACHE to it, return NULL
	immediately if first call returns NULL.
	(initializer_constant_valid_p_1): New function.
	(initializer_constant_valid_p): Use it.

2010-01-20  Thomas Quinot  <quinot@adacore.com>

	* tree.def (PLACEHOLDER_EXPR): Fix comment.

2010-01-20  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
	of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
	(loc_list_from_tree): Don't handle unsigned division.  Handle
	signed modulo using DW_OP_{over,over,div,mul,minus}.
	* unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
	modulo instead of signed.

2010-01-20  DJ Delorie  <dj@redhat.com>

	* config/h8300/h8300.c (F): Add "in_epilogue" flag.
	(Fpa): Pass it
	(h8300_emit_stack_adjustment): Propogate it.
	(push): Pass it.
	(h8300_expand_prologue): Likewise.
	(h8300_expand_epilogue): Likewise.

2010-01-19  Michael Matz  <matz@suse.de>

	PR tree-optimization/41783
	* tree-data-ref.c (toplevel): Include flags.h.
	(dump_data_dependence_relation):  Also dump the inputs if the
	result will be unknown.
	(split_constant_offset_1): Look through some conversions.
	* tree-predcom.c (determine_roots_comp): Restart a new chain if
	the offset from last element is too large.
	(ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
	(reassociate_to_the_same_stmt): Handle vector registers.
	* tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
	(e.g. conversions).
	* tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
	wide_prolog_niters argument, emit widening instructions.
	(vect_do_peeling_for_alignment): Adjust caller, use widened
	variant of the iteration cound.
	* Makefile.in (tree-data-ref.o): Add $(FLAGS_H).

2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/38697
	* config/arm/neon-testgen.m (emit_automatics): New parameter
	features. Adjust for Fixed_return_reg feature.
	(test_intrinsic): Call emit_automatics with new feature.
	* config/arm/neon.ml: Update copyright years.
	(features): New Fixed_return_reg feature.
	(ops): Update feature for Vget_low.

2010-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/42719
	* tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
	stmt uses.

	PR debug/42728
	* fwprop.c (all_uses_available_at): Return false if def_set dest
	is a REG that is used in def_insn.

2010-01-19  Joern Rennecke  <amylaar@spamcop.net>

	* doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.

	(TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
	Add argument names.

	(TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.

	* target.h (struct gcc_target) <secondary_reload>: Change type
	of last argument to secondary_reload_info *.

2010-01-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/42774
	* config/alpha/predicates.md (aligned_memory_operand): Return 0 for
	memory references with unaligned offsets.  Remove CQImode handling.
	(unaligned_memory_operand): Return 1 for memory references with
	unaligned offsets.  Remove CQImode handling.

2010-01-18  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39954
	* cfgexpand.c (expand_call_stmt): TER pointer arguments in
	builtin calls.

2010-01-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42781
	* tree-ssa-structalias.c (find_what_var_points_to): Skip
	restrict processing only if the original variable was artificial.

2010-01-18  Joern Rennecke  <amylaar@spamcop.net>

	* doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
	find number of popped argument bytes.

	(TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
	Fix the text that describes the return value for invalid insns.

	(TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.

	(TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
	Clarify what 'cost of the -dependence' is.  Fix quoting.

	* toplev.c (default_get_pch_validity): Rename argument to "sz".
	* doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.

2010-01-17  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (mem_loc_descriptor): Don't ICE on
	{S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.

2010-01-17  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42248
	* function.c (split_complex_args): Take a VEC to modify.
	(assign_parms_augmented_arg_list): Build a VEC instead of
	a chain of PARM_DECLs.
	(assign_parms_unsplit_complex): Take a VEC of arguments.
	Do not fixup unmodified parms.
	(assign_parms): Deal with the VEC.
	(gimplify_parameters): Likewise.

2010-01-17  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
	node existence check.
	* tree-vect-loop.c (vect_analyze_loop_form): Likewise.
	* tree-cfgcleanup.c (merge_phi_nodes): Likewise.
	* tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
	* tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
	(gimple_execute_on_growing_pred): Likewise.

2010-01-17  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42773
	* tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
	(compute_antic_aux): Likewise.
	(compute_partial_antic_aux): Likewise.

2010-01-17  Jie Zhang  <jie.zhang@analog.com>

	PR debug/42767
	* dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
	and US_TRUNCATE.

2010-01-17  Joern Rennecke  <amylaar@spamcop.net>

	* doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
	appearance.

	(TARGET_LEGITIMATE_ADDRESS_P): Add return type.
	Fix markup for strict argument.

	(TARGET_SCHED_REORDER2): Fix argument types.

	(TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
	(TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.

	(TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
	(TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.

	(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
	Add argument name.

	(TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
	(TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
	(TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
	(TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
	(TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.

	(TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.

	(TARGET_SCHED_GEN_SPEC_CHECK): Fix name.

	(TARGET_ASM_RELOC_RW_MASK): Add return type.
	(TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.

	(TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.

	(TARGET_ASM_FILE_START): Put @findex before paragraph start.
	Use prototype.

	(TARGET_ASM_NAMED_SECTION): Fix argument list.

	(TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
	(TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.

	(TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.

	(TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.

	(TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
	referring to it.  Fix language.

	(TARGET_HAVE_CTORS_DTORS): Use @deftypevr.

	(TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.

	(TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.

	(TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.

	(TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
	'@var{stream}.  Remove stray 'and'.

	(TARGET_ARM_EABI_UNWINDER): Use @deftypevr.

	(TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.

	(TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.

	(TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
	misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.

	(TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
	Fix description of return value.
	Rename argument "sz" to "len."

	(TARGET_CXX_GUARD_MASK_BIT): Add missing article.
	Clarify meaning of 'true' return value.

	(TARGET_SHIFT_TRUNCATION_MASK): Fix return type.

	(TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
	rep_mode versus mode_rep.

	(TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.

	(TARGET_BUILTIN_DECL): Fix name.

	(TARGET_COMMUTATIVE_P): Fix type of first argument.

	(TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.

	(TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.

	(TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.

	(TARGET_RELAXED_ORDERING): Use @deftypevr.

	(TARGET_GET_DRAP_RTX): Note that this is a hook.
	Clarify language.

	(TARGET_BUILTIN_RECIPROCAL): Fix argument types.
	Rename argument tm_fn to md_fn.

	(TARGET_OPTION_PRINT): Fix argument list.

2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>

	PR target/42664
	* config/i386/i386.c (ix86_fixup_binary_operands):
	Revert FMA4 fixup of operands.

2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR other/42525
	* Makefile.in (write_entries_to_file, install-plugin):
	Use \012 instead of \n with tr.

2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* configure.ac (HAVE_AS_REF): New C macro.
	* configure: Regenerate.
	* config.in: Likewise.
	* collect2.c (main): Only postpone SCAN_DWEH to the second pass
	if HAVE_AS_REF.
	* config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
	if HAVE_AS_REF.

2010-01-16  Joern Rennecke  <amylaar@spamcop.net>

	* doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.

	(TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.

	(TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.

	(TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.

	(TARGET_IN_SMALL_DATA_P): Fix argument type.

	(TARGET_BINDS_LOCAL_P): Fix argument type.

	(TARGET_ASM_FILE_END): Use prototype.

	(TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.

	(TARGET_DWARF_CALLING_CONVENTION): Fix argument type.

	(TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.

	(TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.

	(TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
	(TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.

	(TARGET_PCH_VALID_P): Put 'const char *' in braces.
	(TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.

	(TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
	(TARGET_ADDR_SPACE_SUBSET_P): Likewise.
	(TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
	(TARGET_ADDR_SPACE_CONVERT): Likewise.

	(TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.

	(TARGET_MACHINE_DEPENDENT_REORG: Use prototype.

	(TARGET_INIT_BUILTINS): Use prototype.

	(TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
	Put 'const char *' in braces.  Fix parameter types.
	(TARGET_INVALID_CONVERSION): Fix parameter types.
	(TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
	(TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.

	(TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
	Fix argument type.

	(TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.

	(TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.

2010-01-15  Joern Rennecke  <amylaar@spamcop.net>

	* doc/tm.texi (TARGET_HELP): Fix return type.

	(TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
	in braces.  Fix argument types.

	(TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.

	(TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.

	(TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.

	(TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
	(TARGET_FIXED_POINT_SUPPORTED_P): Likewise.

	(TARGET_MANGLE_TYPE): Fix argument types.

	(TARGET_IRA_COVER_CLASSES): Use prototype.

	(TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.

	(TARGET_CAN_ELIMINATE): Use identifiers for argument names.

	(TARGET_PROMOTE_PROTOTYPES): Fix argument type.

	(TARGET_MUST_PASS_IN_STACK): Fix argument type.

	(TARGET_CALLEE_COPIES): Fix argument types.

	(TARGET_SPLIT_COMPLEX_ARG): Fix argument type.

	(TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.

	(TARGET_FUNCTION_VALUE): Fix argument types.

	(TARGET_RETURN_IN_MSB): Fix argument type.

	(TARGET_RETURN_IN_MEMORY): Fix argument types.

	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.

	(TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.

	(TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
	agree with return type.

	(TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.

2010-01-15  Jing Yu  <jingyu@google.com>

	PR rtl-optimization/42691
	* combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
	a pseudo to a constant and are merged, and adjust comments.

2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.

2010-01-15  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42739
	* tree-cfgcleanup.c (remove_forwarder_block): Move destination
	labels of computed or non-local gotos to the destination.
	* tree-cfg.c (gimple_verify_flow_info): Verify that a EH
	landing pad label is the first label.

2010-01-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.

2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/42747
	* config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
	to allow generation of the xssqrtdp instruction on power7.
	(sqrtdf2_fpr): Ditto.

2010-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/42674
	* c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
	functions with noreturn attribute.

	PR c++/42608
	* varasm.c (declare_weak): Add weak attribute to decl if it
	doesn't have one already.
	(assemble_external): Only add decls to weak_decls if they also
	have weak attribute.

2010-01-14  Alexandre Oliva  <aoliva@redhat.com>

	* var-tracking.c (var_reg_delete): Don't delete the association
	between REGs and values or one-part variables if the register
	isn't clobbered.

2010-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR debug/42657
	* tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
	because its first operand is a non-localized variable.

2010-01-14  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/42706
	* tree-sra.c (encountered_recursive_call): New variable.
	(encountered_unchangable_recursive_call): Likewise.
	(sra_initialize): Initialize both new variables.
	(callsite_has_enough_arguments_p): New function.
	(scan_function): Call decl and flags check only for IPA-SRA, check
	whether there is a recursive call and whether it has enough arguments.
	(all_callers_have_enough_arguments_p): New function.
	(convert_callers): Look for recursive calls only when
	encountered_recursive_call is set.
	(ipa_early_sra): Bail out either if
	!all_callers_have_enough_arguments_p or
	encountered_unchangable_recursive_call.

2010-01-14  Alexander Monakov  <amonakov@ispras.ru>

	* sel-sched.c: Add 2010 to copyright years.
	* sel-sched-ir.c: Likewise.
	* sel-sched-ir.h: Likewise.

2010-01-14  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/42714
	* tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
	constructors specially.

2010-01-14  Andi Kleen  <ak@linux.intel.com>

	* config/i386/drivers-i386.c (detect_caches_intel):
	Add l2sizekb parameter and fill in.
	(host_detect_local_cpu): Add l2sizekb, fill in.
	Add Atom small cache heuristic.

2010-01-14  Andi Kleen  <ak@linux.intel.com>

	* config/i386/drivers-i386.c (detect_caches_cpuid4):
	Add level3 parameter and fill in.
	(detect_caches_intel): Handle level3 cache.

2010-01-14  Andi Kleen  <ak@linux.intel.com>

	* config/i386/drivers-i386.c (host_detect_local_cpu):
	Fix core duo detection.

2010-01-14  Andi Kleen  <ak@linux.intel.com>

	* config/i386/drivers-i386.c (host_detect_local_cpu):
	Fix Atom detection.

2010-01-14  Alexander Monakov  <amonakov@ispras.ru>

	* config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
	(rs6000_variable_issue_1): this.  Use...
	(rs6000_variable_issue): here.  Reimplement.  Print debug info.

2010-01-14  Alexander Monakov  <amonakov@ispras.ru>

	* sel-sched-ir.c (sel_restore_other_notes): Rename to
	sel_restore_notes.  Update all callers.  Call reemit_notes
	for all insns.

2010-01-14  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/42246
	* sel-sched-ir.h (get_all_loop_exits): Include exits from inner
	loops.

2010-01-14  Andrey Belevantsev  <abel@ispras.ru>

	* sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
	all successors is the same as number of successors in current region.

2010-01-14  Alexander Monakov  <amonakov@ispras.ru>

	* sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
	to rename is not separable.  Otherwise check that its LHS is not NULL.

2010-01-14  Alexander Monakov  <amonakov@ispras.ru>

	* sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.

2010-01-14  Alexander Monakov  <amonakov@ispras.ru>

	* sel-sched.c (mark_unavailable_hard_regs): Do not try to search
	available registers when failed to discover LHS register class.
	Fix indentation.  Update comment.

2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
	    Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/42389
	* sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
	to can_issue_more.
	(advance_state_on_fence): Likewise.
	(sel_target_adjust_priority): Print debug output only when
	sched_verbose >= 4, not 2.
	(get_expr_cost): Do not issue all unique insns on the next cycle.
	(fill_insns): Initialize can_issue_more from the value saved
	with the fence.
	* sel-sched-ir.c (flist_add): New parameter issue_more.
	Init FENCE_ISSUE_MORE with it.
	(merge_fences): Likewise.
	(init_fences): Update call to flist_add.
	(add_to_fences, add_clean_fence_to_fences)
	(add_dirty_fence_to_fences): Likewise.
	(move_fence_to_fences): Update call to merge_fences.
	(invoke_reorder_hooks): Do not reset can_issue_more on insns from
	sched groups.
	* sel-sched-ir.h (struct _fence): New field issue_more.
	(FENCE_ISSUE_MORE): New accessor macro.

2010-01-14  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/42388
	* sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
	that have no predecessors nor successors.  Do not call move_bb_info
	for empty blocks outside of current region.

2010-01-14  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/42294
	* sel-sched-ir.h (struct _sel_insn_data): Update comment.
	* sel-sched.c (move_exprs_to_boundary): Transitively add all
	originators' originators.

2010-01-14  Alexander Monakov  <amonakov@ispras.ru>

	PR rtl-optimization/39453
	PR rtl-optimization/42246
	* sel-sched-ir.c (considered_for_pipelining_p): Do not test
	for pipelining_p.
	(sel_add_loop_preheaders): Add preheader to last_added_blocks.

2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
	    Alexander Monakov  <amonakov@ispras.ru>

	PR middle-end/42245
	* sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
	(maybe_tidy_empty_bb): ... here.  Make static.  Add new
	argument.  Update all callers.
	(tidy_control_flow): ... and here.  Recompute topological order
	of basic blocks in region if necessary.
	(sel_redirect_edge_and_branch): Change return type.  Return true
	if topological order might have been invalidated.
	(purge_empty_blocks): Export and move from...
	* sel-sched.c (purge_empty_blocks): ... here.
	* sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
	(maybe_tidy_empty_bb): Delete prototype.
	(purge_empty_blocks): Declare.

2010-01-14  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/42249
	* sel-sched.c (try_replace_dest_reg): When chosen register
	and original register is the same, do not bail out early, but
	still check all original insns for validity of replacing destination
	register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
	in this case.

2010-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR c/42721
	Port from no-undefined-overflow branch:
	2009-03-09  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (add_double_with_sign): Fix unsigned overflow detection.

2010-01-14  Richard Guenther  <rguenther@suse.de>

	PR lto/42665
	* gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.

2010-01-14  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/42709
	* tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
	as scalar type in creation of constant vector operand.

2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR testsuite/42414
	* Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
	(check-parallel-%): Match `testsuite' directory component only
	at the end.

2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>

	PR translation/39521
	* gcc.c (do_spec_1): Wrapped the error and notice messages of specs
	strings with _().

2010-01-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42730
	* tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
	offset zero.

2010-01-13  Steve Ellcey  <sje@cup.hp.com>

	PR target/pr42542
	* config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
	for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
	them signed.

2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/libgcc-bfin.ver: Regenerate based on current
	libgcc-std.ver.  Add entries for ___smulsi3_highpart and
	___umulsi3_highpart.

	* config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
	rather than schedule_insns if the pass is enabled.

2010-01-13  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/42704
	* tree-sra.c (sra_modify_assign): Do not delete assignments to
	SSA_NAMEs.

2010-01-13  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/42703
	* tree-sra.c (analyze_access_subtree): Check that we can build a
	reference to the original data within the aggregate.

2010-01-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42705
	* tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.

2010-01-13  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42716
	* fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.

2010-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR debug/41371
	* var-tracking.c (values_to_unmark): New variable.
	(find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
	values_to_unmark vector.  Moved body to...
	(find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
	instead queue it into values_to_unmark vector.
	(vt_find_locations): Free values_to_unmark vector.

2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* config/s390/s390.c (override_options): Set
	default of max-pending-list-length to 256

2010-01-13  Richard Guenther  <rguenther@suse.de>

	PR lto/42678
	* tree-pass.h (PROP_gimple_lcx): New.
	* cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
	* passes.c (init_optimization_passes): Move pass_lower_complex_O0
	before the final cleanup_eh.
	(dump_properties): Dump PROP_gimple_lcx.
	* tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
	(tree_lower_complex_O0): Remove.
	(gate_no_optimization): Run if PROP_gimple_lcx is not set.
	(pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
	tree_lower_complex, schedule TODO_update_ssa.
	* lto-streamer-out.c (output_function): Stream the functions
	properties.
	* lto-streamer-in.c (input_function): Likewise.
	(lto_read_body): Do not override them here.

2010-01-12  Joseph Myers  <joseph@codesourcery.com>

	PR c/42708
	* c-typeck.c (build_c_cast): Fold value cast to union type before
	wrapping it in a CONSTRUCTOR.

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

	PR rtl-optimization/42699
	* cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
	involved.

2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
	SUBTARGET_WARN_UNUSED_SPEC): Move ...
	config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
	SUBTARGET_WARN_UNUSED_SPEC): ... here
	* config/mips/iris5.h (LIBGCC_SPEC): Define.

2010-01-12  Julian Brown  <julian@codesourcery.com>

	* config/arm/neon-schedgen.ml (Utils): Don't try to
	open missing module.
	(find_with_result): New.

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

	PR debug/42662
	* simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
	sharing when canonicalizing ({lt,ge}u (plus a b) b).

	PR tree-optimization/42645
	* tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
	(remap_ssa_name): If processing_debug_stmt and name wasn't found in
	decl_map, set processing_debug_stmt to -1 and return name without
	any remapping.

2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>

	* doc/install.texi (Specific#x-x-cygwin): Document minimum required
	binutils version, and reword target configuration description.

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

	* config/avr/avr.h (LINKER_NAME): Remove.

2010-01-11  Janis Johnson  <janis187@us.ibm.com>

	PR target/42416
	* config/rs6000/rs6000.c (rs6000_override_options): On targets
	that support VSX, warn for -mno-altivec if vsx is not disabled,
	and disable vsx.

2010-01-11  Joseph Myers  <joseph@codesourcery.com>
	    Shujing Zhao  <pearly.zhao@oracle.com>

	PR translation/42469
	* common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
	fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
	character between option name and help text.
	* c.opt (imultilib): Likewise.

2010-01-10  Rafael Avila de Espindola  <espindola@google.com>

	* lto-streamer-out.c (output_unreferenced_globals): Output static
	variables.

2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/42621
	* bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
	optimizing for size.
	(duplicate_computed_gotos): Remove now-redundant check.

2010-01-10  Steve Ellcey  <sje@cup.hp.com>

	PR target/37454
	* configure.ac: Save and restore LDFLAGS and LIBS
	* configure: Regenerate.

2010-01-10  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42667
	* builtins.c (fold_builtin_strlen): Add type argument and
	convert the resulting length to it.
	(fold_builtin_1): Adjust.

2010-01-09  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
	sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
	1 insn.
	(num_insns_constant_wide): Adjust for that change.

2010-01-09  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/42631
	* web.c (union_defs): Add used argument, to combine uses of
	uninitialized regs.
	(entry_register): Adjust type and tests of used argument.
	(web_main): Widen used for new use.  Pass it to union_defs.
	* df.h (union_defs): Adjust prototype.

2010-01-09  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/42630
	* loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
	uses in new incoming argument.  Free body.
	(reset_debug_uses_in_loop): New.
	(analyze_insn_to_expand_var): Call the latter if the former found
	anything.  Fix whitespace.  Reject invalid dest overlaps before
	going through all insns in the loop.

2010-01-09  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/42629
	* haifa-sched.c (dying_use_p): Debug insns don't count.

2010-01-09  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/42363
	* gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
	* tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
	(verify_gimple_call): Reject LHS in noreturn calls.

2010-01-09  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/42604
	PR debug/42395
	* tree-vect-loop-manip.c (adjust_info): New type.
	(adjust_vec): New pointer to vector.
	(adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
	(adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
	(slpeel_update_phis_for_duplicate_loop): Use them.
	(slpeel_update_phi_nodes_for_guard1): Likewise.
	(slpeel_update_phi_nodes_for_guard2): Likewise.
	(slpeel_tree_peel_loop_to_edge): Likewise.
	(vect_update_ivs_after_vectorizer): Likewise.

2010-01-09  Alexandre Oliva  <aoliva@redhat.com>

	* vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
	(DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.

2010-01-09  Alexandre Oliva  <aoliva@redhat.com>

	* config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
	bogus uninitialized warning.

2010-01-09  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42512
	* tree-scalar-evolution.c (interpret_loop_phi): Make sure
	the evolution is compatible with the initial condition.

2010-01-09  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.

2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>

	PR target/41885
	* config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
	(rotlhi3): Delete.
	(rotlhi3_8): Delete.
	(rotlsi3): Delete.
	(rotlsi3_8): Delete.
	(rotlsi3_16): Delete.
	(rotlsi3_24): Delete.
	(rotl<mode>3): New.
	(*rotw<mode>3): New.
	(*rotb<mode>3): New.
	* config/avr/avr.c (avr_rotate_bytes): New function.
	* config/avr/avr-proto.h (avr_rotate_bytes): New function.

2010-01-08  Steve Ellcey  <sje@cup.hp.com>

	PR target/37454
	* configure.ac: Modify -rdynamic check.
	* configure: Regenerate.

2010-01-08  DJ Delorie  <dj@redhat.com>

	* config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
	register popping order.

2010-01-08  Richard Guenther  <rguenther@suse.de>

	PR lto/42528
	* c.opt (fsigned-char): Also let LTO handle this option.
	(funsigned-char): Likewise.

2010-01-07  Richard Guenther  <rguenther@suse.de>

	* gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
	(gimple_op): Likewise.
	(gimple_op_ptr): Likewise.
	(gimple_assign_set_lhs): Remove gcc_assert.
	(gimple_assign_set_rhs1): Likewise.
	(gimple_assign_set_rhs2): Likewise.
	(gimple_call_set_lhs): Likewise.
	(gimple_call_set_fn): Likewise.
	(gimple_call_set_fndecl): Likewise.
	(gimple_call_fndecl): Likewise.
	(gimple_call_return_type): Likewise.
	(gimple_call_set_chain): Likewise.
	(gimple_call_num_args): Likewise.
	(gimple_call_set_arg): Likewise.
	(gimple_cond_set_code): Likewise.
	(gimple_cond_set_lhs): Likewise.
	(gimple_cond_set_rhs): Likewise.
	(gimple_cond_set_true_label): Likewise.
	(gimple_cond_set_false_label): Likewise.
	(gimple_label_set_label): Likewise.
	(gimple_goto_set_dest): Likewise.
	(gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
	(gimple_debug_bind_get_value): Likewise.
	(gimple_debug_bind_get_value_ptr): Likewise.
	(gimple_debug_bind_set_var): Likewise.
	(gimple_debug_bind_set_value): Likewise.
	(gimple_debug_bind_reset_value): Likewise.
	(gimple_debug_bind_has_value_p): Likewise.
	(gimple_return_retval_ptr): Remove gcc_assert.
	(gimple_return_retval): Likewise.
	(gimple_return_set_retval): Likewise.
	* tree-flow.h (struct gimple_df): Remove nonlocal_all member.
	(safe_referenced_var_iterator): Remove.
	(FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
	* tree-flow-inline.h (gimple_nonlocal_all): Remove.
	(fill_referenced_var_vec): Remove.
	(first_readonly_imm_use): Remove redundant gcc_assert.
	(phi_arg_index_from_use): Combine gcc_asserts.
	(move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
	(first_imm_use_stmt): Remove redundant gcc_assert.
	* tree-cfg.c (verify_gimple_call): Verify function and chain
	operands.  Verify arguments.
	(verify_types_in_gimple_stmt): Verify condition code and labels.

2010-01-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42641
	* sese.c (rename_map_elt_info): Use the SSA name version, do
	not hash pointers.

2010-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/42625
	* cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
	TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.

2010-01-07  Duncan Sands  <baldrick@free.fr>

	* Makefile.in (PLUGIN_HEADERS): Add version.h.

2010-01-07  Uros Bizjak  <ubizjak@gmail.com>

	PR target/42511
	* ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
	note itself is not function_invariant_p.

2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>

	* gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
	Do not add the DF_NOTE problem.
	* store-motion.c (execute_rtl_store_motion): Likewise.

2010-01-07  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/42157
	* tree-sra.c (compare_access_positions): Stabilize sort if both
	accesses have integer types, return zero immediately if they are the
	same.

2010-01-06  Richard Henderson  <rth@redhat.com>

	PR middle-end/41883
	* haifa-sched.c (add_to_note_list): Merge into ...
	(concat_note_lists): ... here, and ...
	(unlink_other_notes, rm_other_notes): Merge into...
	(remove_notes): ... here.  Create REG_SAVE_NOTEs for
	NOTE_INSN_EPILOGUE_BEG.

2010-01-06  Richard Guenther  <rguenther@suse.de>

	* ipa-inline.c (cgraph_decide_inlining_incrementally): Do
	not inline regular functions into always-inline functions.

2010-01-06  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.h (enum rx_cpu_type): Add RX200.
	(CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
	used together.
	(OVERRIDE_OPTIONS): Delete.
	(OPTIMIZATION_OPTIONS): Define.
	(ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
	* config/rx/rx.c (rx_handle_option): Issue an error message if
	-mcpu=rx200 and -fpu are used together.
	(rx_set_optimization_options): New function.  Issue an error
	message if an optimization attribute attempts to reset the FPU/
	math optimization pairing.
	* config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
	* config/rx/rx.opt: Set the default to 32-bit doubles.
	* config/rx/t-rx: Add multilibs for -nofpu option.
	* doc/invoke.texi: Update documentation of RX options.

2010-01-06  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (name_to_id): New global.
	(alloc_expression_id): Simplify SSA name handling.
	(lookup_expression_id): Likewise.
	(init_pre): Zero name_to_id.
	(fini_pre): Free it.

2010-01-06  Uros Bizjak  <ubizjak@gmail.com>

	* ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.

2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/42542
	* config/i386/sse.md (smaxv2di3): New.
	(umaxv2di3): Likewise.
	(sminv2di3): Likewise.
	(uminv2di3): Likewise.

2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/42564
	* config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
	* config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
	(legitimize_tls_address): Likewise.
	(sparc_tls_referenced_p): Likewise.
	* config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
	and adjust calls to legitimize_pic_address.
	(legitimate_constant_p) Use sparc_tls_referenced_p.
	(legitimate_pic_operand_p): Likewise.
	(sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
	(sparc_tls_symbol_ref_1): Delete.
	(sparc_tls_referenced_p): Make static, recognize specific patterns.
	(legitimize_tls_address): Make static, handle CONST patterns.
	(legitimize_pic_address): Make static, remove unused parameter and
	adjust recursive calls.
	(sparc_legitimize_address): Make static, use sparc_tls_referenced_p
	and adjust call to legitimize_pic_address.
	(sparc_output_mi_thunk): Likewise.

2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR target/42542
	* config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
	for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
	operands to make them signed.

	Revert:
	2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/42542
	* config/i386/i386.c (ix86_expand_int_vcond): Don't convert
	GTU to GT for V4SI and V2DI.

	* config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
	(umin<mode>3): Removed.
	(uminv8hi3): New.
	(uminv4si3): Likewise.

2010-01-05  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/42462
	* ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
	current_function_decl to helper functions and macros.

2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/41771
	* flags.h: Don't include real.h.
	(HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
	HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
	* real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
	HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
	* dominance.c: Update copyright.
	* gimple.c (walk_gimple_op): Remove inline.
	* tree-ssa-reassoc.c: Include real.h.
	* Makefile.in (FLAGS_H): Remove $(REAL_H).
	(tree-ssa-reassoc.o): Depend on $(REAL_H).

2010-01-05  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
	register to push into the stack frame when the accumulator has to
	be saved during interrupts.

2010-01-05  Eric Fisher  <joefoxreal@gmail.com>

	* doc/invoke.texi: Remove the documentation about option
	-Wunreachable-code.
	* common.opt (Wunreachable-code):  Preserved for backward
	compatibility.
	* tree-cfg.c: Remove the implementation of -Wunreachable-code.
	* opts.c (common_handle_option): Add OPT_Wunreachable_code to
	the backward compatibility flag section.

2010-01-05  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.

2010-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR other/42611
	* cfgexpand.c (expand_one_var): Diagnose too large variables.

	PR tree-optimization/42508
	* tree-sra.c (convert_callers): Check for recursive call
	by comparing cgraph nodes instead of decls.
	(modify_function): Call ipa_modify_formal_parameters also
	on all same_body aliases.

	* cgraphunit.c (cgraph_materialize_all_clones): Compare
	cgraph nodes when checking for same_body aliases.

2010-01-05  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
	allocation and lookup.
	(get_or_alloc_expr_for_constant): Likewise.
	(phi_translate): Sink allocation.

2010-01-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
	a new entry only if needed.
	* tree-ssa-dom.c (lookup_avail_expr): Likewise.
	* tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
	hashtable lookup.
	* tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
	the result array.
	(phi_translate): Handle CONSTANTs early.

2010-01-04  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/42398
	* tree-sra.c (struct access): Removed flag grp_different_types.
	(dump_access): Do not dump the removed flag.
	(sort_and_splice_var_accesses): Do not set the removed flag.
	(sra_modify_expr): Check for type compatibility directly.

2010-01-04  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/42366
	* ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
	edges with variable number of parameters.
	* ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
	flag instead of asserting it.
	(ipa_read_node_info): Read uses_analysis_done flag.

2010-01-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
	iterative_hash_* as intended.
	(vn_reference_compute_hash): Likewise.  Simplify hashing
	SSA names.
	(vn_reference_lookup_2): Likewise.
	(vn_nary_op_compute_hash): Likewise.
	(vn_phi_compute_hash): Likewise.
	(expressions_equal_p): Remove strange code.
	* tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
	(pre_expr_hash): Likewise.  Simplify hashing SSA names.
	(bitmap_insert_into_set_1): Take value-id as parameter.
	(add_to_value): Pass it.
	(bitmap_insert_into_set): Likewise.
	(bitmap_value_insert_into_set): Likewise.  Remove redundant check.

2010-01-04  Jakub Jelinek  <jakub@redhat.com>

	PR driver/42442
	* gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
	(do_self_spec): For switches with SWITCH_IGNORE set set also
	SWITCH_IGNORE_PERMANENTLY.
	(check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
	of SWITCH_IGNORE.

2010-01-04  Rafael Avila de Espindola  <espindola@google.com>

	* lto-streamer-out.c (output_unreferenced_globals): Output the full
	tree of an unreferenced global var.

2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/42542
	* config/i386/i386.c (ix86_expand_int_vcond): Don't convert
	GTU to GT for V4SI and V2DI.

	* config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
	(umin<mode>3): Removed.
	(uminv8hi3): New.
	(uminv4si3): Likewise.

2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR lto/42581
	* collect2.c (main): Turn on trace in collect2 if -v is passed
	to gcc with LTO.

2010-01-03  Jerry Quinn  <jlquinn@optonline.net>

	* doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
	description of expression operand.

2010-01-03  Andrew Jenner  <andrew@codesourcery.com>

	* configure.ac: Add install-html to target_list for Make-hooks.
	* configure: Regenerate.
	* fortran/Make-lang.in (F95_HTMLFILES): New.
	(fortran.html): Use it.
	(fortran.install-html): New.
	* Makefile.in (install-html): Add lang.install-html.
	* java/Make-lang.in (JAVA_HTMLFILES): New.
	(java.html): Use it.
	(java.install-html): New.
	* objc/Make-lang.in (objc.install-html): New.
	* objcp/Make-lang.in (obj-c++.install-html): New.
	* cp/Make-lang.in (c++.install-html): New.
	* ada/gcc-interface/Make-lang.in (ada.install-html): New.
	* lto/Make-lang.in (lto.install-html): New.

2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR lto/42520
	* gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.

2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/41862
	* store-motion.c (store_killed_in_insn, compute_store_table,
	remove_reachable_equiv_notes, replace_store_insn,
	build_store_vectors): Ignore all DEBUG_INSNs.

2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR lto/41564
	* common.opt: Add dumpdir.

	* gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
	isn't specified.
	(option_map): Add --dumpdir.

	* gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.

	* lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.

	* opts.c (decode_options): Try dump_dir_name first if
	dump_base_name isn't an absolute path.
	(common_handle_option): Handle OPT_dumpdir.

	* toplev.c (dump_dir_name): New.
	(print_switch_values): Also ignore -dumpdir.

	* toplev.h (dump_dir_name): New.

2010-01-03  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42589
	* tree-ssa-math-opts.c (execute_optimize_bswap): Allow
	double-word expansion of bswap32.

2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>

	* postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
	with BLOCK_FOR_INSN.
	* auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
	* ifcvt.c (noce_get_alt_condition, noce_try_abs,
	noce_process_if_block): Likewise.
	* gcse.c (compute_local_properties, insert_expr_in_table,
	insert_set_in_table, canon_list_insert, find_avail_set,
	pre_insert_copy_insn): Likewise.

	* basic-block.h (BLOCK_NUM): Move from here...
	* sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.

2010-01-03  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42438
	* tree-ssa-pre.c (struct bb_bitmap_sets): Add
	contains_may_not_return_call flag.
	(BB_MAY_NOTRETURN): New.
	(valid_in_sets): Trapping nary operations are not valid
	in blocks that may not return.
	(insert_into_preds_of_block): Remove check for trapping expressions.
	(compute_avail): Compute also BB_MAY_NOTRETURN.

2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/invoke.texi: Add 2010 to copyright years.

2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c: Fix formatting nits.

2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
	    Alexander Monakov  <amonakov@ispras.ru>

	* doc/invoke.texi (Optimize Options): Reword introduction a bit.

2010-01-02  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42577
	* tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
	(simplify_switch_using_ranges): Mark to be removed edges
	as non-executable.

2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.

	* collect2.c (scan_libraries): Add missing argument in call to
	scan_prog_file.

2010-01-02  Uros Bizjak  <ubizjak@gmail.com>

	PR target/42448
	* config/alpha/predicates.md (aligned_memory_operand): Return false
	for CQImode.
	(unaligned_memory_operand): Return true for CQImode.
	* config/alpha/alpha.c (get_aligned_mem): Assert that location
	doesn not cross aligned SImode word boundary.

2010-01-02  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
	Remove.
	* config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
	avr_change_section, avr_reg_class_from_letter) : Remove declaration.

2010-01-02  Richard Guenther  <rguenther@suse.de>

	PR lto/41597
	* toplev.c (compile_file): Emit LTO marker properly.  Change
	it to __gnu_lto_v1.
	* collect2.c (scan_prog_file): Adjust for changed LTO marker.

2010-01-01  Richard Guenther  <rguenther@suse.de>

	PR debug/42455
	* tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.

2010-01-01  Richard Guenther  <rguenther@suse.de>

	PR c/42570
	* c-decl.c (grokdeclarator): For zero-size arrays force
	structural equality checks as layout_type does.

2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>

	* builtins.c: Update copyright to 2010.

2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR lto/42531
	* lto-streamer-out.c (produce_asm): Revert the last change.
	(copy_function): Likewise.

	* lto-streamer.c (lto_get_section_name): Skip any leading
	asterisk in name.

2010-01-01  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42559
	* builtins.c (get_object_alignment): Do not use DECL_ALIGN
	for LABEL_DECLs.


Copyright (C) 2010 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.
