view gcc/ChangeLog-2010 @ 158:494b0b89df80 default tip

author Shinji KONO <>
date Mon, 25 May 2020 18:13:55 +0900
parents 561a7518be6b
line wrap: on
line source

2010-12-31  Gerald Pfeifer  <>

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

2010-12-31  Ken Werner  <>

	* config/arm/ (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  <>

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

2010-12-31  Gerald Pfeifer  <>

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

2010-12-31  Paul Koning  <>

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

2010-12-31  Joern Rennecke  <>

	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.

	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  <>

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

2010-12-30  Joseph Myers  <>

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

2010-12-30  John David Anglin  <>

	* config/pa/ Add ",*" condition to 64-bit add/subtract boolean

2010-12-30  Eric Botcazou  <>

	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  <>

	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  <>

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

2010-12-30  Ulrich Weigand  <>

	* 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  <>

	* 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  <>

	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  <>

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

2010-12-30  Jakub Jelinek  <>

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

2010-12-29  Paul Koning  <>

	* 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,

2010-12-30  Joern Rennecke  <>

	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  <>

	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  <>

	* (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  <>

	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  <>
	    Uros Bizjak  <>

	* config/i386/i386-builtin-types.def (PUSHORT): New.

	* config/i386/i386.c (ix86_builtins): Remove
	(bdesc_special_args): Remove IX86_BUILTIN_RDRAND16,
	(ix86_init_mmx_sse_builtins): Handle IX86_BUILTIN_RDRAND16_STEP,
	(ix86_expand_builtin): Likewise.
	(ix86_expand_special_args_builtin): Remove UINT16_FTYPE_VOID.

	* config/i386/ (UNSPEC_RDRAND): New.
	(rdrand<mode>): Likewise.
	(rdrand<mode>_1): Also set FLAGS_REG.  Replace UNSPECV_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  <>

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

2010-12-28  Sebastian Pop  <>

	* (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  <>

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

2010-12-28  Jie Zhang  <>

	* builtins.c (SLOW_UNALIGNED_ACCESS): Remove.

2010-12-27  Joseph Myers  <>

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

2010-12-26  Martin Jambor  <>

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

2010-12-26  Andreas Schwab  <>

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

2010-12-24  Alexander Monakov  <>

	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  <>
	    Richard Guenther  <>

	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  <>

	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
	* 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
	* tree-vect-slp.c (destroy_bb_vec_info): Call free_data_refs and
	* tree-vectorizer.h (struct _loop_vec_info): Add a field loop_nest.

2010-12-23  Martin Jambor  <>

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

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

	* (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.
	* 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.
	(LINK_EH_SPEC): Define.

2010-12-23  Ralf Wildenhues  <>

	* 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/ (Run-time Target, Register Arguments)
	(Scheduling, Macros for Initialization, Misc): Likewise.
	* doc/tm.texi: Renerate.

2010-12-23  Nicola Pero  <>

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

2010-12-22  Sebastian Pop  <>

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

2010-12-22  Nathan Froyd  <>

	* 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):
	(check_call): Likewise.
	* tree-ssa.c (useless_type_conversion_p): Likewise.

2010-12-22  Ulrich Weigand  <>

	* config/spu/ ("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  <>

	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
	* ipa-prop.c (compute_known_type_jump_func): Use
	get_ref_base_and_extent and get_binfo_at_offset instead of
	(compute_known_type_jump_func): Likewise.
	(update_jump_functions_after_inlining): Do not derive types from
	(try_make_edge_direct_virtual_call): Likewise.
	* tree.c (get_binfo_at_offset): Get type from non-artificial fields.

2010-12-22  Joseph Myers  <>

	* 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  <>

	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  <>

	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.
	* dwarf2out.c (loc_list_from_tree) <RESULT_DECL>: Use
	* 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  <>

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

2010-12-21  Steven Bosscher  <>

	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
	(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  <>

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

2010-12-21  Ira Rosen  <>

	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

2010-12-21  Steven Bosscher  <>

	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  <>

	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  <>

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

2010-12-21  Ulrich Weigand  <>

	* 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   <>

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

2010-12-21  Jie Zhang  <>

	* config/arm/ Fix a typo in comment.

2010-12-21  Jakub Jelinek  <>

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

2010-12-21  Anatoly Sokolov  <>

	* 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.

2010-12-20  Joseph Myers  <>

	* config/alpha/linux.h (OPTION_GLIBC): Define differently if
	Define differently if SINGLE_LIBC.
	* config/rs6000/linux.h (OPTION_GLIBC): Define differently if
	* config/rs6000/linux64.h (OPTION_GLIBC): Define differently if
	* config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
	*-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu): Define
	(*-*-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  <>

	* config/mn10300/mn10300.c (mn10300_legitimize_pic_address): Generate
	UNSPEC patterns by hand, with the proper mode; use gen_const_mem.
	* config/mn10300/ (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	<>
	    Mingfeng Wu  <>

	* config/arm/arm-cores.def: Add Faraday CPU support -
	* config/arm/ 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/ (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/ New file.
	* config/arm/ New file.
	* config/arm/ New file.
	* config/arm/ New file.
	* config/arm/ New file.

2010-12-20  Yvan Roux  <>

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

2010-12-20  Joseph Myers  <>

	* config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't 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.
	* 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  <>
	    Jan Hubicka  <>

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

2010-12-20  Iain Sandoe  <>

	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  <>

	* 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  <>

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

2010-12-19  Eric Botcazou  <>

	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/ (load_pcrel_sym): Add operand #3.

2010-12-19  Dave Korn  <>

	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  <>

	* 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  <>

	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  <>

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

2010-12-18  Jakub Jelinek  <>

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

2010-12-18  John David Anglin  <>

	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  <>

	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
	(ix86_handle_callee_pop_aggregate_return): New handler.
	(ix86_attribute_table): Add new attribute
	* doc/extend.texi (callee_pop_aggregate_return): Add
	attribute documentation.

2010-12-18  Iain Sandoe  <>

	Only set sjlj exceptions for NeXT/m32.

2010-12-18  Iain Sandoe  <>

	Only expose when not building for target.

2010-12-17  Joseph Myers  <>

	* 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  <>

	* 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  <>

	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
	(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  <>

	* config/i386/netware.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE): Define.
	* config/i386/nto.h (LIB_SPEC, ASM_SPEC): Define.
	* config/i386/sol2.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
	* config/i386/vxworksae.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE):
	* 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[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae): Don't use svr4.h.

2010-12-17  H.J. Lu  <>

	* 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  <>

	* 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  <>

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

2010-12-17  Ulrich Weigand  <>

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

2010-12-17  Bernd Schmidt  <>

	* 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  <>

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

2010-12-17  Dodji Seketeli  <>

	* 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  <>

	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

2010-12-16  Joseph Myers  <>

	* 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

2010-12-16  Sebastian Pop  <>

	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  <>

	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  <>

	* 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  <>
	    Eric Botcazou  <>

	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/ (cpu attribute): Add leon.  Reorganize.
	Include scheduling description.
	* config/sparc/ 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  <>

	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  <>

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

2010-12-16  Anatoly Sokolov  <>

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

2010-12-16  Ulrich Weigand  <>

	* 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  <>

	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  <>

	PR target/46883
	* config/arm/
	(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  <>

	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  <>

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

2010-12-15  Joseph Myers  <>

	* doc/ (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
	* 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

2010-12-14  Jan Hubicka  <>

	* 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

2010-12-14  Jan Hubicka  <>

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

2010-12-15  Martin Jambor  <>

	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
	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Adjust this
	* 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
	(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
	* 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

2010-12-15  Alexander Monakov  <>

	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  <>

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

2010-12-15  Joseph Myers  <>

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

2010-12-14  Sebastian Pop  <>

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

2010-12-14  Sebastian Pop  <>

	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  <>

	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  <>

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

2010-12-14  Joseph Myers  <>

	* 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  <>

	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  <>

	* 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  <>

	* 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  <>

	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  <>

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

2010-12-14  Alexander Monakov  <>

	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 <>

	* config/h8300/ (define_split) : Add condition for
	"and with single_zero" splitter to handle 16-bit const operands.
	* config/h8300/ (define_split) : Add condition for
	"ior with single_one" splitter to handle 16-bit const operands.
	* config/h8300/ (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  <>

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

2010-12-13  Joseph Myers  <>

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

2010-12-14  Bernd Schmidt  <>

	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.
	(find_memory, find_memory_store): New static functions.
	(can_move_insns_across): New function.
	* (df-problems.o): Update dependencies.

2010-12-13  Joseph Myers  <>

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

2010-12-13  Jack Howarth <>
	    Joseph Myers <>

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

2010-12-13  Jakub Jelinek  <>

	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  <>

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

2010-12-13  Joseph Myers  <>

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

2010-12-13  Joseph Myers  <>

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

2010-12-13  Joseph Myers  <>

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

2010-12-13  Joseph Myers  <>

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

2010-12-13  Alexandre Oliva  <>

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

2010-12-13  Alexandre Oliva  <>

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

2010-12-12  Jan Hubicka  <>
	    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

2010-12-12  Finn Thain  <>

	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  <>

	PR tree-optimization/43023
	* tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p):
	(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

2010-12-10  Jakub Jelinek  <>

	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  <>

	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  <>

	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
	* 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/ (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

2010-12-10  Nathan Froyd  <>

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

2010-12-10  Jakub Jelinek  <>

	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  <>

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

2010-12-10  Jack Howarth  <>
	    Iain Sandoe  <>

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

2010-12-10  Iain Sandoe <>

	* 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  <>

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

2010-12-10  Iain Sandoe <>

	* 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  <>

	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  <>

	* 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/ (movdi, movsi, movdf, movsf): Use
	(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  <>

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

2010-12-09  Nathan Froyd  <>

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

2010-12-09  Joseph Myers  <>

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

2010-12-09  Joseph Myers  <>

	* 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  <>

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

2010-12-09  Joseph Myers  <>

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

2010-12-09  Joseph Myers  <>

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

2010-12-09  Joseph Myers  <>

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

2010-12-09  Joseph Myers  <>

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

2010-12-09  Joseph Myers  <>

	* 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  <>

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

2010-12-09  Joseph Myers  <>

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

2010-12-09  Joseph Myers  <>

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

2010-12-09  Joseph Myers  <>

	* 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  <>

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

2010-12-09  Joseph Myers  <>

	* 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  <>

	* 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
	* config/mips/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
	* 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

2010-12-09  Joseph Myers  <>

	* 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  <>

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

2010-12-09  Martin Jambor  <>

	* 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

2010-12-09  Martin Jambor  <>

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

2010-12-09  Joseph Myers  <>

	* 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  <>

	* 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  <>

	* 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,
	* 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  <>

	* 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  <>

	* 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  <>

	* 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  <>

	* 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  <>

	* config/s390/ (*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/ (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  <>

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

2010-12-08  Ian Lance Taylor  <>

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

2010-12-08  Ian Lance Taylor  <>

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

2010-12-08  Iain Sandoe <>

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

2010-12-08  Richard Guenther  <>
	    Sebastian Pop  <>

	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
	(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  <>

	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  <>

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

2010-12-08  Richard Earnshaw  <>

	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  <>

	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  <>

	* 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  <>

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

2010-12-07  Andrey Belevantsev  <>

	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  <>

	* 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  <>

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

2010-12-07  Ian Lance Taylor  <>
	    Ralf Wildenhues  <>

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

2010-12-07  Paul Koning  <>

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

2010-12-07  Paul Koning  <>

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

2010-12-07  Joseph Myers  <>

	* 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  <>

	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  <>

	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  <>

	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  <>

	* 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: Regenerate.

2010-12-07  Jakub Jelinek  <>

	PR debug/46799
	* tree-parloops.c (separate_decls_in_region): Use UNKNOWN_LOCATION
	(create_loop_fn): Add LOC argument, pass it to build_decl instead of
	(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  <>
	    Richard Guenther  <>

	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  <>

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

2010-12-07  Richard Guenther  <>

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

2010-12-07  Nicola Pero  <>

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

2010-12-06  Vladimir Makarov  <>

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

2010-12-06  Nicola Pero  <>

	* 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  <>

	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

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

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

2010-12-06  Joern Rennecke  <>
	    Richard Henderson  <>

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

2010-12-06  Eric Botcazou  <>

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

2010-12-06  Joern Rennecke  <>

	PR target/46735
	* config/frv/ (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.
	(CONST_OK_FOR_P): Likewise.
	* config/frv/ (*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  <>

	* config/i386/i386.c (m_COREI7): New.
	(initial_ix86_tune_features): Turn on

2010-12-06  H.J. Lu  <>

	* 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  <>

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

2010-12-06  Richard Guenther  <>

	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  <>

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

2010-12-05  John David Anglin  <>

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

2010-12-06  Nicola Pero  <>

	* 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.
	* (gtfiles): Added c-family/c-objc.h.
	* (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  <>

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

2010-12-03  Jan Hubicka  <>

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

2010-12-03  Jan Hubicka  <>

	* 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  <>

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

2010-12-03  Jan Hubicka  <>

	* lto-cgraph.c (merge_profile_summaries): Fix thinko.

2010-12-03  Jan Hubicka  <>

	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  <>

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

2010-12-03  Jason Merrill  <>

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

2010-12-03  Nathan Froyd  <>

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

2010-12-03  Joseph Myers  <>

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

2010-12-03  Joseph Myers  <>

	* 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  <>

	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  <>

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

2010-12-02  Ian Lance Taylor  <>

	* 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  <>

	* 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  <>

	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  <>

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

2010-12-02  Ian Lance Taylor  <>

	header files unordered_map, tr1/unordered_map, and ext/hash_map.
	* configure, Rebuild.

2010-12-02  Eric Botcazou  <>

	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  <>

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

2010-12-02  Sebastian Pop  <>

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

2010-12-02  Joseph Myers  <>

	* 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  <>

	* 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  <>

	* 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  <>

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

2010-12-02  Joseph Myers  <>

	* 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  <>

	* 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  <>

	* doc/install.texi (Configuration): Update default for

2010-12-02  Nathan Froyd  <>

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

2010-12-02  Sebastian Pop  <>

	PR tree-optimization/45199
	* tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
	(stores_zero_from_loop): Call
	* 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  <>

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

2010-12-02  Richard Guenther  <>

	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  <>

	* 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  <>

	DFA model for Core 2 and Core i7 scheduling.

	* config/i386/ 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/ Include "".
	(define_attr cpu): Add "corei7".

2010-12-02  Maxim Kuvyrkov  <>

	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.

2010-12-02  Richard Guenther  <>

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

2010-12-02  Richard Guenther  <>

	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  <>
	    Ira Rosen  <>

	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  <>

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

2010-12-01  Michael Meissner  <>

	* 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  <>

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

2010-12-01  Sebastian Pop  <>

	* 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  <>

	* 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  <>

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

2010-12-01  Sebastian Pop  <>

	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):
	(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
	(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
	(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_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_reductions_out_of_ssa, and
	* sese.h (struct gimple_bb): Add field pbb.
	(GBB_PBB): New.

2010-12-01  Sebastian Pop  <>

	* graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
	(rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
	(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  <>

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

2010-12-01  Sebastian Pop  <>

	* 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
	* graphite-poly.h (scop_do_strip_mine): Update declaration.

2010-12-01  Jan Hubicka  <>

	* tree.c (build_common_builtin_nodes): Do not initialize
	* builtins.c (expand_builtin_profile_func): Remove.
	(expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
	* 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  <>

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

2010-12-01  Yao Qi  <>

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

2010-12-01  Joseph Myers  <>

	* 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  <>

	* 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
	* 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.
	* (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  <>

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

2010-11-30  Ian Lance Taylor  <>

	* 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  <>

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

2010-11-30  Richard Guenther  <>

	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

2010-11-30  Dave Korn  <>

	PR middle-end/46709
	* cgraphunit.c (process_function_and_variable_attributes): Fix

2010-11-30  Joseph Myers  <>

	* 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.
	* (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  <>

	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  <>

	* 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.
	* (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
	* 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

2010-11-30  Richard Guenther  <>

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

2010-11-30  Richard Guenther  <>

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

2010-11-30  Mingjie Xing  <>

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

2010-11-30  Laurynas Biveinis  <>

	* 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  <>

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

2010-11-29  H.J. Lu  <>

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

2010-11-29  Zdenek Dvorak  <>

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

2010-11-29  Jan Hubicka  <>

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

2010-11-29  Dodji Seketeli  <>

	* 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  <>

	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  <>

	* 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  <>
	    Mike Stump  <>

	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.
	* 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.
	(TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
	(DARWIN_SECTION_ANCHORS): Define with a default of 0.

2010-11-29  Joseph Myers  <>

	* system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
	Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
	Conditionally define.
	* Don't test for mincore.
	* configure: Regenerate.
	* 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
	* config/arm/arm.c (arm_target_help): Use getenv instead of
	* 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
	(MAP_FAILED): Don't define.
	* ggc-page.c Don't include <sys/mman.h>.
	* ggc-zone.c: Don't include <sys/mman.h>.
	* 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
	* 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  <>

	* 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

2010-11-29  Joern Rennecke  <>

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

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

2010-11-27  Jan Hubicka  <>

	* 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  <>

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

2010-11-27  Richard Guenther  <>

	* 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  <>

	* 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.
	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  <>

	PR target/46623
	* config/microblaze/microblaze.c (microblaze_block_move_straight):
	(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_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
	(ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.

2010-11-26  Michael Matz  <>

	* 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  <>

	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  <>

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

2010-11-26  Richard Guenther  <>

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

2010-11-26  Andreas Krebbel  <>

	* 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  <>

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

2010-11-26  Ian Bolton  <>

	* 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  <>

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

2010-11-26  Richard Guenther  <>

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

2010-11-26  Michael Haubenwallner  <>

	PR target/33637
	* Accept extra arguments for AS_FOR_TARGET,
	* configure: Regenerated.
	* Not quoting command, may have extra arguments.

2010-11-26  Richard Guenther  <>

	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  <>

	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
	(fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
	Use buildN_stat_loc instead of buildN_stat followed by

2010-11-26  Basile Starynkevitch  <>

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

2010-11-26  Alexandre Oliva  <>

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

2010-11-26  Alexandre Oliva  <>

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

2010-11-25  John David Anglin  <>

	* config/pa/ (negdf2): Condition on !flag_signed_zeros instead of
	(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  <>

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

2010-11-25  Basile Starynkevitch  <>
	    Jeremie Salvucci  <>

	* 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.

	* (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  <>

	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  <>

	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  <>

	* 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
	Document that hooks must not be modified.
	(TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
	* doc/tm.texi: Regenerate.
	&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,
	output_one_function_exception_table): Pass &global_options to
	* expr.c (build_personality_function): Pass &global_options to
	* function.c (expand_function_end): Pass &global_options to
	* 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
	* 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
	* config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
	* config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
	(ia64_output_function_prologue, ia64_add_bundle_selector_before,
	ia64_reorg, ia64_asm_unwind_emit): Update calls to
	* config/pa/pa.c (pa_option_override): Pass &global_options to
	* config/picochip/picochip-protos.h (picochip_except_unwind_info):
	Remove prototype.

2010-11-25  Kai Tietz  <>

	* 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  <>

	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  <>

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

2010-11-25  Joern Rennecke  <>
	    Ralf Wildenhues  <>

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

2010-11-24  Richard Henderson  <>

	* config/ia64/ (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/ (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  <>

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

2010-11-24  Nathan Froyd  <>

	* cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
	* 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  <>

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

2010-11-24  H.J. Lu  <>

	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
	(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  <>

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

2010-11-24  Richard Guenther  <>

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

2010-11-24  Jakub Jelinek  <>

	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  <>

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

2010-11-24  Richard Guenther  <>

	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

2010-11-24  Basile Starynkevitch  <>

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

2010-11-24  Joseph Myers  <>

	* 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.
	* (opts.o): Update dependencies.

2010-11-24  Jakub Jelinek  <>

	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  <>

	* config/mips/ 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/ Rename mul<mode>3_mul3_ls2ef to
	(define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
	(define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.

2010-11-23  Joseph Myers  <>

	* 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
	* 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
	(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
	(handle_param): Add location_r parameter.  Use error_at.
	(set_debug_level): Add location_r parameter.  Use error_at and
	(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.
	* (opts.o, opts-global.o): Update dependencies.

2010-11-23  Joseph Myers  <>

	* 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-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,
	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
	(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,
	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
	* toplev.h (strip_off_ending, decode_d_option,
	fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
	declare here.
	* (opts.o, opts-global.o): Update dependencies.

2010-11-23  Dave Korn  <>

	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  <>

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

2010-11-23  Jan Hubicka  <>

	* 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,
	* 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,
	* config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
	(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): New function.
	* config/darwin.h (HOT_TEXT_SECTION_NAME,

2010-11-23  Iain Sandoe  <>

	* 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  <>

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

2010-11-23  Richard Guenther  <>

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

2010-11-23  Basile Starynkevitch  <>
	    Jeremie Salvucci  <>

	* 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  <>

	* 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  <>

	* 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  <>

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

2010-11-23  Basile Starynkevitch  <>

	* gengtype.c (header_dot_h_frul, source_dot_c_frul):

2010-11-22  Joseph Myers  <>

	* 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
	* 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
	* toplev.c (profile_data_prefix): Remove.
	* toplev.h (profile_data_prefix, exit_after_options): Remove
	(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  <>

	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  <>

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

2010-11-22  Joern Rennecke  <>

	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

2010-11-22  H.J. Lu  <>

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

2010-11-22  Basile Starynkevitch  <>

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

2010-11-22  Paolo Bonzini  <>

	PR bootstrap/44970
	* (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  <>

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

2010-11-22  Richard Guenther  <>

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

2010-11-22  Richard Guenther  <>

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

2010-11-22  Alexander Monakov  <>

	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  <>
	    Basile Starynkevitch  <>

	* 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.
	(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.

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

2010-11-21  Nathan Froyd  <>

	* system.h (FUNCTION_ARG_BOUNDARY): Really poison.

2010-11-21  Nathan Froyd  <>

	* target.def (conditional_register_usage): Define.
	* reginfo.c (init_reg_sets_1): Call
	* doc/ (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):
	New function.
	* config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/arc/arc.c (arc_conditional_register_usage):
	New function.
	* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/arm/arm.c (arm_conditional_register_usage):
	New function.
	* 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):  New function.
	* 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.
	* 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.
	* config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/h8300/h8300.c (h8300_conditional_register_usage):
	New function.
	* 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.
	* 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.
	* config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/m32r/m32r.c (m32r_conditional_register_usage):
	New function.
	* config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
	* config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
	* config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
	* 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.
	* 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.
	* 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.
	* config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/mn10300/mn10300.c (mn10300_conditional_register_usage):  New function.
	* 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):
	New function.
	* config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/pdp11/pdp11.c (pdp11_conditional_register_usage):
	New function.
	* config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
	* config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
	* config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
	* 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.
	* 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.
	* config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/score/score.c (score_conditional_register_usage):
	New function.
	* config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/sh/sh.c (sh_conditional_register_usage):
	New function.
	* config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/sparc/sparc.c (sparc_conditional_register_usage):
	New function.
	* 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.
	* config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
	* config/v850/v850.c (v850_conditional_register_usage):
	New function.

2010-11-21  Jan Hubicka  <>
	    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  <>

	* system.h (strerror): Poison.

2010-11-21  Richard Henderson  <>

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

2010-11-21  Richard Henderson  <>

	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  <>

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

2010-11-21  Paul Koning  <>

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

2010-11-21  Eric Botcazou  <>

	* config/mips/mips.c (machine_function): Rename load_label_length to
	(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  <>

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

2010-11-20  Joseph Myers  <>

	* doc/tm.texi: Regenerate.
	* 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.
	* 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.
	* config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
	* config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): 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  <>

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

2010-11-20  Jan Hubicka  <>

	* 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
	* 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  <>

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

2010-11-20  Ralf Wildenhues  <>

	PR other/46202
	* (install_sh, INSTALL_STRIP_PROGRAM): New variables.
	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  <>

	* config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
	pdp11_regno_reg_class): New functions.
	* config/pdp11/ (define_constants): Add register numbers.
	* config/pdp11/pdp11.c (pdp11_regno_reg_class,
	pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
	* config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
	frame pointer and argument pointer pseudo-registers.
	(REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
	argument pointer.
	(FIRST_PARM_OFFSET): Update for argument pointer.
	frame pointer and argument pointer.

2010-11-20  Jakub Jelinek  <>

	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
	(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  <>

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

2010-11-19  Anatoly Sokolov  <>

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

2010-11-19  Uros Bizjak  <>

	* 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  <>

	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  <>

	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  <>

	* 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

	* 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.

	* Add support for HeaderInclude and SourceInclude option
	directives to add the appropriate files to the dependency lists.
	* configure: Regenerate.
	* (OPTIONS_H_EXTRA): New variable for HeaderInclude.
	(OPTIONS_C_EXTRA): New variable for SourceInclude.
	(options.o): Add $(OPTIONS_C_EXTRA) dependency.
	(gcc-options.o): Ditto.
	* opt-include.awk: New awk script to handle HeaderInclude and

	* 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

	* 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
	(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.
	(POWER_MASKS): Move to file level scope from the
	rs6000_option_override_internal function.
	(ISA_*_MASKS): Ditto.
	(struct rs6000_ptt): Ditto.
	(processor_target_table): Ditto.
	(rs6000_cpu_name_lookup): Map cpu name to an index in
	(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_sdata): Ditto.
	(rs6000_abi_name): Delete.
	(rs6000_sdata_name): Ditto.
	(rs6000_tls_size_string): Ditto.

2010-11-19  Joseph Myers  <>

	* 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):
	* toplev.c (main_input_basename, main_input_baselength): Define
	* toplev.h (main_input_basename, main_input_baselength): Declare

2010-11-19  Joseph Myers  <>

	* 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  <>

	* 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
	(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
	* (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  <>

	* c-parser.c (c_parser_objc_protocol_definition): Pass attributes
	to objc_declare_protocols.

2010-11-19  Richard Guenther  <>

	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  <>

	* config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.

2010-11-19  Jakub Jelinek  <>

	PR target/45870
	* dwarf2out.c (const_ok_for_output_1): Don't complain about
	non-delegitimized TLS UNSPECs.

2010-11-18  Jack Howarth  <>
	    Ian Lance Taylor  <>

	* config/darwin-c.c (darwin_additional_format_types): Export.

2010-11-18  Paul Koning  <>

	* config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame

2010-11-18  Paul Koning  <>

	* config/pdp11/ (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  <>

	* resource.h (struct resources): Fix typo in the comment.

2010-11-19  Uros Bizjak  <>

	PR target/46546
	* config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.

2010-11-18  Richard Henderson  <>

	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

2010-11-18  Jakub Jelinek  <>

	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  <>

	PR c/33193
	* c-typeck.c (build_unary_op): Call build_real_imag_expr for

2010-11-18  Richard Guenther  <>

	PR tree-optimization/46172
	* tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
	(slpeel_tree_peel_loop_to_edge): Call it.

2010-11-18  Jeff Law  <>

	PR middle-end-optimization/46297
	* postreload.c (reload_combine_note_store): Deal with embedded
	side effects in MEM expressions.

2010-11-18  Richard Guenther  <>

	PR lto/45089
	* dwarf2out.c (add_AT_die_ref): Work around LTO losing types
	when checking is not enabled.

2010-11-18  Richard Guenther  <>

	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  <>

	* lto-wrapper.c (run_gcc): Fix -flto=N parsing.

2010-11-18  Alexander Monakov  <>

	PR middle-end/46518
	* sel-sched-ir.c (init_expr): Use the correct type for
	* sel-sched.c (fill_vec_av_set): Use explicitly signed char type.

2010-11-17  Joakim Tjernlund  <>

	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
	as well as -mrelocatable at the same time.

2010-11-17  Quentin Neill  <>

	PR target/46422
	* config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
	Call the clz builtin.

2010-11-17  Dinar Temirbulatov <>
	    Steve Ellcey  <>

	PR middle-end/31490
	* varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
	if section attribute used.

2010-11-17  Jan Hubicka  <>

	* builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
	expand errno setting variant when optimizing for size.

2010-11-17  Eric Botcazou  <>

	* postreload.c (reload_combine): Call control_flow_insn_p only once.
	Reverse backward loop.  Fix formatting issues.

2010-11-17  Paolo Bonzini  <>

	* 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  <>

	* 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  <>

	PR lto/46504
	* gimple.c (gimple_register_canonical_type): Make sure to only
	make type leaders canonical types.

2010-11-17  Michael Matz  <>

	* 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  <>

	* 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  <>

	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  <>

	* opts.c (target_handle_option): Do not assert that loc ==

2010-11-17  Jakub Jelinek  <>
	    Richard Guenther  <>

	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  <>

	PR tree-optimization/46498
	* tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.

2010-11-16  Nathan Froyd  <>

	* 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  <>

	PR target/46512
	* config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
	under check for type.

2010-11-16  Eric Botcazou  <>

	* ifcvt.c (dead_or_predicable): Fix typo.

2010-11-16  Richard Henderson  <>

	* 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.
	* config/s390/ (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
	(fms<DSF>4): Rename from *fmsub<DSF>; use FMA.

2010-11-16  Richard Henderson  <>

	* config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
	* config/rs6000/rs6000.opt (mfused-madd): Remove.
	* config/rs6000/ (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_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/ (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/ (mul<VEC_F>3): Do not depend on
	* config/rs6000/ (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  <>

	* config/pa/ (fmadf4): Rename from unnamed; use FMA.
	(fmasf4, fnmadf4, fnmasf4): Likewise.
	(unnamed plus+mult insns and splitters): Delete.

2010-11-16  Richard Henderson  <>

	* config/spu/ (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  <>

	PR rtl-optimization/46490
	* combine.c (expand_compound_operation): Fix thinko.

2010-11-16  Richard Henderson  <>

	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  <>

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

	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  <>

	* cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
	when !flag_toplevel_reorder do not remove unless variable is
	* 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
	(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/ (Macros for Initialization, NM_FLAGS): Document.
	* doc/tm.texi: Update.

2010-11-16  Nick Clifton  <>

	* config/v850/ (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  <>

	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/ (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):

	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  <>

	* config/arc/arc.c: Delete pasto.
	* config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.

2010-11-16  Anatoly Sokolov  <>

	* config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
	* config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
	mn10300_preferred_output_reload_class): New functions.

2010-11-16  Andreas Krebbel  <>

	* 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  <>

	* builtins.c (std_gimplify_va_arg_expr): Use
	* 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: Regenerate.
	* system.h (FUNCTION_ARG_BOUNDARY): Poison.
	* config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/arc/arc.c (arc_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.
	* 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.
	* 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.
	* 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.
	* config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/m32c/m32c.c (m32c_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.
	* 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.
	* config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/pa/pa.c (pa_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.
	* 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.
	* config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/rx/rx.c (rx_function_arg_boundary): Define.
	* config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
	* config/sparc/sparc.c (sparc_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.

2010-11-16  Nathan Froyd  <>

	* 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  <>

	* gcc.c (char_p): Define.  Define a VEC of it.
	(n_linker_options, n_assembler_options, n_preprocessor_options):
	(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  <>

	* (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
	(sreal.o, statistics.o, stringpool.o): Likewise.

2010-11-16  Richard Guenther  <>

	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  <>

	* 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  <>

	* 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  <>

	PR middle-end/45172
	* tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.

2010-11-16  Nick Clifton  <>

	* config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
	record is packed.

2010-11-15  Richard Henderson  <>

	* fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,

2010-11-15  Richard Henderson  <>

	* config/mn10300/ (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
	from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
	fma rtx_code.

2010-11-15  Richard Henderson  <>

	* config/frv/ (fmasf4, fmssf4): Rename from *muladdsf4
	and *mulsubsf4 respectively.  Use fma rtx_code.

2010-11-15  Joseph Myers  <>

	* 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.
	* (GCC_OBJS): Add vec.o and ggc-none.o.
	(gcc.o): Depend on $(VEC_H).

2010-11-15  Richard Henderson  <>

	* 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  <>

	* 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/ (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/ (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  <>

	PR tree-optimization/46461
	* tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
	a gimple val.

2010-11-15  Ian Lance Taylor  <>

	* godump.c: New file.
	* common.opt (fdump-go-spec=): New option.
	* tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
	(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.
	* (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  <>

	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  <>
	    Diego Novillo  <>

	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  <>

	* 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  <>

	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  <>

	PR tree-optimization/46467
	* tree-ssa-structalias.c (do_structure_copy): Properly treat
	variables without subvars.

2010-11-15  Hariharan Sandanagobalane  <>

	* config/picochip/picochip.c (file header): Picochip name change.
	* config/picochip/ (file header): Likewise.
	* config/picochip/ (file header): Likewise.
	* config/picochip/ (file header): Likewise.
	* config/picochip/ (file header): Likewise.
	* config/picochip/picochip.h(file header): Likewise.
	* config/picochip/ (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  <>

	PR bootstrap/46474
	* tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.

2010-11-15  Nick Clifton  <>

	* config/stormy16/stormy16.c (direct_return): Do not generate a
	direct return for interrupt handlers.

2010-11-15  Joern Rennecke  <>

	* (tm.texi): Replace with rule for:
	(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  <>

	PR lto/44150
	* lto-opts.c (lto_write_options): Write -fexceptions even if
	not set by the user.

2010-11-13  Paolo Bonzini  <>

	PR c/46462
	* c-decl.c (declspecs_add_type): Make variables with error types
	* 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  <>

	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  <>

	* config/mips/mips.c (machine_function): Remove
	(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  <>

	PR target/43440
	* (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  <>

	* 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  <>

	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  <>

	* config/mips/ (call_internal): Pass curr_insn to
	(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

2010-11-13  Mingming Sun  <>

	* doc/invoke.texi (MIPS Options): Add loongson3a processor.
	* config/mips/ (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.
	(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  <>

	* config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto

2010-11-13  Iain Sandoe  <>

	* 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  <>

	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  <>

	* 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  <>

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

	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  <>

	* opts-common.c (control_warning_option): New.
	* opts.c (set_default_handlers): New.
	(decode_options): Use set_default_handlers and
	(common_handle_option): Update call to enable_warning_as_error.
	(enable_warning_as_error): Take gcc_options parameters.  Use
	* opts.h (set_default_handlers, control_warning_option): Declare.

2010-11-12  Joseph Myers  <>

	* (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
	* 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
	* 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
	* opts.h: Include input.h.
	(struct cl_option_handler_func, decode_options, set_option,
	handle_generated_option, read_cmdline_option): Take location_t
	(handle_option, enable_warning_as_error): Remove.
	* toplev.c (toplev_main): Update call to decode_options.

2010-11-12  Tobias Grosser  <>

	* graphite-cloog-util.c (oppose_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  <>

	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  <>

	* function.c (expand_function_end): Set the locator of the prologue on
	the stack checking insns.

2010-11-12  Richard Henderson  <>

	* 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
	* config/xtensa/ (fmasf4): Rename from muladdsf3; use fma.
	(fnmasf4): Rename from mulsubsf3; use fma.

2010-11-12  Joern Rennecke  <>
	    Richard Henderson  <>

	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

2010-11-12  Pat Haugen  <>

	* opts-common.c (decode_cmdline_option): Initialize separate_args.

2010-11-12  Jan Hubicka  <>

	* doc/invoke.texi (early-inlining-insns): Update default.
	* params.def (early-inlining-insns): Default to 10.

2010-11-12  Olivier Hainque  <>

	* 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]

2010-11-12  Joern Rennecke  <>

	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/ (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/ (LOCAL_ALIGNMENT): State that the type, if any,
	should be unsigned.
	* 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/ (*movsf_constant_store): Remove duplicated

	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

2010-11-12  Eric Botcazou  <>

	PR debug/46375
	* emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.

2010-11-11  Rodrigo Rivas Costa  <>

	PR lto/46376
	* lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.

2010-11-11  Nathan Froyd  <>

	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  <>

	* optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.

2010-11-11  Richard Henderson  <>

	* config/fused-madd.opt: New file.
	* config.gcc [i386-*, x86_64-*] (extra_options): Use it.
	* config/i386/i386.c (ix86_extra_costs): Handle FMA.
	* config/i386/i386.opt (mfused-madd): Remove.
	* config/i386/ (split_fma): Remove.
	(split_fms, split_fnma, split_fnms): Remove.

2010-11-12  Jakub Jelinek  <>

	PR target/46088
	* config/i386/ (*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  <>

	* (gengtype-lex.c): Include bconfig.h first.

2010-11-11  Jan Hubicka  <>

	* 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  <>

	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  <>

	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  <>

	* 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  <>

	* reginfo.c (fix_register): Avoid inserting English word in
	diagnostic sentence.  Use %qs for quoting and %'.

2010-11-11  H.J. Lu  <>

	* config/i386/driver-i386.c (host_detect_local_cpu): Support
	Intel processor family 6, model 0x2c.

2010-11-11  Joseph Myers  <>

	* 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  <>

	* 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  <>

	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  <>

	* 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

2010-11-11  Martin Jambor  <>

	PR tree-optimization/46383
	* ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
	(compute_complex_ancestor_jump_func): Likewise.
	* tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.

2010-11-11  Jakub Jelinek  <>

	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  <>

	* 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
	* 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
	(cris_asm_output_label_ref): Use %' in diagnostic.
	* config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
	* 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
	* config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
	* config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
	* config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
	* config/i386/i386.c (ix86_option_override_internal): Write
	diagnostic as a single sentence without trailing '.'.  Use %' in
	(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
	* config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
	lowercase letter.
	* config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
	* 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
	* 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
	* config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
	* 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
	* config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
	* config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
	* 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
	* 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
	* 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
	* 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  <>

	PR middle-end/46419
	* config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
	(_mm_cvtpu16_ps): Ditto.

2010-11-10  Joseph Myers  <>

	* 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
	(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  <>

	PR target/45986
	* config/sparc/sparc.c (sparc_delegitimize_address): New function.

2010-11-10  Quentin Neill  <>

	* 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.
	(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/ (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  <>

	* 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.
	(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.
	* config/i386/ (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  <>

	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  <>

	PR tree-optimize/46228
	* cgraph.c (cgraph_propagate_frequency): Fix typo.

2010-11-10  H.J. Lu  <>

	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  <>

	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  <>

	PR tree-optimization/44964
	* ipa-inline.c (cgraph_flatten): Check that SSA form matches.

2010-11-10  Martin Jambor  <>

	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  <>

	* 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.
	* config/darwin-driver.c: Don't condition includes on
	(darwin_default_min_version): Make static.
	(darwin_driver_init): New.  Call darwin_default_min_version if not
	* config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
	(ASM_SPEC): Add %{static}.
	(darwin_default_min_version): Don't declare.
	(darwin_driver_init): Declare.
	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}.
	* config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
	(DRIVER_SELF_SPECS): Handle options formerly in
	* config/mep/mep.opt (mfar): New.
	* config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
	(DRIVER_SELF_SPECS): Define.  Handle options formerly in
	* config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
	* 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  <>

	* config/s390/s390.c (s390_emit_prologue): Report the stack
	size if -fstack-usage is used.

2010-11-10  Richard Guenther  <>

	PR tree-optimization/46398
	* tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.

2010-11-10  Joern Rennecke  <>

	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
	* config/iq2000/ (andsi3+1): Add gcc_unreachable for
	unexpected alternative.
	(*movsf_internal): Likewise.
	(indirect_jump): Replace call to non-existant function with call to
	(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
	(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
	(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  <>

	* 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  <>

	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  <>

	* c-parser.c (c_parser_struct_declaration): Handle declaration
	specifiers followed by CPP_CLOSE_BRACE.

2010-11-09  Michael Meissner  <>

	* config/rs6000/ (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
	(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  <>

	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  <>

	PR tree-optimization/46036
	* tree-if-conv.c (predicate_bbs): Call unshare_expr before

2010-11-09  Jakub Jelinek  <>

	PR debug/46171
	* df-problems.c (struct dead_debug_use, struct dead_debug): Move
	(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  <>

	* config/fr30/fr30.c: Include "df.h".

2010-11-09  Richard Guenther  <>

	PR tree-optimization/46355
	* tree-loop-distribution.c (tree_loop_distribution): Do not
	distribute loops without a single exit.

2010-11-09  Andreas Krebbel  <>

	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  <>

	* config/pdp11/ (lshrsi3, lshrhi3): Use add for decrement.

2010-11-09  Richard Guenther  <>

	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  <>

	* 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.
	* config/picochip/ (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/ (attribute cpu): Cast value to
	enum attr_cpu.

2010-11-09  H.J. Lu  <>

	PR bootstrap/46392
	* gengtype-parse.c (type): Call get_input_file_name to get file name.

2010-11-09  Eric Botcazou  <>

	* 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  <>

	* config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
	output of byte values.

2010-11-09  Jakub Jelinek  <>

	PR middle-end/46360
	* tree-ssa-propagate.c (update_call_from_tree): Fix for use
	not in SSA mode.

2010-11-09  Richard Guenther  <>

	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.
	* (varasm.o): Add pointer-set.h dependency.

2010-11-09  Nick Clifton  <>

	* config/mn10300/mn10300-modes.def: New file.

2010-11-09  Basile Starynkevitch  <>
	    Jeremie Salvucci  <>

	* 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
	(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  <>

	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  <>

	* config/pdp11/ (lshrsi3, lshrhi3): Fix wrong code.

2010-11-08  Paul Koning  <>

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

2010-11-08  Paul Koning  <>

	* config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
	to 8 bits.

2010-11-08  Michael Meissner  <>

	PR target/46378
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
	turn on ISA 2.04 rounding instructions for power5.

	* config/rs6000/ (friz): Friz is an ISA 2.04 instruciton,
	not ISA 2.02.

	PR target/45585
	* config/rs6000/ (movdi_low): Allow DImode values to be
	in FPR registers.
	(movdi_low_st): Ditto.

2010-11-08  Joern Rennecke  <>
	    Richard Henderson  <>

	PR target/44758
	* config/frv/ (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_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
	* config/lm32/ (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  <>

	* gengtype (get_output_file_for_structure): Ensure type is union
	or struct.
	(write_splay_tree_allocator_def): Use

2010-11-08  Andreas Krebbel  <>

	* 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  <>

	* 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  <>

	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  <>

	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  <>

	* gengtype (main): Get here's position using POS_HERE macro for
	do*typedef calls.

2010-11-07  Ian Lance Taylor  <>

	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  <>

	* config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
	all possible addressing modes.

2010-11-07  Uros Bizjak  <>

	PR tree-optimization/46346
	* tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.

2010-11-07  Richard Sandiford  <>

	* config/mips/mips.c: Revert previous patch.
	* config/mips/ Likewise.

2010-11-07  Richard Sandiford  <>

	* config/mips/mips.c (mips_rtx_costs): Handle FMA.
	* config/mips/ (*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  <>

	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  <>

	LIBCALL_VALUE): Remove macros.
	(fr30_function_value_regno_p, fr30_function_value,
	fr30_libcall_value): New functions.

2010-11-06  Joern Rennecke  <>

	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  <>

	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).
	* target.def (objc_construct_string_object): Rename, amend
	(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.

2010-11-06  Eric Botcazou  <>
	    Pascal Obry  <>

	* config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
	in 64-bit mode and 17 otherwise.

2010-11-06  Andreas Krebbel  <>

	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  <>

	PR target/46326
	* config/i386/i386.c (ix86_delegitimize_address): Fix a typo
	in the last change.

2010-11-05  Ian Lance Taylor  <>

	* explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.

2010-11-05  Jakub Jelinek  <>

	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  <>

	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  <>

	* config/i386/i386.c (legitimate_pic_address_disp_p):
	(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/ (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  <>

	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  <>

	* 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  <>

	* 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  <>

	* doc/options.texi (Args): Document.
	* doc/ (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.
	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  <>
	    Uros Bizjak  <>

	* 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

2010-11-05  Joern Rennecke  <>

	 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.
	* config/m32c/ (andsi3): Add default case to switch.
	(iorsi3, xorsi3): Likewise.
	* config/m32c/ (addsi3_1, subsi3_1): Likewise.
	* config/m32c/ (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  <>

	* 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  <>

	* doc/md.texi (Machine Constraints): Correct formatting in PDP-11

2010-11-04  Chao-ying Fu  <>

	* Test assembler support for DSP Rev1 mult.
	* configure: Regenerate.
	* 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_madd<u>, mips_msub<u>):
	New define_expand patterns.
	* config/mips/ (ka): Update the constraint to test
	* config/mips/ (mips_madd<u>, mips_msub<u>, mips_mult,
	mips_multu): Delete.
	* config/mips/ (<u>mulsidi3_32bit): Add comments.
	Change target constraint to "ka".
	Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
	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  <>

	* doc/md.texi (Machine Constraints): Add PDP-11 constraints.

2010-11-04  Paul Koning  <>

	* doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.

2010-11-04  Nicola Pero  <>

	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  <>

	* 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  <>

	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  <>

	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  <>

	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  <>

	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  <>

	PR tree-optimization/46068
	* ipa-split.c (consider_split): Remove gcc_unreachable.

2010-11-04  Richard Guenther  <>

	* tree-nested.c (build_addr): Use build_fold_addr_expr.

2010-11-04  Richard Guenther  <>

	PR tree-optimization/45991
	* gimplify.c (force_gimple_operand_1): Use the provded test
	function in the initial test.

2010-11-04  Jeff Law  <>

	* ira.c (validate_equiv_mem): Remove code to avoid invalidation
	of readonly memory equivalances for const/pure calls.

2010-11-04  Richard Guenther  <>

	PR tree-optimization/45733
	* tree-vect-stmts.c (reverse_vec_elements): Honor the
	permute builtins function return type.

2010-11-04  Joern Rennecke  <>

	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
	* 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
	(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  <>

	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  <>
	    Richard Henderson  <>

	* 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/ (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

2010-11-04  Artjoms Sinkarovs  <>
	    Richard Guenther  <>

	* 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  <>

	* Filter -mdynamic-no-pic from CFLAGS when testing for
	plugin capabilities.
	* configure: Regenerate.

2010-11-03  Xinliang David Li  <>

	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  <>

	* config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.

2010-11-03  Kaz Kojima  <>

	* 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  <>

	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  <>

	* config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
	xsmindp/xsmaxdp on VSX for single precision min/max.
	* config/rs6000/ (vsx_smaxsf3): Ditto.
	(vsx_sminsf3): Ditto.

2010-11-03  Eric Botcazou  <>

	* combine.c (try_combine): Fix formatting issues, improve comments and
	fix a pasto.

2010-11-03  Eric Botcazou  <>

	* 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  <>

	PR rtl-optimization/45865
	* (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.
	(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  <>

	PR middle-end/46288
	* predict.c (strip_predict_hints): Simply DCE builtin expect if
	the result is unused.

2010-11-03  Jakub Jelinek  <>

	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
	(cond_if_else_store_replacement): New function.

2010-11-03  Richard Guenther  <>

	* opts.c (finish_options): Properly check for all WHOPR
	flags before complaining about -flto-partition.

2010-11-04  Alan Modra  <>

	* config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
	(rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
	* config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
	* config/rs6000/ (load_toc_v4_PIC_3b): Use "b" constraint
	on input, "r" on output.

2010-11-03  Nicola Pero  <>

	Implemented -fobjc-std=objc1 flag.
	* doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
	* 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  <>

	PR middle-end/46241
	* dwarf2out.c (scope_die_for): Properly detect global scope.

2010-11-03  Richard Guenther  <>

	PR tree-optimization/46190
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
	Properly compute peel iterations.

2010-11-03  Richard Guenther  <>

	PR tree-optimization/46286
	* tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
	re-allocated vector data.

2010-11-03  H.J. Lu  <>

	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  <>

	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  <>

	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  <>

	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  <>

	PR middle-end/46251
	* builtins.c (expand_builtin_sincos): Properly build MEM_REFs,

2010-11-03  Jakub Jelinek  <>

	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  <>

	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

2010-11-03  Jakub Jelinek  <>

	PR debug/46252
	* reload1.c (delete_dead_insn): Use prev_active_insn instead of
	* 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  <>

	* configure: Rebuild.
	* Rebuild.

2010-11-02  Nathan Froyd  <>

	* builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
	* 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  <>

	* config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
	* config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.

	* config/i386/ (*call_pop_0_vzeroupper): Use parallel
	and call ix86_split_call_vzeroupper instead of
	(*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  <>

	* config/i386/ (*sibcall_1_rex64_vzeroupper): Fix a typo.

2010-11-02  Eric Botcazou  <>

	* basic-block.h (insert_insn_end_bb_new): Delete.
	* cfgrtl.c (insert_insn_end_bb_new): Likewise.

2010-11-02  Uros Bizjak  <>
	    H.J. Lu  <>

	* 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
	(ix86_split_call_vzeroupper): New.
	(ix86_split_call_pop_vzeroupper): Likewise.

	* config/i386/ (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  <>

	PR lto/46273
	* config.gcc: Revert last patch: set lto_binary_reader.

2010-11-02  Richard Guenther  <>

	PR tree-optimization/46149
	* tree-ssa-structalias.c (get_constraint_fop_1): Properly handle
	non-indirect MEM_REF variants.

2010-11-02  Richard Guenther  <>

	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>

	* (*-*-irix6*): Disable set_have_as_tls.
	(*-*-osf*): Likewise.
	* configure: Regenerate.

2010-11-02  H.J. Lu  <>

	* config/i386/driver-i386.c (host_detect_local_cpu): Updated
	for Intel Core 2 and Core i7.

2010-11-02  Maxim Kuvyrkov  <>

	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.
	* config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
	Core 2/i7.
	(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/ Document new targetm.sched hooks.
	* doc/tm.texi: Regenerate.

	(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  <>

	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  <>

	PR tree-optimization/46177
	* tree-loop-distribution.c (prop_phis): Use

2010-11-02  Martin Jambor  <>

	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  <>

	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  <>

	* doc/install.texi (Configuration): Note in two places that Java
	is not enabled by default.

2010-11-02  Ian Lance Taylor  <>

	* doc/install.texi (Prerequisites): Remove libelf paragraphs.
	(Configuration): Mention --disable-lto.  Remove --with-libelf

2010-11-02  Ian Lance Taylor  <>

	* Remove elf_getshdrstrndx test.  Don't substitute
	LIBELFINC.  Remove HAVE_libelf.
	* config.gcc: Don't set lto_binary_reader.
	* (LIBELFLIBS, LIBELFINC): Remove variables.
	(LIBS): Remove $(LIBELFLIBS).
	* configure: Rebuild.
	* Rebuild.

2010-11-02  Nathan Froyd  <>

	* 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

2010-11-02  Iain Sandoe  <>

	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.
	* config/i386/darwin.h (DARWIN_X86) Define to 1.
	(CC1_SPEC): Do not remove mdynamic-no-pic.
	Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
	(FUNCTION_PROFILER): Correct over-length line.
	* 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
	* config/darwin-protos.h (machopic_symbol_defined_p): New.
	* config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
	Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
	* 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.
	Moved common definition from x86 and rs6000.
	(MACHO_DYNAMIC_NO_PIC_P): Override value.
	(MACHOPIC_PURE): Likewise.
	* config.gcc (x86-darwin-*): Remove darwin.opt.

2010-11-02  Jakub Jelinek  <>

	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  <>
	    Maxim Kuvyrkov  <>

	* 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  <>
	    Maxim Kuvyrkov  <>

	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  <>
	    Maxim Kuvyrkov  <>
	    H.J. Lu  <>

	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  <>

	* 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  <>

	* (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  <>

	* fold-const.c (fold_indirect_ref_1): Handle folding

2010-11-01  Kaz Kojima  <>

	* config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
	(sh_delegitimize_address): New function.

2010-11-01  Joseph Myers  <>

	* 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
	* 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  <>

	* common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
	* doc/ (SWITCH_TAKES_ARG): Remove.
	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  <>

	* config/pdp11/ Use iterators.
	(addqi3, subqi3, iorsi3, xorsi3): Delete.

2010-11-01  Steve Ellcey  <>

	* defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
	* libgcov.c (__gcov_indirect_call_profiler): Set
	defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.

2010-11-01  Nathan Froyd  <>

	PR tree-optimization/46259

	2010-10-30  Nathan Froyd  <>
	* tree-vect-stmts.c (vect_get_vec_def_for_operand): Use

2010-11-01  DJ Delorie  <>

	* config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
	as well as an assertion.

2010-11-01  Paul Koning  <>

	* config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
	complex modes in memory.

2010-11-01  Nathan Froyd  <>

	* tree.c (build_vector_from_val): Use useless_type_conversion_p.

2010-11-01  Jakub Jelinek  <>

	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  <>

	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.
	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  <>

	* 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  <>

	* config/i386/cygming.h (TARGET_SEH): New.
	(MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
	(TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
	(ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
	* 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/ (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  <>

	PR tree-optimization/46142
	* tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
	accommodate third function argument.

2010-10-30  Nathan Froyd  <>

	* tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.

2010-10-30  Nathan Froyd  <>

	* 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  <>

	* emit-rtl.c (mark_used_flags): New function.
	(set_used_flags, reset_used_flags): Call it.

2010-10-30  Uros Bizjak  <>

	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  <>

	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  <>

	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
	* 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  <>

	REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
	(REG_OK_STRICT): Move description.

2010-10-29  Paul Koning  <>

	* config/pdp11/ (*and<mode>): Rename to *bic<mode>.

2010-10-29  Paul Koning  <>

	* config/pdp11/ (divhi3, modhi3, divmodhi3): Fix ICE.

2010-10-29  Paul Koning  <>

	* config/pdp11/ (andhi3, andqi3): Fix wrong code error.

2010-10-29  Richard Henderson  <>

	PR rtl-opt/46226
	* stmt.c (expand_asm_operands): Call do_pending_stack_adjust
	for asm goto.

2010-10-29  Paul Koning  <>

	* config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
	register to register move.

2010-10-29  Paul Koning  <>

	* config/pdp11/pdp11.c (print_operand_address): Correct handling
	of integer constant addresses, delete vax-only logic.

2010-10-11  Hariharan Sandanagobalane  <>

	* config/picochip/picochip.c (picochip_is_short_branch): Simplify
	a conditional expression.

2010-10-29  Paul Koning  <>

	* config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
	instruction encoding.

2010-10-29  Artjoms Sinkarovs  <>
	    Andrew Pinski  <>

	* 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  <>

	* config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
	pdp11_secondary_memory_needed): Declare.
	* config/pdp11/ (float_operand): New predicate.
	* config/pdp11/ (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,
	(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.
	(BASE_RETURN_VALUE_REG): Add other float types.

2010-10-29  Nick Clifton  <>

	* 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.
	* 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/ (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  <>

	* config/sh/sh.c (sh_promote_function_mode): Use
	default_promote_function_mode if !sh_promote_prototypes.

2010-10-28  Paolo Bonzini  <>

	* recog.c (split_all_insns): Remove dead code.

2010-10-28  Nathan Froyd  <>


2010-10-28  Nathan Froyd  <>

	* config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
	* config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
	(cris_function_incoming_arg, cris_function_arg_advance): New functions.

2010-10-28  Nathan Froyd  <>

	* 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.

2010-10-28  Nathan Froyd  <>

	* 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.

2010-10-28  Nathan Froyd  <>

	* 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.

2010-10-28  Nathan Froyd  <>

	* config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
	* config/arc/arc.c (arc_function_arg): and...
	(arc_function_arg_advance):  New functions.

2010-10-28  Nathan Froyd  <>

	* 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.

2010-10-28  Nathan Froyd  <>

	* config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
	(m68hc11_function_arg_advance): Delete.
	* config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
	* config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
	Take a const_tree and a bool.
	(m68hc11_function_arg_advance): Likewise.

2010-10-28  Nathan Froyd  <>

	* config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
	(xstormy16_function_arg_advance): Delete.
	* config/stormy16/stormy16.h (FUNCTION_ARG): 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.

2010-10-28  Nathan Froyd  <>

	* config/moxie/moxie-protos.h (moxie_function_arg): Delete.
	* config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE):
	(moxie_function_arg): Make static.  Take a const_tree and a bool.
	(moxie_function_arg_advance): New function.

2010-10-28  Nathan Froyd  <>

	* config/mn10300/mn10300-protos.h (function_arg): Delete.
	* config/mn10300/mn10300.h (FUNCTION_ARG): 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.

2010-10-28  Nathan Froyd  <>

	* 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_pass_by_reference): Call iq2000_function_arg).

2010-10-28  Nathan Froyd  <>

	* 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
	(fr30_function_arg): New function.
	(fr30_function_arg_advance): New function.

2010-10-28  Nathan Froyd  <>

	* 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.

2010-10-28  Uros Bizjak  <>

	PR target/46153
	* config/i386/ (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  <>

	* config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
	constants in thumb2.

2010-10-28  Eric Botcazou  <>

	* 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  <>

	* config/ia64/ia64-protos.h (ia64_function_arg): Delete.
	(ia64_function_arg_advance): Delete.
	* config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): 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.

2010-10-27  Steve Ellcey  <>

	* 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.

2010-10-27  Eric Botcazou  <>

	* 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  <>

	* gimplify.c (gimplify_decl_expr): Handle anonymous artificial
	variables sooner.

2010-10-27  Jie Zhang  <>
	    Maxim Kuvyrkov  <>

	* haifa-sched.c (ISSUE_POINTS): Remove.
	(max_issue): Don't issue more than issue_rate instructions.

2010-10-27  Ian Lance Taylor  <>

	PR target/46197
	* config/i386/ (UNSPECV_SPLIT_STACK_RETURN): New.
	(split_stack_return): Replace UNSPEC_STACK_CHECK with

2010-10-27  H.J. Lu  <>

	* 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
	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.
	(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/ (vzeroupper_operation): Removed.

	* config/i386/ (avx_vzeroupper): Removed.
	(*avx_vzeroupper): Removed.
	(avx_vzeroupper): New.

	* doc/invoke.texi: Document -mvzeroupper.

2010-10-27  Eric Botcazou  <>

	* 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  <>
	    Olivier Hainque  <>

	* 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  <>

	* c-parser.c (cp_parser_objc_at_property_declaration): Removed
	parsing of RID_COPIES and RID_IVAR.

2010-10-27  Nicola Pero  <>

	* c-parser.c (c_parser_objc_at_property_declaration): Recognize
	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

2010-10-27  Nicola Pero  <>

	* 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_methodprotolist): Same change.

2010-10-26  H.J. Lu  <>

	* config/i386/ (split_stack_return): Put back unspec_volatile.

2010-10-26  Jan Hubicka  <>

	* 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  <>

	* cgraphbuild.c (build_cgraph_edges): Use ipa-reference
	to represent OMP.

2010-10-26  H.J. Lu  <>

	* config/i386/ (split_stack_return): Replace
	unspec_volatile with unspec.

2010-10-26  Jonathan Wakely  <>

	* doc/install.texi: Fix typo in --with-sysroot description.

2010-10-26  Jan Hubicka  <>

	* ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
	Use info provided by linker plugin.

2010-10-26  Jason Merrill  <>

	* 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  <>

	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  <>

	* doc/invoke.texi: Improve documentation of

2010-10-26  Ira Rosen  <>

	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  <>

	* config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
	current definition of struct_real_format.

2010-10-26  H.J. Lu  <>

	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  <>

	PR middle-end/45687
	* ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF

2010-10-25  Rodrigo Rivas Costa  <>

	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  <>

	* 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

2010-10-25  Paul Koning  <>

	* config/pdp11/ 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  <>

	* Use $cpu_type instead of $target to define the nop.
	* configure: Regenerate.

2010-10-25  Jie Zhang  <>

	* 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  <>

	* 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  <>

	* config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.

2010-10-24  Paul Koning  <>

	* config/pdp11/ Change length attribute to be in bytes.
	* config/pdp11/pdp11.c (output_jump): Ditto.

2010-10-24  Ian Lance Taylor  <>

	* config/i386/i386.c (ix86_va_start): Remove extraneous blank line.

2010-10-24  Eric Botcazou  <>

	* 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  <>

	* 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  <>

	PR target/46144
	* config/i386/ (*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  <>

	* 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  <>

	* cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
	* 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.
	* 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/ (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
	* doc/tm.texi: Regenerate.
	* doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.

2010-10-23  Jie Zhang  <>

	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.

	2008-09-09  Andrey Belevantsev  <>
	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  <>

	* gimplify.c (gimplify_variable_sized_compare): Preserve the source
	location info of the expression.

2010-10-22  DJ Delorie  <>

	* 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/ (addsi3_1): Support SImode symbols.
	* config/m32c/ (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  <>
	    Andrew Pinski  <>

	* c-typeck.c (build_array_ref): Handle subscripting of vectors.
	* doc/extend.texi: New paragraph

2010-10-22  Paul Koning  <>

	* config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.

2010-10-22  DJ Delorie  <>

	* config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.

2010-10-22  Paul Koning  <>

	* config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.

2010-10-22  Richard Henderson  <>

	* config/i386/i386.c (ix86_builtin_vectorized_function): Add
	cases for __builtin_fma and __builtin_fmaf.

2010-10-22  Richard Henderson  <>

	* config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
	NEG+USE for vectors as well.
	* config/i386/ (*absneg<VEC_FLOAT_MODE>2): New pattern
	and splitter.

2010-10-22  Joseph Myers  <>

	* doc/ (SWITCH_CURTAILS_COMPILATION): Remove documentation.
	* doc/tm.texi: Regenerate.

2010-10-22  Changpeng Fang  <>

	* config/i386/ New file.
	* config/i386/ (include ""): 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_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  <>

	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  <>

	* config/i386/i386.c (processor_costs bdver1_cost): Update
	insn costs and architectural parameters for bdver1.

2010-10-22  Richard Guenther  <>

	* 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  <>

	PR target/46098
	* config/i386/ (*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  <>

	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  <>

	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  <>

	* target.h (enum opt_levels, struct default_options): New.
	* target.def (handle_ofast): Remove hook.
	(target_option.optimization): Change to
	* 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
	(decode_options): Pass extra parameters to
	* common.opt (falign-loops): Use value 0 with Var.
	(frerun-cse-after-loop, ftree-ter): Remove Init.
	* 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,
	* config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/arm/arm.c (arm_option_optimization: Change to
	* config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/avr/avr.c (avr_option_optimization_table,
	* config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/cris/cris.c (cris_option_optimization): Change to
	* config/crx/crx.c (crx_option_optimization): Change to
	* config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/fr30/fr30.c (fr30_option_optimization_table,
	* config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/frv/frv.c (frv_option_optimization_table,
	* config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/h8300/h8300.c (h8300_option_optimization): Change to
	* config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/i386/i386.c (ix86_option_optimization): Change to
	* config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
	as initializer.
	* config/ia64/ia64.c (ia64_option_optimization): Change to
	* config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
	* config/iq2000/iq2000.c (iq2000_option_optimization_table,
	* config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/lm32/lm32.c (lm32_option_optimization_table,
	* config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/m32r/m32r.c (m32r_option_optimization): Change to
	* config/mcore/mcore.c (mcore_option_optimization): Change to
	* config/mep/mep.c (mep_option_optimization): Change to
	* config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/microblaze/microblaze.c
	* config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/mips/mips.c (mips_option_optimization_table,
	* config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/mmix/mmix.c (mmix_option_optimization): Change to
	* config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/mn10300/mn10300.c (mn10300_option_optimization_table,
	* config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/pa/pa.c (pa_option_optimization_table,
	* config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/pdp11/pdp11.c (pdp11_option_optimization): Change to
	* config/picochip/picochip.c (picochip_option_optimization_table,
	* config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/rs6000/rs6000.c (rs6000_option_optimization_table,
	* config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/rx/rx.c (rx_option_optimization_table,
	* config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/s390/s390.c (s390_option_optimization): Change to
	(s390_option_override): Update comment.
	* config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/score/score.c (score_option_optimization_table,
	* config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/sh/sh.c (sh_option_optimization): Change to
	(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.
	* config/sh/sh.opt (mspace): Make into an alias for -Os.
	* config/sparc/sparc.c (sparc_option_optimization_table,
	* config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/stormy16/stormy16.c (xstorym16_option_optimization_table,
	* config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/v850/v850.c (v850_option_optimization): Change to
	* config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
	* config/xtensa/xtensa.c (xtensa_option_optimization): Change to
	* config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.

2010-10-21  Iain Sandoe  <>

	Based on the CFString implementation in FSF apple/trunk branch.

	* target.def (objc_construct_string): New Hook.
	* doc/tm.texi (objc_construct_string): Document.
	* 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.

2010-10-21  Nathan Froyd  <>

	* config/alpha/alpha.c (alpha_build_builtin_va_list): Use
	* 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):
	* config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.

2010-10-22  Jie Zhang  <>

	* 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
	* 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
	(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  <>

	* config/spu/spu.c (spu_function_arg): Dereference CUM parameter.

2010-10-21  Nathan Froyd  <>

	* 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  <>

	* 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  <>

	PR target/45946
	* config/i386/ (*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  <>

	* config/pdp11/ (arith_operand,
	const_immediate_operand, expand_shift_operand,
	immediate15_operand): Delete
	* config/pdp11/pdp11.c: Ditto.
	* config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
	* config/pdp11/ (various): Use standard constraints
	instead of removed ones.
	* config/pdp11/ New file.
	* config/pdp11/ New file.

2010-10-21  Bingfeng Mei  <>

	PR c/45834
	* alias.c (true_dependence_1): Remove obsolete check for QImode.
	(may_alias_p): Ditto.

2010-10-21  Martin Jambor  <>

	PR tree-optimization/45875
	* tree.c (get_binfo_at_offset): Remove initial zero offset test.

2010-10-21  Nathan Froyd  <>

	* tree-into-ssa.c (rewrite_update_enter_block): Remove unused
	(create_new_def_for): Likewise.

2010-10-21  Nick Clifton  <>

	* config/mn10300/mn10300.c: Fold code to 80-character width.
	Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
	(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
	(CPP_SPEC): Move to...
	* config/mn10300/ Fold code to 80-character width.
	Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for

2010-10-21  Ira Rosen  <>

	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
	* 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_type_demotion): Fix comment, pass scalar operands to
	(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

2010-10-21  Nathan Froyd  <>

	* 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  <>

	* 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  <>

	* config/i386/ (ssescalarmodesuffix): Add V8SI and V4DI.

2010-10-21  Richard Guenther  <>
	    Michael Matz  <>

	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  <>

	PR tree-optimization/46111
	* tree-parloops.c (take_address_of): Re-organize for MEM_REF.

2010-10-21  Andreas Krebbel  <>

	* config/s390/ (*xordi3_cc): Mark xgrk as z196 only.

2010-10-21  Tristan Gingold  <>

	* config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
	* config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.

2010-10-21  Tristan Gingold  <>

	* config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
	* config/alpha/alpha.c (alpha_function_arg): Adjust call.

2010-10-21  Tristan Gingold  <>

	* config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
	* config/ia64/vms.h (TARGET_DEFAULT): Ditto.

2010-10-20  Nathan Froyd  <>

	* 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  <>

	* config/pdp11/ (various): Fix conditions on a number of
	insn to check for target 11/40 or higher.

2010-10-20  Nicola Pero  <>

	* 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
	(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  <>

	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  <>

	* 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  <>

	* 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  <>

	* 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  <>

	* tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
	call for single operand expression.

2010-10-20  Eric Botcazou  <>

	* 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  <>

	Fix several build errors for pdp11 target.
	* config/pdp11/ (*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  <>

	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  <>

	PR fortran/42169
	* ira-emit.c (store_can_be_removed_p): Return false instead of

2010-10-20  Dmitry Melnik  <>

	* fold-const.c (fold_binary_loc): New transformation.

2010-10-20  H.J. Lu  <>

	PR target/46085
	* config/i386/ (reduc_splus_v8sf): Updated.
	(reduc_splus_v4df): Likewise.

2010-10-20  Richard Guenther  <>

	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  <>

	* stor-layout.c (skip_simple_constant_arithmetic): New function.
	(self_referential_size): Use it instead of skip_simple_arithmetic.

2010-10-20  Olivier Hainque  <>

	* 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  <>

	* 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  <>

	* 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.
	(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  <>

	* config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
	* config/i386/ (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  <>

	* lower-subreg.c (resolve_shift_zext): Delete conditional code for

2010-10-19  Richard Henderson  <>

	* config/ia64/ (fmasf4, *fmssf4, *nfmasf4): New.
	(fmadf4, *fmsdf4, *nfmadf4): New.
	(fmaxf4, *fmsxf4, *nfmaxf4): New.

2010-10-19  Michael Eager  <>

	* config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
	Use sjlj unwind info for exceptions.

2010-10-19  Francois-Xavier Coudert<>

	PR fortran/43414
	* dwarf2out.c (add_calling_convention_attribute): Flag main
	Fortran subroutine with DW_AT_main_subprogram.

2010-10-19  Nick Clifton  <>

	* config/rx/rx.c (rx_function_value): Small integer types are
	promoted to SImode.
	(rx_promote_function_mode): New function.

2010-10-19  Nick Clifton  <>

	* config/mep/mep.c (mep_print_operand): Use
	(mep_output_aligned_common): Likewise.

2010-10-19  Basile Starynkevitch  <>

	* gengtype.c (new_structure): Remove ad-hoc "location_s" processing.

2010-10-18  Richard Henderson  <>

	* 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  <>

	* config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
	(bdesc_multi_arg): Remove the corresponding builtins.
	* config/i386/ (UNSPEC_FMA4_INTRINSIC): Remove.
	* config/i386/ (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  <>

	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  <>

	* 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  <>

	Implemented parsing @synthesize and @dynamic for Objective-C.
	* c-parser.c (c_parser_external_declaration): Recognize
	(c_parser_objc_at_synthesize_declaration): New.
	(c_parser_objc_at_dynamic_declaration): New.

2010-10-18  Nicola Pero  <>

	* 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  <>

	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  <>

	PR target/36898
	PR middle-end/43760
	* config/ia64/ia64.c (rws_access_regno): Remove predicate check.

2010-10-18  Joseph Myers  <>

	* config/i386/i386.c (ix86_option_override_internal): Define and
	use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
	* config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.

2010-10-18  Nicola Pero  <>

	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  <>

	Radar 4301047
	* (objc_quals): Build objc qualifier list same way
	as gcc-3.3

2010-10-18  Jan Hubicka  <>

	* ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
	function_and_variable_visibility): Revert accidental commit.

2010-10-18  Nicola Pero  <>

	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  <>

	Radar 4204796
	* (typespec_nonreserved_nonattr): Remove volatile from
	'volatilized' type used in a typeof operator.

2010-10-18  Eric Botcazou  <>

	* 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  <>

	PR c/46015
	* c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
	on computed goto argument.

2010-10-18  Richard Guenther  <>

	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  <>

	* config/arm/ (neon_move_hi_quad_<mode>): Fix the order
	of operands to vec_concat.

2010-10-18  Richard Guenther  <>

	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  <>

	PR other/43448
	* Remove.
	* (GCCBUG_INSTALL_NAME, gccbug): Remove
	(doc, distclean, install-common): Remove reference to gccbug.
	* configure: Regenerate.
	* (all_outputs): Remove gccbug.
	* doc/configfiles.texi: Remove references to gccbug.
	* doc/sourcebuild.texi: Dito.

2010-10-18  Jakub Jelinek  <>

	PR middle-end/46019
	* fold-const.c (fold_binary_loc): If integer_pow2p has

2010-10-18  Basile Starynkevitch  <>
	    Jeremie Salvucci  <>

	* gengtype.c (verbosity_level): Add variable.
	(set_gc_used): Count variables for verbosity.
	(close_output_files): Backing up files, counting written ones
	(write_types): Count emitted functions for verbosity. Added
	debug messages.
	(write_enum_defn): Count structures for verbosity. Added debug
	(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  <>

	* gengtype.c (parse_program_options): Add allocation of
	plugin_files, and correct test on nb_plugin_files.

2010-10-17  Nicola Pero  <>

	Merge from 'apple/trunk' branch on FSF servers.

	2006-03-27 Fariborz Jahanian  <>

	Radar 4133425
	* c-decl.c (undeclared_variable): Issue diagnostic on
	private 'ivar' access.

2010-10-17  Uros Bizjak  <>

	PR target/46051
	* config/i386/ (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  <>

	* 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  <>

	* 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  <>

	* c-parser.c (c_parser_for_statement): Move initialization of
	cond and incr before if.

2010-10-17  Anatoly Sokolov  <>

	* target.def (preferred_output_reload_class): New hook.
	* 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.
	(push_reload): Change preferred_class variable type to reg_class_t.
	* recog.c (reg_fits_class_p): Change result type to bool. Change cl
	argument type from enum reg_class to reg_class_t. Use
	* 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):
	* 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.

2010-10-17  Iain Sandoe  <>

	* c-parser.c (c_parser_objc_class_instance_variables): Update to use
	visibility enum, and handle @package.

2010-10-17  Nicola Pero  <>

	* 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  <>

	PR middle-end/44206
	* ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
	existence of refrences before removing the function.

2010-10-16  Jan Hubicka  <>

	* 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
	* cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
	* lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
	* predict.c (compute_function_frequency): Initialize the new flags.

2010-10-16  Eric Botcazou  <>

	* 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  <>

	* 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  <>

	* 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  <>

	* 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
	(ix86_option_optimization): Don't set flag_omit_frame_pointer and
	flag_zee to 2.
	* config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
	* 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
	* opts.c (finish_options): Check opts_set->x_flag_section_anchors.

2010-10-16  Kai Tietz  <>

	* Make sure inhibit_libc remains false for mingw targets
	as cross.
	* configure: Regenerated.

2010-10-15  Xinliang David Li  <>

	* tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
	(use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
	into a recursive function.

2010-10-15  Uros Bizjak  <>

	* config/i386/ (*movdfcc_1_rex64): Correct mode attribute.
	(*movdfcc_1): ditto.

2010-10-15  Joseph Myers  <>

	* target.def (target_option.init_struct): New hook.
	* doc/ (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
	* config/i386/i386.c (ix86_option_init_struct,
	(ix86_option_optimization): Move some settings to
	* config/pdp11/pdp11.c (pdp11_option_init_struct,
	(pdp11_option_optimization): Move some settings to
	* config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
	rs6000_option_init_struct.  Use options structure pointer.
	* config/s390/s390.c (s390_option_init_struct,
	(s390_option_optimization): Don't set
	flag_asynchronous_unwind_tables here.
	* config/sh/sh.c (sh_option_init_struct,
	(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.

2010-10-14  Michael Meissner  <>

	* 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,

	* 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/ (UNSPEC_VSX_MADD): Delete.
	(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/ (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/ (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  <>

	* 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  <>

	* doc/invoke.texi: Add -fstrict-volatile-bitfields to
	Option Summary and Index.

2010-10-15  Richard Guenther  <>

	* tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
	for automatic variables again.

2010-10-15  Joseph Myers  <>

	* doc/extend.texi (Variable Length): Don't refer to VLAs not
	conforming to C99.

2010-10-15  Joseph Myers  <>

	* 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.

2010-10-15  Joseph Myers  <>

	* config/rs6000/rs6000.c (rs6000_option_optimization): Don't
	disable section anchors for[4] != 'O'.

2010-10-15  Joseph Myers  <>

	* config/frv/frv.c (frv_option_optimization,
	* config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.

2010-10-15  Michael Matz  <>

	* cgraphunit.c (clone_of_p): Define unconditionally.

2010-10-15  Richard Guenther  <>

	PR lto/45957
	* tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.

2010-10-15  Chung-Lin Tang  <>

	* 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  <>

	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  <>

	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  <>

	Merge from FSF apple 'trunk' branch.
	2006 Fariborz Jahanian  <>

	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 syntax.
	(build_modify_expr): Likewise.

2010-10-14  Jakub Jelinek  <>

	PR tree-optimization/46008
	* tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.

2010-10-14  Richard Guenther  <>

	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  <>

	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  <>
	    Basile Starynkevitch  <>

	* gengtype.c:  Include getopt.h and version.h.

	(lang_bitmap, struct outf, outf_p)
	(get_output_file_with_visibility, oprintf): Definitions moved to
	(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.

	(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  <>

	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  <>

	* 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  <>

	* 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  <>

	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  <>

	* 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
	(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
	* 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
	* 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
	* toplev.c (DEFPARAM): Update definition for changes to param_info.
	(general_init): Call finish_params.

2010-10-14  Nick Clifton  <>

	* config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
	(FIRST_PSEUDO_REGISTER): Increase by one.
	(HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
	(MODES_TIEABLE): Call mn10300_modes_tieable.
	(LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
	(mn10300_cc_status_mdep): 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
	(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/ (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/ (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  <>

	* sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
	on RTX_FRAME_RELATED_P insns and the insn to which
	* sched-vis.c (print_value): Allow NULL value.

2010-10-14  Andrey Belevantsev  <>

	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  <>

	* 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  <>

	* 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  <>

	* et-forest.c (et_nca): Return NULL immediately when
	the dominance forest has disjoint components.

2010-10-13  Vladimir Makarov  <>

	* 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  <>

	* 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  <>

	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  <>

	* 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/ (fixuns_trunc<mode>si2): Likewise.
	* config/i386/ (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
	(bdesc_args): Likewise.
	(ix86_builtin_vectorized_function): Support
	(ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.

	* config/i386/ (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  <>
	    H.J. Lu  <>

	* config/i386/ (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  <>

	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  <>

	* 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

2010-10-13  Richard Guenther  <>

	PR objc/45878
	* tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.

2010-10-13  Eric Botcazou  <>

	* cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
	Canonicalize input operands of ASM_OPERANDS insns.

2010-10-13  Richard Guenther  <>

	PR tree-optimization/45788
	* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
	EH update until fixup-cfg.

2010-10-13  Julian Brown  <>

	* config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
	from CORE_REGS and GENERAL_REGS classes.
	* config/arm/ (*thumb1_movsi_insn): Ignore all parts of
	final constraint for register preferencing.

2010-10-13  Richard Guenther  <>

	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  <>

	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  <>

	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  <>

	* tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
	Use operand's type for POINTER_PLUS_EXPR.

2010-10-13  Alexandre Oliva  <>

	* c-parser.c (c_parser_for_statement): Initialize incr.

2010-10-12  Xinliang David Li  <>

	PR tree-optimization/45972
	* tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
	with too many arguments.

2010-10-12  Jakub Jelinek  <>

	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  <>

	* config/sparc/ (*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  <>

	* libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
	* 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.
	(DF_SIZE): Likewise.
	* doc/tm.texi: Regenerate.

2010-10-12  Nathan Froyd  <>

	* config/rs6000/ (scc_rev_comparison_operator): New.
	* config/rs6000/ (*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  <>

	* 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  <>

	PR bootstrap/45958
	* Support '-plugin' as the second option to the linker.

2010-10-12  Richard Henderson  <>

	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  <>

	* tree-ssa-structalias.c (get_constraint_for_1): Constants
	only point to nonlocal, not anything.

2010-10-11  Hariharan Sandanagobalane  <>

	* 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  <>

	* flag-types.h: New.
	* (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
	(FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
	(OPTIONS_H): Define.
	(c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
	of options.h.
	* (tm_include_list): Include options.h not flags.h.
	* configure: Regenerate.
	* flags.h: Include flag-types.h.  Include options.h at top of file
	(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  <>

	* 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.
	* (RTL_BASE_H): Depend on $(HASHTAB_H).

2010-10-12  Ralf Wildenhues  <>

	PR testsuite/45974
	* ($(lang_checks_parallel))
	($(lang_checks_parallelized)): Use single quotes for
	$(RUNTESTFLAGS), to allow passing quoted content.

2010-10-11  John David Anglin  <>

	* 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  <>

	* recog.c (nonmemory_operand): Call immediate_operand for
	CONSTANT_P operands.

2010-10-11  Uros Bizjak  <>

	* config/i386/ (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  <>

	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
	(check_and_make_def_conflict): Save the original reg.

2010-10-11  Martin Jambor  <>

	PR middle-end/45699
	* gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among

2010-10-11  Ralf Wildenhues  <>

	* ($(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  <>

	* target.def (preferred_reload_class): New hook.
	* 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
	* 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

2010-10-11  Eric Botcazou  <>

	* 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  <>

	PR middle-end/45862
	* doc/ (SUPPORTS_WEAK): Update.
	* doc/tm.texi: Regenerate.
	* defaults.h (SUPPORTS_WEAK): Update comment.
	* dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
	* varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
	(merge_weak, declare_weak, do_assemble_alias, supports_one_only,
	make_decl_one_only): Likewise.
	* config/pa/som.h (SUPPORTS_WEAK): Rename defines to
	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  <>

	* 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  <>

	* 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  <>

	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.
	* config/picochip/picochip.c (picochip_function_arg): Take a
	const_tree and a bool.
	(picochip_incoming_function_arg): Likewise.
	(picochip_arg_advance): Likewise.

2010-10-11  John David Anglin  <>

	PR middle-end/45955
	* ipa.c (build_cdtor): Delete endless loop.

2010-10-07  Andi Kleen  <>

	* (MOSTLYCLEANFILES): Remove cc1*dummy, add
	(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.
	(dosum): Change for incremental checksum. Remove C output.
	(main): Iterate over all argument files. Add C output.

2010-10-11  Joseph Myers  <>

	* 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
	* config/ia64/ia64.c (ia64_option_default_params,
	(ia64_option_optimization): Move some code to
	* config/picochip/picochip.c (picochip_option_override): Use
	* config/rs6000/rs6000.c (rs6000_option_default_params,
	(rs6000_option_override_internal): Use maybe_set_param_value.
	(rs6000_option_optimization): Move some code to
	* config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
	* config/sh/sh.c (sh_option_default_params,
	(sh_option_optimization): Move some code to sh_option_default_params.
	* config/sparc/sparc.c (sparc_option_override): Use
	* config/spu/spu.c (spu_option_default_params,
	(spu_option_optimization): Move some code to spu_option_default_params.
	(spu_option_override): Use maybe_set_param_value.
	* 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
	(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  <>

	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  <>

	* config/s390/ (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.

2010-10-11  Jakub Jelinek  <>

	PR target/45870
	* config/i386/i386.c (ix86_delegitimize_tls_address): New function.
	(ix86_delegitimize_address): Use it.

2010-10-10  Eric Botcazou  <>

	* opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.

2010-10-10  Uros Bizjak  <>

	* 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  <>

	* config/mips/mips.c (mips_handle_option): Make "value" with

2010-10-09  Richard Henderson  <>

	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
	(expand_builtin_alloca): Likewise.  Remove TARGET parameter.
	* calls.c (initialize_argument_information): Update call to
	(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  <>

	* 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.

2010-10-09  Nathan Froyd  <>

	* libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
	* libgcc2.c: Likewise.

2010-10-09  Richard Guenther  <>

	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  <>

	PR lto/45947
	* tree.c (free_lang_data_in_cgraph): Properly walk the varpool.

2010-10-09  Nathan Froyd  <>

	* 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.

2010-10-09  Nathan Froyd  <>

	* 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.

2010-10-09  Nathan Froyd  <>

	* 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.

2010-10-09  Nathan Froyd  <>

	* 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.

2010-10-09  Nathan Froyd  <>

	* 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.

2010-10-09  Nathan Froyd  <>

	* 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.

2010-10-09  Nathan Froyd  <>

	* 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.

2010-10-09  Richard Guenther  <>

	PR tree-optimization/45945
	* tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.

2010-10-09  Eric Botcazou  <>

	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  <>

	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  <>

	* config.gcc (bfin*-rtems*): Add newlib-stdint.h.
	* config.gcc (lm32*-rtems*): Add newlib-stdint.h.

2010-10-08  H.J. Lu  <>

	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  <>

	* builtins.c (fold_call_stmt): Don't copy gimple call arguments
	into a temporary array.

2010-10-08  Jakub Jelinek  <>

	PR tree-optimization/45903
	* simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
	of {A,L}SHIFTRT of MEM.

2010-10-08  Richard Guenther  <>

	* 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  <>

	* 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

2010-10-08  Joseph Myers  <>

	* (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.
	* (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.
	* 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
	* 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
	(initial_lang_mask, initial_min_crossjump_insns,
	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,
	decode_cmdline_options_to_array_default_mask and
	lang_hooks.init_option before decode_options.  Update arguments to
	* tree.h: Include flags.h instead of options.h.

2010-10-08  Nathan Froyd  <>

	* config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.

2010-10-08  Nathan Froyd  <>

	* config/sparc/sparc-protos.h (function_arg_advance, function-arg):
	* config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_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.

2010-10-08  Nathan Froyd  <>

	* config/bfin/bfin-protos.h (function_arg, function_arg_advance):
	* 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

2010-10-08  Nathan Froyd  <>

	* 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.

2010-10-08  Nathan Froyd  <>

	* 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.

2010-10-08  Nathan Froyd  <>

	* 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.

2010-10-08  Nathan Froyd  <>

	* config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.

2010-10-08  Nathan Froyd  <>

	* 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  <>

	* config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
	* config/fr30/ (leave_func): Rewrite without post_inc.

2010-10-08  Nathan Froyd  <>

	* config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
	* config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.

2010-10-08  Alexandre Oliva  <>

	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  <>

	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  <>

	* config/m68hc11/m68hc11.c (m68hc11_print_operand): Call

2010-10-07  Nathan Froyd  <>

	* builtins.c (rewrite_call_expr): Move code to...
	(rewrite_call_expr_valist):  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  <>

	* Update copyright year.

2010-10-07  Dave Korn  <>

	* (host_lto_plugin_soname): New shell variable.
	* (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
	* Regenerate.
	* configure: Regenerate.
	* gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
	LTO plugin shared library.

2010-10-07  Richard Henderson  <>

	* target.h (enum unwind_info_type): Move ...
	* coretypes.h: ... here.

2010-10-07  Nicola Pero  <>

	* doc/objc.texi (Fast enumeration protocol): Mention that
	'unsigned int' can also be used instead of 'unsigned long' in

2010-10-07  Martin Jambor  <>

	* 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  <>

	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  <>

	PR target/45805
	* config/arm/ (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  <>

	* config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
	(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_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  <>

	* 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  <>

	* 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: Update.
	* config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.

2010-10-07  Richard Guenther  <>

	* 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: Update.

2010-10-07  Richard Guenther  <>

	PR middle-end/45869
	* tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
	of pointers.

2010-10-07  Alan Modra  <>

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
	rather than sign extension by hand.

2010-10-07  Jan Hubicka  <>

	PR middle-end/45926
	* ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.

2010-10-07  Richard Guenther  <>

	PR bootstrap/45914
	* Fix typo.
	* configure: Regenerated.

2010-10-06  Francois-Xavier Coudert  <>

	* 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  <>

	* doc/ (CLASS_LIKELY_SPILLED_P): Remove documentation.
	* doc/ Regenerate.
	* system.h (CLASS_LIKELY_SPILLED_P): Poison.
	* targhooks.c (default_class_likely_spilled_p): Don't use the

	* config/arm/ Update comment.

2010-10-06  Jan Hubicka  <>

	* 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  <>

	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

2010-10-06  Olivier Hainque  <>

	* config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
	switch on insn codes as sequence of ifs.

2010-10-06  Hariharan Sandanagobalane  <>

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

2010-10-06  Richard Guenther  <>

	* (regmove.o): Depend on $(TARGET_H).

2010-10-06  Nicola Pero  <>

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

	* config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
	(MDR_REGNUM): Define.
	(INCOMING_RETURN_ADDR_RTX): Define in terms of 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  <>

	PR target/45901
	* config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to

2010-10-06  Jakub Jelinek  <>

	BUILT_IN_TOUPPER): Mark as leaf.

	PR middle-end/45838

2010-10-05  Anatoly Sokolov  <>

	* 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  <>

	* c-parser.c (c_parser_objc_method_definition): Updated comment.

2010-10-05  Jan Hubicka  <>

	* doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
	* opts.c (decode_options): Handle lto partitions.
	* common.opt (flto-partition=1to1, flto-partition=balanced): New.

2010-10-05  Jan Hubicka  <>

	* cgraphunit.c (assemble_function): Output thunks and aliases before
	the function itself.

2010-09-29  Hariharan Sandanagobalane  <>

	* config/picochip/picochip.c (picochip_option_override): Disable
	exception flags for picochip.

2010-10-05  Joseph Myers  <>

	* 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.
	* (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
	* 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  <>
	    Nicolas Roche  <>

	* config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
	* config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.

2010-10-05  Ira Rosen  <>

	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

2010-10-05  Richard Guenther  <>

	* 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  <>
	    Christian Borntraeger  <>

	* 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_CPU_Z196, TARGET_Z196): New macros.
	* config.gcc: Enable z196 for --with-arch.
	* config/s390/ New file.
	* config/s390/ New type for multiply and add.
	* config/s390/ Likewise.
	(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  <>

	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  <>

	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  <>

	* 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
	(gimple_fold_obj_type_ref_known_binfo): Likewise.
	* gimple.c (get_base_address): Accept all kinds of decls.

2010-10-04  Joseph Myers  <>

	* 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
	* 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):
	(lm32_in_small_data_p): Remove cast in comparison with
	* config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
	ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
	* config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
	(m32r_init): Check global_options_set.x_g_switch_value instead of
	(m32r_in_small_data_p): Remove cast in comparison with
	(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  <>

	* common.opt (fira-coalesce): Remove.

	* doc/invoke.texi (flag_ira_coalesce): Remove.

	* ira-color.c (allocno_coalesced_p): Move before
	processed_coalesced_allocno_bitmap): Ditto.
	(update_conflict_hard_regno_costs): Don't use
	(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
	(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_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

	* ira.c: Remove comment about coalescing.

2010-10-04  Joseph Myers  <>

	* config/mips/mips.h (target_flags_explicit): Declare for

2010-10-04  Andi Kleen  <>

	* (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
	gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.

2010-10-04  Matthias Klose  <>

	* 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  <>

	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  <>

	* 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.
	(arm_vector_alignment_reachable): New.
	(neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
	(arm_print_operand): Include alignment qualifier in %A.
	* config/arm/ (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  <>

	* optc-gen.awk: Define global_options_set.  Don't define
	* opth-gen.awk: Declare global_options_set.  Define
	target_flags_explicit as macro.
	* opts-common.c (handle_option): Take opts_set and generated_p
	(handle_generated_option, read_cmdline_option, set_option): Take
	opts_set parameter.
	(set_option): Use opts_set instead of hardcoding target_flags and
	* 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
	* 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
	* 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
	* 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
	* toplev.c (target_flags_explicit): Remove.

2010-10-04  Jan Hubicka  <>

	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  <>

	PR tree-optimization/45572
	* ipa-prop.c (ipa_make_edge_direct_to_target): Call
	* ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.

2010-10-04  Yao Qi  <>

	* doc/passes.texi: Clean up.

2010-10-03  Ian Lance Taylor  <>

	* 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  <>

	* 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  <>

	* cppbuiltin.c: New file.
	* cppbuiltin.h: New file.
	* Take into account cppbuiltin.{h,c}.

2010-10-03  Andi Kleen  <>

	* lto-cgraph.c (input_cgraph): Check for missing sections.

2010-10-03  Uros Bizjak  <>

	* config/i386/ (*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  <>

	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  <>

	* tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
	call destination is known.

2010-10-02  John David Anglin  <>

	PR target/45820
	* config/pa/pa.c (pa_secondary_reload): Handle symbolic operands

2010-10-02  Ralf Wildenhues  <>

	* doc/install.texi (Configuration): Document build_configargs,
	host_configargs, target_configargs.

2010-10-01  Uros Bizjak  <>

	* config/i386/ (*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  <>

	PR tree-optimization/44716
	* config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.

2010-10-01  Nick Clifton  <>

	* 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
	* doc/invoke.texi: Document the new option.

2010-10-01  Richard Guenther  <>

	PR tree-optimization/45854
	* tree-eh.c (cleanup_empty_eh): Avoid degenerate case.

2010-10-01  Anthony Green  <>

	* config.gcc: Fix moxie-*-rtems* configuration.

2010-10-01  Richard Guenther  <>

	* dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
	(gen_decl_die): Likewise.

2010-10-01  Ulrich Weigand  <>

	* 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  <>

	* config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to

2010-10-01  Tristan Gingold  <>

	* Define the nop insn for avr*-*-*
	* configure: Regenerate.

2010-10-01  Alan Modra  <>

	PR target/45807
	* config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
	extend toc_restore_insn.

2010-09-30  Richard Guenther  <>

	PR tree-optimization/43959
	* function.c (gimplify_parameters): Use create_tmp_reg instead of

2010-09-30  Kaz Kojima  <>

	* config/sh/sh.c (sh_expand_prologue): Set

2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Check for Solaris 8 ld with .hidden support.
	* configure: Regenerate.

2010-09-30  Sebastian Pop  <>

	PR middle-end/45758
	* graphite.c (graphite_initialize): Call scev_reset.

2010-09-30  Sebastian Pop  <>

	* 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  <>

	* 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
	* 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  <>

	* 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  <>

	* 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

2010-09-30  Sebastian Pop  <>

	* graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
	over pbb_dim_iter_domain.

2010-09-30  Sebastian Pop  <>

	* graphite-flattening.c: Fix comments.

2010-09-30  Sebastian Pop  <>

	* (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  <>

	* graphite-poly.c (cloog_checksum): New.
	* graphite-poly.h (cloog_checksum): Declared.

2010-09-30  Sebastian Pop  <>

	* 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  <>

	* graphite-poly.h (lst_update_scattering_seq): Removed.
	(lst_update_scattering): Correctly handle outermost loop dewey

2010-09-30  Sebastian Pop  <>

	* 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  <>

	* 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  <>

	* 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  <>

	* graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.

2010-09-30  Sebastian Pop  <>

	* graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.

2010-09-30  Sebastian Pop  <>

	* 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  <>

	* graphite-blocking.c (scop_do_strip_mine): Do not call
	(scop_do_block): Same.

2010-09-30  Vladimir Kargov  <>

	* graphite-scop-detection.c (graphite_can_represent_loop): Correct the

2010-09-30  Sebastian Pop  <>

	* tree-scalar-evolution.c (instantiate_array_ref): New.
	(instantiate_scev_r): Also handle ARRAY_REFs.

2010-09-30  Sebastian Pop  <>

	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
	RESULT_DECL, and FIELD_DECL.  Return false for an
	(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  <>

	* 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  <>

	* graphite-sese-to-poly.c (reduction_phi_p): Remove check for
	(rewrite_degenerate_phi): Same.
	(rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.

2010-09-30  Vladimir Kargov  <>

	* 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  <>

	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  <>

	* 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  <>

	* graphite-scop-detection.c (graphite_can_represent_scev): Remove
	redundant checks.

2010-09-30  Sebastian Pop  <>

	* graphite-clast-to-gimple.c (precision_for_value): Adjust
	computation of precision by 1.

2010-09-30  Riyadh Baghdadi  <>

	* 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  <>

	* graphite-poly.c: Change include order.

2010-09-30  Andreas Simbuerger  <>

	* graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
	(cloog_matrix_nrows): New.

2010-09-30  Riyadh Baghdadi  <>

	* 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  <>

	* graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
	(openscop_print_pdr_polyhedron): Print pph.

2010-09-30  Sebastian Pop  <>

	* graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
	priority signed types.

2010-09-30  Sebastian Pop  <>

	* graphite-clast-to-gimple.c (max_signed_precision_type): Remove
	the call to lang_hooks.types.type_for_size.  Call

2010-09-30  Riyadh Baghdadi  <>

	* 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  <>

	* 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.
	* 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  <>

	PR target/45843
	* config/i386/i386.c (ix86_gimplify_va_arg): Use
	INTVAL (XEXP (slot, 1)) as prev_size.

2010-09-30  Michael Meissner  <>

	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
	* 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  <>

	* 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  <>

	PR bootstrap/45796
	* (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  <>
	    Ralf Wildenhues  <>

	* 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  <>

	* 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.
	* 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/ New.
	* config/microblaze/linux.h: New.
	* config/microblaze/ New.
	* config/microblaze/ 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  <>

	* c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
	parse @optional/@required and set the flags as appropriate.

2010-09-30  Nathan Froyd  <>

	* config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.

2010-09-30  Joseph Myers  <>

	* 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
	* 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
	(diagnostic_report_diagnostic): Pass option_state to
	option_enabled hook.
	* diagnostic.h (diagnostic_context.option_enabled): Add void *
	(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
	* 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
	* 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
	* 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
	(build_target_option_node): Pass &global_options to

2010-09-30  Martin Jambor  <>

	* tree-sra.c (type_consists_of_records_p): Do not check for trailing
	zero sized bit-fields.

2010-09-30  Nicola Pero  <>

	* 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
	(c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
	and RID_AT_PUBLIC instead of RID_PUBLIC.
	(c_parser_statement_after_labels): Use RID_AT_TRY instead of

2010-09-30  Tom G. Christensen  <>

	* 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  <>

	Merge from 'apple/trunk' branch on FSF servers.
	* c-parser.c: Applied change originally in

	2005-10-04  Fariborz Jahanian  <>

	Radar 4281748
	* c-decl.c (start_decl): Check for redeclaration of class name.
	* (after_type_declarator): Recognize CLASSNAME.

2010-09-29  Steve Ellcey  <>

	* config/ia64/ia64.c (ia64_builtin_decl): New.
	(ia64_builtins): New.
	(ia64_init_builtins): Save decls in ia64_builtins.

2010-09-29  Bernd Schmidt  <>

	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.<