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): Remo