2007-12-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR driver/33772
	* collect2.c (SHLIB_SUFFIX): Define if not defined.
	(write_c_file_stat): Use SHLIB_SUFFIX.
	* som.h (SHLIB_SUFFIX): Define.
	* doc/tm.texi (SHLIB_SUFFIX): Document.

2007-12-29  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md ("*divv4sf3"): Rename to "sse_divv4sf3".
	("*sse_rsqrtv4sf2"): Export.
	("*sse_sqrtv4sf2"): Ditto.
	* config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_RSQRTPS_NR,
	IX86_BUILTIN_SQRTPS_NR]: New constants.
	(struct builtin_description) [IX86_BUILTIN_DIVPS]: Use
	CODE_FOR_sse_divv4sf3.
	[IX86_BUILTIN_SQRTPS]: Use CODE_FOR_sse_sqrtv4sf2.
	[IX86_BUILTIN_SQRTPS_NR]: New.
	[IX86_BUILTIN_RSQRTPS_NR]: Ditto.
	(ix86_init_mmx_sse_builtins): Initialize __builtin_ia32_rsqrtps_nr and
	__builtin_ia32_sqrtps_nr.
	(ix86_builtin_vectorized_function): Convert BUILT_IN_SQRTF to
	IX86_BUILTIN_SQRTPS_NR.
	(ix86_builtin_reciprocal): Convert IX86_BUILTIN_SQRTPS_NR to
	IX86_BUILTIN_RSQRTPS_NR.

2007-12-27  Brian Dessent  <brian@dessent.net>

	* doc/invoke.texi (Optimize Options): Add missing opindex for
	-fno-toplevel-reorder.

2007-12-27  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/34591
	* tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip
	stmts (including reduction stmts) that are not live.

2007-12-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/34281
	* config/arm/arm.c (arm_setup_incoming_varargs): If last named
	argument needs double word alignment and cum->nregs is odd, account
	for the inserted padding.

	PR debug/34535
	* tree-mudflap.c (mf_make_builtin): Make decl artificial
	and don't emit debug info for it.

2007-12-26  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Move AT90USB82 
	and AT90USB162 devices from 'avr5' to 'avr35' architecture.
	(ASM_SPEC): Add 'avr35' architecture.
	* config/avr/avr.c (avr_mcu_types): Move AT90USB82 and AT90USB162 
	devices from 'avr5' to 'avr35' architecture.
	(avr_arch_types): Add "avr23" entries.
	(avr_arch): Add 'ARCH_AVR35'.
	* config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add 'avr35'.
	(MULTILIB_MATCHES): Move AT90USB82 and AT90USB162 devices from 'avr5'
	to 'avr35' architecture.

2007-12-22  David Daney  <ddaney@avtrex.com>

	* doc/install.texi (disable-libgcj-bc): Document new option.

2007-12-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/pa.c (hppa_legitimize_address): Use INT14_OK_STRICT in
	mask selection.

	PR target/34525
	* pa.c (legitimize_pic_address): Emit insn to load function label
	forced to memory.

2007-12-21  Andrew Pinski  <pinskia@gmail.com>
	Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/8835
	* config/mcore/mcore.c (mcore_function_value): Call promote_mode
	instead of PROMOTE_MODE.

2007-12-21  Sebastian Pop  <sebastian.pop@amd.com>

	* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix typo.

2007-12-21  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-data-ref.c (signed_type_for_types): New.
	(affine_fn_op): Use signed_type_for_types and signed_type_for instead
	of long_integer_type_node.
	(analyze_ziv_subscript): Same.
	(analyze_siv_subscript_cst_affine): Same.
	(analyze_miv_subscript): Same.
	(omega_setup_subscript): Same.

2007-12-21  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_emit_loadgp): Replace gen_* calls with
	separate gen_*_si and gen_*_di calls.  Pass pic_offset_table_rtx
	as the first argument.
	* config/mips/mips.md (loadgp_newabi, loadgp_absolute)
	(loadgp_rtp): Rename to...
	(loadgp_newabi_<mode>, loadgp_absolute<mode>, loadgp_rtp<mode>):
	...these.  Add modes to all operands.  Add the target register
	as an operand.  Combine loadgp_rtp<mode> with its splitter.

2007-12-20  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.md (fix_return_addr): Remove.
	* config/xtensa/xtensa-protos.h (xtensa_initialize_trampoline): New.
	(xtensa_trampoline_template): New.
	* config/xtensa/xtensa.c (MIN_FRAME_SIZE): Moved here from xtensa.h.
	(xtensa_return_addr): Expand to standard Xtensa insns instead of
	fix_return_addr.  Get high bits from a local label.
	(xtensa_trampoline_template): New function with code moved from
	TRAMPOLINE_TEMPLATE in xtensa.h.  Use L32R instead of CALL0 except
	when using CONST16 or absolute-mode literals.
	(xtensa_initialize_trampoline): New function with code moved from
	INITIALIZE_TRAMPOLINE in xtensa.h.  Use different offsets depending
	on which trampoline version is used.
	* config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Add comment.
	* config/xtensa/xtensa.h (TARGET_ABSOLUTE_LITERALS): Define.
	(MIN_FRAME_SIZE): Moved to xtensa.c.
	(TRAMPOLINE_TEMPLATE): Use xtensa_trampoline_template.
	(TRAMPOLINE_SIZE): Two versions of the trampoline have different sizes.
	(INITIALIZE_TRAMPOLINE): Use xtensa_initialize_trampoline.
	* config/xtensa/ieee754-df.S (XCHAL_NO_MUL): Define.
	(__muldf3): Use CALL12 instead of CALL0 to invoke .Lmul_mulsi3
	helper when not using the CALL0 ABI.  Change .Lmul_mulsi3 to match.
	* config/xtensa/lib1funcs.asm (__umulsidi3): Likewise.
	* config/xtensa/ieee754-sf.S (__mulsf3): Likewise.
	
2007-12-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/34459
	* tree-ssa-dse.c (dse_optimize_stmt): Don't eliminate store if
	USE_STMT not only stores into the same object as STMT, but might
	read it too.

2007-12-19  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/34413
	* tree-data-ref.c (affine_fn_op, analyze_ziv_subscript,
	analyze_siv_subscript_cst_affine, analyze_miv_subscript,
	omega_setup_subscript): Use long_integer_type_node instead of
	integer_type_node.

2007-12-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/34525
	* pa.c (legitimize_pic_address): Force function labels into memory.

2007-12-19  Zdenek Dvorak  <ook@ucw.cz>

	* omp-low.c (build_omp_regions_1): Recognition of combined parallels
	moved ...
	(expand_omp): ... here.

2007-12-19  Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/34355
	* tree-parloops.c (take_address_of): Handle expresions
	instead of just variables.
	(eliminate_local_variables_1): Force whole invariant
	address to ssa name.

2007-12-19  Alexander Monakov  <amonakov@ispras.ru>
	    Revital Eres  <eres@il.ibm.com>

	* modulo-sched.c (generate_reg_moves): Insert the reg-moves
	right before the notes which precedes the insn, if they exists.
	(loop_canon_p): Add dump info.
	(sms_schedule): Likewise.

2007-12-19  Richard Sandiford  <rsandifo@nildram.co.uk>

	* tree.h (set_decl_incoming_rtl): Add a by_reference_p parameter.
	* emit-rtl.c (set_decl_incoming_rtl): Likewise.  Don't set the
	rtl's register attributes when the parameter is true.
	* function.c (assign_parms_unsplit_complex, assign_parms)
	(expand_function_start): Update calls to set_decl_incoming_rtl.

2007-12-19  Richard Sandiford  <rsandifo@nildram.co.uk>

	* rtl.def (SUBREG): Update comments.
	* rtl.h (reg_attrs): Be explicit about the type of offset used.
	(set_reg_attrs_from_mem): Rename to...
	(set_reg_attrs_from_value): ...this.
	(adjust_reg_mode, byte_lowpart_offset): Declare.
	* emit-rtl.c (byte_lowpart_offset): New function.
	(update_reg_offset): Remove special offset handling for big-endian
	targets.
	(gen_rtx_REG_offset, gen_reg_rtx_offset): Explicitly say that the
	offset parameter is added to REG_OFFSET.
	(adjust_reg_mode): New function.
	(set_reg_attrs_for_mem): Rename to...
	(set_reg_attrs_for_value): ...this and generalize to all values.
	If the register is a lowpart of the value, adjust the offset
	accordingly.
	(set_reg_attrs_for_parm): Update after the above renaming.
	(set_reg_attrs_for_decl_rtl): New function, split out from
	set_decl_incoming_rtl.  Set the offset of plain REGs to the
	offset of the REG's mode from the decl's.  Assert that all
	subregs are lowparts and handle their inner registers in the
	same way as plain REGs.
	(set_decl_rtl, set_incoming_decl_rtl): Use reg_attrs_for_decl_rtl.
	(subreg_lowpart_offset): Explicitly say that the returned offset
	is a SUBREG_BYTE.
	* combine.c (do_SUBST_MODE, try_combine, undo_all): Use adjust_reg_mode
	instead of PUT_MODE.
	* final.c (alter_subreg): Fix/update argument to gen_rtx_REG_offset.
	* config/ia64/ia64.c (ia64_expand_load_address): Likewise.
	* regclass.c (reg_scan_mark_refs): Use set_reg_attrs_from_value.
	* reload.c (find_reloads_subreg_address): Call set_mem_offset
	when offseting a MEM.
	* var-tracking.c (offset_valid_for_tracked_p): Delete.
	(mode_for_reg_attrs): Replace with...
	(track_loc_p): ...this new function.  Return the mode and offset
	to the caller, checking that the latter is valid.  If the rtx is
	a paradoxical lowpart of the decl, use the decl's mode instead.
	Do the same when storing to a register that contains the entire decl.
	(var_lowpart): Use byte_lowpart_offset rather than
	subreg_lowpart_offset when adjusting the offset attribute.
	(count_uses, add_uses, add_stores): Use track_reg_p instead of
	REG_EXPR, MEM_EXPR, REG_OFFSET, INT_MEM_OFFSET, track_expr_p,
	offset_valid_for_tracked_p and mode_for_reg_attrs.  Generate
	lowparts for MEMs as well as REGs.
	(vt_add_function_parameters): When obtaining the information from
	the decl_rtl, adjust the offset to match incoming.  Use track_loc_p
	and var_lowpart.

2007-12-18  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/34123
	* lambda-code.c (can_duplicate_iv): New.
	(cannot_convert_modify_to_perfect_nest): New.
	(cannot_convert_bb_to_perfect_nest): New.
	(can_convert_to_perfect_nest): Split up.

2007-12-18  David Daney  <ddaney@avtrex.com>

	* config/mips/mips.md (clear_hazard): Use PRINT_OPERAND punctuation
	instead of .set push and .set pop.

2007-12-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/33474
	* config/bfin/bfin.c (bfin_adjust_cost): Dig into PARALLELs to find
	the SET.

2007-12-18  Razya Ladelsky <razya@il.ibm.com>

	* tree-parloops.c (reduiction_info): Change documentation of
	reduction_initial field.
	(initialize_reductions): Remove creation of reduction_initial variable.
	(create_loads_for_reductions): don't join reduction_initial to
	the loaded value.

2007-12-18  Kaz Kylheku  <kaz@zeugmasystems.com>

	PR rtl-optimization/34456
	* resource.c (mark_set_resources): Use regs_invalidated_by_call
	rather than call_used_regs and global_regs.

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

	PR rtl-optimization/34490
	* simplify-rtx.c (simplify_const_relational_operation): If !sign,
	don't reduce mmin/mmax using num_sign_bit_copies.

2007-12-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* doc/install.texi: Change recommended MPFR from 2.2.1 -> 2.3.0.

2007-12-17  Andreas Schwab  <schwab@suse.de>

	* doc/invoke.texi (Warning Options): Use @itemx.

2007-12-17  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-vectorizer.h (verbosity_levels): Add new verbosity level
	REPORT_COST.
	* tree-vect-transform.c (vect_estimate_min_profitable_iters): Change
	verbosity level to REPORT_COST.
	(vect_model_reduction_cost): Likewise.
	(vect_model_induction_cost): Likewise.
	(vect_model_simple_cost): likewise.
	(vect_model_store_cost): likewise.
	(vect_model_load_cost): likewise.
	(conservative_cost_threshold): Likewise. Remove print.

2007-12-17  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* doc/tm.texi (TARGET_SECONDARY_RELOAD): Fix typos.

2007-12-17  Jakub Jelinek  <jakub@redhat.com>

	PR c/34506
	* c-parser.c (c_parser_omp_all_clauses): Accept optional comma
	in between clauses.

2007-12-17  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/34445
	* tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip 
	stmts (including live stmts) that are not relevant.

2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR target/34025
	* config/i386/t-crtpc: Add $(MULTILIB_CFLAGS).
	* config/i386/t-crtfm: Likewise.

2007-12-17  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (WIDEST_HARDWARE_FP_SIZE): Define.

2007-12-16  Uros Bizjak  <ubizjak@gmail.com>

	* tree-vect-transform.c (conservative_cost_threshold): Add missing
	space to "not vectorized" message.

2007-12-16  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR rtl-optimization/34415
	* df.h (DF_LR_IN, DF_LR_OUT): Update comments.
	* resource.c (mark_target_live_regs): Use DF_LR_IN rather than
	df_get_live_in.  Don't handle pseudos.

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

	PR bootstrap/34003
	* c-decl.c (merge_decls): Copy RTL from olddecl to newdecl.
	* config/pa/pa.c (pa_encode_section_info): If !first, preserve
	SYMBOL_FLAG_REFERENCED flag.

2007-12-15  Alexandre Oliva  <aoliva@redhat.com>

	* tree.c (type_hash_add): Fix whitespace.

2007-12-15  Hans-Peter Nilsson  <hp@axis.com>

	Add CRIS v32 support.  Fix -mcc-init.
	* config.gcc: Make crisv32-* have cpu_type cris.  Handle
	crisv32-*-elf and crisv32-*-none like cris-*-elf and cris-*-none
	but without multilibs and with target_cpu_default=32.
	(crisv32-*-linux*): Handle as cris-*-linux*.  Set
	target_cpu_default to 32 and 10 accordingly.
	* config/cris/cris.c (ASSERT_PLT_UNSPEC): Remove unused macro.
	(cris_movem_load_rest_p, cris_store_multiple_op_p): Remove FIXME.
	Change regno_dir and regno only if !TARGET_V32.
	(cris_conditional_register_usage): If TARGET_V32, set
	reg_alloc_order as per REG_ALLOC_ORDER_V32 and make
	CRIS_ACR_REGNUM non-fixed.
	(cris_print_base): Add gcc_assert for post_inc on CRIS_ACR_REGNUM.
	(cris_print_operand) <case 'Z', case 'u'>: New cases.
	<case REG of case 'H'>: Allow for CRIS_SRP_REGNUM.
	(cris_reload_address_legitimized): Always return false for TARGET_V32.
	(cris_register_move_cost): New function, guts from
	REGISTER_MOVE_COST adjusted for CRIS v32.
	(cris_normal_notice_update_cc): New function split out from...
	(cris_notice_update_cc): Set cc_status.flags CC_REVERSED for
	TARGET_CCINIT.  Call cris_normal_notice_update_cc for CC_REV,
	CC_NOOV32 and CC_NORMAL, but set cc_status.flags CC_NO_OVERFLOW
	for CC_NOOV32 and TARGET_V32.
	(cris_simple_epilogue): Always return false for TARGET_V32 if
	cris_return_address_on_stack yields true.
	(cris_cc0_user_requires_cmp): New function.
	(cris_valid_pic_const): Add argument ANY_OPERAND.  All callers
	changed.  Handle CRIS_UNSPEC_PLT_PCREL and CRIS_UNSPEC_PCREL.
	(cris_asm_output_case_end): New function, guts from
	ASM_OUTPUT_CASE_END adjusted for CRIS v32.
	(cris_override_options): Adjust for CRIS v32.  Mask out
	TARGET_SIDE_EFFECT_PREFIXES and TARGET_MUL_BUG if v32.
	(cris_asm_output_mi_thunk, cris_expand_epilogue)
	(cris_gen_movem_load, cris_emit_movem_store)
	(cris_expand_pic_call_address, cris_asm_output_symbol_ref)
	(cris_asm_output_label_ref, cris_output_addr_const_extra): Adjust
	for CRIS v32.
	(cris_split_movdx): Copy re-used MEM.
	* config/cris/t-elfmulti: Add multilib v32 for -march=v32.
	* config/cris/predicates.md
	("cris_general_operand_or_pic_source"): New predicate.
	("cris_general_operand_or_plt_symbol"): Replace by...
	("cris_nonmemory_operand_or_callable_symbol"): New predicate.
	* config/cris/linux.h: Sanity-check TARGET_CPU_DEFAULT for
	presence and contents.
	(CRIS_SUBTARGET_DEFAULT_ARCH): New macro, MASK_AVOID_GOTPLT for
	v32, 0 otherwise.
	(CRIS_CPP_SUBTARGET_SPEC, CRIS_CC1_SUBTARGET_SPEC,
	CRIS_ASM_SUBTARGET_SPEC): Adjust for different TARGET_CPU_DEFAULT.
	(CRIS_SUBTARGET_DEFAULT): Add CRIS_SUBTARGET_DEFAULT_ARCH.
	* config/cris/cris.h: Sanity-check TARGET_CPU_DEFAULT for contents.
	(CRIS_DEFAULT_TUNE, CRIS_ARCH_CPP_DEFAULT)
	(CRIS_DEFAULT_ASM_ARCH_OPTION): New macros.
	(CRIS_CC1_SUBTARGET_SPEC): Change default tuning to use
	CRIS_DEFAULT_TUNE. 
	(CRIS_CPP_SUBTARGET_SPEC): Ditto.  Add CRIS_ARCH_CPP_DEFAULT.
	(ASM_SPEC): Add sanity-check erroring out when both -march= and
	-mcpu= are specified.  Pass on either as --march=v32.
	(CRIS_ASM_SUBTARGET_SPEC): When neither -march= or -mcpu= are
	specified, pass on CRIS_DEFAULT_ASM_ARCH_OPTION.
	(CRIS_CPU_V32): New macro.
	[!TARGET_CPU_DEFAULT]: Default-define as CRIS_CPU_BASE.
	[!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]: Move default
	TARGET_DEFAULT definition after new TARGET_CPU_DEFAULT definition.
	Define v32-adjusted TARGET_DEFAULT.
	(CRIS_DEFAULT_CPU_VERSION): Change to TARGET_CPU_DEFAULT from
	CRIS_CPU_BASE.
	(TARGET_V32): New macro.
	(REG_ALLOC_ORDER_V32): New macro.
	(HARD_REGNO_MODE_OK): Do not allow larger-than-register-size modes
	into CRIS_ACR_REGNUM.
	(enum reg_class): New classes ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS
	and SPEC_GENNONACR_REGS.
	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Adjust for new classes.
	(REGNO_REG_CLASS): Give ACR_REGS for CRIS_ACR_REGNUM.
	(MODE_CODE_BASE_REG_CLASS): Define, give for OCODE POST_INC
	GENNONACR_REGS, BASE_REG_CLASS otherwise.
	(REG_CLASS_FROM_LETTER): 'a' is for ACR_REGS.
	(REGNO_MODE_CODE_OK_FOR_BASE_P): Define, refusing OCODE POST_INC
	for CRIS_ACR_REGNUM.
	(PREFERRED_RELOAD_CLASS): Keep ACR_REGS as preferred.
	(HARD_REGNO_RENAME_OK): Refuse CRIS_ACR_REGNUM as TO.
	(EXTRA_CONSTRAINT): New constraint 'U'.
	(TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE)
	(ASM_OUTPUT_ADDR_DIFF_ELT): Adjust for CRIS v32.
	(BASE_OR_AUTOINCR_P): Refuse POST_INC for CRIS_ACR_REGNUM.
	(SIMPLE_ADDRESS_P): Remove.
	(GO_IF_LEGITIMATE_ADDRESS): Use BASE_OR_AUTOINCR_P, not redundant
	SIMPLE_ADDRESS_P.  Make one chained if-else, finishing as
	non-match after BASE_OR_AUTOINCR_P for TARGET_V32.
	(REGISTER_MOVE_COST): Just call the new function
	cris_register_move_cost.
	(enum cris_pic_symbol_type): Rename cris_gotrel_symbol to
	cris_rel_symbol.  All users changed.
	(REGISTER_NAMES): Replace "pc" with "acr".
	(ADDITIONAL_REGISTER_NAMES): Add "pc" for 15.
	(ASM_OUTPUT_REG_PUSH): Change to v32-compatible sequence.
	(ASM_OUTPUT_REG_POP): Change to v32-compatible syntax.
	(ASM_OUTPUT_CASE_END): Just call the new function
	cris_asm_output_case_end.
	* gcc/config/cris/cris.md: Group related constants together, with
	comments local.
	(CRIS_UNSPEC_PLT_GOTREL, CRIS_UNSPEC_PLT_PCREL, CRIS_UNSPEC_PCREL)
	(CRIS_UNSPEC_CASESI): New constants.
	(CRIS_UNSPEC_PLT): Remove constant.
	(CRIS_ACR_REGNUM): New constant.
	("slottable"): New attr alternatives "has_return_slot" and
	"has_call_slot".
	("cc"): New attr alternatives "noov32" and "rev".
	((eq_attr "slottable" "has_call_slot"))
	((eq_attr "slottable" "has_return_slot")): New define_delays.
	("movdi", "movsi"): Adjust operands for CRIS v32.
	("tstdi", "cmpdi", "adddi3", "subdi3", "uminsi3")
	("indirect_jump"): Ditto.  Make define_expand.
	("*tstdi_non_v32", "*tstdi_v32", "*tst<mode>_cmp")
	("*tst<mode>_non_cmp", "*cmpdi_non_v32", "*cmpdi_v32")
	("*movdi_v32", "*adddi3_non_v32", "*adddi3_v32")
	("*addsi3_non_v32", "*addsi3_v32", "*addhi3_non_v32")
	("*addhi3_v32", "*addqi3_non_v32", "*addqi3_v32")
	("*subdi3_non_v32", "*subdi3_v32", "*subsi3_non_v32")
	("*subsi3_v32", "*sub<mode>3_nonv32", "*sub<mode>3_v32")
	("*andqi3_non_v32", "*andqi3_v32", "*iorsi3_non_v32")
	("*iorsi3_v32", "*iorhi3_non_v32", "*iorhi3_v32")
	("*iorqi3_non_v32", "*iorqi3_v32", "*uminsi3_non_v32")
	("*uminsi3_v32", "*indirect_jump_non_v32", "*indirect_jump_v32")
	("*expanded_call_v32", "*expanded_call_value_v32"): New patterns,
	for the corresponding standard name.
	("tst<mode>"): Limit to BW and make define_expand.
	("tstsi"): Make separate insn, adjusting for CRIS v32.
	("*cmp_swapext<mode>"): Adjust for v32.  Specify "rev" for attr "cc".
	("cmpsi", "cmp<mode>"): Remove special cases for zero.  Specify
	attr "cc".
	("*btst"): Don't match for TARGET_CCINIT.  Replace test of
	register with compatible "cmpq 0".  Specify attr "cc".
	("*movdi_insn_non_v32"): New pattern, replacing "*movdi_insn" and
	define_split.
	(define_split for DI move): Match CRIS v32 only.
	("*movsi_got_load", "*movsi_internal", "*addi"): Adjust for CRIS v32.
	("load_multiple", "store_multiple", "*addsbw_v32", "*addubw_v32")
	("*adds<mode>_v32", "*addu<mode>_v32", "*bound<mode>_v32")
	("*casesi_jump_v32", "*expanded_andsi_v32", "*expanded_andhi_v32")
	("*extop<mode>si_v32", "*extopqihi_v32", "*andhi_lowpart_v32")
	("*andqi_lowpart_v32", "cris_casesi_v32"): New patterns. 
	("add<mode>3"): Make addsi3, addhi3 and addqi3 define_expand.
	("sub<mode>3"): Ditto subsi3, subhi3 and subqi3.
	("ior<mode>3"): Ditto iorsi3, iorhi3 and iorqi3.
	("*extopqihi_non_v32"): Replace "*extopqihi".
	("*extop<mode>si_non_v32"): Replace "*extop<mode>si".
	("*addxqihi_swap_non_v32"): Rename from "*extopqihi_swap", make
	non-v32 only.
	("*extop<mode>si_swap_non_v32"): Ditto "*extop<mode>si_swap".
	("*expanded_andsi_non_v32"): Ditto "*expanded_andsi".
	("*expanded_andhi_non_v32"): Ditto "*expanded_andhi".
	("*andhi_lowpart_non_v32"): Ditto "*andhi_lowpart".
	("*andqi_lowpart_non_v32"): Ditto "*andqi_lowpart".
	("*expanded_call_non_v32"): Ditto "*expanded_call".  Change from
	"cris_general_operand_or_plt_symbol" to "general_operand".
	("*expanded_call_value_non_v32") Ditto "*expanded_call_value".
	("*casesi_adds_w", "mstep_shift", "mstep_mul")
	("*expanded_call_side", "*expanded_call_value_side")
	(op-extend-split, op-extend-split-rx=rz, op-extend-split-swapped)
	(op-extend-split-swapped-rx=rz, op-extend, op-split-rx=rz)
	(op-split-swapped, op-split-swapped-rx=rz): Make non-v32 only.
	("dstep_mul", "xorsi3", "one_cmplsi2", "<shlr>si3")
	("*expanded_<shlr><mode>", "*<shlr><mode>_lowpart", "ashl<mode>3")
	("*ashl<mode>_lowpart", "abssi2", "clzsi2", "bswapsi2")
	("cris_swap_bits"): Specify "noov32" for attr "cc".
	("<su>mulsi3_highpart"): Ditto.  Correct operand 0 to register_operand.
	("andqi3"): Make define_expand.
	("*return_expanded"): For attr "slottable", change from "has_slot"
	to "has_return_slot".
	("cris_casesi_non_v32"): New pattern, old contents of "casesi".
	("casesi"): Divert into "cris_casesi_v32" and "cris_casesi_non_v32".
	(moversideqi, movemsideqi, mover2side): Require
	TARGET_SIDE_EFFECT_PREFIXES.
	(gotplt-to-plt, gotplt-to-plt-side): Change from CRIS_UNSPEC_PLT
	to CRIS_UNSPEC_PLT_GOTREL.
	* config/cris/cris-protos.h (cris_register_move_cost)
	(cris_cc0_user_requires_cmp, cris_asm_output_case_end): Declare.

2007-12-15  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/7081
	* dwarf2out.c (dwarf_tag_name): Synchronize with dwarf2.h.
	(is_type_die): Cover interface types.
	(class_or_namespace_scope_p): Cover interface and class types.
	(record_type_tag): New.
	(gen_inlined_structure_type_die): Use it.
	(gen_struct_or_union_type_die): Likewise.
	(prune_unused_types_walk): Cover interface types.
	* langhooks.h (classify_record): New enum.
	(classify_record): New member in struct langhooks_for_types.
	* langhooks-def.h (LANG_HOOKS_CLASSIFY_RECORD): New.
	(LANGHOOKS_FOR_TYPES_INITIALIZER): Adjust.

2007-12-15  Alexandre Oliva  <aoliva@redhat.com>

	* dwarf2out.c (reference_to_unused): Don't emit strings in
	initializers just because of debug information.
	* tree.h (TREE_ASM_WRITTEN): Document use for STRING_CSTs.

2007-12-15  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (number_of_iterations_for_all_loops): Replace
	print_loop_ir with print_loops.
	* tree-flow.h (dot_cfg, debug_loops, debug_loop, debug_loop_num,
	print_loops, print_loops_bb): Declare.
	* tree-cfg.c (print_loops_bb): New.
	(print_loop): Print header, latch, bounds, estimation of iterations.
	(print_loop_and_siblings): New.
	(print_loop_ir): Renamed print_loops.
	(debug_loop_ir): Renamed debug_loops.
	(debug_loop, debug_loop_num): New.

2007-12-15  Bernhard Fischer  <aldot@gcc.gnu.org>

	* tree-flow-inline.h.c (next_readonly_imm_use): Fix typo in comment.

2007-12-15  Bernhard Fischer  <aldot@gcc.gnu.org>

	* toplev.c (process_options): Fix typo in warning.

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

	PR target/29978
	* config/i386/i386.c (ix86_expand_branch): Optimize LE/LEU/GT/GTU
	DImode comparisons against constant with all 1's in the lower word.

2007-12-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (sse4_2_pcmpestr): Use reg_not_xmm0_operand
	constraint for operand 2.  Use nonimm_not_xmm0_operand constraint
	for operand 4.  Update arguments in the call to
	gen_sse4_2_pcmpestr_cconly.
	(sse_4_2_pcmpestr_cconly): Renumber insn operands and update insn
	template accordingly.
	(sse4_2_pcmpistr): Use reg_not_xmm0_operand constraint for operand2.
	Use nonimm_not_xmm0_operand constraint for operand 3.  Update
	arguments in the call to gen_sse4_2_pcmpistr_cconly.
	(sse_4_2_pcmpistr_cconly): Renumber insn operands and update insn
	template accordingly.

2007-12-14  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34462
	* tree-ssa-operands.h (create_ssa_artificial_load_stmt): Add
	parameter to say whether to unlink immediate uses.
	* tree-ssa-operands.c (create_ssa_artificial_load_stmt): Do not
	mark the artificial stmt as modified.  Unlink immediate uses
	only if requested.
	* tree-ssa-dom.c (record_equivalences_from_stmt): Update caller.
	* tree-ssa-pre.c (insert_fake_stores): Likewise.

2007-12-13  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR middle-end/33088
	* gimplify.c (gimplify_modify_expr_complex_part): Add note to comment.
	* tree-complex.c (init_dont_simulate_again): Return true if there are
	uninitialized loads generated by gimplify_modify_expr_complex_part.
	* tree-gimple.c (is_gimple_reg_type): Return false for complex types
	if not optimizing.
	* tree-ssa.c (ssa_undefined_value_p): New predicate extracted from...
	(warn_uninit): ...here.  Use ssa_undefined_value_p.
	* tree-ssa-pre.c (is_undefined_value): Delete.
	(phi_translate_1): Use ssa_undefined_value_p.
	(add_to_exp_gen): Likewise.
	(make_values_for_stmt): Likewise.
	* tree-flow.h (ssa_undefined_value_p): Declare.

2007-12-13  Andrew Pinski  <pinskia@gmail.com>
	    David Daney  <ddaney@avtrex.com>

	PR bootstrap/34144
	* system.h: Make -Wuninitialized non-fatal if ASSERT_CHECKING
	is disabled.

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

	PR rtl-optimization/32636
	* df-scan.c (df_get_entry_block_def_set): Set struct_value_rtx
	regno in entry_block_defs even if HAVE_prologue && epilogue_completed.

2007-12-13  Uros Bizjak  <ubizjak@gmail.com>
	    Richard Guenther  <rguenther@suse.de>

	PR target/34435
	* config/i386/emmintrin.h (_mm_shuffle_pd, _mm_extract_epi16,
	_mm_insert_epi16, _mm_shufflehi_epi16, _mm_shufflelo_epi16,
	_mm_shuffle_epi32): Cast non-constant input values to either __m64,
	__m128, __m128i or __m128d in a macro version of the intrinsic.
	Cast constant input values to int.
	* config/i386/ammintrin.h (_mm_extracti_si64, _mm_inserti_si64): Ditto.
	* config/i386/bmmintrin.h (_mm_roti_epi8, _mm_roti_epi16,
	_mm_roti_epi32, _mm_roti_epi64): Ditto.
	* config/i386/smmintrin.h (_mm_blend_epi16, _mm_blend_ps, _mm_blend_pd,
	_mm_dp_ps, _mm_dp_pd, _mm_insert_ps, _mm_extract_ps, _mm_insert_epi8,
	_mm_insert_epi32, _mm_insert_epi64, _mm_extract_epi8, mm_extract_epi32,
	_mm_extract_epi64, _mm_mpsadbw_epu8, _mm_cmpistrm, _mm_cmpistri,
	_mm_cmpestrm, _mm_cmpestri, _mm_cmpistra, _mm_cmpistrc, _mm_cmpistro,
	_mm_cmpistrs, _mm_cmpistrz, _mm_cmpestra, _mm_cmpestrc, _mm_cmpestro,
	_mm_cmpestrs, _mm_cmpestrz): Ditto.
	* config/i386/tmmintrin.h (_mm_alignr_epi8, _mm_alignr_pi8): Ditto.
	* config/i386/xmmintrin.h (_mm_shuffle_ps, _mm_extract_pi16, _m_pextrw,
	_mm_insert_pi16, _m_pinsrw, _mm_shuffle_pi16, _m_pshufw): Ditto.
	* config/i386/mmintrin-common.h (_mm_round_pd, _mm_round_sd,
	_mm_round_ps, _mm_round_ss): Ditto.

2007-12-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34450
	* params.def (PARAM_SCCVN_MAX_SCC_SIZE): New param.
	* invoke.texi (sccvn-max-scc-size): Document.
	* Makefile.in (tree-ssa-sccvn.o): Add $(PARAMS_H) dependency.
	* tree-ssa-sccvn.h (run_scc_vn): Return true on success, false
	on error.
	* tree-ssa-sccvn.c (params.h): Include.
	(DFS): Return true if all went well, return false as soon as
	a SCC exceeds the size of PARAM_SCCVN_MAX_SCC_SIZE.
	(run_scc_vn): Return true if all went well, return false if
	we aborted during DFS.
	* tree-ssa-pre.c (execute_pre): Check if SCCVN finished
	successfully, otherwise bail out.

2007-12-13  Olga Golovanevsky  <olga@il.ibm.com>

	* ipa-struct-reorg.c (is_candidate): Print information to dump 
	file when the type is initialized.
	(get_stmt_accesses):  Likewise when a structure has bitfields
	or field access is too complicate.
	(safe_cond_expr_check): Likewise for unsafe condition expressions.
	(exclude_cold_structs): Likewise for cold structures.
	(collect_structures): Suppress redundant print when there are 
	no structures to transform.
	(do_reorg): Print to dump file a number of structures that 
	will be transformed.
	(dump_new_types): Print a number of new types to replace 
	an original structure type.
	
2007-12-13  Olga Golovanevsky  <olga@il.ibm.com>

	* doc/invoke.texi (Optimiza Options): Document new -fipa-struct-reorg
	option and struct-reorg-cold-struct-ratio parameter.
	
2007-12-13  Torbjorn Granlund  <tege@swox.com>

	* config/i386/i386.c (ix86_rtx_costs) [MULT]: Check op0 for
	ZERO_EXTEND when computing costs for widening multiplication.

2007-12-13  Richard Earnshaw  <rearnsha@arm.com>

	PR target/30192
	* config/arm/ieee754-df.S (floatundidf): Fix for wrong sp value on
	exit when using hard FPA.
	* config/arm/ieee754-df.S (floatdidf): Likewise.

2007-12-12  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/30589
	* doc/install.texi: Document that for MinGW only runtime 3.12 and
	later is supported.

2007-12-12  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (is_mem_ref): Ignore STACK_TIE.

2007-12-12  Aldy Hernandez  <aldyh@redhat.com>

	PR tree-optimization/32901
	* gimplify.c (gimplify_modify_expr_rhs): Handle the case when we
	are assigning from a constant constructor.
	Fix wrapping in function comment.

2007-12-12  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_O_constraint_str): Limit the range
	for 'On' to -4G+1..-1.
	* config/s390/constraints.md: Adjust comment accordingly.

2007-12-11  Nathan Sidwell  <nathan@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Use frame_reg_rtx
	for SPE saves.

2007-12-11  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/cygming.h (DWARF2_UNWIND_INFO): Handle 64-bit
	target same as 32-bit.

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

	PR tree-optimization/34371
	* tree-vectorizer.h (struct _loop_vec_info): Add num_iters_unchanged
	field.
	(LOOP_VINFO_NITERS_UNCHANGED): Define to num_iters_unchanged field.
	* tree-vectorizer.c (set_prologue_iterations,
	slpeel_tree_peel_loop_to_edge): Call unshare_expr on
	LOOP_VINFO_NITERS_UNCHANGED before using it.

2007-12-10  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/34403
	* config/i386/i386.c (ix86_expand_movmem): Punt if the count is large.
	(ix86_expand_setmem): Likewise.

2007-12-10  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR rtl-optimization/34302
	* auto-inc-dec.c (attempt_change): Change place where move is
	inserted.

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

	* dwarf2out.c (gen_array_type_die, gen_descr_array_type_die): For
	Fortran multi-dimensional arrays use DW_AT_ordering
	DW_ORD_col_major.

2007-12-10  Paolo Bonzini  <bonzini@gnu.org>

	PR target/32086
	* config/i386/i386.c (override_options): Enable -fvect-cost-model.

2007-12-10 Uros Bizjak <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_function_regparm): Do not check global_regs
	array, registers that are members of global_regs are also members of
	fixed_regs array.  Use REGPARM_MAX to check that no regparm hard
	register is taken by a fixed register variable.  Check up to and
	including DI_REG when adjusting regparm value due to fixed regs usage.
	(rep_prefix_usable): Check fixed_regs array, not global_regs array for
	available hard registers.
	(ix86_expand_strlen): Ditto.
	* config/i386/i386.md (strmov): Ditto.
	(cmpstrnsi): Ditto.

2007-12-10  Kaz Kojima  <kkojima@gcc.gnu.org>

	* genopinit.c: Include tm_p.h in generated file.

	* config/arm/neon.md (vec_set<mode>_internal): Use INTVAL
	to extract the integer from operands[2].
	(vec_setv2di_internal): Likewise.

	* config/arm/arm.c (arm_size_return_regs): Make return type unsigned.
	(arm_init_neon_builtins): Move code after declarations.

2007-12-10  Hans-Peter Nilsson  <hp@axis.com>

	* reload.c (find_reloads_address_1): To properly mark as an
	autoincdec, pass X for non-NULL OUT in call to push_reload for
	autoincdec which can't be trivially used as an address.

2007-12-10  Pranav Bhandarkar  <pranav.bhandarkar@celunite.com>
	    Hans-Peter Nilsson  <hp@axis.com>

	* caller-save.c (insert_one_insn): If inserting before a call_insn
	then the registers containing the arguments of the call are
	live_throughout in the new insn.

2007-12-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/32889
	PR target/34091
	* pa.md: Consolidate HImode and QImode move patterns into one pattern
	each, eliminating floating-point alternatives.
	* pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p):
	Declare functions.
	* pa-64.h (SECONDARY_MEMORY_NEEDED): Define here.
	* pa.c (pa_secondary_reload): Use an intermediate general register
	for copies to/from floating-point register classes.  Simplify code
	SHIFT_REGS class.  Provide additional comments.
	(pa_cannot_change_mode_class, pa_modes_tieable_p): New functions.
	* pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p.
	(SECONDARY_MEMORY_NEEDED): Delete define.
	(INT14_OK_STRICT): Define.
	(MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using
	soft float.
	(MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise.
	(GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for
	SFmode and DFmode.
	(LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection.
	Align DImode offsets when generating 64-bit code.
	* pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
	(CANNOT_CHANGE_MODE_CLASS): Define.
	* pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode.
	(CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class.

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

	PR fortran/22244
	* langhooks-def.h (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
	* langhooks.h (struct array_descr_info): Forward declaration.
	(struct lang_hooks_for_types): Add get_array_descr_info field.
	* dwarf2.h (DW_AT_bit_stride, DW_AT_byte_stride): New.
	(DW_AT_stride_size, DW_AT_stride): Keep around for Dwarf2
	compatibility.
	* dwarf2out.h (struct array_descr_info): New type.
	* dwarf2out.c (dwarf_attr_name): Rename DW_AT_stride to
	DW_AT_byte_stride and DW_AT_stride_size to DW_AT_bit_size.
	(descr_info_loc, add_descr_info_field, gen_descr_array_type_die):
	New functions.
	(gen_type_die_with_usage): Call lang_hooks.types.get_array_descr_info
	and gen_descr_array_type_die.

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

	PR tree-optimization/34391
	* tree-vect-transform.c (vect_setup_realignment): Mark new
	symbols for renaming.

2007-12-07  Bob Wilson  <bob.wilson@acm.org>
	
	* config/xtensa/xtensa.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
	(ASM_OUTPUT_DWARF_PCREL): Define.
	
2007-12-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34382
	* opts.c (common_handle_option): Handle OPT_fforce_addr.

2007-12-07  Aldy Hernandez  <aldyh@redhat.com>

	* m32c.h (LEGITIMIZE_ADDRESS): Use WIN instead of win.
	(LEGITIMIZE_RELOAD_ADDRESS): Same.

2007-12-07  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/29157
	* doc/install.texi: Explain how to check for a clean environment when
	building GNAT.

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

	* tree-profile.c (gcov_type_tmp_var): New global variable.
	(tree_gen_edge_profiler): Use a single shared variable decl per
	function for edge counter incrementing.
	(tree_profiling): Re-set the shared variable.

2007-12-06  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_va_start): Add prototype.

2007-12-06  Tom Tromey  <tromey@redhat.com>

	PR c/29172
	* c-opts.c (c_common_parse_file): Call cpp_clear_file_cache.

2007-12-06  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_function_ok_for_sibcall): Check
	targetm.binds_local_p as well as DECL_EXTERNAL.

2007-12-06  Harsha Jagasia <harsha.jagasia@amd.com>

	* tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition.
	(set_prologue_iterations): New. Set the prologue iterations to total
	number of scalar iterations if the cost model check indicates that
	scalar code should be generated.
	(slpeel_tree_peel_loop_to_edge): Add a new parameter and code for 
	generating the cost condition for epilog. Call
	set_prologue_iterations to generate cost condition for prolog.
	(new_loop_vec_info): Initialize LOOP_VINFO_NITERS_UNCHANGED.
	* tree-vectorizer.h (LOOP_VINFO_NITERS_UNCHANGED): New.
	(slpeel_tree_peel_loop_to_edge): Update declaration.
	(set_prologue_iterations): New declaration.
	* tree-vect-analyze.c (vect_analyze_loop_form): Update 
	LOOP_VINFO_NITERS_UNCHANGED.
	* tree-vect-transform.c
	(vect_estimate_min_profitable_iters): Add new parameter and
	code to  check if run time cost model test is needed.
	Remove code that adds builtin vectorization cost to scalar
	outside cost for the run time cost model test. If run time
	cost model test is needed add the appropriate guard cost to
	the scalar outside cost. The guard cost depends on whether
	the guard is generated at versioning or at prolog generation
	or at epilog generation. Change cost model equation to include
	scalar outside cost.
	(conservative_cost_threshold): New. Return the less conservative
	profitability threshold between the cost model threshold and the
	user defined vectorization threshold.
	(vect_do_peeling_for_loop_bound): Call conservative_cost_threshold.
	(vect_do_peeling_for_alignment): Same.
	(vect_loop_versioning): Same.
	(vect_create_cond_for_align_checks): ANDs the cost model condition
	with the alignment condition.
	(vect_transform_loop): Call loop versioning only when there is a
	misalignment or an aliasing problem.

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

	PR middle-end/20983
	* tree-ssa-ccp.c (optimize_stdarg_builtin): New function.
	(execute_fold_all_builtins): Call it for BUILT_IN_VA_START,
	BUILT_IN_VA_COPY and BUILT_IN_VA_END.

	* target.h (struct ggc_target): Add expand_builtin_va_start hook.
	* target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define.
	(TARGET_INITIALIZER): Add it.
	* builtins.c (expand_builtin_va_start): Use
	targetm.expand_builtin_va_start hook instead of
	EXPAND_BUILTIN_VA_START macro.
	* alpha/alpha.c (alpha_va_start): Made static.
	(override_options): Clear targetm.expand_builtin_va_start if
	TARGET_UNICOSMK.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove.
	* alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove.
	* alpha/alpha-protos.h (alpha_va_start): Remove prototype.
	* xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove.
	* xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define.
	(xtensa_va_start): Made static.
	* xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype.
	* pa/pa-protos.h (hppa_va_start): Remove prototype.
	* pa/pa.h (EXPAND_BUILTIN_VA_START): Remove.
	* pa/pa.c (hppa_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype.
	* frv/frv.h (EXPAND_BUILTIN_VA_START): Remove.
	* i386/i386.c (override_options): Clear
	targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI.
	(ix86_va_start): Made static.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* i386/i386.h (EXPAND_BUILTIN_VA_START): Remove.
	* i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes.
	* iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype.
	* iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove.
	* iq2000/iq2000.c (iq2000_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype.
	* rs6000/rs6000.c (rs6000_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	(rs6000_override_options): Clear targetm.expand_builtin_va_start if
	DEFAULT_ABI != ABI_V4.
	* rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove.
	* spu/spu.c (spu_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* spu/spu.h (EXPAND_BUILTIN_VA_START): Remove.
	* spu/spu-protos.h spu_va_start): Remove prototype.
	* stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove.
	* stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start):
	Remove prototype.
	* stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made static.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* s390/s390-protos.h (s390_va_start): Remove prototype.
	* s390/s390.c (s390_va_start): Made static.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* s390/s390.h (EXPAND_BUILTIN_VA_START): Remove.
	* mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove.
	* mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype.
	* mn10300/mn10300.c (mn10300_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* arc/arc.c (arc_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* arc/arc.h (EXPAND_BUILTIN_VA_START): Remove.
	* arc/arc-protos.h (arc_va_start): Remove prototype.
	* mt/mt-protos.h (mt_va_start): Remove prototype.
	* sparc/sparc.c (sparc_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* sparc/sparc-protos.h (sparc_va_start): Remove prototype.
	* sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove.
	* sh/sh.c (sh_va_start): Made static, add prototype.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.
	* sh/sh-protos.h (sh_va_start): Remove prototype.
	* sh/sh.h (EXPAND_BUILTIN_VA_START): Remove.
	* mips/mips-protos.h (mips_va_start): Remove prototype.
	* mips/mips.h (EXPAND_BUILTIN_VA_START): Remove.
	* mips/mips.c (mips_va_start): Made static.
	(TARGET_EXPAND_BUILTIN_VA_START): Define.

2007-12-06  Uros Bizjak  <ubizjak@gmail.com>

	* tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when
	"flag_tree_parallelize_loops > 1".
	
2007-12-06  Zdenek Dvorak  <ook@ucw.cz>
	    Dorit Nuzman  <dorit@il.ibm.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/34005
	* tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR.
	* gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr.
	(gimplify_pure_cond_expr): New function.
	(generic_expr_could_trap_p): New function.
	(gimplify_cond_expr): Call gimplify_pure_cond_expr.
	(force_gimple_operand): Initialize new field allow_rhs_cond_expr.

2007-12-06  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_emit_stack_tie): New function.
	(s390_emit_prologue): Emit a stack tie when writing to the
	f8-f15 stack slots.
	* config/s390/s390.md ("stack_tie"): New insn definition.

2007-12-06  Ben Elliston  <bje@au.ibm.com>

	* SERVICE: Remove.
	* doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item.

2007-12-05  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/34337
	* fold-const.c (fold_binary) <case BIT_IOR_EXPR>: Don't minimize
	number of bits set in C1 if a mode mask for some mode can be used
	instead.

2007-12-05  Bernhard Fischer  <aldot@gcc.gnu.org>

	* varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo
	fixes.

2007-12-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34138
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
	Do not forward propagate addresses if that changes volatileness of
	the pointed-to type.

2007-12-05  Uros Bizjak  <ubizjak@gmail.com>

	PR target/34312
	* config/i386/i386.c (ix86_function_regparm): Also check for fixed
	registers when checking that regparm registers are available.
	Lower regparm value due to fixed registers usage in addition to
	global regs usage.

2007-12-05  Bernhard Fischer  <aldot@gcc.gnu.org>

	* sparseset.c: Include config.h and system.h before sparseset.h.
	* sparseset.h: Remove inclusion of system.h.

2007-12-05  Jakub Jelinek  <jakub@redhat.com>
	    Richard Sandiford  <rsandifo@nildram.co.uk>

	* optabs.c (init_insn_codes): New function.
	(new_optab): Delete.
	(init_optab, init_optabv): Don't call new_optab.
	(init_convert_optab): Don't clear the insn codes.
	(init_optabs): Call init_insn_codes.

2007-12-04  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (optimize_omp_library_calls): New function.
	(expand_omp_parallel): Call it if optimizing.

	PR middle-end/34134
	* stmt.c (expand_stack_restore): Call expand_normal on var to get
	rtx for it instead of assuming it will be a VAR_DECL.

2007-12-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* c-parser (c_parser_statement_after_labels): Move error from here...
	(c_parser_label): ... to here. Check that the declaration is not
	actually just another label.

2007-12-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34334
	PR middle-end/34222
	* tree-ssa-operands.c (get_addr_dereference_operands): If we
	fall back to using the SMTs aliases, make sure to add virtual
	operands for the SMT itself.
	(create_ssa_artificial_load_stmt): Fix typo.  Make sure to also
	clear the loaded and stored symbols bitmaps.

2007-12-04  Ben Elliston  <bje@au.ibm.com>

	* config/spu/spu.h (ASM_FORMAT_PRIVATE_NAME): Remove; use default.

2007-12-04  Ben Elliston  <bje@au.ibm.com>

	* doc/tm.texi (Exception Handling): Mention unwind-dw2-xtensa.c.

2007-12-03  Steven Bosscher  <stevenb.gcc@gmail.com>

	PR middle-end/33713
	* doc/invoke.texi: Remove -fforce-addr documentation.
	* expr.c (emit_move_insn): Remove use of flag_force_addr.
	(expand_expr_real_1): Same.
	(do_tablejump): Same.
	Call memory_address instead of memory_address_noforce.
	* expr.h (memory_address_noforce): Remove prototype.
	* explow.c (memory_address): Remove support for flag_force_addr.
	(validize_mem): Same.
	(memory_address_noforce): Remove.
	* common.opt: Add dummy documentation for -fforce-addr.
	* combine.c (can_combine_p): Remove -fforce-addr comment.
	* config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove set of
	flag_force_addr.
	* config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Remove comment
	relating to memory_address_noforce.
	* testsuite/gcc.c-torture/compile/20050802-1.c: Remove.
	* testsuite/gcc.c-torture/compile/20011113-1.c: Remove.
	
2007-12-03  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (lookup_decl_in_outer_ctx): Allow calling this
	with !ctx->is_nested.
	(maybe_lookup_decl_in_outer_ctx): Look up in outer contexts
	even if !ctx->is_nested.
	(lower_copyprivate_clauses, lower_send_clauses,
	lower_send_shared_vars): Call lookup_decl_in_outer_ctx
	unconditionally.

	PR middle-end/29749
	* fold-const.c (fold_binary) <case BIT_AND_EXPR>: Optimize
	(X << C1) & C2 into (X << C1) & (C2 | ((1 << C1) - 1))
	and (X >> C1) & C2 into (X >> C1) & (C2 | ~((type) -1 >> C1)).
	(fold_binary) <case LSHIFT_EXPR, case RSHIFT_EXPR>: Optimize
	(X & C2) << C1 into (X << C1) & (C2 << C1) and
	(X & C2) >> C1 into (X >> C1) & (C2 >> C1) if that allows further
	optimizations.

	PR tree-optimization/33453
	* tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR
	for pointer addition.
	* tree-parloops.c (canonicalize_loop_ivs): Likewise.
	(separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to
	var_copy.

2007-12-03  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __FDPIC__ as
	necessary.

2007-12-03  Razya Ladelsky <razya@il.ibm.com>

	* doc/invoke.texi (fipa-cp, fipa-matrix-reorg): Add documentation.

2007-12-03  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/34317
	* opts.c (common_handle_option): Handle OPT_ftree_store_copy_prop.
	* common.opt (ftree-store-copy-prop): Use the same help text as for
	other nop switches.

2007-12-02  Ayal Zaks  <zaks@il.ibm.com>
	    Revital Eres  <eres@il.ibm.com>

	* modulo-sched.c (calculate_must_precede_follow,
	try_scheduling_node_in_cycle): New functions.
	(sms_schedule_by_order): Call the new functions.
	(ps_insn_find_column): Use must_follow and must_precede only if
	they are not NULL.
	(ps_insn_advance_column): Likewise.

2007-12-02  Ayal Zaks  <zaks@il.ibm.com>
	    Revital Eres  <eres@il.ibm.com>

	* modulo-sched.c (get_sched_window): Fix the direction of the
	scheduling window and add dump info.

2007-12-02  Samuel Tardieu  <sam@rfc1149.net>

	* config/sh/sh.md (cmpgeusi_t): Fix condition.

2007-11-30  Jan Hubicka  <jh@suse.cz>

	* ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect flag.

2007-11-30  Seongbae Park <seongbae.park@gmail.com>

	PR rtl-optimization/34171
	* cfgrtl.c (update_bb_for_insn_chain): New function,
	refactored from update_bb_for_insn.
	(update_bb_for_insn): Call update_bb_for_insn.
	(rtl_merge_blocks, try_redirect_by_replacing_jump):
	Replace a loop with update_bb_for_insn_chain call.
	(cfg_layout_merge_blocks): Add a call to
	update_bb_for_insn_chain. Replace the for loop
	with a call to update_bb_for_insn_chain.

2007-11-30  Ben Elliston  <bje@au.ibm.com>

	* config/vax/vax.h (ASM_FORMAT_PRIVATE_NAME): Remove. Use default.

2007-11-29  Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/34244
	* tree-vrp.c (adjust_range_with_scev): Clear scev cache.
	(record_numbers_of_iterations): New function.
	(execute_vrp): Cache the numbers of iterations of loops.
	* tree-scalar-evolution.c (scev_reset_except_niters): New function.
	(scev_reset): Use scev_reset_except_niters.
	* tree-scalar-evolution.h (scev_reset_except_niters): Declare.

2007-11-29  Jan Hubicka  <jh@suse.cz>
	    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/33434
	* tree-inline.c (setup_one_parameter): If the value passed to
	a parameter is never used, don't set it up.

2007-11-29  Jakub Jelinek  <jakub@redhat.com>

	PR target/32130
	* config/rs6000/eabi-cn.asm (__DTOR_END__): Make it weak.
	* config/rs6000/sol-cn.asm (__DTOR_END__): Likewise.

2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>

	* Makefile.in: Use separate vpath lines for each path.

2007-11-29  Ben Elliston  <bje@au.ibm.com>

	* SERVICE: Update URL.

2007-11-28  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/34140
	* tree-if-conv.c (if_convertible_phi_p): Fail if BB other than
	loop->header has virtual phi nodes.

2007-11-28  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR target/32406
	* builtins.c (expand_builtin_nonlocal_goto): Also emit a use
	of GP register, if valid and fixed.

	Revert:
	2007-06-21  David Daney  <ddaney@avtrex.com>

	PR target/32406
	* config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
	to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
	(exception_receiver): Renamed to ...
	(nonlocal_goto_receiver): ... this.

2007-11-27  H.J. Lu  <hongjiu.lu@intel.com>
	    Joey Ye <joey.ye@intel.com>

	PR target/34001
	* config/i386/i386.c (function_arg_32): Don't pass aggregate
	arguments in ECX/EDX for fastcall.

2007-11-28  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline
	asm to macro.
	* config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise.
	* config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise.

2007-11-28  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/aix64.opt (maix64): Add Negative(maix32).
	(maix32): Add Negative(maix64).

2007-11-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/34016
	* tree-ssa-loop.c (pass_linear_transform): Add
	TODO_update_ssa_only_virtuals to todo_flags_finish.

2007-11-27  Eric B. Weddington  <eric.weddington@atmel.com>

	* config/avr/avr.c (avr_mcu_types): Add atmega32hvb.
	* config/avr/avr.h (LINK_SPEC): Likewise.
	(CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.
	
2007-11-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/34225
	* config/rs6000/rs6000.c (adjacent_mem_locations): Don't assume
	MEM_SIZE is set on all MEMs.

2007-11-27  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.opt (mhard-float): Add the option to be
	overridden.  That was missing in my last patch.

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

	PR tree-optimization/34241
	* tree-ssa-forwprop.c (forward_propagate_addr_expr): Make sure
	to only delete real conversion chains.

2007-11-27  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.opt (m31, m64, mesa, mzarch, msoft-float,
	mhard-float, mlong-double-64, mlong-double-128): Add the
	option to be overridden.

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

	* builtins.c (fold_builtin_1): Verify the argument types
	of BUILT_IN_ISNORMAL.
	(fold_builtin_n): Verify the number of arguments to variadic
	built-in functions.

2007-11-27  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/elf.h (SUBTARGET_DRIVER_SELF_SPECS): New macro.
	* doc/invoke.texi (Blackfin Options): Document the effects.

2007-11-27  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/sysv4.opt (m32): Add Negative(m64).
	(m64): Add Negative(m32).
	* config/rs6000/darwin.opt (m32): Add Negative(m64).
	(m64): Add Negative(m32).

2007-11-26  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-propagate.c (set_rhs) <GIMPLE_MODIFY_STMT>: Fix typo.

2007-11-26  Michael Meissner  <michael.meissner@amd.com>

	PR target/34077
	* config/i386/i386.c (ix86_expand_movmem): If the copy size is a
	constant, avoid calling emit_cmp_and_jump_insns.  Use counter_mode
	to get the mode for loading a pseudo register with a count rather
	than duplicating code.

2007-11-25  Eric B. Weddington  <eric.weddington@atmel.com>

	* config/avr/avr.c (avr_mcu_types): Add atmega1284p.
	* config/avr/avr.h (LINK_SPEC): Likewise.
	(CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

2007-11-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
	
	* c-common.c (conversion_warning): Use get_unwidened instead of
	get_narrower.
	
2007-11-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/23722
	* c-parser.c (struct c_parser): New bit in_if_block.
	(c_parser_compound_statement_nostart): Handle unexpected 'else'
	keyword.
	(c_parser_statement_after_labels): Set in_if_block to false while
	parsing.
	(c_parser_if_body): Don't call c_parser_statement_after_labels if
	a semicolon is found, just consume it. Don't call
	c_parser_statement_after_labels if an open brace is found, call
	c_parser_compound_statement instead.
	(c_parser_else_body): New.
	(c_parser_if_statement): Set in_if_block to true when parsing the
	body of the 'if' statement. Use c_parser_else_body.

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

	PR c++/34081
	* c-decl.c (store_parm_decls): Pass 'false' for the new
	allocate_struct_function parameter.
	* cgraphunit.c (cgraph_build_static_cdtor): Likewise.
	* tree-parloops.c (create_loop_fn): Likewise.
	* function.c (push_function_context_to, push_struct_function,
	init_function_start): Likewise.
	(allocate_struct_function): Add boolean parameter.
	* tree.h (allocate_struct_function): Add boolean parameter.
	* function.h (struct function): Move returns_struct and
	returns_pcc_struct to the end of the structure definiton.

2007-11-26  Uros Bizjak  <ubizjak@gmail.com>

	PR target/34215
	* config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if
	virtual registers are already instantiated.
	(truncxf<mode>2): Ditto.
	(floatsi<mode>2): Ditto.
	(floatdisf2): Ditto.
	(floatdidf2): Ditto.

2007-11-26  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/34174
	* config/fr30/fr30.c (fr30_move_double): Sanitize mem->reg case. Copy
	the address before it is clobbered.

2007-11-26  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.md: (call_internal): Remove mode on
	operand 0 in order to match UNPSEC'ed calls generated in PIC mode.
	(call_value_internal): Remove mode on operands 0 and 1 in order to
	match UNPSEC'ed calls generated in PIC mode.
	(GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between
	two insns.

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

	PR middle-end/34233
	* builtins.c (expand_builtin_pow): Use expand_expr to expand
	the result of build_call_expr.

2007-11-26  Steven Bosscher  <stevenb.gcc@gmail.com> 
	    Revital Eres  <eres@il.ibm.com> 

	PR middle-end/34085
	* bb-reorder.c (insert_section_boundary_note): Clear
	BLOCK_FOR_INSN in NOTE_INSN_SWITCH_TEXT_SECTIONS.

2007-11-26  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add missing comma.

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

	* dwarf2asm.c (splay_tree_compare_strings): New function.
	(dw2_force_const_mem): Use it.

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

	* tree.c (type_hash_add): Don't violate strict aliasing rules.

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

	PR c/27898
	* c-typeck.c (tagged_types_tu_compatible_p): Enable exact
	matches between anonymous union fields.

2007-11-26  Alexandre Oliva  <aoliva@redhat.com>, Jan Hubicka  <jh@suse.cz>

	* tree-ssa-live.c (remove_unused_scope_block_p): Drop
	declarations and blocks only after inlining.  Check that
	non-empty blocks are not dropped.
	* tree-inline.c (expand_call_inline): Check that functions are
	not inlined too late.

2007-11-26  Ben Elliston  <bje@au.ibm.com>

	* unwind-dw2-fde.c: Fix comment typo.
	* unwind-generic.h: Likewise, fix comment typos.
	
2007-11-25  Richard Sandiford  <rsandifo@nildram.co.uk>

	* tree-sra.c (scalarize_use): Adjust the vpos argument to
	sra_explode_bitfield_assignment in cases where the type is
	wider than the bitfield.

2007-11-25  Richard Guenther  <rguenther@suse.de>

	* tree.h (struct tree_block): Move locus member next to flags.
	* c-decl.c (SCOPE_LIST_APPEND): Use BLOCK_CHAIN.
	(SCOPE_LIST_CONCAT): Likewise.
	(pop_scope): Likewise.
	* function.c (instantiate_decls_1): Likewise.
	(setjmp_vars_warning): Likewise.
	* emit-rtl.c (set_used_decls): Likewise.
	* tree-inline.c (add_lexical_block): Likewise.

2007-11-24  Hans-Peter Nilsson  <hp@axis.com>

	* rtlanal.c (label_is_jump_target_p): Return true for a matching
	REG_LABEL_TARGET.
	* reorg.c (fill_slots_from_thread): Correct last change to use
	NULL_RTX, not NULL.  Outside of REG_NOTES loop, increase and
	decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0).
	* jump.c (mark_jump_label_1): Add comment for last change
	regarding JUMP_LABEL setting.
	* gcse.c (add_label_notes): Remove conditional that the label is
	mentioned in insn before adding regnote.
	* sched-rgn.c (is_cfg_nonregular): Don't return 1 for a
	single_set insn only feeding a label to a jump through a
	register that dies there.

2007-11-23  Dirk Mueller  <dmueller@suse.de>
	    Richard Guenther <rguenther@suse.de>

	PR middle-end/34197
	* tree-vrp.c (check_array_ref): Move check for valid location..
	(check_array_bounds) here. Use EXPR_HAS_LOCATION().

2007-11-23  Hans-Peter Nilsson  <hp@axis.com>

	* reload.c (find_reloads_address_1) <autoincdec cases>:
	Call REG_OK_FOR_CONTEXT with the autoincdec code, not outer_code.

2007-11-23  Richard Guenther  <rguenther@suse.de>
	    Michael Matz  <matz@suse.de>

	PR tree-optimization/34176
	* alloc-pool.h (empty_alloc_pool): Declare.
	* alloc-pool.c (empty_alloc_pool): New function.
	* tree-ssa-sccvn.c (vn_reference_lookup): Also lookup from the
	valid table if a lookup from the optimistic table failed.
	(vn_unary_op_lookup): Likewise.
	(vn_binary_op_lookup): Likewise.
	(vn_phi_lookup): Likewise.
	(process_scc): Clear optimistic tables before every iteration.

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

	* tree-ssa-copy.c (may_propagate_copy): Remove redundant checks.
	(merge_alias_info): Do verification only if checking is
	enabled.  Merge flow-sensitive alias information in simple cases.
	* tree-ssa-operands.c (get_addr_dereference_operands): Also
	complain about missing NMTs.

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

	PR c++/34198
	* c-common.c (conversion_warning): For INTEGER_TYPE to
	INTEGER_TYPE conversions call get_narrower on expr to avoid
	spurious warnings from binop shortening or when the implicit
	conversion can't change the value.

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

	PR c/14050
	* c-decl.c (set_array_declarator_inner): Don't give error for
	static or type qualifiers in abstract declarator.  Remove
	abstract_p parameter.
	* c-tree.h (set_array_declarator_inner): Update prototype.
	* c-parser.c (c_parser_direct_declarator_inner): Update call to
	set_array_declarator_inner.
	* doc/standards.texi: Update for C99 TC3.

2007-11-22  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c (mmix_encode_section_info): Remove duplicate
	line in my edit of the last change.

2007-11-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/33947
	* config/arm/arm.c (arm_init_tls_builtins): Set TREE_NOTHROW
	and TREE_READONLY on the fn decl rather than passing a chain
	of attributes.

2007-11-22  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.md (divsi_inv_m3): Handle zero dividend specially.

2007-11-22  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking
	of ix86_arch and ix86_tune into a switch statement.
	(enum processor_type): Default PROCESSOR_I386 to 0.
	* config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead
	of "ix86_tune == PROCESSOR_K6".
	(ia32_multipass_dfa_lookahead): Change checking of ix86_tune into
	a switch statement.

2007-11-22  Tom Tromey  <tromey@redhat.com>

	* config/mmix/mmix.c (mmix_encode_section_info): Use alloca to
	avoid writing into string allocated by ggc_alloc_string.

2007-11-21  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/34155
	* config/sh/sh.md (binary_sf_op): Remove.
	(binary_sf_op0, binary_sf_op1): New define_insn_and_split.
	* config/sh/sh.c (sh_expand_binop_v2sf): Use gen_binary_sf_op0
	and gen_binary_sf_op1.

2007-11-21  Hans-Peter Nilsson  <hp@axis.com>

	* regclass.c (init_reg_autoinc): Fix typo preventing test of
	secondary output reload when setting forbidden_inc_dec_class.

2007-11-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34148
	* tree-ssa-structalias.c (create_variable_info_for): Do not use
	field-sensitive PTA for single-element structures.
	* tree-ssa-alias.c (create_overlap_variables_for): Do not create
	SFTs for single-element structures.

2007-11-20  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34154
	* gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead
	of the signed INT_CST_LT.
	* stmt.c (expand_case): Likewise.
	(estimate_case_costs): Likewise.

2007-11-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* read-rtl.c (fatal_expected_char): Print EOF as text rather that
	its binary representation.

2007-11-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (add_virtual_operand): Consistently prune
	accesses.

2007-11-20  Thiemo Seufer  <ths@mips.com>

	* config/mips/mips.c (mips_file_start): Add support for
	flagging 32-bit code with -mfp64 floating-point.

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

	PR c/34146
	* c-gimplify.c (optimize_compound_literals_in_ctor): New function.
	(c_gimplify_expr): Use it.

2007-11-20  Ben Elliston  <bje@au.ibm.com>

	* config/spu/spu_mfcio.h: Fix typo.

2007-11-20  Ben Elliston  <bje@au.ibm.com>

	* unwind.inc: Comment that unwind-sjlj.c includes this file.

2007-11-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
	    Ben Elliston  <bje@au.ibm.com>

	* config/spu/mfc_tag_release.c: New file.
	* config/spu/mfc_multi_tag_release.c: Likewise.
	* config/spu/mfc_multi_tag_reserve.c: Likewise.
	* config/spu/mfc_tag_release.c: Likewise.
	* config/spu/mfc_tag_reserve.c: Likewise.
	* config/spu/mfc_tag_table.c: Likewise.
	* config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them.
	(TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2.
	* config/spu/spu_mfcio.h: Avoid <stdint.h>.
	(uint64_t): Typedef if __IN_LIBGCC2 is defined.
	(MFC_TAG_INVALID, MFC_TAG_VALID): New macros.
	(mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve,
	mfc_multi_tag_release): Likewise.
	(__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve,
	__mfc_multi_tag_release): Declare.

2007-11-19  Jason Merrill  <jason@redhat.com>

	PR debug/28834, debug/29436, c/32326
	* tree.c (build_type_attribute_qual_variant): Refuse to make
	a distinct copy of a struct/enum type.  Use build_distinct_type_copy.
	* doc/extend.texi (Type Attributes): Don't encourage people to add
	attributes to struct/enum types in a typedef.  Fix
	transparent_union example.

	* tree-inline.c (remap_type_1): Remove code that's redundant with
	remap_type.
	(build_duplicate_type): Set id.copy_decl.
	* c-common.c (handle_transparent_union_attribute): Simplify logic.

2007-11-19  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/rs6000.c (invalid_e500_subreg,
	rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p,
	rs6000_legitimize_address, rs6000_legitimize_reload_address,
	rs6000_legitimate_address, function_arg_advance,
	spe_build_register_parallel, rs6000_spe_function_arg,
	rs6000_split_multireg_move, spe_func_has_64bit_regs_p,
	emit_frame_save, gen_frame_mem_offset, rs6000_function_value,
	rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and
	TDmode similarly to DFmode and TFmode.
	* config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
	DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise.

2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (lang_adjust_rli): Delete.
	(set_lang_adjust_rli): Likewise.
	(layout_type): Do not call lang_adjust_rli hook.
	* tree.h (set_lang_adjust_rli): Delete.

2007-11-19  Bernd Schmidt  <bernd.schmidt@analog.com>
	
	* config/bfin/bfin.c (must_save_p): New function, mostly broken out of
	n_dregs_to_save and n_pregs_to_save.
	(n_pregs_to_save, n_dregs_to_save): Use it.  New argument CONSECUTIVE;
	all callers changed.
	(expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be
	able to save single D/P registers that aren't saved by the push/pop
	multiple insns.

2007-11-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34099
	* tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
	MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
	if only one operand is undefined.

2007-11-19  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR tree-optimization/34036
	* opts.c (set_fast_math_flags): Do not set flags in common
	with set_unsafe_math_optimizations_flags, invoke it directly.
	(set_unsafe_math_optimizations_flags): Unset flag_trapping_math
	and flag_signed_zeros.
	* toplev.c (process_options): Force flag_associative_math to 0 and
	warn, if it is set and either flag_trapping_math or flag_signed_zeros
	is set too.
	* doc/invoke.texi (Optimize Options): Document the new behavior
	of -funsafe-math-optimizations, that -fassociative-math requires
	both -fno-signed-zeros and -fno-trapping-math and make it clear
	that -fno-trapping-math requires -fno-signaling-nans.  Refactor
	documentation of -ffast-math.

2007-11-18  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/34132
	* gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note
	and insn.

	PR middle-end/33335
	* optabs.h (optab_table): Change type to struct optab from optab.
	(convert_optab_table): Similarly.
	Adjust all _optab macros to expand to addresses of optab_table
	resp. convert_optab_table elements rather than the values of the
	elements.
	* optabs.c (optab_table): Change typype to struct optab from optab.
	If compiled by recent GCC, initialize all the insn_code fields in
	the array using designated range initializers.
	(convert_optab_table): Similarly.
	(convert_optab_libfunc, optab_libfunc, set_optab_libfunc,
	set_conv_libfunc): Into libfunc_entry's optab field store index within
	optab_table resp. convert_optab_table array instead of difference
	between two separately malloced addresses.
	(new_optab): Add op argument, don't return anything.  Initialize
	just the insn_code field in handlers array and only when needed.
	(init_optab, init_optabv): Add op argument, don't return anything.
	Adjust new_optab caller.
	(new_convert_optab): Removed.
	(init_convert_optab): Add op argument, don't return anything, don't
	call new_convert_optab.  If needed, initialize insn_code field in
	handlers array.
	(init_optabs): Adjust init_optab, init_optabv and init_convert_optab
	callers.
	(debug_optab_libfuncs): Adjust uses of optab_table and
	convert_optab_table arrays.

2007-11-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34127
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
	Make code match up the comments, require compatibility of the
	pointed-to types.

2007-11-17  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34130
	* fold-const.c (extract_muldiv_1): Do not move negative
	constants inside ABS_EXPR.

2007-11-16  Ian Lance Taylor  <iant@google.com>

	* collect2.c (dump_file): If a demangled symbol is followed by a
	space, make sure we output at least one space.

2007-11-16  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34030
	* fold-const.c (fold_binary): Use correct types for folding
	1 << X & Y to Y >> X & 1.

2007-11-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33870
	* tree.h (struct tree_memory_tag): Add base_for_components flag.
	(struct tree_struct_field_tag): Remove nesting_level field.
	(SFT_NESTING_LEVEL): Remove.
	(SFT_BASE_FOR_COMPONENTS_P): Add.
	* tree-flow.h (struct fieldoff): Remove nesting_level field.  Add
	base_for_components flag.
	(push_fields_onto_fieldstack): Remove nesting_level parameter.
	* tree-ssa-alias.c (create_sft): Likewise.  Add base_for_components
	parameter.
	(create_overlap_variables_for): Deal with it.
	* tree-dfa.c (dump_subvars_for): Likewise.
	(dump_variable): Likewise.
	* tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
	Set base_for_components for first elements of sub-structures.
	(create_variable_info_for): Handle base_for_components.
	(set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for
	pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set.
	* tree-ssa-operands.c (ref_nesting_level): Remove.
	(add_vars_for_offset): Remove full_ref parameter, always add
	the offset of the pointed-to SFT.
	(add_virtual_operand): Adjust for changed signature of
	add_vars_for_offset.

2007-11-16  Sa Liu  <saliu@de.ibm.com>

	* config/spu/spu.md (floatunssidf2, floatunsdidf2): Inlined 
	floatunssidf2 and floatunsdidf2.

2007-11-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34113
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
	Use correct conversion direction for checking type compatibility.

2007-11-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34099
	* tree-ssa-ccp.c (likely_value): Use a whitelist for operators
	that produce UNDEFINED result if at least one of its operands
	is UNDEFINED.  By default the result is only UNDEFINED if all
	operands are UNDEFINED.

2007-11-16  Jakub Jelinek  <jakub@redhat.com>

	PR driver/30460
	* gcc.c (init_spec): Don't initialize asm_debug here...
	(main): ... but here.

2007-11-07  Tom Tromey  <tromey@redhat.com>

	* tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to 'func'. 
	* tree-parloops.c (create_loop_fn): Use set_cfun.
	* gengtype.c (open_base_files): Emit #undef cfun.
	* ipa-struct-reorg.c (do_reorg_1): Use set_cfun.
	* function.h (cfun): New define.
	* function.c: Undefine cfun.

2007-11-07  Eric B. Weddington  <eweddington@cso.atmel.com>

	* config/avr/avr.c (avr_mcu_types): Add attiny88.
	* config/avr/avr.h (LINK_SPEC): Likewise.
	(CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

2007-11-15  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/23848
	* tree-ssa-ccp.c (optimize_stack_restore): New function.
	(execute_fold_all_builtins): Call optimize_stack_restore for
	BUILT_IN_STACK_RESTORE.

2007-11-15  Paolo Bonzini  <bonzini@gnu.org>

	* fwprop.c (try_fwprop_subst): Skip profitability check for forward
	propagation into an address; that's done in should_replace_address.
		
2007-11-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu-protos.h (legitimate_const): Remove prototype.
	* config/spu/spu.c (legitimate_const): Remove.
	(classify_immediate): Inline call to legitimate_const.
	(spu_legitimate_address): Likewise.  Allow SYMBOL_REF + CONST_INT
	for any constant, not just -512 .. 511.

2007-11-15  Sa Liu  <saliu@de.ibm.com>

	* config/spu/spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL
	condition from HONOR_NANS test.
	* config/spu/spu.md (ceq_df): Always generate comparison code
	inline, including checks for NaNs and infinities.
	(cgt_df): Likewise.
	(cgt_v2df): Likewise.
	(cmpdf): Make this expander unconditional.

2007-11-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (create_overlap_variables_for): Make sure
	to only create SFTs if we also create variable infos for PTA.
	* tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping SFTs.

2007-11-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to
	type for TBAA pruning.
	(find_what_p_points_to): Call set_uids_in_ptset with the original
	pointer, not the decl of the solution we collapsed to.

2007-11-14  David Daney  <ddaney@avtrex.com>

	* config/mips/linux-unwind.h (mips_fallback_frame_state): Use CFA
	to find sigcontext.

2007-11-14  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/33923
	* config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Forbid mode changes
	for registers in BR_REGS class.

2007-11-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/34088
	* tree-ssa.c (delete_tree_ssa): Don't call fini_ssa_operands if
	init_ssa_operands has not been called for cfun.

2007-11-14  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR tree-optimization/34046
	* cfg.c (update_bb_profile_for_threading): Avoid the division for the
	scaling if the old probability is greater than the new base.

2007-11-14  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove
	unused edges after loop duplication.

2007-11-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (TARGET_CPU_DEFAULT_*): Substitute with ...
	(enum target_cpu_default): ... this enum.
	(TARGET_CPU_DEFAULT_NAMES): Remove macro.  Move initializer to ...
	* config/i386/i386.c (override_options): ... here.
	* config/i386/i386-interix.h (TARGET_CPU_DEFAULT): Use
	TARGET_CPU_DEFAULT_i486.

2007-11-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* global.c (rest_of_handle_global_alloc): Fix comment typos.
	* config/sh/sh.c (sh_rtx_costs): Likewise.
	* ChangeLog: Likewise.

2007-11-13  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-chrec.h (build_polynomial_chrec): RHS of a chrec
	should not be of pointer type.

2007-11-13  Michael Meissner  <michael.meissner@amd.com>

	* config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate line.

2007-11-13  Sterling Augustine  <sterling@tensilica.com>
	    Bob Wilson  <bob.wilson@acm.org>
	
	* config/xtensa/unwind-dw2-xtensa.c: New.
	* config/xtensa/unwind-dw2-xtensa.h: New.
	* config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove.
	(DWARF2_UNWIND_INFO): Remove.
	(DWARF_FRAME_REGISTERS): Define.
	(EH_RETURN_DATA_REGNO): Define.
	* config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define.
	(eh_return): New.
	* config/xtensa/t-xtensa (LIB2ADDEH): Define.
	
2007-11-13  Jakub Jelinek  <jakub@redhat.com>

	* doc/invoke.texi: Fix description of -fsched-stalled-insns=0,
	-fsched-stalled-insns.

	PR tree-optimization/34063
	* tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument
	as first chrec_fold_plus operand rather than second.

2007-11-13  Diego Novillo  <dnovillo@google.com>

	PR tree-optimization/33870
	* tree.h (strcut tree_memory_tag): Add field unpartitionable.
	Remove field in_nested_struct.
	(struct tree_struct_field_tag): Add field nesting_level.
	(sft_in_nested_struct): Remove.
	(sft_nesting_level): Define.
	(sft_unpartitionable_p): Define.
	* tree-ssa-alias.c (mem_sym_score): If mp->var is not
	partitionable, return long_max.
	(compute_memory_partitions): Do not partition sfts marked
	unpartitionable.
	(create_sft): Add argument nesting_level.  Set
	sft_nesting_level with it.  Update all users.
	(create_overlap_variables_for): Show nesting level.
	* tree-dfa.c (dump_subvars_for): Likewise.
	(dump_variable): Likewise. Show whether the sft is
	partitionable or not.
	* tree-flow.h (struct fieldoff): Remove field in_nested_struct.
	Add field nesting_level.
	* tree-ssa-structalias.c (struct variable_info): Remove
	field in_nested_struct.
	(push_fields_onto_fieldstack): Add argument nesting_level.
	Update all users.  Update documentation. Update pair->nesting_level
	with nesting_level.  Make recursive calls with nesting_level + 1.
	(set_uids_in_ptset): If an sft is added to the points-to set,
	mark it as unpartitionable.
	* tree-ssa-operands.c (ref_nesting_level): New.
	(add_vars_for_offset): Call it.  Add argument full_ref. Update
	callers.  If var is inside a nested structure and the nesting level
	of full_ref is lower than the nesting level of var,
	adjust offset by the offset of var.

2007-11-13  Victor Kaplansky  <victork@il.ibm.com>

	PR tree-optimization/32582
	* Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize

2007-11-12  Danny Smith  <dannysmith@users.sourceforge.net>

	* doc/extend.texi (dllimport): Document that pointers to dllimport'd
	functions can be used as constant.

2007-11-12  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/34035
	* cse.c (cse_cfg_altered): New global variable.
	(cse_jumps_altered): Make boolean.
	(recorded_label_ref): Likewise.
	(cse_insn): Adjust for above changes.
	(cse_extended_basic_block): Likewise.  Set cse_cfg_altered
	if dead edges have been purged.
	(cse_main): Change return value specification and adjust code.
	(rest_of_handle_cse): Adjust for above change.
	(rest_of_handle_cse2): Likewise.
	* gcse.c (rest_of_handle_gcse): Likewise.

2007-11-12  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
	    Michael Meissner  <michael.meissner@amd.com>

	* config/i386/i386.md (sse5_setcc<mode>): Use <ssemodefsuffix> to
	get the appropriate suffix for the coms* instruction.
	(sse5_pcmov_<mode>): Restrict operands of pcmov
	for scalar case to be only xmm registers and not memory.

	* config/i386/sse.md (sse5_pcmov_<mode>): Correct the operand
	constraints to follow the mnemonics for the pcmov instruction	

2007-11-12  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR target/34042
	* config/mips/mips.c (mips_return_fpr_single): New function.
	(mips_function_value): Use it when returning single-field
	aggregates in FPRs.
	(mips_expand_call): Handle the PARALLELs created by
	mips_return_fpr_single.

2007-11-12  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34070
	* fold-const.c (fold_binary): If testing for non-negative
	operands with tree_expr_nonnegative_warnv_p make sure to
	use op0 which has all (sign) conversions retained.

2007-11-12  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34027
	* fold-const.c (fold_binary): Fold n - (n / m) * m to n % m.
	(fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR.

2007-11-12  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/33953
	* tree-vect-transform.c (vectorizable_operation): In case of SLP,
	allocate vec_oprnds1 according to the number of created vector
	statements. In case of shift with scalar argument, store scalar
	operand for every vector statement to be created for the SLP node.
	Fix a comment.

2007-11-10  Steven Bosscher  <stevenb.gcc@gmail.com>

	* gcse.c (CUID_INSN): Remove.
	(cuid_insn): Ditto.
	(alloc_gcse_mem): Don't allocate cuid_insn.
	(free_gcse_mem): Don't free cuid_insn.

2007-11-10  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/34020
	* gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared
	nops.

	PR middle-end/34018
	* tree-inline.h (copy_body_data): Add regimplify field.
	* tree-inline.c (copy_body_r): Set id->regimplify to true
	if an TREE_INVARIANT ADDR_EXPR is no longer invariant after
	substitutions.
	(copy_bb): Clear id->regimplify before walk_tree, if it is
	set afterwards, regimplify the whole statement.

	PR tree-optimization/33680
	* tree-data-ref.c (split_constant_offset) <case ADDR_EXPR>: Punt
	if the added cast involves variable length types.

2007-11-09  Alexander Monakov  <amonakov@ispras.ru>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	* sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER
	instead of TRUE_BARRIER for jumps.  Add register dependencies
	even when reg_pending_barrier is set.

2007-11-09  Alexander Monakov  <amonakov@ispras.ru>

	* haifa-sched.c (haifa_classify_insn): Rename to ...
	(haifa_classify_rtx): ...  this.  Improve handling of COND_EXECs,
	handle PARALLELs by recursing.  Use it ...  
	(haifa_classify_insn): ...  here.  Reimplement.

2007-11-09  Richard Guenther  <rguenther@suse.de>

	* bitmap.h (bitmap_single_bit_set_p): Declare.
	* bitmap.c (bitmap_single_bit_set_p): New function.
	* tree-ssa-alias.c (add_may_alias_for_new_tag): Use it.
	(maybe_create_global_var): Use bitmap_empty_p.

2007-11-09  Paolo Bonzini  <bonzini@gnu.org>
	    Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/34012
	* fwprop.c (try_fwprop_subst): Do not replace if the new
	SET_SRC has a higher cost than the old one.

2007-11-09  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/33732
	* reload.c (push_reload): Check that the REG_DEAD note was referring
	to a hardreg or to a pseudo that has been assigned exactly one hardreg
	before considering it in order to select the reload register.
	(combine_reloads): Likewise.
	(find_dummy_reload): Likewise.

2007-11-09  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (struct ptr_info_def): Make escape_mask a ENUM_BITFIELD.
	(struct ptr_info_def): Likewise.
	(enum escape_type): Also use bit zero.

2007-11-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33604
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
	Disregard changes in CV qualifiers of pointed to types for
	forward propagating ADDR_EXPRs.
	* tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original
	expression.

2007-11-09  Richard Sandiford  <rsandifo@nildram.co.uk>

	* dse.c (find_shift_sequence): Always choose an integer mode for
	new_mode.
	(replace_read): Require both the read and store mode to be
	integer ones.  Remove a then-redundant FLOAT_P check.

2007-11-08  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (remove_referenced_var): If removing a
	variable which has subvars, also remove those from
	the referenced vars.  Do not create a variable annotation.

2007-11-08  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first
	argument for gen_entry calls.
	* config/xtensa/xtensa.md: Add new "entry" value to "type" attribute.
	(entry): Use the new attribute value.  Remove unused first operand.

2007-11-08  Tom Tromey  <tromey@redhat.com>

	* c-parser.c (c_parser_translation_unit): Use location in error.
	(c_parser_external_declaration): Likewise.
	(c_parser_declaration_or_fndef): Likewise.
	(c_parser_enum_specifier): Likewise.
	(c_parser_struct_or_union_specifier): Likewise.
	(c_parser_struct_declaration): Likewise.
	(c_parser_typeof_specifier): Likewise.
	(c_parser_parms_list_declarator): Likewise.
	(c_parser_asm_string_literal): Likewise.
	(c_parser_braced_init): Likewise.
	(c_parser_initelt): Likewise.
	(c_parser_compound_statement_nostart): Likewise.
	(c_parser_statement_after_labels): Likewise.
	(c_parser_do_statement): Likewise.
	(c_parser_asm_statement): Likewise.
	(c_parser_conditional_expression): Likewise.
	(c_parser_unary_expression): Likewise.
	(c_parser_sizeof_expression): Likewise.
	(c_parser_postfix_expression): Likewise.
	(c_parser_postfix_expression_after_paren_type): Likewise.
	(c_parser_objc_class_instance_variables): Likewise.
	(c_parser_objc_method_definition): Likewise.
	(c_parser_objc_methodprotolist): Likewise.
	(c_parser_pragma): Likewise.
	(c_parser_omp_clause_num_threads): Likewise.
	(c_parser_omp_clause_schedule): Likewise.
	(c_parser_omp_all_clauses): Likewise.
	(c_parser_omp_sections_scope): Likewise.
	(c_parser_label): Use location of label, not colon.

2007-11-08  Danny Smith  <dannysmith@users.sourceforge.net>

	PR target/33774
	* config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if
	IN_TARGET_LIBS.

2007-11-07  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR middle-end/33826
	* ipa-pure-const.c (static_execute): Added code to keep recursive
	functions from being marked as pure or const.
	* ipa-utils.c (searchc): Fixed comment.
		
2007-11-08  Tom Tromey  <tromey@redhat.com>

	* common.opt (fshow-column): Default to 0.
	* configure: Rebuilt.
	* configure.ac (--enable-mapped-location): Default to 'yes'.

2007-11-07  Kenneth Zadeck <zadeck@naturalbridge.com>

	* common.opt: Add pointer to doc/options.texi.
	* doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const,
	-fipa-reference): Add or correct doc.  Sorted options list for -Os
	-O, -O2.

2007-11-07  Bernhard Fischer  <aldot@gcc.gnu.org>

	PR target/16350
	* config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT.
	* config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on
	TARGET_BIG_ENDIAN_DEFAULT.  Use for MULTILIB_DEFAULTS.
	(TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT.
	(LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler.
	* config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according
	to TARGET_BIG_ENDIAN_DEFAULT.
	(SUBTARGET_EXTRA_LINK_SPEC): Likewise.
	* config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according
	to TARGET_BIG_ENDIAN_DEFAULT.

2007-11-07  Diego Novillo  <dnovillo@google.com>

	* tree.h (struct tree_struct_field_tag): Move field
	in_nested_struct ...
	(struct tree_memory_tag): ... here.

2007-11-07  Diego Novillo  <dnovillo@google.com>

	PR 33870
	* tree.h (struct tree_struct_field_tag): Add field in_nested_struct.
	(SFT_IN_NESTED_STRUCT): Define.
	* tree-dfa.c (dump_subvars_for): Show offset of each sub-var.
	* tree-flow.h (struct fieldoff): Add field in_nested_struct.
	* tree-ssa-structalias.c (struct variable_info): Likewise.
	(push_fields_onto_fieldstack): If OFFSET is positive,
	set in_nested_struct.
	(create_variable_info_for): Copy setting of
	in_nested_struct from the field offset object.
	(set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the
	variable info object.
	* tree-ssa-operands.c (add_vars_for_offset): If VAR
	belongs to a nested structure, adjust OFFSET by SFT_OFFSET(VAR).

2007-11-07  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/33737
	* cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of
	target block after computing the probabilities of outgoing edges.
	Cap the frequency to BB_FREQ_MAX.
	* tree-ssa-threadupdate.c (redirect_edges): Also adjust count and
	frequency of the basic block if it has been reused.

2007-11-07  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/33822
	* rtl.h (REG_OFFSET): Fix comment.
	* var-tracking.c (INT_MEM_OFFSET): New macro.
	(var_mem_set): Use it.
	(var_mem_delete_and_set): Likewise.
	(var_mem_delete): Likewise.
	(same_variable_part_p): Likewise.
	(vt_get_decl_and_offset): Likewise.
	(offset_valid_for_tracked_p): New predicate.
	(count_uses): Do not track locations with invalid offsets.
	(add_uses): Likewise.
	(add_stores): Likewise.

2007-11-07  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H)
	(BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H).

2007-11-07  Dmitry Zhurikhin  <zhur@ispras.ru>
	    Andrey Belevantsev  <abel@ispras.ru>

	* modulo-sched.c (sms_order_nodes, permute_partial_schedule,
	generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
	(calculate_order_params, sms_order_nodes): New parameter pmax_asap.
	Save calculated max_asap in it. 	
	(sms_schedule): Calculate maxii using max_asap.

2007-11-07  Andreas Krebbel  <krebbel1@de.ibm.com>

	* doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
	with -mhard-dfp/-mno-hard-dfp.

2007-11-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/33670
	* haifa-sched.c (check_sched_flags): Remove.
	(sched_init): Don't call it.

2007-11-06  Diego Novillo  <dnovillo@google.com>

	* tree-flow.h (struct fieldoff): Reformat comment. Document fields.
	* tree-ssa-operands.c: Tidy top-level comments.
	(add_vop): Likewise.
	(add_vars_for_offset): Tidy parameter formatting..
	(get_addr_dereference_operands): Likewise.
	(get_indirect_ref_operands): Likewise.
	(get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
	<OMP_ATOMIC_STORE>: Likewise.

2007-11-06  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/32787
	* config/i386/driver-i386.c: Test for __GNUC__ instead of
	GCC_VERSION which is always defined.

2007-11-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR target/30961
	* reload.c (find_reloads): Also check in_reg when handling a
	simple move with an input reload and a destination of a hard
	register.

2007-11-06  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
	(TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
	TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
	TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
	TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
	(m68k_sched_attr_type2): New function.
	(sched_adjust_cost_state): New static variable.
	(m68k_sched_adjust_cost): New static function implementing
	scheduler hook.
	(sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
	New static variables.
	(m68k_sched_variable_issue): New static function implementing
	scheduler hook.
	(sched_dump_class_def, sched_dump_class_func_t): New typedefs.
	(sched_dump_split_class): New static function.
	(sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
	variables.
	(sched_dump_dfa_class, m68k_sched_dump): New static function.
	(m68k_sched_md_init_global, m68k_sched_md_finish_global,
	m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
	m68k_sched_dfa_post_advance_cycle): New static functions implementing
	scheduler hooks.

	* config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
	(CPU_UNITS_QUERY): Define.

	* config/m68k/cf.md: New file.
	* config/m68k/m68.md (cf.md): New include.

2007-11-06  Tom Tromey  <tromey@redhat.com>

	PR c++/32256
	PR c++/32368
	* function.c (saved_in_system_header): New global.
	(push_cfun): Save in_system_header.
	(pop_cfun): Restore in_system_header.
	(push_struct_function): Save in_system_header.

2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/33977
	PR c++/33886
	* c-common.c (c_build_qualified_type): Moved to c-typeck.c.
	(complete_array_type): Set canonical type appropriately.
	* c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
	C and C++ front ends now have different versions of this function,
	because the C++ version needs to maintain canonical types here.

2007-11-04  Razya Ladelsky  <razya@il.ibm.com>
	
	* tree-parloops.c (reduction_info): Remove reduction_init field.
	(initialize_reductions): Remove creation of the reduction_init variable.
	(struct data_arg): Remove.
	(add_field_for_reduction, create_stores_for_reduction): New functions.
	(add_field_for_name): Remove reduction handling.
	(separate_decls_in_loop): Call add_field_for_reduction,
	create_stores_for_reduction.

2007-11-06  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/33458
	* tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
	!is_gimple_val PHI argument, gimplify it and insert it on edge.

	PR tree-optimization/33993
	* tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
	rather than build_constructor_from_list if all list values are
	constants.
	(get_initial_def_for_induction): Use build_vector instead of
	build_constructor_from_list.

2007-11-05  Mark Mitchell  <mark@codesourcery.com>

	PR target/33579
	* tree.h (DECL_INIT_PRIORITY): Do not require DECL_HAS_INIT_PRIORITY_P.
	(DECL_FINI_PRIORITY): Likewise.
	* tree.c (decl_init_priority_lookup): Remove assert.
	(decl_fini_priority_insert): Likewise.
	* cgraphunit.c (static_ctors): Make it a VEC.
	(static_dtors): Likewise.
	(record_cdtor_fn): Adjust accordingly.
	(build_cdtor): Generate multiple functions for each initialization
	priority.
	(compare_ctor): New function.
	(compare_dtor): Likewise.
	(cgraph_build_cdtor_fns): Sort the functions by priority before
	calling build_cdtor.
	(cgraph_build_static_cdtor): Put the priority in the function's name.

2007-11-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/32632
	* common.opt: Add shared and pie.

2007-11-05  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
	replace references to virtual_stack_vars_rtx in goto_handler.

2007-11-05  Paul Brook  <paul@codesourcery.com>

	* config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
	* config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
	(arm_file_start): Don't set Tag_ABI_PCS_wchar_t.  Call
	arm_lang_output_object_attributes_hook.
	* config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
	(REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
	* config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
	prototype.
	* config/arm/t-arm.c (arm.o): New rule.
	* config/arm/arm-c.c: New file.

2007-11-05  Nick Clifton  <nickc@redhat.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/32540
	PR tree-optimization/33922
	* doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
	* tree-ssa-pre.c: Include params.h.
	(compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
	to limit the maximum length of the PA set for a given block.
	* Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
	* params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.

2007-11-05  Nathan Sidwell  <nathan@codesourcery.com>

	* libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
	__fixunssfDI): Make return type unsigned.
	* libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
	__fixunssfDI): Make return type unsigned.

2007-11-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/33856
	* tree-data-ref.c (get_references_in_stmt): Don't add
	REFERENCE_CLASS_P trees to references vector if get_base_address
	returns NULL on them.

2007-11-05  Alexandre Oliva  <aoliva@redhat.com>

	* cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.

2007-11-04  Andrew Pinski  <pinskia@gmail.com>

	PR middle-end/32931
	* fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
	for TRUTH_NOT_EXPR to type.

2007-11-04  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.

2007-11-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/10220
	* dwarf2out.c (add_calling_convention_attribute): Change
	second argument. Set calling convention to DW_CC_program for
	Fortran main program.
	(gen_subprogram_die): Adjust to new prototype for
	add_calling_convention_attribute.

2007-11-03  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/33987
	* tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
	Fix indentation.
	(vectorizable_reduction): Add type check.

2007-11-03  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/29062
	* c-parser.c (c_parser_statement_after_labels): Error if a
	declaration is parsed after a label.
	
2007-11-03  Daniel Jacobowitz  <dan@codesourcery.com>

	PR debug/33921
	* reorg.c (emit_delay_sequence): Do not clear the locator on
	the jump instruction.

2007-11-03  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/33670
	* haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
	current sched region.

2007-11-02  Jakub Jelinek  <jakub@redhat.com>

	* config/ia64/ia64.c (struct reg_write_state): Change into
	unsigned short bitfields rather than unsigned int, decrease
	first_pred to just 10 bits.
	(rws_insn): Change into a bitmap or if not ENABLE_CHECKING
	into two char array.
	(rws_insn_set, rws_insn_test): New functions.
	(in_safe_group_barrier): New variable.
	(rws_update): Remove first argument, always set rws_sum array.
	(rws_access_regno): Use rws_insn_set macro.  Only call rws_update
	or update rws_sum if !in_safe_group_barrier, adjust rws_update args.
	(rtx_needs_barrier): Use rws_insn_test macro.
	(safe_group_barrier_needed): Don't save/restore rws_sum array,
	instead set/clear in_safe_group_barrier flag.

2007-11-02  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
	REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
	pointer or frame pointer.
	* config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
	(MUST_USE_SJLJ_EXCEPTIONS): Define.
	(DWARF2_UNWIND_INFO): Define.
	(INCOMING_RETURN_ADDR_RTX): Define.
	(DWARF_FRAME_RETURN_COLUMN): Define.

2007-11-02  Tom Tromey  <tromey@redhat.com>

	* varpool.c (dump_varpool): Use 'next', not 'next_needed' when
	traversing pool.

2007-11-02  Diego Novillo  <dnovillo@google.com>

	* langhooks.h (struct lang_hooks_for_callgraph): Remove third
	argument from function pointer ANALYZE_EXPR.  Update all users.
	* cgraph.c (debug_cgraph_node): New.
	(debug_cgraph): New.

2007-11-02  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/33648
	* cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
	the newly created basic block.

2007-11-01  Richard Guenther  <rguenther@suse.de>

	* ggc-page.c (extra_order_size_tab): Add bitmap_head size.

2007-11-01  Steven Bosscher  <stevenb.gcc@gmail.com>

	PR rtl-optimization/33828
	* gcse.c (compute_code_hoist_vbeinout): Fix order of computation
	of VBEIN and VBEOUT.

2007-11-01  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
	* sched-rgn.c (compute_trg_info): Zero 'el' local variable.
	* tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.

2007-11-01  Nathan Sidwell  <nathan@codesourcery.com>

	* gcc.c (getenv_spec_function): Escape the environment variable's
	value.

2007-11-01  Janis Johnson  <janis187@us.ibm.com>

	* doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
	show that CSE means common subexpression elimination.  Change wording
	for -fsee and define LCM.  Remove capitalization of optimizations
	for -ftree-reassoc, -ftree-pre, and -ftree-fre.

2007-11-01  Janis Johnson  <janis187@us.ibm.com>

	PR testsuite/25352
	* doc/sourcebuild.texi (Test Directives): Document that xfail
	has no effect for dg-do except when dg-do-what is "run".

2007-11-01  Tom Tromey  <tromey@redhat.com>

	* c-decl.c (grokdeclarator): Set decl source locations.
	* c-parser.c (c_parser_enum_specifier): Set location.
	(c_parser_struct_or_union_specifier): Likewise.

2007-11-01  Tom Tromey  <tromey@redhat.com>

	* print-tree.c (print_node): Print column number.

2007-11-01  Jakub Jelinek  <jakub@redhat.com>

	PR debug/33537
	* dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
	gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
	rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).

	PR rtl-optimization/33673
	* gcse.c (cprop_jump): If a conditional jump has been optimized
	into unconditional jump, make the remaining normal edge fallthru
	and delete the jump insn.

2007-11-01  Ben Elliston  <bje@au.ibm.com>

	* emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
	(set_mem_attrs_from_reg): Likewise.

2007-11-01  Michael Matz  <matz@suse.de>

	PR tree-optimization/33961
	* tree-ssa-phiopt.c (struct name_to_bb.store): New member.
	(name_to_bb_hash, name_to_bb_eq): Consider and check it.
	(add_or_mark_expr): New argument 'store', using it to search
	the hash table.
	(nt_init_block): Adjust calls to add_or_mark_expr.

2007-10-31  Jakub Jelinek  <jakub@redhat.com>

	PR target/31507
	* config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
	for the first push_operand.

2007-10-31  Revital Eres  <eres@il.ibm.com>

	* config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
	reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
	vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
	movmisalignv2sf, vcondv2sf): New.
	(UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
	UNSPEC_EXTODD_V2SF): Define new constants.
	* config/rs6000/rs6000-protos.h (paired_expand_vector_move,
	paired_emit_vector_cond_expr): New.
	* config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
	* config/rs6000/rs6000.c (paired_expand_vector_move,
	paired_emit_vector_cond_expr, paired_emit_vector_compare):
	New functions.
	* config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.

2007-10-31  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/32377
	* tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
	work also for unknown number of iterations.
	(analyze_subscript_affine_affine): Clean up.  Don't fail when the 
	number of iterations is not known.

2007-10-31  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33779
	* fold-const.c (extract_muldiv_1): Make sure to not introduce
	new undefined integer overflow.
	(fold_binary): Avoid useless conversion.

2007-10-31  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR target/33948
	* config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P check.

2007-10-31  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.

	* config/s390/s390.c: (override_options): Replace
	-mhard-dfp/-msoft-dfp with -mhard-dfp/-mno-hard-dfp.
	* config/s390/s390.opt: Likewise.
	* config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
	definition.

2007-10-30  Janis Johnson  <janis187@us.ibm.com>

	* tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.

2007-10-30  Janis Johnson  <janis187@us.ibm.com>

	* doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
	optimization options.
	(Optimize Options): Add -fdce and -fdse to the list of optimizations
	enabled by -O.  Document -fdce and -fdse.

2007-10-30  Jakub Jelinek  <jakub@redhat.com>

	PR c++/33709
	* fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
	convert second operand of COMPOUND_EXPR to the original type of
	that argument.

2007-10-30  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (add_vars_for_offset): Fix exit test
	of loop adding SFTs as virtual operands.

2007-10-30  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.

2007-10-29  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/32893
	* tree-vectorize.c (vect_can_force_dr_alignment_p): Check
	STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.

2007-10-29  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
	x86_64 versions.
	(sub_ddmmss): Likewise.
	(umul_ppmm): Likewise.
	(udiv_qrnnd): Likewise.

2007-10-29  Janis Johnson  <janis187@us.ibm.com>

	PR testsuite/24841
	* doc/sourcebuild.texi (Test Directives): Document that dg-require
	directives must come before dg-additional-sources.

2007-10-29  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/33723
	* c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
	MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.

2007-10-29  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR tree-optimization/33614
	* gimplify.c (gimplify_init_constructor): Gimplify vector constructors
	if they can't be reduced to VECTOR_CSTs and aren't legitimate
	initializer constants.

2007-10-29  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33870
	* tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
	(add_virtual_operand): Do not recurse into MPTs looking for pointed-to
	SFTs.

2007-10-29  Richard Guenther  <rguenther@suse.de>

	* passes.c (init_optimization_passes): Exchange store_copy_prop
	with copy_prop.
	* tree-pass.h (pass_store_copy_prop): Remove.
	* tree-ssa-copy.c (do_store_copy_prop): Remove.
	(stmt_may_generate-copy): Do not handle store_copy_prop.
	(get_copy_of_val): Likewise.
	(set_copy_of_val): Likewise.
	(copy_prop_visit_assignment): Likewise.
	(copy_prop_visit_stmt): Likewise.
	(copy_prop_visit_phi_node): Likewise.
	(init_copy_prop): Likewise.
	(execute_copy_prop): Likewise.
	(do_copy_prop): Remove.
	(gate_store_copy_prop): Likewise.
	(store_copy_prop): Likewise.
	(pass_store_copy_prop): Likewise.
	(pass_copy_prop): Call execute_copy_prop.
	* opts.c (decode_options): Do not set flag_tree_store_copy_prop.
	* common.opt (ftree-store-copy-prop): Mark obsolete.
	* doc/invoke.texi (ftree-store-copy-prop): Remove documentation.

2007-10-29  Ian Lance Taylor  <iant@google.com>

	* ifcvt.c (noce_can_store_speculate_p): New static function.
	(noce_process_if_block): Call it.
	(if_convert): Remove recompute_dominance parameter.  Change all
	callers.

2007-10-29  Richard Guenther  <rguenther@suse.de>

	* tree-flow-inline.h (get_subvar_at): Use binary search.
	(get_first_overlapping_subvar): New function to binary search
	for the first overlapping subvar.
	* tree-ssa-operands.c (add_vars_for_offset): Strip down to
	just handle adding subvars for a pointed-to subvar.  Optimize
	and use get_first_overlapping_subvar.
	(add_vars_for_bitmap): Fold into single caller.
	(add_virtual_operand): Streamline, inherit add_vars_for_bitmap
	and non pointed-to bits of add_vars_for_offset.

2007-10-29  Revital Eres  <eres@il.ibm.com> 

	* modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.

2007-10-29  Razya Ladelsky  <razya@il.ibm.com>
	    Zdenek Dvorak  <ook@ucw.cz>

	OMP_ATOMIC Changes,
	reduction support for automatic parallelization.

	* expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
	OMP_ATOMIC_STORE.
	* Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
	* tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
	and OMP_ATOMIC_STORE.
	* tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
	* gimple-low.c (lower_stmt): Same.
	* gimplify.c (gimplify_expr): Same.
	(gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
	gimplify_omp_atomic_mutex): Remove.
	(gimplify_omp_atomic): Change it to simply gimplify the
	statement instead of expanding it.
	* omp-low.c: Add includes to optabs.h, cfgloop.h.
	(expand_omp_atomic, expand_omp_atomic_pipeline,
	goa_stabilize_expr, expand_omp_atomic_mutex,
	expand_omp_atomic_fetch_op): New functions to implement
	expansion of OMP_ATOMIC.
	(expand_omp, build_omp_regions_1): Add support for
	OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
	* tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
	OMP_ATOMIC_STORE.
	* tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
	OMP_ATOMIC_STORE.
	* tree-parloops.c: add include to tree-vectorizer.h.
	(reduction_info): New structure for reduction.
	(reduction_list): New list to represent list of reductions per loop.
	(struct data_arg): New helper structure for reduction.
	(reduction_info_hash, reduction_info_eq, reduction_phi,
	initialize_reductions, create_call_for_reduction,
	create_phi_for_local_result, create_call_for_reduction_1,
	create_loads_for_reductions, create_final_loads_for_reduction):
	New functions.
	(loop_parallel_p): Identify reductions, add reduction_list parameter.
	(separate_decls_in_loop_name): Support reduction variables.
	(separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
	call create_loads_for_reduction for each reduction.
	(canonicalize_loop_ivs): Identify reductions, add reduction_list
	parameter.
	(transform_to_exit_first_loop): Add reduction support, add
	reduction_list parameter.
	(gen_parallel_loop): Add reduction_list parameter.  Add call
	separate_decls_in_loop with
	the new argument.  Traverse reductions and call
	initialize_reductions, create_call_for_reduction.
	(parallelize_loops): Create and delete the reduction list.
	(add_field_for_name): Change use of data parameter.  Add fields for
	reductions.
	* tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
	* tree-vect-analyze.c (vect_analyze_loop_form): export it.
	* tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
	* tree-inline.c (estimate_num_insns_1): add cases for
	OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
	* tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
	* tree-ssa-operands.c (get_addr_dereference_operands):
	New function.  Subroutine of get_indirect_ref_operands.
	(get_indirect_ref_operands): Call get_addr_dereference_operands.
	(get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.


2007-10-29  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c: Include df.h.
	(cris_address_cost): Add gcc_assert for canonicalization
	assumptions.  For PLUS with MULT or register, correct
	test for register in other arm.  Tweak comments.

2007-10-28  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (add_vars_for_offset): Add parameter
	telling if the var is to be treated as points-to location.
	(add_vars_for_bitmap): Pass true to add_vars_for_offset.
	(add_virtual_operand): Only recurse into MPTs if aliases
	is from a NMT.

2007-10-28  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
	(add_vars_for_bitmap): Do not recurse further.  Only add vars
	for pointed-to SFTs.
	(add_virtual_operand): Re-instantiate loop to add operands for
	aliases.  Recurse into MPTs.
	(get_indirect_ref_operands): If we fall back to use a pointers
	SMT, make sure to not prune based on the access offset and size.

2007-10-28  Andrew Pinski  <pinskia@gmail.com>

	PR tree-opt/33589
	* tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
	the eh information on the statement.

2007-10-28  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (subvar_t): Make it a VEC.
	(struct subvar): Remove.
	(struct var_ann_d): Use VEC(tree,gc) to store subvars.
	* tree-flow-inline.h (get_subvar_at): Adjust iterators over
	variable subvars.
	* tree-into-ssa.c (mark_sym_for_renaming): Likewise.
	* tree-nrv.c (dest_safe_for_nrv_p): Likewise.
	* tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
	(set_initial_properties): Likewise.
	(setup_pointers_and_addressables): Likewise.
	(new_type_alias): Likewise.
	(create_overlap_variables_for): Likewise.
	* tree-dfa.c (dump_subvars_for): Likewise.
	* tree-ssa-operands.c (add_vars_for_offset): Likewise.
	(get_expr_operands): Likewise.
	(add_to_addressable_set): Likewise.
	* tree-ssa-structalias.c (set_uids_in_ptset): Likewise.

2007-10-28  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/33920
	* tree-if-conv.c (tree_if_conversion): Force predicate of single
	successor bb to true when predecessor bb has NULL predicate.
	(find_phi_replacement_condition): Assert that tmp_cond is non-null.

2007-10-28  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.md: Add combiner patterns for DImode extensions
	of HImode and QImode truncations.  Reformat HImode <- QImode pattern
	for consistency.

2007-10-28  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR target/33895
	* config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.

2007-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>

	* dce.c (delete_unmarked_insns): Just delete the RETVAL and
	LIBCALL notes if they are about to be moved to the same insn.

2007-10-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33870
	* tree-ssa-operands.c (add_vars_for_offset): Reduce code
	duplication.  Remove redundant call to access_can_touch_variable.
	(add_vars_for_bitmap): New helper for recursing over MPT contents.
	(add_virtual_operand): Use it.

2007-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR fortran/31608
	* pa.h (ASM_PN_FORMAT): Delete define.

2007-10-26  Janis Johnson  <janis187@us.ibm.com>

	* doc/invoke.texi (Option Summary, optimizations): Remove
	-fbounds-check.  Add -fassociative-math, -freciprocal-math,
	-ftree-vrp and -funit-at-a-time.  Change -fno-split-wide-types to
	-fsplit-wide-types to match later entry.  Break up a long line.
	(Option Summary, code gen options)  Add -fno-stack-limit.  Add
	missing @gol to the end of a line.
	(Optimization Options): Remove -fbounds-check, which is also
	documented under Code Generation Options.  Remove =n from
	index entry for -ftree-parallelize-loops.  Change -fno-cprop-registers
	to -fcprop-registers to match other options, and say when it is
	enabled rather than disabled.  Remove extra index entry for
	-fno-cx-limited-range.  Add index entries for -fstack-protector
	and -fstack-protector-all.
	(Code Gen Options): Add index entry for -ftls-model.

2007-10-26  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (avr_OS_task_function_p): Add new function.
	(avr_regs_to_save): Handle functions with 'OS_task' attribute.
	(avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
	expand_epilogue, output_movhi): Don't handle 'main' function.
	(avr_attribute_table): Add 'OS_task' function attribute.
	* config/avr/avr.h (machine_function): Remove 'is_main' field, add
	'is_OS_task' field.
	* config/avr/avr.md (return_from_main_epilogue): Remove insn.
	(return_from_epilogue, return_from_interrupt_epilogue): Don't handle
	'main' function.
	* config/avr/avr.opt (minit-stack): Remove.

2007-10-26  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-nested.c (get_trampoline_type): Fix thinko.

2007-10-26  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/33601
	* tree.c (build_offset_type): Build canonical type based on the
	TYPE_MAIN_VARIANT of the base type.

2007-10-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* reorg.c (emit_delay_sequence): Move insn locator from the
	first insn to the sequence.

2007-10-26  Samuel Tardieu  <sam@rfc1149.net>

	* ipa-pure-const.c (check_decl): Return immediately when
	pure_const_state has been set to IPA_NEITHER.

2007-10-25  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/33833
	* tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
	and convert init to sizetype in inner_base construction.

2007-10-25  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (mem_sym_stats): Remove.
	(dump_mem_sym_stats_for_var): Declare.
	* tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
	(mem_sym_stats): Move ...
	* tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
	(mem_sym_score): Rename from ...
	(pscore): ... this.  Remove.
	(dump_mem_sym_stats_for_var): New function.  Dump the score, but
	not the frequencies.
	(compare_mp_info_entries): Make sort stable by disambiguating
	on DECL_UID.

2007-10-25  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/33866
	* tree-vect-transform.c (vectorizable_store): Check operands of all
	the stmts in the group of strided accesses. Get def stmt type for each
	store in the group and pass it to vect_get_vec_def_for_stmt_copy ().

2007-10-25  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/constraints.md (Y0): Rename register constraint to Yz.
	(Yt): Rename register constraint to Y2.
	* config/i386/sse.md: Use renamed register constraints.
	* config/i386/mmx.md: Ditto.
	* config/i386/i386.md: Ditto.

2007-10-25  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.

2007-10-24  Chao-ying Fu  <fu@mips.com>

	* dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
	DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.

2007-10-24  Samuel Tardieu  <sam@rfc1149.net>
	    Olga Golovanevsky <olga@il.ibm.com>
	
	* ipa-struct-reorg.c (replace_field_acc): Make it clear to
	the compiler that wr.wrap and wr.domain are initialized in
	any case.

2007-10-24  Samuel Tardieu  <sam@rfc1149.net>

	* ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
	to print gcov_type values.

2007-10-24  Eric B. Weddington  <eweddington@cso.atmel.com>

	* config/avr/avr.h: Do not include progmem_section definition when
	building with IN_TARGET_LIBS.

2007-10-24  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR target/33755
	* config/mips/mips.c (mips_lo_sum_offset): New structure.
	(mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
	(mips_lo_sum_offset_lookup, mips_record_lo_sum)
	(mips_orphaned_high_part_p: New functions.
	(mips_avoid_hazard): Don't check INSN_P here.
	(mips_avoid_hazards): Rename to...
	(mips_reorg_process_insns): ...this.  Cope with
	!TARGET_EXPLICIT_RELOCS.  Delete orphaned high-part relocations,
	or turn them into nops.
	(mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
	dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
	(mips_set_mips16_mode): Don't set flag_delayed_branch here.
	(mips_override_options): Set flag_delayed_branch to 0.

2007-10-24  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
	MIPS-specific implementation details.
	(MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
	(MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
	(MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
	for targets with movmemsi.
	(MOVE_BY_PIECES_P): Define.
	* config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
	(mips_block_move_loop): Add a bytes_per_iter argument.
	(mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
	Update call to mips_block_move_loop.

2007-10-24  Michael Matz  <matz@suse.de>

	PR debug/33868
	* var-tracking.c (variable_union): Don't break after one loop
	iteration but only when a difference is found.
	(dump_variable): Also print DECL_UID.

2007-10-24  Olga Golovanevsky  <olga@il.ibm.com>

	* ipa-type-escape.h: Expose function
	is_array_access_through_pointer_and_index.
	* ipa-type-escape.c
	(is_array_access_through_pointer_and_index):
	Add three new parameters. Add support of
	POINTER_PLUS_EXPR tree code.

2007-10-24  Olga Golovanevsky  <olga@il.ibm.com>

	* ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
	* tree-pass.h: Add pass_ipa_struct_reorg.
	* common.opt: Add ipa-struct-reorg flag.
	* Makefile.in: Add ipa-strcut-reorg.o compilation.
	* passes.c: Add pass pass_ipa_struct_reorg.
	* params.h:  Add STRUCT_REORG_COLD_STRUCT_RATIO.
	* params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.

2007-10-24  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/33804
	* tree-vect-transform.c (vectorizable_operation): Remove the
	checks that the vectorization is worthwhile from the transformation
	phase.

2007-10-24  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-analyze.c (vect_build_slp_tree): Return false if
	vectype cannot be determined for the scalar type.
	(vect_analyze_slp_instance): Likewise.
	* tree-vect-transform.c (vect_model_reduction_cost): Change the
	return type to bool. Return false if vectype cannot be determined 
	for the scalar type.
	(vect_get_constant_vectors): Return false if vectype cannot be
	determined for the scalar type.
	(get_initial_def_for_induction, vect_get_vec_def_for_operand,
	get_initial_def_for_reduction, vect_create_epilog_for_reduction,
	vectorizable_reduction): Likewise.	

2007-10-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* config.gcc: For a FreeBSD target, parse the value of ${target}
	to determine the value of FBSD_MAJOR, instead of adding an
	explicit check for every possible FreeBSD major version.

2007-10-23  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/33846
	* combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.

2007-10-23  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/33860
	* tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
	interleaved accesses in case the dr is inside the inner-loop during
	outer-loop vectorization.

2007-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
	Document MEM_POINTER.  Replace mentions of "integrated"
	field with "return_val".  Delete outdated stuff.

2007-10-23  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_override_options): Set
	rs6000_altivec_abi on AIX.
	(conditional_register_usage): Set VR20:31 fixed on AIX.

2007-10-23  Richard Guenther  <rguenther@suse.de>

	* alias.c (get_alias_set): For INDIRECT_REFs, deal with
	SSA_NAME pointers.

2007-10-22  Seongbae Park <seongbae.park@gmail.com>
	    David S. Miller  <davem@davemloft.net>

	* df-scan.c (df_get_call_refs): Mark global registers as both a
	DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.

2007-10-22  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/33834
	PR tree-optimization/33835
	* tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
	stmts need to be checked for success seperately.
	* tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
	Remove the check that stmt is not LIVE.
	(vectorizable_assignment, vectorizable_induction): Likewise.
	(vectorizable_operation, vectorizable_type_demotion): Likewise.
	(vectorizable_type_promotion, vectorizable_load, vectorizable_store):
	Likewise.
	(vectorizable_live_operation): Check that op is not NULL. 

2007-10-22  Janis Johnson  <janis187@us.ibm.com>

	* doc/invoke.texi (Optimization Options): In the summary, show
	that the value for options -falign-jumps, -falign-labels,
	-falign-loops, -falign-functions, -fsched-stalled-insns, and
	-fsched-stalled-insns-dep is optional.  In the summary, show that
	-fsched-stalled-insns takes an optional argument and that
	-fparallelize-loops takes an argument.  Add opindex for several
	optimization options, and fix typos in the opindex commands for
	several others.  In the descriptions for -fsched-stalled-insns
	and -fsched-stalled-insns-dep, show the options with and without
	values.

2007-10-22  Eric B. Weddington  <eweddington@cso.atmel.com>

	* config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
	produced.
	* config/avr/avr.h (LINK_SPEC): Likewise.
	(CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

2007-10-22  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/33644
	* cfgcleanup.c: Do not include dce.h.
	* cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
	* combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
	* dce.c (something_changed): Delete.
	(libcall_dead_p): New predicate.
	(delete_unmarked_insns): Use it to delete dead libcalls.
	Deal with REG_LIBCALL and REG_RETVAL notes.
	(prescan_libcall_for_dce): New function.
	(prescan_insns_for_dce): Use it to deal with libcalls.
	(mark_reg_dependencies): Do nothing special for libcalls.
	(dce_process_block): Likewise.
	(fast_dce): Delete unused local variable.
	(run_fast_dce): Do not return a value.
	* dce.h (struct df): Delete.
	(run_fast_dce): Adjust prototype.
	* optabs.c (libcall_id): Delete.
	(maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
	(emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
	* reload1.c (reload): Delete REG_LIBCALL_ID case.
	* rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
	* see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
	notes instead of REG_LIBCALL_ID notes.
	* reg-notes.def (LIBCALL_ID): Delete.
	* Makefile.in (see.o): Add dce.h dependency.
	(cfgcleanup.o): Remove dce.h dependency.

2007-10-22  Michael Matz  <matz@suse.de>

	PR tree-optimization/33855
	* tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
	and VECTOR_TYPE.

2007-10-22  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/33854
	* tree-vect-analyze.c (vect_determine_vectorization_factor): Add
	FLOAT_EXPR to the list of promotion operations.	

2007-10-22  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/29473
	PR target/29493
	* config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
	(print_reg): Print register prefix only with AT&T asm syntax. 
	Support pc_rtx for RIP register.
	(print_operand_address): Use print_reg()'s pc_rtx support for RIP
	relative addressing.  Always print segment register prefix with AT&T
	asm syntax and never with Intel asm syntax.
	(print_operand): Suppress 'XXX PTR' prefix for BLKmode operands. 
	Fix prefix for 16-byte XFmode operands.
	(output_addr_const_extra): Support Intel asm syntax.
	(x86_file_start): Don't use register prefix with Intel asm syntax.
	* config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
	("return_internal_long"): Fix Intel asm syntax output.
	("set_got_rex64"): Support Intel asm syntax.
	("set_rip_rex64"): Likewise.
	("set_got_offset_rex64"): Likewise.
	("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
	syntax.
	("*tls_global_dynamic_64"): Likewise.
	("*tls_local_dynamic_base_64"): Likewise.
	("*load_tp_si")("*load_tp_di"): Likewise.
	("*add_tp_si")("*add_tp_di"): Likewise.
	("*tls_dynamic_lea_64"): Likewise.
	("*sibcall_value_1_rex64_v"): Likewise.
	("stack_tls_protect_set_si"): Likewise.
	("stack_tls_protect_set_di"): Likewise.
	("stack_tls_protect_test_si"): Likewise.
	("stack_tls_protect_test_di"): Likewise.
	* config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
	syntax output.
	("*movv2sf_internal_rex64"): Likewise.
	* config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
	(__get_cpuid_max): Likewise.

2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
	the STRICT_P argument type "bool" rather than "int".
	(mips_legitimate_address_p): Likewise.
	(fp_register_operand, lo_operand): Delete.
	(mips_subword): Give the HIGH_P argument type "bool" rather than "int".
	(mips_emit_scc): Rename to...
	(mips_expand_scc): ...this.
	(gen_conditional_branch): Rename to...
	(mips_expand_conditional_branch): ...this.
	(gen_conditional_move): Rename to...
	(mips_expand_conditional_move): ...this.
	(mips_gen_conditional_trap): Rename to...
	(mips_expand_conditional_trap): ...this and take an rtx code instead
	of an operands array.
	(mips_expand_call): Give the SIBCALL_P argument type "bool"
	rather than "int".
	(mips_emit_fcc_reload): Rename to...
	(mips_expand_fcc_reload): ...this.
	(init_cumulative_args): Rename to...
	(mips_init_cumulative_args): ...this and remove the libname argument.
	(function_arg_advance): Rename to...
	(mips_function_arg_advance): ...this.
	(function_arg): Rename to...
	(mips_function_arg): ...this and use "rtx" instead of
	"struct rtx_def *".
	(function_arg_boundary): Rename to...
	(mips_function_arg_boundary): ...this.
	(mips_expand_unaligned_load): Rename to...
	(mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
	and BITPOS arguments type "HOST_WIDE_INT".
	(mips_expand_unaligned_store): Rename to...
	(mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
	and BITPOS arguments type "HOST_WIDE_INT".
	(override_options): Rename to...
	(mips_override_options): ...this.
	(print_operand): Rename to...
	(mips_print_operand): ...this.
	(print_operand_address): Rename to...
	(mips_print_operand_address): ...this.
	(mips_output_ascii): Remove the PREFIX argument.
	(mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
	rather than "int".
	(mips_can_use_return_insn): Return a "bool" rather than an "int".
	(mips_function_value): Remove the FUNC argument.  Use "rtx" instead
	of "struct rtx_def *".
	(mips_secondary_reload_class): Give the IN_P argument type "bool"
	rather than "int".
	(build_mips16_call_stub): Delete.
	(mips_store_data_bypass_p): Return a "bool" rather than an "int".
	(mips_use_ins_ext_p): Give the second and third arguments type
	"HOST_WIDE_INT" rather than "rtx".
	* config/mips/mips.h: Update after the above changes.  Tweak comments
	and formatting.
	(SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
	(mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
	element type from "char" to "bool".
	(mips_section_threshold, sym_lineno, set_noat, mips_branch_likely)
	(mips_cpu_info_table): Delete.
	* config/mips/mips.md: Update after the above changes.  Tweak some
	formatting.
	* config/mips/mips-ps-3d.md: Likewise.
	* config/mips/mips.c: Tweak comments and formatting.
	Use NULL-like macros rather than 0 in various places.
	(mips_section_threshold): Rename to...
	(mips_small_data_threshold): ...this and give it an unsigned type.
	(num_source_filenames): Remove explicit initialization.
	(sdb_label_count): Likewise.
	(sym_lineno): Delete.
	(set_noat): Make static.
	(mips_branch_likely): Likewise, and give it type "bool".
	(mips_isa_info): Rename to...
	(mips_isa_option_info): ...this.
	(mips_flag_delayed_branch): Rename to...
	(mips_base_delayed_branch): ...this.
	(mips_split_addresses): Delete.
	(mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
	element type from "char" to "bool".
	(mips_regno_to_class): Add an explicit array size.
	(mips16_flipper): Change from type "int" to type "bool".
	(mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check.
	(mips_tls_operand_p): Rename to...
	(mips_tls_symbol_p): ...this.
	(mips_global_symbol_p): Remove redundant "const".
	(mips_offset_within_alignment_p): Simplify.
	(mips_regno_mode_ok_for_base_p): Change the name of the last argument
	to STRICT_P and give it type bool.
	(mips_valid_base_register_p): Likewise.
	(mips_classify_address): Likewise.
	(mips_legitimate_address_p): Likewise.
	(mips16_unextended_reference_p): Take the offset as an
	"unsigned HOST_WIDE_INT" rather than an "rtx".  Simplify.
	(mips_const_insns): Use IN_RANGE.
	(mips_force_temporary): Remove an unnecessary copy_rtx.
	(mips16_gp_pseudo_reg): Simplify.
	(mips_split_symbol): Remove an unnecessary copy_rtx.
	(mips_legitimize_tls_address): Only create registers if we need them.
	(mips_legitimize_address): Use mips_split_plus.
	(mips_move_integer): Swap DEST and TEMP arguments.  Rename local
	variable COST to NUM_OPS.
	(mips_legitimize_move): Use gen_lowpart.
	(mips_rewrite_small_data): Rename the OP parameter to PATTERN.
	(m16_check_op): Use IN_RANGE.
	(mips_subword): Give the HIGH_P argument type "bool" rather than "int".
	(mips_split_doubleword_move): Pass booleans to mips_subword.
	(mips_output_move): Store the mode in a local variable.
	Explicitly assert that this function does not deal with
	MFLO and MFHI.  Use SMALL_OPERAND_UNSIGNED.  Make order of
	cases more consistent.
	(mips_relational_operand_ok_p): Rename to...
	(mips_int_order_operand_ok_p): ...this.
	(mips_canonicalize_comparison): Rename to...
	(mips_canonicalize_int_order_test): ...this.
	(mips_emit_int_relational): Rename to...
	(mips_emit_int_order_test): ...this.  Store the mode in a local
	variable.
	(mips_reverse_fp_cond_p): Rename to...
	(mips_reversed_fp_cond): ...this.
	(mips_emit_compare): Make the order of the statements more consistent.
	(mips_emit_scc): Rename to...
	(mips_expand_scc): ...this.
	(gen_conditional_branch): Rename to...
	(mips_expand_conditional_branch): ...this.
	(gen_conditional_move): Rename to...
	(mips_expand_conditional_move): ...this.  Build the condition
	separately from the main pattern.
	(mips_gen_conditional_trap): Rename to...
	(mips_expand_conditional_trap): ...this and take an rtx code instead
	of an operands array.  Simplify.
	(init_cumulative_args): Rename to...
	(mips_init_cumulative_args): ...this.  Use memset rather than a
	copy from a zeroed static.  Use prototype_p and stdarg_p.
	(mips_arg_info): Rename to...
	(mips_get_arg_info): ...this and put the INFO argument first.
	(function_arg): Rename to...
	(mips_function_arg): ...this and use "rtx" instead of
	"struct rtx_def *".  Only split structures into chunks if 
	TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on
	a chunk-by-chunk basis.  Use SCALAR_FLOAT_TYPE_P instead of a
	comparison with REAL_TYPE.  Rename local variable REG to REGNO
	and make it unsigned.
	(function_arg_advance): Rename to...
	(mips_function_arg_advance): ...this.
	(function_arg_boundary): Rename to...
	(mips_function_arg_boundary): ...this.
	(mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison
	with MODE_INT.
	(mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a
	comparison with REAL_TYPE.
	(mips_function_value): Remove the FUNC argument.  Rename local
	variable UNSIGNEDP to UNSIGNED_P.
	(mips_return_in_memory): Use IN_RANGE.
	(mips_setup_incoming_varargs): Pass a boolean rather than an int
	to FUNCTION_ARG_ADVANCE.
	(mips_gimplify_va_arg_expr): Rename local variable INDIRECT
	to INDIRECT_P.  Remove a redundant mips_abi check.  Only calculate
	SIZE and RSIZE if needed.
	(mips16_stub): Rename FPRET to FP_RET_P and give it type "bool"
	rather than "int".
	(build_mips16_function_stub): Rename to...
	(mips16_build_function_stub): ...this.
	(build_mips16_call_stub): Rename to...
	(mips16_build_call_stub): ...this.  Make static, and return a
	"bool" rather than an "int".  Rename the ARG_SIZE argument to
	ARGS_SIZE.  Rename the local variable FPRET to FP_RET_P and give
	it type "bool".  Use "jr" rather than "j".  Use XNEW.  Simplify.
	(mips_load_call_address): Give the SIBCALL_P argument type "bool"
	rather than "int".
	(mips_expand_call): Likewise.  Assert that MIPS16 calls via stubs
	are not sibling ones.
	(mips_emit_fcc_reload): Rename to...
	(mips_expand_fcc_reload): ...this.
	(mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type
	"HOST_WIDE_INT".
	(mips_expand_unaligned_load): Rename to...
	(mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
	and BITPOS arguments type "HOST_WIDE_INT".  Remove redundant
	SUBREG_BYTE check.
	(mips_expand_unaligned_store): Rename to...
	(mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
	and BITPOS arguments type "HOST_WIDE_INT".
	(mips_use_ins_ext_p): Rename second and third arguments to WIDTH
	and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx".
	Use IN_RANGE.
	(mips_init_split_addresses): Replace with...
	(mips_split_addresses_p): ...this new function.
	(mips_init_relocs): Check mips_split_addresses_p () rather than
	mips_split_addresses.  Always initialize mips_split_p with booleans.
	(print_operand_reloc): Rename to...
	(mips_print_operand_reloc): ...this.  Use a gcc_assert rather than
	a fatal_error.
	(print_operand): Rename to...
	(mips_print_operand): ...this.
	(print_operand_address): Rename to...
	(mips_print_operand_address): ...this.  Use GP_REG_FIRST.
	(mips_in_small_data_p): Simplify.
	(mips_output_ascii): Remove the PREFIX argument and "register"
	keywords.  Use the STRING parameter directly and cast to
	"unsigned char".
	(mips16e_collect_argument_save_p): Use IN_RANGE.
	(mips_function_has_gp_insn): Simplify.
	(mips_set_return_address): Use BITSET_P.
	(mips_restore_gp): Use a separate statement to pick the base
	register.
	(mips_output_function_prologue): Use a local FRAME variable.
	(mips_save_reg): Pass booleans to mips_subword.
	(mips_expand_prologue): Use a local FRAME variable.  Use
	cprestore_size to detect when .cprestore is needed.
	(mips_restore_reg): Use GP_REG_FIRST.
	(mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
	rather than "int".  Use local FRAME and REGNO variables.
	(mips_can_use_return_insn): Return a "bool" rather than an "int".
	(mips_secondary_reload_class): Give the IN_P argument type "bool"
	rather than "int".
	(mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN.
	(mips_store_data_bypass_p): Return a "bool" rather than an "int".
	(vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P.
	(mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P.
	(mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P.
	(builtin_description): Rename to...
	(mips_builtin_description): ...this.
	(mips_bdesc): Rename to...
	(mips_ps_bdesc): ...this.
	(sb1_bdesc): Rename to...
	(mips_sb1_bdesc): ...this.
	(dsp_bdesc): Rename to...
	(mips_dsp_bdesc): ...this.
	(dsp_32only_bdesc): Rename to...
	(mips_dsp_32only_bdesc): ...this.
	(bdesc_map): Rename to...
	(mips_bdesc_map): ...this.
	(bdesc_arrays): Rename to...
	(mips_bdesc_arrays): ...this.
	(mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO.
	Tweak error message.
	(mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P.
	Rename local variables I and J to OPNO and ARGNO respectively.
	Assert that the number of arguments is no more than the number of
	input operands.
	(mips_expand_builtin_compare): Use an array of arguments rather
	than an array of operands.  Assert that the number of operands is
	as expected.
	(add_constant): Rename to...
	(mips16_add_constant): ...this.  Use XNEW.
	(dump_constants_1): Rename to...
	(mips16_emit_constants_1): ...this.  Use ALL_SCALAR_FIXED_POINT_MODE_P.
	(dump_constants): Rename to...
	(mips16_emit_constants): ...this.
	(mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO.
	(mips_set_mips16_mode): Don't call mips_init_split_addresses.
	Assign mips16_p to was_mips16_p.
	(mips_parse_cpu): Tweak warning message.
	(override_options): Rename to...
	(mips_override_options): ...this.  Move the mips_cost initialization
	out of the "shared with GAS" block.  Quote option names in error
	messages.
	(mips_conditional_register_usage): Make local variable REGNO unsigned.
	(mips_order_regs_for_local_alloc): Remove register keyword.

2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>

	* system.h (IN_RANGE): Cast each argument individually.

2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float
	MIPS16 code unless using o32 or o64.  

2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_cannot_change_mode_class): Don't check
	for modes smaller than 4 bytes.
	* config/mips/mips.md (*movhi_internal, *movqi_internal): Remove
	FPR alternatives.

2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips-protos.h (mips_output_aligned_bss): Delete.
	* config/mips/linux.h (BSS_SECTION_ASM_OP): Delete.
	(ASM_OUTPUT_ALIGNED_BSS): Delete.
	* config/mips/mips.c (mips_output_aligned_bss): Delete.

2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid
	sibling calls to "mips16" functions if the function satisfies
	const_call_insn_operand.

2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_va_start): Fix types in calls
	to build_int_cst.

2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
	if ISA_HAS_FP4.

2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro.
	* config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1
	instead of checking mips_isa.

2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>

	* doc/invoke.texi (-mpaired-single): Don't say that the option
	requires 64-bit code.
	* config/mips/mips-protos.h (mips_modes_tieable_p): Declare.
	* config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro.
	(ISA_HAS_NMADD_NMSUB): Add a mode argument.  Return true for
	V2SF if ISA_MIPS32R2.
	(MODES_TIEABLE_P): Use mips_modes_tieable_p.
	* config/mips/mips.c (mips_rtx_costs): Pass a mode argument
	to ISA_HAS_NMADD_NMSUB.
	(mips_split_doubleword_move): Handle V2SF.
	(mips_modes_tieable_p): New function.
	(override_options): Report a warning rather than an error when
	-mpaired-single is used on ISAs that don't support it; use
	ISA_HAS_PAIRED_SINGLE to check that case.
	* config/mips/mips.md (MOVE64): New mode iterator.  Replace DI
	and DF move splitters with a single MOVE64 splitter, thereby adding
	a V2SF splitter too.
	(SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF.
	Add a TARGET_FLOAT64 condition to TF.  Add V2SF to the iterator.
	(HALFMODE): Add V2SF.
	(*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>)
	(*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB.
	(movv2sf_hardfloat_64bit): Tweak ordering of conditions.
	(movv2sf_hardfloat_32bit): New pattern.
	(load_low<mode>, load_high<mode>, store_word<mode>): Remove
	TARGET_DOUBLE_FLOAT conditions.

2007-10-20  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
	saved CR2 offset to low 32 bits of regs->ccr rather than the whole
	64-bit register in 64-bit libgcc.

2007-10-20  Eric B. Weddington  <eweddington@cso.atmel.com>

	* config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
	* config/avr/avr.h (LINK_SPEC): Likewise.
	(CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

2007-10-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
	and -Wfatal-errors together.
	
2007-10-20  Alan Modra  <amodra@bigpond.net.au>

	PR target/33812
	* config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
	change for vrsave, ie restore after frame pop.

2007-10-19  David S. Miller  <davem@davemloft.net>

	* config/sparc/niagara2.md: Fix copyright notice.

2007-10-19  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/23820
	PR tree-optimization/24309
	PR tree-optimization/33766
	* testsuite/gcc.dg/tree-ssa/pr23820.c: New.
	* testsuite/gcc.dg/tree-ssa/pr24309.c: New.
	* testsuite/gcc.dg/tree-ssa/pr33766.c: New.
	* testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
	* tree-loop-linear.c (perfect_loop_nest_depth): New.
	(linear_transform_loops): Use perfect_loop_nest_depth.
	* lambda-code.c (perfect_nest_p): Outer loops in perfect nests 
	should have a single condition: their exit.

2007-10-19  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33816
	PR middle-end/32921
	* stor-layout.c (layout_type): Assert that aggregates do not
	have their alias sets set.
	* alias.c (get_alias_set): Return alias set zero for incomplete
	types, return the alias set of the element for incomplete array
	types, but do not remember these.

2007-10-19  Richard Guenther  <rguenther@suse.de>

	Revert
	2007-10-19  Richard Guenther  <rguenther@suse.de>

	PR middle-end/32921
	* tree.c (build_array_type): Do not re-layout unbound array
	types.

2007-10-19  Richard Guenther  <rguenther@suse.de>

	PR middle-end/32921
	* tree.c (build_array_type): Do not re-layout unbound array types.

2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_canonicalize_comparison):  Check
	mips_relational_operand_ok_p before trying to rewrite the test.
	Only calculate PLUS_ONE if needed.
	(mips_emit_int_relational): Don't call mips_relational_operand_ok_p
	here.

2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
	calculation.

2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
	the call uses the incoming value of $2.

2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
	rather then gen_rtx_MEM.
	(mips_setup_incoming_varargs): Use gen_frame_mem rather than
	gen_rtx_MEM.
	(mips_set_return_address): Likewise.
	(mips_restore_gp): Likewise.

2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (gpr_mode): Delete.
	(mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
	instead of gpr_mode.
	(mips_for_each_saved_reg): Likewise.
	(mips_expand_prologue, mips_expand_epilogue): Likewise.
	(override_options): Don't initialize gpr_mode.
	* config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.

2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
	case last.
	(mips_class_max_nregs): Calculate the smallest consituent register
	size and use that to determine an upper bound on the number of
	registers.

2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips16_copy_fpr_return_value): New function,
	split out from...
	(mips_expand_epilogue): ...here.
	(mips_mdebug_abi_name): New function, split out from...
	(mips_file_start): ...here.
	(mips_hard_regno_mode_ok_p): New function, split out from...
	(override_options): ...here.
	(mips_expand_builtin_1): New function, split out from...
	(mips_expand_buitin): ...here.  Abort if we don't recognize
	the function.

2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (build_mips16_function_stub): Load the
	target address into $1 before transfering the arguments.
	Don't use ".set noreorder".
	(build_mips16_call_stub): Likewise.

2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_output_32bit_xfer): New function.
	(mips_output_64bit_xfer): Likewise.
	(mips16_fp_args): Rename to...
	(mips_output_args_xfer): ...this and replace the FROM_FP_P argument
	with a DIRECTION argument.  Use mips_output_32bit_xfer and
	mips_output_64bit_xfer.
	(build_mips16_function_stub): Update accordingly.
	(mips16_fpret_double): Delete.
	(build_mips16_call_stub): Update after above changes.
	Use mips_output_32bit_xfer.  Use mips_output_64bit_xfer instead
	of mips16_fpret_double.  Use GP_REG_RETURN.

2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips16_fp_args): Remove the FILE argument and
	use asm_out_file instead.
	(build_mips16_function_stub): Likewise.
	(build_mips16_call_stub, mips_output_function_prologue): Update
	accordingly.

2007-10-18  David S. Miller  <davem@davemloft.net>

	Add Niagara-2 support.
	* doc/invoke.texi: Document -m{cpu,tune}=niagara2.
	* config.gcc: Add niagara2 to cpu and tune lists for sparc.
	* config/sparc/sparc.md (sparc_cpu_attr): Add niagara2.
	(include): Add inclusion of niagara2.md
	* config/sparc/sparc.c (niagara2_costs): New.
	(sparc_override_options): Add niagara2 entry to cpu_default[]
	and cpu_table[].  Set align_functions to 32 on Niagara2.  Use
	niagara2_costs when PROCESSOR_NIAGARA2.  Handle Niagara2 for
	PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE.
	(sparc_initialize_trampoline): Handle niagara2 like niagara.
	(sparc64_initialize_trampoline): Likewise.
	(sparc_use_sched_lookahead): Likewise.
	(sparc_issue_rate): Likewise.
	* config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and
	mcpu=niagara2
	* config/sparc/sparc.h (TARGET_CPU_niagara2): Define.
	({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for
	TARGET_CPU_niagara2.
	(PROCESSOR_NIAGARA2): New.
	(REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2.
	(BRANCH_COST): Likewise.
	* config/sparc/linux64.h: Handle TARGET_CPU_niagara2.
	* config/sparc/sol2.h: Likewise.
	* config/sparc/niagara2.md: New file.

2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_frame_info): Remove gp_reg_size and
	and fp_reg_size.
	(mips_compute_frame_info): Remove associated code.
	(mips16e_build_save_restore): Check num_fp instead of fp_reg_size.

2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips-protos.h (compute_frame_size): Delete.
	* config/mips/mips.h: Update comments.
	* config/mips/mips.c (mips_frame_info): Remove initialized.
	(compute_frame_size): Rename to...
	(mips_compute_frame_info): ...this and make static.  Remove the
	SIZE argument and return no value.  Remove the setting of initialized.
	Update rest of file accordingly.
	(mips_set_return_address): Don't call compute_frame_size.
	(mips_can_use_return_insn): Don't check df_regs_ever_live_p (31).
	Don't call compute_frame_size.

2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips-protos.h (mips_frame_pointer_required): Declare.
	* config/mips/mips.h (FRAME_POINTER_REQUIRED): Use
	mips_hard_frame_pointer_required.
	(CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for
	large MIPS16 frames.
	* config/mips/mips.c (mips_frame_pointer_required): New function.

2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_frame_info): Add arg_pointer_offset
	and hard_frame_pointer_offset.
	(mips_debugger_offset): Use hard_frame_pointer_offset.
	(mips16e_collect_argument_save_p): Likewise.
	(compute_frame_size): Initialize arg_pointer_offset and
	hard_frame_pointer_offset.
	(mips_initial_elimination_offset): Use them.
	(mips_output_function_prologue): Use hard_frame_pointer_offset.
	(mips_expand_prologue, mips_expand_epilogue): Likewise.

2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl
	profiling code.
	* config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type
	"unsigned int" rather than "int" and put them with the other
	register-related fields.  Put expanded comments above fields
	rather than to their right.
	(mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument
	with a NUM_REGS_PTR argument.
	(mips16e_save_restore_pattern_p): Update accordingly.
	(compute_frame_size): Clarify frame diagram.  Rewrite.

2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips-ftypes.def: New file.
	* config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2)
	(MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros.
	(mips_function_type): Redefine using mips-ftypes.def.
	(dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names.
	(mips_builtin_vector_type): New function.
	(MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI)
	(MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF)
	(MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1)
	(MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New
	macros.
	(mips_build_function_type): New function.
	(mips_init_builtins): Use it to create types lazily.

2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.h (set_volatile): Delete.
	* config/mips/mips.c (set_volatile): Delete.
	(mips_print_operand_punctuation): New function, split out from
	print_operand.  Remove '%{', '%}', '%~', '%&' and '%!'.
	Use the same character ordering in the code and the comments.
	Use a recursive call to handle '*'.  Abort on unknown characters.
	(mips_init_print_operand_punct): New function, split out from
	override_options.
	(mips_print_int_branch_condition): New function, split out from
	print_operand.  Use GET_RTX_NAME.  Use output_operand_lossage
	to report unexpected codes.
	(mips_print_float_branch_condition): New function, split out from
	print_operand.  Use output_operand_lossage to report unexpected codes.
	(print_operand): Rework to use a case statement.  Use the
	same letter ordering in the code and the comments.  Use
	output_operand_lossage to report unexpected codes and
	reverse_condition to handle inverted branch conditions.
	(override_options): Use mips_init_print_operand_punct.

2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.h: Move variable declarations to end of file and
	enclose them all in #ifndef USED_FOR_TARGET.
	* config/mips/mips.c: Reorder functions into more logical groups,
	and so that callees appear before callers.  Put the targetm
	initializer at the end of the file.  Remove forward static
	declarations where possible.
	(mips_init_builtins): Add "static" to definition.
	(mips_expand_builtin, mips_mode_rep_extended): Likewise.

2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete.
	(TARGET_MAX_ANCHOR_OFFSET): Delete.
	(mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS.
	(mips_set_mips16_mode): Initialize min_anchor_offset and
	max_anchor_offset directly to constants.

2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c: Delete trailing whitespace.

2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO.
	(mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY,
	and pick the first.
	* config/mips/mips.md (load_call<mode>): Don't make the unspec
	depend on FAKE_CALL_REGNO.  Set FAKE_CALL_REGNO.

2007-10-18  David Daney  <ddaney@avtrex.com>

	* config/mips/linux-unwind.h (mips_fallback_frame_state): Use new
	reg_offset variable to calculate register locations.

2007-10-18  Richard Guenther  <rguenther@suse.de>

	* tree-ssa.c (uid_ssaname_map_eq): New function.
	(uid_ssaname_map_has): Likewise.
	(init_tree_ssa): Allocate default_defs as uid_ssaname map.
	* tree-flow.h (struct gimple_df): Make default_defs a
	uid_ssaname map.
	* tree-dfa.c (gimple_default_def): Deal with it.
	(set_default_def): Likewise.

2007-10-18  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (struct gimple_df): Make referenced_vars
	a uid_decl_map.
	(uid_decl_map_eq): Declare.
	(uid_decl_map_hash): Likewise.
	* tree-ssa.c (uid_decl_map_eq): New function.
	(uid_decl_map_hash): Likewise.
	(init_tree_ssa): Make referenced_vars a uid_decl_map.
	* tree-flow-inline.h (first_referenced_var): Deal with
	the referenced_vars representation change.
	(next_referenced_var): Likewise.
	* tree-dfa.c (referenced_var_lookup): Likewise.
	(referenced_var_check_and_insert): Likewise.
	(remove_referenced_var): Likewise.

2007-10-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/mips/mips.c (mips_dwarf_register_span): New.
	(TARGET_DWARF_REGISTER_SPAN): Define.

2007-10-18  Chen Liqin  <liqin@sunnorth.com.cn>

	* config.gcc : update score-*-elf(extra_objs).
	* config/score/mac.md : Remove.
	* config/score/misc.md : Remove.
	* config/score/score7.md : Remove.
	* config/score/score-mdaux.h : Remove.
	* config/score/score-mdaux.c : Remove.
	* config/score/score-version.h : Remove.
	* config/score/score-generic.md : New.
	* config/score/score3.h : New.
	* config/score/score3.c : New.
	* config/score/score7.h : New.
	* config/score/score7.c : New.
	* config/score/mul-div.S : add flush_cache score3 support.
	* config/score/elf.h : Fix some typos.
	* config/score/score.md : merge score3 and score7 pattern.
	* config/score/score.c : use to seperate which target it used.
	* config/score/score.h : use to seperate the target macro.
	* config/score/score.opt : remove -mmac option , add -mscore3,
	-mscore3d and -march OPTION support.
 
2007-10-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* cfgexpand.c (expand_stack_vars): Add checking to make sure
	that the offset of a variable is not greater than the size
	of the paritition.

2007-10-17  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (avr_mcu_types): Add support for atmega48p, 
	atmega88p, atmega168p and atmega328p devices.
	* config/avr/avr.h (LINK_SPEC): (Ditto.).
	(CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

2007-10-17  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* sched-ebb.c: Surround code with '#ifdef INSN_SCHEDULING'.
	* ddg.c: Ditto.
	* sched-deps.c: Ditto.  Remove nested #ifdef's INSN_SCHEDULING.
	* sched-int.h: Surround declarations with '#ifdef INSN_SCHEDULING'.
	(print_insn): Move declaration to ...
	* rtl.h (print_insn): ... here.

2007-10-17  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/m68k.h (m68k_sched_cpu, m68k_sched_attr_opx_type,
	m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem,
	m68k_sched_branch_type): Move declarations to ...
	* config/m68/m68k-protos.h: ... here.

2007-10-17  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* genattrtab.c (main): Rearrange output of insn-attrtab.c headers.

2007-10-17  Eric B. Weddington  <eweddington@cso.atmel.com>

	* config/avr/avr.c (avr_mcu_types): Add attiny48.
	* config/avr/avr.h (LINK_SPEC): Likewise.
	(CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

2007-10-17  Eric B. Weddington  <eweddington@cso.atmel.com>

	* config/avr/avr.c (avr_mcu_types): Add attiny43u.
	* config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

2007-10-17  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/33794
	* reg-stack.c (move_for_stack_reg): Swap input argument of
	UNSPEC_TAN insn to the top of the stack.

2007-10-17  Uros Bizjak  <ubizjak@gmail.com>

	PR target/32961
	* config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128,
	IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128,
	IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128,
	IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require
	immediate shift value.
	* config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
	_mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
	_mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument.
	Remove macros for !__OPTIMIZE__ case.

2007-10-17  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (rewrite_constraints): Don't test for
	directness anymore.
	(perform_var_substitution): Only DFS from real nodes. Don't test
	for directness.
	(unite_pointer_equivalences): Fix broken test.

2007-10-17  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct
	altivec sp_offset.  Rearrange sp_offset assignments to
	correspond to stack adjustments.  Use frame_reg_rtx for
	SPE register restores.  Correct SPE stack adjustment.

2007-10-17  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* builtins.c (gimplify_va_arg_expr): Use inform for help message.
	* toplev.c (check_global_declaration_1): Use appropriate warning
	option instead of unnamed warning.
	* stor-layout.c (layout_decl): Likewise.
	* c-typeck.c (build_conditional_expr): Likewise.
	(build_compound_expr): Fix wrong comment.
	(build_binary_op): Use appropriate warning option instead of
	unnamed warning.
	* cfgexpand.c (tree_expand_cfg): Likewise.
	* tree-optimize.c (tree_rest_of_compilation): Likewise.
	* tree-cfg.c (remove_useless_stmts_warn_notreached): Likewise.
	(execute_warn_function_return): Likewise.
	* stmt.c (warn_if_unused_value): Likewise.

2007-10-16  Eric B. Weddington  <eweddington@cso.atmel.com>

	* config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316.
	* config/avr/avr.h (LINK_SPEC): Likewise and remove regex for
	similar devices.
	(CRT_BINUTILS_SPECS): Likewsie.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

2007-10-16  Amruth Laxman  <amruth.laxman@nsn.com>

	PR target/33594
	* config/sparc/sparc.h (LOCAL_ALIGNMENT): Define.

2007-10-16  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* dce.c (init_dce): Only initialize the obstacks for the fast pass.
	(fini_dce): Only release them for the fast pass.
	(end_ud_dce): Delete.
	(rest_of_handle_ud_dce): Do not modify df_in_progress.
	Call fini_dce instead of end_ud_dce.
	(rest_of_handle_fast_dce): Do not modify df_in_progress.
	(run_fast_df_dce): Reset df_in_progress to false on exit.

2007-10-16  Paolo Bonzini  <bonzini@gnu.org>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	* target.h (unspec_may_trap_p): New target hook.
	* target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro.
	* targhooks.c (default_unspec_may_trap_p): Default implementation of
	the hook.
	* targhooks.h (default_unspec_may_trap_p): Declare it.
	* doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook.
	* rtlanal.c (may_trap_p_1): Use new hook.  Make global.
	* rtl.h (may_trap_p_1): Declare.
	
	* config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to
	override default hook implementation.
	(TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the
	hook.

2007-10-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* doc/invoke.texi (Wextra): Move it just after Wall, list the
	options enabled by Wextra and mention Wuninitialized.
	
2007-10-15  Nigel Stephens  <nigel@mips.com>

	* config/mips/mips.h (LOCAL_ALIGNMENT): Define.

2007-10-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/33136
	* opts.c (decode_options): Don't enable flag_ipa_type_escape.

2007-10-15  Alexandre Oliva  <aoliva@redhat.com>

	PR tree-optimization/33735
	PR tree-optimization/33572
	* tree-inline.c (update_ssa_across_abnormal_edges): Revert
	2007-10-09's change.
	* except.c (duplicate_eh_regions): Don't look for prev_try
	beyond ERT_ALLOWED_EXCEPTIONS with an empty list.

2007-10-15  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/33706
	* tree-inline.c (copy_bb): Use bsi_replace to replace a
	__builtin_va_arg_pack-containing call stmt.

2007-10-15  Razya Ladelsky  <razya@il.ibm.com>

	* matrix-reorg.c (gate_matrix_reorg): Don't comment out whole
	program flag.

2007-10-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/33619
	* tree-ssa-ter.c (is_replaceable_p): Return false for all
	calls.

2007-10-15  David Edelsohn  <edelsohn@gnu.org>

	* config.gcc (powerpc-ibm-aix5*): Install altivec.h.

2007-10-15  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (extract_array_ref): Remove.
	(fold_comparison): Handle POINTER_PLUS_EXPR with the
	generic address expression comparison folding.  Remove
	the folding that used extract_array_ref.

2007-10-15  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR target/33133
	* haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if
	speculation type of insn can be changed before trying to do that.

2007-10-15  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* dse.c (struct insn_info): Add 'frame_read' field.
	(scan_insn): For the call to a const function, set frame_read if
	reload has been run.
	If the insn reads the frame, kill the frame related stores.
	(scan_reads_nospill): Likewise.

2007-10-14  Jason Merrill  <jason@redhat.com>

	* tree-eh.c (optimize_double_finally): Don't assume that the
	cleanup we're duplicating is only one statement.

2007-10-14  Kazu Hirata  <kazu@codesourcery.com>

	* config/fixed-bit.c, config/i386/cpuid.h, config/i386/i386.c,
	config/i386/i386.md, config/i386/sse.md, function.c, jump.c,
	modulo-sched.c, ra-conflict.c, toplev.c, tree-eh.c, tree-sra.c,
	tree-ssa-dse.c, tree-vect-analyze.c, tree-vect-patterns.c,
	tree-vect-transform.c: Fix comment typos.
	* doc/extend.texi: Fix a typo.

	* c-common.h: Remove the prototype for c_expand_body.
	* c-tree.h: Remove the prototype for c_disregard_inline_limits.
	* tree.h: Remove the prototype for fold_build_call_expr.

	* c-objc-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN):
	Remove.
	* c-tree.h: Remove the prototype for c_cannot_inline_tree_fn.

2007-10-13  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix53.h: New file.
	* config/rs6000/aix{41,43,51,52}.h (TARGET_ALTIVEC): Define to 0.
	(TARGET_ALTIVEC_ABI): Same.
	* config/rs6000/aix.h (TARGET_ALTIVEC): Delete.
	(TARGET_ALTIVEC_ABI): Delete.
	* config.gcc (powerpc-ibm-aix5*): Rename to aix5.2.  Add new
	stanza defaulting to aix5.3.

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

	* config/i386/i386.md (SI_REG, DI_REG): New constants.
	(strmov): Use defined constants.
	(cmpstrnsi): Likewise.
	* config/i386/i386.c (decide_alg): Use defined constants.
	(ix86_expand_strlen): Likewise.

2007-10-12  Richard Sandiford  <rsandifo@nildram.co.uk>

	* dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition.
	* var-tracking.c (micro_operation_def): Update comment on u.loc.
	(mode_for_reg_attrs, var_lowpart): New functions.
	(add_uses): Consider recording a lowpart of LOC for MO_USE.
	(add_stores): Likewise MO_SET and MO_COPY.  If the source of a set
	or copy is known, set LOC to the SET that performs the set, instead
	of the destination.
	(find_src_status, find_src_set_src): Remove LOC parameter.
	Replace INSN with the source value.
	(compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when
	handling MO_SET and MO_COPY.  Update the calls to find_src_status
	and find_src_set_src.

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

	PR 11001
	* config/i386/i386.md (strmov): Check for esi and edi usage.
	* config/i386/i386.c (decide_alg): Check whether we can use a
	rep prefix and adjust algorithm choice accordingly.
	(ix86_expand_strlen): Check for eax, ecx, and edi usage.

2007-10-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/c4x/c4x.md (mulqi3, mulhi3): Use optab_libfunc.

2007-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>

	* global.c (build_insn_chain): Formatting fixes.

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

	* tree-ssa-forwprop.c (forward_propagate_into_cond): For
	combining both operands require either both have single uses
	or combining to a constant.

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

	PR middle-end/26198
	* tree-ssa-forwprop.c (can_propagate_from): Do not propagate from
	a rhs with side-effects or which is a load.
	(forward_propagate_into_cond): Also try combining both operands.

2007-10-12  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/33742
	* tree-vect-transform.c (vectorizable_operation): Return false
	if get_vectype_for_scalar_type for scalar_dest can't be determined.
	(vectorizable_call): Same for rhs_type and lhs_type.

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

	PR tree-optimization/33645
	* tree-ssa-live.c (mark_all_vars_used): Add data argument,
	pass it to walk_tree.
	(mark_all_vars_used_1): Pass data through to mark_all_vars_used.
	When calling set_is_used on a VAR_DECL, if data is not NULL and
	its DECL_UID is in the bitmap, call mark_all_vars_used on its
	DECL_INITIAL after clearing the bit in bitmap.
	(remove_unused_locals): Adjust mark_all_vars_used callers.
	Instead of removing unused global vars from unexpanded_var_list
	immediately record them in bitmap, call mark_all_vars_used on
	all used global vars from unexpanded_var_list and only purge
	global vars that weren't found used even during that step.
 
2007-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* gthr-posix.h (__gthread_active_init): Create detached instead of
	joinable thread when testing whether threads are active on hppa-hpux.
	* gthr-posix95.h (__gthread_active_init): Likewise.

2007-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR middle-end/33676
	* global.c (build_insn_chain): Include insn that occur between
	basic blocks.
	
2007-10-11  Tom Tromey  <tromey@redhat.com>

	* gengtype-yacc.y: Delete.

2007-10-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (AX_REG, DX_REG, CX_REG): New constants.
	* config/i386/i386.c (ix86_function_arg_regno_p, function_arg_32,
	function_value_32, function_value_64, function_value_ms_64,
	setup_incoming_varargs_64, ix86_expand_prologue, ix86_expand_call,
	legitimize_tls_address, x86_this_parameter, x86_output_mi_thunk):
	Use new constants.

2007-10-11  Richard Guenther  <rguenther@suse.de>

	* gcse.c (hash_scan_set): If the next nonnote insn is in
	a different basic block insert the set.

2007-10-11  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33724
	* tree-cfg.c (one_pointer_to_useless_type_conversion_p): New function.
	(verify_gimple_expr): Use it to verify pointer-to types for
	ADDR_EXPRs.

2007-10-11  Richard Guenther  <rguenther@suse.de>

	PR c/33726
	* c-typeck.c (build_array_ref): Do not strip qualifiers from
	the array element type.

2007-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/33638
	* dse.c (struct insn_info): Remove 'stack_read' field,
	add 'stack_pointer_based' field.
	(record_store): For a store with non-constant base, record
	whether it is stack pointer based.
	(scan_insn): For the call to a const function, remove stack
	pointer based stores from the list of local active stores.
	(scan_reads_nospill): Delete code dealing with const functions.

2007-10-10  Peter Bergner  <bergner@vnet.ibm.com>

	* ra-conflict.c (partial_bitnum, max_bitnum): Change type of variables
	to HOST_WIDE_INT.
	(conflict_p, set_conflict, set_conflicts): Likewise.
	* global.c (global_alloc): Likewise.
	* ra.h: Update prototypes.

2007-10-10  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* opth-gen.awk: Fixed generation of comment stating the origin
	  of options.h

2007-10-10  Kazu Hirata  <kazu@codesourcery.com>

	Revert:
	2007-10-09  Kazu Hirata  <kazu@codesourcery.com>
	* longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
	and '%}', respectively.

	Revert:
	2007-10-09  Kazu Hirata  <kazu@codesourcery.com>
	* config/m68k/m68k.c (print_operand): Handle '{' and '}'.
	* config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
	and '}'.
	* config/m68k/m68k.md: Replace '{' with '%{' where '{' is
	meant to be output.

	Revert:
	2007-10-07  Kazu Hirata  <kazu@codesourcery.com>
	* config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
	syntax for ASSEMBLER_DIALECT.
	* config/m68k/m68k.h (ASSEMBLER_DIALECT): New.

2007-10-10  Revital Eres  <eres@il.ibm.com>

	* modulo-sched.c (check_nodes_order): Dump the final order of
	the nodes.
	(get_sched_window): Add dump info.
	(calculate_order_params): Dump order params of the nodes.

2007-10-09  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR middle-end/33669
	* ra-conflict.c (record_one_conflict_between_regnos, 
	set_conflicts_for_earlyclobber, global_conflicts): Improved logging.
	(global_conflicts): Enhanced incorrect check.
	
2007-10-09  Geoffrey Keating  <geoffk@apple.com>

	* dwarf2out.c (output_call_frame_info): FDEs are always emitted
	if flag_exceptions is not set.
	* config/darwin.c (darwin_emit_unwind_label): Rewrite to use
	assemble_name rather than incorrectly emulating it.

	* doc/extend.texi (Deprecated Features): Mention that <? and >? and
	friends are removed from G++.

2007-10-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* c-opts.c (c_common_handle_option): -Wnontemplate-friend,
	-Wwrite-strings and -Wmultichar are enabled by default, so Wall
	enabling them is redundant. Don't check two times for
	c_dialect_cxx.
	
2007-10-09  H.J. Lu  <hongjiu.lu@intel.com>

	* ra-conflict.c (record_one_conflict_between_regnos): Revert
	the last change.
	(set_conflicts_for_earlyclobber): Likewise.
	(global_conflicts): Likewise.

2007-10-09  Kazu Hirata  <kazu@codesourcery.com>

	* longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
	and '%}', respectively.

2007-10-09  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.c (print_operand): Handle '{' and '}'.
	* config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
	and '}'.
	* config/m68k/m68k.md: Replace '{' with '%{' where '{' is
	meant to be output.

2007-10-09  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33692
	* gimplify.c (canonicalize_component_ref): Honor qualifiers
	of referenced structure and component.

2007-10-09  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR middle-end/33669
	* ra-conflict.c (record_one_conflict_between_regnos,
	set_conflicts_for_earlyclobber, global_conflicts): Improved logging.
	(global_conflicts): Removed incorrect check.

2007-10-09  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR tree-optimization/33615
	* tree-ssa-pre.c (compute_avail): Don't call make_values_for_stmt
	if the statement might throw.  Fix formatting.

2007-10-09  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR tree-optimization/33615
	* tree-ssa-loop-im.c (movement_possibility): Return MOVE_IMPOSSIBLE
	if the rhs might throw.

2007-10-09  Jan Hubicka  <jh@suse.cz>

	* invoke.texi (align-threshold, align-loop-iterations): Document.
	* final.c: Include cfgloop.h, params.h
	(compute_alignments): Dump decisions and compare them with loop
	structure; honor given parameters.
	(pass_compute_alignments): New dump file.
	* params.def (PARAM_ALIGN_THRESHOLD, PARAM_ALIGN_LOOP_ITERATIONS): New.
	* Makefile.in (final.o): Add dependency on cfgloop.h and params.h

2007-10-09  James E. Wilson  <wilson@specifix.com>

	PR tree-optimization/33655
	PR middle-end/22156
	* tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST,
	convert it to bitsizetype before size_binop call.

2007-10-09  Alexandre Oliva  <aoliva@redhat.com>

	PR tree-optimization/33572
	* tree-inline.c (update_ssa_across_abnormal_edges): Tolerate
	the absence of a corresponding edge from the exit block.

2007-10-09  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/22156
	* tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for
	bit-field layout.
	(sra_build_assignment): Likewise.  Set up mask depending on
	precision, not type.
	(sra_build_bf_assignment): Use BYTES_BIG_ENDIAN.  Don't overflow
	computing bit masks.
	(sra_build_elt_assignment): Don't view-convert from signed to
	unsigned.
	(sra_explode_bitfield_assignment): Use bit-field type if
	possible.  Use BYTES_BIG_ENDIAN.

2007-10-08  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/22156
	* tree-sra.c (scalarize_lsdt): Fix thinko in testing whether
	the original stmt can throw.
	(sra_build_bf_assignment): Fix type mismatch when applying negated
	mask.

2007-10-08  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register
	'#pragma mark' to be executed at preprocessing time.

2007-10-08  Ollie Wild  <aaw@google.com>

	* varasm.c (compare_constant): Removed call to
	lang_hooks.expand_constant.
	(copy_constants): Removed call to lang_hooks.expand_constant.
	(compute_reloc_for_constant): Removed call to
	lang_hooks.expand_constant.
	(output_addressed_constants): Removed call to
	lang_hooks.expand_constant.
	(constructor_static_from_elts_p): Removed call to
	lang_hooks.expand_constant.
	(output_constant): Removed calls to lang_hooks.expand_constant.
	* langhooks.h (struct lang_hooks): Removed field expand_constant.
	* langhooks-def.h (lhd_return_tree): Removed.
	(LANG_HOOKS_EXPAND_CONSTANT): Removed.
	(LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
	* langhooks.c (lhd_return_tree): Removed.

2007-10-08  Mark Shinwell  <shinwell@codesourcery.com>

	* combine.c (setup_incoming_promotions): Ensure that
	arguments that have not undergone mode promotions do not
	incorrectly get marked as being sign- or zero-extended.

2007-10-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33693
	PR middle-end/33695
	PR middle-end/33697
	* fold-const.c (fold_binary): Use correct types in folding
	of a * (1 << b) to (a << b).  Likewise for ~A & ~B to ~(A | B)
	and building of RROTATE_EXPR.

2007-10-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33691
	PR middle-end/33694
	PR middle-end/33696
	* fold-const.c (fold_binary): Use the correct types when
	folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2).
	(fold_binary): Use the correct types when folding
	(-A) - B to (-B) - A.
	(fold_unary): Use the correct types when folding ~(X).

2007-10-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* doc/invoke.texi (Wall): fix formatting issues.
	
2007-10-07  Richard Sandiford  <rsandifo@nildram.co.uk>

	* simplify-rtx.c (simplify_binary_operation_1): Canonicalize
	truncated shift counts.

2007-10-07  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
	syntax for ASSEMBLER_DIALECT.
	* config/m68k/m68k.h (ASSEMBLER_DIALECT): New.

2007-10-06  Eric Botcazou  <ebotcazou@adacore.com>
	    Nathan Froyd  <froydnj@codesourcery.com>

	* dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO
	when determining whether to record INCOMING_RETURN_ADDR_RTX.

2007-10-06  Eric Botcazou  <ebotcazou@adacore.com>

	Revert:
	2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
	* cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
	the function, temporarily point the debug interface to the null one.

2007-10-06  Alexandre Oliva  <aoliva@redhat.com>

	PR tree-optimization/33655
	PR middle-end/22156
	* tree-sra.c (bitfield_overlaps_p): Handle array and complex elements.

2007-10-06  Alexandre Oliva  <aoliva@redhat.com>

	PR tree-optimization/33572
	* tree-cfg.c (verify_stmts): Check for missing PHI defs.
	* tree-inline.c (update_ssa_across_eh_edges): Renamed to...
	(update_ssa_across_abnormal_edges): ... this.  Set slots in the
	return PHI node.
	(copy_edges_for_bb): Handle nonlocal label edges.
	(make_nonlocal_label_edges): Deleted.
	(optimize_inline_calls): Don't call it.

2007-10-05  Hans-Peter Nilsson  <hp@axis.com>

	* gthr-single.h: Revert last change.

2007-10-05  Michael Matz  <matz@suse.de>

	PR middle-end/33667
	* lower-subreg.c (decompose_multiword_subregs): Use
	validate_unshare_change().

2007-10-05  Peter Bergner  <bergner@vnet.ibm.com>

	* ra-conflict.c: Include "sparseset.h".
	(conflicts): Change to HOST_WIDEST_FAST_INT.
	(allocnos_live): Redefine variable as a sparseset.
	(SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE):
	Delete macros.
	(allocno_row_words): Removed global variable.
	(partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables.
	(CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines.
	(conflict_p, set_conflict_p, set_conflicts_p): New functions.
	(record_one_conflict_between_regnos): Cache allocno values and reuse.
	Use set_conflict_p.
	(record_one_conflict): Update uses of allocnos_live to use
	the sparseset routines.  Use set_conflicts_p.
	(mark_reg_store): Likewise.
	(set_reg_in_live): Likewise.
	(global_conflicts): Update uses of allocnos_live.
	Use the new adjacency list to visit an allocno's neighbors
	rather than iterating over all possible allocnos.
	Call set_conflicts_p to setup conflicts rather than adding
	them manually.
	* global.c: Comments updated.  
	(CONFLICTP): Delete define.
	(regno_compare): New function.  Add prototype.
	(global_alloc): Sort the allocno to regno mapping according to
	which basic blocks the regnos are referenced in.  Modify the
	conflict bit matrix to a compressed triangular bitmatrix.
	Only allocate the conflict bit matrix and adjacency lists if
	we are actually going to allocate something.
	(expand_preferences): Use conflict_p.  Update uses of allocnos_live.
	(prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an
	allocno's neighbors rather than iterating over all possible allocnos.
	(mirror_conflicts): Removed function.
	(dump_conflicts): Iterate over regnos rather than allocnos so
	that all dump output will be sorted by regno number.
	Use the FOR_EACH_CONFLICT macro.
	* ra.h: Comments updated.
	(conflicts): Update prototype to HOST_WIDEST_FAST_INT.
	(partial_bitnum, max_bitnum, adjacency, adjacency_pool):
	Add prototypes.
	(ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines.
	(adjacency_list_d, adjacency_iterator_d): New types.
	(add_neighbor, adjacency_iter_init, adjacency_iter_done,
	adjacency_iter_next, regno_basic_block): New static inline functions.
	(EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define.
	(conflict_p): Add function prototype.
	* sparseset.h, sparseset.c: New files.
	* Makefile.in (OBJS-common): Add sparseset.o.
	(sparseset.o): New rule.

2007-10-05  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33666
	* fold-const.c (fold_unary): Do not fold (long long)(int)ptr
	to (long long)ptr.

2007-10-05  Michael Matz  <matz@suse.de>

	PR inline-asm/33600
	* function.c (match_asm_constraints_1): Check for input
	being used in the outputs.

2007-10-05  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.

2007-10-05  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR target/33635
	* config/mips/mips.c (mips_register_move_cost): Rewrite to use
	subset checks.  Make the cost of FPR -> FPR moves depend on
	mips_mode_ok_for_mov_fmt_p.

2007-10-04  Doug Kwan  <dougkwan@google.com>

	* gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
	__gthread_cond_wait_recursive): Add to extend interface for POSIX
	conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
	support of conditional variables.
	* gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait,
	__gthread_cond_wait_recursive): Add to extend interface for POSIX
	conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
	support of conditional variables.
	* gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait,
	__gthread_cond_wait_recursive): Add to extend interface for POSIX
	conditional variables.
	* gthr.h: Update comments to document new interface.

2007-10-04  Geoffrey Keating  <geoffk@apple.com>

	* cgraphunit.c (cgraph_build_static_cdtor): Don't set DECL_IGNORED_P.

2007-10-04  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P.

2007-10-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33641
	* tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR
	does not need to be of INTEGER_TYPE.
	(verify_gimple_2): New function split out from ...
	(verify_gimple_1): ... here.  ICE if there was an error during
	verification.

2007-10-04  Michael Matz  <matz@suse.de>

	PR rtl-optimization/33653
	* dce.c (deletable_insn_p_1): Use volatile_refs_p().
	* dse.c (scan_insn): Same.

2007-10-04  Kazu Hirata  <kazu@codesourcery.com>

	* config.gcc: Remove USE_GAS for m68k targets.

2007-10-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33627
	* tree-gimple.h (canonicalize_cond_expr_cond): Declare.
	* tree-gimple.c (canonicalize_cond_expr_cond): New function,
	split out from ...
	* tree-ssa-forwprop.c (combine_cond_expr_cond): ... here.
	* tree-ssa-ifcombine.c (ifcombine_iforif): Use it.

2007-10-04  Anatoly Sokolov <aesok@post.ru>

 	* config/avr/avr.c (commands_in_file, commands_in_prologues, 
	commands_in_epilogues): Remove variables.
	(avr_file_start): Remove unneded initializations of commands_in_file,
	commands_in_prologues and commands_in_epilogues variables.
	(avr_file_end): Remove dead code.

2007-10-04  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.c (m68k_output_movem): Use the MOTOROLA if
	MOTOROLA is to true.

2007-10-03  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR target/33635
	* config/mips/mips-protos.h (mips_split_64bit_move): Rename to...
	(mips_split_doubleword_move): ...this.
	* config/mips/mips.c (mips_subword): Extend to handle 64-bit words;
	use natural endianness for multi-format FPR values.
	(mips_split_64bit_move): Rename to...
	(mips_split_doubleword_move): ...this and extend to 64-bit words.
	Use move_doubleword_fpr* patterns for moves involving FPRs.
	(mips_save_reg): Update the call to mips_split_64bit_move.
	(mips_secondary_reload_class): Return NO_REGS for any reload of a
	nonzero constant into an FPR if the constant can be forced to memory.
	* config/mips/mips.md: Update the splitter calls to
	mips_split_64bit_move.
	(UNSPEC_LOAD_DF_LOW): Rename to...
	(UNSPEC_LOAD_LOW): ...this.
	(UNSPEC_LOAD_DF_HIGH): Rename to...
	(UNSPEC_LOAD_HIGH): ...this.
	(UNSPEC_STORE_DF_HIGH): Rename to...
	(UNSPEC_STORE_WORD): ...this.
	(SPLITF): New mode iterator.
	(HALFMODE): New mode attribute.
	(movtf): New expander.
	(*movtf_internal): New define_insn_and_split.
	(move_doubleword_fpr<mode>): New expander.
	(load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace
	with...
	(load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
	(mfhc1<mode>): ...these more general patterns.

2007-10-03  Alexandre Oliva  <aoliva@redhat.com>

	* cfgrtl.c (rtl_block_ends_with_call_p): Skip notes at the end.

2007-10-03  Alexandre Oliva  <aoliva@redhat.com>

	* gcse.c (hash_scan_set): Insert set in insn before note at
	the end of basic block.

2007-10-03  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/33576
	* testsuite/gcc.dg/tree-ssa/pr33576.c: New.
	* tree-loop-linear.c (linear_transform_loops): Call remove_iv.
	* lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter.
	(remove_iv): Declared.
	* lambda-code.c (remove_iv): Not static.
	(lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs.
	Don't remove ivs there, save ivs in the buffer.

2007-10-03  Jason Merrill  <jason@redhat.com>

	PR c++/15764
	* tree-eh.c (same_handler_p): New fn.
	(optimize_double_finally): New fn.
	(refactor_eh_r): New fn.
	(refactor_eh): New fn.
	(pass_refactor_eh): New pass.
	* tree-pass.h: Declare it.
	* passes.c (init_optimization_passes): Add it.

2007-10-03  Doug Kwan  <dougkwan@google.com>
	Richard Guenther  <rguenther@suse.de>

	PR debug/31899
	* dwarf2out.c (reference_to_unused): Disable sanity checking,
	be conservative instead.

2007-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/26682
	* doc/invoke.texi (-fwhole-program): Document that Fortran
	doesn't support this option.

2007-10-02  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR middle-end/33617
	* expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to expand_expr.

2007-10-02  David Daney  <ddaney@avtrex.com>

	* config/mips/mips.md (sync_compare_and_swap<mode>): Handle compare
	against constant zero.
	* config/mips/mips.h (MIPS_COMPARE_AND_SWAP):  Handle constant zero
	operand.

2007-09-02  Kenneth Zadeck <zadeck@naturalbridge.com>

	* ra-conflict.c: New file.
	* ra.h: New file.
	* reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE
	usage to DF_LIVE usage.
	(reload): Remove reference to df_get_live_top.
	* rtlanal.c (subreg_nregs_with_regno): New function.  
	* df-scan.c (df_def_record_1, df_uses_record): Add code to set
	DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags.
	(df_has_eh_preds): Removed.
	(df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect,
	df_exit_block_uses_collect): Changed call from df_has_eh_preds to
	bb_has_eh_pred.
	* global.c (allocno, max_allocno, conflicts, allocno_row_words,
	reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h
	(SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c.
	(regs_set, record_one_conflict, record_conflicts, mark_reg_store,
	mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted.
	(global_alloc): Turn off rescanning insns after call to
	global_conflicts and added call to set_preferences.
	(global_conflicts): Moved to ra-alloc.c.
	(set_preferences_1, set_preferences): New function.
	(mirror_conflicts): Changed types for various variables.
	(mark_elimination): Change DF_RA_LIVE
	usage to DF_LIVE usage.
	(build_insn_chain): Rewritten from scratch and made local.
	(print_insn_chain, print_insn_chains): New functions.
	(dump_conflicts): Do not print conflicts for fixed_regs.
	(rest_of_handle_global_alloc): Turn off insn rescanning.
	* hard-reg-set.h: Fixed comment.
	* local-alloc.c (update_equiv_regs): Change DF_RA_LIVE
	usage to DF_LIVE usage and delete refs to TOP sets.
	(block_alloc): Mark regs as live if they are in the artificial
	defs at top of block.
	(find_stack_regs): New function.
	(rest_of_handle_local_alloc): Changed urec problem to live
	problem and do not turn off df rescanning.
	* df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN,
	DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec,
	df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed.
	(DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered.
	(DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New
	fields in df_ref_flags.  The rest have been renumbered.  
	* init-regs.c (initialize_uninitialized_regs): Enhanced debugging
	at -O1.
	* rtl.h (subreg_nregs_with_regno): New function.
	* df-problems.c: (df_get_live_out, df_get_live_in,
	df_get_live_top): Removed reference to DF_RA_LIVE.
	(df_lr_reset, df_lr_transfer_function, df_live_free_bb_info,
	df_live_alloc, df_live_reset, df_live_local_finalize,
	df_live_free): Make top set only if different from in set.
	(df_lr_top_dump, df_live_top_dump): Only print top set if
	different from in set.
	(df_lr_bb_local_compute): Removed unnecessary check.
	(df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info, 
	df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass, 
	df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber,
	df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
	df_urec_local_compute, df_urec_init, df_urec_local_finalize, 
	df_urec_confluence_n, df_urec_transfer_function, df_urec_free, 
	df_urec_top_dump, df_urec_bottom_dump, problem_UREC,
	df_urec_add_problem): Removed.
	(df_simulate_fixup_sets): Changed call from df_has_eh_preds to
	bb_has_eh_pred. 
	* Makefile.in (ra-conflict.o, ra.h): New dependencies.
	* basic_block.h (bb_has_abnormal_pred): New function.
	* reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE
	usage to DF_LIVE usage.
	
2007-10-02  Revital Eres  <eres@il.ibm.com>

	* config/rs6000/predicates.md (easy_vector_constant): Return false
	for 750CL paired vectors.
	* config/rs6000/paired.md (movv2sf_paired): Fix move of easy
	vector constant.
	(vec_initv2sf): Add new description.
	(vconcatsf): Likewise.
	* config/rs6000/rs6000-protos.h: Declare paired_expand_vector_init.
	* config/rs6000/rs6000.c (paired_expand_vector_init): New function.

2007-10-01  Alexandre Oliva  <aoliva@redhat.com>

	* tree-ssa-sink.c (sink_code_in_bb): Don't stop sinking after
	sinking the last stmt in a BB.

2007-10-01  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/22156
	* tree-sra.c (struct sra_elt): Add in_bitfld_block.
	(sra_hash_tree): Handle BIT_FIELD_REFs.
	(sra_elt_hash): Don't hash bitfld blocks.
	(sra_elt_eq): Skip them in parent compares as well.  Handle
	BIT_FIELD_REFs.
	(build_element_name_1): Handle BIT_FIELD_REFs.
	(instantiate_element): Propagate nowarn from parents.  Create
	BIT_FIELD_REF for variables that are widened by scalarization.
	Gimple-zero-initialize all bit-field variables that are not
	part of parameters that are going to be scalarized on entry.
	(instantiate_missing_elements_1): Return the sra_elt.
	(canon_type_for_field): New.
	(try_instantiate_multiple_fields): New.  Infer widest possible
	access mode from decl or member type, but clip it at word
	size, and only widen it if a field crosses an alignment boundary.
	(instantiate_missing_elements): Use them.
	(generate_one_element_ref): Handle BIT_FIELD_REFs.
	(scalar_bitfield_p): New.
	(sra_build_assignment): Optimize assignments from scalarizable
	BIT_FIELD_REFs.  Use BITS_BIG_ENDIAN to determine shift counts.
	(REPLDUP): New.
	(sra_build_bf_assignment): New.  Optimize assignments to
	scalarizable BIT_FIELD_REFs.
	(sra_build_elt_assignment): New.  Optimize BIT_FIELD_REF
	assignments to full variables.
	(generate_copy_inout): Use the new macros and functions.
	(generate_element_copy): Likewise.  Handle bitfld differences.
	(generate_element_zero): Don't recurse for blocks.  Use
	sra_build_elt_assignment.
	(generate_one_element_init): Take elt instead of var.  Use
	sra_build_elt_assignment.
	(generate_element_init_1): Adjust.
	(bitfield_overlap_info): New struct.
	(bitfield_overlaps_p): New.
	(sra_explode_bitfield_assignment): New.  Adjust widened
	variables to account for endianness.
	(sra_sync_for_bitfield_assignment): New.
	(scalarize_use): Re-expand assignment to/from scalarized
	BIT_FIELD_REFs.  Explode or sync needed members for
	BIT_FIELD_REFs accesses or assignments.  Use REPLDUP.
	(scalarize_copy): Use REPLDUP.
	(scalarize_ldst): Move assert before dereference.  Adjust EH handling.
	(dump_sra_elt_name): Handle BIT_FIELD_REFs.

2007-10-01  Paolo Bonzini  <bonzini@gnu.org>

	* simplify-rtx.c (comparison_result, simplify_relational_operation_1):
	Rename CR_* constants to CMP_*.  Fix spacing.

2007-10-01  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR other/33585
	* Makefile.in (build_html_dir/gccinstall): gccinstall.texi needs
	to be processed with the special script doc/install.texi2html.
	
2007-09-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* doc/invoke.texi (Wall): List the options enabled by Wall.
	(Wstrict-aliasing): Add missing @option.
	
2007-09-30  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_split_64bit_move): Use gen_rtx_REG_offset
	rather than gen_lowpart to change a register from DImode to DFmode.
	(mips_cannot_change_mode_class): Only allow FPRs to change mode if
	both FROM and TO are integer modes that are no bigger than 4 bytes.
	(mips_mode_ok_for_mov_fmt_p): New function.
	(mips_preferred_reload_class): Use it instead of FLOAT_MODE_P.
	(mips_secondary_reload_class): Tweak formatting and comments.
	Use reg_class_subset_p instead of direct comparisons with
	classes.  Only allow direct FPR<->FPR moves for modes that
	satisfy mips_mode_ok_for_mov_fmt_p.  Only allow loads and stores
	for 4- and 8-byte types.  Handle reloads in which X is an FPR.
	* config/mips/mips.md (*movdi_gp32_fp64): Remove f<-f alternative.
	(*movdi_64bit): Likewise.
	(*movsi_internal): Likewise.
	(*movhi_internal): Likewise.
	(*movqi_internal): Likewise.

2007-09-30  Diego Novillo  <dnovillo@google.com>

	PR 33593
	* tree-ssa-ter.c (is_replaceable_p): Return false if STMT may
	throw an exception.

2007-09-30  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/33597
	* tree-vect-analyze.c (vect_build_slp_tree): Check if optab handler
	for LSHIFT_EXPR and RSHIFT_EXPR is available for vec_mode.

2007-09-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_expand_move): Use can_create_pseudo_p ()
	instead of variants of (!reload_in_progress && !reload_completed).
	(x86_expand_vector_move): Ditto.

2007-09-28  Ollie Wild  <aaw@google.com>

	Revert
	2007-09-27  Ollie Wild  <aaw@google.com>

	* varasm.c (compare_constant): Removed call to
	lang_hooks.expand_constant.
	(copy_constants): Removed call to lang_hooks.expand_constant.
	(compute_reloc_for_constant): Removed call to
	lang_hooks.expand_constant.
	(output_addressed_constants): Removed call to
	lang_hooks.expand_constant.
	(constructor_static_from_elts_p): Removed call to
	lang_hooks.expand_constant.
	(output_constant): Removed calls to lang_hooks.expand_constant.
	* langhooks.h (struct lang_hooks): Removed field expand_constant.
	* langhooks-def.h (lhd_return_tree): Removed.
	(LANG_HOOKS_EXPAND_CONSTANT): Removed.
	(LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
	* langhooks.c (lhd_return_tree): Removed.

2007-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR target/33347
	* config/spu/spu.c (spu_expand_insv): Call copy_rtx on the second
	argument to gen_selb.

2007-09-28  Chao-ying Fu  <fu@mips.com>

	* libgcc-std.ver: Add fixed-point routines to GCC_4.3.0 section.
	* doc/libgcc.texi (Fixed-point fractional library routines):
	Fix typos for neg and cmp functions.

2007-09-28  Michael Matz  <matz@suse.de>

	PR rtl-optimization/33552
	* function.c (match_asm_constraints_1): Check for overlap in
	inputs and replace all occurences.

2007-09-28  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (override_options): Fix comment typo.

2007-09-28  Jie Zhang  <jie.zhang@analog.com>

	* config.gcc (bfin*-linux-uclibc*): Set extra_parts
	to "crtbegin.o crtbeginS.o crtend.o crtendS.o".
	* config/bfin/t-bfin-linux (crti.o): Don't build.
	(crtn.o): Likewise.
	(EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
	* config/bfin/t-bfin-uclinux (crti.o): Don't build.
	(crtn.o): Likewise.
	(EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.

2007-09-27  Ollie Wild  <aaw@google.com>

	* varasm.c (compare_constant): Removed call to
	lang_hooks.expand_constant.
	(copy_constants): Removed call to lang_hooks.expand_constant.
	(compute_reloc_for_constant): Removed call to
	lang_hooks.expand_constant.
	(output_addressed_constants): Removed call to
	lang_hooks.expand_constant.
	(constructor_static_from_elts_p): Removed call to
	lang_hooks.expand_constant.
	(output_constant): Removed calls to lang_hooks.expand_constant.
	* langhooks.h (struct lang_hooks): Removed field expand_constant.
	* langhooks-def.h (lhd_return_tree): Removed.
	(LANG_HOOKS_EXPAND_CONSTANT): Removed.
	(LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
	* langhooks.c (lhd_return_tree): Removed.

2007-09-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/33436
	* expr.c (emit_group_load_1): Split constant double when destination
	length is half source length.

2007-09-27  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): New macro.
	(mips_cpu_info): Add tune_flags.
	(GENERATE_BRANCHLIKELY): Remove TARGET_SR71K check.
	* config/mips/mips.c (mips_cpu_info_table): Add tune_flags fields.
	Remove end marker.
	(override_options): Remove deprecation code.  Use branch-likely
	instructions for optimize_size or if the tuning flags do not
	suggest otherwise.  Tweak warning.
	(mips_matching_cpu_name_p, mips_parse_cpu): Use ARRAY_SIZE.

2007-09-27  Matthias Klose  <doko@ubuntu.com>

	* config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
	multilib osdirname if it exists.
	* config/rs6000/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.

2007-09-27  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/33565
	* tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING on
	assignments of comparisons.
	* tree-ssa-sccvn.c (simplify_binary_expression): Add stmt
	parameter.  Change caller.  Defer overflow warnings around call to
	fold_binary.
	* fold-const.c (fold_undefer_overflow_warnings): Don't warn if
	TREE_NO_WARNING is set on the statement.
	* tree-ssa-forwprop.c
	(tree_ssa_forward_propagate_single_use_vars): Don't test
	TREE_NO_WARNING when calling fold_undefer_overflow_warnings.
	* tree-cfg.c (fold_cond_expr_cond): Likewise.

2007-09-27  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_legitimize_address): Do not
	reduce offset by units of 0x10000 for SPE vector modes or modes
	used with E500 double instructions.

2007-09-04  Paolo Bonzini  <bonzini@gnu.org>

	* simplify-rtx.c (comparison_result): New.
	(simplify_const_relational_operation): Use it instead of the five
	"equal|op[01]ltu?" variables; consequently remove redundant "else"s.
	Improve bounds-checking optimizations; remove subsumed POPCOUNT
	optimizations.  Extract nonzero_address_p optimizations into a
	separate "if" together with optimizations where op1 is const0_rtx.
	Optimize comparing an IOR with zero.  Simplify op0 RELOP op0 for
	floating-point arguments too when appropriate.  Hoist test for ABS
	outside the final switch statement.
	* cse.c (fold_rtx): Don't look for an IOR equivalent of
	folded_arg0 if we found a constant equivalent.	Remove
	transformations done in simplify-rtx.c for "op0 RELOP op0".

2007-09-27  Jakub Jelinek  <jakub@redhat.com>

	* builtins.c (expand_builtin, expand_builtin_object_size,
	expand_builtin_memory_chk, maybe_emit_chk_warning,
	maybe_emit_sprintf_chk_warning): Use new %K format string specifier
	for diagnostics.
	* expr.c (expand_expr_real_1): Likewise.
	* langhooks-def.h (struct diagnostic_info): Add forward decl.
	(lhd_print_error_function): Add third argument.
	* langhooks.h (struct diagnostic_info): Add forward decl.
	(struct lang_hooks): Add third argument to print_error_function.
	* diagnostic.h (diagnostic_info): Add abstract_origin field.
	(diagnostic_last_function_changed, diagnostic_set_last_function): Add
	second argument.
	(diagnostic_report_current_function): Likewise.
	* toplev.c (announce_function): Pass NULL as second argument to
	diagnostic_set_last_function.
	* diagnostic.c (diagnostic_report_current_function): Add second
	argument, pass it as third argument to lang_hooks.print_error_function.
	(default_diagnostic_starter): Pass DIAGNOSTIC as second argument
	to diagnostic_report_current_function.
	(diagnostic_report_diagnostic): Initialize diagnostic->abstract_origin
	and message.abstract_origin.
	(verbatim): Initialize abstract_origin.
	* pretty-print.h (text_info): Add abstract_origin field.
	* pretty-print.c (pp_base_format): Handle %K.
	* langhooks.c (lhd_print_error_function): Add third argument.  If
	diagnostic->abstract_origin, print virtual backtrace.
	* c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
	gcc_cdiag_char_table, gcc_cxxdiag_char_table): Support %K.
	(init_dynamic_diag_info): Likewise.

2007-09-26  David Daney  <ddaney@avtrex.com>

	PR target/33479
	* config/mips/mips.md (sync_compare_and_swap<mode>, sync_old_add<mode>,
	sync_new_add<mode>, sync_old_<optab><mode>, sync_new_<optab><mode>,
	sync_old_nand<mode>, sync_new_nand<mode>,
	sync_lock_test_and_set<mode>): Fix '&' constraint modifiers.
	Update length attributes.
	(sync_add<mode>, sync_sub<mode>, sync_old_sub<mode>,
	sync_new_sub<mode>, sync_<optab><mode>, sync_nand<mode>): Update
	length attributes.
	* config/mips/mips.h (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP,
	MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND,
	MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Add
	post-loop sync.

2007-09-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33563
	* tree-ssa-dse.c (get_use_of_stmt_lhs): Rename to ...
	(get_kill_of_stmt_lhs): ... this.  Re-structure.  Handle
	aggregate stores.
	(dse_optimize_stmt): Call get_kill_of_stmt_lhs instead of
	get_use_of_stmt_lhs.

2007-09-26  Joseph Myers  <joseph@codesourcery.com>

	PR c/25309
	* c-common.c (complete_array_type): Diagnose too-large arrays and
	set type to error_mark_node.

2007-09-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/30375
	PR tree-optimization/33560
	* tree-ssa-dse.c (get_use_of_stmt_lhs): Give up on uses
	with calls.

	Revert
	2006-05-22  Aldy Hernandez  <aldyh@redhat.com>

	* tree-ssa-dse.c (aggregate_vardecl_d): New.
	(dse_global_data): Add aggregate_vardecl field.
	(dse_possible_dead_store_p): New.
	Add prev_defvar variable.
	Allow immediate uses and previous immediate uses to differ
	if they are setting different parts of the whole.
	(get_aggregate_vardecl): New.
	(dse_record_partial_aggregate_store): New.
	(dse_whole_aggregate_clobbered_p): New.
	(dse_partial_kill_p): New.
	Call dse_maybe_record_aggregate_store().
	When checking whether a STMT and its USE_STMT refer to the
	same memory address, check also for partial kills that clobber
	the whole.
	Move some variable definitions to the block where they are used.
	(aggregate_vardecl_hash): New.
	(aggregate_vardecl_eq): New.
	(aggregate_vardecl_free): New.
	(aggregate_whole_store_p): New.
	(tree_ssa_dse): Initialize and free aggregate_vardecl.
	Mark which aggregate stores we care about.

2007-09-25  DJ Delorie  <dj@redhat.com>

	PR target/33551
	* config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of XINT.

2007-09-25  Michael Meissner  <michael.meissner@amd.com>

	PR target/33524
	* config/i386/i386.c (ix86_expand_sse5_unpack): Change to call
	gen_sse5_pperm_sign_v4si_v2di and gen_sse5_pperm_zero_v4si_v2di
	for vector int32 -> int64 conversions.  Don't write beyond the end
	of the allocated vector for int32 -> int64 conversions.

2007-09-25  Revital Eres  <eres@il.ibm.com>

	* config/rs6000/paired.h (paired_sel): New.
	* config/rs6000/rs6000.c (bdesc_3arg): Add selv2sf4.
	(rs6000_expand_ternop_builtin): Pass zero const_double operand
	when expanding selv2sf.
	* config/rs6000/rs6000.h (rs6000_builtins): Add
	PAIRED_BUILTIN_SELV2SF4.

2007-09-25  Joseph Myers  <joseph@codesourcery.com>

	PR c/32295
	* c-typeck.c (default_conversion): Call require_complete_type
	before perform_integral_promotions.
	(build_unary_op): Call require_complete_type except for ADDR_EXPR.
	(build_c_cast): Call require_complete_type except for casts to
	void types.
	(convert_for_assignment): Call require_complete_type.

2007-09-25  Revital Eres  <eres@il.ibm.com>

	* config/spu/spu.md: Fix doloop pattern.

2007-09-25  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (expand_prologue_reg_save,
	expand_epilogue_reg_restore): Code to save and restore I/M/B/L regs
	and ASTAT moved here...
	(expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
	... from here.  New argument ALL; callers changed.
	(n_regs_saved_by_prologue): Count ASTAT for plain saveall functions.
	(bfin_expand_prologue, bfin_expand_epilogue): Deal with functions that
	have the "saveall" attribute.

2007-09-25  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.h (FUNCTION_INCOMING_ARG_REGNO_P): Don't define
	bogus target macro.
	(INCOMING_REGNO, OUTGOING_REGNO): Define.
	* config/mmix/mmix.c (mmix_opposite_regno): New function.
	* config/mmix/mmix-protos.h (mmix_opposite_regno): Prototype.

	* config/mmix/mmix.md ("*cmpcc_folded"): In condition, gate
	with REG_P tests before REGNO access.

2007-09-24  DJ Delorie  <dj@redhat.com>

	PR target/31482
	* config/m32c/cond.md (stzx_reversed_<mode>): Add an output
	constraint.
	(movqicc_<code>_<mode>): Likewise.
	(movhicc_<code>_<mode>): Likewise.

2007-09-24  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/33184
	* config/m32c/m32c.c (m32c_eh_return_data_regno): Leave an address
	register for reload.

2007-09-24  Danny Smith  <dannysmith@user.sourceforge.net>

	PR c++/14688
	* config/i386/i386.c (ix86_comp_type_attributes): Check
	METHOD_TYPE too.

2007-09-24  Roman Zippel <zippel@linux-m68k.org> 

	* config/m68k/m68k.h (ASM_OUTPUT_ALIGN_WITH_NOP): New, use
	"move.l %a4,%a4" to produce nops.
	* config/m68k/m68k.c (override_options): Reset align options,
	if neccessary align macro isn't avaible.

2007-09-24  Roman Zippel <zippel@linux-m68k.org> 

	config/m68k/linux.h (PREFERRED_STACK_BOUNDARY): New.

2007-09-24  Roman Zippel <zippel@linux-m68k.org> 

	* config/m68k/m68k.c (strict_low_part_peephole_ok): Don't leave
	the basic block.
	* config/m68k/m68k.md (movsi_m68k): Allow certain constant when
	reload is completed.
	(peephole pattern): Convert most of them to RTL peephole pattern.

2007-09-24  Roman Zippel <zippel@linux-m68k.org> 

	* config/m68k/m68k.c (notice_update_cc): Recognize fp compare
	(moved from fp compare patterns).
	* config/m68k/m68k.md (cmp<mode>, cmp<mode>_68881, cmp<mode>_cf):
	Cleanup predicates to relieve reload.
	(conditional_trap): Reject conditional trap with fp condition.
	* config/m68k/predicates.md (fp_src_operand): New, reject
	certain constants early.

2007-09-24  Roman Zippel <zippel@linux-m68k.org>

	* final.c (final_scan_insn): Remove accidentally duplicated code.

2007-09-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config.gcc (powerpc*-*-*): --with-cpu=cell is a 64bit CPU.
	Allow --with-tune=cell and --with-cpu=cell.

2007-09-24  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000-protos.h (rs6000_emit_swrsqrtsf): Declare.
	* config/rs6000/rs6000.opt (swdiv): Change option to ...
	(recip): this.
	* config/rs6000/rs6000.c (rs6000_builtin_reciprocal): New
	function.
	(TARGET_BUILTIN_RECIPROCAL): Use it.
	(rs6000_builtin_expand): Expand recip, recipf, and rsqrtf.
	(rs6000_init_builtins): Initialize recip, recipf, and rsqrtf.
	(rs6000_emit_swrsqrtsf): New.
	* config/rs6000/rs6000.h (rs6000_builtins): Add recip, recipf, and
	rsqrtf. 
	* config/rs6000/rs6000.md (UNSPEC_RSQRT): Define.
	(divsf3): Remove swdiv support.
	(recipsf3): New.
	(rsqrtsf2): New.
	(rsqrt_internal1): New.
	(divdf3): Remove swdiv support.
	(reciptdf3): New.

2007-09-24  Jakub Jelinek  <jakub@redhat.com>

	PR c++/33506
	* langhooks.h (struct lang_hooks_for_types): Add type_hash_eq
	field.
	* langhooks-def.h (LANG_HOOKS_TYPE_HASH_EQ): Define.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_TYPE_HASH_EQ.
	* tree.c (type_hash_eq): For FUNCTION_TYPE use
	lang_hooks.type.type_hash_eq in addition to generic tests.

2007-09-24  Pranav Bhandarkar  <pranav.bhandarkar@celunite.com>
	Ramana Radhakrishnan  <ramana@hercules.pun.celunite.com>

	* tree-inline.h (eni_weights): Add field target_builtin_cost to
	reflect the cost per call to a target specific builtin.
	* tree-inline.c (estimate_num_insns_1): If it is a CALL_EXPR for a
	call to a target specific builtin, then use target_builtin_call_cost.
	(init_inline_once): Initialize target_builtin_call_cost field.

2007-09-24  Kai Tietz  <kai.tietz@onevision.com>

	PR middle-end/33472
	* config/i386/i386.c (return_in_memory_ms_64): Handle return types for
	complex types.

2007-09-23  H.J. Lu  <hongjiu.lu@intel.com>

	* configure.ac (ld_vers): Support GNU linker version xx.xx.*
	* configure: Regenerated.

2007-09-23  Ollie Wild  <aaw@google.com>

	* fold-const.c (fold_binary): Fold BIT_AND_EXPR's with a pointer
	operand.
	(get_pointer_modulus_and_residue): New function.

2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (build_mips16_call_stub): On 64-bit targets,
	combine an SC return value into a single register.

2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>

	* opth-gen.awk (target_flags_explicit): Declare.
	* toplev.h (target_flags_explicit): Delete declaration.
	* toplev.c (target_flags): Likewise.
	* config/mips/mips.h (mips_llsc_setting, mips_llsc): Delete.
	(GENERATE_SYNC, GENERATE_LL_SC): Redefine using target_explicit_flags.
	Never return true for TARGET_MIPS16.
	* config/mips/mips.c (mips_llsc): Delete.
	(mips_handle_option): Remove -mllsc handling.
	(mips_strip_unspec_address): Tweak comment.
	* config/mips/mips.opt (mllsc): Use a target mask.

2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>

	* doc/tm.texi (POINTERS_EXTEND_UNSIGNED): Document extensions to
	word_mode as well as Pmode.

2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>

	* function.c (assign_parm_setup_block): Explicitly convert BLKmode
	parameters from word_mode to the subword type if such a truncation
	is not a no-op.

2007-09-23  Jakub Jelinek  <jakub@redhat.com>

	* configure.ac (MAKEINFO): Handle makeinfo version 4.10 and above.
	* configure: Regenerated.

2007-09-23  Jan Hubicka  <jh@suse.cz>

	* params.def (INLINE_CALL_COST): Set to 12.
	* invoke.texi (inline-call-cost): Update default value.

2007-09-23  Eric Botcazou  <ebotcazou@adacore.com>

	* config/alpha/alpha.md (movti): Use operand_subword for the split.

2007-09-23  Ayal Zaks  <zaks@il.ibm.com>
	    Revital Eres  <eres@il.ibm.com>

	* modulo-sched.c (doloop_register_get): Rewrite the loop which
	checks whether the count_reg is found outside the control part.

2007-09-23  Jakub Jelinek  <jakub@redhat.com>

	* expr.c (expand_expr_real_1) <case CALL_EXPR>: Use get_callee_fndecl
	instead of checking CALL_EXPR_FN directly to test for builtins.
	If error or warning attributes are present, print
	error resp. warning.
	* c-common.c (handle_error_attribute): New function.
	(c_common_attribute_table): Add error and warning
	attributes.
	* doc/extend.texi: Document error and warning attributes.

	* tree.h (block_nonartificial_location): New prototype.
	* tree.c (block_nonartificial_location): New function.
	* dwarf2out.c (gen_subprogram_die): Add DW_AT_artificial
	if artificial attribute is present on abstract inline decl.
	* c-common.c (handle_artificial_attribute): New function.
	(c_common_attribute_table): Add artificial attribute.
	* final.c (override_filename, override_linenum): New variables.
	(final_scan_insn): For DBX_DEBUG or SDB_DEBUG, set override_filename
	and override_linenum if inside of a block inlined from
	__attribute__((__artificial__)) function.
	(notice_source_line): Honor override_filename and override_linenum.
	* doc/extend.texi: Document __attribute__((__artificial__)).
	* config/i386/emmintrin.h: Add __artificial__ attribute to
	all __always_inline__ functions.
	* config/i386/mmintrin.h: Likewise.
	* config/i386/tmmintrin.h: Likewise.
	* config/i386/mm3dnow.h: Likewise.
	* config/i386/pmmintrin.h: Likewise.
	* config/i386/ammintrin.h: Likewise.
	* config/i386/xmmintrin.h: Likewise.
	* config/i386/smmintrin.h: Likewise.
	* config/i386/bmmintrin.h: Likewise.
	* config/i386/mmintrin-common.h: Likewise.

	PR middle-end/28755
	* expr.c (expand_constructor): New function.
	(expand_expr_real_1) <case CONSTRUCTOR>: Call it.
	(expand_expr_real_1) <case ARRAY_REF>: Call it if VALUE is
	CONSTRUCTOR.

2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (dump_constants_1): Generalize to include
	fractional and accumulator modes.

2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.h (ISA_HAS_DSP, ISA_HAS_DSPR2): New macros.
	* config/mips/mips.c (mips_set_mips16_mode): Don't clear the DSP
	flags for MIPS16.
	(override_options): Check TARGET_HARD_FLOAT_ABI instead of
	TARGET_HARD_FLOAT when testing whether -mpaired-single is
	supported.
	(mips_conditional_register_usage): Check ISA_HAS_DSP instead of
	TARGET_DSP.
	* config/mips/constraints.md (ka): Check ISA_HAS_DSPR2 instead of
	TARGET_DSPR2.
	* config/mips/mips.md (ANYF): Require TARGET_HARD_FLOAT for V2SF.
	(mulv2sf3, movv2sf, movv2sf_hardfloat_64bit): Require
	TARGET_HARD_FLOAT.
	(<u>mulsidi3_32bit_internal, <u>msubsidi4, <u>maddsidi4): Check
	ISA_HAS_DSPR2 instead of TARGET_HAS_DSPR2.
	* config/mips/mips-dsp.md: Use ISA_HAS_DSP instead of TARGET_HAS_DSP
	throughout.
	* config/mips/mips-dspr2.md: Likewise ISA_HAS_DSPR2 and
	TARGET_HAS_DSPR2.
	* config/mips/mips-fixed.md: Use ISA_HAS_DSP and ISA_HAS_DSPR2
	instead of TARGET_HAS_DSP and TARGET_HAS_DSPR2.
	* config/mips/mips-ps-3d.md: Add TARGET_HARD_FLOAT to V2SF patterns.

2007-09-22  Jason Merrill  <jason@redhat.com>

	PR c++/19407
	* attribs.c (lookup_attribute_spec): Split out...
	(decl_attributes): From here.
	* tree.h: Declare it.

2007-09-22  Richard Sandiford  <rsandifo@nildram.co.uk>

	* doc/sourcebuild.texi: Document dg-add-options mips16_attribute.

2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-inline.c (remap_type_1): Correctly chain variants.

2007-09-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33146
	* fold-const.c (fold_binary): Use the original tree for negating.
	* tree.h (STRIP_SIGN_NOPS): Converting from or to pointer
	also changes "sign".

2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/32325
	* except.c (finish_eh_generation): Call commit_edge_insertions if
	there are insns queued on the entry edge.
	* config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns on
	the entry edge.

2007-09-22  Richard Sandiford  <rsandifo@nildram.co.uk>

	* doc/sourcebuild.texi (dg-add-c99-runtime-options): Document.

2007-09-19  Michael Meissner  <michael.meissner@amd.com>

	* config/i386/i386.c: Delete trailing whitespace.
	* config/i386/i386.h: Ditto.
	* config/i386/bmmintrin.h: Ditto.
	* config/i386/sync.md: Ditto.
	* config/i386/ppro.md: Ditto.
	* config/i386/mmx.md: Ditto.
	* config/i386/constraints.md: Ditto.
	* config/i386/sse.md: Ditto.
	* config/i386/athlon.md: Ditto.
	* config/i386/i386.md: Ditto.

2007-09-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33508
	* tree-ssa-alias.c (mark_aliases_call_clobbered): Avoid
	quadratic loop by keeping a bitmap of variables we have
	to clobber all subvariables for.
	(set_initial_properties): Likewise.

2007-09-21  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Delete.

2007-09-20  Nigel Stephens  <nigel@mips.com>
	    Chao-ying Fu  <fu@mips.com>

	* c-decl.c (finish_declspecs): When _Sat is used without
	_Fract or _Accum, set the default type to cts_fract.
	This avoids a warning of "type defaults to int".

2007-09-20  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (check_bitfield_type_and_width): Don't allow _Bool
	bit-fields wider than one bit.

2007-09-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/33316
	* dwarf2out.c (modified_type_die): Handle TYPE_DECL with NULL
	DECL_NAME.
	* dbxout.c (dbxout_type): Likewise.

	PR c/33238
	PR c/27301
	* gimplify.c (gimplify_vla_decl): New function.
	(gimplify_decl_expr): Move VLA decl handling to gimplify_vla_decl.
	Call it.
	(gimplify_target_expr): Handle variable length TARGET_EXPRs.

2007-09-20  Richard Sandiford  <rsandifo@nildram.co.uk>

	* doc/invoke.texi (-minterlink-mips16): Document.
	* config/mips/mips.opt (minterlink-mips16): New option.
	* config/mips/mips.c (mips_function_ok_for_sibcall): Handle
	-minterlink-mips16

2007-09-20  Joseph Myers  <joseph@codesourcery.com>

	* doc/extend.texi (Attribute Syntax): Remove old speculative
	future direction.

2007-09-20  Mark Shinwell  <shinwell@codesourcery.com>

	* combine.c: Include cgraph.h.
	(setup_incoming_promotions): Rework to allow more aggressive
	elimination of sign extensions when all call sites of the
	current function are known to lie within the current unit.

2007-09-20  Richard Sandiford  <rsandifo@nildram.co.uk>

	* dse.c (find_shift_sequence): No-op rework of control flow.

2007-09-19  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (build_mips16_call_stub): Tidy.  Fix second
	GPR for DCmode on 64-bit targets.  Remove redundant fallback.

2007-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* cfgexpand.c (dump_stack_var_partition): Use the correct
	index for the offset.

2007-09-19  Joseph Myers  <joseph@codesourcery.com>

	* config/mips/sde.h: Switch to GPLv3.

2007-09-19  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-sra.c (decide_block_copy): Decide if there are groups.

2007-09-19  Roman Zippel <zippel@linux-m68k.org>

	* config/m68k/m68k.c (output_move_himode): Remove jump table
	recognition.
	config/m68k/m68k.md (lea): Likewise.
	* config/m68k/m68k.c (print_operand_address): Use simple pc
	relative addressing.

2007-09-19  Bernd Schmidt  <bernd.schmidt@analog.com>

	* doc/tm.texi (IS_ASM_LOGICAL_LINE_SEPARATOR): Document new argument.
	* final.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Provide two-argument
	default definition.
	(asm_insn_count): Pass template as second argument to it.
	* config/avr/avr.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
	* config/pa/pa.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
	* config/stormy16/stormy16.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
	* config/cris/cris.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
	* config/sh/sh.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
	(sh_insn_length_adjustment): Pass template as second argument to it.
	* config/bfin/bfin.h (IS_ASM_LOGICAL_LINE_SEPARATOR): New macro.

	* config/bfin/bfin.md (define_asm_attributes): New.

2007-09-19  Jie Zhang  <jie.zhang@analog.com>

	* config.gcc (bfin*-linux-uclibc*): Add ./linux-sysroot-suffix.h
	to tm_file.
	* config/bfin/print-sysroot-suffix.sh: New.
	* config/bfin/t-bfin-elf (EXTRA_PARTS): Remove.
	(MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
	MULTILIB_EXCEPTIONS): Redefine with new multilibs.
	* config/bfin/t-bfin-uclinux (EXTRA_PARTS): Remove.
	(MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
	MULTILIB_EXCEPTIONS): Redefine with new multilibs.
	* config/bfin/t-bfin-linux (EXTRA_PARTS): Remove.
	(MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
	MULTILIB_EXCEPTIONS): Redefine with new multilibs.
	(linux-sysroot-suffix.h): New target.
	* config/bfin/bfin.opt (mcsync-anomaly): Use Var instead of Mask.
	(mspecld-anomaly): Likewise.
	* config/bfin/bfin-protos.h (enum bfin_cpu_type): Renamed from
	(enum bfin_cpu): ... this. Add BFIN_CPU_BF522, BFIN_CPU_BF525,
	BFIN_CPU_BF527, BFIN_CPU_BF538, BFIN_CPU_BF539, BFIN_CPU_BF542,
	BFIN_CPU_BF544, BFIN_CPU_BF548, and BFIN_CPU_BF549.
	(bfin_si_revision): Declare.
	(bfin_workarounds): Declare.
	(WA_SPECULATIVE_LOADS): Define.
	(ENABLE_WA_SPECULATIVE_LOADS): Define.
	(WA_SPECULATIVE_SYNCS): Define.
	(ENABLE_WA_SPECULATIVE_SYNCS): Define.
	* config/bfin/elf.h (STARTFILE_SPEC): Rename crt532.o to basiccrt.o.
	(LIB_SPEC): Add %s to the linker scripts.
	Use proper linker script for bf522, bf525, bf527,
	bf538, bf539, bf542, bf544, bf548, and bf549.
	* config/bfin/bfin.c (bfin_si_revision): Define.
	(bfin_workarounds): Define.
	(struct bfin_cpu): New.
	(bfin_cpus): New.
	(bfin_handle_option): Handle silicon revision part of -mcpu option.
	(override_options): Set bfin_workarounds.
	(length_for_loop): Replace TARGET_CSYNC_ANOMALY with
	ENABLE_WA_SPECULATIVE_SYNCS, TARGET_SPECLD_ANOMALY with
	ENABLE_WA_SPECULATIVE_LOADS.
	(bfin_reorg): Likewise.
	* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
	macros for bf522, bf525, bf527, bf538, bf539,
	bf542, bf544, bf548, and bf549.
	Define __SILICON_REVISION__ and __WORKAROUND_* macros if needed.
	Don't define __ID_SHARED_LIB__ when -msep-data.
	(TARGET_DEFAULT): Define as 0.
	(DRIVER_SELF_SPECS): Add -mcpu=bf532 if no -mcpu option.
	* doc/invoke.texi (Blackfin Options): Document silicon
	revision part of -mcpu option and it now accepts bf522, bf525,
	bf527, bf538, bf539, bf542, bf544, bf548, and bf549.

2007-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alias.c (memory_modified_1): Deconstify.
	(memory_modified_in_insn_p): Don't use const_note_stores.
	* rtl.h (const_note_stores): Delete.
	* rtlanal.c (const_note_stores): Likewise.

2007-09-18  Richard Sandiford  <rsandifo@nildram.co.uk>

	* dse.c (find_shift_sequence): Temporarily revert to forbidding
	word shifts.

2007-09-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/33388
	PR target/33397
	* config/fr30/fr30.md (addsi3): Check REG_P() before calling REGNO().
	(addsi_small_int): Likewise.
	(addsi_big_int): Use rtx_equal_p() instead of REGNO() comparison.
	(one_cmplsi2): Likewise.
	(negsi2): Delete.
	(enter_func): Expand insn using hard_frame_pointer_rtx and
	stack_pointer_rtx.
	(*enter_func): New.
	* config/fr30/fr30.c (fr30_expand_prologue): Check for
	hard_frame_pointer_rtx instead of using REGNO() check.
	Properly sign extend GEN_INT() argument.

2007-09-18  Roman Zippel <zippel@linux-m68k.org>

	* config/m68k/m68k.c (override_options): Remove USE_GAS,
	use %. syntax.
	(output_dbcc_and_branch, output_scc_di): Replace all jbcc
	alternatives with just jcc.
	* config/m68k/m68k.md (addsi_lshrsi_31, beq0_di, bne0_di,
	bge0_di, blt0_di, bgtu, bltu, bgeu, bleu, bgtu_rev,
	bltu_rev, bgeu_rev, bleu_rev, jump, dbne_hi, dbne_si,
	dbge_hi, dbge_si): Likewise.

2007-09-18  Roman Zippel <zippel@linux-m68k.org>

	* config/m68k/m68k.md (beq, bne, bgt, blt, bge, ble, bordered,
	bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt, beq_rev,
	bne_rev, bgt_rev, blt_rev, bge_rev, ble_rev, bordered_rev,
	bunordered_rev, buneq_rev, bunge_rev, bungt_rev, bunle_rev,
	bunlt_rev, bltgt_rev): Replace all fbcc with fjcc.

2007-09-18  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/m68k-devices.def (51qe): New device.
	* config/m68k/m68k.c (FL_FOR_isa_c): Remove division unit.  Add it
	to all uses of FL_FOR_isa_c for compatibility.
	(all_microarchs): Add cfv1 microarchitecture.
	(m68k_handle_option): Handle m51qe option.
	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Handle 51QE.
	(TUNE_CFV1): New macro.
	(enum uarch_type): Add ucfv1.
	* doc/invoke.texi: Document 51qe device and cfv1 microarchitecture.
	
2007-09-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/31863
	* tree-ssa-structalias.c (create_variable_info_for): Always
	free the fieldstack.

2007-09-18  Dorit Nuzman  <dorit@il.ibm.com>

	* opts.c (decode_options): Enable vectorization under -O3.

2007-09-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33340
	* tree-ssa-sccvn.c (set_ssa_val_to): Do not set values to
	SSA_NAMEs that occur in abnormal PHI nodes.

2007-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* tree-cfg.c (is_ctrl_altering_stmt, tree_block_ends_with_call_p):
	Don't use const_get_call_expr_in.
	* tree-gimple.c (const_get_call_expr_in): Delete.
	* tree-gimple.h (const_get_call_expr_in): Likewise.

2007-09-18  Richard Sandiford  <rsandifo@nildram.co.uk>

	* df-scan.c (df_notes_rescan): Do nothing if the instruction does
	not yet have a basic block.
	* dse.c (find_shift_sequence): Don't set DF_NO_INSN_RESCAN.

2007-09-18  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_file_start): Add ".previous" directives
	to both ".section"s.

2007-09-17  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_output_mi_thunk): Use
	mips_function_ok_for_sibcall and const_call_insn_operand
	to determine if a direct sibcall is allowed.  Use
	mips_classify_symbol to determine a global pointer is needed.

2007-09-17  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.md (*clear_upper32): Use "W" as the memory operand.

2007-09-17  Chao-ying Fu  <fu@mips.com>
	    Nigel Stephens  <nigel@mips.com>

	* config/fixed-bit.h: New file.
	* config/fixed-bit.c: New file.
	* doc/libgcc.texi (Fixed-point fractional library routines): New node.

2007-09-18  Jakub Jelinek  <jakub@redhat.com>

	* c-format.h (format_kind_info): Add alloc_char field.
	* c-format.c (scanf_flag_specs): Add 'm'.
	(scanf_flag_pairs): Add 'a', 'm' pair.
	(scan_char_table): Allow 'm' modifier for c, s, [, C and S.
	(format_types_orig): Add alloc_char fields.
	(check_format_info_main): Rename aflag to alloc_flag.
	Handle fki->alloc_char. modifier after width and before length
	modifiers.  Move FMT_FLAG_SCANF_A_KLUDGE handling before
	length modifiers as well.
	* config/sol2-c.c (solaris_format_types): Add alloc_char field.

	PR middle-end/33423
	* builtins.c (expand_builtin_memory_chk): Handle COMPOUND_EXPRs
	returned by build_call_expr.

2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-sra.c (maybe_lookup_element_for_expr) <COMPONENT_REF>: Return
	NULL for variable-sized records too.
	(sra_walk_expr) <COMPONENT_REF>: Stop at variable-sized records too.

2007-09-17  Tom Tromey  <tromey@redhat.com>

	* c-decl.c (pushdecl): Don't set DECL_LANG_SPECIFIC.
	(c_builtin_function): Likewise.
	(grokdeclarator): Likewise.

2007-09-17  Zdenek Dvorak  <ook@ucw.cz>

	PR rtl-optimization/26449
	* loop-invariant.c (move_invariant_reg): Do not use force_operand.
	(seq_insns_valid_p): Removed.

2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-nomudflap.c (gate_mudflap): New static function.
	(pass_mudflap_1): Use it as gate function.
	(pass_mudflap_2): Likewise.

2007-09-17  Jan Hubicka  <jh@suse.cz>

	PR middle-end/33348
	PR target/33406
	* loop-invariant.c (move_invariant_reg): Unshare sequence.

2007-09-17  Victor Kaplansky  <victork@il.ibm.com>

	PR tree-optimization/33319
	* tree-vect-analyze.c (vect_same_range_drs): New.
	(vect_vfa_range_equal): New.
	(vect_is_duplicate_ddr): Removed.
	(vect_mark_for_runtime_alias_test): Do not perform marking when
	optimizing for size or max_param for alias checking is zero.
	Move the function before vect_analyze_data_ref_dependence.
	(vect_analyze_data_ref_dependence): Add call to
	vect_mark_for_runtime_alias_test in two cases when dependence
	is not clear.
	(vect_analyze_data_ref_dependences): Do not call to
	vect_mark_for_runtime_alias_test.
	(vect_prune_runtime_alias_test_list): New.
	(vect_analyze_loop): Add call to vect_prune_runtime_alias_test_list.
	* tree-vect-transform.c (vect_estimate_min_profitable_iters):
	Update vec_outside_cost.
	(vect_vfa_segment_size): More compact code, use TYPE_SIZE_UNIT.
	(vect_create_cond_for_alias_checks): Build the base address of data
	reference from DR_GROUP_FIRST_DR.
	(vect_loop_versioning): New.
	(vect_transform_loop): Add a call to vect_loop_versioning.
	Remove factored out code.

2007-09-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/33273
	* expr.c (store_expr): Call adjust_address to change mode of dest_mem
	to BLKmode.

2007-09-16  Richard Sandiford  <rsandifo@nildram.co.uk>

	* dse.c (find_shift_sequence): Allow word as well as subword shifts.
	Do the tentative shift expansion with the DF_NO_INSN_RESCAN flag set.
	Fix the call to insn_rtx_cost.  Skip access sizes that require a
	real truncation of the store register.  Use convert_move instead
	of gen_lowpart when narrowing the result.
	(replace_read): Use convert_move instead of gen_lowpart when
	narrowing the store rhs.

2007-09-16  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.md (SHORT): Fix long line.
	(SUBDI): New mode iterator.  Extend the shift-and-truncate insns
	to QImode and HImode.

2007-09-16  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Define.

2007-09-15  Zdenek Dvorak  <ook@ucw.cz>

	* tree-parloops.c: New file.
	* tree-ssa-operands.h (free_stmt_operands): Declare.
	* tree-ssa-loop-manip.c (split_loop_exit_edge): Return the new basic
	block.
	* tree-pass.h (pass_parallelize_loops): Declare.
	* omp-low.c (expand_omp_parallel, expand_omp_for): Update SSA form for
	virtual operands.
	(build_omp_regions_1): Allow analysing just a single OMP region and
	its subregions.
	( build_omp_regions_root, omp_expand_local): New functions.
	(build_omp_regions): Add argument to build_omp_regions_1 call.
	* builtins.def (DEF_GOMP_BUILTIN): Initialize OMP builtins when
	autoparallelization is run.
	* timevar.def (TV_TREE_PARALLELIZE_LOOPS): New.
	* tree-ssa-loop.c (gate_tree_parallelize_loops, tree_parallelize_loops,
	pass_parallelize_loops): New.
	* common.opt (ftree-parallelize-loops): New.
	* tree-flow.h (omp_expand_local, tree_duplicate_sese_tail,
	parallelize_loops): Declare.
	(add_phi_args_after_copy, split_loop_exit_edge): Declaration changed.
	* Makefile.in (tree-parloops.o): Added.
	* tree-cfg.c (add_phi_args_after_copy_edge, tree_duplicate_sese_tail):
	New functions.
	(add_phi_args_after_copy_bb): Use add_phi_args_after_copy_edge.
	(add_phi_args_after_copy): Call add_phi_args_after_copy_edge for
	one extra edge as well.
	(tree_duplicate_sese_region): Add argument to add_phi_args_after_copy.
	Use VEC_free to free doms vector.
	(move_block_to_fn): Update loop info. Remove phi nodes for virtual
	operands.  Recompute operand caches in the new function.
	(move_sese_region_to_fn): Update loop info.
	* passes.c (init_optimization_passes): Add pass_parallelize_loops.
	* tree-ssa-operands.c (free_stmt_operands): New function.

	* doc/passes.texi: Document autoparallelization.
	* doc/invoke.texi (-ftree-parallelize-loops): New option.

2007-09-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/33062
	* pa.c (function_value): Use GET_MODE_BITSIZE instead of
	TYPE_PRECISION.

2007-09-15  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-vect-transform.c (vect_get_vec_defs_for_stmt_copy): check if 
	the VEC is not NULL.
	(vectorizable_type_demotion, vectorizable_type_promotion): Check that 
	get_vectype_for_scalar_type succeeded.
	(vectorizable_conversion): Likewise.

2007-09-14  Jan Hubicka  <jh@suse.cz>

	* config/i386/i386.md (*floatdi<mode>2_i387): Guard against
	TARGET_64BIT.

2007-09-14  Uros Bizjak  <ubizjak@gmail.com>

	PR target/33438
	* config/i386/i386.md (fmodxf3): Copy operands[2] to temporary
	register when operands[2] equals operands[1].
	(remainderxf3): Ditto.

2007-09-14  Sandra Loosemore  <sandra@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>

	* doc/tm.texi (LIBGCC2_UNWIND_ATTRIBUTE): Document.
	* unwind-generic.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
	(_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE to declaration.
	(_Unwind_ForcedUnwind): Likewise.
	(_Unwind_Resume): Likewise.
	(_Unwind_Resume_or_Rethrow): Likewise.
	(_Unwind_Backtrace): Likewise.
	(_Unwind_SjLj_RaiseException): Likewise.
	(_Unwind_SjLj_ForcedUnwind): Likewise.
	(_Unwind_SjLj_Resume): Likewise.
	(_Unwind_SjLj_Resume_or_Rethrow): Likewise.
	* unwind.inc (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE
	to definition.
	(_Unwind_ForcedUnwind): Likewise.
	(_Unwind_Resume): Likewise.
	(_Unwind_Resume_or_Rethrow): Likewise.
	(_Unwind_Backtrace): Likewise.
	* unwind-compat.c (_Unwind_Backtrace): Likewise.
	(_Unwind_ForcedUnwind): Likewise.
	(_Unwind_RaiseException): Likewise.
	(_Unwind_Resume): Likewise.
	(_Unwind_Resume_or_Rethrow): Likewise.

	* config/mips/mips.h (LIBGCC2_UNWIND_ATTRIBUTE): Define to force
	nomips16 mode when IN_LIBGCC2 with hard float.

2007-09-14  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/sdemtk.opt: Update to GPLv3.
	* config/mips/sdemtk.h: Likewise.

2007-09-14  Nigel Stephens  <nigel@mips.com>

	* config.gcc (mips*-*-linux*): Recognise mipsisa32r2 and set
	MIPS_ISA_DEFAULT appropriately.  Don't make soft-float the default
	for mipsisa32-*-linux*.

2007-09-14  Nigel Stephens  <nigel@mips.com>
	    David Ung  <davidu@mips.com>
	    Thiemo Seufer  <ths@mips.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (mips*-sde-elf*): Add support for the SDE C libraries.
	* configure.ac: Add a mipssde threading type.
	* configure: Regenerate.
	* config/mips/sdemtk.h: New file.
	* config/mips/t-sdemtk: Likewise.
	* config/mips/sdemtk.opt: Likewise.
	* gthr-mipssde.h: Likewise.
	* config/mips/sde.h (FUNCTION_PROFILER): Move to config/mips/sdemtk.h.
	* config/mips/mips.h (MIPS_SAVE_REG_FOR_PROFILING_P): New macro.
	(MIPS_ICACHE_SYNC): New macro, split from ...
	* config/mips/mips.md (clear_cache): ...here.
	* config/mips/mips.c (mips_save_reg_p): Check
	MIPS_SAVE_REG_FOR_PROFILING_P on profiled functions.
	(build_mips16_function_stub): Use targetm.strip_name_encoding.
	(build_mips16_call_stub): Likewise.

2007-09-14  Richard Sandiford  <richard@codesourcery.com>

	* Makefile.in (stmp-int-hdrs): Depend on fixinc_list.

2007-09-14  Jakub Jelinek  <jakub@redhat.com>

	PR target/32337
	* config/ia64/ia64.c (find_gr_spill): Don't decrement
	current_frame_info.n_local_regs.  Don't return emitted local regs.
	(ia64_compute_frame_size): Improve unwind hack to put
	RP, PFS, FP in that order by allowing some of the registers
	been already emitted, as long as they are emitted to the
	desired register.

2007-09-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/vmx2spu.h (vec_extract, vec_insert, vec_lvlx,
	vec_lvlxl, vec_lvrx, vec_lvrxl, vec_promote, vec_splats,
	vec_stvlx, vec_stvlxl, vec_stvrx, vec_stvrxl): New intrinsics.

2007-09-13  Eric Christopher  <echristo@apple.com>
	    Kenneth Zadeck <zadeck@naturalbridge.com>

	* dse.c (find_shift_sequence): New function.
	(replace_read): Add case to remove read if it requires shift.
	* config/i386/i386.c (ix86_expand_prologue): Fixed typo in comment.
	
2007-09-13  Tom Tromey  <tromey@redhat.com>

	* c-common.c (fname_as_string): Update.
	* c-parser.c (c_parser) <lex_untranslated_string>: New field.
	(c_lex_one_token): Update.  Add 'parser' argument.
	(c_parser_simple_asm_expr): Update.
	(c_parser_attributes): Update.
	(c_parser_asm_statement): Update.
	(c_parser_asm_operands): Update.
	(c_parser_peek_token): Update.
	(c_parser_peek_2nd_token): Update.
	* c-lex.c (c_lex_string_translate): Remove.
	(c_lex_return_raw_strings): Likewise.
	(c_lex_with_flags): Added 'lex_flags' argument.
	(lex_string): Added 'translate' argument.
	* c-pragma.h (c_lex_with_flags): Update.
	(c_lex_string_translate, c_lex_return_raw_strings): Remove.
	(C_LEX_STRING_NO_TRANSLATE): New define.
	(C_LEX_RAW_STRINGS): Likewise.

2007-09-13  Bernd Schmidt  <bernd.schmidt@analog.com>

	From Jie Zhang:
	* config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_ONES,
	BFIN_BUILTIN_CPLX_MUL_16_S40, BFIN_BUILTIN_CPLX_MAC_16_S40,
	BFIN_BUILTIN_CPLX_MSU_16_S40, and BFIN_BUILTIN_CPLX_SQU.
	(bfin_init_builtins): Initialize __builtin_bfin_ones,
	__builtin_bfin_min_fr1x16, __builtin_bfin_max_fr1x16,
	__builtin_bfin_min_fr1x32, __builtin_bfin_max_fr1x32,
	__builtin_bfin_cmplx_add, __builtin_bfin_cmplx_sub,
	__builtin_bfin_cmplx_mul_s40, __builtin_bfin_cmplx_mac_s40,
	__builtin_bfin_cmplx_msu_s40 and __builtin_bfin_csqu_fr16.
	(bdesc_1arg): Add __builtin_bfin_ones.
	(bfin_expand_builtin): Expand __builtin_bfin_cmplx_mul_s40,
	__builtin_bfin_cmplx_mac_s40, __builtin_bfin_cmplx_msu_s40,
	and __builtin_bfin_csqu_fr16.
	* config/bfin/bfin.md (UNSPEC_ONES): New constant.
	(ones): New define_insn.
	(ssaddhi3_parts): New define_insn.
	(sssubhi3_parts): New define_insn.
	(flag_mulhi_parts): New define_insn.

2007-09-13  Seongbae Park <seongbae.park@gmail.com>

	* common.opt (femit-class-debug-always): Turn off by default.

2007-09-13  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.md (reload_outpdi, reload_inpdi): New patterns.
	* config/bfin/bfin.c (bfin_secondary_reload): Make sure we use them.

2007-09-13  James E. Wilson  <wilson@specifix.com>

	PR tree-optimization/33389
	* tree-ssa-operands.c (append_vuse): If ann->in_vdef_list true,
	then set build_loads before returning.

2007-09-13  Sandra Loosemore  <sandra@codesourcery.com>
	    David Ung  <davidu@mips.com>

	* config/mips/mips.h (ASM_OUTPUT_REG_PUSH): Replace {d}subu with
	{d}addiu and a negative	immediate such that it works with MIPS16
	instructions.
	
2007-09-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/33418
	* configure.ac (ld_vers): Support Linux linker.
	* configure: Regenerated.

2007-09-13  Richard Sandiford  <richard@codesourcery.com>
	    Sandra Loosemore <sandra@codesourcery.com>

	* config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Delete.
	(SYMBOL_REF_MIPS16_FUNC_P): Delete.
	* config/mips/mips.c (mips_attribute_table): Turn mips16 and
	nomips16 into decl attributes.
	(TARGET_INSERT_ATTRIBUTES): Override.
	(TARGET_MERGE_DECL_ATTRIBUTES): Likewise.
	(TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Always return true.
	(mips_mips16_type_p, mips_nomips16_type_p): Delete in favor of...
	(mips_mips16_decl_p, mips_nomips16_decl_p): ...these new functions.
	(mips_comp_type_attributes): Remove mips16 and nomips16 handling.
	(mips_use_mips16_mode_p): Reimplement as a function that takes
	a decl and considers only decl attributes.  If the decl is nested
	function, use its parent attributes.
	(mips_function_ok_for_sibcall): Use mips_use_mips16_mode_p
	instead of SYMBOL_REF_MIPS16_FUNC_P.
	(mips_set_mips16_mode): Move call to sorry here from old
	mips_use_mips16_mode_p.
	(mflip_mips16_entry): New structure.
	(mflip_mips16_htab): New variable.
	(mflip_mips16_htab_hash, mflip_mips16_htab_eq): New functions.
	(mflip_mips16_use_mips16_p, mips_insert_attributes): Likewise.
	(mips_merge_decl_attributes): New function.
	(mips_set_current_function): Reinstate call to mips_set_mips16_mode.
	Use mips_use_mips16_mode_p.
	(mips_output_mi_thunk): Use mips_use_mips16_mode_p instead of
	SYMBOL_REF_MIPS16_FUNC_P.
	(mips_encode_section_info): Don't set SYMBOL_FLAG_MIPS16_FUNC.

2007-09-13  Richard Sandiford  <richard@codesourcery.com>

	* c-parser.c (c_parser_struct_declaration): Check for a null return.

2007-09-13  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR driver/33309
	* gcc.c (xputenv): Make argument const, and use CONST_CAST.

2007-09-12  Michael Meissner  <michael.meissner@amd.com>
	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
	    Tony Linthicum  <tony.linthicum@amd.com>

	* tree.h (function_args_iterator): New type to iterate over
	function arguments.
	(FOREACH_FUNCTION_ARGS_PTR): Iterator macros for iterating over
	function arguments providing a pointer to the argument.
	(FOREACH_FUNCTION_ARGS): Iterator macros for iterating over
	function arguments providing the argument.
	(function_args_iter_init): Inline function to initialize
	function_args_iterator.
	(function_args_iter_cond_ptr): Inline function to return the next
	pointer to hold the argument.
	(function_args_iter_cond): Inline function to return the next
	argument.
	(function_args_iter_cond_next): Advance the function args iterator.
	(stdarg_p): New function, return true if variable argument function.
	(prototype_p): New function, return true if function is prototyped.
	(function_args_count): New function, count the number of arguments
	of a function.

	* tree.c (stdarg_p): New function, return true if variable
	argument function.
	(prototype_p): New function, return true if function is prototyped.

	* config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
	(TARGET_ROUND): New macro for the round/ptest instructions which
	are shared between SSE4.1 and SSE5.
	(OPTION_MASK_ISA_ROUND): Ditto.
	(OPTION_ISA_ROUND): Ditto.
	(TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
	(TARGET_CPU_CPP_BUILTINS): Add SSE5 support.

	* config/i386/i386.opt (-msse5): New switch for SSE5 support.
	(-mfused-madd): New switch to give users control over whether the
	compiler optimizes to use the multiply/add SSE5 instructions.

	* config/i386/i386.c (m_AMD_MULTIPLE): Rename from
	m_ATHLON_K8_AMDFAM10, and change all uses.
	(enum pta_flags): Add PTA_SSE5.
	(ix86_handle_option): Turn off 3dnow if -msse5.
	(override_options): Add SSE5 support.
	(print_operand): %Y prints comparison codes for SSE5 com/pcom
	instructions.
	(ix86_expand_sse_movcc): Add SSE5 support.
	(ix86_expand_sse5_unpack): New function to use pperm to unpack a
	vector type to the next largest size.
	(ix86_expand_sse5_pack): New function to use pperm to pack a
	vector type to the next smallest size.
	(IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic.
	(IX86_BUILTIN_FMADDSD): Ditto.
	(IX86_BUILTIN_FMADDPS): Ditto.
	(IX86_BUILTIN_FMADDPD): Ditto.
	(IX86_BUILTIN_FMSUBSS): Ditto.
	(IX86_BUILTIN_FMSUBSD): Ditto.
	(IX86_BUILTIN_FMSUBPS): Ditto.
	(IX86_BUILTIN_FMSUBPD): Ditto.
	(IX86_BUILTIN_FNMADDSS): Ditto.
	(IX86_BUILTIN_FNMADDSD): Ditto.
	(IX86_BUILTIN_FNMADDPS): Ditto.
	(IX86_BUILTIN_FNMADDPD): Ditto.
	(IX86_BUILTIN_FNMSUBSS): Ditto.
	(IX86_BUILTIN_FNMSUBSD): Ditto.
	(IX86_BUILTIN_FNMSUBPS): Ditto.
	(IX86_BUILTIN_FNMSUBPD): Ditto.
	(IX86_BUILTIN_PCMOV_V2DI): Ditto.
	(IX86_BUILTIN_PCMOV_V4SI): Ditto.
	(IX86_BUILTIN_PCMOV_V8HI): Ditto.
	(IX86_BUILTIN_PCMOV_V16QI): Ditto.
	(IX86_BUILTIN_PCMOV_V4SF): Ditto.
	(IX86_BUILTIN_PCMOV_V2DF): Ditto.
	(IX86_BUILTIN_PPERM): Ditto.
	(IX86_BUILTIN_PERMPS): Ditto.
	(IX86_BUILTIN_PERMPD): Ditto.
	(IX86_BUILTIN_PMACSSWW): Ditto.
	(IX86_BUILTIN_PMACSWW): Ditto.
	(IX86_BUILTIN_PMACSSWD): Ditto.
	(IX86_BUILTIN_PMACSWD): Ditto.
	(IX86_BUILTIN_PMACSSDD): Ditto.
	(IX86_BUILTIN_PMACSDD): Ditto.
	(IX86_BUILTIN_PMACSSDQL): Ditto.
	(IX86_BUILTIN_PMACSSDQH): Ditto.
	(IX86_BUILTIN_PMACSDQL): Ditto.
	(IX86_BUILTIN_PMACSDQH): Ditto.
	(IX86_BUILTIN_PMADCSSWD): Ditto.
	(IX86_BUILTIN_PMADCSWD): Ditto.
	(IX86_BUILTIN_PHADDBW): Ditto.
	(IX86_BUILTIN_PHADDBD): Ditto.
	(IX86_BUILTIN_PHADDBQ): Ditto.
	(IX86_BUILTIN_PHADDWD): Ditto.
	(IX86_BUILTIN_PHADDWQ): Ditto.
	(IX86_BUILTIN_PHADDDQ): Ditto.
	(IX86_BUILTIN_PHADDUBW): Ditto.
	(IX86_BUILTIN_PHADDUBD): Ditto.
	(IX86_BUILTIN_PHADDUBQ): Ditto.
	(IX86_BUILTIN_PHADDUWD): Ditto.
	(IX86_BUILTIN_PHADDUWQ): Ditto.
	(IX86_BUILTIN_PHADDUDQ): Ditto.
	(IX86_BUILTIN_PHSUBBW): Ditto.
	(IX86_BUILTIN_PHSUBWD): Ditto.
	(IX86_BUILTIN_PHSUBDQ): Ditto.
	(IX86_BUILTIN_PROTB): Ditto.
	(IX86_BUILTIN_PROTW): Ditto.
	(IX86_BUILTIN_PROTD): Ditto.
	(IX86_BUILTIN_PROTQ): Ditto.
	(IX86_BUILTIN_PROTB_IMM): Ditto.
	(IX86_BUILTIN_PROTW_IMM): Ditto.
	(IX86_BUILTIN_PROTD_IMM): Ditto.
	(IX86_BUILTIN_PROTQ_IMM): Ditto.
	(IX86_BUILTIN_PSHLB): Ditto.
	(IX86_BUILTIN_PSHLW): Ditto.
	(IX86_BUILTIN_PSHLD): Ditto.
	(IX86_BUILTIN_PSHLQ): Ditto.
	(IX86_BUILTIN_PSHAB): Ditto.
	(IX86_BUILTIN_PSHAW): Ditto.
	(IX86_BUILTIN_PSHAD): Ditto.
	(IX86_BUILTIN_PSHAQ): Ditto.
	(IX86_BUILTIN_FRCZSS): Ditto.
	(IX86_BUILTIN_FRCZSD): Ditto.
	(IX86_BUILTIN_FRCZPS): Ditto.
	(IX86_BUILTIN_FRCZPD): Ditto.
	(IX86_BUILTIN_CVTPH2PS): Ditto.
	(IX86_BUILTIN_CVTPS2PH): Ditto.
	(IX86_BUILTIN_COMEQSS): Ditto.
	(IX86_BUILTIN_COMNESS): Ditto.
	(IX86_BUILTIN_COMLTSS): Ditto.
	(IX86_BUILTIN_COMLESS): Ditto.
	(IX86_BUILTIN_COMGTSS): Ditto.
	(IX86_BUILTIN_COMGESS): Ditto.
	(IX86_BUILTIN_COMUEQSS): Ditto.
	(IX86_BUILTIN_COMUNESS): Ditto.
	(IX86_BUILTIN_COMULTSS): Ditto.
	(IX86_BUILTIN_COMULESS): Ditto.
	(IX86_BUILTIN_COMUGTSS): Ditto.
	(IX86_BUILTIN_COMUGESS): Ditto.
	(IX86_BUILTIN_COMORDSS): Ditto.
	(IX86_BUILTIN_COMUNORDSS): Ditto.
	(IX86_BUILTIN_COMFALSESS): Ditto.
	(IX86_BUILTIN_COMTRUESS): Ditto.
	(IX86_BUILTIN_COMEQSD): Ditto.
	(IX86_BUILTIN_COMNESD): Ditto.
	(IX86_BUILTIN_COMLTSD): Ditto.
	(IX86_BUILTIN_COMLESD): Ditto.
	(IX86_BUILTIN_COMGTSD): Ditto.
	(IX86_BUILTIN_COMGESD): Ditto.
	(IX86_BUILTIN_COMUEQSD): Ditto.
	(IX86_BUILTIN_COMUNESD): Ditto.
	(IX86_BUILTIN_COMULTSD): Ditto.
	(IX86_BUILTIN_COMULESD): Ditto.
	(IX86_BUILTIN_COMUGTSD): Ditto.
	(IX86_BUILTIN_COMUGESD): Ditto.
	(IX86_BUILTIN_COMORDSD): Ditto.
	(IX86_BUILTIN_COMUNORDSD): Ditto.
	(IX86_BUILTIN_COMFALSESD): Ditto.
	(IX86_BUILTIN_COMTRUESD): Ditto.
	(IX86_BUILTIN_COMEQPS): Ditto.
	(IX86_BUILTIN_COMNEPS): Ditto.
	(IX86_BUILTIN_COMLTPS): Ditto.
	(IX86_BUILTIN_COMLEPS): Ditto.
	(IX86_BUILTIN_COMGTPS): Ditto.
	(IX86_BUILTIN_COMGEPS): Ditto.
	(IX86_BUILTIN_COMUEQPS): Ditto.
	(IX86_BUILTIN_COMUNEPS): Ditto.
	(IX86_BUILTIN_COMULTPS): Ditto.
	(IX86_BUILTIN_COMULEPS): Ditto.
	(IX86_BUILTIN_COMUGTPS): Ditto.
	(IX86_BUILTIN_COMUGEPS): Ditto.
	(IX86_BUILTIN_COMORDPS): Ditto.
	(IX86_BUILTIN_COMUNORDPS): Ditto.
	(IX86_BUILTIN_COMFALSEPS): Ditto.
	(IX86_BUILTIN_COMTRUEPS): Ditto.
	(IX86_BUILTIN_COMEQPD): Ditto.
	(IX86_BUILTIN_COMNEPD): Ditto.
	(IX86_BUILTIN_COMLTPD): Ditto.
	(IX86_BUILTIN_COMLEPD): Ditto.
	(IX86_BUILTIN_COMGTPD): Ditto.
	(IX86_BUILTIN_COMGEPD): Ditto.
	(IX86_BUILTIN_COMUEQPD): Ditto.
	(IX86_BUILTIN_COMUNEPD): Ditto.
	(IX86_BUILTIN_COMULTPD): Ditto.
	(IX86_BUILTIN_COMULEPD): Ditto.
	(IX86_BUILTIN_COMUGTPD): Ditto.
	(IX86_BUILTIN_COMUGEPD): Ditto.
	(IX86_BUILTIN_COMORDPD): Ditto.
	(IX86_BUILTIN_COMUNORDPD): Ditto.
	(IX86_BUILTIN_COMFALSEPD): Ditto.
	(IX86_BUILTIN_COMTRUEPD): Ditto.
	(IX86_BUILTIN_PCOMEQUB): Ditto.
	(IX86_BUILTIN_PCOMNEUB): Ditto.
	(IX86_BUILTIN_PCOMLTUB): Ditto.
	(IX86_BUILTIN_PCOMLEUB): Ditto.
	(IX86_BUILTIN_PCOMGTUB): Ditto.
	(IX86_BUILTIN_PCOMGEUB): Ditto.
	(IX86_BUILTIN_PCOMFALSEUB): Ditto.
	(IX86_BUILTIN_PCOMTRUEUB): Ditto.
	(IX86_BUILTIN_PCOMEQUW): Ditto.
	(IX86_BUILTIN_PCOMNEUW): Ditto.
	(IX86_BUILTIN_PCOMLTUW): Ditto.
	(IX86_BUILTIN_PCOMLEUW): Ditto.
	(IX86_BUILTIN_PCOMGTUW): Ditto.
	(IX86_BUILTIN_PCOMGEUW): Ditto.
	(IX86_BUILTIN_PCOMFALSEUW): Ditto.
	(IX86_BUILTIN_PCOMTRUEUW): Ditto.
	(IX86_BUILTIN_PCOMEQUD): Ditto.
	(IX86_BUILTIN_PCOMNEUD): Ditto.
	(IX86_BUILTIN_PCOMLTUD): Ditto.
	(IX86_BUILTIN_PCOMLEUD): Ditto.
	(IX86_BUILTIN_PCOMGTUD): Ditto.
	(IX86_BUILTIN_PCOMGEUD): Ditto.
	(IX86_BUILTIN_PCOMFALSEUD): Ditto.
	(IX86_BUILTIN_PCOMTRUEUD): Ditto.
	(IX86_BUILTIN_PCOMEQUQ): Ditto.
	(IX86_BUILTIN_PCOMNEUQ): Ditto.
	(IX86_BUILTIN_PCOMLTUQ): Ditto.
	(IX86_BUILTIN_PCOMLEUQ): Ditto.
	(IX86_BUILTIN_PCOMGTUQ): Ditto.
	(IX86_BUILTIN_PCOMGEUQ): Ditto.
	(IX86_BUILTIN_PCOMFALSEUQ): Ditto.
	(IX86_BUILTIN_PCOMTRUEUQ): Ditto.
	(IX86_BUILTIN_PCOMEQB): Ditto.
	(IX86_BUILTIN_PCOMNEB): Ditto.
	(IX86_BUILTIN_PCOMLTB): Ditto.
	(IX86_BUILTIN_PCOMLEB): Ditto.
	(IX86_BUILTIN_PCOMGTB): Ditto.
	(IX86_BUILTIN_PCOMGEB): Ditto.
	(IX86_BUILTIN_PCOMFALSEB): Ditto.
	(IX86_BUILTIN_PCOMTRUEB): Ditto.
	(IX86_BUILTIN_PCOMEQW): Ditto.
	(IX86_BUILTIN_PCOMNEW): Ditto.
	(IX86_BUILTIN_PCOMLTW): Ditto.
	(IX86_BUILTIN_PCOMLEW): Ditto.
	(IX86_BUILTIN_PCOMGTW): Ditto.
	(IX86_BUILTIN_PCOMGEW): Ditto.
	(IX86_BUILTIN_PCOMFALSEW): Ditto.
	(IX86_BUILTIN_PCOMTRUEW): Ditto.
	(IX86_BUILTIN_PCOMEQD): Ditto.
	(IX86_BUILTIN_PCOMNED): Ditto.
	(IX86_BUILTIN_PCOMLTD): Ditto.
	(IX86_BUILTIN_PCOMLED): Ditto.
	(IX86_BUILTIN_PCOMGTD): Ditto.
	(IX86_BUILTIN_PCOMGED): Ditto.
	(IX86_BUILTIN_PCOMFALSED): Ditto.
	(IX86_BUILTIN_PCOMTRUED): Ditto.
	(IX86_BUILTIN_PCOMEQQ): Ditto.
	(IX86_BUILTIN_PCOMNEQ): Ditto.
	(IX86_BUILTIN_PCOMLTQ): Ditto.
	(IX86_BUILTIN_PCOMLEQ): Ditto.
	(IX86_BUILTIN_PCOMGTQ): Ditto.
	(IX86_BUILTIN_PCOMGEQ): Ditto.
	(IX86_BUILTIN_PCOMFALSEQ): Ditto.
	(IX86_BUILTIN_PCOMTRUEQ): Ditto.
	(bdesc_ptest): Change OPTION_MASK_ISA_SSE4_1 to
	OPTION_MASK_ISA_ROUND for instructions that are shared between
	SSE4.1 and SSE5.
	(bdesc_2arg): Ditto.
	(bdesc_sse_3arg): Ditto.
	(enum multi_arg_type): New enum for describing the various SSE5
	intrinsic argument types.
	(bdesc_multi_arg): New table for SSE5 intrinsics.
	(ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support.
	(ix86_expand_multi_arg_builtin): New function for creating SSE5
	intrinsics.
	(ix86_expand_builtin): Add SSE5 intrinsic support.
	(ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4
	operand instructions.
	(ix86_expand_sse5_multiple_memory): New function to split the
	second memory reference from SSE5 instructions.
	(type_has_variadic_args_p): Delete in favor of stdarg_p.
	(ix86_return_pops_args): Use stdarg_p to determine if the function
	has variable arguments.
	(ix86_setup_incoming_varargs): Ditto.
	(x86_this_parameter): Ditto.

	* config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add
	declaration.
	(ix86_expand_sse5_pack): Ditto.
	(ix86_sse5_valid_op_p): Ditto.
	(ix86_expand_sse5_multiple_memory): Ditto.

	* config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC
	constant for SSE5 support.
	(UNSPEC_SSE5_UNSIGNED_CMP): Ditto.
	(UNSPEC_SSE5_TRUEFALSE): Ditto.
	(UNSPEC_SSE5_PERMUTE): Ditto.
	(UNSPEC_SSE5_ASHIFT): Ditto.
	(UNSPEC_SSE5_LSHIFT): Ditto.
	(UNSPEC_FRCZ): Ditto.
	(UNSPEC_CVTPH2PS): Ditto.
	(UNSPEC_CVTPS2PH): Ditto.
	(PCOM_FALSE): Add new constant for true/false SSE5 comparisons.
	(PCOM_TRUE): Ditto.
	(COM_FALSE_S): Ditto.
	(COM_FALSE_P): Ditto.
	(COM_TRUE_S): Ditto.
	(COM_TRUE_P): Ditto.
	(type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types.
	(unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg
	types.
	(memory attribute): Ditto.
	(sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
	Use SSE4_1_ROUND_* constants instead of hard coded numbers.
	(rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
	(floor<mode>2): Ditto.
	(ceil<mode>2): Ditto.
	(btrunc<mode>2): Ditto.
	(nearbyintdf2): Ditto.
	(nearbyintsf2): Ditto.
	(sse_setccsf): Disable if SSE5.
	(sse_setccdf): Ditto.
	(sse5_setcc<mode>): New support for SSE5 conditional move.
	(sse5_pcmov_<mode>): Ditto.

	* config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5.
	(SSEMODEF4): Ditto.
	(SSEMODEF2P): Ditto.
	(ssemodesuffixf4): New mode attribute for SSE5.
	(ssemodesuffixf2s): Ditto.
	(ssemodesuffixf2c): Ditto.
	(sserotatemax): Ditto.
	(ssescalarmode): Ditto.
	(sse_maskcmpv4sf3): Disable if SSE5.
	(sse_maskcmpv2df3): Ditto.
	(sse_vmmaskcmpv4sf3): Ditto.
	(sse5_fmadd<mode>4): Add SSE5 floating point multiply/add
	instructions.
	(sse5_vmfmadd<mode>4): Ditto.
	(sse5_fmsub<mode>4): Ditto.
	(sse5_vmfmsub<mode>4): Ditto.
	(sse5_fnmadd<mode>4): Ditto.
	(sse5_vmfnmadd<mode>4): Ditto.
	(sse5_fnmsub<mode>4): Ditto.
	(sse5_vmfnmsub<mode>4): Ditto.
	(sse5i_fmadd<mode>4): Ditto.
	(sse5i_fmsub<mode>4): Ditto.
	(sse5i_fnmadd<mode>4): Ditto.
	(sse5i_fnmsub<mode>4): Ditto.
	(sse5i_vmfmadd<mode>4): Ditto.
	(sse5i_vmfmsub<mode>4): Ditto.
	(sse5i_vmfnmadd<mode>4): Ditto.
	(sse5i_vmfnmsub<mode>4): Ditto.
	(mulv16qi3): Add SSE5 support.
	(mulv4si3): Ditto.
	(sse5_mulv4si3): New insn for 32-bit multiply support on SSE5.
	(sse2_mulv4si3): Disable if SSE5.
	(sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1.
	(sse4_1_roundps): Ditto.
	(sse4_1_roundsd): Ditto.
	(sse4_1_roundss): Ditto.
	(sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will
	be generated.
	(sse_maskcmpsf3): Ditto.
	(sse_vmmaskcmpv4sf3): Ditto.
	(sse2_maskcmpv2df3): Ditto.
	(sse2_maskcmpdf3): Ditto.
	(sse2_vmmaskcmpv2df3): Ditto.
	(sse2_eq<mode>3): Ditto.
	(sse2_gt<mode>3): Ditto.
	(sse5_pcmov_<mode>): Add SSE5 support.
	(vec_unpacku_hi_v16qi): Ditto.
	(vec_unpacks_hi_v16qi): Ditto.
	(vec_unpacku_lo_v16qi): Ditto.
	(vec_unpacks_lo_v16qi): Ditto.
	(vec_unpacku_hi_v8hi): Ditto.
	(vec_unpacks_hi_v8hi): Ditto.
	(vec_unpacku_lo_v8hi): Ditto.
	(vec_unpacks_lo_v8hi): Ditto.
	(vec_unpacku_hi_v4si): Ditto.
	(vec_unpacks_hi_v4si): Ditto.
	(vec_unpacku_lo_v4si): Ditto.
	(vec_unpacks_lo_v4si): Ditto.
	(sse5_pmacsww): New SSE5 intrinsic insn.
	(sse5_pmacssww): Ditto.
	(sse5_pmacsdd): Ditto.
	(sse5_pmacssdd): Ditto.
	(sse5_pmacssdql): Ditto.
	(sse5_pmacssdqh): Ditto.
	(sse5_pmacsdqh): Ditto.
	(sse5_pmacsswd): Ditto.
	(sse5_pmacswd): Ditto.
	(sse5_pmadcsswd): Ditto.
	(sse5_pmadcswd): Ditto.
	(sse5_pcmov_<move>): Conditional move support on SSE5.
	(sse5_phaddbw): New SSE5 intrinsic insn.
	(sse5_phaddbd): Ditto.
	(sse5_phaddbq): Ditto.
	(sse5_phaddwd): Ditto.
	(sse5_phaddwq): Ditto.
	(sse5_phadddq): Ditto.
	(sse5_phaddubw): Ditto.
	(sse5_phaddubd): Ditto.
	(sse5_phaddubq): Ditto.
	(sse5_phadduwd): Ditto.
	(sse5_phadduwq): Ditto.
	(sse5_phaddudq): Ditto.
	(sse5_phsubbw): Ditto.
	(sse5_phsubwd): Ditto.
	(sse5_phsubdq): Ditto.
	(sse5_pperm): Ditto.
	(sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5.
	(sse5_pperm_zero_v16qi_v8hi): Ditto.
	(sse5_pperm_sign_v8hi_v4si): Ditto.
	(sse5_pperm_zero_v8hi_v4si): Ditto.
	(sse5_pperm_sign_v4si_v2di): Ditto.
	(sse5_pperm_sign_v4si_v2di): Ditto.
	(sse5_pperm_pack_v2di_v4si): Ditto.
	(sse5_pperm_pack_v4si_v8hi): Ditto.
	(sse5_pperm_pack_v8hi_v16qi): Ditto.
	(sse5_perm<mode>): New SSE5 intrinsic insn.
	(rotl<mode>3): Ditto.
	(sse5_rotl<mode>3): Ditto.
	(sse5_ashl<mode>3): Ditto.
	(sse5_lshl<mode>3): Ditto.
	(sse5_frcz<mode>2): Ditto.
	(sse5s_frcz<mode>2): Ditto.
	(sse5_cvtph2ps): Ditto.
	(sse5_cvtps2ph): Ditto.
	(sse5_vmmaskcmp<mode>3): Ditto.
	(sse5_com_tf<mode>3): Ditto.
	(sse5_maskcmp<mode>3): Ditto.
	(sse5_maskcmp_uns<mode>3): Ditto.
	(sse5_maskcmp_uns2<mode>3): Ditto.
	(sse5_pcom_tf<mode>3): Ditto.
	
	* config/i386/predicates.md (const_0_to_31_operand): New predicate
	to match 0..31.
	(sse5_comparison_float_operator): New predicate to match the
	comparison operators supported by the SSE5 com instruction.
	(ix86_comparison_int_operator): New predicate to match just the
	signed int comparisons.
	(ix86_comparison_uns_operator): New predicate to match just the
	unsigned int comparisons.

	* doc/invoke.texi (-msse5): Add documentation.
	(-mfused-madd): Ditto.

	* doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics.

	* config.gcc (i[34567]86-*-*): Include bmmintrin.h and
	mmintrin-common.h.
	(x86_64-*-*): Ditto.

	* config/i386/cpuid.h (bit_SSE5): Define SSE5 bit.

	* config/i386/bmmintrin.h: New file, provide common x86 compiler
	intrinisics for SSE5.

	* config/i386/smmintrin.h: Move instructions shared with SSE5 to
	mmintrin-common.h.

	* config/i386/mmintrin-common.h: New file, to contain common
	instructions between SSE4.1 and SSE5.

	* config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use
	FOREACH_FUNCTION_ARGS to iterate over the argument list.
	(gen_regparm_prefix): Ditto.

	* config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use
	FOREACH_FUNCTION_ARGS to iterate over the argument list.  Use
	prototype_p to determine if a function is prototyped.

2007-09-12  Janis Johnson  <janis187@us.ibm.com>

	* config/dfp-bit.c (dfp_conversion_exception): New function.
	(DFP_TO_DFP) Add new variants to use direct conversions in decNumber.
	(DFP_TO_INT): Ditto.
	(INT_TO_DFP): Ditto.
	* config/dfp-bit.h (DEC_FLOAT_FROM_INT, DEC_FLOAT_TO_INT): New.

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

	PR target/32338
	* config/ia64/ia64.c (ia64_expand_epilogue): Emit blockage
	before sp restoration even when total_size is 0, but
	frame_pointer_needed.

2007-09-12  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (machine_function): Add vararg_a7_copy.
	(xtensa_copy_incoming_a7): Use start_sequence instead of
	push_to_sequence.  Stash insns in vararg_a7_copy for builtin_saveregs.
	(xtensa_builtin_saveregs): Place code from vararg_a7_copy at the start
	of the saveregs sequence.

2007-09-12  Richard Sandiford  <richard@codesourcery.com>

	* c-tree.h (grokfield): Add a "tree *" argument.
	* c-decl.c (grokdeclarator): Take a pointer to the decl's attributes.
	Chain nested decl attributes to it.  Don't call decl_attributes here.
	(groktypename): Pass grokdeclarator a pointer to the attribute list.
	(start_decl, grokparm, push_parm_decl, start_function): Likewise.
	(grokfield): Take a pointer to the decl's attributes and pass
	it to grokdeclarator.
	* c-parser.c (c_parser_struct_declaration): Update the calls to
	grokfield.  Call decl_attributes for anonymous struct and union
	fields.

2007-09-12  Jan Hubicka  <jh@suse.cz>

	* c-objc-common.h (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.

2007-09-12  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/32377
	* tree-vect-analyze.c (vect_analyze_data_ref_dependence): Distinguish
	between positive and negative dependence distance using DDR_REVERSED_P.

2007-09-12  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/33373
	* tree-vect-analyze (vect_determine_vectorization_factor): Call 
	TREE_INT_CST_LOW when comparing TYPE_SIZE_UNIT.	

2007-09-12  Jan Hubicka  <jh@suse.cz>

	PR target/33393
	* config/i386/i386.md (floatsisf2_mixed_memory, floatsisf2_sse_memory):
	Disable for !SSE_MATH

2007-09-12  Christian Bruel  <christian.bruel@st.com>

	* sh.h (SH_DBX_REGISTER_NUMBER): Added fpscr, fixed sr/gbr regs.
	* linux-unwind.h (SH_DWARF_FRAME_GBR): fixed. 
	
2007-09-12  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-transform.c (vect_get_slp_defs): Don't build a vector
	for oprnd1 if not required.
	(vectorizable_operation): Use scalar operand in SLP in case of 
	shift with scalar argument.

2007-09-12  Ira Rosen  <irar@il.ibm.com>

	* params.def (PARAM_MIN_VECT_LOOP_BOUND): Change default and
	minimum to 1.

2007-09-11  James E. Wilson  <wilson@specifix.com>

	* defaults.h (DWARF2_UNWIND_INFO): Don't define if
	TARGET_UNWIND_INFO is defined.
	* config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Delete undef
	after definition.

2007-09-12  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (calc_live_regs): Use
	current_function_saves_all_registers instead of
	current_function_has_nonlocal_label.
	(sh_allocate_initial_value): Likewise.
	(sh_get_pr_initial_val): Likewise.
	* config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Likewise.
	* config/sh/sh.md (load_ra): Likewise.

2007-09-12  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/t-linux (LIMITS_H_TEST): Only define if not inhibit_libc.

	PR target/33360
	* config/cris/cris.c (cris_expand_pic_call_address): Fix typo in
	GET_CODE (x) == CONST_INT to CONST_INT_P (x) transformation.

2007-09-12  Sa Liu  <saliu@de.ibm.com>

	* config/spu/spu.c (spu_emit_branch_or_set): Handle NaN values as
	operands to DFmode GE or LE compares.

2007-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.h (enum reg_class, REG_CLASS_CONTENTS,
	REG_CLASS_NAMES): Add P0REGS.
	(REGNO_REG_CLASS): Return it where appropriate.
	(REG_CLASS_FROM_CONSTRAINT): Add 'qA'.
	(CLASS_LIKELY_SPILLED_P): P0REGS is likely_spilled.
	* doc/md.texi (Blackfin family): Document 'q' constraints.

2007-09-11  Steve Kenton  <skenton@ou.edu>

	* pa/linux-unwind.h: Guard with inhibit_libc.
	* pa/hpux-unwind.h: Likewise.

2007-09-11  David Daney  <ddaney@avtrex.com>

	* doc/invoke.texi: Document new MIPS -mllsc and -mno-llsc options.
	* doc/install.texi: Document new --with-llsc and --without-llsc
	options.
	* config.gcc: Handle --with-llsc and --without-llsc configure options.
	* config/mips/mips.md (sync, memory_barrier): Wrap sync instrunction
	in %| and %- operand codes.  Depend on GENERATE_SYNC instead of
	ISA_HAS_SYNC.
	(sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
	sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
	sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
	sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
	sync_new_nand<mode>, sync_lock_test_and_set<mode>): Depend on
	GENERATE_LL_SC instead of ISA_HAS_LL_SC.
	* config/mips/mips.opt (mllsc): New option.
	* config/mips/mips.c (mips_llsc): Define variable.
	(mips_handle_option): Handle mllsc option.
	(override_options): Set mips_print_operand_punct for '|' and '-'.
	(print_operand): Add new %| and %- operand codes.
	* config/mips/mips.h (mips_llsc_setting): New enum type.
	(mips_llsc): Declare.
	(OPTION_DEFAULT_SPECS): Add llsc handling.
	(GENERATE_SYNC): New macro.
	(GENERATE_LL_SC): New macro.
	(MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
	MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
	MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Wrap instructions
	in %| and %- operand codes.

2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-structalias.c (push_fields_onto_fieldstack): Deal with
	TYPE_NONALIASED_COMPONENT like with DECL_NONADDRESSABLE_P.

2007-09-11  Jason Merrill  <jason@redhat.com>

	PR middle-end/27945
	* stor-layout.c (layout_decl): Do pack variable size fields.	

2007-09-11  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/predicates.md (movsi_const0_operand,
	non_symbolic_call_operand): New predicates.

	* config/m68k/constraints.md (Cs, Ci, C0, Cj, CQ, CW, CZ, CS, Ap, Ac):
	New constraints.
	* doc/md.texi (Constraints for Particular Machines: Motorola 680x0):
	Document constraints N, O, P, R, S, T, Q, U, W, Cs, Ci, C0, Cj, CQ,
	CW, CZ, CS, Ap and Ac.

	* config/m68k/m68k.md (UNSPEC_IB): New constant.
	(constraints.md): New include.
	(cpu, type, type1, opx, opy, opx_type, opy_type, size, opx_access,
	opx_mem, opy_mem, op_mem, guess, split): New attributes.
	(movdf_internal): Name pattern.  Fix to use alternatives.  Add split.
	Specify attributes.
	(pushdi): Add split.
	(tstsi_internal): Name pattern.  Fix to use alternatives.  Specify
	attributes.  Split tstsi_internal_68020_cf from it.
	(tstsi_internal_68020_cf): New pattern.
	(tsthi_internal, tstqi_internal): Name pattern.  Specify attributes.
	(tst<mode>_cf): Specify attributea.
	(cmpsi_cf): Name pattern.  Specify attributes.
	(cmp<mode>_68881, cmp<mode>_cf): Specify type attribute.
	(pushexthisi_const): Fix to use alternatives.  Specify
	attributes.
	(movsi_const0): Split movsi_const0_68000_10 and movsi_const0_68040_60
	from it.  Fix to use alternatives.  Specify attributes.
	(movsi_const0_68040_10, movsi_const0_68040_60): New patterns.
	(movsi_cf, movstrictqi_cf): Fix to use alternatives.  Specify
	attributes.
	(movsf_cf_soft): Specify attributes.
	(movdf_cf_soft): Add split.
	(pushasi, zero_extendhisi2_cf, zero_extendqisi2_cfv4,
	cfv4_extendhisi2, 68k_extendhisi2, extendqihi2, cfv4_extendqisi2,
	68k_extendqisi2, truncdfsf2_cf): Specify attributes.
	(truncdfsf2_68881): Name pattern.  Specify attributes.
	(floatsi<mode>2_cf, floathi<mode>2_68881, floathi<mode>2_cf,
	floatqi<mode>2_68881, floatqi<mode>2_cf, ftrunc<mode>2_cf,
	fix<mode>qi2_cf, fix<mode>hi2_cf, fix<mode>si2_cf, adddi_dishl32):
	Specify attributes.
	(addsi3_5200): Fix to use alternatives.  Specify attributes.
	Add splits.
	(add<mode>3_cf, subdi_dishl32): Specify attributes.
	(subsi3): Add alternative for subq.l.  Specify attributes.
	(sub<mode>3_cf, mulhi3, mulhisi3): Specify attributes.
	(mulhisisi3_s, mulsi3_68020, mulsi3_cf): Name pattern.  Specify
	attributes.
	(umulhisi3): Specify attributes.
	(mulhisisi3_z): Name pattern.  Specify attributes.
	(fmul<mode>3_cf, div<mode>3_cf, negsi2_internal, negsi2_5200,
	sqrt<mode>2_68881, clzsi2, one_cmplsi2_5200, subreghi1ashrdi_const32,
	subregsi1ashrdi_const32, ashrsi3, subreg1lshrdi_const32, lshrsi3,
	bsetmemqi): Specify attributes.
	(bsetmemqi_ext): Name pattern.  Specify attributes.
	(bclrmemqi): Specify attributes.
	(bclrmemqi_ext, scc, sls): Name pattern.  Specify attributes.
	(beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, ble, bleu): Specify
	attributes.
	(beq2, bne2, bgt2, bgtu2, blt2, bltu2, bge2, bgeu2, ble2, bleu2): Name
	pattern.  Specify attributes.
	(jump): Specify attributes.
	(tablejump_internal): Name pattern.  Specify attributes.
	(call_value): Split into non_symbolic_call_value,
	symbolic_call_value_jsr, symbolic_call_value_bsr.  Fix to use
	alternatives.  Specify attributes.
	(non_symbolic_call_value, symbolic_call_value_jsr,
	symbolic_call_value_bsr): New patterns.
	(nop, return, unlink, indirect_jump): Specify attributes.
	(trap): Fix condition.  Specify attributes.
	(ib): New pattern.

	* config/m68k/m68k.c (m68k_symbolic_call_var): New variable.
	(override_options): Initialize it.  Initialize m68k_sched_cpu.
	(CONST_METHOD): Rename to M68K_CONST_METHOD, move to m68k.h.
	(const_method): Make global, rename to m68k_const_method.
	(const_int_cost, output_move_const_into_data_reg): Update.
	(output_move_double): Parametrize to emit rtl code, rename to
	handle_move_double.
	(output_reg_adjust, emit_reg_adjust, output_compadr, output_movsi,
	emit_movsi): New static functions.
	(output_move_double): New function with semantics of old
	output_move_double.
	(m68k_emit_move_double): New function.
	(m68k_sched_cpu): New variable.
	(attr_op_type): New enum.
	(sched_guess_p): New variable.
	(sched_address_type, sched_operand_type, sched_attr_op_type):
	New static functions.
	(m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
	m68k_sched_attr_size, m68k_sched_attr_op_mem): New functions.
	(sched_branch_type): New static variable.
	(m68k_sched_branch_type): New function.
	* config/m68k/m68k.h (M68K_SYMBOLIC_CALL): New enum.
	(m68k_symbolic_call_var): Declare.
	(M68K_CONST_METHOD): Rename from CONST_METHOD.  Move here from m68k.c.
	(m68k_const_method, m68k_emit_move_double, m68k_sched_cpu,
	m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
	m68k_sched_attr_size, m68k_sched_attr_op_mem, m68k_sched_branch_type):
	Declare.

2007-09-11  Jakub Jelinek  <jakub@redhat.com>

	* builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin.
	* builtins.c (expand_builtin) <case BUILT_IN_VA_ARG_PACK_LEN>: Issue
	error if __builtin_va_arg_pack_len () wasn't optimized out during
	inlining.
	* tree-inline.c (copy_bb): Replace __builtin_va_arg_pack_len ()
	with the number of inline's anonymous arguments.
	* doc/extend.texi: Document __builtin_va_arg_pack_len ().

2007-09-11  Zdenek Dvorak  <ook@ucw.cz>

	* fold-const.c (extract_muldiv_1): Do not simplify var * c * c to var.

2007-09-11  Jan Hubicka <jh@suse.cz>

	* config/i386/i386.h (ix86_tune_indices): Add
	X86_TUNE_INTER_UNIT_CONVERSIONS.
	(TARGET_INTER_UNIT_CONVERSIONS): New.
	* config/i386/i386.md (floatsi expanders): Remove redundant check
	for SImode source; offload to memory when asked for.
	(floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse
	floatdisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse):
	Update conditions;
	(floatsisf2_mixed_memory, floatsisf2_sse_memory,
	floatsidf2_mixed_memory, floatsidf2_sse_memory
	floatdisf2_mixed_memory, floatsisf2_sse_memory,
	floatsidf2_mixed_memory, floatsidf2_sse_memory): New.

2007-09-11  Jan Hubicka <jh@suse.cz>

	* toplev.c (process_options): all frontends now do unit-at-a-time.
	* cgraphunit.c: update comments.
	(cgraph_expand_function): call passmanager dirrectly; emit thunks.
	* c-decl.c (finish_function): use cgraph_add_new_function.
	* function.c (expand_function_end): We are always unit-at-a-time.

2007-09-11  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.c (mips_set_mips16_mode): Use separate anchor
	settings for MIPS16.
	(mips_use_anchors_for_symbol_p): Use default_use_anchors_for_symbol_p.

2007-09-11  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.c (mips_symbol_insns_1): Allow LEAs of
	SYMBOL_FORCE_TO_MEM constants.
	(mips_rtx_costs): Give a cost of 1 to force_to_mem_operands.
	(mips16_rewrite_pool_refs_info): New structure.
	(mips16_rewrite_pool_constant): New function, split out from...
	(mips16_rewrite_pool_refs): ...here.  Take a pointer to a
	mips16_rewrite_pool_refs_info structure rather than a pointer
	to a constant pool.  Force force_to_mem_operands into memory.
	(mips16_lay_out_constants): Update call to mips16_rewrite_pool_refs.
	* config/mips/predicates.md (force_to_mem_operand): New predicate.
	* config/mips/constraints.md (kf): New constraint.
	* config/mips/mips.md (*movdi_64bit_mips16): Add a d <- kf alternative.
	(*movsi_mips16): Likewise.

2007-09-11  Richard Sandiford  <richard@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>
	    David Ung  <davidu@mips.com>

	* config/mips/mips.h (CONSTANT_POOL_COST): Move to...
	* config/mips/mips.c: ...here and set to 4 for TARGET_MIPS16.
	(mips16_constant_cost, mips_immediate_operand_p, mips_binary_cost)
	(mips_fp_mult_cost, mips_fp_div_cost, mips_sign_extend_cost)
	(mips_zero_extend_cost): New functions.
	(mips_rtx_costs): Treat COMPARE constants as having zero cost.
	Use the new functions.  Tweak many cost estimates, both here
	and in the new subroutines.  Return false when the cost of the
	operands has not been calculated.  Check for *clear_upper32.
	Check for floating-point multiply-add, reciprocal and rsqrt
	patterns.  Handle comparison and rotation codes.

2007-09-11  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/cygming.h (TARGET_STRIP_NAME_ENCODING): Don't
	override default.
	* config/i386/i386.c (get_dllimport_decl): Don't strip
	FASTCALL_PREFIX.

2007-09-10  Janis Johnson  <janis187@us.ibm.com>

	PR c/30013
	* config/dfp-bit.c: Don't skip TFmode conversions; move strto*
	declarations to top.
	(DFP_TO_BFP): Use for either XFmode or TFmode.
	(BFP_TO_DFP): Use for either XFmode or TFmode; always use cast
	of BFP_VIA_TYPE.
	* config/dfp-bit.h: Include float.h.
	(LONG_DOUBLE_HAS_XF_MODE, LONG_DOUBLE_HAS_TF_MODE): Define if long
	double is one of these modes, rather than using LIBGCC_HAS_*F_MODE
	which doesn't mean the same thing.
	(BFP_KIND): Use 4 to mean TFmode.
	(BFP_FMT): Specify the number of decimal digits based on the
	number of mantissa digits.
	(BFP_VIA_TYPE): Binary float type to use as cast for sprintf.
	(BFP_TO_DFP, DFP_TO_BFP): Define names for TFmode variants.
	(STR_TO_BFP): Use strtold for XFmode or TFmode.
	(TFtype): Define if TFmode is supported.
	* doc/libgcc.texi (Decimal float library routines): Document
	TF conversion functions.

2007-09-10  Chao-ying Fu  <fu@mips.com>

	* config/mips/mips.c (mips_scalar_mode_supported_p): Declare.
	(TARGET_SCALAR_MODE_SUPPORTED_P): Define.
	(mips_emit_compare): Process fixed-point modes.
	(mips_pad_arg_upward): Support fixed-point types.
	(override_options): Allow fixed-point modes in accumulators.
	(mips_pass_by_reference): Pass DQ, UDQ, DA, and UDA modes in registers.
	(mips_vector_mode_supported_p): Support V2HQmode, V2UHQmode, V2HAmode,
	V2UHAmode, V4QQmode, and V4UQQmode when TARGET_DSP.
	(mips_scalar_mode_supported_p): New function to accept fixed-point
	modes if the width is not greater than two BITS_PER_WORD.
	* config/mips/mips.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
	LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
	SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
	LONG_LONG_ACCUM_TYPE_SIZE): Define.
	* config/mips/mips.md ("d"): Update mode attribute for fixed-point
	modes.
	("IMODE"): New mode attribute.
	(mips-fixed.md): Include.
	* config/mips/mips-modes.def: Create VECTOR_MODES for FRACT, UFRACT,
	ACCUM, UACCUM.
	* config/mips/mips-fixed.md: New file.

2007-09-11  Ben Elliston  <bje@au.ibm.com>

	* config/spu/spu.md: Formatting fixes.

2007-09-10  Janis Johnson  <janis187@us.ibm.com>

	* config/dfp-bit.c (dfp_unary_func): Delete.
	(dfp_unary_op): Delete.
	(dfp_binary_op): Use decFloat functions instead of decNumber
	functions for binary operations.
	(d32_binary_op): Convert 32-bit operands to 64 bits for evaluation.
	(dnn_binary_op): Call dfp_binary_op with decFloat rather than
	DFP_C_TYPE.
	(dfp_compare_op): Use decFloat functions insteadof decNumber
	functions for comparisons.
	(d32_compare_op): Convert 32-bit operands to 64 bits for evaluation.
	(dnn_binary_op): Call dfp_compare_op with decFloat rather than
	DFP_C_TYPE.
	(DFP_ADD, DFP_SUB, DFP_MULTIPLE, DFP_DIVIDE): Use macros for
	call to dxx_binary_op and decFloat function.
	(DFP_EQ, DFP_NE, DFP_LT, DFP_GT, DFP_LE, DFP_GE): Use macros for
	calls to dxx_binary_op and decFloat function.
	* config/dfp-bit.h: Include decFloat header files.
	(decFloat, DFP_BINARY_OP, DFP_COMPARE_OP, DEC_FLOAT_ADD,
	DEC_FLOAT_SUBTRACT, DEC_FLOAT_MULTIPLY, DEC_FLOAT_DIVIDE,
	DEC_FLOAT_COMPARE, DEC_FLOAT_IS_ZERO, DEC_FLOAT_IS_NAN,
	DEC_FLOAT_IS_SIGNED: Define for each of 3 operand widths.

2007-09-10  Harsha Jagasia <harsha.jagasia@amd.com>
	    Jan Sjodin <jan.sjodin@amd.com>

	* tree-vect-analyze.c (vect_analyze_operations): Change
	comparison of loop iterations with threshold to less than
	or equal to instead of less than. Reduce
	min_scalar_loop_bound by one.
	* tree-vect-transform.c (vect_estimate_min_profitable_iters): 
	Change prologue and epilogue iterations estimate to vf/2,
	when unknown at compile-time. Change versioning guard
	cost to taken_branch_cost. If peeling for alignment is
	unknown at compile-time, change peel guard costs to one
	taken branch and one not-taken branch per peeled loop.
	If peeling for alignment is known but number of scalar loop
	iterations is unknown at compile-time, change peel guard
	costs to one taken branch per peeled loop. Change the cost
	model equation to consider vector iterations as the loop
	iterations less the prologue and epilogue iterations.
	Change outside vector cost check to less than or equal to
	zero instead of equal to zero.
	(vect_do_peeling_for_loop_bound): Reduce
	min_scalar_loop_bound by one.
	* tree-vectorizer.h: Add TARG_COND_TAKEN_BRANCH_COST and
	TARG_COND_NOT_TAKEN_BRANCH_COST.	
	* config/i386/i386.h (processor_costs): Add
	scalar_stmt_cost, scalar_load_cost, scalar_store_cost,
	vec_stmt_cost, vec_to_scalar_cost, scalar_to_vec_cost,
	vec_align_load_cost, vect_unalign_load_cost,
	vec_store_cost, cond_taken_branch_cost,
	cond_not_taken_branch_cost.
	Define macros for x86 costs.
	* config/i386/i386.c:
	(size_cost): Set scalar_stmt_cost, scalar_load_cost,
	scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
	scalar_to_vec_cost, vec_align_load_cost, 
	vect_unalign_load_cost, vec_store_cost,
	cond_taken_branch_cost, cond_not_taken_branch_cost to one. 
	(i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
	geode_cost, k6_cost, athlon_cost, pentium4_cost, nocona_cost, 
	core2_cost, generic64_cost, generic32_cost): Set to default
	untuned costs.
	(k8_cost, amdfam10_cost): Costs for vectorization tuned.
	(x86_builtin_vectorization_cost): New.

2007-09-10  Janis Johnson  <janis187@us.ibm.com>
	    Ben Elliston  <bje@au.ibm.com>

	* dfp.c: Include decimal128Local.h; 
	(dfp_byte_swap): Remove.
	(encode_decimal32, decode_decimal32): Don't handle endianness.
	(encode_decimal64, decode_decimal64): Ditto.
	(encode_decimal128, decode_decimal128): Ditto.
	* config/dfp-bit.c (host_to_ieee32, ieee_to_host_32): Ditto.
	(__swap64): Remove.
	(host_to_ieee_64, ieee_to_host_64): Don't handle endianness.
	(__swap128): Remove
	(host_to_ieee_128, ieee_to_host_128): Don't handle endianness.
	* Makefile.in (DECNUM_H): Add decimal128Local.h.

2007-09-10  David Daney  <ddaney@avtrex.com>

	* config/mips/mips.md (UNSPEC_MEMORY_BARRIER): New entry in
	define_constants.
	(memory_barrier): Rewrote as an insn that clobbers memory.

2007-09-10  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.c (mips_global_pointer): Check
	call_really_used_regs instead of call_used_regs.
	(mips_save_reg_p): Likewise.  Save all call-saved registers
	if current_function_saves_all_registers.  Fix indentation.
	No longer treat $18 as a special case.
	(compute_frame_size): Guard FPR loop with TARGET_HARD_FLOAT.

2007-09-10  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): New macro.
	* config/mips/mips.c (mips_cpu_info_table): Mention it in the
	the introductory comment.
	(MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
	(override_options): Don't test for it.
	* config/mips/sde.h (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
	(DRIVER_SELF_SPECS): Add MIPS_ARCH_FLOAT_SPEC.
	* config/mips/vr.h: As for config/mips/sde.h.

2007-09-10  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
	    Revital Eres  <eres@il.ibm.com>

	* target.h (struct gcc_target.sched): New field: sms_res_mii.
	(struct ddg): Define.
	* target-def.h (TARGET_SCHED_SMS_RES_MII): Define.
	(TARGET_SCHED): Add TARGET_SCHED_SMS_RES_MII.
	* config/spu/spu.c: Include ddg.h.
	(TARGET_SCHED_SMS_RES_MII): Define.
	(spu_sms_res_mii): New function to calculate mii.
	* modulo-sched (res_MII): Use it.
	* doc/tm.texi: Document TARGET_SCHED_SMS_RES_MII.

2007-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_dump_pool): Create copy of constant
	pool entries since they might hold values that must not be shared.

2007-09-10 Robert Kidd <rkidd@crhc.uiuc.edu>

	* bb-reorder.c (rest_of_handler_reorder_blocks): Removed call to
	RTL level tracer pass.
	* passes.c (init_optimization_passes): Move pass_tracer from
	after pass_rtl_ifcvt to after pass_dce.
	* tracer.c: Update copyright.
	(layout_superblocks): Remove function.
	(mark_bb_seen): New.
	(bb_seen_p): New.
	(count_insns): Change to estimate instructions in a Tree-SSA
	statement.
	(find_trace): Use bb_seen_p.
	(tail_duplicate): Use bb_seen_p.  Call add_phi_args_after_copy
	after duplicate_block.
	(tracer): Change prototype to match that of a pass execute
	callback.
	(gate_tracer): Rename from gate_handle_tracer.
	(rest_of_handle_tracer): Remove function.
	* rtl.h: Remove prototype for tracer.
	* testsuite/gcc.dg/tree-prof/tracer-1.c: New.

2007-09-10  Uros Bizjak  <ubizjak@gmail.com>

	PR target/33369
	* config/i386/sse.md (ashr<mode>3): Change op2 mode to SImode.
	Use 'N' operand constraint for op2.
	(lshr<mode>3): Ditto.
	(ashl<mode>3): Ditto.
	(vec_shl_<mode>): Use const_0_to_255_mul_8_operand predicate for op2.
	(vec_shr_<mode>): Ditto.
	* config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLL?128,
	IX86_BUILTIN_PSRA*?128, IX86_BUILTIN_PSRL?128]: Convert op1 to SImode.

2007-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("fixuns_trunc<BFP:mode><GPR:mode>2"):
	Change mode macro in the last real_2expN parameter to uppercase.

2007-09-10  Michael Matz  <matz@suse.de>

	* tree-pass.h (pass_cselim): Declare new pass.
	* passes.c (init_optimization_passes): Link in pass_cselim.
	* tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Renamed from
	tree_ssa_phiopt; add do_store_elim parameter, handle it by calling
	cond_store_replacement.
	(condstoretemp): New static variable.
	(cond_store_replacement): New function.
	(tree_ssa_phiopt, tree_ssa_cs_elim): New wrappers around
	tree_ssa_phiopt_worker.
	(struct name_to_bb): New.
	(get_non_trapping, name_to_bb_hash, name_to_bb_eq, add_or_mark_expr,
	nt_init_block, nt_fini_block): New static functions.
	(seen_ssa_names, nontrap_set): New static variables.
	(gate_cselim, pass_cselim): Define new pass.
	* common.opt (ftree-cselim): New flag.
	* toplev.c (process_options): Set flag_tree_cselim if required.

2007-09-10  Hans-Peter Nilsson  <hp@axis.com>

	* simplify-rtx.c (simplify_relational_operation_1): For recent
	canonicalization, don't recurse if op1 equals both PLUS arguments.

2007-09-09  David Daney  <ddaney@avtrex.com>

	* optabs.c (expand_sync_operation):  Use plus insn if minus
	CONST_INT_P(val).
	(expand_sync_fetch_operation):  Ditto.

2007-09-09  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (*floatsisf2_mixed_vector): Use cvtdq2ps instead
	of cvtpq2ps.
	(*floatsisf2_sse_vector): Likewise.

2007-09-09  Krister Walfridsson  <cato@df.lth.se>

	* config/netbsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.

2007-09-09  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.h (ix86_tune_indices): Rename
	X86_USE_VECTOR_CONVERTS to X86_TUNE_USE_VECTOR_CONVERTS.
	(TARGET_USE_VECTOR_CONVERTS): Updated.
	* config/i386/i386.c: Likewise.

2007-09-09  Sandra Loosemore  <sandra@codesourcery.com>
	    Nigel Stephens <nigel@mips.com>

	* doc/invoke.texi (Overall Options):  Add .sx file extension
	as a synonym for .S.
	* cppspec.c (known_suffixes): Likewise.
	* gcc.c (default_compilers): Likewise.

2007-09-09  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/30315
	* config/i386/i386.h (CANONICALIZE_COMPARISON): Delete.
	* simplify-rtx.c (simplify_relational_operation_1): Add the
	canonicalization from i386.h.
	* doc/md.texi (Canonicalization of Instructions): Document it.

2007-09-09  Jan Hubicka  <jh@suse.cz>
	    Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>

	* config/i386/i386.h (ix86_tune_indices): Add X86_USE_VECTOR_CONVERTS.
	(TARGET_USE_VECTOR_CONVERTS): New.
	* config/i386/i386.md: New post-reload splitters for converting
	SF to DF and DF to SF.
	(floatsi* expander): Special case vector conversions.
	(floatsisf2_mixed_vector, floatsisf2_sse_vector_nointernunit,
	floatsisf2_sse_vector_internunit, floatsisf2_sse_vector,
	floatsidf2_mixed_vector, floatsidf2_sse_vector): New.
	(floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse):
	Disable when doing vector converts.
	(floatsi<mode>2_i387): Disable when
	* config/i386/sse.md (vec_dupv2df): Export.
	* config/i386/i386.c (ix86_tune_features): Enable SSE conversions.

2007-09-09  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (add_virtual_operand): Only mark
	stores as has_volatile_ops if alias information is not available.

2007-09-09  Revital Eres  <eres@il.ibm.com>

	* doc/contrib.texi: Add myself.

2007-09-09  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.h (stmt_vinfo_set_inside_of_loop_cost,
	stmt_vinfo_set_outside_of_loop_cost): New functions.
	* tree-vect-transform.c (vect_get_cost_fields): Remove.
	(vect_model_simple_cost): Call
	stmt_vinfo_set_inside/outside_of_loop_cost to set the relevant cost
	field instead of calling vect_get_cost_fields.
	(vect_model_store_cost, vect_model_load_cost): Likewise.

2007-09-09  Revital Eres  <eres@il.ibm.com>

	* config/rs6000/rs6000.c (paired_init_builtins): Add const
	declaration to bdesc_paired_preds variable.
	(paired_expand_builtin): Likewise.

2007-09-09  Revital Eres  <eres@il.ibm.com>

	* dbgcnt.def (sms_sched_loop): New counter.
	* modulo-sched.c: Use sms_sched_loop instead of
	MAX_SMS_LOOP_NUMBER to determine the maximum number of loops to
	perform swing modulo scheduling on.  Include dbgcnt.h.
	* Makefile.in: Add DBGCNT_H to modulo-sched.o.
	* params.def: Remove PARAM_MAX_SMS_LOOP_NUMBER.

2007-09-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (X87MODEF12, SSEMODEF): Remove mode iterators.
	Substitute all uses with ...
	(MODEF): New mode iterator.

	(fix_trunc<mode>_fisttp_i387_1): Remove operand constraints
	from pre-regalloc define_insn_and_split splitter pattern.
	(*fix_trunc<mode>_i387_1): Ditto.
	(*fistdi2_1): Ditto.
	(*fist<mode>2_1): Ditto.
	(frndintxf2_floor): Ditto.
	(*fist<mode>2_floor_1): Ditto.
	(frndintxf2_ceil): Ditto.
	(*fist<mode>2_ceil_1): Ditto.
	(frndintxf2_trunc): Ditto.
	(frndintxf2_mask_pm): Ditto.

	(prologue): Use (const_int 0) as never generated filler insn.
	(epilogue): Ditto.
	(sibcall_epilogue): Ditto.
	(eh_return_si): Ditto.
	(eh_return_di): Ditto.

	(add<mode>3): Rename from adddf3 and addsf3.  Macroize expander
	using MODEF mode iterator.
	(sub<mode>3): Rename from subdf3 and subsf3.  Macroize expander
	using MODEF mode iterator.
	(mul<mode>3): Rename from muldf3 and mulsf3.  Macroize expander
	using MODEF mode iterator.
	(nearbyint<mode>2): Rename from nearbyintdf2 and nearbyintsf2.
	Macroize expander using MODEF mode iterator.

	(zero_extendsidi2): Remove operand constraints from expander.
	(smuldi3_highpart): Ditto.
	(indirect_jump): Ditto.
	(tablejump): Ditto.
	(rsqrtsf2): Ditto.
	* config/i386/sse.md (storentv4sf): Ditto.
	(storentv2df): Ditto.
	(storentv2di): Ditto.
	(storentsi): Ditto.
	(sse2_cvtpd2ps): Ditto.
	(vec_interleave_highv16qi): Ditto.
	(vec_interleave_lowv16qi): Ditto.
	(vec_interleave_highv8hi): Ditto.
	(vec_interleave_lowv8hi): Ditto.
	(vec_interleave_highv4si): Ditto.
	(vec_interleave_lowv4si): Ditto.
	(vec_interleave_highv2di): Ditto.
	(vec_interleave_lowv2di): Ditto.
	(sse2_maskmovdqu): Ditto.
	* config/i386/mmx.md (mmx_maskmovq): Ditto.

2007-09-09  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.h (enum vect_def_type): Start enumeration from 1.
	(struct _slp_tree, struct _slp_instance): Define new data structures
	along macros for their access.
	(struct _loop_vec_info): Define new fields: strided_stores,
	slp_instances, and slp_unrolling_factor along macros for their access.
	(enum slp_vect_type): New.
	(struct _stmt_vec_info): Define new field, slp_type, and macros for
	its access.
	(STMT_VINFO_STRIDED_ACCESS): New macro.
	(vect_free_slp_tree): Declare.
	(vectorizable_load): Add an argument of type slp_tree.
	(vectorizable_store, vectorizable_operation, vectorizable_conversion,
	vectorizable_assignment): Likewise.
	(vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
	Declare (make extern).
	* tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
	(new_loop_vec_info): Likewise.
	(destroy_loop_vec_info): Free memory allocated for SLP structures.
	* tree-vect-analyze.c: Include recog.h.
	(vect_update_slp_costs_according_to_vf): New.
	(vect_analyze_operations): Add argument for calls to vectorizable_ ()
	functions. For not pure SLP stmts with strided access check that the
	group size is power of 2. Update the vectorization factor according to
	SLP. Call vect_update_slp_costs_according_to_vf.
	(vect_analyze_group_access): New.
	(vect_analyze_data_ref_access): Call vect_analyze_group_access.
	(vect_free_slp_tree): New functions.
	(vect_get_and_check_slp_defs, vect_build_slp_tree, vect_print_slp_tree,
	vect_mark_slp_stmts, vect_analyze_slp_instance, vect_analyze_slp,
	vect_make_slp_decision, vect_detect_hybrid_slp_stmts,
	vect_detect_hybrid_slp): Likewise.
	(vect_analyze_loop): Call vect_analyze_slp, vect_make_slp_decision
	and vect_detect_hybrid_slp.
	* tree-vect-transform.c (vect_estimate_min_profitable_iters): Take
	SLP costs into account.
	(vect_get_cost_fields): New function.
	(vect_model_simple_cost): Make extern, add SLP parameter and handle
	SLP.
	(vect_model_store_cost, vect_model_load_cost): Likewise.
	(vect_get_constant_vectors): New function.
	(vect_get_slp_vect_defs, vect_get_slp_defs,
	vect_get_vec_defs_for_stmt_copy, vect_get_vec_defs_for_stmt_copy,
	vect_get_vec_defs): Likewise.
	(vectorizable_reduction): Don't handle SLP for now.
	(vectorizable_call): Don't handle SLP for now. Add argument to
	vect_model_simple_cost.
	(vectorizable_conversion): Handle SLP (call vect_get_vec_defs to
	get SLPed and vectorized defs). Fix indentation and spacing.
	(vectorizable_assignment): Handle SLP.
	(vectorizable_induction): Don't handle SLP for now.
	(vectorizable_operation): Likewise.
	(vectorizable_type_demotion): Add argument to
	vect_model_simple_cost.
	(vectorizable_type_promotion): Likewise.
	(vectorizable_store, vectorizable_load): Handle SLP.
	(vectorizable_condition): Don't handle SLP for now.
	(vect_transform_stmt): Add a new argument for SLP. Check that there is
	no SLP transformation required for unsupported cases. Add SLP
	argument for supported cases.
	(vect_remove_stores): New function.
	(vect_schedule_slp_instance, vect_schedule_slp): Likewise.
	(vect_transform_loop): Schedule SLP instances.
	* Makefile.in: (tree-vect-analyze.o): Depend on recog.h.

2007-09-09  Andrew Haley  <aph@redhat.com>

	* optabs.c (sign_expand_binop): Set libcall_gen = NULL in the fake
	signed optab.

2007-09-09  Hans-Peter Nilsson  <hp@axis.com>

	Divide REG_LABEL notes into REG_LABEL_OPERAND and REG_LABEL_TARGET.
	* doc/rtl.texi (Insns): Specify when a label_ref makes a jump_insn.
	Similar for what label_refs can go in the JUMP_TARGET field.  Split
	REG_LABEL documentation into REG_LABEL_TARGET and REG_LABEL_OPERAND.
	* reload.c (find_reloads): Generate REG_LABEL_OPERAND, not
	REG_LABEL when replacing an operand with a LABEL_REF for a
	non-jump insn.
	(subst_reloads): When replacing a LABEL_REG with a register,
	instead of generating a REG_LABEL note, assert that there already
	is one or that the label is a known target for the insn.
	* rtlanal.c (computed_jump_p): Instead of looking for a REG_LABEL
	note, check the JUMP_LABEL field.  Remove "else" after return.
	* reorg.c (emit_delay_sequence): Replace case for REG_LABEL with
	cases for REG_LABEL_OPERAND and REG_LABEL_TARGET.
	(fill_slots_from_thread): Handle both REG_LABEL_OPERAND and
	REG_LABEL_TARGET notes, including the JUMP_TARGET field on JUMP_P
	insns.  Iterate over all notes; don't assume there's only one.
	* cse.c (recorded_label_ref): Adjust comment to refer to
	REG_LABEL_OPERAND.
	(cse_extended_basic_block): Do LABEL_REF check for all INSN_P
	insns, not just NONJUMP_INSN_P.
	(check_for_label_ref): For JUMP_P insns, check that the LABEL_REF
	isn't a jump target.
	* jump.c (rebuild_jump_labels): Adjust head comment.
	(init_label_info): Ditto.  Remove REG_LABEL_OPERAND notes only;
	don't reset REG_LABEL_TARGET notes, including the JUMP_LABEL field.
	(mark_all_labels): For JUMP_P insns without a target, check if the
	the target is noted on the previous nonjump insn.
	(mark_jump_label_1): New function, guts from mark_jump_label.
	<case IF_THEN_ELSE>: Handle first operand as a non-target when
	marking jump target labels.
	<case LABEL_REF>: Adjust for whether to generate a
	REG_LABEL_TARGET or a REG_LABEL_OPERAND note.
	For 'E' format rtl, iterate in descending element order.
	(delete_related_insns): Handle both REG_LABEL_TARGET and
	REG_LABEL_OPERAND notes.  For JUMP_P insns with labels with zero
	reference count, delete and fallthrough.  Move finding-next-
	non-deleted insn last in the function.  Look at all INSN_P insns
	for REG_LABEL_OPERAND notes.
	(redirect_jump_2): Assert that OLABEL equals the old JUMP_LABEL of
	JUMP.
	* print-rtl.c (print_rtx): For JUMP_P insns and a non-NULL
	JUMP_LABEL, output the INSN_UID of it.
	* gcse.c: Adjust comments as appropriate to say REG_LABEL_OPERAND
	and/or REG_LABEL_TARGET.
	(add_label_notes): Only add REG_LABEL_OPERAND notes.  Put in line
	with jump.c copy by only adding notes for labels actually
	referenced in the insn.
	* emit-rtl.c (try_split): Don't assume only NONJUMP_INSN_P need
	usage count increment; handle all INSN_P trial insns.
	(emit_copy_of_insn_after): Change to not copy REG_LABEL_OPERAND
	notes.
	* rtl.h (struct rtx_def) <volatil>: Adjust to mention
	REG_LABEL_TARGET and REG_LABEL_OPERAND.
	(LABEL_REF_NONLOCAL_P): Allow REG_LABEL_TARGET and
	REG_LABEL_OPERAND.
	* combine.c (distribute_notes): Adjust for REG_LABEL_TARGET on
	JUMP_P insns and REG_LABEL_OPERAND everywhere.
	* sched-rgn.c (is_cfg_nonregular): Check for REG_LABEL_OPERANDS
	on all INSN_P insns.
	* reg-notes.def (LABEL_TARGET, LABEL_OPERAND): Split from LABEL.
	* cfgrtl.c (delete_insn): Adjust to handle REG_LABEL_TARGET and
	REG_LABEL_OPERAND notes.
	* reload1.c (calculate_needs_all_insns): Adjust comments.
	(set_label_offsets): Adjust to look for REG_LABEL_OPERAND notes.
	* config/alpha/alpha.md (split for load of an address into a
	four-insn sequence on Unicos/Mk): Adjust to use
	REG_LABEL_OPERAND.
	* config/sh/sh.md (sh_reorg, final_prescan_insn): Ditto.

2007-09-09  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	Revert:
	2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
	* regrename.c (copyprop_hardreg_forward_1): New variable next. Use
	FOR_BB_INSNS_SAFE instead of for loop.
	* cse.c (cse_extended_basic_block): Likewise.
	* postreload.c (reload_cse_regs_1): New variable next. Make sure
	that the for loop does not invoke NEXT_INSN on a deleted insn.
	* function.c (instantiate_virtual_regs): Likewise.
	* lower-subreg.c (remove_retval_note): Likewise.
	(decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
	FOR_BB_INSNS.
	* emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
	a deleted insn.
	* cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
	insn, if it's a jump.
	(try_redirect_by_replacing_jump): New variable jump_p. Call
	tablejump_p before delete_insn_chain.
	* reload1.c (reload): New variable next. Make sure that the for
	loop does not invoke NEXT_INSN on a deleted insn.
	(fixup_eh_region_note): Make the loop terminate if i becomes NULL.
	(delete_output_reload): New variable prev. Make sure the the for
	loops do not invoke PREV_INSN on a deleted insn.

2007-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa/constraints.md: Remove 'X' from unused letters comment.

2007-09-08  Richard Guenther  <rguenther@suse.de>

	* tree-tailcall.c (find_tail_calls): If we don't have aliases
	computed check stmt_ann->references_memory instead of counting
	virtual operands.
 
2007-09-08  Segher Boessenkool  <segher@kernel.crashing.org>

	* cse.c (fold_rtx): Use validate_unshare_change() instead of
	validate_change() in one more case.

2007-09-08  Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/32283
	* tree-ssa-loop-ivopts.c (may_eliminate_iv): Use
	estimated_loop_iterations.
	(determine_use_iv_cost_condition): Decrease cost of expressions
	used in iv elimination.

2007-09-08  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_expr): Avoid building new
	pointer types, use TYPE_POINTER_TO if available instead.

2007-09-08  Uros Bizjak  <ubizjak@gmail.com>

	PR target/33329
	PR rtl-optimization/26449
	* config/i386/sse.md (mulv4si3): Do not expand sse2 sequence.
	(*sse2_mulv4si3): New define_insn_and_split pattern. Split insn in
	split1 pass.
	(mulv16qi3): Implement as define_insn_and_split pattern instead of
	define_expand.  Split insn in split1 pass.
	(mulv2di3): Ditto.

2007-09-08  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/33301
	* tree-vect-analyze (analyze_operations): Look at the type of the rhs
	when relevant.

2007-09-07  Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/32183
	* Makefile.in (tree-ssa-reassoc.o): Also depend on $(CFGLOOP_H).

	* tree-ssa-reassoc.c: Include cfgloop.h.
	(is_reassociable_op): Add a loop argument and return true only
	for inside loop.
	(linearize_expr): Updated.
	(should_break_up_subtract): Likewise.
	(linearize_expr_tree): Likewise.
	(init_reassoc): Call loop_optimizer_init with
	AVOID_CFG_MODIFICATIONS.  Remove calculate_dominance_info call
	with CDI_DOMINATORS.
	(fini_reassoc): Call loop_optimizer_finalize.

2007-09-07  Sterling Augustine  <sterling@tensilica.com>

	* config/xtensa/lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even
	if there is no i-cache.

2007-09-07  Richard Guenther  <rguenther@suse.de>

	Reapply
	2007-09-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/32586
	* tree-ssa-sccvn.c (simplify_binary_expression): Avoid
	folding if nothing changed.
	(simplify_unary_expression): New function.  Do tree combining
	on conversion like codes.
	(try_to_simplify): Call it.

2007-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/33286
	* gthr-posix.h (__gthread_active_p): Add implementation for hppa-hpux.
	(__gthread_active,__gthread_start, __gthread_active_init): New.
	* gthr-posix95.h: Likewise.

2007-09-07  Roman Zippel <zippel@linux-m68k.org>

	* function.h (struct function): Rename calls_unwind_init
	to saves_all_registers.
	(current_function_saves_all_registers): Renamed from
	current_function_calls_unwind_init.
	* reload1.c (reload): Set current_function_saves_all_registers.
	* except.c (expand_builtin_unwind_init): Likewise.
	* config/m68k/m68k.c (m68k_save_reg): Use
	current_function_saves_all_registers to save pic register.

2007-09-07  Janis Johnson  <janis187@us.ibm.com>

	config/m68k/m68k.c (floating_exact_log2): Update call to real_2expN.
	config/s390/s390.md (fixuns_trunc<BFP:mode><GPR:mode>2): Ditto.

	Reapply reverted changes:

 	2007-09-06  Jan Hubicka  <jh@suse.cz>
 
	* config/i386.c (ix86_expand_lround, ix86_expand_round): Update call
	of real_2expN.

	2007-09-06  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
	(fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.

	2007-09-05  Janis Johnson  <janis187@us.ibm.com>

	* optabs.c (expand_float): Convert unsigned integer as signed only
	if it provides sufficient accuracy; add mode argument to real_2expN.
	(expand_fix): Fix comment typos; extend binary float into mode
	wider than destination for converion to unsigned integer; add mode
	argument to real_2expN.
	* real.c (real_2expN): Add mode argument to special-case decimal
	float values.
	* real.h (real_2expN): Ditto.
	* fixed-value.c (check_real_for_fixed_mode): Add mode argument to
	real_2expN.
	(fixed_from_string): Ditto.
	(fixed_to_decimal): Ditto.
	(fixed_convert_from_real): Ditto.
	(real_convert_from_fixed): Ditto.
	* config/rs6000/rs6000.md (FP): Include DD and TD modes.
	* config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
	muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
	floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.

2007-09-07  Diego Novillo  <dnovillo@google.com>

	* tree-flow.h (const_block_stmt_iterator): Remove.
	Update all users to use block_stmt_iterator.
	* tree-iterator.h (const_tree_stmt_iterator): Remove.
	Update all users to use tree_stmt_iterator.

2007-09-07  Sandra Loosemore  <sandra@codesourcery.com>

	* config/mips/mips.c (mips_set_current_function): Temporarily
	make this a no-op to fix bootstrap errors, pending rewrite.

2007-09-07  Jan Hubicka  <jh@suse.cz>

	* reorg.c (dbr_schedule): Move code removing placeholder USEs later
	in the pass.

2007-09-07  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/33299
	* tree-vect-transform.c (vect_create_epilog_for_reduction): Update
	uses for all relevant loop-exit phis, not just the first.

2007-09-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33330
	* tree-ssa-operands.c (access_can_touch_variable): An access
	of the form (*p)[0] can touch a variable of same size.

2007-09-07  Jan Hubicka  <jh@suse.cz>

	* passes.c (init_optimization_passes): Add simple dce and addressable
	passes.
	* tree-ssa.c (execute_update_addresses_taken): New function.
	(pass_update_address_taken): New.
	* tree-ssa-dse.c (execute_simple_dse): New function.
	(pass_simple_dse): New.
	* tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare.

2007-09-07  Tobias Burnus  <burnus@net-b.de>

	PR middle-end/33321
	* doc/invoke.texi: Fix -Wstrict-overflow= table.

2007-09-07  Richard Guenther  <rguenther@suse.de>

	Revert
	2007-09-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/32586
	* tree-ssa-sccvn.c (simplify_binary_expression): Avoid
	folding if nothing changed.
	(simplify_unary_expression): New function.  Do tree combining
	on conversion like codes.
	(try_to_simplify): Call it.

2007-09-07  Richard Guenther  <rguenther@suse.de>
	    Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/32821
	* tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of
	NULL in the call to set_bb_stmt_list.

2007-09-07  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.c (build_mips16_call_stub): Emit all direct
	float calls here, rather than leaving some to the caller.
	Use call_internal_direct and call_value_internal_direct.
	* config/mips/mips.md (call_internal_direct): New pattern.
	(call_value_internal_direct): Likewise.

2007-09-07  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.c (mips_base_move_loop_invariants): New variable.
	(mips_set_mips16_mode): Restore flag_move_loop_invariants, then set
	to 0 for MIPS16.
	(override_options): Set mips_base_move_loop_invariants.

2007-09-07  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.opt (mcode-readable=): Move to keep list
	alphabetical.

2007-09-07  Richard Sandiford  <richard@codesourcery.com>

	* doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata
	and -mgpopt options.  Adjust the -G documentation to match.
	* config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New.
	* config/mips/mips.c (mips_rtx_constant_in_small_data_p): New
	function, split out from mips_classify_symbol.  Return false for
	!TARGET_LOCAL_SDATA.
	(mips_classify_symbol): Call mips_rtx_constant_in_small_data_p.
	Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT.
	(override_options): Check whether the -mgpopt setting is consistent
	with the other flags.
	(symbolic_expression_p): Delete.
	(mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p
	and default_elf_select_rtx_section.
	(mips_in_small_data_p): Honor section attributes for MIPS16 too.
	Return false for local data unless TARGET_LOCAL_SDATA.  Likewise
	external data and TARGET_EXTERN_SDATA.

2007-09-07  Tobias Burnus  <burnus@net-b.de>

	PR fortran/33303
	* doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__.

2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* regrename.c (copyprop_hardreg_forward_1): New variable next. Use
	FOR_BB_INSNS_SAFE instead of for loop.
	* cse.c (cse_extended_basic_block): Likewise.
	* postreload.c (reload_cse_regs_1): New variable next. Make sure
	that the for loop does not invoke NEXT_INSN on a deleted insn.
	* function.c (instantiate_virtual_regs): Likewise.
	* lower-subreg.c (remove_retval_note): Likewise.
	(decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
	FOR_BB_INSNS.
	* emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
	a deleted insn.
	* cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
	insn, if it's a jump.
	(try_redirect_by_replacing_jump): New variable jump_p. Call
	tablejump_p before delete_insn_chain.
	* reload1.c (reload): New variable next. Make sure that the for
	loop does not invoke NEXT_INSN on a deleted insn.
	(fixup_eh_region_note): Make the loop terminate if i becomes NULL.
	(delete_output_reload): New variable prev. Make sure the the for
	loops do not invoke PREV_INSN on a deleted insn.

2007-09-06  Zdenek Dvorak  <ook@ucw.cz>

	* cgraphbuild.c (rebuild_cgraph_edges): Export.
	* cgraph.h (rebuild_cgraph_edges): Declare.
	* tree-pass.h (pass_expand_omp_ssa): New.
	* omp-low.c (find_omp_clause): Export.
	(copy_var_decl): Split from omp_copy_decl_2.
	(build_omp_barrier): Return the call to emit instead of emitting
	it directly.
	(lower_rec_input_clauses, expand_omp_single): Gimplify the result of
	build_omp_barrier.
	(extract_omp_for_data, expand_parallel_call, expand_omp_parallel,
	expand_omp_for_generic, expand_omp_for_static_nochunk,
	expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
	Adapted to work on SSA form.
	(execute_expand_omp): Do not invalidate dominance information.
	(gate_expand_omp): Do not run with -fopenmp-ssa flag.
	(gate_expand_omp_ssa, pass_expand_omp_ssa): New.
	* gimplify.c (gimplify_omp_for): Ensure that the control variable is
	a gimple_reg.
	(force_gimple_operand): Allow gimplifying code expressions without
	value.
	* tree-predcom.c (mark_virtual_ops_for_renaming): Handle phi nodes.
	* common.opt (fopenmp-ssa): New.
	* tree-flow.h (find_omp_clause, copy_var_decl): Declare.
	* Makefile.in (tree-cfg.o): Add TREE_INLINE_H dependency.
	* tree-cfg.c: Include tree-inline.h.
	(struct move_stmt_d): Replace vars_to_remove by vars_map field.
	(replace_by_duplicate_decl, replace_ssa_name,
	mark_virtual_ops_in_region): New functions.
	(move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Adapted
	to work on SSA form.
	* passes.c (init_optimization_passes): Add pass_expand_omp_ssa pass.
	* tree-ssa-operands.c (get_expr_operands): Handle operands of OMP
	constructs.

2007-09-06  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* tree-loop-linear.c: Include obstack.h.
	(linear_transform_loops): New obstack lambda_obstack.
	Initialize it, pass it to gcc_loopnest_to_lambda_loopnest,
	lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls
	and free afterwards.
	* lambda.h (struct obstack): New forward declaration.
	(lambda_linear_expression_new): New parameter of type struct
	obstack *.
	(lambda_loopnest_new): Likewise.
	(lambda_loopnest_transform): Likewise.
	(lambda_body_vector_new): Likewise.
	(lambda_body_vector_compute_new): Likewise.
	(gcc_loopnest_to_lambda_loopnest): Likewise.
	(lambda_loopnest_to_gcc_loopnest): Likewise.
	* lambda-code.c: Include obstack.h.
	(lambda_lattice_new): New parameter lambda_obstack.  Use it for
	allocation of ret.
	(lambda_body_vector_new): Likewise.
	(lambda_linear_expression_new): Likewise.
	(lambda_lattice_new): Likewise.
	(lambda_loopnest_new): Likewise.  Additionally use obstack to
	allocate LN_LOOPS(ret).
	(lambda_lattice_compute_base): New parameter lambda_obstack.  Pass
	it to lambda_lattice_new.
	(lambda_body_vector_compute_new): New parameter lambda_obstack.
	Pass it to lambda_body_vector_new.
	(lambda_lattice_compute_base): New paramater lambda_obstack.  Pass
	it to lambda_lattice_new.
	(compute_nest_using_fourier_motzkin): New parameter lambda_obstack.
	Pass it to lambda_loopnest_new, lambda_linear_expression_new.
	(lambda_compute_target_space): Likewise.
	(lambda_compute_auxillary_space): New parameter lambda_obstack.
	Pass it to lambda_lattice_compute_base and
	compute_nest_using_fourieer_motzkin.
	(lambda_loopnest_transform): New parameter lambda_obstack.  Pass
	it to lambda_lattice_compute_base, lambda_lattice_auxillary_space
	and lambda_lattice_compute_target_space.
	(gcc_tree_to_linear_expression): Nex parameter lambda_obstack.
	Pass it to lambda_linear_expression_new.
	(gcc_loop_to_lambda_loop): New parameter lambda_obstack.  Pass it
	to gcc_tree_to_linear_expression.
	(gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack.
	Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new.
	(lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack.
	Pass it to lambda_body_vector_new and
	lambda_body_vector_compute_new.
	* Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency.
	(lambda-code.o): Likewise.

2007-09-06  Chao-ying Fu  <fu@mips.com>

	* ginclude/stdfix.h: New file.
	* Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h.
	(convert.o): Add dependence on fixed-value.h.
	* c-convert.c (convert): Support FIXED_POINT_TYPE.
	* c-cppbuiltin.c (builtin_define_fixed_point_constants): New function
	to define fixed-point constants.
	(c_cpp_builtins): Define fixed-point constants.
	* convert.c (fixed-value.h): New include.
	(convert_to_real): Update comment to include fixed-point.
	Support FIXED_POINT_TYPE.
	(convert_to_integer): Update comment to include fixed-point.
	Support FIXED_POINT_TYPE.
	(convert_to_complex): Support FIXED_POINT_TYPE.
	(convert_to_fixed): New function.
	* convert.h (convert_to_fixed): Declare.
	* genopinit.c: Add comment about $Q for only fixed-point modes.
	(optabs): Add fract_optab, fractuns_optab, satfract_optab,
	satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab,
	sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab,
	ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab,
	usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab,
	usneg_optab for fixed-point modes.
	(gen_insn): Add force_fixed to track the $Q format for all fixed-point
	modes.
	* optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR,
	PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or
	unsigned saturation optabs, when type is saturating.
	(shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT.
	(expand_fixed_convert): New function.
	(gen_fixed_libfunc, gen_signed_fixed_libfunc,
	gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc,
	gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc,
	gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc,
	gen_fract_conv_libfunc, gen_fractuns_conv_libfunc,
	gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New
	functions.
	(init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab,
	ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab,
	usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab,
	ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab,
	usneg_optab, fract_optab, fractuns_optab, satfract_optab,
	satfractuns_optab.
	Initialize fixed-point libraries, including add, ssadd, usadd, sub,
	sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl,
	ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract,
	fractuns, satfractuns.
	* optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub,
	OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg,
	OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen,
	OTI_ssmsub_widen,  OTI_usmsub_widen.
	(ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
	usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
	ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab,
	umsub_widen_optab, usmsub_widen_optab): Define.
	(enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract,
	COI_satfractuns.
	(fract_optab, fractuns_optab, satfract_optab, satfractuns_optab):
	Define.
	(expand_fixed_convert): Declare.
	* expr.c (convert_move): Support the move of fixed-point modes.
	(emit_move_insn_1): Handle fixed-point mode to move via integer.
	(categorize_ctor_elements_1): Handle FIXED_CST.
	(count_type_elements): Handle FIXED_POINT_TYPE.
	(expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT,
	MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
	Support FIXED_CST.
	For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating
	multiply and add/subtract for fixed-point types.
	For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point
	mode, we jump to binop directly.
	Support FIXED_CONVERT_EXPR.
	(do_store_flag): Check FIXED_CST to put a constant second.
	(vector_mode_valid_p): Handle MODE_VECTOR_FRACT,
	MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
	(const_vector_from_tree): Support FIXED_CST.
	* doc/extend.texi (Fixed-Point): New node.
	* doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv,
	ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract,
	satfract, fractuns, satfractuns): Document them.

2007-09-07  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc
	addresses into I registers.

2007-09-06  Jan Hubicka  <jh@suse.cz>
	    Andreas Tobler  <a.tobler@schweiz.org>

	* config/darwin.c (machopic_indirect_data_reference): Avoid invalid
	sharing.
	(machopic_legitimize_pic_address): Likewise.

2007-09-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
	    Jan Hubicka  <jh@suse.cz>

	* config/spu/spu.md (floatsidf2): Use convert_optab_libfunc
	instead of ufloat_optab->handlers directly.
	(floatdidf2): Likewise.

2007-09-06  Sandra Loosemore  <sandra@codesourcery.com>

	* config/mips/mips.c:  Include diagnostic.h.
	(mips_set_current_function): Check errorcount and sorrycount 
	before generating RTL.

2007-09-06  Richard Sandiford  <richard@codesourcery.com>

	PR target/33256
	* config/mips/mips.c (mips_classify_symbolic_expression): New function.
	(mips_classify_address): Use it instead of mips_symbolic_constant_p.
	(print_operand_reloc): Likewise.

2007-09-06  Janis Johnson  <janis187@us.ibm.com>

	Revert:

 	2007-09-06  Jan Hubicka  <jh@suse.cz>
 
	* config/i386/i386.c (ix86_expand_lround, ix86_expand_round):
	Update call of real_2expN.

	2007-09-06  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
	(fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.

	2007-09-05  Janis Johnson  <janis187@us.ibm.com>

	* optabs.c (expand_float): Convert unsigned integer as signed only
	if it provides sufficient accuracy; add mode argument to real_2expN.
	(expand_fix): Fix comment typos; extend binary float into mode
	wider than destination for converion to unsigned integer; add mode
	argument to real_2expN.
	* real.c (real_2expN): Add mode argument to special-case decimal
	float values.
	* real.h (real_2expN): Ditto.
	* fixed-value.c (check_real_for_fixed_mode): Add mode argument to
	real_2expN.
	(fixed_from_string): Ditto.
	(fixed_to_decimal): Ditto.
	(fixed_convert_from_real): Ditto.
	(real_convert_from_fixed): Ditto.
	* config/rs6000/rs6000.md (FP): Include DD and TD modes.
	* config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
	muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
	floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.

2007-09-06  Tom Tromey  <tromey@redhat.com>

	* tree-cfg.c (remove_bb): Only warn if line is non-zero.
	* c-pch.c (c_common_read_pch): Restore current location after
	reading PCH file.
	* tree.c (expand_location): Update.
	(expr_filename): Changed return type.  Unified the two cases.
	(expr_lineno): Likewise.
	(annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME
	as lvalues.
	* toplev.c (line_table): Changed type.
	(general_init): Update.
	(realloc_for_line_map): New function.
	(general_init): Allocate line_table using GC.
	* fix-header.c (line_table): Changed type.
	(read_scan_file): Update.
	(read_scan_file): Update.
	* c-ppoutput.c (maybe_print_line): Update.
	(print_line): Update.
	(cb_line_change): Update.
	(cb_define): Update.
	(pp_file_change): Update.
	* c-opts.c (c_common_init_options): Update.
	(finish_options): Update.
	(push_command_line_include): Update.
	* c-lex.c (cb_line_change): Update.
	(cb_def_pragma): Update.
	(cb_define): Update.
	(cb_undef): Update.
	(c_lex_with_flags): Use cpp_get_token_with_location.
	* input.h (line_table): Changed type.
	(location_from_locus): New macro.
	* tree.h (EXPR_FILENAME): No longer an lvalue.
	(EXPR_LINENO): Likewise.
	(expr_locus, set_expr_locus): Declare separately for
	USE_MAPPED_LOCATION.
	(expr_filename, expr_lineno): Changed return type.
	* gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS.
	* cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus.
	(expand_gimple_basic_block): Likewise.
	* final.c (final_scan_insn): Use expanded_location.

2007-09-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/32586
	* tree-ssa-sccvn.c (simplify_binary_expression): Avoid
	folding if nothing changed.
	(simplify_unary_expression): New function.  Do tree combining
	on conversion like codes.
	(try_to_simplify): Call it.
	* builtins.c (fold_builtin_cexp): Fold the built expressions.
	* fold-const.c (fold_unary): Test result of get_callee_fndecl().

2007-09-06  Jan Hubicka  <jh@suse.cz>

	PR target/33318
	* cse.c (fold_rtx): Avoid invalid sharing.

2007-09-06  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
	(fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.

2007-09-06  Revital Eres  <eres@il.ibm.com>

	* config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
	Fix offsettable memory reference for 750CL.

2007-09-06  Pat Haugen  <pthaugen@us.ibm.com>

	* reload.c (find_reloads_address_1): Try to preserve original
	base/index regclass of operands.
	* regrename.c (scan_rtx_address): Likewise.
	(replace_oldest_value_addr): Likewise.

2007-09-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33302
	* domwalk.c (walk_dominator_tree): The exit block is
	interesting even if it is not reachable.

2007-09-06  Richard Sandiford  <richard@codesourcery.com>

	PR middle-end/33306
	* optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode.

2007-09-06  Basile Starynkevitch  <basile@starynkevitch.net>

	* cfg.c (dump_bb_info, dump_edge_info): Added cfun test for 
	robustness.

2007-09-05  Ian Lance Taylor  <iant@google.com>

	* tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int
	when printing.
	(dump_generic_node): Likewise.
	* print-rtl.c (print_decl_name): Likewise.
	* print-tree.c (print_node_brief): Likewise.
	(print_node): Likewise.
	* Makefile.in (RTL_BASE_H): Add alias.h.
	(TREE_H): Likewise.

2007-09-06  Jesper Nilsson  <jesper.nilsson@axis.com>

	* longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros):
	Defined.
	* config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented.
	* config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined.

2007-09-06  Jie Zhang  <jie.zhang@analog.com>

	* config.gcc (tm_file): Add linux.h for bfin*-uclinux*.
	(tm_defines): Define UCLIBC_DEFAULT to 1.
	(extra_options): Add linux.opt.
	* config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define.
	(CRT_CALL_STATIC_FUNCTION): Likewise.
	(NO_IMPLICIT_EXTERN_C): Likewise.
	(TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
	* config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define.
	* config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define.
	(ENDFILE_SPEC): Don't define.
	(LIB_SPEC): Likewise.
	(CRT_CALL_STATIC_FUNCTION): Likewise.
	(NO_IMPLICIT_EXTERN_C): Likewise.
	(LINUX_TARGET_OS_CPP_BUILTINS): Likewise.
	(TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.

2007-09-06  Jan Hubicka  <jh@suse.cz>

	* config/i386/i386.c (ix86_expand_lround, ix86_expand_round):
	Update call of real_2expN.

2007-09-06  Jan Hubicka  <jh@suse.cz>

	* opts.c (common_handle_option): Enable inlining functions for
	-fprofile-generate.

2007-09-06  Jakub Jelinek  <jakub@redhat.com>

	* builtin-attrs.def (ATTR_NONNULL_3): New.
	(DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of
	ATTR_NOTHROW_NONNULL_##FA.
	(DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros.
	(ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3,
	ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4,
	ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5,
	ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6,
	ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3,
	ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4):
	New.
	(ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0,
	ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0,
	ATTR_FORMAT_NOTHROW_3_4): Remove.
	* builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf,
	vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk,
	__vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_*
	instead of ATTR_FORMAT_*_*.

2007-09-06  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
	parts re-used for REG_FRAME_RELATED_EXPR.

2007-09-05  Janis Johnson  <janis187@us.ibm.com>

	* optabs.c (expand_float): Convert unsigned integer as signed only
	if it provides sufficient accuracy; add mode argument to real_2expN.
	(expand_fix): Fix comment typos; extend binary float into mode
	wider than destination for converion to unsigned integer; add mode
	argument to real_2expN.
	* real.c (real_2expN): Add mode argument to special-case decimal
	float values.
	* real.h (real_2expN): Ditto.
	* fixed-value.c (check_real_for_fixed_mode): Add mode argument to
	real_2expN.
	(fixed_from_string): Ditto.
	(fixed_to_decimal): Ditto.
	(fixed_convert_from_real): Ditto.
	(real_convert_from_fixed): Ditto.
	* config/rs6000/rs6000.md (FP): Include DD and TD modes.
	* config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
	muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
	floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.

2007-09-05  Ian Lance Taylor  <iant@google.com>

	* init-regs.c (initialize_uninitialized_regs): Call
	emit_insn_before rather than add_insn_before.

2007-09-05  Jakub Jelinek  <jakub@redhat.com>

	* builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
	* tree.h (CALL_EXPR_VA_ARG_PACK): Define.
	* tree-inline.h (copy_body_data): Add call_expr field.
	* tree-inline.c (expand_call_inline): Initialize call_expr.
	(copy_bb): Append anonymous inline fn arguments to arguments
	when inlining a CALL_EXPR_VA_ARG_PACK call.
	* builtins.c (expand_builtin): Issue an error if
	BUILT_IN_VA_ARG_PACK is seen during expand.
	(fold_call_expr, fold_builtin_call_array): Don't fold
	CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with
	__builtin_va_arg_pack () call as last argument.
	* gimplify.c (gimplify_call_expr): If last argument to a vararg
	function is __builtin_va_arg_pack (), decrease number of call
	arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR.
	* expr.c (expand_expr_real_1): Issue an error if
	CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand.
	* tree-pretty-print.c (dump_generic_node): Handle printing
	CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs.
	* doc/extend.texi (__builtin_va_arg_pack): Document.

2007-09-05  Adam Nemet  <anemet@caviumnetworks.com>

	PR tree-optimization/21513
	* builtins.c (build_builtin_expect_predicate): New function.
	(fold_builtin_expect): Add argument for expected value.
	Distribute __builtin_expect over short-circuiting operations.
	Fold nested builtin_expects.
	(fold_builtin_2): Adjust call to fold_builtin_expect.

2007-09-05  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR web/32965
	PR tree-optimization/13756
	* doc/invoke.texi (Options That Control Optimization): Document
	-ftree-dse.

2007-09-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/cpuid.h: New file.
	* config/i386/driver-i386.c: Include cpuid.h.
	(describe_cache): Shrink size and line strings to 100 bytes.
	(detect_caches_amd): Return "" for unsupported max_ext_level.
	Use __cpuid function.
	(detect_caches_intel): Return "" for unsupported max_level.
	Use __cpuid function.
	(host_detect_local_cpu): Change feature flag variables to
	unsigned int.  Initialize only extended feature flag variables.
	Use __get_cpuid_max to determine max supported cpuid level.
	Use __cpuid function to determine supported features.  Fix
	calculation of family id.  Remove is_amd and check signature
	directly.  Check for Geode signature.  Handle family 4 id.
	[PROCESSOR_GENERIC32]: New default for unknown family id.  Move
	cpu discovery code to lower part of the function.
	[PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune
	for sub-architecture.
	[PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code.
	[PROCESSOR_K8]: Add k8-sse3 architecture.
	[PROCESSOR_NOCONA]: Remove.
	[PROCESSOR_GENERIC64]: Ditto.
	* config/i386/x-i386 (driver-i386.o): Depend on cpuid.h.
	* config/i386/crtfastmath.c: Include cpuid.h.  Use __get_cpuid
	to check for SSE and FXSAVE support.
	* config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h.
	Add -minline-all-stringops.
	* config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers.
	(x86_64-*-*): Ditto.

2007-09-05  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/linux-unwind.h: New file.
	* config/bfin/linux.h (MD_UNWIND_SUPPORT): Define.
	* config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define.

2007-09-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* Makefile.in (stmt.o): Add alloc-pool.h dependency.
	* stmt.c: Include alloc-pool.h.
	(struct case_node): Remove GTY marker.
	(add_case_node): New parameter case_node_pool.  Use it for
	allocation of r.
	(expand_case): New allocation pool case_node_pool.  Initialize it,
	pass to add_case_node and free it.

2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
	    David Ung  <davidu@mips.com>
	    Nigel Stephens <nigel@mips.com>

	Add mips16/nomips16 function attributes and -mflip-mips16 option
	for testing mixed-mode compilation.

	* config/mips/mips.opt (mflip-mips16): New.

	* config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define.
	(SYMBOL_FLAG_MIPS16_FUNC_P): Define.

	* config/mips/mips.c (mips_base_target_flags): New.
	(mips_base_mips16): New.
	(mips_base_schedule_insns): New.
	(mips_base_reorder_blocks_and_partition): New.
	(mips_base_align_loops): New.
	(mips_base_align_jumps): New.
	(mips_base_align_functions): New.
	(mips16_flipper): New.
	(mips_attribute_table): Add "mips16" and "nomips16" entries.
	(TARGET_SET_CURRENT_FUNCTION): Define.
	(mips_mips16_type_p, mips_nomips16_type_p): New.
	(mips_comp_type_attributes): Check mips16/nomips16 attributes.
	(mips_function_ok_for_sibcall): Make it deal with functions with
	mips16 attributes.
	(mips_init_split_addresses): New, split out from override_options.
	(mips_init_relocs): New, split out from override_options.
	(was_mips16_p): New.
	(mips_set_mips16_mode): New, split out from override_options.
	(mips_set_current_function): New.
	(override_options): Add sorry for unsupported mips16/pic
	combination.  Remove error for mips16/dsp combination.	Save
	base option settings.  
	(mips_file_start): Move mips16 mode setting output from here....
	(mips_output_function_prologue): ....to here.
	(mips_output_mi_thunk): Check for mips16 function.
	(build_mips16_function_stub): Don't set .mips16 here.
	(build_mips16_call_stub): Likewise.
	(mips_expand_builtin): Error in mips16 mode.
	(mips_use_mips16_mode_p): New.
	(mips_encode_section_info): Check for mips16 function, and set
	SYMBOL_REF_FLAGS accordingly.

	* doc/extend.texi (Function Attributes): Document new
	mips16/nomips16 attributes.
	* doc/invoke.texi (Option Summary): Add -mflip-mips16.
	(MIPS Options): Document -mflip-mips16.

2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>

	* config/mips/mips.c (mips_legitimize_tls_address): Call sorry
	if we encounter TLS address in MIPS16 mode.
	(mips_legitimize_const_move): Check cannot_force_const_mem for
	the (const (plus symbol offset)) case; this forces invalid TLS
	address in MIPS16 mode to be caught by the above call to sorry.
	(override_options): Don't reset targetm.have_tls in MIPS16 mode,
	because that now enables emutls, which is not ABI compatible
	with native TLS in non-MIPS16 mode.

2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>

	Add target hook invoked when cfun changes.

	* doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document.
	* target.h (struct gcc_target): Add set_current_function.
	* target-def.h (TARGET_SET_CURRENT_FUNCTION): Define.
	(TARGET_INITIALIZER): Add initializer for set_current_function.
	* tree.h (push_struct_function): New.
	* tree-inline.h (push_cfun, pop_cfun): Move declarations to...
	* function.h: Here.
	(set_cfun): Declare.
	* tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to...
	* function.c: Here.
	(push_function_context_to): Use allocate_struct_function
	to create null context, not init_dummy_function_start.  Use set_cfun.
	(pop_function_context_from): Use set_cfun.
	(in_dummy_function): New.
	(invoke_set_current_function_hook): New.
	(set_cfun): New.
	(push_cfun, pop_cfun): Use set_cfun.
	(push_struct_function): New.
	(allocate_struct_function): Call invoke_set_current_function_hook
	before returning.
	(prepare_function_start): Don't set cfun here.  Remove unused
	argument; fix all callers.
	(init_dummy_function_start): Fiddle with in_dummy_function.  Call
	push_struct_function.
	(init_function_start): Set cfun here.
	(expand_dummy_function_end): Fiddle with in_dummy_function.  Pop cfun.
	* omp-low.c (create_omp_child_function): Use push_struct_function
	and pop_cfun to save/restore state.
	(expand_omp_parallel): Remove unused saved_cfun variable.
	* cgraphunit.c (ipa_passes): Use set_cfun.
	* gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here.
	* dwarf2out.c (dwarf2out_abstract_function): Likewise.
	* matrix-reorg.c (transform_allocation_sites): Likewise.
	(matrix_reorg): Use set_cfun.
	* gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here.
	* tree-optimize.c (tree_rest_of_compilation): Remove one redundant
	assignment to cfun; use set_cfun for the other.
	* tree-cfg.c (move_sese_region_to_fn): Use set_cfun.
	(dump_function_to_file): Use push_cfun/pop_cfun here.
	* c-decl.c (finish_function): Use set_cfun.

2007-09-05  Kenneth Zadeck <zadeck@naturalbridge.com>

	* regrename.c (rerename_optimize): Use deferred rescanning and
	insert explicit calls to rescan insns when changed.
	
2007-09-05  Jan Hubicka  <jh@suse.cz>

	* optabs.c (libfunc_entry): Change optab to integer.
	(hash_libfunc, convert_optab_libfunc, optab_libfunc,
	set_optab_libfunc, set_conv_libfunc): Use optable indexes instead
	of pointers for hashing.

2007-09-05  Jan Hubicka  <jh@suse.cz>

	* regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing
	verifier.
	* fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise.
	* see.c (pass_see): Likewise.
	* tracer.c (pass_tracer): Likewise.
	* postreload-gcse.c (pass_gcse2): Likewise.
	* postreload.c (pass_postreload_cse): Likewise.
	* mode-switching.c (pass_mode_switching): Likewise.
	* modulo-sched.c (pass_sms): Likewise.
	* cse.c (cse_insn): Likewise.
	* web.c (pass_web): Likweise.
	* combine-stack-adj.c (pass_stack_adjustments): Likewise.
	* dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise.
	* loop-init.c (pass_rtl_loop_init): Likewise.
	(pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch,
	pass_rtl_unroll_and, pass_rtl_doloop): Likewise.
	* global.c (pass_global_alloc): Likewise.
	* ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine,
	pass_if_after_reload): Likewise.
	* reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise.
	* dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise.
	* regmove.c (pass_regmove): Likewise.
	* function.c (pass_thread_prologugues_epilogues): Likewise.
	* gcse.c (pass_gcse): Likewise.
	* rtl-factoring.c (pass_rtl_seqabstr): Likewise.
	* lower-subreg.c (pass_lower_subreg2): Likewise.
	* bt-load.c (pass_branch_target_load): Likewise.
	* emit-rtl.c (pass_unshare_all_rtl): Likewise.
	* cfgcleanup.c (pass_jump, pass_jump2): Likewise.
	* combine.c (pass_combine): Likewise.
	* bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise.
	(pass_partition_blocks): Likewise.
	* var-tracking.c (pass_variable_track): Likewise.
	* reg-stack.c (pass_stack_regs_run): Likewise.
	* sched-rgn.c (pass_sched, pass_sched2): Likewise.
	* passes.c (pass_postreload): Likewise.
	(execute_function_todo): Add TODO_verify_rtl_sharing handling code.
	* tree-pass.h (TODO_verify_rtl_sharing): New.
	(TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
	TODO_update_ssa_only_virtuals, TODO_remove_unused_locals,
	TODO_set_props, TODO_df_finish, TODO_df_verify,
	TODO_mark_first_instance, TODO_rebuild_alias): Renumber.

2007-09-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* fold-const.c (all_ones_mask_p, sign_bit_p, simple_operand_p,
	fold_real_zero_addition_p, reorder_operands_p,
	div_if_zero_remainder, fold_undefer_overflow_warnings,
	int_binop_types_match_p, fold_convert_const_int_from_int,
	fold_convert_const_int_from_real,
	fold_convert_const_int_from_fixed,
	fold_convert_const_real_from_real,
	fold_convert_const_real_from_fixed,
	fold_convert_const_fixed_from_fixed,
	fold_convert_const_fixed_from_int,
	fold_convert_const_fixed_from_real, maybe_lvalue_p,
	fold_checksum_tree, fold_check_failed, print_fold_checksum,
	debug_fold_checksum, multiple_of_p): Constify.
	* tree-flow-inline.h (get_lineno): Likewise.
	* tree-flow.h (get_lineno): Likewise.
	* tree-object-size.c (compute_object_offset, addr_object_size,
	alloc_object_size, pass_through_call): Likewise.
	* tree-pretty-print.c (op_symbol, print_call_name,
	print_struct_decl, do_niy): Likewise.
	* tree.h (fold_undefer_overflow_warnings, multiple_of_p,
	debug_fold_checksum): Likewise.

2007-09-04  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/33029
	* lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL
	note, remove the associated REG_RETVAL note.

2007-09-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config.gcc (powerpc*-*-*): Install
	spu2vmx.h, vec_types.h, and si2vmx.h headers.
	* config/rs6000/spu2vmx.h: New header.
	* config/rs6000/si2vmx.h: New header.
	* config/rs6000/vec_types.h: New header.

2007-09-05  Ben Elliston  <bje@au.ibm.com>

	* varasm.c (initializer_constant_valid_p): Fix comment typo.

2007-09-05  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint,
	not `m' for *ptrp.
	(__stdcx): Make asm volatile.
	(__stwcx, __stdcx): Return only 0 or 1.

2007-09-05  Jan Hubicka  <jh@suse.cz>

	Revert:

	2007-09-04  Jan Hubicka  <jh@suse.cz>
	* tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.

	2007-09-04  Richard Guenther  <rguenther@suse.de>
	* tree-ssa-operands.c (add_virtual_operand): Only mark
	stores as has_volatile_ops if alias information is not available.

2007-09-05  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/tramp.asm: Include config.h.
	Check __PIC__ or __pic__ macro instead of SHARED.

	PR rtl-optimization/32300
	* see.c (see_copy_insn): New function.
	(see_def_extension_not_merged, see_merge_one_use_extension,
	see_merge_one_def_extension): Use it.  Avoid changing
	PREV_INSN/NEXT_INSN chains directly, insted emit insns
	into sequences.  Call df_insn_delete on temporary insns
	that won't be emitted into the insn stream.
	(rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN
	and run df_process_deferred_rescans () before run_fast_dce.

	PR tree-optimization/33017
	* tree-data-ref.c (split_constant_offset) <case SSA_NAME>: Don't
	recurse for pure or const function calls.

2007-09-04  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* c-format.c: Include alloc-pool.h.
	(check_format_info_main): New argument fwt_alloc.  Use allocation
	pool instead of GC.  Remove GC deallocation code.
	(check_format_arg): Create allocation pool, pass it to
	check_format_info_main and free it afterwards.
	* Makefile.in (c-format.o): Add alloc-pool.h dependency.

2007-09-05  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/ppu_intrinsics.h (__protected_stream_count):
	Rename count macro arugment for clarity.
	(__protected_unlimited_stream_set): Pass UG=1 to __dcbt_TH1000.
	(__protected_stream_set): Likewise, pass 0.

2007-09-04  Jan Hubicka  <jh@suse.cz>

	* tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.

2007-09-04  Jan Hubicka  <jh@suse.cz>

	* invoke.texi (-finline-small-functions): Document.
	* ipa-inline.c (cgraph_default_inline_p): Do not use DECL_INLINE
	when deciding what is inlinable.
	(cgraph_decide_recursive_inlining): Handle flag_inline_functions.
	(cgraph_decide_inlining_of_small_function): Handle new flags.
	(cgraph_decide_inlining_incrementally): Likewise.
	* opts.c (decode_options): Enable flag_inline_small_functions at -O2
	* common.opt (finline-small-functions): New.
	* Makefile.in (build/gengtype.o-warn): Work around PR29478

2007-09-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (add_virtual_operand): Only mark
	stores as has_volatile_ops if alias information is not available.

2007-09-04  Andrew Haley  <aph@redhat.com>

	* config/arm/libgcc-bpabi.ver: Add _Unwind_Backtrace as GCC_4.3.0.

2007-09-04  Andrew Haley  <aph@redhat.com>

	* config/arm/libunwind.S (UNWIND_WRAPPER _Unwind_Backtrace): New.
	* config/arm/unwind-arm.h (__gnu_Unwind_Backtrace): New.
	* config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): New.

2007-09-04  Emmanuel Thome  <Emmanuel.Thome@inria.fr>

	PR c++/14178
	* common.opt: Mention ABI version 2 in comment.

2007-09-04  Jan Hubicka  <jh@suse.cz>

	* optabs.c (debug_optab_libfunc): Update; make available to gdb.
	(libfunc_entry): New structure.
	(libfunc_hash): New hashtable.
	(hash_libfunc): New function.
	(eq_libfunc): New function.
	(convert_optab_libfunc): New function.
	(optab_libfunc): New function.
	(expand_binop, sign_expand_binop, expand_twoval_binop_libfunc,
	expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn,
	expand_float, expand_fix, new_optab, new_convert_optab):
	 Update for new libfunc API.
	(init_libfunc, init_integral_libfuncs,
	init_floating_libfuncs, init_interclass_conv_libfuncs
	init_intraclass_conv_libfuncs): Remove; reorganize all logic to:
	(gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc,
	gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
	gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc,
	gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc,
	gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc,
	gen_extend_conv_libfunc): New.
	(init_one_libfunc): Revamp for hashtables.
	(set_conv_libfunc): Likewise.
	(init_optabs): Initialize hashtable; use lazy initialization where
	possible.
	* optabs.h (optab_handlers): Move out of GGC.
	(optab, convert_optab): Move out of GGC; add lazy gen info.
	(code_to_optab, convert_optab_table, optab_table): Move out of GGC.
	(optab_libfunc, convert_optab_libfunc): New.
	* builtins.c (expand_builtin_powi): Update for new API.
	* expr.c (convert_move): Likewise.
	* expmed.c (expand_divmod): Likewise.

2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
	GOT pointer only if there is a constant pool.  Use the allocated space
	for SPE also.

2007-09-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct
	typo for AltiVec.

2007-09-04  Revital Eres  <eres@il.ibm.com>
	    Richard Guenther  <rguenther@suse.de>
	    R. Clint Whaley  <whaley@cs.utsa.edu>

	* doc/invoke.texi (-fassociative-math, -freciprocal-math):
	Document new flags.
	* tree-tailcall.c (process_assignment): Use -fassociative-math
	when reodering operands of floating-point type.
	* fold-const.c (fold_comparison, fold_binary): Use
	-fassociative-math and -freciprocal-math instead of
	-funsafe-math-optimization flag.
	* toplev.h (set_unsafe_math_optimizations_flags): Declare function.
	* tree-ssa-math-opts.c (gate_cse_reciprocals): Use
	-freciprocal-math instead of -funsafe-math-optimizations.
	* opts.c (set_fast_math_flags): Set -freciprocal-math and
	-fassociative-math when -ffast-math is set.
	(set_unsafe_math_optimizations_flags): New Function
	to set -freciprocal-math and -fassociative-math when
	-funsafe-math-optimizations is set.
	(common_handle_option): Call it.
	* tree-vectorizer.c (vect_is_simple_reduction): Use
	-fassociative-math when doing reduction on floats.
	* loop-unroll.c (analyze_insn_to_expand_var): Use
	-fassociative-math when expanding an accumulator of type float.
	* simplify-rtx.c (simplify_binary_operation_1): Use
	-fassociative-math and -freciprocal-math when reordeing operands
	of floating-point type.
	* combine.c (combine_simplify_rtx): Likewise.
	* tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb):
	Likewise.
	* common.opt (-fassociative-math, -freciprocal-math): New flags.

2007-09-04  Paolo Carlini  <pcarlini@suse.de>

	PR c++/18608
	* doc/install.texi (--enable-__cxa_atexit): Fix typo.

2007-09-04  Jan Hubicka  <jh@suse.cz>

	* regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop.

2007-09-04  Jan Hubicka  <jh@suse.cz>

	* regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR
	and corresponding MATCH_DUP.

2007-09-04  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/33187
	* combine.c (subst): Do not try to simplify X if it represents load
	of FP constant from the constant pool via float extension.

2007-09-04  Ben Elliston  <bje@au.ibm.com>

	* c-opts.c: Include "tm_p.h".
	* Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency.

2007-09-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33291
	* tree-pretty-print.c (dump_generic_node): Dump all
	qualifiers for pointer types, not only first.  Dump
	qualifiers for aggregate types as well.
	* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always
	use the canonical type for building ARRAY_REFs.
	* gimplify.c (canonicalize_addr_expr): Clean up.  The
	correct validness check is compatibility of the pointer
	types.  Always use the canonical type for building
	ARRAY_REFs and ADDR_EXPRs.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert
	change that disabled propagation of ADDR_EXPRs into statements
	with volatile ops.

2007-09-03  Zack Weinberg  <zack@codesourcery.com>

	* config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart)
	(umulsi3_highpart): Make into expanders; existing insns are
	now named *[insn]_nov6.  Add stars to existing [insn]_v6
	counterparts' names.

2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o)
	(unprotoize.o): Remove SHLIB_MULTILIB.

2007-09-03  Eric Weddington  <eweddington@cso.atmel.com>

	* doc/extend.texi: Document progmem attribute for AVR.

2007-09-03  Anatoly Sokolov <aesok@post.ru>

	PR target/28902
 	* config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define.

2007-09-03  Zack Weinberg  <zack@codesourcery.com>

	* optabs.c (expand_ffs): Initialize val and defined_at_zero
	to avoid warnings.

	* optabs.c: Remove unnecessary forward declarations.
	(expand_unop_direct): New, broken out of expand_unop.
	(expand_doubleword_clz): New.
	(expand_ctz): Move above expand_ffs.  Use
	start_sequence, end_sequence, add_equal_note, and
	expand_unop_direct.  Add more commentary.
	(expand_ffs): Try both ctz optab and expand_ctz.
	Generate a test and branch if the hardware doesn't give us
	a useful value for input zero.  Style improvements similar to
	expand_ctz.

	* config/arm/arm.md (ffssi2, ctzsi2): Delete.

2007-09-03  Zack Weinberg  <zack@codesourcery.com>

	* config.gcc: Delete stanza for arm-semi-aof and
	armel-semi-aof targets.
	* config/arm/arm-protos.h
	* config/arm/arm.c
	* config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks;
	make all #ifndef AOF_ASSEMBLER blocks unconditional.  Also
	delete aof_pic_label and remove mention of AOF in comments.
	* config/arm/arm.md: Delete patterns used only for AOF assembly.
	* config/arm/aof.h
	* config/arm/semiaof.h
	* config/arm/t-semi: Delete file.

2007-09-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
	CONST_CAST_BB): New macros for type-specific casts.
	(CONST_CAST): Add a TYPE parameter and define it in terms of
	CONST_CAST2.

	* c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST.
	* c-lex.c (cb_ident, lex_string): Likewise,
	* c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise,
	* config/i386/i386.c (ix86_function_regparm,
	ix86_function_sseregparm): Use CONST_CAST_TREE.
	* config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for
	CONST_CAST.
	* gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
	give_switch, set_multilib_dir): Likewise,
	* gengtype-parse.c (string_seq, typedef_name): Likewise,
	* gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE.
	* jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX.
	* passes.c (execute_one_pass): Supply a TYPE for CONST_CAST.
	* prefix.c (update_path): Likewise,
	* pretty-print.c (pp_base_destroy_prefix): Likewise,
	* rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX.
	* tree-cfg.c (tree_can_merge_blocks_p,
	tree_block_ends_with_condjump_p): Use CONST_CAST_BB.
	* tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE.
	* tree.c (build_string): Supply a TYPE for CONST_CAST.
	(attribute_list_contained): Use CONST_CAST_TREE.

2007-09-03  Krister Walfridsson  <cato@df.lth.se>

	* config/netbsd-elf.h (USE_LD_AS_NEEDED): Define.

2007-09-03  Richard Sandiford  <richard@codesourcery.com>

	PR middle-end/33290
	* optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs
	before forcing them into a register.

2007-09-03  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.md (fetchop_bit): Use define_code_iterator
	rather than define_code_macro.

2007-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* gcc.c (xputenv): New function.
	(putenv_from_prefixes): Use xputenv instead of putenv.
	(process_command): Use xputenv instead of putenv.
	(set_collect_gcc_options): Use xputenv instead of putenv.
	(main): Use xputenv instead of putenv.

2007-09-03  Jesper Nilsson  <jesper.nilsson@axis.com>

	* config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe
	availability of swap instruction.
	* config/cris/cris.md (bswapsi2): Implement using swap instruction.

2007-09-03  Revital Eres  <eres@il.ibm.com>

	* doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update
	Documentation.

2007-09-03  Vladimir Yanovsky  <yanov@il.ibm.com>
	    Ayal Zaks  <zaks@il.ibm.com>
	    Revital Eres  <eres@il.ibm.com>

	* modulo-sched.c (ps_insert_empty_row, verify_partial_schedule,
	compute_split_row): New functions.
	(ps_unschedule_node): Remove.
	(normalize_sched_times): Iterate over the already scheduled
	insns instead of the number of nodes.
	(MAX_SPLIT_NUM): New definition.
	(sms_schedule_by_order): Change the scheduling heuristic to
	avoid useless increases of initiation interval ii.
	(get_sched_window): Add dump printouts.

2007-09-02  David Daney  <ddaney@avtrex.com>

	* config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP,
	UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants.
	(optab, insn): Add more attributes.
	(fetchop_bit): New code macro.
	(immediate_insn): New code macro attribute.
	(sync): Change condition to ISA_HAS_SYNC.
	(rdhwr): Change predicate for operand 0 to register_operand.
	(memory_barrier): New expand.
	(sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
	sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
	sync_new_sub<mode>, sync_<optab><mode>,	sync_old_<optab><mode>,
	sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
	sync_new_nand<mode>, sync_lock_test_and_set<mode>): New insns.
	* config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates.
	(MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
	MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
	MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros.
	
2007-09-03  Jesper Nilsson  <jesper.nilsson@axis.com>
	    Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO):
	Defined to describe availability and behavior of CLZ.
	* config/cris/cris.md (clzsi2): Implement using lz instruction.
	* config/cris/cris.opt: Tweak comment for "-metrax4".
	* config/cris/arit.c (LZ): When defined, define as __builtin_clz.
	* longlong.h [__CRIS__ && __CRIS_arch_version >= 3]
	(count_leading_zeros): Define.

2007-09-01  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* ggc-page.c (ggc_pch_read): Call validate_free_objects.

2007-09-02  Joseph Myers  <joseph@codesourcery.com>

	PR c/29237
	PR middle-end/33272
	* c-decl.c (grokdeclarator): Apply qualifiers to type of parameter
	decayed from array.

2007-09-01  Kazu Hirata  <kazu@codesourcery.com>

	* config/arm/arm.c, config/rs6000/ppu_intrinsics.h,
	config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c,
	ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c,
	sched-deps.c, sched-int.h, system.h, target.h,
	tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c,
	tree.def: Fix comment typos.

2007-09-01  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove.
	(override_options): Turn on -mstrict-align on non-ColdFire
	targets.
	* config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment.

2007-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-common.c (const_strip_array_types): Delete.
	* c-common.h (const_strip_array_types): Likewise.
	* emit-rtl.c (const_next_insn, const_previous_insn,
	const_next_nonnote_insn, const_prev_nonnote_insn,
	const_next_real_insn, const_prev_real_insn,
	const_next_active_insn, const_prev_active_insn, const_next_label,
	const_prev_label): Delete.
	* gimple-low.c (block_may_fallthru): Use expr_last.
	* jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn.
	* rtl.h (const_previous_insn, const_next_insn,
	const_prev_nonnote_insn, const_next_nonnote_insn,
	const_prev_real_insn, const_next_real_insn,
	const_prev_active_insn, const_next_active_insn, const_prev_label,
	const_next_label): Delete.
	* rtlanal.c (keep_with_call_p): Use next_nonnote_insn.
	* system.h (CONST_CAST): Update comment.
	* tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt.
	(const_first_stmt, const_last_stmt): Delete.
	(tree_block_ends_with_condjump_p): Use last_stmt.
	* tree-flow.h (const_first_stmt, const_last_stmt): Delete.
	* tree-iterator.c (const_expr_first, const_expr_last,
	const_expr_only): Delete.
	* tree.c (const_lookup_attribute): Likewise.
	(attribute_list_contained): Use lookup_attribute.
	* tree.h (const_lookup_attribute, const_expr_first,
	const_expr_last, const_expr_only): Delete.

2007-09-01  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE
	instead of TREE_THIS_VOLATILE.
	* tree-ssa-operands.c (add_virtual_operand): Do not set
	has_volatile_ops.  Do not check s_ann for NULL.
	(get_indirect_ref_operands): Likewise.
	(get_expr_operands): Likewise.  For all reference trees
	set has_volatile_ops based on TREE_THIS_VOLATILE.  Also
	check base of reference for TREE_THIS_VOLATILE.

2007-09-01  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_expr): Fix check for conversions
	between integral types.  Also allow conversions between
	pointer types.

2007-08-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* optabs.c (prepare_float_lib_cmp): Use
	libgcc_cmp_return_mode instead of word_mode.
	* config/dfp-bit.h: Likewise.
	* config/fp-bit.h: Likewise.
	* config/spu/spu.c (spu_libgcc_cmp_return_mode):
	New function.
	(spu_libgcc_shift_count_mode): New function.
	(TARGET_LIBGCC_CMP_RETURN_MODE): Define.
	(TARGET_LIBGCC_SHIFT_COUNT_MODE): Define.

2007-08-31  Joseph Myers  <joseph@codesourcery.com>

	* tree-pretty-print.c: Include output.h.
	(dump_decl_name, dump_generic_node): Use %wd with pp_printf, not
	HOST_WIDE_INT_PRINT_DEC.
	* Makefile.in (tree-pretty-print.o): Add dependency on output.h.

2007-08-31  Zdenek Dvorak  <ook@ucw.cz>

	PR rtl-optimization/33224
	* loop-iv.c (latch_dominating_def): Check that the definition belongs
	to the analysed region.

2007-08-31  Richard Guenther  <rguenther@suse.de>

	* function.c (allocate_struct_function): Do not set
	current_function_returns_pointer.
	* function.h (struct var_refs_queue): Remove.
	(struct simple_obstack_stack): Likewise.
	(struct function): Remove fixup_var_refs_queue member.
	Remove returns_pointer flag.
	(current_function_returns_pointer): Remove define.

2007-08-31  Nick Clifton  <nickc@redhat.com>

	* tree-ssa-coalesce.c (compare_pairs): Use the elements as
	secondary keys in order to obtain a stable sort.

2007-08-31  Nick Clifton  <nickc@redhat.com>

	PR target/33132
	* config/m32r/constraints.md: Add W constraint for integer zero.
	* config/m32r/m32r.md (get_pc): Use W and i constraints.
	Fix length calculation by using alternatives.

2007-08-31  Richard Sandiford  <richard@codesourcery.com>

	* optabs.c (shift_optab_p, commutative_optab_p): New functions,
	split out from expand_binop.
	(avoid_expensive_constant): New function.
	(expand_binop_directly): Remove commutative_op argument and
	(expand_binop_directly): Remove commutative_op argument and
	call cummutative_optab_p instead.  Do not change op0 or op1
	when swapping xop0 and xop1.  Apply avoid_expensive_constant
	to each argument after potential swapping.  Enforce the
	canonical order of commutative operands.
	(expand_binop): Use shift_optab_p and commutative_optab_p.
	Update the calls to expand_binop_directly.  Only force constants
	into registers when widening an operation.  Only swap operands
	once a direct expansion has been rejected.
	(expand_twoval_binop): Only force constants into registers when
	using a direct expansion.

2007-08-31  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED.
	(sched_analyze_insn): Don't postprocess speculative dependencies when
	target has no scheduling.
	* tree-vect-transform.c (vect_estimate_min_profitable_iters): Fix
	'uninitialized' warning.

2007-08-31  Richard Guenther  <rguenther@suse.de>

	* tree.c (build_complex_type): Always set TYPE_NAME for
	comples types.

2007-08-31  Olivier Hainque  <hainque@adacore.com>

	* config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New
	internal macro. Default alignment factor for csect directives, chosen
	to match what BIGGEST_ALIGNMENT allows.
	(DATA_SECTION_ASM_OP): Use it.
	* config/rs6000/rs6000.c
	(rs6000_xcoff_output_readonly_section_asm_op):
	Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR.
	(rs6000_xcoff_output_readwrite_section_asm_op): Likewise.
	
2007-08-31  Olivier Hainque  <hainque@adacore.com>

	* dbxout.c (dbxout_block): Move declaration within the first
	#if defined (DBX_DEBUGGING_INFO) block.  Rearrange another such
	block to include the definition, together with the associated
	helpers.

2007-08-31  David Edelsohn  <edelsohn@gnu.org>
	    Revital Eres  <eres@il.ibm.com>

	* doc/invoke.texi (-mpaired): Document flag.
	* config.gcc: Include paired.h in powerpc extra_headers and
	750cl.h in powerpc-*-linux*paired*.
	* config/rs6000/rs6000.opt (-mpaired): New flag.
	* config/rs6000/rs6000.c (paired_init_builtins,
	paired_expand_builtin, paired_expand_lv_builtin,
	paired_expand_stv_builtin, paired_expand_predicate_builtin):
	New functions to support the paired single builtin functions.
	(rs6000_hard_regno_mode_ok): Handle PAIRED_VECTOR_MODE.
	(def_builtin, bdesc_3arg, bdesc_2arg, bdesc_1arg): Add paired
	single builtins.
	(bdesc_paired_preds): New structure for paired predicate
	instructions.
	(rs6000_expand_builtin): Expand paired single builtins.
	(rs6000_init_builtins): Init paired single builtins.
	(rs6000_common_init_builtins): Add v2sf_ftype_v2sf_v2sf_v2sf.
	Rename v2sf_ftype_v2sf_v2sf to v2sf_ftype_v2sf_v2sf_spe
	and v2sf_ftype_v2sf_spe to v2sf_ftype_v2sf.  Add new types
	v2sf_ftype_v2sf_v2sf and v2sf_ftype_v2sf.
	(rs6000_vector_mode_supported_p): Support paired vector mode.
	* config/rs6000/rs6000.h: (UNITS_PER_PAIRED_WORD,
	PAIRED_VECTOR_MODE, PAIRED_SIMD_REGNO_P, TARGET_PAIRED_FLOAT):
	New.
	(LOCAL_ALIGNMENT): Handle PAIRED_VECTOR_MODE.
	(DATA_ALIGNMENT): Likewise.
	(UNITS_PER_SIMD_WORD): Handle PAIRED_VECTOR_MODE.
	(rs6000_builtins): Add PAIRED builtins.
	* config/rs6000/rs6000.md: Include paired.md.
	* config/rs6000/paired.h: New.
	* config/rs6000/paired.md: New.
	* config/rs6000/750cl.h: New.
	* config/rs6000/spe.md: Recognize movv2sf instruction for 750cl.

2007-08-30  Ollie Wild  <aaw@google.com>

	* c-opts.c (c_common_handle_option): Support -fno-directives-only.
	* gcc.c (default_compilers): Add -fno-directives-only to
	@assembler-with-cpp.

2007-08-30  Sandra Loosemore  <sandra@codesourcery.com>

	PR middle-end/33211

	* regclass.c (initial_fixed_regs): Revert previous change and make
	it const again.
	(initial_call_used_regs): Likewise.
	(initial_call_really_used_regs): Delete, reverting previous addition.
	(initial_reg_names): Likewise.
	(init_reg_sets): Revert previous change.
	(saved_fixed_regs): New.
	(saved_call_used_regs): New.
	(saved_call_really_used_regs): New.
	(saved_reg_names): New.
	(save_register_info): New.
	(restore_register_info): New.
	(init_reg_sets_1): Replace reset of register info with call to
	restore_register_info.
	* rtl.h (save_register_info): Declare.
	* toplev.c (backend_init): Call save_register_info.

2007-08-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* tree-ssa-propagate.c (set_rhs): Remove the copied annotation
	from the original statement.

2007-08-30  Chao-ying Fu  <fu@mips.com>

	* c-lex.c (interpret_fixed): Declare.
	(interpret_float): Process _Fract and _Accum.
	(interpret_fixed): New function.
	* final.c (output_addr_const): Process CONST_FIXED.
	* simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG.
	(simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT,
	SS_DIV, US_DIV.
	(simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV,
	US_DIV, US_ASHIFT.
	(simplify_immed_subreg): Support CONST_FIXED.
	Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
	(simplify_subreg): Support CONST_FIXED.

2007-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/rs6000/ppu_intrinsics.h: New file.
	* config.gcc (powerpc*-*-* <extra_headers>): Install
	ppu_intrinsics.h.

2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>

	* cfg.c (dump_flow_info): Change to also print entry and exit
	block info.
	* print-rtl.c (print_rtl_single): Allow to print rtl with
	-fdump-unnumbered.
	
2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-core.h (df_dump_region): New function.
	* df.h (df_dump_region): New function.
	* loop-invariant.c (find_defs): Add call to df_dump_region.
	* loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to
	df_dump_region.
	
2007-08-30  Jakub Jelinek  <jakub@redhat.com>

	PR target/33168
	* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return
	true if any of the compare_section_name calls returned true,
	rather than if any returned false.

2007-08-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33199
	* tree-ssa-structalias.c (handle_lhs_call): New function.
	(find_func_aliases): In non-IPA mode make sure that for
	calls that return a pointer we add a constraint for the
	result to point to anything.

2007-08-30  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi (-mveclibabi): Document new target option.
	* config/i386/i386.opt (-mveclibabi): New target option.
	* config/i386/i386.c (ix86_veclib_handler): Handler for
	vectorization library support.
	(override_options): Handle the -mveclibabi option, initialize
	the vectorization library handler.
	(ix86_builtin_vectorized_function): As fallback call the
	vectorization library handler, if set.
	(ix86_veclibabi_acml): New static function for ACML ABI style
	vectorization support.

2007-08-30  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000.c (rs6000_emit_sync): For QI or HI mode
	used_m, even if it is 32-bit aligned, adjust used_m MEM to have
	SImode and update m.  Don't run gen_lowpart_common on arbitrary
	memory address, force it to register first.

	PR middle-end/32758
	* dce.c (dce_process_block): Don't delete setters of
	artificially used registers.

2007-08-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/s390/s390.md ("*add<mode>3_alc_carry1_cc",
	"*add<mode>3_alc_carry1_cconly", "*add<mode>3_alc_carry2_cc",
	"*add<mode>3_alc_carry2_cconly"): New insn definitions.

2007-08-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/s390/s390.c (s390_expand_addcc): Emit canonical alc
	pattern.
	* config/s390/s390.md ("*add<mode>3_alc_cc", "*add<mode>3_alc",
	"addti3", "*adddi3_31z", "*scond<mode>"): Make alc pattern canonical.

2007-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* system.h: Activate -Wcast-qual as warning-only.

2007-08-29  Paolo Bonzini  <bonzini@gnu.org>

	PR target/33168
	* config/rs6000/rs6000.c (compare_section_name): New function.
	(rs6000_elf_in_small_data_p): Compare section prefixes instead
	of full name.

2007-08-29  Olivier Hainque  <hainque@adacore.com>

	* xcoffout.c: #include debug.h.
	* Makefile.in (xcoffout.o): Add debug.h dependency.

2007-08-29  Uros Bizjak  <ubizjak@gmail.com>

	* simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
	Change CONST_VECTOR_ELT to XVECEXP in elem calculation.

2007-08-29  Richard Guenther  <rguenther@suse.de>

	* tree-pretty-print.c (dump_generic_node): Print
	label DECL_UID as D.%u.
	* tree-dfa.c (dump_variable): Print DECL_UID as D.%u.

2007-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
	* builtins.def (BUILT_IN_REALLOC): New builtin.

2007-08-29  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/33194
	* tree.c (build_type_attribute_qual_variant): Set canonical types
	on the final, unqualified attribute variant before building the
	qualified version.

2007-08-29  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
	order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.

2007-08-29  Jie Zhang  <jie.zhang@analog.com>

	Revert
	2007-08-29  Jie Zhang  <jie.zhang@analog.com>
	* config/bfin/bfin.md (composev2hi): Put operands into vector
	with correct order.

2007-08-29  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/bfin.md (composev2hi): Put operands into vector
	with correct order.

2007-08-29  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text
	attribute when appropriate.
	(bfin_handle_l1_text_attribute): New.
	(bfin_handle_l1_data_attribute): New.
	(bfin_attribute_table): Add attributes: l1_text, l1_data,
	l1_data_A and l1_data_B.
	* doc/extend.texi (node Function Attributes): Document l1_text
	function attribute.
	(Variable Attributes): Add Blackfin subsection. Document l1_data,
	l1_data_A and l1_data_B variable attributes.

2007-08-28  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/bfin.opt (minline-plt): Add.
	* config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit
	call to global functions.
	* doc/invoke.texi (Option Summary): Mention -minline-plt.
	(Blackfin Options): Document -minline-plt.

2007-08-28  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/m68k.c (m68k_get_function_kind): Assert we're never
	given a non-function.
	(m68k_ok_for_sibcall_p): Only sibcall functions of the same kind.

2007-08-28  DJ Delorie  <dj@redhat.com>

	* config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support.

2007-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* system.h (CONST_CAST): Avoid union for gcc-4.0.x.

2007-08-28  Richard Guenther  <rguenther@suse.de>

	* tree.h (struct tree_function_decl): Increase size of
	function_code bitfield.

2007-08-28  Nathan Sidwell  <nathan@codesourcery.com>
	    Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/linux.h
	(M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0.
	* config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New.
	(m68k_return_in_memory): New.
	* config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT):
	New.

2007-08-28  Uros Bizjak  <ubizjak@gmail.com>

	PR target/32661
	* simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
	Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as
	operand) when top VEC_SELECT extracts scalar element.
	* config/i386/sse.md (*vec_extract_v4si_mem): New pattern.
	(*vec_extract_v4sf_mem): Ditto.

2007-08-28  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/32370
	* passes.c (init_optimization_passes): Move pass_df_finish
	after pass_postreload sublist.

	PR rtl-optimization/33148
	* simplify-rtx.c (simplify_unary_operation_1): Only optimize
	(neg (lt X 0)) if X has scalar int mode.

	PR debug/32914
	* dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR
	initializer, use build_vector_from_ctor if possible to create
	VECTOR_CST out of it.  If vector initializer is not VECTOR_CST
	even after this, return NULL.

2007-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST.

2007-08-28  Richard Guenther  <rguenther@suse.de>

	* tree.h (DECL_DISREGARD_INLINE_LIMITS): New.
	(struct tree_function_decl): Make function_code a bitfield.
	Add disregard_inline_limits flag.
	* cgraphunit.c (cgraph_process_new_functions): Check
	DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p.
	(cgraph_preserve_function_body_p): Likewise.
	* ipa-inline.c (compute_inline_parameters): Likewise.
	* c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS
	for GNU C extern inline functions.
	(merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS.
	* tree-inline.c (disregard_inline_limits_p): Remove.
	* tree-inline.h (disregard_inline_limits_p): Likewise.
	* c-common.c (handle_always_inline_attribute): Set
	DECL_DISREGARD_INLINE_LIMITS.
	* langhooks.c (add_builtin_function): Verify the function code
	fits in the bitfield.

2007-08-28  Mircea Namolaru  <namolaru@il.ibm.com>
	    Vladimir Yanovsky  <yanov@il.ibm.com>
	    Revital Eres  <eres@il.ibm.com>
	    Andrey Belevantsev  <abel@ispras.ru>

	* config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched
	is set.
	* modulo-sched.c: Add documentation regarding do-loop.
	(doloop_register_get): Change number of arguments to support
	the new do-loop pattern and check whether COUNT_REG has no other
	occurences in the loop besides in the control part.
	(duplicate_insns_of_cycles): Do not duplicate the insn which
	changes count_reg as it is already adjusted.
	(generate_prolog_epilog): New argument to support the new
	do-loop pattern.  Change the subtract instruction to use
	expand_simple_binop.  Call duplicate_insns_of_cycles with new
	argument.
	(sms_schedule): Call doloop_register_get and
	generate_prolog_epilog with new argument.  Do not handle loops
	with single sets insns with subreg in their lhs.
	* loop-doloop.c (doloop_optimize): Support for another do-loop
	pattern.
	(doloop_condition_get): Gets an instruction instead of a pattern
	and change the return condition when the do-loop pattern is
	not parallel.
	* ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg
	deps when considering to not create edges.

2007-08-27  Alexandre Oliva  <aoliva@redhat.com>

	* doc/extend.texi (gnu_inline funtion attribute): Document C++
	behavior.

2007-08-27  Jason Merrill  <jason@redhat.com>

	PR c++/31337
	* gimplify.c (gimplify_modify_expr): Discard the assignment of 
	zero-sized types after calling gimplify_modify_expr_rhs.

2007-08-27  Sandra Loosemore  <sandra@codesourcery.com>

	* regclass.c (init_reg_autoinc): Fix typo.

2007-08-27  Daniel Berlin  <dberlin@dberlin.org>
	
	Fix PR tree-optimization/33173
	* tree-ssa-alias.c (find_used_portions): Fix reversed test.

2007-08-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/31385
	* config/i386/i386.h (VALID_DFP_MODE_P): New.
	* config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in
	GPR.

2007-08-27  Sandra Loosemore  <sandra@codesourcery.com>
	    David Ung  <davidu@mips.com>
	    Nigel Stephens <nigel@mips.com>

	Separate target-specific initialization from general
	back-end initialization.

	* toplev.c (init_alignments): New, split out from...
	(process_options): ...here.
	(backend_init_target): New, split out from...
	(backend_init): ...here.
	(lang_dependent_init_target): New, split out from...
	(lang_dependent_init): ...here.
	(target_reinit): New.
	* toplev.h (target_reinit): Declare.
	* expr.c (init_expr_target): Renamed from init_expr_once, since it
	now can be called more than once.  Update comments.
	* expr.h (init_expr_target): Likewise.
	* alias.c (init_alias_target): Renamed from init_alias_once, since it
	now can be called more than once.  Explicitly zero
	static_reg_base_value.
	* emit-rtl.c (init_emit_regs): New, split out from...
	(init_emit_once): Here.
	* regclass.c (initial_fixed_regs, initial_call_used_regs): Make
	non-const, so that changes from command-line arguments can overwrite
	values provided by the static initializers.
	(initial_call_really_used_regs): New, used similarly to the above.
	(initial_reg_names): Likewise.
	(last_mode_for_init_move_cost): Promoted function-local static to
	file-scope static to make it accessible outside init_move_cost.
	(init_reg_sets): Do not initialize fixed_regs and call_used_regs yet.
	Do not initialize inv_reg_alloc_order yet, either.  Do initialize
	reg_names since it is needed for parsing command-line options.
	(init_move_cost): Use last_mode_for_init_move_cost instead of
	function-local static.
	(init_reg_sets_1): Initialize fixed_regs, call_used_regs, and
	call_really_used_regs now.  Reinitialize reg_names.  Also
	initialize inv_reg_alloc_order.  Zero reg_class_subunion and
	reg_class_superunion.  Clear losing_caller_save_reg_set.
	Preserve global registers if called more than once.  Reset
	move cost, may_move_in_cost, may_move_out_cost, and
	last_mode_for_init_move_cost.
	(init_reg_modes_target): Renamed from init_reg_modes_once, since it
	can now be invoked more than once.  Update comments.
	(init_regs): Update comments.
	(fix_register): Update initial_fixed_regs, initial_call_used_regs,
	and initial_call_really_used_regs, instead of the non-initial 
	variables.  This allows us to save the command-line register settings
	after target reinitialization.
	(init_reg_autoinc): Zero forbidden_inc_dec_classes.
	* rtl.h (init_emit_regs): Declare.
	(init_reg_modes_target, init_alias_target): Renamed as described
	above.
	* reload1.c (init_reload): Update comments.
	* optabs.c (init_optabs): Likewise.
	* cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs.
	
2007-08-26  Chao-ying Fu  <fu@mips.com>

	* rtl.h (XCNMPFV): Preserve const-ness of parameters through use of
	__typeof().

2007-08-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alias.c (memory_modified_1, memory_modified_in_insn_p):
	Constify.
	* basic-block.h (tree_predicted_by_p, rtl_predicted_by_p):
	Likewise.
	* bb-reorder.c (copy_bb_p): Likewise.
	* cfghooks.c (can_remove_branch_p, can_merge_blocks_p,
	predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
	block_ends_with_condjump_p): Likewise.
	* cfghooks.h (can_remove_branch_p, can_merge_blocks_p,
	predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
	block_ends_with_condjump_p): Likewise.
	* cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
	* cfgrtl.c (can_delete_note_p, can_delete_label_p,
	rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p,
	rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p,
	need_fake_edge_p, rtl_can_remove_branch_p): Likewise.
	* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use
	debug_true_const_tree instad of debug_true_tree.
	* debug.c (do_nothing_debug_hooks): Likewise.
	* debug.h (ignore_block, debug_true_const_tree): Constify.
	* dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save,
	dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type,
	decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc,
	same_dw_val_p, add_ranges, is_subrange_type, type_is_enum,
	dbx_reg_number, is_based_loc, field_type,
	simple_type_align_in_bits, simple_decl_align_in_bits,
	simple_type_size_in_bits, field_byte_offset, insert_float,
	type_tag, member_declared_type, is_redundant_typedef,
	secname_for_decl, is_inlined_entry_point): Likewise.
	* emit-rtl.c (const_next_insn, const_previous_insn,
	const_next_nonnote_insn, const_prev_nonnote_insn,
	const_next_real_insn, const_prev_real_insn,
	const_next_active_insn, const_prev_active_insn, const_next_label,
	const_prev_label): Likewise.
	* except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region):
	Likewise.
	* haifa-sched.c (may_trap_exp, haifa_classify_insn,
	find_set_reg_weight, no_real_insns_p, find_set_reg_weight,
	sched_insn_is_legitimate_for_speculation_p): Likewise.
	* jump.c (reversed_comparison_code_parts,
	reversed_comparison_code, reversed_comparison, condjump_label):
	Likewise.
	* predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise.
	* reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned):
	Likewise.
	* rtl.h (const_previous_insn, const_next_insn,
	const_prev_nonnote_insn, const_next_nonnote_insn,
	const_prev_real_insn, const_next_real_insn,
	const_prev_active_insn, const_next_active_insn, const_prev_label,
	const_next_label, modified_between_p, modified_in_p,
	const_note_storeskeep_with_call_p, condjump_label,
	reversed_comparison, reversed_comparison_code,
	reversed_comparison_code_parts, memory_modified_in_insn_p,
	stack_regs_mentioned): Likewise.
	* rtlanal.c (modified_between_p, modified_in_p, const_note_stores,
	keep_with_call_p): Likewise.
	* sched-deps.c (deps_may_trap_p, sched_get_condition,
	conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list,
	sd_lists_size, sd_lists_empty_p): Likewise.
	* sched-int.h (sched_insns_conditions_mutex_p,
	haifa_classify_insn, no_real_insns_p,
	sched_insn_is_legitimate_for_speculation_p, sd_next_list,
	sd_lists_size, sd_lists_empty_p): Likewise.
	* sdbout.c (sdb_debug_hooks): Likewise.
	* tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt,
	stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p,
	-tree_block_ends_with_call_p, tree_block_ends_with_condjump_p):
	Likewise.
	* tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region,
	tree_can_throw_internal): Likewise.
	* tree-flow-inline.h (phi_nodes): Likewise.
	* tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt,
	tree_can_throw_internal, lookup_stmt_eh_region): Likewise.
	* tree-gimple.c (const_get_call_expr_in): Likewise.
	* tree-gimple.h (const_get_call_expr_in): Likewise.
	* tree.c (const_lookup_attribute, attribute_list_equal,
	attribute_list_contained): Likewise.
	* tree.h (attribute_list_equal, attribute_list_contained,
	const_lookup_attribute): Likewise.
	* vmsdbgout.c (vmsdbgout_ignore_block): Likewise.

2007-08-26  Bernhard Fischer  <aldot@gcc.gnu.org>

	* tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c,
	tree-ssa-pre.c: Remove unnecessary trailing whitespace.

2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/32991
	* config/alpha/constraints.md: Delete "svn:mime-type" property
	with svn propdel "svn:mime-type".

2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/33181
	* ifcvt.c (noce_get_alt_condition): Make sure that the previous
	non NOTE insn doesn't cross basic block.
	(noce_try_abs): Likewise.
	(noce_process_if_block): Likewise.

2007-08-26  David Edelsohn  <edelsohn@gnu.org>

	PR target/33151
	* config/rs6000/predicates.md (offsettable_mem_operand): Memory
	operand without auto-inc-dec.
	* config/rs6000/rs6000.md (floatsidf2_internal): Use
	offsettable_mem_operand.
	(floatunssidf2_internal): Same.
	(fix_truncdfsi2_internal): Same.
	(floatsidf_ppc64): Same.
	(floatunssidf_ppc64): Same.
	(fix_trunctfsi2_internal): Same.

2007-08-26  Bernhard Fischer  <aldot@gcc.gnu.org>

	PR bootstrap/30620
	* Makefile.in (libbackend.o): Add gcov-iov.h dependency and
	pass defines needed for version.c.

2007-08-25  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (--debug-prefix-map check): Change assembler
	version presumed to have feature to 2.18.
	* configure: Regenerate.

2007-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-common.c (vector_types_convertible_p,
	decl_with_nonnull_addr_p, c_promoting_integer_type_p,
	self_promoting_args_p): Constify.
	* c-common.h (has_c_linkage, decl_with_nonnull_addr_p,
	c_promoting_integer_type_p, self_promoting_args_p,
	anon_aggr_type_p, vector_types_convertible_p): Likewise.
	* c-decl.c (anon_aggr_type_p): Likewise.
	* * c-dump.c (dump_stmt): Likewise.
	* c-objc-common.c (has_c_linkage): Likewise.
	* c-tree.h (same_translation_unit_p): Likewise.
	* c-typeck.c (null_pointer_constant_p,
	tagged_types_tu_compatible_p, function_types_compatible_p,
	type_lists_compatible_p, lvalue_or_else, lvalue_p,
	comptypes_internal, struct tagged_tu_seen_cache,
	same_translation_unit_p, alloc_tagged_tu_seen_cache,
	c_size_in_bytes): Likewise.
	* ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor,
	hash_ptr, eq_ptr): Likewise.
	* langhooks-def.h (lhd_decl_ok_for_sibcall,
	LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise.
	* langhooks.c (lhd_decl_ok_for_sibcall): Likewise.
	* langhooks.h (ok_for_sibcall, omp_privatize_by_reference):
	Likewise.
	* optabs.c (optab_for_tree_code): Likewise.
	* optabs.h (optab_for_tree_code): Likewise.
	* rtl.h (simplify_rtx): Likewise.
	* simplify-rtx.c (simplify_rtx): Likewise.
	* tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type,
	dump_flag, dump_node): Likewise.
	* tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index,
	queue_and_dump_type, dump_flag): Likewise.
	* tree-flow.h (vect_can_force_dr_alignment_p): Likewise.
	* tree-pass.h (dump_node): Likewise.
	* tree-vectorizer.c (vect_can_force_dr_alignment_p,
	supportable_narrowing_operation): Likewise.
	* tree-vectorizer.h (vect_can_force_dr_alignment_p,
	supportable_narrowing_operation): Likewise.
	* tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity,
	is_negative_overflow_infinity, is_positive_overflow_infinity,
	is_overflow_infinity, vrp_val_is_max, vrp_val_is_min,
	nonnull_arg_p, get_value_range, vrp_operand_equal_p,
	update_value_range, add_equivalence, ssa_name_nonnegative_p,
	ssa_name_nonzero_p, fp_predicate): Likewise.
	* tree.c (auto_var_in_fn_p, empty_body_p): Likewise.
	* tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p,
	ssa_name_nonnegative_p): Likewise.

2007-08-25  Hans Kester  <hans.kester@ellips.nl>

	* config.gcc : Add x86_64-elf target.

2007-08-25  Jakub Jelinek  <jakub@redhat.com>

	* expr.c (store_expr): Fix order of store_by_pieces arguments.

2007-08-24  Sandra Loosemore  <sandra@codesourcery.com>
	    Nigel Stephens <nigel@mips.com>

	PR target/11787

	* doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros.
	(STORE_BY_PIECES_P): No longer applies to __builtin_memset.
	* expr.c (SET_BY_PIECES_P): Define.
	(can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use
	it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P.
	(store_expr): Pass MEMSETP argument to can_store_by_pieces and
	store_by_pieces.
	* expr.h (SET_RATIO): Define.
	(can_store_by_pieces, store_by_pieces):	Update prototypes.
	* builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to
	can_store_by_pieces/store_by_pieces.
	(expand_builtin_memcpy_args): Likewise.
	(expand_builtin_strncpy): Likewise.
	(expand_builtin_memset_args): Likewise.  Also remove special case
	for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can
	decide what to do instead.
	* value-prof.c (tree_stringops_transform): Pass MEMSETP argument
	to can_store_by_pieces.

	* config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P.
	* config/s390/s390.h (SET_BY_PIECES_P): Likewise.

	* config/mips/mips.opt (mmemcpy): Change from Var to Mask.
	* config/mips/mips.c (override_options): Make -Os default to -mmemcpy.
	* config/mips/mips.h (MIPS_CALL_RATIO): Define.
	(MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define.
	(STORE_BY_PIECES_P): Define.

2007-08-24  Tom Tromey  <tromey@redhat.com>

	* varpool.c (varpool_last_needed_node): Fix comment typo.
	* c-decl.c (duplicate_decls): Fix comment typo.
	(clone_underlying_type): Update comment.

2007-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp,
	alpha_in_small_data_p, alpha_split_complex_arg,
	alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
	Constify.
	* config/arm/arm-protos.h (arm_mangle_type): Likewise.
	* config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
	Likewise.
	* config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
	TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
	* config/darwin-protos.h (darwin_binds_local_p): Likewise.
	* config/darwin.c (darwin_binds_local_p): Likewise.
	* config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
	Likewise.
	* config/i386/i386-protos.h (i386_pe_binds_local_p,
	i386_pe_valid_dllimport_attribute_p): Likewise.
	* config/i386/i386.c (ix86_function_regparm,
	ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
	x86_can_output_mi_thunk, ix86_mangle_type,
	TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
	* config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
	i386_pe_binds_local_p): Likewise.
	* config/ia64/ia64.c
	(ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
	ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
	ia64_invalid_conversion, ia64_invalid_unary_op,
	ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
	Likewise.
	* config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
	* config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
	* config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
	* config/mips/mips.c (mips_use_blocks_for_constant_p,
	mips_in_small_data_p, mips_use_anchors_for_symbol_p,
	mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
	mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
	mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
	* config/pa/pa.c (pa_commutative_p): Likewise.
	* config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
	Likewise.
	* config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
	rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
	rs6000_use_blocks_for_constant_p,
	rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
	invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
	TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
	* config/s390/s390.c (s390_mangle_type,
	TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
	Likewise.
	* config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
	th_in_small_data_p): Likewise.
	* config/sh/sh.c (sh_ms_bitfield_layout_p,
	sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
	Likewise.
	* config/sparc/sparc.c (sparc_can_output_mi_thunk,
	sparc_mangle_type): Likewise.
	* config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
	* config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
	* emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
	Likewise.
	* hooks.c (hook_bool_mode_const_rtx_false,
	hook_bool_mode_const_rtx_true,
	hook_bool_const_tree_hwi_hwi_const_tree_false,
	hook_bool_const_tree_hwi_hwi_const_tree_true,
	hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
	hook_constcharptr_const_tree_null,
	hook_constcharptr_const_rtx_null,
	hook_constcharptr_const_tree_const_tree_null,
	hook_constcharptr_int_const_tree_null,
	hook_constcharptr_int_const_tree_const_tree_null): New.
	(hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
	hook_bool_tree_hwi_hwi_tree_false,
	hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
	hook_int_tree_tree_1, hook_constcharptr_tree_null,
	hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
	hook_constcharptr_int_tree_null,
	hook_constcharptr_int_tree_tree_null): Delete.
	(default_can_output_mi_thunk_no_vcall): Constify.
	* hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
	hook_bool_tree_hwi_hwi_tree_false,
	hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
	hook_int_tree_tree_1, hook_constcharptr_tree_null,
	hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
	hook_constcharptr_int_tree_null,
	hook_constcharptr_int_tree_tree_null): Delete.
	(hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
	hook_bool_const_tree_hwi_hwi_const_tree_false,
	hook_bool_const_tree_hwi_hwi_const_tree_true,
	hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
	hook_constcharptr_const_tree_null,
	hook_constcharptr_const_rtx_null,
	hook_constcharptr_const_tree_const_tree_null,
	hook_constcharptr_int_const_tree_null,
	hook_constcharptr_int_const_tree_const_tree_null): New.
	(default_can_output_mi_thunk_no_vcall): Constify.
	* integrate.c (function_attribute_inlinable_p): Likewise.
	* integrate.h (function_attribute_inlinable_p): Likewise.
	* jump.c (rtx_renumbered_equal_p): Likewise.
	* output.h (decl_readonly_section, categorize_decl_for_section,
	default_use_anchors_for_symbol_p, default_binds_local_p,
	default_binds_local_p_1): Likewise.
	* rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
	Likewise.
	* target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
	TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
	TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
	TARGET_COMP_TYPE_ATTRIBUTES,
	TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
	TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
	TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
	TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
	TARGET_DWARF_CALLING_CONVENTION): Likewise.
	* target.h (can_output_mi_thunk, needs_block_p,
	first_cycle_multipass_dfa_lookahead_guard_spec,
	vector_alignment_reachable, comp_type_attributes,
	function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
	commutative_p, use_blocks_for_constant_p,
	use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
	vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
	invalid_within_doloop, valid_dllimport_attribute_p,
	split_complex_arg, invalid_arg_for_unprototyped_fn,
	invalid_conversion, invalid_unary_op, invalid_binary_op):
	Likewise.
	* targhooks.c (default_invalid_within_doloop,
	hook_invalid_arg_for_unprototyped_fn,
	default_builtin_vector_alignment_reachable): Likewise.
	(hook_bool_rtx_commutative_p): Delete.
	(hook_bool_const_rtx_commutative_p): New.
	* targhooks.h (default_invalid_within_doloop,
	default_builtin_vector_alignment_reachable,
	hook_invalid_arg_for_unprototyped_fn): Constify.
	(hook_bool_rtx_commutative_p): Delete.
	(hook_bool_const_rtx_commutative_p): New.
	* varasm.c (bss_initializer_p, decl_default_tls_model,
	categorize_decl_for_section, decl_readonly_section,
	default_use_anchors_for_symbol_p, default_binds_local_p,
	default_binds_local_p_1): Constify.

2007-08-24  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
	__NO_BUILTIN if -fno-builtin.

2007-08-24  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/bfin.c (print_operand): Report error instead of
	ICE for wrong operand.

2007-08-24  Michael Matz  <matz@suse.de>

	* Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst).

2007-08-24  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33166
	* tree-ssa.c (useless_type_conversion_p): Split into a
	recursive and a non-recursive part.
	(useless_type_conversion_p_1): New function.
	* tree-ssa-ccp.c (fold_stmt_r): Make sure that the result
	from maybe_fold_offset_to_reference is trivially convertible
	to the desired type before doing the simplification.

2007-08-24  Jakub Jelinek  <jakub@redhat.com>

	* expr.c (store_expr): Optimize initialization of an array
	with STRING_CST.
	* expr.h (builtin_strncpy_read_str): New prototype.
	* builtins.c (builtin_strncpy_read_str): Remove prototype.
	No longer static.

2007-08-24  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/33157
	* ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest
	field when initializing if_info structure.

2007-08-24  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
	dependencies.
	* c-objc-common.c (c_cannot_inline_tree_fn): Remove.
	* langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise.
	* tree-inline.c (inlinable_function_p): Fold in common parts of
	the cannot_inline_tree_fn langhook.
	* langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove.
	(LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise.
	(LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
	cannot_inline_tree_fn langhook.
	* langhooks.h (struct lang_hooks_for_tree_inlining): Remove
	cannot_inline_tree_fn member.

2007-08-24  Richard Guenther  <rguenther@suse.de>

	* expr.c (get_inner_reference): Do computation of bitoffset
	from offset in a way we can detect overflow reliably.

2007-08-24  Jie Zhang  <jie.zhang@analog.com>

	* crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc.

2007-08-24  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/bfin.opt (mfast-fp): Add.
	* config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let
	libbffastfp override libgcc if -mfast-fp.
	* config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
	* doc/invoke.texi (Option Summary): Mention -mfast-fp.
	(Blackfin Options): Document -mfast-fp.

2007-08-24  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/32573
	PR middle-end/32946
	* tree-data-ref.c (initialize_data_dependence_relation): Clear
	DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning.
	(finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it.
	(build_classic_dist_vector): Return false rather than true if
	DDR_ARE_DEPENDENT is non-NULL at the beginning.  Return false
	if either subscript_dependence_tester_1 or build_classic_dist_vector_1
	returned false.  Don't call save_dist_v before calling
	build_classic_dist_vector_1.
	(free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS
	with NULL DDR_ARE_DEPENDENT.  Also free DDR_DIST_VECTS and/or
	DDR_DIR_VECTS vectors.

2007-08-23  Brian Sidebotham  <brian.sidebotham@gmail.com>

	* configure.ac (leb128): Modify sed statement to work with any
	binutils version string.
	* configure: Regenerate

2007-08-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg):
	Wrap in RTX_CODE macro guard.
	* config/arm/pe.c (arm_dllexport_p, arm_dllimport_p,
	arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport,
	arm_mark_dllimport, arm_pe_encode_section_info,
	arm_pe_unique_section): Use ISO-C function declarations.
	* config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION,
	c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE,
	c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored):
	Likewise.
	* config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
	* config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
	defining.
	* config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
	warnings.
	* config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise.
	* config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise.
	(register_move_cost): Use ISO-C function declarations.
	* config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings.
	* config/score/score-protos.h (score_declare_object): Add
	ATTRIBUTE_PRINTF_4.
	* config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
	warnings.
	* final.c (profile_function): Avoid empty if-bodies.
	
	
	* calls.c (must_pass_in_stack_var_size,
	must_pass_in_stack_var_size_or_pad): Constify.
	* config/alpha/alpha-protos.h (function_value): Likewise.
	* config/alpha/alpha.c (alpha_return_in_memory,
	alpha_pass_by_reference, function_value,
	unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
	Likewise.
	* config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference,
	TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
	TARGET_PROMOTE_PROTOTYPES): Likewise.
	* config/arm/arm-protos.h (arm_return_in_memory,
	arm_pad_arg_upward, arm_function_value): Likewise.
	* config/arm/arm.c (arm_pass_by_reference,
	arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack,
	TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
	arm_function_value, arm_return_in_memory, arm_pad_arg_upward):
	Likewise.
	* config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
	* config/avr/avr-protos.h (avr_function_value): Likewise.
	* config/avr/avr.c (avr_return_in_memory,
	gas_output_limited_string, gas_output_ascii, avr_function_value,
	avr_return_in_memory): Likewise.
	* config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise.
	* config/bfin/bfin.c (bfin_pass_by_reference,
	bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES,
	TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN):
	Likewise.
	* config/cris/cris.c (cris_pass_by_reference,
	TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
	* config/crx/crx.c (crx_return_in_memory): Likewise.
	* config/darwin.c (function_base, machopic_function_base_name):
	Likewise.
	* config/fr30/fr30.c (fr30_must_pass_in_stack,
	TARGET_PROMOTE_PROTOTYPES): Likewise.
	* config/frv/frv.c (frv_must_pass_in_stack): Likewise.
	* config/h8300/h8300.c (h8300_return_in_memory): Likewise.
	* config/i386/i386-protos.h (ix86_return_in_memory,
	ix86_sol10_return_in_memory): Likewise.
	* config/i386/i386.c (ix86_function_value,
	ix86_function_sseregparm, ix86_must_pass_in_stack,
	type_natural_mode, classify_argument, examine_argument,
	construct_container, ix86_pass_by_reference, function_value_32,
	function_value_64, ix86_function_value_1, return_in_memory_32,
	return_in_memory_64, return_in_memory_ms_64,
	ix86_return_in_memory, ix86_sol10_return_in_memory,
	TARGET_PROMOTE_PROTOTYPES): Likewise.
	* config/ia64/ia64-protos.h (ia64_function_value,
	ia64_hpux_function_arg_padding): Likewise.
	* config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory,
	ia64_function_value, bundle_state_hash, bundle_state_eq_p,
	ia64_hpux_function_arg_padding): Likewise.
	* config/iq2000/iq2000-protos.h (function_arg,
	iq2000_function_value): Likewise.
	* config/iq2000/iq2000.c (iq2000_return_in_memory,
	iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
	function_arg, iq2000_function_value): Likewise.
	* config/m32c/m32c-protos.h (m32c_function_value,
	m32c_promote_function_return): Likewise.
	* config/m32c/m32c.c (m32c_pass_by_reference,
	m32c_promote_prototypes, m32c_promote_function_return,
	m32c_function_value): Likewise.
	* config/m32r/m32r.c (m32r_return_in_memory,
	m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
	m32r_in_small_data_p): Likewise.
	* config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding):
	Likewise.
	* config/m68hc11/m68hc11.c (m68hc11_return_in_memory,
	m68hc11_function_arg_padding): Likewise.
	* config/m68k/m68k-protos.h (m68k_function_value): Likewise.
	* config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES,
	m68k_function_value): Likewise.
	* config/mcore/mcore-protos.h (mcore_num_arg_regs,
	mcore_function_value): Likewise.
	* config/mcore/mcore.c (handle_structs_in_regs,
	mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
	mcore_num_arg_regs, mcore_function_value): Likewise.
	* config/mips/mips-protos.h (mips_pad_arg_upward,
	mips_function_value): Likewise.
	* config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb,
	mips_return_in_memory, mips_pass_by_reference, mips_callee_copies,
	TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
	TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward,
	mips_function_value): Likewise.
	* config/mmix/mmix-protos.h (mmix_function_outgoing_value):
	Likewise.
	* config/mmix/mmix.c (mmix_pass_by_reference,
	TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value,
	mmix_encode_section_info): Likewise.
	* config/mn10300/mn10300-protos.h (mn10300_function_value):
	Likewise.
	* config/mn10300/mn10300.c (mn10300_return_in_memory,
	mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
	mn10300_function_value): Likewise.
	* config/mt/mt-protos.h (mt_function_value): Likewise.
	* config/mt/mt.c (mt_pass_by_reference, mt_function_value,
	mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise.
	* config/pa/pa-protos.h (function_arg_padding, function_value,
	pa_return_in_memory): Likewise.
	* config/pa/pa.c (pa_pass_by_reference,
	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
	function_arg_padding, function_value, pa_return_in_memory):
	Likewise.
	* config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise.
	* config/rs6000/rs6000-protos.h (rs6000_function_value,
	function_arg_padding): Likewise.
	* config/rs6000/rs6000.c (rs6000_return_in_memory,
	rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
	rs6000_pass_by_reference, rs6000_must_pass_in_stack,
	TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
	function_arg_padding, altivec_expand_dst_builtin,
	altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins,
	altivec_init_builtins, rs6000_common_init_builtins,
	rs6000_function_value): Likewise.
	* s390/s390-protos.h (s390_function_value): Likewise.
	* config/s390/s390.c (s390_function_arg_size,
	s390_pass_by_reference, s390_return_in_memory,
	s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	* config/score/score-protos.h (score_function_value): Likewise.
	* config/score/score.c (score_arg_partial_bytes,
	TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
	TARGET_PROMOTE_PROTOTYPES, score_return_in_memory,
	score_pass_by_reference, score_add_offset, score_function_value):
	Likewise.
	* config/sh/sh-protos.h (sh_attr_renesas_p,
	sh_promote_prototypes): Likewise.
	* config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference,
	sh_callee_copies, sh_promote_prototypes, shcompact_byref,
	sh_attr_renesas_p): Likewise.
	* config/sparc/sparc-protos.h (function_value,
	function_arg_padding): Likewise.
	* config/sparc/sparc.c (sparc_promote_prototypes,
	sparc_return_in_memory, sparc_pass_by_reference,
	TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
	function_arg_record_value_2, function_arg_record_value_1,
	function_arg_record_value, function_arg_record_value,
	function_arg_padding, function_value): Likewise.
	* config/spu/spu-protos.h (spu_function_value): Likewise.
	* config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory,
	spu_function_value): Likewise.
	* config/stormy16/stormy16-protos.h (xstormy16_function_value):
	Likewise.
	* config/stormy16/stormy16.c (xstormy16_return_in_memory,
	xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
	Likewise.
	* config/v850/v850.c (v850_return_in_memory,
	v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise.
	* config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise.
	* config/xtensa/xtensa.c (xtensa_return_in_msb,
	xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
	Likewise.
	* explow.c (promote_mode, hard_function_value): Likewise.
	* expr.h (hard_function_value, promote_mode): Likewise.
	* function.c (aggregate_value_p): Likewise.
	* hooks.c (hook_bool_const_tree_true): New.
	* hooks.h (hook_bool_const_tree_true): New.
	* sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify.
	* target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
	TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
	TARGET_RETURN_IN_MSB): Likewise.
	* target.h (promote_function_args, promote_function_return,
	promote_prototypes, return_in_memory, return_in_msb,
	pass_by_reference, must_pass_in_stack, callee_copies,
	function_value): Likewise.
	* targhooks.c (default_return_in_memory,
	hook_pass_by_reference_must_pass_in_stack,
	hook_callee_copies_named,
	hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
	hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
	default_function_value): Likewise. 
	* targhooks.h (default_return_in_memory,
	hook_pass_by_reference_must_pass_in_stack,
	hook_callee_copies_named,
	hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
	hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
	default_function_value): Likewise.
	* tree-ssa-structalias.c (const_equiv_class_label_t): New.
	(equiv_class_label_hash, equiv_class_label_eq): Constify.
	* tree-vectorizer.c (bb_in_loop_p): Likewise.
	* tree.c (needs_to_live_in_memory): Likewise.
	* tree.h (struct tree_type, needs_to_live_in_memory,
	aggregate_value_p, must_pass_in_stack_var_size,
	must_pass_in_stack_var_size_or_pad): Likewise.
	* vmsdbgout.c (write_debug_addr, write_debug_delta4,
	write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg,
	lookup_filename): Likewise.

2007-08-23  Uros Bizjak  <ubizjak@gmail.com>

	PR target/17390
	* config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to
	fake fcomi i387 instruction for !TARGET_CMOVE.
	(ix86_expand_branch): Expand natural sequence with one jump for
	all targets, not only TARGET_CMOVE.
	* config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split
	pattern to implement fake fcomi sequence.  Split instruction after
	reload to correct compare sequences.
	(*cmpfp_xf_cc): Ditto.
	(*cmpfp_<mode>_cc): Ditto.
	(*cmpfp_u_cc): Ditto.
	(*cmpfp_<mode>_cc): Ditto.

2007-08-23  Richard Guenther  <rguenther@suse.de>

	* tree-pretty-print.c (dump_generic_node): Annotate
	GIMPLE_MODIFY_STMTs with volatile ops with "{v}".

2007-08-23  Richard Guenther  <rguenther@suse.de>

	* builtins.c (expand_builtin_mathfn): Wrap argument in
	save_expr directly instead of re-building the call.
	(expand_builtin_mathfn_2): Likewise.
	(expand_builtin_mathfn_3): Likewise.
	(expand_builtin_interclass_mathfn): Likewise.
	(expand_builtin_int_roundingfn): Set arg.
	(expand_builtin_int_roundingfn_2): Likewise.

2007-08-23  Paolo Bonzini  <bonzini@gnu.org>

	* config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3,
	*sse_nand<mode>3, *sse_xor<mode>3): New.

2007-08-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code.
	* config/i386/i386.c (print_operand): Handle ';' code.  Output
	semicolon for TARGET_MACHO.
	* config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to
	emit semicolon after 'lock' prefix.
	(sync_double_compare_and_swap<mode>): Ditto.
	(*sync_double_compare_and_swapdi_pic): Ditto.
	(*sync_compare_and_swap_cc<mode>): Ditto.
	(sync_double_compare_and_swap_cc<mode>): Ditto.
	(*sync_double_compare_and_swap_ccdi_pic): Ditto.
	(sync_old_add<mode>): Ditto.
	(sync_add<mode>): Ditto.
	(sync_sub<mode>): Ditto.
	(sync_ior<mode>): Ditto.
	(sync_and<mode>): Ditto.
	(sync_xor<mode>): Ditto.

2007-08-22  Chao-ying Fu  <fu@mips.com>

	* rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
	in DEF_RTL_EXPR.
	(copy_rtx): Handle CONST_FIXED.
	(rtx_equal_p): Likewise.
	* rtl.h (fixed_value.h): New include.
	(rtx_def): Add a new field of fixed_value to u.
	(XCNMPFV): Define for accessing fixed_value.
	(CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW):
	Define.
	* rtl.def (CONST_FIXED): New constant.
	(SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT,
	UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG,
	US_ASHIFT): New codes.
	* doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult,
	us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract,
	unsigned_fract_convert, unsigned_sat_fract): Document them.
	* varasm.c (assemble_integer): Extend to support fixed-point constants
	by using different machine classes.
	(decode_addr_const): Handle FIXED_CST.
	(const_hash_1): Likewise.
	(compare_constant): Likewise.
	(copy_constant): Likewise.
	(const_rtx_hash_1): Handle CONST_FIXED.
	(output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
	MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
	MODE_VECTOR_UACCUM.
	(initializer_constant_valid_p): Handle FIXED_CST.
	(output_constant): Support FIXED_POINT_TYPE.
	* gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude.
	* cse.c (hash_rtx): Support CONST_FIXED.
	(exp_equiv_p): Likewise.
	(cannon_reg): Likewise.
	(fold_rtx): Likewise.
	(equiv_constant): Likewise.
	(cse_process_notes_1): Likewise.
	(count_reg_usage): Likewise.
	* cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED.
	(rtx_equal_for_cselib_p): Handle CONST_FIXED.
	(wrap_constant): Check CONST_FIXED.
	(cselib_hash_rtx): Support CONST_FIXED.
	(cselib_subst_to_values): Likewise.
	* df-scan.c (df_uses_record): Likewise.
	* gcse.c (want_to_gcse_p): Likewise.
	(oprs_unchanged_p): Likewise.
	(oprs_not_set_p): Likewise.
	(compute_transp): Likewise.
	(extract_mentioned_regs_helper): Likewise.
	* genemit.c (gen_exp): Likewise.
	* local-alloc.c (equiv_init_varies_p): Likewise.
	(contains_replace_regs): Likewise.
	(memref_referenced_p): Likewise.
	* loop-invariant.c (check_maybe_invariant): Likewise.
	(hash_invariant_expr_1): Likewise.
	(invariant_expr_equal_p): Likewise.
	* postreload-gcse.c (oprs_unchanged_p): Likewise.
	* regclass.c (reg_scan_mark_refs): Likewise.
	* regrename.c (scan_rtx): Likewise.
	* resource.c (mark_referenced_resources): Likewise.
	(mark_set_resources): Likewise.
	* rtlanal.c (rtx_unstable_p): Likewise.
	(rtx_varies_p): Likewise.
	(count_occurrences): Likewise.
	(reg_mentioned_p): Likewise.
	(modified_between_p): Likewise.
	(modified_in_p): Likewise.
	(volatile_insn_p): Likewise.
	(volatile_refs_p): Likewise.
	(side_effects_p): Likewise.
	(may_trap_p_1): Likewise.
	(inequality_comparisons_p): Likewise.
	(computed_jump_p_1): Likewise.
	(commutative_operand_precedence): Likewise.
	* sched-deps.c (sched_analyze_2): Likewise.
	* sched-vis.c (print_value): Likewise.
	* reload.c (operands_match_p): Likewise.
	(subst_reg_equivs): Likewise.
	* reload1.c (eliminate_regs_1): Likewise.
	(elimination_effects): Likewise.
	(scan_paradoxical_subregs): Likewise.
	* alias.c (rtx_equal_for_memref_p): Likewise.
	* Makefile.in (RTL_BASE_H): Add fixed-value.h.
	* emit-rtl.c (const_fixed_htab): New hash table.
	(const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed):
	Declare.
	(const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed,
	const_fixed_from_fixed_value): New functions.
	(verify_rtx_sharing): Handle CONST_FIXED.
	(copy_rtx_if_shared_1): Likewise.
	(reset_used_flags): Likewise.
	(set_used_flags): Likewise.
	(copy_insn_1): Likewise.
	(init_emit_once): Create const_fixed_htab.
	Store fixed-point scalar and vector zero and one to const_tiny_rtx.

2007-08-22  Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/32949
	* tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p
	before failing for ivs with non-constant step.

2007-08-22  Hans-Peter Nilsson  <hp@axis.com>

	* doc/md.texi (Iterators): Renamed from Macros.  All contents
	changed to reflect rename of respectively define_code_macro and
	define_mode_macro to define_code_iterator and define_mode_iterator.
	(Mode Iterators, Code Iterators): Similar.
	* read-rtl.c (struct iterator_group, struct iterator_traverse_data)
	(uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p)
	(apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse)
	(initialize_iterators, find_iterator, check_code_iterator)
	(map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping)
	(read_mapping, read_rtx_1): Similar.
	* config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md,
	config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md,
	config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md,
	config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md,
	config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md,
	config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md,
	config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md,
	config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md,
	config/rs6000/sync.md, config/rs6000/rs6000.md,
	config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md,
	config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md,
	config/vax/vax.md, config/bfin/bfin.md: Similar.

2007-08-22  David Daney  <ddaney@avtrex.com>

	* doc/install.texi (Testing): Mention testing on a simulator.

2007-08-22  Janis Johnson  <janis187@us.ibm.com>

	* config/dfp-bit.c (DFP_TO_DFP): Check for overflow.

	* doc/libgcc.texi (Decimal float library routines): Fix formatting
	and rearrange floating point conversion functions into different
	categories.

2007-08-22  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* target.h (struct gcc_target.sched: dfa_pre_advance_cycle,
	dfa_post_advance_cycle): New scheduler hooks.
	* target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
	TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize
	new hooks.
	(TARGET_SCHED): Use them.
	* doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
	TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks.
	* haifa-sched.c (advance_one_cycle): Invoke new hooks.

	* genautomata.c (insn_has_dfa_reservation_p): New DFA interface
	function to facilitate debugging.
	(INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro.
	(output_insn_has_dfa_reservation_p): New static function to output
	insn_has_dfa_reservation_p ().
	(write_automata): Use it.
	* genattr.c (main): Output declaration for
	insn_has_dfa_reservation_p ().

2007-08-22  Christian Bruel  <christian.bruel@st.com>	
	    Richard Guenther <rguenther@suse.de>
	
	* fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only.
	* simplify_rtx (simplify_binary_operation_1): Likewise.
		
2007-08-22  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR rtl-optimization/32557
	* df-problems.c (df_note_bb_compute): Use mws->start_regno instead
	of REGNO (mws->mw_reg).

2007-08-22  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33007
	* builtins.c (expand_builtin_int_roundingfn): Replace call
	argument wrapped with SAVE_EXPR directly.
	(expand_builtin_int_roundingfn_2): Likewise.

2007-08-22  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (inlinable_function_p): Restore disregarding
	inline limits for GNU extern inline functions.

2007-08-22  Richard Guenther  <rguenther@suse.de>

	PR middle-end/32563
	* tree.c (host_integerp): Treat sizetype as signed as it is
	sign-extended.

2007-08-21  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/33134
	* tree-vrp.c (adjust_range_with_scev): Call
	set_value_range_to_value.

2007-08-21  Aldy Hernandez  <aldyh@redhat.com>

	* value-prof.h (gimple_remove_histogram_value): Remove duplicate
	prototype.
	
2007-08-21  Aldy Hernandez  <aldyh@redhat.com>

	* tree-flow-inline.h (next_imm_use_stmt): Remove unecessary
	whitespace.

2007-08-21  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE
	cases to set eight bytes at a time.
	(expand_block_move): Likewise.
	
2007-08-21  Jakub Jelinek  <jakub@redhat.com>

	PR debug/32610
	* dwarf2out.c (gen_decl_die): Don't call
	gen_tagged_type_instantiation_die if decl doesn't have tagged type.

2007-08-21  Paul Brook  <paul@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>
	    Mark Mitchell  <mark@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* configure.ac: Add --with-pkgversion and --with-bugurl.
	* configure: Regenerate.
	* doc/install.texi: Document them.
	* version.c (version_string): Remove VERSUFFIX.
	(VERSUFFIX): Remove.
	(pkgversion_string): New.
	(bug_report_url): Do not hard-code initializer.
	* version.h (pkgversion_string): Declare.
	* Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI):
	Define.
	(version.o): Define PKGVERSION and BUGURL.
	(gcc-vers.texi): Define VERSION_PACKAGE and BUGURL.
	(%.pod): Define BUGURL.
	* gcc.c (process_command, main): Use pkgversion_string.
	* toplev.c (compile_file, print_version): Likewise.
	* protoize.c (main): Likewise.
	* gcov.c (print_version): Likewise.  Update copyright date.
	* gcov-dump.c (print_version): Likewise.  Update copyright date.
	* mips-tdump.c (main): Likewise.  Update copyright date.
	* mips-tfile.c (main): Likewise.  Update copyright date.
	* doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle.
	* doc/bugreport.texi: Use BUGURL for bug-reporting instructions;
	shorten description.
	* doc/gcc.texi: Include VERSION_PACKAGE in version description.
	* doc/gccint.texi: Likewise.
	* doc/invoke.texi: Use BUGURL for bug-reporting instructions.
	Update copyright date.

2007-08-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG.
	(ix86_expand_strlensi_unroll_1): Ditto.
	(ix86_expand_branch): Use FLAGS_REG and FPSR_REG.
	(ix86_expand_carry_flag_compare): Update comment.

2007-08-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/32912
	* fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST.
	(fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations.

2007-08-21  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_binary): Revert removing of index +p PTR folding.

2007-08-21  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33122
	* fold-const.c (fold_binary): Remove index +p PTR folding.
	Fix types of POINTER_PLUS_EXPR generated by folding of
	(PTR +p B) +p A.

2007-08-20  Chao-ying Fu  <fu@mips.com>

	* c-common.h (enum rid): Add new enumeration values of RID_SAT,
	RID_FRACT, and RID_ACCUM.  RID_SAT needs to be inserted before
	RID_ONEWAY, so that it can be checked in declspecs_add_type.
	(c_common_fixed_point_type_for_size): Declare.
	* c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
	(c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
	(c_token_starts_declspecs): Likewise.
	(c_parser_declspecs): Likewise.
	(c_parser_attributes): Likewise.
	* c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
	(c_declspecs): Add saturating_p.
	* c-decl.c (build_null_declspecs): Initialize saturating_p.
	(declspecs_add_type): Avoid using complex with _Fract, _Accum, or
	_Sat.  Handle RID_SAT.
	Avoid using void, bool, char, int, float, double, _Decimal32,
	_Decimal64, _Decimal128, and complex with _Sat.
	Handle RID_FRACT and RID_ACCUM.
	Make sure _Sat is used with _Fract or _Accum.
	(finish_declspecs): Handle cts_fract and cts_accum.
	* c-common.c (fixed-value.h): New include.
	(constant_expression_warning): Handle FIXED_CST.
	(overflow_warning): Likewise.
	(warnings_for_convert_and_check): Likewise.
	(c_common_fixed_point_type_for_size): New.
	(c_common_type_for_mode): Handle fixed-point modes to
	return various saturating/non-saturating, signed/unsigned types.
	(c_common_signed_or_unsigned_type): Support fixed-point types.
	(shorten_compare): Check fixed-point zero.
	Handle FIXED_POINT_TYPE.
	(c_common_truthvalue_conversion): Handle FIXED_CST.
	Handle FIXED_POINT_TYPE.
	(c_common_nodes_and_builtins): Record builtin types for fixed-point
	types.
	(handle_mode_attribute): Handle fixed-point modes.  Need to check
	if the signness of base type and fixed-point modes are consistent.
	(handle_vector_size_attribute): Handle fixed-point modes.
	(same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
	(warn_for_div_by_zero): Check fixed-point zero.
	* c-typeck.c (c_common_type): Check FIXED_POINT_TYPE.  Build
	a common fixed-point type based on fbit, ibit, sign, and saturation.
	(build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
	NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
	PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
	(convert_for_assignment): Support FIXED_POINT_TYPE.
	(digest_init): Handle FIXED_POINT_TYPE.
	(build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
	TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
	TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
	GE_EXPR, LT_EXPR, GT_EXPR.
	* target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
	(TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
	* target.h (gcc_target): Add fixed_point_supported_p.
	* targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
	MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
	(default_fixed_point_supported_p): Define.
	* targhooks.h (default_fixed_point_supported_p): Declare.
	* doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
	* doc/install.texi (Configuration): Add --enable-fixed-point.
	* configure.ac (--enable-fixed-point): New to enable fixed-point
	arithmetic extension to C.  For mips targets, we enable it by default.
	* configure, config.in: Regenerate.

2007-08-20  Pawel Sikora  <pluto@pld-linux.org>

	* doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.

2007-08-20  David Edelsohn  <edelsohn@gnu.org>

	* dwarf2out.c (text_section_used): Move declaration outside ifdef
	DWARF2_DEBUGGING_INFO.
	(cold_text_section_used): Same.
	(cold_text_section): Same.

2007-08-20  Richard Guenther  <rguenther@suse.de>

	* c-typeck.c (convert_for_assignment): Use the type of
	the member for the initialization.

2007-08-20  Richard Guenther  <rguenther@suse.de>

	* c-objc-common.c (c_disregard_inline_limits): Remove.
	* c-objc-common.h (c_disregard_inline_limits): Likewise.
	* cgraphunit.c (cgraph_process_new_functions): Call
	disregard_inline_limits_p.
	(cgraph_preserve_function_body_p): Likewise.
	* ipa-inline.c (compute_inline_parameters): Likewise.
	* langhooks-def.h (lhd_tree_inlining_disregard_inline_limits):
	Remove.
	(LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove.
	(LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
	disregard_inline_limits langhook.
	* langhooks.c (lhd_tree_inlining_disregard_inline_limits):
	Remove.
	* langhooks.h (lang_hooks_for_tree_inlining): Remove
	disregard_inline_limits langhook.
	* tree-inline.c (disregard_inline_limits_p): New function.
	* tree-inline.h (disregard_inline_limits_p): Declare.

2007-08-20  Richard Guenther  <rguenther@suse.de>

	* langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove.
	(LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise.
	(LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
	auto_var_in_fn_p langhook.
	* langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and
	move ...
	* tree.c (auto_var_in_fn_p): ... here.
	(find_var_from_fn): Call auto_var_in_fn_p directly.
	* langhooks.h (lang_hooks_for_tree_inlining): Remove
	auto_var_in_fn_p langhook.
	* tree-inline.c (remap_decls): Call auto_var_in_fn_p directly.
	(copy_body_r): Likewise.
	(self_inlining_addr_expr): Likewise.
	* tree.h (auto_var_in_fn_p): Declare.

2007-08-20  Richard Guenther  <rguenther@suse.de>

	* tree.c (WALK_SUBTREE): Call walk_tree_1.
	(walk_type_fields): Take lh parameter.
	(walk_tree): Rename to ...
	(walk_tree_1): ... this.  Do not call the walk_subtrees
	langhook but the now passed callback.  Pass lh on recursion.
	(walk_tree_without_duplicates): Rename to ...
	(walk_tree_without_duplicates_1): ... this.  Take lh parameter
	and call walk_tree_1.
	* tree.h (walk_tree_lh): New typedef.
	(walk_tree_1): Declare.
	(walk_tree_without_duplicates_1): Likewise.
	(walk_tree): New define to walk_tree_1 with NULL lh parameter.
	(walk_tree_without_duplicates): New define to
	walk_tree_without_duplicates_1 with NULL lh parameter.
	* langhooks.c (lhd_tree_inlining_walk_subtrees): Remove.
	* langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees
	langhook.
	* langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove.
	(LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
	(LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees
	initializer.

2007-08-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/30564
	* tree-inline.c (optimize_inline_calls): Move the cgraph checking
	code in front of the compacting of basic blocks.
	Move the folding of statements inbetween the cgraph checking
	and compacting of basic blocks.

2007-08-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
	   Serge Belyshev  <belyshev@depni.sinp.msu.ru>

	PR target/32522
	* config/alpha/alpha.c (va_list_skip_additions): Check for
	POINTER_PLUS_EXPR in addition to PLUS_EXPR.
	(alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of
	PLUS_EXPR when checking ap.__base.
	(alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR
	when doing addition on pointer types.  Use size_int instead of
	build_int_cst.
	(alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
	ptr_type in the second operand.

2007-08-19  Andrew Pinski  <pinskia@gmail.com>

	PR target/33115
	* config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.

2007-08-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/32940
	* cfgexpand.c  (expand_one_register_var): Mark pointer
	DECL_ARTIFICIAL as REG_POINTER also.
	* stmt.c (expand_decl): Likewise.

2007-08-19  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR 32772
	Fix PR 32716
	Fix PR 32328
	Fix PR 32303

	* tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
	* tree-ssa-alias.c (init_transitive_clobber_worklist): Add
	on_worklist argument and avoid adding things to worklist multiple
	times.
	(add_to_worklist): Ditto.
	(mark_aliases_call_clobbered): Mark entire structure clobbered if
	single SFT is clobbered.
	(set_initial_properties): Ditto.
	(compute_call_clobbered): Update for changes to function
	arguments.
	(create_overlap_variables_for): Always create SFT for offset 0.
	(create_structure_vars): Handle PHI's, since we are in SSA form at
	this point.
	* tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
	* tree-ssa-operands.c (access_can_touch_variable): Don't handle
	TARGET_MEM_REF.
	(add_vars_for_offset): Figure out aliases from access + points-to.
	(add_virtual_operand): Use add_vars-for_offset.
	(get_tmr_operands): Update for NMT changes, rewrite to be correct.
	(add_call_clobber_ops): Remove makes_clobbering_call set.
	(get_expr_operands): Always pass through the INDIRECT_REF
	reference.
	* tree-ssa-structalias.c (struct constraint_graph): Remove
	variables member.
	Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
	address_taken, pt_used, number_incoming.
	(FIRST_ADDR_NODE): Removed.
	(merge_graph_nodes): Remove broken code for the moment.
	(init_graph): New function.
	(build_pred_graph): Remove code to init_graph.
	Add location equivalence support.
	(struct scc_info): Rename roots to deleted.
	(scc_visit): Ditto.
	(init_scc_info): Ditto
	(init_topo_info): Use graph->size.
	(compute_topo_order): Ditto.
	(do_da_constraint): Removed.
	(do_sd_constraint): Remove calls to find().
	set_union_with_increment should always get 0 as last arg here.
	(do_complex_constraint): Replace do_da_constraint with assert.
	Stop calling find.
	(struct equiv_class_label): New.
	(pointer_equiv_class_table): Ditto.
	(location_equiv_class_table): Ditto.
	(equiv_class_label_hash): Ditto.
	(equiv_class_label_eq): Ditto
	(equiv_class_lookup): Ditto.
	(equiv_class_ladd): Ditto.
	(pointer_equiv_class): Ditto.
	(location_equiv_class): Ditto.
	(condense_visit): Rename and rewrite from label_visit to do only
	SCC related stuff for HU.
	(label_visit): Do HU work for HU.
	(perform_var_substitution): Update to do HU and location
	equivalence.
	(free_var_substitution_info): Update to free HU and location
	equivalence structures.  */
	(find_equivalent_node): Update for pointer but not location
	equivalence.
	(unite_pointer_equivalences): New function.
	(move_complex_constraints): Rewrite to only do moving.
	(rewrite_constraints): Split out of move_complex_constraints.
	(solve_graph): Use graph->size.
	(process_constraint_1): Add from_call argument, use it.
	Split *a = &b into two constraints.
	(process_constraint): Use new process_constraint_1.
	(get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
	(get_constraint_for): Handle non-pointer integers properly.
	Remove code that used to handle structures.
	(handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
	with unknown addends.
	(handle_rhs_call): New function.
	(find_func_aliases): Use handle_rhs_call.
	(set_uids_in_ptset): Add an assert.
	(set_used_smts): Fix bug in not considering unified vars.
	(compute_tbaa_pruning): Stop initing useless iteration_obstack.
	(compute_points_to_sets): Update for other function changes.
	(delete_points_to_sets): Ditto.
	(ipa_pta_execute): Ditto.
	(pass_ipa_pta): We need to update SSA after ipa_pta.
	
2007-08-19  Jan Hubicka  <jh@suse.cz>

	* config/i386/i386.md: Replace "rim" and "mri" constraints by "g".

2007-08-19  Joseph Myers  <joseph@codesourcery.com>

	* dwarf2out.c (text_section_used, cold_text_section_used,
	cold_text_section, dwarf2out_note_section_used): New.
	(dwarf2out_init): Initialize cold_text_section.
	(dwarf2out_switch_text_section, dwarf2out_begin_function): Call
	dwarf2out_note_section_used.
	(size_of_aranges): Only count entry for text section if it was
	used.  Count entry for cold text section if it was used.
	(output_aranges): Only output entries for text section and cold
	text section if they were used.

2007-08-19  Andrew Pinski  <pinskia@gmail.com>

	* tree-pretty-print.c (debug_generic_expr): Add a comment about
	the function.
	(debug_generic_stmt): Likewise.
	(debug_tree_chain): Likewise.

2007-08-19  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-data-refs.c (split_constant_offset): Expose.
	* tree-data-refs.h (split_constant_offset): Add declaration.

	* tree-vectorizer.h (dr_alignment_support): Renamed
	dr_unaligned_software_pipeline to dr_explicit_realign_optimized.
	Added a new value dr_explicit_realign.
	(_stmt_vec_info): Added new fields: dr_base_address, dr_init,
	dr_offset, dr_step, and dr_aligned_to, along with new access
	functions for these fields: STMT_VINFO_DR_BASE_ADDRESS,
	STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and
	STMT_VINFO_DR_ALIGNED_TO.

	* tree-vectorizer.c (vect_supportable_dr_alignment): Add
	documentation.
	In case of outer-loop vectorization with non-fixed misalignment - use
	the dr_explicit_realign scheme instead of the optimized realignment
	scheme.
	(new_stmt_vec_info): Initialize new fields.

	* tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the
	'nested_in_vect_loop' case. Change verbosity level.
	(vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case.
	Don't fail on zero step in the outer-loop for loads.
	(vect_analyze_data_refs): Call split_constant_offset to calculate
	base, offset and init relative to the outer-loop.

	* tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused
	BSI function argument with a new function argument - at_loop.
	Simplify the condition that determines STEP. Takes additional argument
	INV_P. Support outer-loop vectorization (handle the
	nested_in_vect_loop case), including zero step in the outer-loop. Call
	vect_create_addr_base_for_vector_ref with additional argument.
	(vect_create_addr_base_for_vector_ref): Takes additional argument LOOP.
	Updated function documentation. Handle the 'nested_in_vect_loop' case.
	Fixed and simplified calculation of step.
	(vectorizable_store): Call vect_create_data_ref_ptr with loop instead
	of bsi, and with additional argument. Call bump_vector_ptr with
	additional argument. Fix typos. Handle the 'nested_in_vect_loop' case.
	(vect_setup_realignment): Takes additional arguments INIT_ADDR and
	DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case
	when the realignment setup needs to take place inside the loop.
	Support the dr_explicit_realign scheme. Allow generating the optimized
	realignment scheme for outer-loop vectorization. Added documentation.
	(vectorizable_load): Support the dr_explicit_realign scheme. Handle
	the 'nested_in_vect_loop' case, including loads that are invariant in
	the outer-loop and the realignment schemes. Handle the case when the
	realignment setup needs to take place inside the loop. Call
	vect_setup_realignment with additional arguments.  Call
	vect_create_data_ref_ptr with additional argument and with loop instead
	of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI.
	(vect_gen_niters_for_prolog_loop): Call
	vect_create_addr_base_for_vector_ref with additional arguments.
	(vect_create_cond_for_align_checks): Likewise.
	(bump_vector_ptr): Updated to support the new dr_explicit_realign
	scheme: takes additional argument bump; argument ptr_incr is now
	optional; updated documentation.
	(vect_init_vector): Takes additional argument (bsi). Use it, if
	available, to insert the vector initialization.
	(get_initial_def_for_induction): Pass additional argument in call to
	vect_init_vector.
	(vect_get_vec_def_for_operand): Likewise.
	(vect_setup_realignment): Likewise.
	(vectorizable_load): Likewise.

2007-08-19  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info
	as argument instead of struct loop.
	(nested_in_vect_loop_p): New function.
	(vect_relevant): Add enum values vect_used_in_outer_by_reduction and
	vect_used_in_outer.
	(is_loop_header_bb_p): New. Used to differentiate loop-header phis
	from other phis in the loop.
	(destroy_loop_vec_info): Add additional argument to declaration.

	* tree-vectorizer.c (supportable_widening_operation): Also check if
	nested_in_vect_loop_p (don't allow changing the order in this case).
	(vect_is_simple_reduction): Takes a loop_vec_info as argument instead
	of struct loop. Call nested_in_vect_loop_p and don't require
	flag_unsafe_math_optimizations if it returns true.
	(new_stmt_vec_info): When setting def_type for phis differentiate 
	loop-header phis from other phis.
	(bb_in_loop_p): New function.
	(new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so
	just update their loop_vinfo.  Order of BB traversal now matters -
	call dfs_enumerate_from with bb_in_loop_p.
	(destroy_loop_vec_info): Takes additional argument to control whether
	stmt_vinfo of the loop stmts should be destroyed as well.
	(vect_is_simple_reduction): Allow the "non-reduction" use of a
	reduction stmt to be defines by a non loop-header phi.
	(vectorize_loops): Call destroy_loop_vec_info with additional argument.

	* tree-vect-transform.c (vectorizable_reduction): Call
	nested_in_vect_loop_p. Check for multitypes in the inner-loop.
	(vectorizable_call): Likewise.
	(vectorizable_conversion): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_type_promotion): Likewise.
	(vectorizable_type_demotion): Likewise.
	(vectorizable_store): Likewise.
	(vectorizable_live_operation): Likewise.
	(vectorizable_reduction): Likewise. Also pass loop_info to
	vect_is_simple_reduction instead of loop.
	(vect_init_vector): Call nested_in_vect_loop_p.
	(get_initial_def_for_reduction): Likewise.
	(vect_create_epilog_for_reduction): Likewise.
	(vect_init_vector): Check which loop to work with, in case there's an
	inner-loop.
	(get_initial_def_for_inducion): Extend to handle outer-loop
	vectorization. Fix indentation.
	(vect_get_vec_def_for_operand): Support phis in the case vect_loop_def.
	In the case vect_induction_def get the vector def from the induction
	phi node, instead of calling get_initial_def_for_inducion.
	(get_initial_def_for_reduction): Extend to handle outer-loop 
	vectorization.
	(vect_create_epilog_for_reduction): Extend to handle outer-loop
	vectorization.
	(vect_transform_loop): Change assert to just skip this case.  Add a
	dump printout.
	(vect_finish_stmt_generation): Add a couple asserts.

	(vect_estimate_min_profitable_iters): Multiply
	cost of inner-loop stmts (in outer-loop vectorization) by estimated
	inner-loop bound.
	(vect_model_reduction_cost): Don't add reduction epilogue cost in case
	this is an inner-loop reduction in outer-loop vectorization.

	* tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function.
	Same code as what used to be vect_analyze_scalar_cycles, only with
	additional argument loop, and loop_info passed to
	vect_is_simple_reduction instead of loop.
	(vect_analyze_scalar_cycles): Code factored out into
	vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest.
	Updated documentation.
	(analyze_operations): Check for inner-loop loop-closed exit-phis during
	outer-loop vectorization that are live or not used in the outerloop,
	cause this requires special handling.
	(vect_enhance_data_refs_alignment): Don't consider versioning for
	nested-loops.
	(vect_analyze_data_refs): Check that there are no datarefs in the
	inner-loop.
	(vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer
	and vect_used_in_outer_by_reduction cases.
	(process_use): Also consider the case of outer-loop stmt defining an
	inner-loop stmt and vice versa.
	(vect_analyze_loop_1): New function.
	(vect_analyze_loop_form): Extend, to allow a restricted form of nested
	loops.  Call vect_analyze_loop_1.
	(vect_analyze_loop): Skip (inner-)loops within outer-loops that have
	been vectorized.  Call destroy_loop_vec_info with additional argument.

	* tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow
	in the inner-loop when doing outer-loop vectorization. Add
	documentation and printout.
	(vect_recog_dot_prod_pattern): Likewise. Also add check for
	GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop).

2007-08-18  Andrew Pinski  <pinskia@gmail.com>

	* tree-affine.h (print_aff): New prototype.
	(debug_aff): Likewise.
	* tree-affine.c (print_aff): New function.
	(debug_aff): Likewise.

2007-08-18  Paul Brook  <paul@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* common.opt (-fdebug-prefix-map=): New option.
	* opts.c: Include debug.h.
	(common_handle_option): Handle -fdebug-prefix-map.
	* final.c: Include ggc.h.
	(struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
	remap_debug_filename): New.
	* Makefile.in (final.o, opts.o): Update dependencies.
	* debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
	* configure.ac: Check for assembler --debug-prefix-map support.
	* configure, config.in: Regenerate.
	* gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
	(ASM_DEBUG_SPEC): Include ASM_MAP.
	* doc/install.texi (--with-debug-prefix-map): Document.
	* doc/invoke.texi (-fdebug-prefix-map): Document.
	* dbxout.c (dbxout_init, dbxout_start_source_file,
	dbxout_source_file): Call remap_debug_filename.
	* dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
	dwarf2out_start_source_file, dwarf2out_finish): Call
	remap_debug_filename.
	(file_table_relative_p): Do not check d->emitted_number.
	* toplev.c (output_file_directive): Call remap_debug_filename.
	* vmsdbgout.c (write_srccorr): Call remap_debug_filename.
	* xcoffout.c (xcoffout_source_file): Call remap_debug_filename.

2007-08-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* loop-invariant.c (find_invariants_to_move): Add missing macro
	argument.

2007-08-17  Tom Tromey  <tromey@redhat.com>

	* tree.h (struct tree_label_decl): Removed old "java" fields.

2007-08-17  Richard Sandiford  <richard@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>

	* config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
	Treat -mno-data-in-code and -mcode-xonly as aliases for
	-mcode-readable=no and -mcode-readable=pcrel respectively.
	* config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
	(MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
	(MULTILIB_DIRNAMES): Update accordingly.

2007-08-17  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in (version.o): Depend on $(REVISION) only if
	REVISION_s is defined.

2007-08-17  Sa Liu  <saliu@de.ibm.com>
	    Ulrich Weigand  <uweigand@de.ibm.com>

	PR middle-end/32970
	* tree.c (reconstruct_complex_type): For a pointer to a vector,
	use build_qualified_type to retain qualifiers of the base type.

2007-08-17  Chen Liqin  <liqin@sunnorth.com.cn>

	* config/score/score.md : Update pattern tablejump.
	* config/score/score.c : Update score_initialize_trampoline 
	function.
	* config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
	(TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
	* doc/contrib.texi: Add my entry.

2007-08-16  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in (REVISION): New.
	(REVISION_c): New.
	(REVISION_s): New.
	(version.o): Also depend on $(REVISION). Add
	-DREVISION=$(REVISION_s).

	* version.c (version_string): Add REVISION.

2007-08-16  Seongbae Park <seongbae.park@gmail.com>

	* tree-eh.c (lower_try_finally_onedest): Reset the locus
	of GOTO that's relocated to a different block.

2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-common.c (const_strip_array_types): New.
	* c-common.h (lang_missing_noreturn_ok_p): Delete.
	(const_strip_array_types): New.
	* c-objc-common.c (c_disregard_inline_limits,
	c_warn_unused_global_decl): Constify.
	* c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
	c_vla_type_p, c_incomplete_type_error): Likewise.
	* c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
	* hooks.c (hook_bool_const_tree_false): New.
	* hooks.h (hook_bool_const_tree_false): Likewise.
	* langhooks-def.h (lhd_warn_unused_global_decl,
	lhd_incomplete_type_error, lhd_expr_size,
	lhd_tree_inlining_disregard_inline_limits,
	lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
	LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
	* langhooks.c (lhd_warn_unused_global_decl,
	lhd_incomplete_type_error,
	lhd_tree_inlining_disregard_inline_limits,
	lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
	lhd_expr_size): Likewise.
	* langhooks.h (lang_hooks_for_tree_inlining,
	lang_hooks_for_tree_dump, lang_hooks_for_types,
	lang_hooks_for_decls, lang_hooks): Likewise.
	* pointer-set.c (pointer_set_t, pointer_set_create,
	pointer_set_contains, insert_aux, pointer_set_insert,
	pointer_set_traverse, pointer_map_t, pointer_map_create,
	pointer_map_contains, pointer_map_insert, pointer_map_traverse):
	Likewise.
	* pointer-set.h (pointer_set_contains, pointer_set_insert,
	pointer_set_traverse, pointer_map_contains, pointer_map_insert,
	pointer_map_traverse): Likewise.
	* predict.c (assert_is_empty): Likewise.
	* tree-affine.c (free_name_expansion): Likewise.
	* tree-cfg.c (edge_to_cases_cleanup): Likewise.
	* tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
	* tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.

2007-08-16  Victor Kaplansky <victork@il.ibm.com>

	* tree-vectorizer.c (new_loop_vec_info): Initialize new 
	field.
	(destroy_loop_vec_info): Add call to VEC_free.
	* tree-vectorizer.h (may_alias_ddrs): Define.
	(LOOP_VINFO_MAY_ALIAS_DDRS): Define.
	* tree-vect-analyze.c (vect_analyze_data_ref_dependence):
	Change reporting to dump.
	(vect_is_duplicate_ddr): New.
	(vect_mark_for_runtime_alias_test): New.
	(vect_analyze_data_ref_dependences) Add call to
	vect_mark_for_runtime_alias_test.
	(vect_enhance_data_refs_alignment): Define local variable
	vect_versioning_for_alias_required, don't perform
	peeling for alignment if versioning for alias is
	required.
	(vect_enhance_data_refs_alignment): Use
	PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
	PARAM_VECT_MAX_VERSION_CHECKS.
	* tree-vect-transform.c
	(vect_create_cond_for_alias_checks): New.
	(vect_transform_loop): Add call to
	vect_create_cond_for_alias_checks.
	(vect_vfa_segment_size): New.
	* params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
	Rename.
	(PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
	* doc/invoke.texi
	(vect-max-version-for-alignment-checks): Document.
	(vect-max-version-for-alias-checks): Document.
	(vect-max-version-checks): Remove.

2007-08-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
	the same line as the instruction for all asm dialects.
	(*rep_movsi): Ditto.
	(*rep_movsi_rex64): Ditto.
	(*rep_movqi): Ditto.
	(*rep_movqi_rex64): Ditto.
	(*rep_stosdi_rex64): Ditto.
	(*rep_stossi): Ditto.
	(*rep_stossi_rex64): Ditto.
	(*rep_stosqi): Ditto.
	(*rep_stosqi_rex64): Ditto.
	(*cmpstrnqi_nz_1): Ditto.
	(*cmpstrnqi_nz_rex_1): Ditto.
	(*cmpstrnqi_1): Ditto.
	(*cmpstrnqi_rex_1): Ditto.
	(*strlenqi_1): Ditto.
	(*strlenqi_rex_1): Ditto.
	* config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
	prefix on the same line as the instruction for all asm dialects.
	(sync_double_compare_and_swap<mode>): Ditto.
	(*sync_double_compare_and_swapdi_pic): Ditto.
	(*sync_compare_and_swap_cc<mode>): Ditto.
	(sync_double_compare_and_swap_cc<mode>): Ditto.
	(*sync_double_compare_and_swap_ccdi_pic): Ditto.
	(sync_old_add<mode>): Ditto.
	(sync_add<mode>): Ditto.
	(sync_sub<mode>): Ditto.
	(sync_ior<mode>): Ditto.
	(sync_and<mode>): Ditto.
	(sync_xor<mode>): Ditto.

2007-08-16  Richard Sandiford  <richard@codesourcery.com>

	PR middle-end/32897
	* reload.c (find_reloads): Check that the memory returned by
	find_reloads_toplev was not the result of forcing a constant
	to memory.
	(find_reloads_toplev): Always use simplify_gen_subreg to get
	the subreg of a constant.  If the result is also a constant,
	but not a legitimate one, force it into the constant pool
	and reload its address.

2007-08-15  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
	POPCOUNT.

2007-08-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
	directive for the current vector ABI.

2007-08-15  Steve Ellcey  <sje@cup.hp.com>

	PR target/32963
	* caller-save.c (reg_save_code): Set invalide status on restore code.
	
2007-08-15  Diego Novillo  <dnovillo@google.com>

	* tree-ssa-alias.c (compute_memory_partitions): Use
	alias_bitmap_obstack to allocate bitmaps.
	(reset_alias_info): Factor out of init_alias_info.
	Mark all name tags not associated to an SSA name for renaming.
	(init_alias_info): Call it.
	(create_name_tags): Tidy.  Add comments.
	(dump_points_to_info_for): Do not call get_mem_sym_stats_for.

2007-08-15  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
	scheduler dependencies.

2007-08-15  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
	"register_operand".
	(*iorsi_1_zext): Likewise.
	(*iorsi_1_zext_imm): Likewise.
	* config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand"
	with "rm"/"xm" constraint.
	(sse2_vmsqrtv2df2): Likewise.

2007-08-15  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/33074
	* emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
	REG_LIBCALL note.

2007-08-14  Daniel Berlin  <dberlin@dberlin.org>

	* tree-pass.h (PROP_pta): Removed.
	(TODO_rebuild_alias): New.
	(pass_may_alias): Removed.
	* tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
	aliasing if we changed something.
	* tree-ssa-alias.c (compute_may_aliases): Make non-static.  Update
	SSA internally.
	(pass_may_alias): Removed.
	(create_structure_vars): Return TODO_rebuild_alias.
	* tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
	* tree-sra.c (tree_sra): Only rebuild aliasing if something
	changed.
	(tree_sra_early): We never affect aliasing right now.
	* tree-flow.h (compute_may_aliases): New prototype.
	* passes.c: Remove pass_may_alias from the passes.
	(execute_function_todo): Support TODO_rebuild_alias.	

2007-08-14  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.c (legitimize_address): Move dllimported variable
	check infront of legitimizing pic address of CONST symbols.

2007-08-14  Steve Ellcey  <sje@cup.hp.com>

	PR tree-optimization/32941
	* tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
	(goto_queue_cmp): Remove.
	(find_goto_replacement): Change search method.
	(maybe_record_in_goto_queue): Add assert.
	(lower_try_finally): Remove qsort call, add pointer_map_destroy call.
	* Makefile.in (tree-eh.o): Add pointer-set.h dependency.

2007-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alias.c (component_uses_parent_alias_set): Constify.
	* alias.h (component_uses_parent_alias_set): Likewise.
	* cfgrtl.c (print_rtl_with_bb): Likewise.
	* double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
	mpz_get_double_int): Likewise.
	* double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
	mpz_get_double_int): Likewise.
	* expr.c (is_aligning_offset, undefined_operand_subword_p,
	mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
	Likewise.
	* expr.h (safe_from_p): Likewise.
	* gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
	Likewise.
	* gimplify.c (should_carry_locus_p, zero_sized_field_decl,
	zero_sized_type, goa_lhs_expr_p): Likewise.
	* omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
	* rtl.h (print_rtl_with_bb): Likewise.
	* sched-vis.c (print_exp, print_value, print_pattern): Likewise.
	* tree-cfg.c (const_first_stmt, const_last_stmt): New.
	* tree-flow-inline.h (bb_stmt_list): Constify.
	(cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
	cbsi_stmt): New.
	* tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
	const_first_stmt, const_last_stmt): New.
	(block_may_fallthru, empty_block_p): Constify.
	* tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
	EXPR_ONLY_BODY): New.
	(expr_first, expr_last, expr_only): Use macro for body.
	(const_expr_first, const_expr_last, const_expr_only): New.
	* tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
	ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
	ctsi_prev, ctsi_stmt): New.
	* tree-scalar-evolution.c (get_loop_exit_condition): Constify.
	* tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
	* tree-ssa-loop-niter.c (loop_only_exit_p,
	derive_constant_upper_bound): Likewise.
	* tree-ssa-phiopt.c (empty_block_p): Likewise.
	* tree-ssa-threadupdate.c (redirection_block_p): Likewise.
	* tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
	* tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
	* tree-vrp.c (vrp_bitmap_equal_p): Likewise.
	* tree.c (get_type_static_bounds): Likewise.
	* tree.h (const_expr_first, const_expr_last, const_expr_only): New.
	(get_type_static_bounds): Constify.

2007-08-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/30315
	* config/i386/i386.h (CANONICALIZE_COMPARISON): New.
	* config/i386/i386.md (plusminus)(addsub)(SWI): New.
	(*<addsub><mode>3_cc_overflow): New.
	(*add<mode>3_cconly_overflow): New.
	(*sub<mode>3_cconly_overflow): New.
	(*<addsub>si3_zext_cc_overflow): New.
	* config/i386/predicates.md (fcmov_comparison_operator): Accept
	CCCmode for LTU, GTU, LEU and GEU.
	(ix86_comparison_operator): Likewise.
	(ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
	* config/i386/i386.c (put_condition_code): Support CCCmode.
	(ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
	or MINUS expressions.

2007-08-14  Andrew Pinski  <pinskia@gmail.com>

	PR c/30428
	* c-typeck.c (build_binary_op): Disallow vector float types with
	BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.

2007-08-14  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* sched-int.h (struct _dep): Rename field 'kind' to 'type'.
	(DEP_KIND): Rename to DEP_TYPE.  Update all uses.
	(dep_def): New typedef.
	(init_dep_1, sd_debug_dep): Declare functions.
	(DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
	(debug_dep_links): Remove.
	(struct _deps_list): New field 'n_links'.
	(DEPS_LIST_N_LINKS): New macro.
	(FOR_EACH_DEP_LINK): Remove.
	(create_deps_list, free_deps_list, delete_deps_list): Remove
	declaration.
	(deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
	(find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
	(copy_deps_list_change_con, move_dep_link): Ditto.
	(struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
	and 'spec_back_deps'.  New field 'resolved_forw_deps'.  Remove field
	'dep_count'.
	(INSN_BACK_DEPS): Remove.
	(INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
	New macros.
	(INSN_DEP_COUNT): Remove.
	(enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP.  Fix comments.
	(spec_info, haifa_recovery_block_was_added_during_scheduling_p):
	Declare global variables.
	(deps_pools_are_empty_p, sched_free_deps): Declare functions.
	(add_forw_dep, compute_forward_dependences): Remove declarations.
	(add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
	(add_back_forw_dep, delete_back_forw_dep): Ditto.
	(debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
	functions.
	(SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW):
	New constants.
	(SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
	(sd_list_types_def): New typedef.
	(sd_next_list): Declare function.
	(struct _sd_iterator): New type.
	(sd_iterator_def): New typedef.
	(sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
	functions.
	(FOR_EACH_DEP): New cycle wrapper.
	(sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
	Declare functions.
	(sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
	(sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
	Ditto.

	* sched-deps.c (init_dep_1): Make global.
	(DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
	constants.
	(dump_dep): New static function.
	(dump_dep_flags): New static variable.
	(sd_debug_dep): New function.
	(add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
	the list.
	(move_dep_link): Use remove_from_deps_list (), instead of
	detach_dep_link ().
	(dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
	(dep_link_is_detached_p): New static function.
	(deps_obstack, dl_obstack, dn_obstack): Remove.  Use dn_pool, dl_pool
	instead.
	(dn_pool, dl_pool): New alloc_pools.
	(dn_pool_diff, dl_pool_diff): New static variables.
	(create_dep_node, delete_dep_node): New static function.
	(create_deps_list): Make it static.  Use alloc_pool 'dl_pool'.
	(deps_list_empty_p): Make it static.  Use 'n_links' field.
	(deps_pools_are_empty_p): New static function.
	(alloc_deps_list, delete_deps_list): Remove.
	(dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
	(find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
	(copy_deps_list_change_con): Remove.  Use sd_copy_back_deps () instead.
	(forward_dependency_cache): Remove.
	(maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
	'back' from the names.  Change signature to use dep_t instead of
	equivalent quad.
	(add_back_dep): Ditto.  Make global.
	(check_dep_status): Rename to check_dep ().
	(sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
	New functions.
	(sd_finish_insn): Ditto.
	(sd_find_dep_between_no_cache): New static function.
	(sd_find_dep_between): New function.
	(ask_dependency_caches, set_dependency_caches): New static functions.
	(update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
	(add_or_update_dep_1): Separate pieces of functionality into
	ask_dependency_caches (), update_dependency_caches (),
	change_spec_dep_to_hard (), update_dep ().
	(get_back_and_forw_lists): New static function.
	(sd_add_dep): Separate setting of dependency caches into
	set_dependency_caches ().
	(sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
	New functions.
	(sd_delete_dep): Ditto.
	(DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
	(dump_lists): New static function.
	(sd_debug_lists): New debug function.
	(delete_all_dependences, fixup_sched_groups): Update to use
	sd_* infrastructure.
	(sched_analyze_2): Create data-speculative dependency only if
	data-speculation is enabled.
	(sched_analyze_insn): If insn cannot be speculative, make all its
	dependencies non-speculative.
	(sched_analyze): Use sd_init_insn ().
	(add_forw_dep, compute_forward_dependencies): Remove.
	(delete_dep_nodes_in_back_deps): New static function.
	(sched_free_deps): New function.
	(init_dependency_caches): Init alloc_pools.
	(extend_depedency_caches): Update after removing of
	forward_dependency_cache.
	(free_dependency_caches): Ditto.  Free alloc_pools.
	(adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
	(delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
	Ditto.
	(add_back_forw_dep, delete_back_forw_dep): Ditto.
	(add_dependence): Use init_dep ().
	(get_dep_weak_1): New static function.
	(get_dep_weak): Move logic to get_dep_weak_1 ().
	(dump_ds): New static function moved from haifa-sched.c:
	debug_spec_status ().
	(debug_ds): New debug function.
	(check_dep_status): Rename to check_dep ().  Update to check whole
	dependencies.

	* haifa-sched.c (spec_info): Make global.
	(added_recovery_block_p): Rename to
	'haifa_recovery_block_was_added_during_current_schedule_block_p'.
	(haifa_recovery_block_was_added_during_scheduling_p): New variable.
	(dep_cost, priority, rank_for_schedule, schedule_insn): Update
	to use new interfaces.
	(ok_for_early_queue_removal): Ditto.
	(schedule_block): Initialize logical uids of insns emitted by the
	target.
	(sched_init): Initialize new variable.
	(fix_inter_tick, try_ready, fix_tick_ready): Update to use new
	interfaces.
	(extend_global): Initialize insn data.
	(init_h_i_d): Remove code that is now handled in sd_init_insn ().
	(process_insn_forw_deps_be_in_spec): Change signature.  Update to use
	new interfaces.
	(add_to_speculative_block): Update to use new interfaces.
	(create_recovery_block): Set new variables.
	(create_check_block_twin, fix_recovery_deps): Update to use new
	interfaces.
	(sched_insn_is_legitimate_for_speculation_p): New function.
	(speculate_insn): Move checking logic to
	sched_insn_is_legitimate_for_speculation_p ().
	(sched_remove_insn): Finalize sched-deps information of instruction.
	(clear_priorities, add_jump_dependencies): Update to use new
	interfaces.
	(debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
	
	* sched-rgn.c (set_spec_fed, find_conditional_protection): Update
	to use new interfaces.
	(is_conditionally_protected, is_pfree, is_prisky) Ditto.
	(new_ready): Try to use control speculation only if it is available.
	(add_branch_dependences): Update to use new interfaces.
	(compute_block_backward_dependences): Rename to
	compute_block_dependences ().  Call
	targetm.sched.dependencies_evaluation_hook ().
	(free_block_dependencies): New static function.
	(debug_dependencies): Update to use new interfaces.
	(schedule_region): Remove separate computation of forward dependencies.
	Move call of targetm.sched.dependencies_evaluation_hook () to
	compute_block_dependences ().  Free dependencies at the end of
	scheduling the region.

	* sched-ebb.c (earliest_block_with_similiar_load): Update to use
	new interfaces.
	(add_deps_for_risky_insns): Ditto.
	(schedule_ebb): Remove separate computation of forward dependencies.
	Free dependencies at the end of	scheduling the ebb.

	* ddg.c (create_ddg_dependence): Update to use new interfaces.
	(build_intra_loop_deps): Ditto.  Remove separate computation of
	forward dependencies.  Free sched-deps dependencies.

	* config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
	to use new interfaces.
	(ia64_dfa_new_cycle, ia64_gen_check): Ditto.

	* config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
	new interfaces.
	(is_costly_group): Ditto.

2007-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alias.c (rtx_equal_for_memref_p): Constify.
	* basic-block.h (const_edge, const_basic_block): New.
	(reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
	single_pred_p, single_succ_edge, single_pred_edge, single_succ,
	single_pred, maybe_hot_bb_p, probably_cold_bb_p,
	probably_never_executed_bb_p, edge_probability_reliable_p,
	br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
	inside_basic_block_p, control_flow_insn_p, dominated_by_p):
	Likewise.
	* bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
	* bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
	Likewise.
	* cfganal.c (flow_active_insn_p, forwarder_block_p,
	flow_nodes_print, dfs_enumerate_from): Likewise.
	* cfgbuild.c (count_basic_blocks, inside_basic_block_p,
	control_flow_insn_p, count_basic_blocks): Likewise.
	* cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
	get_loop_body_with_size, loop_exit_edge_p): Likewise.
	* cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
	average_num_loop_insns, loop_exit_edge_p,
	just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
	* cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
	average_num_loop_insns, seq_cost): Likewise.
	* cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
	* dominance.c (dominated_by_p): Likewise.
	* emit-rtl.c (validate_subreg): Likewise.
	* except.c (can_throw_internal, can_throw_external): Likewise.
	* except.h (can_throw_internal, can_throw_external): Likewise.
	* gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
	oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
	compute_transp, load_killed_in_block_p, reg_killed_on_edge,
	simple_mem, store_ops_ok, load_kills_store, find_loads,
	store_killed_in_insn, store_killed_after, store_killed_before,
	gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
	Likewise.
	* ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
	noce_mem_write_may_trap_or_fault_p): Likewise.
	* pointer-set.c (pointer_set_contains, pointer_map_contains):
	Likewise.
	* pointer-set.h (pointer_set_contains, pointer_map_contains):
	Likewise.
	* predict.c (can_predict_insn_p, maybe_hot_bb_p,
	probably_cold_bb_p, probably_never_executed_bb_p,
	edge_probability_reliable_p, br_prob_note_reliable_p,
	can_predict_insn_p): Likewise.
	* regclass.c (reg_set_to_hard_reg_set): Likewise.
	* resource.c (return_insn_p): Likewise.
	* rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
	Likewise.
	* rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
	* tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
	* tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
	verify_gimple_modify_stmt): Likewise.
	* tree-chrec.c (is_not_constant_evolution,
	is_multivariate_chrec_rec, is_multivariate_chrec,
	chrec_contains_symbols, chrec_contains_undetermined,
	tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
	evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
	eq_evolutions_p, scev_direction): Likewise.
	* tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
	eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
	chrec_contains_symbols_defined_in_loop,
	chrec_contains_undetermined, tree_contains_chrecs,
	evolution_function_is_affine_multivariate_p,
	evolution_function_is_univariate_p, chrec_zerop,
	evolution_function_is_constant_p, evolution_function_is_affine_p,
	evolution_function_is_affine_or_constant_p,
	tree_does_not_contain_chrecs, chrec_type): Likewise.
	* tree-data-ref.c (tree_fold_divides_p,
	object_address_invariant_in_loop_p, dr_may_alias_p,
	ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
	same_access_functions, constant_access_functions,
	access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
	Likewise.
	* tree-flow.h (scev_direction): Likewise.
	* tree-gimple.c (is_gimple_stmt): Likewise.
	* tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
	Likewise.
	* tree-pretty-print.c (op_prio): Likewise.
	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
	analyzable_condition, backedge_phi_arg_p): Likewise.
	* tree-scalar-evolution.h (get_chrec_loop): Likewise.
	* tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
	* tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
	Likewise.

2007-08-13  Dan Hipschman  <dsh@google.com>

	PR c/32953
	* c-format.c (check_format_arg): Move check for zero-length
	format strings below the check for unterminated strings.

2007-08-13  Andrew Pinski  <pinskia@gmail.com>

	PR C/30427
	* c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
	types.

2007-08-13  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm_neon.h: Revert GPLv3 patch to this file.

2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR fortran/32860
	* c-format.c (gcc_gfc_length_specs): New array.
	(gcc_gfc_char_table): Add unsigned specifier, and references to
	the l length modifier.
	(format_types_orig): Use the new gcc_gfc_length_specs.

2007-08-12  Sa Liu  <saliu@de.ibm.com>

	* emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
	and with REG_RETVAL note after split.

2007-08-11  David Daney  <ddaney@avtrex.com>

	* config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
	as ATTRIBUTE_UNUSED.

2007-08-11  David Edelsohn  <edelsohn@gnu.org>
	    Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
	HAVE_LOCAL_CPU_DETECT not defined.

2007-08-11  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
	(cgraph_process_new_functions): Honor previous value of
	disregard_inline_limits.
	* ipa-inline.c (compute_inline_parameters): Likewise.

2007-08-11  Ian Lance Taylor  <iant@google.com>

	* alias.h (alias_set_type): Define new type.
	(ALIAS_SET_MEMORY_BARRIER): Use it.
	* rtl.h: Include alias.h.
	(struct mem_attrs): Use alias_set_type.
	* tree.h: Include alias.h
	(struct tree_type): Use alias_set_type.
	(struct tree_struct_field_tag): Likewise.
	(struct tree_decl_common): Likewise.
	* alias.c (struct alias_set_entry): Use alias_set_type.
	(get_alias_set_entry, alias_set_subset_of): Likewise.
	(alias_sets_conflict_p): Likewise.
	(alias_sets_must_conflict_p): Likewise.
	(objects_must_conflict_p): Likewise.
	(get_alias_set, new_alias_set): Likewise.
	(record_alias_subset, record_component_aliases): Likewise.
	(varargs_set, frame_set): Change to alias_set_type.
	(get_varargs_alias_set): Use alias_set_type.
	(get_frame_alias_set): Likewise.
	* builtins.c (setjmp_alias_set): Change to alias_set_type.
	* dse.c (struct store_info): Use alias_set_type.
	(struct read_info, struct clear_alias_mode_holder): Likewise.
	(clear_alias_set_lookup, canon_address): Likewise.
	(record_store, check_mem_read_rtx): Likewise.
	(dse_record_singleton_alias_set): Likewise.
	(dse_invalidate_singleton_alias_set): Likewise.
	* emit-rtl.c (get_mem_attrs): Likewise.
	(set_mem_attributes_minus_bitpos): Likewise.
	(set_mem_alias_set): Likewise.
	* expr.c (store_constructor_field, store_field): Likewise.
	* gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise.
	* langhooks.c (lhd_get_alias_set): Likewise.
	* langhooks-def.h (lhd_get_alias_set): Likewise.
	* reload1.c (alter_reg): Likewise.
	* tree-flow.h (struct fieldoff): Likewise.
	* tree-ssa-alias.c (struct alias_map_d): Likewise.
	(may_alias_p, get_smt_for, create_sft): Likewise.
	* tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise.
	* tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
	(merge_smts_into): Likewise.
	* varasm.c (const_alias_set): Likewise.
	* c-common.c (strict_aliasing_warning): Likewise.
	(c_common_get_alias_set): Likewise.
	* dse.h (dse_record_singleton_alias_set): Update declaration.
	(dse_invalidate_singleton_alias_set): Likewise.
	* emit-rtl.h (set_mem_alias_set): Likewise.
	* c-common.h (c_common_get_alias_set): Likewise.
	* print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it.
	* print-tree.c (print_node): Likewise.
	* config/alpha/alpha.c (alpha_sr_alias_set): Change to
	alias_set_type.
	(alpha_setup_incoming_varargs): Use alias_set_type.
	* config/i386/i386.c (setup_incoming_varargs_64): Use
	alias_set_type.
	(setup_incoming_varargs_ms_64): Likewise.
	(ix86_GOT_alias_set): Likewise.
	* config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
	* config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
	(set): Change to alias_set_type.
	(get_TOC_alias_set): Use alias_set_type.
	* config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update
	declaration.
	* config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
	* config/sparc/sparc.c (sparc_sr_alias_set): Change to
	alias_set_type.
	(struct_value_alias_set): Likewise.
	* Makefile.in (GTFILES): Add $(srcdir)/alias.h.

2007-08-11  Richard Sandiford  <richard@codesourcery.com>

	* config/vxworks-dummy.h (TARGET_VXWORKS): Define.
	* config/vxworks.h (TARGET_VXWORKS): Override.
	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
	"mips" if TARGET_VXWORKS.

2007-08-11  Richard Sandiford  <richard@codesourcery.com>

	* calls.c (avoid_likely_spilled_reg): New function.
	(expand_call): Use it.

2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.

2007-08-10  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/predicates.md (const_call_insn_operand): Invoke
	SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.

2007-08-10  David Edelsohn  <edelsohn@gnu.org>

	PR target/33042
	* config/rs6000/driver-rs6000.c: Include link.h.
	Use ElfW instead of wordsize-specif typedef.

2007-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* system.h (CONST_CAST): New.
	* c-decl.c (c_make_fname_decl): Use it.
	* c-lex.c (cb_ident, lex_string): Likewise.
	* c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
	* gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
	give_switch, set_multilib_dir): Likewise.
	* gengtype-parse.c (string_seq, typedef_name): Likewise.
	* passes.c (execute_one_pass): Likewise.
	* prefix.c (update_path): Likewise.
	* pretty-print.c (pp_base_destroy_prefix): Likewise.
	* tree.c (build_string): Likewise.

2007-08-10  Aldy Hernandez  <aldyh@redhat.com>

	* tree-flow-inline.h (is_exec_stmt): Remove.
	(is_label_stmt): Remove.
	* tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and
	is_label_stmt.

2007-08-10  Andreas Krebbel  <krebbel1@de.ibm.com>

	* lower-subreg.c (resolve_shift_zext): Don't adjust
	src_reg_num for wordmode operands.

2007-08-10  Sandra Loosemore  <sandra@codesourcery.com>
	    David Ung  <davidu@mips.com>

	* config/mips/mips.c (TARGET_SCHED_INIT): Define.
	(TARGET_SCHED_REORDER2): Define.
	(mips_maybe_swap_ready): New.
	(mips_last_74k_agen_insn): New.
	(mips_74k_agen_init): New.
	(mips_74k_agen_reorder): New function to group loads and stores
	in the ready queue.
	(mips_sched_init): New.  
	(mips_sched_reorder): Don't do initialization here.  Call
	mips_74k_agen_reorder.
	(mips_variable_issue): Call mips_74k_agen_init.

2007-08-10  Aldy Hernandez  <aldyh@redhat.com>

	* tree-flow-inline.h (get_filename): Remove.

2007-08-10  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips-protos.h (mips_address_insns): Add a boolean
	argument.
	(mips_fetch_insns): Delete in favor of...
	(mips_load_store_insns): ...this new function.
	* config/mips/mips.c (mips_address_insns): Add a boolean argument
	to say whether multiword moves _might_ be split.
	(mips_fetch_insns): Delete in favor of...
	(mips_load_store_insns): ...this new function.
	(mips_rtx_costs): Update the call to mips_address_insns.
	(mips_address_cost): Likewise.
	* config/mips/mips.md (length): Use mips_load_store_insns instead
	of mips_fetch_insns.
	* config/mips/constraints.md (R): Use mips_address_insns rather
	than mips_fetch_insns.  Assume that the move never needs to be split.

2007-08-09  Sandra Loosemore  <sandra@codesourcery.com>

	* config/mips/mips.opt (mhard-float, msoft-float): Make these
	control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
	than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.  
	* config/mips/mips.h (mips16_hard_float): Delete.
	(TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these
	definitions, and replace with....
	(TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
	* config/mips/mips.c (mips16_hard_float): Delete.  Replace
	all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
	(MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
	(override_options): Replace MASK_SOFT_FLOAT references with
	MASK_SOFT_FLOAT_ABI.  Delete twiddling with MASK_SOFT_FLOAT
	and mips16_hard_float when TARGET_MIPS16.
	
2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR c/32796
	* c-typeck.c (build_binary_op): Check for non pointer types before
	calling int_fits_type_p.

2007-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/32813
	* fold-const.c (omit_one_operand): Return only the ommitted expression
	if the result is an empty statement.
	(pedantic_omit_one_operand): Likewise.

2007-08-09  Daniel Berlin  <dberlin@dberlin.org>

	* c-typeck.c (readonly_error): Improve error for assignment.
	
	* c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
	expression. 
	(pp_c_expression): Ditto.

2007-08-09  Simon Baldwin  <simonb@google.com>

	* simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
	break that was preventing simplify_associative_operation() for xor.

2007-08-09  Sandra Loosemore  <sandra@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>

	* doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
	Document change in interpretation of value from boolean to
	tri-state integer.
	* optabs.c (expand_ffs, expand_ctz): New functions to compute
	ffs and ctz using clz.
	(expand_unop): Call them.
	* config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
	result value.
	(CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
	* config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to
	enable the new ffs expansion on this target.

2007-08-09  Jan Hubicka  <jh@suse.cz>

	* optabs.c (expand_widen_pattern_expr): Use optabs accestors.
	(expand_ternary_op): Likewise.
	(expand_vec_shift_expr): Likewise.
	(expand_binop_directly): Likewise.
	(expand_binop): Likewise.
	(sign_expand_binop): Likewise.
	(expand_twoval_unop): Likewise.
	(expand_twoval_binop): Likewise.
	(expand_twoval_binop_libfunc): Likewise.
	(widen_clz): Likewise.
	(widen_bswap): Likewise.
	(expand_parity): Likewise.
	(expand_unop): Likewise.
	(expand_abs_nojump): Likewise.
	(expand_copysign): Likewise.
	(emit_no_conflict_block): Likewise.
	(emit_libcall_block): Likewise.
	(can_compare_p): Likewise.
	(prepare_cmp_insn): Likewise.
	(emit_cmp_and_jump_insn_1): Likewise.
	(prepare_float_lib_cmp): Likewise.
	(emit_conditional_add): Likewise.
	(gen_add2_insn): Likewise.
	(have_add2_insn): Likewise.
	(gen_sub2_insn): Likewise.
	(have_sub2_insn): Likewise.
	(can_extend_p): Likewise.
	(can_fix_p): Likewise.
	(can_float_p): Likewise.
	(expand_float): Likewise.
	(expand_fix): Likewise.
	(expand_sfix_optab): Likewise.
	(new_optab): Likewise.
	(new_convert_optab): Likewise.
	(init_libfuncs): Likewise.
	(init_interclass_conv_libfuncs): Likewise.
	(init_intraclass_conv_libfuncs): Likewise.
	(set_conv_libfunc): Likewise.
	(init_optabs): Likewise.
	(debug_optab_libfuncs): Likewise.
	(gen_cond_trap): Likewise.
	* optabs.h (optab_handler, convert_optab_hanlder): New.
	* genopinit.c: Update optabs generation table.
	* reload.c (find_reloads_address_1): Use optabs accestors.
	* builtins.c (expand_builtin_mathfn): Likewise.
	(expand_builtin_mathfn_2): Likewise.
	(expand_builtin_mathfn_3): Likewise.
	(expand_builtin_interclass_mathfn): Likewise.
	(expand_builtin_sincos): Likewise.
	(expand_builtin_cexpi): Likewise.
	(expand_builtin_powi): Likewise.
	(expand_builtin_strlen): Likewise.
	* dojump.c (do_jump): Likewise.
	* expr.c (convert_move): Likewise.
	(move_by_pieces): Likewise.
	(move_by_pieces_ninsns): Likewise.
	(can_store_by_pieces): Likewise.
	(store_by_pieces_1): Likewise.
	(emit_move_via_integer): Likewise.
	(emit_move_complex): Likewise.
	(emit_move_ccmode): Likewise.
	(emit_move_insn_1): Likewise.
	(emit_single_push_insn): Likewise.
	(store_constructor): Likewise.
	(expand_expr_real_1): Likewise.
	(do_store_flag): Likewise.
	* ada/misc.c (gnat_compute_largest_alignment): Likewise.
	(enumerate_modes): Likewise.
	* tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
	(supportable_widening_operation): Likewise.
	(supportable_narrowing_operation): Likewise.
	* expmed.c (store_bit_field_1): Likewise.
	(extract_bit_field_1): Likewise.
	(expand_mult_highpart_optab): Likewise.
	(expand_smod_pow2): Likewise.
	(expand_divmod): Likewise.
	(emit_store_flag): Likewise.
	* tree-vect-patterns.c
	(vect_pattern_recog_1): Likewise.
	* tree-ssa-loop-prefetch.c
	(nontemporal_store_p): Likewise.
	* tree-vect-transform.c (vect_model_reduction_cost): Likewise.
	(vect_create_epilog_for_reduction): Likewise.
	(vectorizable_reduction): Likewise.
	(vectorizable_operation): Likewise.
	(vect_strided_store_supported): Likewise.
	(vectorizable_store): Likewise.
	(vect_strided_load_supported): Likewise.
	(vectorizable_load): Likewise.
	* combine.c (simplify_comparison): Likewise.
	* tree-vect-generic.c
	(type_for_widest_vector_mode): Likewise.
	(expand_vector_operations_1): Likewise.
	* config/spu/spu.c (spu_expand_mov): Likewise.
	(spu_emit_vector_compare): Likewise.
	* config/rs6000/rs6000.c
	(rs6000_emit_vector_compare): Likewise.
	* stmt.c (add_case_node): Likewise.
	* reload1.c (gen_reload):

2007-08-09  Michael Matz  <matz@suse.de>

	* tree.h (fixed_zerop): Declare as taking a const_tree.
	* tree.c (fixed_zerop): Take a const_tree.

2007-08-09  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-transform.c (vectorizable_store): Remove call to
	copy_virtual_operands() and call mark_symbols_for_renaming() for
	the created vector store.
	(vect_setup_realignment): Don't call copy_virtual_operands() and
	update_vuses_to_preheader(). 
	(vectorizable_load): Don't call copy_virtual_operands(). 
	(update_vuses_to_preheader): Remove.

2007-08-08  Chao-ying Fu  <fu@mips.com>

	* tree.def (FIXED_POINT_TYPE): New type.
	(FIXED_CST): New constant.
	(FIXED_CONVERT_EXPR): New expr.
	* doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
	(Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
	* tree.h (struct tree_base): Add saturating_flag.
	Remove one bit of spare for saturating_flag.
	(NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
	(NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
	FIXED_POINT_TYPE_P): Define.
	(TYPE_SATURATING): Define.
	(TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
	(struct tree_fixed_cst): New.
	(TYPE_IBIT, TYPE_FBIT): Define.
	(tree_node): Add fixed_cst.
	(enum tree_index): Add new enumeration values of
	TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
	TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,
	TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE,
	TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE,
	TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE,
	TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
	TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE,
	TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE,
	TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE,
	TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE,
	TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE,
	TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE,
	TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE,
	TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE,
	TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
	TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE,
	TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE,
	TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE.
	(sat_short_fract_type_node, sat_fract_type_node,
	sat_long_fract_type_node, sat_long_long_fract_type_node,
	sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node,
	sat_unsigned_long_fract_type_node,
	sat_unsigned_long_long_fract_type_node, short_fract_type_node,
	fract_type_node, long_fract_type_node, long_long_fract_type_node,
	unsigned_short_fract_type_node, unsigned_fract_type_node,
	unsigned_long_fract_type_node, unsigned_long_long_fract_type_node,
	sat_short_accum_type_node, sat_accum_type_node,
	sat_long_accum_type_node, sat_long_long_accum_type_node,
	sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node,
	sat_unsigned_long_accum_type_node,
	sat_unsigned_long_long_accum_type_node, short_accum_type_node,
	accum_type_node, long_accum_type_node, long_long_accum_type_node,
	unsigned_short_accum_type_node, unsigned_accum_type_node,
	unsigned_long_accum_type_node, unsigned_long_long_accum_type_node,
	qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node,
	uqq_type_node, uhq_type_node, usq_type_node, udq_type_node,
	utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node,
	sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node,
	sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node,
	sat_utq_type_node, ha_type_node, sa_type_node, da_type_node,
	ta_type_node, uha_type_node, usa_type_node, uda_type_node,
	uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node,
	sat_ta_type_node, sat_uha_type_node, sat_usa_type_node,
	sat_uda_type_node, sat_uta_type_node): New macro.
	(make_fract_type, make_accum_type): Declare.
	(make_signed_fract_type, make_unsigned_fract_type,
	make_sat_signed_fract_type, make_sat_unsigned_fract_type,
	make_signed_accum_type, make_unsigned_accum_type,
	make_sat_signed_accum_type, make_sat_unsigned_accum_type,
	make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type,
	make_or_reuse_sat_signed_fract_type,
	make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type,
	make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type,
	make_or_reuse_sat_unsigned_accum_type): New macro.
	(fixed_zerop): Declare.
	* defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
	LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
	SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
	LONG_LONG_ACCUM_TYPE_SIZE): Define.
	* treestruct.def: Add TS_FIXED_CST.
	* Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h.
	(tree.o): Likewise.
	(tree-dump.o): Likewise.
	(print-tree.o): Likewise.
	(tree-pretty-print.o): Likewise.
	(fold-const.o): Likewise.
	* tree-complex.c (some_nonzerop): Handle FIXED_CST.
	* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST.
	(is_gimple_min_invariant): Handle FIXED_CST.
	* stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT,
	MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
	MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
	(layout_type): Handle FIXED_POINT_TYPE.
	(make_fract_type, make_accum_type): New functions.
	* tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE.
	* tree-dump.c (fixed-value.h): New include.
	(dump_fixed): New function.
	(dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST.
	* tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE.
	(estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR.
	* tree-pretty-print.c (fixed-value.h): New include.
	(dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and
	FIXED_CONVERT_EXPR.
	* tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST.
	* tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST.
	* tree-ssa-pre.c (poolify_tree): Handle FIXED_CST.
	* tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation
	for non-saturating fixed-point types.
	(reassociate_bb): Likewise.
	* emit-rtl.c (fixed-value.h): New include.
	(fconst0, fconst1): New array.
	(init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes.
	* tree-vect-generic.c expand_vector_operation): Support
	MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and
	MODE_VECTOR_UACCUM.
	(type_for_widest_vector_mode): Add one parameter for the 
	saturating flag.
	Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
	vector mode.
	Pass the satp parameter to type_for_mode for fixed-point types.
	(expand_vector_operations_1): Pass the saturating flag to
	type_for_widest_vector_mode.
	Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
	and MODE_VECTOR_UACCUM.
	* tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST.
	(vectorizable_condition): Likewise.
	* tree.c (fixed-value.h): New include.
	(tree_code_size): Support FIXED_CST.
	(build_fixed): New function.
	(build_one_cst): Support FIXED_POINT_TYPE for accum types.
	(fixed_zerop): New function.
	(tree_node_structure): Support FIXED_CST.
	(type_contains_placeholder_1): Support FIXED_POINT_TYPE.
	(build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE.
	(type_hash_eq): Handle FIXED_POINT_TYPE.
	(simple_cst_equal): Support FIXED_CST.
	(iterative_hash_expr): Handle FIXED_CST.
	(get_unwidened): Make sure type is not FIXED_POINT_TYPE.
	(get_narrower): Likewise.
	(variably_modified_type_p): Handle FIXED_POINT_TYPE.
	(make_or_reuse_fract_type, make_or_reuse_accum_type): New functions.
	(build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and
	MAKE_FIXED_MODE_NODE macros to initialize fixed-point type
	nodes.
	(build_vector_type_for_mode): Handle MODE_VECTOR_FRACT,
	MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
	(initializer_zerop): Support FIXED_CST.
	(walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE.
	* dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or
	DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE.
	(is_base_type): Handle FIXED_POINT_TYPE.
	(add_type_attribute): Handle FIXED_POINT_TYPE.
	(gen_type_die_with_usage): Handle FIXED_POINT_TYPE.
	* print-tree.c (fixed-value.h): New include.
	(print_node_brief): Support FIXED_CST.
	(print_node): Support FIXED_POINT_TYPE and FIXED_CST.
	* c-pretty-print.c (fixed-value.h): New include.
	(pp_c_type_specifier): Handle FIXED_POINT_TYPE.  Need to pass
	TYPE_SATURATING to c_common_type_for_mode for fixed-point modes.
	(pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE.
	Support fixed-point types for inner items in VECTOR_TYPE.
	(pp_c_direct_declarator): Likewise.
	(pp_c_declarator): Likewise.
	(pp_c_fixed_constant): New function.
	(pp_c_constant): Handle FIXED_CST.
	(pp_c_primary_expression): Likewise.
	(pp_c_expression): Likewise.
	* fold-const.c (fixed-value.h): New include.
	(negate_expr_p): Return true for FIXED_CST.
	(fold_negate_expr): Support FIXED_CST.
	(split_tree): Support FIXED_CST.
	(const_binop): Support FIXED_CST.
	(fold_convert_const_int_from_fixed): New function to convert from
	fixed to int.
	(fold_convert_const_real_from_fixed): New function to convert from
	fixed to real.
	(fold_convert_const_fixed_from_fixed): New function to convert from
	fixed to another fixed.
	(fold_convert_const_fixed_from_int): New function to convert from
	int to fixed.
	(fold_convert_const_fixed_from_real): New function to convert from
	real to fixed.
	(fold_convert_const): Support conversions from fixed to int, from
	fixed to real, from fixed to fixed, from int to fixed, and from real
	to fixed.
	(fold_convert): Support FIXED_CST and FIXED_POINT_TYPE.
	(operand_equal_p): Support FIXED_CST.
	(make_range): For fixed-point modes, we need to pass the
	saturating flag as the 2nd parameter.
	(tree_swap_operands_p): Handle FIXED_CST.
	(fold_plusminus_mult_expr): For fract modes, we cannot generate
	constant 1.
	(fold_unary): Support FIXED_CONVERT_EXPR.
	(fold_binary): Handle FIXED_CST.
	Make sure the type is not saturating, before associating operations.
	Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2).
	(tree_expr_nonnegative_warnv_p): Handle FIXED_CST.
	(fold_negate_const): Support FIXED_CST.
	(fold_relational_const): Support FIXED_CST.
	* gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE.
	(gimplify_expr): Handle FIXED_CST.
	(gimplify_type_sizes): Handle FIXED_POINT_TYPE.
	* ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST.
	* ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE.
	* doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE,
	FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
	SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
	LONG_LONG_ACCUM_TYPE_SIZE.
	* dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE.
	* c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE.
	* tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE.
	* expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT,
	MODE_ACCUM, and MODE_UACCUM.
	* tree-vectorizer.c (vect_is_simple_reduction): Check for saturating
	fixed-point types to disable reduction.
	* explow.c (promote_mode): Support FIXED_POINT_TYPE.

2007-08-08  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/x-rs6000: New file.
	* config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu.
	* config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu.
	(EXTRA_SPEC_FUNCTIONS): Define.
	(HAVE_LOCAL_CPU_DETECT): Define.
	(CC1_CPU_SPEC): Define.
	* config/rs6000/driver-rs6000.c: New file.
	* config/rs6000/aix.h (CC1_SPEC): Define.
	* config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu.
	* config.host: Add x-rs6000 to host_xmake_file if host and target
	are rs6000 or powerpc.

2007-08-08  Paolo Bonzini <paolo.bonzini@lu.unisi.ch>

	* config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.

2007-08-08  Richard Sandiford  <richard@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>
	    Chao-ying Fu  <fu@mips.com>
	    Nigel Stephens  <nigel@mips.com>
	    David Ung  <davidu@mips.com>

	* doc/invoke.texi (-mcode-readable): Document.
	* config/mips/mips.opt (mcode-readable): New option.
	* config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type.
	* config/mips/mips.h (mips_code_readable_setting): New enum.
	(mips_code_readable): Declare.
	(TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros.
	(TARGET_MIPS16_SHORT_JUMP_TABLES): New macro.
	(JUMP_TABLES_IN_TEXT_SECTION): Use it.
	(CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise.  Remove
	boiler-plate comments.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
	* config/mips/mips.c (mips_code_readable): New variable.
	(mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for
	MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES.  Use both the
	context and -mcode-readable setting to restrict the use of
	SYMBOL_PC_RELATIVE for MIPS16 constant pool references.
	Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed.
	(mips_symbolic_constant_p): Handle SYMBOL_32_HIGH.
	(mips_blocks_for_constant_p): Only return false for
	TARGET_MIPS16_PCREL_LOADS.
	(mips_symbol_insns_1): Treat HIGHs as 2 extended instructions
	for MIPS16.  Handle SYMBOL_32_HIGH.
	(mips_const_insns): Allow HIGHs for MIPS16 too.
	(mips_unspec_address_offset): New function, split out from...
	(mips_unspec_address): ...here.
	(mips_output_move): Handle MIPS16 HIGH moves.  Use "li" to load
	16-bit symbolic constants.  Assert approropiate conditions for
	using the "la" and "dla" macros.
	(mips_handle_option): Handle -mcode-readable=.
	(override_options): Use %hi/%lo relocations for TARGET_MIPS16 too.
	Set up mips_lo_relocs[SYMBOL_32_HIGH].
	(mips_strip_unspec_address): New function, split out from...
	(print_operand_reloc): ...here.
	(print_operand): Pass constants through mips_strip_unspec_address.
	(print_operand_address): Likewise.
	(mips_output_mi_thunk): Remove guard of mips16_lay_out_constants.
	(mips_select_rtx_section): Remove MIPS16 handling.
	(mips16_gp_pseudo_reg): Check currently_expanding_to_rtl.
	(mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC.
	(mips16_lay_out_constants): Do nothing unless
	TARGET_MIPS16_PCREL_LOADS.
	(mips_avoid_hazards): Remove guard of mips16_lay_out_constants.
	* config/mips/mips.md: Split HIGHs for MIPS16.
	(tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES.

2007-08-08  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips-protos.h (mips_emit_move): Declare.
	* config/mips/mips.c (mips_emit_move): New function.
	(mips_force_temporary): Use mips_emit_move instead of emit_move_insn.
	(mips_legitimize_const_move): Likewise.
	(mips_legitimize_move): Likewise.
	(mips_split_64bit_move): Likewise.
	(mips_restore_gp): Likewise.
	(mips_load_call_address): Likewise.
	(mips_emit_fcc_reload): Likewise.
	(mips_set_return_address): Likewise.
	(mips_block_move_straight): Likewise.
	(mips_block_move_loop): Likewise.
	(mips_setup_incoming_varargs): Likewise.
	(mips_save_reg): Likewise.
	(mips_expand_prologue): Likewise.
	(mips_restore_reg): Likewise.
	(mips_expand_epilogue): Likewise.
	(mips_output_mi_thunk): Likewise.
	(build_mips16_call_stub): Likewise.
	(mips_builtin_branch_and_move): Likewise.
	* config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise.
	* config/mips/mips.md (fixuns_truncdfsi2): Likewise.
	(fixuns_truncdfdi2): Likewise.
	(fixuns_truncsfsi2): Likewise.
	(fixuns_truncsfdi2): Likewise.
	(loadgp_absolute): Likewise.
	(builtin_setjmp_setup): Likewise.
	(builtin_longjmp): Likewise.
	(untyped_call): Likewise.

2007-08-08  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips-protos.h (mips_split_symbol): Add a mode and
	an "rtx *" argument.  Return a bool.
	* config/mips/mips.c (mips_split_symbol): Accept arbitrary source
	values and return true if they can be split.  Take the same kind of
	mode argument as mips_symbol_insns.  Add a "lo_sum_out" parameter
	and store the lo_sum there if nonnull.  Use the symbol type to
	determine whether a $gp or HIGH is needed.
	(mips_legitimize_address): Update call to mips_split_symbol and
	simplify accordingly.
	(mips_legitimize_const_move): Likewise.
	* config/mips/mips.md: In the combine define_split,
	check mips_split_symbol instead of splittable_symbolic_operand.
	Update use of mips_split_symbol in the generator code.
	* config/mips/predicates.md (splittable_symbolic_operand): Delete.

2007-08-08  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.c (mips_symbolic_address_p): Delete.
	(mips_symbol_insns_1): New function, split out from...
	(mips_symbol_insns): ...here.  Take a mode argument.  Treat loads
	and stores separately from load addresses.
	(mips_classify_address): Replace uses of mips_symbolic_address_p
	with uses of mips_symbol_insns.
	(mips_address_insns): Update calls to mips_symbol_insns.
	(mips_const_insns): Likewise.
	(mips_legitimize_address): Likewise.

2007-08-08  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type.
	* config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS
	block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS.
	Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for
	non-call contexts if TARGET_MIPS16.
	(mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM.
	(mips_symbolic_address_p): Likewise.  Remove special TARGET_MIPS16
	code for SYMBOL_ABSOLUTE.
	(mips_symbol_insns): Likewise.

2007-08-08  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips-protos.h (mips_symbol_context): New enumeration.
	* config/mips/mips.c (mips_classify_symbol): Take a context argument.
	(mips_symbolic_constant_p): Likewise.  Update the call to
	mips_classify_symbol.
	(mips_classify_address): Update the calls to mips_symbolic_constant_p.
	(mips_const_insns): Likewise.  Update the call to mips_classify_symbol.
	(mips_legitimize_address): Update the call to mips_symbolic_constant_p.
	(print_operand_reloc): Add a context argument.  Update the call to
	mips_symbolic_constant_p.
	(print_operand): Update the calls to print_operand_reloc.
	(print_operand_address): Use print_operand_reloc rather than
	print_operand.
	(mips_rewrite_small_data_p): Add a context argument.  Update the call
	to mips_symbolic_constant_p.
	(mips_small_data_pattern_1): Make DATA the containing mem.
	Update the call to mips_rewrite_small_data_p.
	(mips_rewrite_small_data_1): Likewise.
	(mips_use_anchors_for_symbol_p): Update the call to
	mips_symbolic_constant_p.
	* config/mips/predicates.md (const_call_insn_operand): Likewise.
	(splittable_symbolic_operand): Likewise.
	(move_operand): Likewise.
	(absolute_symbolic_operand): Likewise.
	(got_disp_operand): Likewise.
	(got_page_ofst_operand): Likewise.

2007-08-08  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to...
	(SYMBOL_ABSOLUTE): ...this.
	(SYMBOL_SMALL_DATA): Rename to...
	(SYMBOL_GP_RELATIVE): ...this.
	(SYMBOL_CONSTANT_POOL): Rename to...
	(SYMBOL_PC_RELATIVE): ...this.
	* config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p)
	(mips_symbolic_address_p, mips_symbol_insns, override_options)
	(mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update
	after above changes.
	* config/mips/predicates.md (const_call_insn_operand): Likewise.
	(general_symbolic_operand): Rename to...
	(absolute_symbolic_operand): ...this.
	* config/mips/mips.md: Update after above changes.

2007-08-08  Vladimir Yanovsky  <yanov@il.ibm.com>
	    Revital Eres  <eres@il.ibm.com>

	* ddg.c (print_ddg): Add dump information.
	* modulo-sched.c (print_node_sched_params): Add parameter and
	verbosity.
	(calculate_maxii): Remove function.
	(undo_generate_reg_moves): Likewise.
	(undo_permute_partial_schedule): Likewise.
	(kernel_number_of_cycles): Likewise.
	(MAXII_FACTOR): New definition to calculate the upper bound of II.
	(sms_schedule): Use it.  Remove profitability checks.
	(sms_schedule_by_order): Fix order of nodes within the cycle.

2007-08-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
	-profile option, add pie support.
	(ENDFILE_SPEC): New spec.
	* config/gnu.h (LIB_SPEC): Add -profile option.

2007-08-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* config/i386/gnu.h (CPP_SPEC): Add -pthread option.
	* config/gnu.h (LIB_SPEC): Likewise.

2007-08-07  Yaz Saito  <saito@google.com>
	    Ian Lance Taylor  <iant@google.com>

	* common.opt (finstrument-functions-exclude-function-list): New
	option.
	(finstrument-functions-exclude-file-list): New option.
	* opts.c (char_p): Define and DEF_VEC.
	(flag_instrument_functions_exclude_functions): New static
	variable.
	(flag_instrument_functions_exclude_files): New static variable.
	(add_instrument_functions_exclude_list): New static function.
	(flag_instrument_functions_exclude_p): New function.
	(common_handle_option): Handle new options.
	* flags.h (flag_instrument_functions_exclude_p): Declare.
	* gimplify.c (gimplify_function_tree): Call
	flag_instrument_functions_exclude_p.
	* doc/invoke.texi (Option Summary): Mention new options.
	(Code Gen Options): Document new options.

2007-08-07  Ian Lance Taylor  <iant@google.com>

	PR rtl-optimization/32776
	* lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
	(resolve_use): Likewise.
	(decompose_multiword_subregs): Remove "changed" local variable.

2007-08-07  Carlos O'Donell  <carlos@codesourcery.com>

	* configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
	* configure: Regenerate.
	* config.in: Regenerate.
	* gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options
	spec string.

2007-08-07  Ian Lance Taylor  <iant@google.com>

	* lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
	note, just delete the insn.

2007-08-07  Andreas Schwab  <schwab@suse.de>

	PR bootstrap/32973
	* gengtype-lex.l: Ignore backslash/newline pair while scanning a
	struct definition.

2007-08-07  Andreas Krebbel  <krebbel1@de.ibm.com>

	* lower-subreg.c (resolve_subreg_use): Remove assertion.
	(find_decomposable_shift_zext, resolve_shift_zext): New functions.
	(decompose_multiword_subregs): Use the functions above to decompose
	multiword shifts and zero-extends.

2007-08-07  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* doc/sourcebuild.texi (Test Directives): Fix "compile" and
	"assemble" descriptions which were swapped.

2007-08-06  Chao-ying Fu  <fu@mips.com>

	* fixed-value.h: New file.
	* fixed-value.c: New file.
	* Makefile.in (OBJS-common): Add fixed-value.o.
	(fixed-value.o): New rule.
	(GTFILES): Add fixed-value.h.
	* double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT
	to compare a.low and b.low.
	* gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef.

2007-08-06  H.J. Lu  <hongjiu.lu@intel.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	PR target/31868
	* config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
	tmake_file.
	(x86_64-*-netbsd*): Likewise.
	(x86_64-*-linux*): Likewise.
	(x86_64-*-kfreebsd*-gnu): Likewise.
	(x86_64-*-knetbsd*-gnu): Likewise.
	(i[34567]86-*-solaris2.1[0-9]*): Likewise.

	* config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.

	* config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
	Add -fno-asynchronous-unwind-tables.

	* config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
	* config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
	* config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
	* config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
	* config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.

2007-08-06  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
	(TARGET_C_MODE_FOR_SUFFIX): New.

2007-08-06  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.

2007-08-06  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.

2007-08-06  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md: Check TARGET_ macros and optimize_size
	before checking function returns in conditional expressions.

2007-08-06  Alfred Minarik  <a.minarik@aon.at>

	PR pch/13676
	* doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.

2007-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/32988
	* tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
	for INTEGRAL_TYPE_P.

2007-08-05  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Remove --enable-checking=df from default settings.
	* tree-pass.h (TODO_df_verify): New.  Shift TODO_mark_first_instance.
	* df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
	if the parameter is true.
	(df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
	DF_VERIFY_SCHEDULED flag is true.
	* df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
	(df_finish_pass): Adjust prototype.
	* passes.c (execute_todo): Schedule verification if TODO_df_verify is
	true.

	* see.c (pass_see): Add TODO_df_verify.
	* loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
	* global.c (rest_of_handle_global_alloc): Schedule verification
	after the pass.
	* local-alloc.c (rest_of_handle_local_alloc): Schedule verification
	before the pass.
	* function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
	* gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
	* loop-iv.c (iv_analysis_done): Schedule verification after the pass.

	* config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
	* config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
	* config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.

2007-08-05  Vladimir Yanovsky  <yanov@il.ibm.com>
	    Revital Eres <eres@il.ibm.com>

	* doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
	flag.
	* ddg.c (create_ddg_dependence): Rename to...
	(create_ddg_dep_from_intra_loop_link): This.  Do not check
	for interloop edges.  Do not create anti dependence edge when
	a true dependence edge exists in the opposite direction and
	-fmodulo-sched-allow-regmoves is set.
	(build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link.
	(add_cross_iteration_register_deps): Create anti dependence edge
	when -fno-modulo-sched-allow-regmoves is set.
	* common.opt (-fmodulo-sched-allow-regmoves): New flag.

2007-08-04  Richard Sandiford  <richard@codesourcery.com>

	* config/arm/arm.md (movsi): Add braces.

2007-08-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/32780
	* fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of
	operands for the folding of "A - (A & B)" into "~B & A"; cast them
	to type.

2007-08-03  Zdenek Dvorak  <ook@ucw.cz>

	* tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops'
	state accessor functions.
	* cfgloopmanip.c (remove_path, create_preheaders,
	force_single_succ_latches, fix_loop_structure): Ditto.
	* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
	tree_duplicate_loop_to_header_edge): Ditto.
	* cfgloopanal.c (mark_irreducible_loops): Ditto.
	* loop-init.c (loop_optimizer_init, loop_optimizer_finalize):
	Ditto.
	* tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures,
	cleanup_tree_cfg): Ditto.
	* tree-cfg.c (tree_merge_blocks): Ditto.
	* cfgloop.c (rescan_loop_exit, record_loop_exits,
	release_recorded_exits, get_loop_exit_edges, verify_loop_structure,
	loop_preheader_edge, single_exit): Ditto.
	(flow_loops_find): Do not clear loops->state.
	* cfgloop.h (loops_state_satisfies_p, loops_state_set,
	loops_state_clear): New functions.

2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/32399
	* tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
	when adding to the base and convert ELT to sizetype instead of type.

2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/32304
	* ipa-reference.c (has_proper_scope_for_analysis): Return false when
	the decl's type has TYPE_NEEDS_CONSTRUCTING set.

2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/32935
	* fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
	 correct type the negate expression.

2007-08-03  Jan Hubicka  <jh@suse.cz>

	* config/i386/i386.c (setup_incoming_varargs_64): Tolerate 64bit
	preferred stack boundary.

2007-08-03  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (struct processor_cost): Change
	l1_cache_lines to l1_cache_size.  Add l2_cache_size.
	(*_cost): Convert l1 cache information to kilobytes.  Add l2 cache
	information.
	(rios1_costs, rios2_cost): Correct cache line size.
	(rs6000_override_options): Set l2-cache-size parameter.

2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
	    Diego Novillo  <dnovillo@google.com>

	PR 31521
	* tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify
	if the range includes 0.

2007-08-03  Ben Elliston  <bje@au.ibm.com>

	* config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate
	mode to unspec expressions to silence a warning from the generator
	programs.
	
2007-08-02  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/constraints.md ("U"): Make constraint vector only.

2007-08-02  Nathan Froyd  <froydnj@codesourcery.com>

	PR middle-end/25446
	* c-objc-common.c (c_cannot_inline_tree_fn): Check for an
	always_inline attribute on the function decl.

2007-08-02  Nathan Froyd  <froydnj@codesourcery.com>

	PR middle-end/25445
	* varasm.c (default_binds_local_p_1): Consult flag_whole_program
	if we are compiling with -fPIC.

2007-08-02  Sandra Loosemore  <sandra@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>

	* longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0):
	Define for MIPS32 and MIPS64.

2007-08-02  Nick Clifton  <nickc@redhat.com>

	* config/host-hpux.c: Change copyright header to refer to version
	3 of the GNU General Public License and to point readers at the
	COPYING3 file and the FSF's license web page.
	* config/alpha/predicates.md, config/alpha/vms-ld.c,
	config/alpha/linux.h, config/alpha/alpha.opt,
	config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h,
	config/alpha/vms-unwind.h, config/alpha/ev4.md,
	config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c,
	config/alpha/alpha.h, config/alpha/sync.md,
	config/alpha/openbsd.h, config/alpha/alpha.md,
	config/alpha/alpha-modes.def, config/alpha/ev5.md,
	config/alpha/alpha-protos.h, config/alpha/freebsd.h,
	config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h,
	config/alpha/constraints.md, config/alpha/osf.h,
	config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h,
	config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h,
	config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def,
	config/frv/frv-asm.h, config/frv/frv-protos.h,
	config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h,
	config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h,
	config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt,
	config/s390/2064.md, config/s390/2084.md, config/s390/s390.md,
	config/s390/s390.opt, config/s390/s390-modes.def,
	config/s390/fixdfdi.h, config/s390/constraints.md,
	config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h,
	config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md,
	config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md,
	config/m32c/m32c-pragma.c, config/m32c/m32c.h,
	config/m32c/prologue.md, config/m32c/m32c.abi,
	config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md,
	config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt,
	config/m32c/t-m32c, config/m32c/m32c-modes.def,
	config/m32c/jump.md, config/m32c/shift.md,
	config/m32c/m32c-protos.h, config/libgloss.h,
	config/spu/spu-protos.h, config/spu/predicates.md,
	config/spu/spu-builtins.h, config/spu/spu.c,
	config/spu/spu-builtins.def, config/spu/spu-builtins.md,
	config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md,
	config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt,
	config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h,
	config/sparc/hypersparc.md, config/sparc/predicates.md,
	config/sparc/linux.h, config/sparc/sp64-elf.h,
	config/sparc/supersparc.md, config/sparc/cypress.md,
	config/sparc/openbsd1-64.h, config/sparc/openbsd64.h,
	config/sparc/niagara.md, config/sparc/sparc.md,
	config/sparc/long-double-switch.opt, config/sparc/ultra3.md,
	config/sparc/sparc.opt, config/sparc/sync.md,
	config/sparc/sp-elf.h, config/sparc/sparc-protos.h,
	config/sparc/ultra1_2.md, config/sparc/biarch64.h,
	config/sparc/sparc.c, config/sparc/little-endian.opt,
	config/sparc/sysv4-only.h, config/sparc/sparc.h,
	config/sparc/linux64.h, config/sparc/freebsd.h,
	config/sparc/sol2.h, config/sparc/rtemself.h,
	config/sparc/netbsd-elf.h, config/sparc/vxworks.h,
	config/sparc/sparc-modes.def, config/sparc/sparclet.md,
	config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h,
	config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md,
	config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt,
	config/m32r/linux.h, config/m32r/constraints.md,
	config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt,
	config/darwin-c.c, config/darwin.opt, config/i386/i386.h,
	config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h,
	config/i386/i386.md, config/i386/netware-crt0.c,
	config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h,
	config/i386/kaos-i386.h, config/i386/winnt-stubs.c,
	config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h,
	config/i386/sol2.h, config/i386/constraints.md,
	config/i386/netware-libgcc.c, config/i386/sysv5.h,
	config/i386/predicates.md, config/i386/geode.md,
	config/i386/x86-64.h, config/i386/kfreebsd-gnu.h,
	config/i386/freebsd64.h, config/i386/vxworksae.h,
	config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h,
	config/i386/rtemself.h, config/i386/netbsd-elf.h,
	config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c,
	config/i386/netware.h, config/i386/i386-modes.def,
	config/i386/sysv4-cpp.h, config/i386/i386-interix.h,
	config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h,
	config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h,
	config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h,
	config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md,
	config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt,
	config/i386/xm-mingw32.h, config/i386/linux64.h,
	config/i386/openbsdelf.h, config/i386/xm-cygwin.h,
	config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h,
	config/i386/winnt-cxx.c, config/i386/i386-interix3.h,
	config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c,
	config/i386/cygwin2.c, config/i386/i386-protos.h,
	config/i386/sync.md, config/i386/openbsd.h,
	config/i386/host-mingw32.c, config/i386/i386-aout.h,
	config/i386/nto.h, config/i386/biarch64.h,
	config/i386/i386-coff.h, config/i386/freebsd.h,
	config/i386/driver-i386.c, config/i386/knetbsd-gnu.h,
	config/i386/host-i386-darwin.c, config/i386/vxworks.h,
	config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h,
	config/darwin-protos.h, config/linux.opt, config/sol2.c,
	config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h,
	config/sh/linux.h, config/sh/elf.h, config/sh/superh.h,
	config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h,
	config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h,
	config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md,
	config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h,
	config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c,
	config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def,
	config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md,
	config/sh/superh64.h, config/sh/rtemself.h,
	config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h,
	config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h,
	config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c,
	config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def,
	config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h,
	config/avr/predicates.md, config/avr/constraints.md,
	config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt,
	config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h,
	config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h,
	config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt,
	config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt,
	config/c4x/c4x-modes.def, config/c4x/rtems.h,
	config/c4x/predicates.md, config/c4x/c4x.h,
	config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h,
	config/xtensa/predicates.md, config/xtensa/xtensa.c,
	config/xtensa/linux.h, config/xtensa/xtensa.h,
	config/xtensa/elf.h, config/xtensa/xtensa.md,
	config/xtensa/xtensa.opt, config/xtensa/constraints.md,
	config/xtensa/xtensa-protos.h, config/dbx.h,
	config/stormy16/predicates.md, config/stormy16/stormy16.md,
	config/stormy16/stormy16.c, config/stormy16/stormy16.opt,
	config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h,
	config/host-solaris.c, config/fr30/fr30.h,
	config/fr30/predicates.md, config/fr30/fr30-protos.h,
	config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt,
	config/vxworksae.h, config/sol2-c.c, config/lynx.h,
	config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md,
	config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c,
	config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h,
	config/m68hc11/m68hc12.h, config/openbsd-oldgas.h,
	config/host-linux.c, config/interix3.h, config/cris/cris.c,
	config/cris/predicates.md, config/cris/linux.h,
	config/cris/cris.h, config/cris/aout.h, config/cris/cris.md,
	config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt,
	config/cris/aout.opt, config/cris/cris-protos.h,
	config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h,
	config/iq2000/iq2000.h, config/iq2000/predicates.md,
	config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md,
	config/iq2000/iq2000.c, config/iq2000/iq2000.opt,
	config/host-darwin.c, config/mt/mt.md, config/mt/mt.c,
	config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h,
	config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h,
	config/chorus.h, config/mn10300/mn10300.c,
	config/mn10300/mn10300.opt, config/mn10300/predicates.md,
	config/mn10300/mn10300.h, config/mn10300/linux.h,
	config/mn10300/constraints.md, config/mn10300/mn10300-protos.h,
	config/mn10300/mn10300.md, config/ia64/predicates.md,
	config/ia64/itanium1.md, config/ia64/unwind-ia64.h,
	config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c,
	config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md,
	config/ia64/freebsd.h, config/ia64/ia64.md,
	config/ia64/ia64-modes.def, config/ia64/constraints.md,
	config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h,
	config/gofast.h, config/rtems.h, config/sol2-10.h,
	config/m68k/predicates.md, config/m68k/m68k.md,
	config/m68k/linux.h, config/m68k/m68k-modes.def,
	config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h,
	config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt,
	config/m68k/openbsd.h, config/m68k/m68k-aout.h,
	config/m68k/m68k.opt, config/m68k/m68020-elf.h,
	config/m68k/m68kelf.h, config/m68k/m68k-devices.def,
	config/m68k/uclinux-oldabi.h, config/m68k/m68k.c,
	config/m68k/constraints.md, config/m68k/rtemself.h,
	config/m68k/netbsd-elf.h, config/m68k/m68k.h,
	config/m68k/uclinux.h, config/rs6000/power4.md,
	config/rs6000/host-darwin.c, config/rs6000/6xx.md,
	config/rs6000/linux.h, config/rs6000/eabi.h,
	config/rs6000/aix41.opt, config/rs6000/xcoff.h,
	config/rs6000/secureplt.h, config/rs6000/linuxspe.h,
	config/rs6000/eabialtivec.h, config/rs6000/8540.md,
	config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h,
	config/rs6000/windiss.h, config/rs6000/603.md,
	config/rs6000/aix41.h, config/rs6000/cell.md,
	config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h,
	config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt,
	config/rs6000/darwin.md, config/rs6000/darwin64.h,
	config/rs6000/default64.h, config/rs6000/7xx.md,
	config/rs6000/darwin.opt, config/rs6000/spe.md,
	config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c,
	config/rs6000/rios2.md, config/rs6000/linuxaltivec.h,
	config/rs6000/7450.md, config/rs6000/linux64.h,
	config/rs6000/constraints.md, config/rs6000/440.md,
	config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c,
	config/rs6000/rs6000.c, config/rs6000/aix52.h,
	config/rs6000/rs6000.h, config/rs6000/power6.md,
	config/rs6000/predicates.md, config/rs6000/altivec.md,
	config/rs6000/aix64.opt, config/rs6000/rios1.md,
	config/rs6000/rs6000-modes.def, config/rs6000/rs64.md,
	config/rs6000/eabisim.h, config/rs6000/sysv4le.h,
	config/rs6000/darwin7.h, config/rs6000/dfp.md,
	config/rs6000/linux64.opt, config/rs6000/sync.md,
	config/rs6000/vxworksae.h, config/rs6000/power5.md,
	config/rs6000/lynx.h, config/rs6000/biarch64.h,
	config/rs6000/rs6000.md, config/rs6000/sysv4.opt,
	config/rs6000/eabispe.h, config/rs6000/e500.h,
	config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h,
	config/rs6000/netbsd.h, config/rs6000/e500-double.h,
	config/rs6000/aix.h, config/rs6000/vxworks.h,
	config/rs6000/40x.md, config/rs6000/aix51.h,
	config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md,
	config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def,
	config/arc/arc.h, config/mcore/mcore-elf.h,
	config/mcore/mcore-protos.h, config/mcore/predicates.md,
	config/mcore/mcore.md, config/mcore/mcore.c,
	config/mcore/mcore.opt, config/mcore/mcore.h,
	config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h,
	config/score/predicates.md, config/score/score-version.h,
	config/score/score-protos.h, config/score/misc.md,
	config/score/elf.h, config/score/score.c, config/score/mac.md,
	config/score/score7.md, config/score/score.h,
	config/score/score-conv.h, config/score/score-mdaux.c,
	config/score/score.md, config/score/score.opt,
	config/score/score-modes.def, config/score/score-mdaux.h,
	config/score/mul-div.S, config/arm/uclinux-elf.h,
	config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md,
	config/arm/symbian.h, config/arm/linux-elf.h,
	config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
	config/arm/elf.h, config/arm/aout.h, config/arm/arm.c,
	config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h,
	config/arm/strongarm-pe.h, config/arm/arm.h,
	config/arm/cortex-a8-neon.md, config/arm/semiaof.h,
	config/arm/cortex-a8.md, config/arm/uclinux-eabi.h,
	config/arm/arm-modes.def, config/arm/linux-eabi.h,
	config/arm/rtems-elf.h, config/arm/neon-schedgen.ml,
	config/arm/arm-cores.def, config/arm/arm-protos.h,
	config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h,
	config/arm/wince-pe.h, config/arm/neon.md,
	config/arm/constraints.md, config/arm/neon.ml,
	config/arm/xscale-elf.h, config/arm/strongarm-coff.h,
	config/arm/arm.opt, config/arm/arm926ejs.md,
	config/arm/predicates.md, config/arm/iwmmxt.md,
	config/arm/arm_neon.h, config/arm/unknown-elf.h,
	config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt,
	config/arm/neon-testgen.ml, config/arm/arm.md,
	config/arm/xscale-coff.h, config/arm/pe.c,
	config/arm/arm-generic.md, config/arm/pe.h,
	config/arm/kaos-strongarm.h, config/arm/freebsd.h,
	config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md,
	config/arm/strongarm-elf.h, config/arm/cirrus.md,
	config/arm/netbsd-elf.h, config/arm/vxworks.h,
	config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c,
	config/pa/predicates.md, config/pa/pa64-hpux.h,
	config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt,
	config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h,
	config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h,
	config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h,
	config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
	config/pa/pa-hpux1010.h, config/pa/pa-protos.h,
	config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h,
	config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h,
	config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt,
	config/pa/pa64-regs.h, config/pa/pa-modes.def,
	config/pa/constraints.md, config/darwin9.h, config/mips/4100.md,
	config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h,
	config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h,
	config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md,
	config/mips/7000.md, config/mips/9000.md, config/mips/4600.md,
	config/mips/linux64.h, config/mips/elforion.h,
	config/mips/constraints.md, config/mips/generic.md,
	config/mips/predicates.md, config/mips/4300.md,
	config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md,
	config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md,
	config/mips/5k.md, config/mips/vr4120-div.S,
	config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md,
	config/mips/mips-protos.h, config/mips/6000.md,
	config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h,
	config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h,
	config/mips/mips-modes.def, config/mips/vr.h,
	config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h,
	config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h,
	config/vax/vax.h, config/vax/elf.h, config/vax/vax.md,
	config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def,
	config/vax/openbsd1.h, config/vax/netbsd.h,
	config/vax/vax-protos.h, config/vax/netbsd-elf.h,
	config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h,
	config/h8300/rtems.h, config/h8300/predicates.md,
	config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h,
	config/h8300/h8300.md, config/h8300/h8300.opt,
	config/h8300/coff.h, config/h8300/h8300-protos.h,
	config/v850/v850.md, config/v850/predicates.md,
	config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt,
	config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c,
	config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h,
	config/mmix/mmix.h, config/mmix/predicates.md,
	config/mmix/mmix-protos.h, config/mmix/mmix.md,
	config/mmix/mmix.c, config/mmix/mmix.opt,
	config/mmix/mmix-modes.def, config/bfin/bfin.opt,
	config/bfin/rtems.h, config/bfin/bfin-modes.def,
	config/bfin/predicates.md, config/bfin/bfin-protos.h,
	config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md:
	Likewise.

2007-08-02  Richard Sandiford  <richard@codesourcery.com>

	* emit-rtl.c (reset_used_decls): Rename to...
	(set_used_decls): ...this.  Set the used flag rather than clearing it.
	(unshare_all_rtl_again): Update accordingly.  Set flags on argument
	DECL_RTLs rather than resetting them.

2007-08-02  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.

2007-08-01  Sandra Loosemore  <sandra@codesourcery.com>

	* reload.c (find_reloads_address_part): Pass correct MEMREFLOC
	argument to find_reloads_address.

2007-08-01  Daniel Jacobowitz  <dan@codesourcery.com>

	PR tree-optimization/32919
	* tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs.
	* tree-ssa-coalesce.c (ssa_conflicts_dump): New.
	(coalesce_ssa_name): Call it.

2007-08-01  Sandra Loosemore  <sandra@codesourcery.com>
	    David Ung  <davidu@mips.com>

	* config/mips/mips16.S (__mips16_unordsf2, __mips16_floatunsisf): New.
	(__mips16_unorddf2, __mips16_floatunsidf): New.
	* config/mips/mips.c (mips_init_libfuncs): Add optab entries for
	above functions.
	* config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions.

2007-08-01  Zdenek Dvorak  <ook@ucw.cz>

	* tree-pretty-print.c (dump_generic_node): Dump OMP_SECTIONS_SWITCH.
	Display new operands of OMP_SECTIONS and OMP_CONTINUE.
	* tree.h (OMP_SECTIONS_CONTROL): New macro.
	(OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH.
	* omp-low.c (get_ws_args_for, determine_parallel_type,
	expand_omp_for_generic, expand_omp_for_static_nochunk,
	expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
	Work with more precise CFG.
	(build_omp_regions_1): Handle OMP_SECTIONS_SWITCH.
	(lower_omp_sections): Emit OMP_SECTIONS_SWITCH.  Add arguments to
	OMP_CONTINUE.
	* tree-gimple.c (is_gimple_stmt): Handle OMP_SECTIONS_SWITCH.
	* gimple-low.c (lower_stmt): Ditto.
	* tree-inline.c (estimate_num_insns_1): Ditto.
	* tree.def (OMP_SECTIONS, OMP_CONTINUE): Added new operands.
	(OMP_SECTIONS_SWITCH): New.
	* tree-cfgcleanup.c (cleanup_omp_return): New.
	(cleanup_tree_cfg_bb): Call cleanup_omp_return.
	* tree-cfg.c (make_edges): Create back edges for OMP_CONTINUE
	and exit edge for OMP_FOR.  Handle OMP_SECTIONS_SWITCH.
	(tree_redirect_edge_and_branch): Handle omp constructs.

	* fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS
	with three arguments.

2007-08-01  Zdenek Dvorak  <ook@ucw.cz>

	* tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
	in loop closed ssa.

2007-08-01  Zdenek Dvorak  <ook@ucw.cz>

	* tree-ssa-threadupdate.c (thread_through_all_blocks): Record that
	the loop structures may need fixing.
	* tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
	New functions.
	(cleanup_tree_cfg_loop): Removed.
	(cleanup_tree_cfg): If loops need fixing, call repair_loop_structures.
	* tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg
	instead of running cleanup_tree_cfg_loop.
	* cfgloop.h (LOOPS_NEED_FIXUP): New constant.
	* tree-flow.h (cleanup_tree_cfg_loop): Declaration removed.
	(tree_predictive_commoning): Declaration changed.
	* passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop.

2007-08-01  Zdenek Dvorak  <ook@ucw.cz>

	* doc/invoke.texi (l1-cache-size): Update documentation.
	(l2-cache-size): Document.
	* params.h (L2_CACHE_SIZE): New macro.
	* tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect
	that L1_CACHE_SIZE is in kB now.
	(L2_CACHE_SIZE_BYTES): New macro.
	(tree_ssa_prefetch_arrays): Show size in kB.
	* config/i386/i386.h (struct processor_costs): Add l1_cache_size
	and l2_cache_size fields.
	* config/i386/driver-i386.c (describe_cache): Detect cache size
	in kB.
	* config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost,
	pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost,
	amdfam10_cost, pentium4_cost, nocona_cost, core2_cost,
	generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size.
	(override_options): Set l1-cache-size and l2-cache-size to default
	values if not specified otherwise.
	* params.def (PARAM_L1_CACHE_SIZE): Change to set in kB.
	(PARAM_L2_CACHE_SIZE): New.

2007-08-01  Nigel Stephens  <nigel@mips.com>
	    David Ung  <davidu@mips.com>
	    Thiemo Seufer  <ths@mips.com>
	    Chris Dearman  <chris@mips.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (mips*-sde-elf*): New stanza.
	(mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
	(mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
	(mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*, mips-*-elf*)
	(mipsel-*-elf*, mips64-*-elf*, mips64el-*-elf*, mips64orion-*-elf*)
	(mips64orionel-*-elf*, mips*-*-rtems*, mips-wrs-windiss)
	(mipstx39-*-elf*, mipstx39el-*-elf*): Add mips/t-libgcc-mips16
	to tmake_file.
	* config/mips/sde.h: New file.
	* config/mips/t-libgcc-mips16: Likewise.
	* config/mips/t-sde: Likewise.
	* config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove settings
	of _ABIN32, _ABI64, _ABIO32, _MIPS_SIM, _MIPS_SZLONG, _MIPS_SZPTR,
	_MIPS_FPSET and _MIPS_SZINT.
	* config/mips/iris.h (TARGET_OS_CPP_BUILTINS): Likewise.
	* config/mips/elfoabi.h (DRIVER_SELF_SPECS): Remove separate
	insertion of a default -mips option.  Use MIPS_32BIT_OPTION_SPEC.
	* config/mips/t-isa3264 (LIB1ASMSRC, LIB1ASMFUNCS): Delete.
	* config/mips/t-r3900 (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
	* config/mips/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
	* config/mips/mips.h (TARGET_CPU_CPP_BUITINS): Define _ABIO32,
	_ABIN32, _ABI64, _ABIO64, _MIPS_SIM, _MIPS_SZINT, _MIPS_SZLONG,
	_MIPS_SZPTR and _MIPS_FPSET.
	(MIPS_ISA_LEVEL_SPEC): Inject the default -mips option if no
	architecture is specified.
	(MIPS_32BIT_OPTION_SPEC): New macro.

2007-07-31  Dan Hipschman  <dsh@google.com>

	* gcc.c (end_going_arg): New function.
	(do_spec_2): Use it.
	(do_spec_1): Use it.

2007-07-31  H.J. Lu  <hongjiu.lu@intel.com>

	* ddg.c (add_cross_iteration_register_deps): Declare bb_info
	only if ENABLE_CHECKING is defined.

2007-07-31  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru,
	df_ru_add_problem, df_ru_get_bb_info): Removed.
	(DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered.
	* df-problems.c (df_ru_problem_data, df_ru_set_bb_info,
	df_ru_free_bb_info, df_ru_alloc,
	df_ru_bb_local_compute_process_def,
	df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
	df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
	df_ru_transfer_function, df_ru_free, df_ru_start_dump,
	df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU,
	df_ru_add_problem): Removed.

2007-07-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/32847
	* pa.md (casesi32): Use match_scratch.  Revise insn condition.
	(casesi32p, casesi64p): Likewise.
	(casesi): Adjust for above.

2007-07-31  Richard Sandiford  <richard@codesourcery.com>

	* mode-switching.c (create_pre_exit): Don't search past calls.

2007-07-31  Sandra Loosemore  <sandra@codesourcery.com>

	* config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test.

2007-07-31  Revital Eres  <eres@il.ibm.com>

	* ddg.c (add_deps_for_def): Rename to...
	(add_cross_iteration_register_deps): This.  Change implementation
	to use only reaching def and def-use chains to construct the
	inter loop dependencies.
	(add_deps_for_use): Remove function.
	(build_inter_loop_deps): Call add_cross_iteration_register_deps
	function to build the inter loop dependencies.
	* modulo-sched.c (sms_schedule): Build only
	reaching def and def-use chains for the propose of the ddg
	construction.

2007-07-31  Julian Brown  <julian@codesourcery.com>

	* config/arm/neon.md (vec_set<mode>_internal, vec_setv2di_internal):
	New define_insns. Use correct RTL.
	(vec_set<mode>): Write as expander.

2007-07-31  Razya Ladelsky  <razya@il.ibm.com>

	* matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring 
	to an unallocated space.

2007-07-30  Jan Sjodin  <jan.sjodin@amd.com>

	* tree-data-ref.c
	(split_constant_offset): Enable split_constant_offset to extract
	constants from other statements.
	* tree-vect-transform.c
	(vect_create_addr_base_for_vector_ref): Generate data_ref_base
	to a temp var. Force base_offset to be simple.

2007-07-30  Seongbae Park <seongbae.park@gmail.com>

	* df-scan.c (df_scan_verify): Remove artificial limit on
	the number of blocks for verification.
	* df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs,
	df_simulate_defs): Avoid unnecessary insn checking for defs.

2007-07-29  Mark Mitchell  <mark@codesourcery.com>

	* config/m68k/lb1sf68.asm (FUNC): New macro.
	(__mulsi3): Use it.
	(__udivsi3): Likewise.
	(__divsi3): Likewise.
	(__umodsi3): Likewise.
	(__modsi3): Likewise.
	(__subdf3): Likewise.
	(__adddf3): Likewise.
	(__muldf3): Likewise.
	(__divdf3): Likewise.
	(__negdf2): Likewise.
	(__cmpdf2): Likewise.
	(__subsf3): Likewise.
	(__addsf3): Likewise.
	(__mulsf3): Likewise.
	(__divsf3): Likewise.
	(__negsf2): Likewise.
	(__cmpsf2): Likewise.
	(__eqdf2): Likewise.
	(__nedf2): Likewise.
	(__gtdf2): Likewise.
	(__gedf2): Likewise.
	(__ltdf2): Likewise.
	(__ledf2): Likewise.
	(__eqsf2): Likewise.
	(__nesf2): Likewise.
	(__gtsf2): Likewise.
	(__gesf2): Likewise.
	(__ltsf2): Likewise.
	(__lesf2): Likewise.

2007-07-30  Ollie Wild  <aaw@google.com>

	* c-ppoutput.c (print_lines_directives_only): New function.
	(scan_translation_unit_directives_only): New function.
	(preprocess_file): Add call to scan_translation_unit_directives_only.
	* c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
	(sanitize_cpp_opts): Add default flag_dump_macros setting for
	-fdirectives-only.  Add errors for -fdirectives-only conflict with
	-Wunused-macros and -traditional.
	(finish_options): Add builtin macro initialization for
	-fdirectives-only + -fpreprocessed.
	* c.opt (fdirectives-only): New.
	* doc/cppopts.texi (fdirectives-only): New.

2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alias.c (record_set, memory_modified_1): Constify.
	* bt-load.c (note_btr_set): Likewise.
	* caller-save.c (mark_set_regs, add_stored_regs): Likewise.
	* combine.c (set_nonzero_bits_and_sign_copies,
	expand_field_assignment, record_dead_and_set_regs_1,
	use_crosses_set_p, reg_dead_at_p_1, can_combine_p,
	likely_spilled_retval_1): Likewise.
	* config/frv/frv.c (frv_registers_update_1, frv_io_check_address,
	frv_io_handle_set): Likewise.
	* config/mips/mips.c (mips_sim_record_set,
	vr4130_true_reg_dependence_p_1): Likewise.
	* config/mt/mt.c (insn_dependent_p_1): Likewise.
	* config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
	* config/sh/sh.c (flow_dependent_p_1): Likewise.
	* cselib.c (cselib_invalidate_rtx_note_stores): Likewise.
	* dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise.
	* ddg.c (mark_mem_store): Likewise.
	* df-problems.c (df_urec_mark_reg_change): Likewise.
	* function.c (update_epilogue_consts): Likewise.
	* gcse.c (record_set_info, record_last_set_info,
	mems_conflict_for_gcse_p, canon_list_insert, reg_set_info,
	reg_clear_last_set): Likewise.
	* global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live):
	Likewise.
	* jump.c (reversed_comparison_code_parts): Likewise.
	* local-alloc.c (validate_equiv_mem_from_store, no_equiv,
	reg_is_set): Likewise.
	* loop-iv.c (mark_altered): Likewise.
	* mode-switching.c (reg_becomes_live): Likewise.
	* optabs.c (no_conflict_move_test): Likewise.
	* postreload-gcse.c (record_last_set_info, find_mem_conflicts):
	Likewise.
	* postreload.c (reload_combine_note_store, move2add_note_store):
	Likewise.
	* regmove.c (flags_set_1): Likewise.
	* regrename.c (note_sets, kill_clobbered_value, kill_set_value):
	Likewise.
	* reload1.c (mark_not_eliminable, forget_old_reloads_1):
	Likewise. 
	* resource.c (update_live_status): Likewise.
	* rtl.h (set_of, note_stores): Likewise.
	* rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of,
	note_stores, parms_set): Likewise.
	* sched-rgn.c (sets_likely_spilled_1): Likewise.
	* stack-ptr-mod.c (notice_stack_pointer_modification_1):
	Likewise. 
	* var-tracking.c (count_stores, add_stores): Likewise.

2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alias.c (mems_in_disjoint_alias_sets_p,
	fixed_scalar_and_varying_struct_p, aliases_everything_p,
	nonoverlapping_component_refs_p, nonoverlapping_memrefs_p,
	write_dependence_p, mems_in_disjoint_alias_sets_p,
	read_dependence, true_dependence, canon_true_dependence,
	anti_dependence, output_dependence): Constify.
	* combine.c (extended_count): Likewise.
	* cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise.
	* cselib.c (get_value_hash, references_value_p,
	cselib_reg_set_mode, cselib_rtx_varies_p): Likewise.
	* cselib.h (cselib_reg_set_mode, references_value_p): Likewise.
	* emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise.
	* function.c (contains, prologue_epilogue_contains,
	sibcall_epilogue_contains): Likewise. 
	* jump.c (simplejump_p, condjump_p, condjump_in_parallel_p,
	pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p,
	only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum,
	reg_or_subregno): Likewise.
	* recog.c (asm_noperands): Likewise.
	* reload1.c (function_invariant_p): Likewise.
	* rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p,
	rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx,
	condjump_p, any_condjump_p, any_uncondjump_p, pc_set,
	simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p,
	true_regnum, reg_or_subregno, condjump_in_parallel_p,
	extended_count, prologue_epilogue_contains,
	sibcall_epilogue_contains, function_invariant_p, true_dependence,
	canon_true_dependence, read_dependence, anti_dependence,
	output_dependence): Likewise.
	* rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise.

2007-07-30  Julian Brown  <julian@codesourcery.com>

	* config/arm/neon.md (V_ext): New mode attribute.
	(neon_vget_lane<mode>): Replace with define_expand.
	(neon_vget_lane<mode>_sext_internal)
	(neon_vget_lane<mode>_zext_internal): New define_insns for double
	and quad precision vectors.
	(neon_vget_lanedi): Add bounds check. Remove dead comment.
	* config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics
	have typeless 32-bit result.

2007-07-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR tree-opt/32527
	* tree-affine.h (aff_tree): The type of rest is sizetype for types
	of pointers.
	* tree-affine.c (aff_combination_scale): If type is a pointer type,
	use sizetype for rest.
	(aff_combination_add_elt): Likewise. Don't specialize pointer types.
	(aff_combination_convert): Don't convert rest for pointer types.

2007-07-28  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.in (tree-ssa-alias.o): Add alloc-pool.h

	* tree-ssa-alias.c: Add alloc-pool.h.
	(init_alias_info): Free alias_bitmap_obstack.
	(delete_alias_info): Call delete_mem_ref_stats.
	(get_mem_sym_stats_for): Use alloc_pool.
	(init_mem_ref_stats): Do not delete mem_ref_stats here.
	(delete_mem_sym_stats): Removed.
	
2007-07-29  Sebastian Pop  <sebpop@gmail.com>

	* tree-data-ref.c (add_multivariate_self_dist): Parametric access
	functions cannot be represented as classical distance vectors.

2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* attribs.c (hash_attr, eq_attr, init_attributes): Constify.
	* builtins.c (validate_arg, builtin_mathfn_code,
	validate_arglist): Likewise.
	* calls.c (call_expr_flags): Likewise.
	* combine.c (reg_nonzero_bits_for_combine,
	reg_num_sign_bit_copies_for_combine, get_last_value,
	reg_truncated_to_mode): Likewise.
	* emit-rtl.c (subreg_lowpart_p): Likewise.
	* expr.c (highest_pow2_factor_for_target,
	categorize_ctor_elements_1, categorize_ctor_elements,
	count_type_elements, contains_packed_reference,
	highest_pow2_factor, highest_pow2_factor_for_target): Likewise.
	* fold-const.c (may_negate_without_overflow_p, int_const_binop,
	fold_convertible_p, operand_equal_p, tree_swap_operands_p,
	native_encode_int, native_encode_real, native_encode_complex,
	native_encode_vector, native_encode_expr, native_interpret_int,
	native_interpret_real, native_interpret_complex,
	native_interpret_vector, native_interpret_expr): Likewise.
	* function.c (use_register_for_decl): Likewise.
	* gimplify.c (get_name): Likewise.
	* langhooks-def.h (lhd_return_null_const_tree): New.
	(LANG_HOOKS_GET_CALLEE_FNDECL): Use it.
	* langhooks.c (lhd_return_null_const_tree): New.
	* langhooks.h (lang_get_callee_fndecl): Constify.
	* output.h (constructor_static_from_elts_p): Likewise.
	* rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise.
	* rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode,
	subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise.
	* rtlanal.c (cached_nonzero_bits, nonzero_bits1,
	cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p,
	nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise.
	* rtlhooks-def.h (reg_nonzero_bits_general,
	reg_num_sign_bit_copies_general, reg_truncated_to_mode_general):
	Likewise. 
	* rtlhooks.c (reg_num_sign_bit_copies_general,
	reg_nonzero_bits_general, reg_truncated_to_mode_general):
	Likewise. 
	* stmt.c (warn_if_unused_value, is_body_block): Likewise.
	* stor-layout.c (mode_for_size_tree): Likewise.
	* tree-ssa-loop-im.c (memref_eq): Likewise.
	* tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise.
	* tree.c (contains_placeholder_p, type_list_equal,
	simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p):
	Likewise. 
	* tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p,
	mode_for_size_tree, categorize_ctor_elements, count_type_elements,
	contains_placeholder_p, contains_packed_reference,
	get_callee_fndecl, operand_equal_for_phi_arg_p,
	warn_if_unused_value, is_body_block, native_encode_expr,
	native_interpret_expr, fold_convertible_p, operand_equal_p,
	int_const_binop, tree_swap_operands_p, builtin_mathfn_code,
	validate_arglist, simple_cst_equal, type_list_equal,
	use_register_for_decl, call_expr_flags, get_name,
	highest_pow2_factor): Likewise.
	(const_call_expr_arg_iterator_d,
	init_const_call_expr_arg_iterator, next_const_call_expr_arg,
	first_const_call_expr_arg, more_const_call_expr_args_p,
	FOR_EACH_CONST_CALL_EXPR_ARG): New.
	* varasm.c (constructor_static_from_elts_p): Constify.

2007-07-28  Kazu Hirata  <kazu@codesourcery.com>

	* cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
	config/arm/neon-schedgen.ml, config/arm/neon.ml,
	config/arm/vec-common.md, config/ia64/div.md, cselib.c,
	df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
	regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
	tree-vect-transform.c, tree.def: Fix comment typos.  Follow
	spelling conventions.
	* doc/invoke.texi: Follow spelling conventions.

2007-07-29  Vladimir Yanovsky  <yanov@il.ibm.com>
	    Revital Eres  <eres@il.ibm.com>

	* modulo-sched.c (sms_schedule): Avoid loops which includes
	auto-increment instructions.

2007-07-28  Richard Guenther  <rguenther@suse.de>

	PR middle-end/32920
	* fold-const.c (fold_cond_expr_with_comparison): Convert
	operand zero of MIN/MAX_EXPR to correct type.

2007-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* calls.c (special_function_p, setjmp_call_p, alloca_call_p,
	flags_from_decl_or_type): Constify.
	* gcc.c (do_spec_1): Likewise.
	* print-tree.c (dump_addr, print_node_brief): Likewise.
	* tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p,
	simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p,
	tree_purge_all_dead_eh_edges): Likewise.
	* tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p,
	tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges):
	Likewise. 
	* tree.c (expr_location, expr_has_location, expr_locus,
	expr_filename, expr_lineno, get_inner_array_type,
	fields_compatible_p): Likewise.
	* tree.h (get_inner_array_type, fields_compatible_p,
	expr_location, expr_has_location, expr_locus, expr_filename,
	expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type,
	setjmp_call_p, alloca_call_p): Likewise.

2007-07-28  Daniel Berlin  <dberlin@dberlin.org>

	* timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
	TV_FLOW_INSENSITIVE.

	* tree-ssa-alias.c (compute_call_clobbered): Push/pop
	TV_CALL_CLOBBER.
	(compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
	(compute_flow_insensitive_aliasing): Ditto for
	TV_FLOW_INSENSITIVE.	

2007-07-27  Jan Hubicka  <jh@suse.cz>

	* config/i386/i386.c (register_move_cost): Remove accidentally
	comitted #if 0 block.

	* attribs.c: Include hashtab.h
	(attribute_hash): New.
	(substring): New structure.
	(extract_attribute_substring, substring_hash, hash_attr, eq_attr):
	New function.
	(init_attributes): Initialize attribute hash.
	(decl_attributes): Use attribute hash.
	* Makefile.in (attribs.c): Depend on hashtab.h.

2007-07-27  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.

2007-07-27  Richard Sandiford  <richard@codesourcery.com>

	* doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp,
	__mips_dspr2 and __mips_dsp_rev macros.
	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev.

2007-07-27  Douglas Gregor  <doug.gregor@gmail.com>
	
	* c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.

2007-07-26  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR middle-end/32749
	
	* df-problems.c (df_create_unused_note): Removed do_not_gen parm
	and the updating of the live and do_not_gen sets.
	(df_note_bb_compute): Added updating of live and do_not_gen sets
	for regular defs so that the case of clobber inside conditional
	call is processed correctly.
	
2007-07-27  Zdenek Dvorak  <dvorakz@suse.cz>

	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
	operands with compatible type.

2007-07-27  Richard Sandiford  <richard@codesourcery.com>

	* expr.h (store_bit_field): Don't return a value.
	* expmed.c (check_predicate_volatile_ok): New function.
	(store_bit_field_1): New function, extracted from store_bit_field.
	Take a fallback_p argument and return true if the operation succeeded.
	Only use store_fixed_bit_field if fallback_p.  Don't recompute
	mode_for_extraction; use op_mode instead.  Try forcing memories
	into registers if the insv expander fails.
	(store_bit_field): Use store_bit_field_1 with fallback_p true.
	Don't return a value.
	(convert_extracted_bit_field): New function, extracted from
	store_bit_field.
	(extract_bit_field_1): Likewise.  Take a fallback_p argument
	and return NULL if the operation succeeded.  Only use
	extract_fixed_bit_field if fallback_p.  Only calculate one
	extraction mode.  Combine code for extv and extzv.  Try forcing
	memories into registers if the ext(z)v expander fails.
	(extract_bit_field): Use extract_bit_field_1 with fallback_p true.

2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>

	* df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
	into bitfields.
	(df_ref): Likewise.  Put regno with other integer fields.

2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>

	* df.h (df_mw_hardreg): Remove "loc" field.
	* df-scan.c (df_ref_record): Don't set it.  Remove redundant
	local variable.
	* df-problems.c (df_whole_mw_reg_unused_p): New function,
	split out from df_set_unused_notes_for_mw.  Return false for
	partial references.  Assert that mw_reg is a REG when returning true.
	(df_set_unused_notes_for_mw): Use it.  Use mw_reg instead of *loc.
	(df_whole_mw_reg_dead_p): New function, split out from
	df_set_dead_notes_for_mw.  Return false for partial references.
	Assert that mw_reg is a REG when returning true.
	(df_set_dead_notes_for_mw): Use it.  Use mw_reg instead of *loc.
	Remove redundant bitmap check.

2007-07-26  H.J. Lu  <hongjiu.lu@intel.com>

	* config/ia64/t-ia64 ($(T)crtbegin.o): Removed.
	($(T)crtend.o): Likwise.
	($(T)crtbeginS.o): Likwise.
	($(T)crtendS.o): Likwise.
	($(T)crtfastmath.o): Likwise.

2007-07-26  Zdenek Dvorak  <dvorakz@suse.cz>

	* dominance.c (dom_computed, n_bbs_in_dom_tree): Removed.
	* function.h (dom_computed, n_bbs_in_dom_tree): New macros.
	* basic-block.h (struct control_flow_graph): Added x_dom_computed
	and x_n_bbs_in_dom_tree fields.

2007-07-26  Steve Ellcey  <sje@cup.hp.com>

	PR tree-optimization/32087
	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
	Do not call scale_bbs_frequencies_int with prob of zero.

2007-07-26  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds)
	(neon_element_bits): Add prototypes.
	* config/arm/arm.c (bounds_check, neon_lane_bounds)
	(neon_const_bounds, neon_element_bits): New functions.
	* config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi)
	(neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi)
	(neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi)
	(neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>)
	(neon_vmull_lane<mode>, neon_vqdmull_lane<mode>)
	(neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>)
	(neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>)
	(neon_vmls_lane<mode>, neon_vmlsl_lane<mode>)
	(neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>)
	(neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>)
	(neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>)
	(neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>)
	(neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks.

2007-07-26  Nathan Froyd  <froydnj@codesourcery.com>

	* config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
	(HAVE_AS_GNU_ATTRIBUTE): Undefine.

2007-07-26  Mark Shinwell  <shinwell@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.c (arm_mac_accumulator_is_mul_result): New.
	* config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New.
	* config/arm/cortex-a8.md: New.
	* config/arm/cortex-a8-neon.md: New.
	* config/arm/neon-schedgen.ml: New.
	* config/arm/neon.md (vqh_mnem): New.
	(neon_type): New.
	(Is_float_mode): New.
	(Scalar_mul_8_16): New.
	(Is_d_reg): New.
	(V_mode_nunits): New.
	(All instruction patterns): Annotate with neon_type attribute
	values.
	* config/arm/arm.md: Include cortex-a8.md.
	(insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
	values.
	Annotate instruction patterns accordingly.
	(generic_sched): Do not use generic scheduling for Cortex-A8.
	(generic_vfp): Do not use generic VFP scheduling for Cortex-A8.

2007-07-26  Daniel Jacobowitz  <dan@codesourcery.com>

	* fold-const.c (fold_read_from_constant_string): Use
	build_int_cst_type.
	* tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.

2007-07-26  Nick Clifton  <nickc@redhat.com>

	* tree-ssa-operands.h: Change copyright header to refer to version
	3 of the GNU General Public License and to point readers at the
	COPYING3 file and the FSF's license web page.
	* tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c,
	sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c,
	tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c,
	targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h,
	tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c,
	hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c,
	flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c,
	opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c,
	gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c,
	cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c,
	rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c,
	optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c,
	tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h,
	genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c,
	reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c,
	c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c,
	rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h,
	tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h,
	diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c,
	gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c,
	input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def,
	gensupport.h, builtin-attrs.def, sync-builtins.def, params.c,
	cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c,
	graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c,
	genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c,
	tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h,
	reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h,
	real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c,
	omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h,
	tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c,
	regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h,
	tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c,
	scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c,
	double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h,
	dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c,
	gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c,
	hosthooks.h, c-objc-common.h, caller-save.c, graph.c,
	ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c,
	c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h,
	tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c,
	xcoffout.h, tree-ssa-propagate.c, ipa-utils.c,
	tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h,
	gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c,
	mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c,
	alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c,
	dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h,
	expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h,
	genattrtab.c, genconditions.c, genattr.c, optc-gen.awk,
	timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c,
	tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c,
	recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c,
	dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h,
	matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c,
	tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c,
	lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h,
	ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c,
	ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h,
	langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h,
	sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c,
	gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c,
	ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c,
	init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c,
	loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c,
	mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h,
	opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in,
	insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c,
	tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def,
	dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c,
	bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c,
	coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h,
	stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c,
	cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c,
	tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c,
	loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c,
	lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c,
	tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c,
	tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt,
	ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c,
	varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c,
	sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c,
	target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c,
	omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h,
	intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c,
	sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h,
	genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c,
	tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h,
	bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c,
	cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c,
	cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk,
	tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c,
	c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c,
	fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c,
	vecprim.h, basic-block.h, tree-ssa-structalias.c,
	tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c,
	passes.c, genconstants.c, c-incpath.c, c-incpath.h,
	struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c,
	varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h,
	reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y,
	stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h,
	params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h,
	tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c,
	convert.c, convert.h, langhooks-def.h, reload1.c,
	tree-ssa-operands.c: Likewise.

2007-07-26  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-live.c: Include debug.h and flags.h.
	(mark_scope_block_unused): New function.
	(remove_unused_scope_block_p): New function.
	(remove_unused_locals): Remove unused blocks too.

2007-07-25  Ian Lance Taylor  <iant@google.com>

	* combine.c (combine_max_regno): Remove.  Remove all uses.
	(struct reg_stat_struct): Rename from struct reg_stat.
	(reg_stat_type): Define, and declare VECs.
	(reg_stat): Change from pointer to VEC.  Change all uses.
	(combine_split_insns): New static function.
	(try_combine, find_split_point): Call it instead of split_insns.

2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>

	* cfghooks.c (split_block): Fix the information about loop latch.

2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>

	* cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.

2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
	Scan the new edge for loop exit info.

2007-07-25  Andreas Tobler  <a.tobler@schweiz.org>

	* config/darwin.c: Include debug.h.

2007-07-25  Steve Ellcey  <sje@cup.hp.com>

	PR target/32218
	* tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.

2007-07-25  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
	(HARD_REGNO_MODE_OK): Ditto.
	(MODES_TIEABLE_P): Ditto.
	(HARD_REGNO_CALLER_SAVE_MODE): Ditto.
	(CLASS_MAX_NREGS): Ditto.
	* config/ia64/ia64.c (ia64_print_operand_address): Add R format.
	* config/ia64/ia64.md (divsf3_internal_thr): Removed.
	(divdf3_internal_thr): Removed.
	* config/ia64/div.md: New file.
	* config/ia64/constraints.md: Add H constraint.

2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
	sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
	sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
	sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
	sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
	sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
	sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
	sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
	sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
	dump_sbitmap_file, debug_sbitmap, popcount_table,
	sbitmap_popcount): Constify.
	* sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
	(sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
	dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
	sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
	sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
	sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
	sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
	sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
	sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
	sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
	sbitmap_popcount, sbitmap_verify_popcount): Constify.

2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
	bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
	bitmap_first_set_bit, bitmap_and, bitmap_and_into,
	bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
	bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
	bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
	bitmap_intersect_p, bitmap_intersect_compl_p,
	bitmap_ior_and_compl, bitmap_ior_and_compl_into,
	debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
	Constify.
	* bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
	bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
	bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
	bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
	bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
	debug_bitmap, debug_bitmap_file, bitmap_print,
	bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
	bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.

2007-07-25  Daniel Berlin  <dberlin@dberlin.org>

	* config/darwin.c (darwin_override_options): Additional fix for
	debug info formats that don't support var tracking.

2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* cselib.c (entry_and_rtx_equal_p): Constify.
	* gengtype.c (output_mangled_typename, write_types, write_local):
	Likewise.
	* gengtype.h (const_type_p): New.
	* see.c (eq_descriptor_extension, hash_descriptor_extension):
	Constify.
	* tlink.c (scan_linker_output): De-constify.
	* tree-ssa-loop-im.c (memref_eq): Constify.
	* tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
	(shared_bitmap_hash, shared_bitmap_eq): Constify.

2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-common.c (fname_as_string, c_type_hash): Constify.
	* c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
	* cgraph.c (edge_hash, edge_eq): Likewise.
	* dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
	* emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
	reg_attrs_htab_eq): Likewise.
	* except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
	Likewise.
	* genautomata.c (const_reserv_sets_t, const_unit_decl_t,
	const_decl_t, const_state_t, const_automata_list_el_t): New.
	(first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
	DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
	automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
	insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
	reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
	automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
	compare_max_occ_cycle_nums, out_state_arcs_num,
	compare_transition_els_num, units_cmp, state_reservs_cmp):
	Constify.
	* genmodes.c (cmp_modes): Likewise.
	* ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
	* gimplify.c (compare_case_labels): Likewise.
	* ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
	* loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
	* matrix-reorg.c (mtt_info_hash): Likewise.
	* postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
	* rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
	(htab_hash_bucket, htab_hash_elem): Constify.
	* tree-browser.c (TB_parent_eq): Likewise.
	* tree-scalar-evolution.c (hash_scev_info): Likewise.
	* tree-ssa-alias.c (sort_tags_by_id): Likewise.
	* tree-ssa-coalesce.c (const_coalesce_pair_p): New.
	(coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
	Constify.
	* tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
	* tree-ssa-pre.c (const_expr_pred_trans_t): New.
	(expr_pred_trans_hash, expr_pred_trans_eq): Constify.
	* tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
	const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
	New.
	(vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
	vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
	vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
	* tree-ssa-threadupdate.c (redirection_data_hash,
	redirection_data_eq): Likewise. 
	* tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
	* tree-ssa.c (var_ann_eq): Likewise.
	* tree-vrp.c (compare_case_labels): Likewise.
	* tree.c (int_cst_hash_hash, int_cst_hash_eq,
	tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
	tree_not_check_failed, tree_class_check_failed,
	tree_range_check_failed, tree_not_class_check_failed,
	omp_clause_check_failed, omp_clause_range_check_failed,
	tree_contains_struct_check_failed, tree_operand_check_failed):
	Likewise. 
	* tree.h (tree_contains_struct_check_failed, tree_check_failed,
	tree_not_check_failed, tree_class_check_failed,
	tree_range_check_failed, tree_not_class_check_failed,
	tree_operand_check_failed, omp_clause_operand_check_failed,
	tree_operand_length): Likewise. 
	* var-tracking.c (const_variable): New.
	(variable_htab_hash, variable_htab_eq): Constify.
	* varasm.c (const_desc_hash): Likewise.

2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* expr.c (handled_component_p): Constify.
	* fold-const.c (fit_double_type): Likewise.
	* real.h (real_value_from_int_cst): Likewise.
	* tree-flow-inline.h (gimple_in_ssa_p,
	gimple_aliases_computed_p, gimple_addressable_vars,
	gimple_call_clobbered_vars, gimple_referenced_vars,
	gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
	end_htab_p, end_referenced_vars_p, var_ann, function_ann,
	may_aliases, end_readonly_imm_use_p, has_zero_uses,
	has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
	is_label_stmt, is_global_var, phi_ssa_name_p,
	factoring_name_p, is_call_clobbered, tree_common_ann,
	op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
	unmodifiable_var_p, array_ref_contains_indirect_ref,
	ref_contains_array_ref, lookup_subvars_for_var,
	var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
	gimple_mem_ref_stats): Likewise.
	* tree-flow.h (tree_common_ann, var_ann, function_ann,
	may_aliases, is_exec_stmt, is_label_stmt,
	ref_contains_array_ref, array_ref_contains_indirect_ref,
	var_can_have_subvars, overlap_subvar, is_call_clobbered,
	unmodifiable_var_p): Likewise.
	* tree-gimple.c (is_gimple_min_invariant): Likewise.
	* tree-gimple.h (is_gimple_min_invariant): Likewise. 
	* tree.c (type_hash_list, attribute_hash_list, tree_size,
	cst_and_fits_in_hwi, real_value_from_int_cst,
	build_real_from_int_cst, integer_zerop, integer_onep,
	integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
	tree_floor_log2, real_zerop, real_onep, real_twop,
	real_minus_onep, really_constant_p, purpose_member, chain_member,
	list_length, fields_length, int_size_in_bytes, bit_position,
	int_bit_position, byte_position, int_byte_position, expr_align,
	array_type_nelts, tree_node_structure,
	type_contains_placeholder_1, iterative_hash_pointer,
	is_attribute_with_length_p, is_attribute_p, check_qualified_type,
	tree_map_base_eq, type_hash_list, type_hash_eq,
	attribute_hash_list, type_num_arguments, tree_int_cst_equal,
	tree_int_cst_lt, tree_int_cst_compare, host_integerp,
	tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
	simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
	int_fits_type_p, get_containing_scope, decl_function_context,
	decl_type_context, omp_clause_operand_check_failed,
	initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
	* tree.h (omp_clause_operand_check_failed, tree_size,
	build_real_from_int_cst, array_type_nelts, purpose_member,
	tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
	host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
	is_attribute_p, check_qualified_type, expr_align,
	int_size_in_bytes, bit_position, int_bit_position, byte_position,
	int_byte_position, list_length, fields_length, initializer_zerop,
	integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
	integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
	tree_node_structure, handled_component_p, get_containing_scope,
	decl_function_context, decl_type_context, real_zerop,
	type_num_arguments, fit_double_type, really_constant_p,
	int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
	compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
	real_twop, real_minus_onep, int_cst_value): Likewise.

2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* cfglayout.c (insn_scope, insn_line): Constify.
	* emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
	const_double_htab_hash, const_double_htab_eq,
	mem_attrs_htab_hash): Likewise.
	* loop-iv.c (biv_eq): Likewise.
	* print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
	print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
	debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
	Likewise. 
	* rtl-error.c (location_for_asm, diagnostic_for_asm,
	error_for_asm, warning_for_asm, _fatal_insn,
	_fatal_insn_not_found): Likewise. 
	* rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
	rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
	rtl_check_failed_type2, rtl_check_failed_code1,
	rtl_check_failed_code2, rtl_check_failed_code_mode,
	rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
	* rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
	rtl_check_failed_type2, rtl_check_failed_code1,
	rtl_check_failed_code2, rtl_check_failed_code_mode,
	rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
	SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
	shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
	get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
	mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
	rtx_unstable_p, get_integer_term, get_related_value,
	offset_within_block_p, reg_mentioned_p, count_occurrences,
	reg_referenced_p, reg_used_between_p, no_labels_between_p,
	single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
	reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
	find_reg_note, find_regno_note, find_reg_equal_equiv_note,
	find_constant_src, find_reg_fusage, find_regno_fusage,
	pure_call_p, remove_note, side_effects_p, volatile_refs_p,
	volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
	may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
	computed_jump_p, auto_inc_p, in_expr_list_p,
	remove_node_from_expr_list, loc_mentioned_in_p,
	label_is_jump_target_p, reversed_comparison_code_parts,
	debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
	print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
	print_inline_rtx): Likewise.
	* rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
	computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
	rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
	get_integer_term, get_related_value, offset_within_block_p,
	count_occurrences, reg_mentioned_p, no_labels_between_p,
	reg_used_between_p, reg_referenced_p, single_set_2,
	multiple_sets, set_noop_p, refers_to_regno_p,
	reg_overlap_mentioned_p, dead_or_set_p,
	covers_regno_no_parallel_p, covers_regno_p,
	dead_or_set_regno_p, find_reg_note, find_regno_note,
	find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
	find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
	remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
	side_effects_p, may_trap_p_1, may_trap_p,
	may_trap_after_code_motion_p, may_trap_or_fault_p,
	inequality_comparisons_p, tablejump_p, computed_jump_p_1,
	computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
	subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
	* simplify-rtx.c (neg_const_int, plus_minus_operand_p,
	mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
	Likewise. 
	* toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
	warning_for_asm): Likewise.
	* tree.h (print_rtl): Likewise.
	* varasm.c (get_pool_mode): Likewise.

2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-lex.c (c_lex_with_flags, lex_string): Constify.
	* c-ppoutput.c (print_line, pp_dir_change): Likewise.
	* c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
	* cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
	* cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
	* ddg.c (compare_sccs): Likewise.
	* df-scan.c (df_ref_compare, df_mw_compare): Likewise.
	* dfp.c (decimal_real_from_string, decimal_to_decnumber,
	decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
	decimal_do_fix_trunc, decimal_real_to_integer,
	decimal_real_to_integer2, decimal_real_maxval): Likewise.
	* dse.c (const_group_info_t): New.
	(invariant_group_base_eq, invariant_group_base_hash): Constify.
	* dwarf2out.c (const_dw_die_ref): New.
	(decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
	* tree-browser.c (TB_parent_eq): Likewise.
	* unwind-dw2-fde.c (__register_frame_info_bases,
	__deregister_frame_info_bases, fde_unencoded_compare, fde_split,
	add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
	Likewise.
	* unwind-dw2-fde.h (get_cie, next_fde): Likewise.
	* unwind-dw2.c (uw_frame_state_for): Likewise.
	* value-prof.c (histogram_hash, histogram_eq): Likewise.
	* value-prof.h (const_histogram_value): New.

2007-07-25  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.c (machine_function): Add
	initialized_mips16_gp_pseudo_p.
	(mips16_gp_pseudo_reg): Do not emit the initialization of
	mips16_gp_pseudo_rtx when being called from the gimple cost-
	calculation routines; emit it on the first use outside those
	routines.

2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
	New.
	
	* rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
	RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
	RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
	RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
	RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
	Preserve const-ness of parameters through use of __typeof(),
	also constify and tidy.
	
	* tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
	TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
	NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
	CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
	OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
	GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
	PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
	TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
	TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.

2007-07-25  Julian Brown  <julian@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>

	* config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
	(alpha_mangle_type): This.
	(TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
	(TARGET_MANGLE_TYPE): Define this instead.
	* config/arm/arm-protos.h (arm_mangle_type): Add prototype.
	* config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
	(arm_init_neon_builtins): Fix comment.
	(arm_mangle_map_entry): New.
	(arm_mangle_map): New.
	(arm_mangle_type): New.
	* config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
	(ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
	mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
	(TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
	(TARGET_MANGLE_TYPE): Define this instead.
	* config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
	(ia64_mangle_type): This. Use TYPE_MAIN_VARIANT  and restrict
	mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
	(TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
	(TARGET_MANGLE_TYPE): Define this instead.
	* config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
	to...
	(rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
	(TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
	(TARGET_MANGLE_TYPE): Define this instead.
	* config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
	(s390_mangle_type): This.
	(TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
	(TARGET_MANGLE_TYPE): Define this instead.
	* config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
	(sparc_mangle_type): This.
	(TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
	(TARGET_MANGLE_TYPE): Define this instead.
	* cp/mangle.c (write_type): Call mangle_type target hook on all
	types before mangling.  Use original type, not main variant, as
	argument.
	* target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
	(TARGET_MANGLE_TYPE): This.
	* target.h (gcc_target): Rename mangle_fundamental_type to
	mangle_type.
	* doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
	(TARGET_MANGLE_TYPE): This. Note slightly different semantics.

2007-07-25  Julian Brown  <julian@codesourcery.com>
	    Paul Brook  <paul@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>

	* Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
	* config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
	(with_fpu): Allow --with-fpu=neon.
	* config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
	* config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
	* config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
	* config/arm/arm-protos.h (neon_immediate_valid_for_move)
	(neon_immediate_valid_for_logic, neon_output_logic_immediate)
	(neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
	(neon_emit_pair_result_insn, neon_disambiguate_copy)
	(neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
	(output_move_neon): Add prototypes.
	* config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
	(all_fpus): Add FPUTYPE_NEON.
	(fp_model_for_fpu): Add NEON field.
	(arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
	(arm_arg_partial_bytes): Allow NEON vectors to be passed partially
	in registers.
	(arm_legitimate_address_p): Don't support fancy addressing for NEON
	structure moves.
	(thumb2_legitimate_address_p): Likewise.
	(neon_valid_immediate): Recognize and prepare constants suitable for
	NEON instructions.
	(neon_immediate_valid_for_move): New function. Recognize and prepare
	immediates for NEON move instructions.
	(neon_immediate_valid_for_logic): New function. Recognize and
	prepare immediates for NEON logic instructions.
	(neon_output_logic_immediate): New function. Create asm string
	suitable for outputting immediate logic instructions.
	(neon_pairwise_reduce): New function. Implement reduction using
	pairwise operations.
	(neon_expand_vector_init): New function. Expand a (possibly
	non-constant) vector initialization.
	(neon_vector_mem_operand): New function. Memory operands supported
	for quad-word loads/stores to/from ARM or NEON registers. Don't
	allow base+offset addressing for core regs.
	(neon_struct_mem_operand): New function. Valid mems for NEON
	structure moves.
	(coproc_secondary_reload_class): Enable NEON registers to be loaded
	from neon_vector_mem_operand addresses without a secondary register.
	(add_minipool_forward_ref): Handle >8-byte minipool entries.
	(add_minipool_backward_ref): Likewise.
	(dump_minipool): Likewise.
	(push_minipool_fix): Likewise.
	(output_move_quad): New function. Output quad-word moves, loads and
	stores using ARM registers.
	(output_move_vfp): Add support for vectors in VFP (NEON) D
	registers.
	(output_move_neon): Output a NEON load/store to/from a quadword
	register.
	(arm_print_operand): Implement new codes:
	- 'c' for unadorned integers (without a # sign).
	- 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
	mode.
	- 'e', 'f' for the low and high D parts of a NEON Q register.
	- 'q' outputs a NEON Q register.
	- 'h' outputs ranges of D registers for VLDM/VSTM etc.
	- 'T' prints NEON opcode features from a coded bitmask.
	- 'F' is similar to T, but signed/unsigned codes both print as
	'i'.
	- 't' is similar to T, but 'u' is printed instead of 'p'.
	- 'O' prints 'r' if NEON instruction should perform rounding (as
	specified by bitmask), else prints nothing.
	- '#' is a punctuation character to stop operand numbers from
	running together with following digits in the assembler
	strings for instructions (when using mode attributes).
	(arm_assemble_integer): Handle extra NEON vector modes. Permute
	constant vectors in big-endian mode, where necessary.
	(arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
	Handle EI, OI, CI, XI modes.
	(ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
	(ashrv2si3): Rename IWMMXT2_BUILTINs to...
	(ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
	(lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
	(neon_builtin_type_bits): Add enumeration, one bit for each vector
	type.
	(v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
	(v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
	to turn v8qi, etc. into bits defined above.
	(neon_itype): New enumeration. Classifications of NEON builtins.
	(neon_builtin_datum): Define struct. Contains information about
	a single builtin (with multiple modes).
	(CF): Define helper macro for...
	(VAR1...VAR10): Define builtins with a type, name and 1-10 different
	modes.
	(neon_builtin_data): New array. Define information about builtins
	for use during initialization/expansion.
	(arm_init_neon_builtins): New function.
	(arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
	true.
	(neon_builtin_compare): New function.
	(locate_neon_builtin_icode): New function. Find an insn code for a
	builtin given a function code for that builtin. Also return type of
	builtin (NEON_BINOP, NEON_UNOP etc.).
	(builtin_arg): New enumeration. Types of arguments for builtins.
	(arm_expand_neon_args): New function. Expand a generic NEON builtin.
	Takes a variable argument list of builtin_arg types, terminated by
	NEON_ARG_STOP.
	(arm_expand_neon_builtin): New function. Expand a NEON builtin.
	(neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
	(neon_emit_pair_result_insn): New function. Support returning pairs
	of vectors via a pointer.
	(neon_disambiguate_copy): New function. Set up operands for a
	multi-word copy such that registers do not get clobbered.
	(arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
	ARM_BUILTIN_NEON_BASE.
	(arm_file_start): Set float-abi attribute for NEON.
	(arm_vector_mode_supported_p): Enable NEON vector modes.
	(arm_mangle_map_entry): New.
	(arm_mangle_map): New.
	(arm_mangle_vector_type): New.
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
	when appropriate.
	(TARGET_NEON): New macro. Target supports NEON.
	(fputype): Add FPUTYPE_NEON.
	(UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
	for vectorization based on command-line arg.
	(NEON_REGNO_OK_FOR_NREGS): Define.
	(VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
	(VALID_NEON_STRUCT_MODE): Define.
	(PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
	(arm_builtins): Add ARM_BUILTIN_NEON_BASE.
	* config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
	(consttable_16): Add pattern for outputting 16-byte minipool
	entries.
	(movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
	vec-common.md).
	(vec-common.md, neon.md): Include md files.
	* config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
	* config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
	(memory_constraint "Ut", "Un", "Us"): Define.
	* config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
	(MMX_char): New mode attribute.
	(addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
	(*add<mode>3_iwmmxt): New insn pattern.
	(subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
	(*sub<mode>3_iwmmxt): New insn pattern.
	(mulv4hi3): Rename to...
	(*mulv4hi3_iwmmxt): This.
	(smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
	(umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
	(uminv4hi3, uminv2si3): Remove. Replace with...
	(*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
	(*umin<mode>3_iwmmxt): These.
	(ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
	(ashr<mode>3_iwmmxt): This new pattern.
	(lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
	(lshr<mode>3_iwmmxt): This new pattern.
	(ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
	(ashl<mode>3_iwmmxt): This new pattern.
	* config/arm/neon-docgen.ml: New file. Generate documentation for
	intrinsics.
	* config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
	* config/arm/arm_neon.h: New (autogenerated).
	* config/arm/neon-testgen.ml: New file. Generate NEON tests
	automatically.
	* config/arm/neon.md: New file. Define NEON instructions.
	* config/arm/neon.ml: New file. Abstract description of NEON
	instructions, used to generate arm_neon.h header, documentation and
	tests.
	* config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
	* vec-common.md: New file. Shared parts for iWMMXt and NEON vector
	support.
	* doc/extend.texi (ARM Built-in Functions): Rename and remove
	extraneous comma.
	(ARM NEON Intrinsics): New subsection.
	* doc/arm-neon-intrinsics.texi: New (autogenerated).

2007-07-25  Danny Smith   <dannysmith@users.sourceforge.net>

	* config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
	prototype.

2007-07-24  Jan Hubicka  <jh@suse.cz>

	* regclass.c (move_table): New type.
	(move_cost, may_move_in_cost, may_move_out_cost): Use it.
	(init_move_cost): Break out from ...
	(init_reg_sets_1): ... here; simplify computation of
	have_regs-of_mode and contains_reg_of_mode.
	(record_reg_classes): Unswitch internal loops.
	(copy_cost): Trigger lazy initialization of move cost
	(record_address_regs): Likewise.

2007-07-24  Daniel Berlin  <dberlin@dberlin.org>

	* config/darwin.c (darwin_override_options): Don't force on
	flag_var_tracking_uninit when no debug info is requested.

2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>

	* cfgloop.c (init_loops_structure): New function.
	(flow_loops_find): Create root of the loop tree unconditionally.

2007-07-24  Daniel Jacobowitz  <dan@codesourcery.com>

	* tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.

2007-07-24  Jan Hubicka  <jh@suse.cz>

	* caller-save.c: Include ggc.h, gt-caller-save.h
	(reg_save_code, reg_restore_code): Rename to ...
	(cached_reg_save_code, cached_reg_restore_code): ... those.
	(savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
	(reg_save_code, reg_restore_code): New functions.
	(init_caller_save): Do not intialize
	reg_save_code/reg_restore_code tables.
	* Makefile.in: (gt-caller-save.h): New.

2007-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>

	* tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
	with the mode of the original operand instead of
	integer_one_node.

2007-07-23  Jan Hubicka  <jH@suse.cz>

	* config/i386/i386.c (ix86_secondary_memory_needed): Break out to...
	(inline_secondary_memory_needed): ... here.
	(ix86_memory_move_cost): Break out to ...
	(inline_memory_move_cost): ... here; add support for IN value of 2 for
	maximum of input and output; fix handling of Q_REGS on 64bit.
	(ix86_secondary_memory_needed): Microoptimize.

2007-07-23  Sebastian Pop  <sebpop@gmail.com>

	* tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr,
	create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
	stmts_from_loop, known_dependences_p, build_rdg): New.
	* tree-data-ref.h: Depends on graphds.h.
	(rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New.
	(build_rdg): Declared.
	* Makefile.in (TREE_DATA_REF_H): Depends on graphds.h.

2007-07-23  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
	ccp_min_invariant.

2007-07-23  Peter Bergner  <bergner@vnet.ibm.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/PR28690
	* optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow
	EQ compares.
	* rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
	and MEM_POINTER operands over REG and MEM operands.
	(swap_commutative_operands_p): Change return value to bool.
	* rtl.h: Update the corresponding prototype.
	* tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
	instead of gen_rtx_PLUS.
	* simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
	value to bool.  Change function arguments to rtx's and update code
	to match.
	(simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
	calls to match the new declaration.
	* simplify-rtx.c (simplify_associative_operation): Don't
	reorder simplify_binary_operation arguments.

2007-07-23  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.c (override_options): Use mips_costs to derive
	the default branch cost.
	* config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
	than mips_costs.
	* config/mips/mips.opt (mbranch-cost=): New option.
	* doc/invoke.texi (-mbranch-cost): Document new MIPS option.

2007-07-23  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
	(SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
	* config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p
	instead of GR_REG_CLASS_P and COP_REG_CLASS_P.

2007-07-23  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/constraints.md (ks): New constraint.
	* config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
	(*add<mode>3_mips16): ...here.

2007-07-21  Uros Bizjak  <ubizjak@gmail.com>

	* optabs.h (enum optab_index): Add new OTI_signbit.
	(signbit_optab): Define corresponding macro.
	(enum insn_code signbit_optab[]): Remove array.
	* optabs.c (init_optabs): Initialize signbit_optab using init_optab.
	(expand_copysign_absneg): If back end provides signbit insn, use it
	instead of bit operations on floating point argument.
	* builtins.c (enum insn_code signbit_optab[]): Remove array.
	(expand_builtin_signbit): Check signbit_optab->handlers[].insn_code
	for availability of signbit insn.

	* config/i386/i386.md (signbit<mode>2): New insn pattern to implement
	signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
	SSE mode is not active.
	(isinf<mode>2): Disable for mfpmath=sse,387.

2007-07-22  Ben Elliston  <bje@au.ibm.com>

	* regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
	`class' parameter.
	* struct-equiv.c (note_local_live): Likewise for `y_regno'.

2007-07-20  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_expr): COND_EXPRs can have any
	integral typed condition.
	* tree-ssa.c (useless_type_conversion_p): Do not preserve
	booleanness.  Only preserve conversions from a non-base
	type to a base type, not in general between types with
	different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
	* tree.def (COND_EXPR): Document that the condition
	can be of any integral type.

2007-07-20  Nigel Stephens  <nigel@mips.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.h (mips_dwarf_regno): Declare.
	(DBX_REGISTER_NUMBER): Remove redundant brackets.
	(HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
	(AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
	(AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
	(reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
	(REG_CLASS_NAMES): Update accordingly.
	* config/mips/mips.c (mips_dwarf_regno): New array.
	(mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
	(mips_subword): Remove special handling for accumulator registers.
	(override_options): Initiailize mips_dwarf_regno.  Remove use
	of ACC_HI_REG_P.
	(mips_swap_registers): New function.
	(mips_conditional_register_usage): Swap accumulator registers
	around if TARGET_LITTLE_ENDIAN.
	(mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
	* config/mips/constraints.md (h, l): Use the endianness to choose
	between MD0_REG and MD1_REG.
	* config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
	alternative-dependent template.

2007-07-20  Richard Sandiford  <richard@codesourcery.com>

	* config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
	no_new_pseudos.

2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>

	* function.c (thread_prologue_and_epilogue_insns): Fix exit
	predecessor fallthru flags.

2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
	of compare to the same type.
	* cfgloopmanip.c (add_loop): Update information about loop exits.
	(loop_version): Remove the innermost loop requirement.
	* tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
	to sizetype for pointers.

2007-07-18  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
	(D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
	(D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.

	* config/dfp-bit.c: Empty for TFmode conversions.

2007-07-18  Caroline Tice  <ctice@apple.com>
	
	* var-tracking.c (find_src_status): Check for  COND_EXEC insns
	and handle them correctly; check that src is not NULL before
	trying to use it.
	(find_src_set_src): Likewise.
	
2007-07-18  Bob Wilson  <bob.wilson@acm.org>
	
	* config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
	(struct alignment_context, init_alignment_context): New.
	(xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
	* config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
	(XCHAL_HAVE_S32C1I): Likewise.
	(TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
	* config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
	(UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
	(ATOMIC, HQI): New macros.
	(memory_barrier, *memory_barrier): New.
	(sync_lock_releasesi): New.
	(sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
	(sync_lock_test_and_set<mode>): New.
	(sync_<atomic><mode>): New.
	(sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
	* config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
	(xtensa_expand_atomic): New.
	
2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR target/30652

	* builtins.c (expand_builtin_interclass_mathfn): Provide a generic
	transformation for builtin ISNORMAL.
	(expand_builtin): Handle BUILT_IN_ISNORMAL.
	* builtins.def (BUILT_IN_ISNORMAL): New.
	* doc/extend.texi: Document isnormal.

2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR target/30652

	* builtins.c (expand_builtin_interclass_mathfn): Allow for missing
	optabs infrastructure.  Provide generic implementation for
	FINITE/ISFINITE.
	(expand_builtin): Handle FINITE/ISFINITE.
	(fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
	(fold_builtin_1): Likewise.

	* builtins.def (BUILT_IN_ISFINITE): New.

	* doc/extend.texi: Document isfinite.

2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR target/30652
	PR middle-end/20558

	* builtins.c (expand_builtin_interclass_mathfn): Provide a
	generic fallback for isinf.
	* c-cppbuiltin.c (builtin_define_float_constants): Move FP max
	calculation code ...
	* real.c (get_max_float): ... to here.
	* real.h (get_max_float): New.

2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR middle-end/32668

	* builtin-attrs.def (ATTR_TYPEGENERIC,
	ATTR_CONST_NOTHROW_TYPEGENERIC): New.

	* builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
	BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
	BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
	BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.

	* c-common.c (handle_type_generic_attribute): New.
	(c_common_attribute_table): Add "type generic".

	* c-typeck.c (convert_arguments): Handle "type generic" functions.

2007-07-18  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
	* tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
	properly.

2007-07-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/32808
	* config/cris/cris.c (cris_print_index): Don't use XEXP before
	checking that the operand is an expression.

2007-07-19  Christoph von Wittich  <Christoph_vW@reactos.org>
	    Danny Smith  <dannysmith@users.sourceforge.net>

	PR/other 30335
	* config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
	file mapping object in local namespace if Windows version later
	than NT4

2007-07-18  Richard Sandiford  <richard@codesourcery.com>

	* config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
	* config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
	arm_cannot_force_const_mem.
	(arm_cannot_force_const_mem): New function.
	* config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
	(LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
	of arm_tls_referenced_p.
	* config/arm/arm.md (movsi): Split out-of-section constants when
	ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
	* config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.

2007-07-18  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.md (clear_cache): Treat the size argument as Pmode.

2007-07-18  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.md (*extendqihi2): Convert the destination
	to SImode.

2007-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config/pa/fptr.c: Update license header.
	* config/pa/milli64.S: Likewise.

2007-07-17  Nick Clifton  <nickc@redhat.com>

	* COPYING_v3: New file.  Contains version 3 of the GNU General
	Public License.
	* COPYING.LIB_v3: New file.  Contains version 3 of the GNU
	Lesser General Public License.
	* doc/include/gpl_v3.texi: New file.  Contains version 3 of
	the GNU General Public License.

2007-07-17  Zdenek Dvorak  <dvorakz@suse.cz>

	PR rtl-optimization/32773
	* cfglayout.c (force_one_exit_fallthru): New function.
	(cfg_layout_finalize): Use it.

2007-07-16  Richard Guenther  <rguenther@suse.de>
	    Uros Bizjak  <ubizjak@gmail.com>

	* tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
	before forcing it to gimple operand.

2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
	    David Ung  <davidu@mips.com>

	* config/mips/mips.h (TUNE_24K): Define.
	(TUNE_MACC_CHAINS): Add TUNE_24K.
	* config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
	imadd.
	* config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
	(r74k_int_madd): .. this new reservation.
	(define_bypass): Fixed bypasses for r74k_int_madd to use
	mips_linked_madd_p.
	* config/mips/24k.md (define_bypass): Define new
	r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.

2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>

	* config/mips/mips.md: Include 20kc.md.
	* config/mips/20kc.md: New file.
	* config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
	(mips_adjust_cost): Tweak for 20Kc.
	(mips_issue_rate): Likewise.
	* config/mips/mips.h (TUNE_20KC): Define.

2007-07-16  David Edelsohn  <edelsohn@gnu.og>

	* config/rs6000/rs6000.c (struct processor_cost): Add
	cache_line_size, l1_cache_lines, and simultaneous_prefetches
	fields.
	(*_cost): Add cache information.
	(rs6000_override_options): Set cache parameters.

2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR bootstrap/3456
	* config.gcc (mips-sgi-irix[56]*): Enable pthread support.
	* doc/install.texi (mips-sgi-irix6): pthread support works now.

2007-07-16  Paul Brook  <paul@codesourcery.com>

	PR target/32753
	* config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
	(cirrus_thumb2_movsi_insn): Ditto.

2007-07-15  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/darwin-fallback.c (interpret_libc): Change
	CR2_REGNO to R_CR2.

2007-07-15  Andrew Haley  <aph@redhat.com>

	* unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
	before looking in the context.

2007-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/32398
	PR middle-end/32769
	* pa-protos.h (pa_eh_return_handler_rtx): Declare.
	* pa.c (pa_extra_live_on_entry, rp_saved): Declare.
	(TARGET_EXTRA_LIVE_ON_ENTRY): Define.
	(pa_output_function_prologue): Use rp_saved and
	current_function_is_leaf to generate .CALLINFO statement.
	(hppa_expand_prologue): Set rp_saved.
	(hppa_expand_epilogue): Use rp_saved.
	(pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
	* pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx.

2007-07-14  Dirk Mueller  <dmueller@suse.de>

	* omega.c (coalesce): Fix memory leak on early exit.
	* matrix-reorg.c (check_allocation_function): Likewise.
	* tree-vect-transform.c (vect_get_new_vect_var): free result
	of concat().
	* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
	pass pointer to edge vector
	(partition_hot_cold_basic_blocks): Fix memory leak.
	* collect2.c (prefix_from_string): Free temporary storage.
	* reload1.c (fixup_abnormal_edges): Free sbitmap.

2007-07-14  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
	(DO_GLOBAL_DTORS_BODY): Likewise.

2007-07-14  Sandra Loosemore  <sandra@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>

	* config/mips/mips.c (mips_classify_symbol): Don't return
	SYMBOL_SMALL_DATA for constant pool addresses if
	TARGET_EMBEDDED_DATA is true.

2007-07-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (init_mmx_sse_builtins): Define all builtins
	except __builtin_ia32_emms, __builtin_ia32_ldmxcsr,
	__builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups,
	__builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps,
	__builtin_ia32_storehps, __builtin_ia32_storelps,
	__builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence,
	__builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd,
	__builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
	__builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq,
	__builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence,
	__builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor,
	__builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa,
	__builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins
	using def_builtin_const.

2007-07-14  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/32705
	* tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
	(simplify_binary_expression): Use SSA_VAL consistently.

2007-07-13  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
	(SPEFSCR_REGNO): Delete definition.
	* config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO.
	COUNT_REGISTER_REGNUM -> CTR_REGNO.
	* config/rs6000/rs6000.h: Do not define *_REGNO.
	LINK_REGISTER_REGNUM -> LR_REGNO.
	COUNT_REGISTER_REGNUM -> CTR_REGNO.
	* config/rs6000/predicates.md: LINK_REGISTER_REGNUM -> 	LR_REGNO.
	COUNT_REGISTER_REGNUM -> CTR_REGNO.
	* config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0,
	R_VRSAVE, R_VSCR. Use them.
	* config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2,
	R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR.  Use them.
	* config/rs6000/rs6000.md: Define REGNO constants.  Use them.
	* config/rs6000/aix.h: Define R_LR.  Use it.
	
2007-07-13  Caroline Tice  <ctice@apple.com>
	
	* toplev.c (process_options): Turn flag_var_tracking_uninit off when
	flag_var_tracking is explicitly turned off (i.e. when variable
	tracking is not feasible); otherwise, turn flag_var_tracking on when
	flag_var_tracking_uninit is on.
	* rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION
	note definitions, to allow recording of initialization status in the
	notes.
	* dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
	(add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to
	determine if two note locations are equal.
	(output_loc_list): Don't output list entries whose start & end labels
	are the same.
	(reg_loc_descriptor): Add parameter for initialization status; pass it
	to other loc descriptor functions.
	(one_reg_loc_descriptor): Add parameter for initialization status;
	check its value and add DW_OP_GNU_uninit to returned loc descr if
	appropriate.
	(multiple_reg_loc_descriptor): Add parameter for initialization
	status;
	pass init status argument to other loc descriptor functions; check
	value of intialization parameter and add DW_OP_GNU_uninit to returned
	loc descr if appropriate.
	(based_loc_descr): Add parameter for initialization status; add new
	variable for return value; check value of initialization parameter and
	add DW_OP_GNU_uninit to returned loc descr if appropriate.
	(concatn_mem_loc_descriptor): Add parameter for initialization status;
	pass init status argument to other loc descriptor functions; check
	value of intialization parameter and add DW_OP_GNU_uninit to returned
	loc descr if appropriate.
	(mem_loc_descriptor): Likewise.
	(concat_loc_descriptor): Likewise.
	(concatn_loc_descriptor): Likewise.
	(loc_descriptor): Add parameter for initialization status; pass it as
	argument to other loc descriptor function calls.
	(loc_descriptor_from_tree_1): Add appropriate initialization status
	to loc descriptor function calls.
	(add_location_or_const_value_attribute): Get initialization status
	from VAR_LOCATION note; add initialization status to loc descriptor
	function calls.
	* dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit.
	* print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if
	status is uninitialized, add "[uninint]" to output.
	* common.opt (fvar-tracking-uninit): New option, similar to
	fvar-tracking, to turn on tracking of uninitialized variables; creates
	a new global flag, flag_var_tracking_uninit.
	* rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field.
	(enum var_init_status): New type, for var initialization status field.
	* var-tracking.c (struct location_chain_def): Two new fields, init,
	for initialization status, and set_src for the assignment value expr.
	(unshare_variable): New parameter for initialization status;
	initialize new init and set_src fields.
	(var_reg_set): New parameters for initialization status and value;
	pass them to set_variable_part.
	(var_mem_set): Likewise.
	(get_init_value): New function.
	(var_reg_delete_and_set): New initialization status & value
	parameters; add call to get_init_value if status is unknown; pass new
	parameters to clobber_variable_part and var_reg_set.
	(var_mem_delete_and_set): Likewise.
	(var_reg_delete): Pass null set_src value to clobber_variable_part.
	(var_mem_delete): Likewise.
	(variable_union): Pass status to unshare_variable; initialize new init
	and set_src fields. If flag_var_tracking_uninit is not set, force
	status to initialized.
	(add_stores): Store insn, rather than NEXT_INSN(insn), so it can be
	used later to get the set_src value.
	(find_src_status): New function.
	(find_src_set_src): New function.
	(compute_bb_dataflow): Pass init status to calls to var_reg_set,
	var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for
	MO_SET, get set_src value and pass it to var_reg_delete_and_set
	and var_mem_delete_and_set.
	(dump_variable): Print out "[uninit]" if appropriate.
	(set_variable_part): Add new initialization and set_src parameters;
	pass status to unshare_variable; set node->init and node- >set_src
	fields and modify slot in hash table appropriately; save the init and
	set_src values if appropriate and assign to the new node.
	(clobber_variable_part): New set_src parameter; if two nodes have
	same variable and same location but different set_src (assignment)
	values, clobber old node.
	(delete_variable_part): Pass init status to unshare_variable.
	(emit_note_insn_var_location): Add initialized var; assign var's init
	status to new 'initialized'; pass new init status field to calls to
	gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force
	status to initialized.
	(emit_notes_in_bb): Pass initialization status to calls to
	var_reg_set, var_mem_set, var_reg_delete_and_set and
	var_mem_delete_and_set; for MO_SET, get set_src value and pass it to
	var_reg_delete_and_set and var_mem_delete_and_set; call
	emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to
	make up for change in add_stores.
	(vt_add_function_parameters): Add status to calls to
	set_variable_part.
	* config/darwin.c (darwin_override_options): Turn on uninitialized
	tracking automatically, if var_tracking is on and the system is
	10.5 or higher.
	
2007-07-13  Sa Liu  <saliu@de.ibm.com>

	* config.gcc: Add options for arch and tune on SPU.
	* config/spu/predicates.md: Add constant operands 0 and 1.
	* config/spu/spu-builtins.def: Add builtins for double precision 
	floating point comparison: si_dfceq, si_dfcmeq,	si_dfcgt, si_dfcmgt, 
	si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
	spu_testsv.
	* config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with 
	a CELLEDP target.
	* config/spu/spu-protos.h: Add new function prototypes. 
	* config/spu/spu.c (spu_override_options): Check options -march and
	-mtune.
	(spu_comp_icode): Add comparison code for DFmode and vector mode.
	(spu_emit_branch_or_set): Use the new code for DFmode and vector 
	mode comparison.
	(spu_const_from_int): New.  Create a vector constant from 4 ints.
	(get_vec_cmp_insn): New.  Get insn index of vector compare instruction.
	(spu_emit_vector_compare): New.  Emit vector compare.
	(spu_emit_vector_cond_expr): New.  Emit vector conditional expression.
	* config/spu/spu.h: Add options -march and -mtune.  Define processor
	types PROCESSOR_CELL and PROCESSOR_CELLEDP.  Define macro
	CANONICALIZE_COMPARISON.
	* config/spu/spu.md: Add new insns for double precision compare
	and double precision vector compare.  Add vcond and smax/smin patterns
	to enable DFmode vector conditional expression.
	* config/spu/spu.opt: Add options -march and -mtune.
	* config/spu/spu_internals.h: Add builtins for CELLEDP target:
	si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv.  Add builtin for
	both CELL and CELLEDP targets: spu_testsv.
	* config/spu/spu_intrinsics.h: Add flag mnemonics for test special 
	values.

2007-07-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/32721
	* tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve
	TREE_THIS_VOLATILE on the folded reference.
	* tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops
	if the array reference has TREE_THIS_VOLATILE set.

2007-07-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR other/32188
	* doc/libgcc.texi: Update DFP intrinsics for DPD and BID.

2007-07-13  Andreas Schwab  <schwab@suse.de>

	* gengtype-lex.l: Allow declarations to be indented.

2007-07-12  Geoffrey Keating  <geoffk@apple.com>

	* ginclude/tgmath.h: New.
	* config.gcc: Use GCC's tgmath.h on non-glibc systems.
	* doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
	* configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
	* configure: Regenerate.

2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/linux-unwind.h (sh_fallback_frame_state): Use
	correct index when setting register save state for xd
	registers.

2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (mark_use): Remove.

2007-07-12  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
	reg does not overlap return value.

2007-07-12  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
	(set_expression_vuses): Ditto.
	(init_pre): Initialize expression_vuses.

2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>

	* config/i386/sse.md (storentdf, storentsf): New.

2007-07-12  Geoffrey Keating  <geoffk@apple.com>

	* builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
	FUNCTION_DECL.
	* tree.c (build_decl_stat): Move code from here...
	(make_node_stat): ... to here.  Don't uselessly clear DECL_USER_ALIGN.
	(expr_align): Honor DECL_ALIGN on a FUNCTION_DECL.  Add comment
	about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
	* tree.h (DECL_USER_ALIGN): Fix misplaced comment.
	* varasm.c (assemble_start_function): Use DECL_ALIGN instead of
	FUNCTION_BOUNDARY.

2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
	    Devang Patel  <dpatel@apple.com>

	PR tree-optimization/25413
	* targhooks.c (default_builtin_vector_alignment_reachable): New.
	* targhooks.h (default_builtin_vector_alignment_reachable): New.
	* tree.h (contains_packed_reference): New.
	* expr.c (contains_packed_reference): New.
	* tree-vect-analyze.c (vector_alignment_reachable_p): New.
	(vect_enhance_data_refs_alignment): Call
	vector_alignment_reachable_p.
	* target.h (vector_alignment_reachable): New builtin.
	* target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
	* config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
	(TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.

2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>

	* target.h (builtin_vectorization_cost): Add new target builtin.
	* target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
	* tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
	(TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
	* tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
	uninitialized variables.
	* tree-vect-transform.c (cost_for_stmt): New function.
	(vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
	using cost 1 for all scalar stmts. Be less conservative when
	estimating the number of prologue/epulogue iterations. Call
	targetm.vectorize.builtin_vectorization_cost. Return
	min_profitable_iters-1.
	(vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
	initialization cost instead of TARG_VEC_STMT_COST. Use
	TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
	epilogue code. Fix epilogue cost computation.
	* config/spu/spu.c (spu_builtin_vectorization_cost): New.
	(TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
	* config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
	(TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
	(TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
	(TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.

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

	* gimplify.c (gimplify_conversion): Make sure that the result
	from maybe_fold_offset_to_reference is trivially convertible
	to the desired type before doing the simplification.
	(gimplify_expr): Likewise.
	* fold-const.c (fold_binary): Use the correct types for
	building the simplified expression.

2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>

	PR rtl-optimization/32729
	* cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
	that fallthru to exit.

2007-07-12  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
	(symDTPOFF2reg): Likewise.

2007-07-11  Daniel Berlin  <dberlin@dberlin.org>

	PR tree-optimization/32663
	
	* tree.h (VALUE_HANDLE_VUSES): Remove.
	(struct tree_value_handle): Remove vuses.

	* tree-vn.c (create_value_handle_for_expr): Don't set
	VALUE_HANDLE_VUSES. 

	* tree-ssa-pre.c (expression_vuses): New.
	(alloc_expression_id): Set up expression_vuses.
	(get_expression_vuses): New.
	(set_expression_vuses): Ditto.
	(clear_expression_ids): Modify for expression_vuses.
	(phi_translate_1): Ditto.
	(phi_translate_set): Ditto.
	(value_dies_in_block_x): Ditto
	(valid_in_sets): Ditto.
	(add_to_sets): Ditto.
	(find_existing_value_expr): Ditto.
	(create_value_handle_for_expr): Ditto.
	(make_values_for_stmt): Ditto.
	(vuse_equiv): Remove.

2007-07-11  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (mostlyclean): Remove object files.

2007-07-11  Kenneth Zadeck <zadeck@naturalbridge.com>

	* toplev.c (no_new_pseudos): Deleted.
	* rtl.h (no_new_pseudos): Deleted.
	* tree-pass.h (pass_no_new_pseudos): Deleted. 
	* passes.c (pass_no_new_pseudos): Deleted.
	* final.c (rest_of_clean_state): Removed no_new_pseudos.
	(rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
	* struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with 
	reload_completed.
	* cfgcleanup.c (try_crossjump_to_edge): Ditto. 
	* rtlhooks.c (gen_lowpart_general): Ditto.
	* optabs.c (prepare_operand): Ditto.
	* mode-switching.c (rest_of_handle_mode_switching): Deleted set of
	no_new_pseudos.
	* modulo-sched.c (rest_of_handle_sms): Ditto.
	* see.c (rest_of_handle_see): Ditto.
	* ifcvt.c (if_convert): Ditto.
	(gate_handle_if_after_combine): Replaced no_new_pseudos with 
	reload_completed.
	* init-regs.c (gate_initialize_regs): Deleted set of
	no_new_pseudos.
	* lower-subreg.c (decompose_multiword_subregs): Ditto. 
	* bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
	* doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
	
2007-07-11  Uros Bizjak  <ubizjak@gmail.com>

	PR target/32661
	* config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
	(*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
	(*vec_extractv2di_1_rex64): New insn pattern.

2007-07-11  David Daney  <ddaney@avtrex.com>

	* config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
	return address calculation.  Substitute DWARF_ALT_FRAME_RETURN_COLUMN
	for SIGNAL_UNWIND_RETURN_COLUMN.
	* config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
	(DWARF_FRAME_REGNUM): Rewrite.
	(DWARF_ALT_FRAME_RETURN_COLUMN) Define.

2007-07-11  Nick Clifton  <nickc@redhat.com>

	* config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
	delta and use gen_int_mode in place of GET_INT instead.

2007-07-11  Uros Bizjak  <ubizjak@gmail.com>

	* reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
	and letter field.

2007-07-11  Douglas Gregor  <doug.gregor@gmail.com>

	* params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
	(PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical 
	types or not.
	* params.h (VERIFY_CANONICAL_TYPES): Remove.
	(USE_CANONICAL_TYPES): New.
	* doc/invoke.texi (verify-canonical-types): Remove.
	(use-canonical-types): Add.

2007-07-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/spu/spu.c (spu_optimization_options): Remove setting of
	parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
	(spu_override_options): Move it here.

2007-07-11  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
	* config/mips/mips.c (mips_cpu_info_table): Mention
	MIPS_ISA_LEVEL_SPEC in the comment.

2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/32713
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.

2007-07-11  Paolo Carlini  <pcarlini@suse.de>

	PR middle-end/30482
	* c-opts.c (c_common_post_options): Do not change flag_complex_method
	conditional to flag_isoc99.
	(c_common_init_options): Do it here, unconditionally.

2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/32589
	* doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
	* tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
	* tree-ssa-propagate.c (valid_gimple_expression_p): New
	predicate, extracted from...
	(set_rhs): ...here.  Call it for the expression on entry.
	* tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
	* tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
	(simplify_binary_expression): Use valid_gimple_expression_p
	to validate the simplification.
	* Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.

2007-07-11  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
	DWARF2_DEBUG on 32 bit target too.
	(DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition. 

2007-07-11  Nick Clifton  <nickc@redhat.com>

	* config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
	version for 64-bit hosts.

2007-07-10  David Daney  <ddaney@avtrex.com>

	* config/mips/mips.h (ISA_HAS_SYNCI): New target capability
	predicate.
	(INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of  library
	call.
	* config/mips/mips.c (mips_expand_synci_loop): New function.
	* config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
	(UNSPEC_RDHWR): Same.
	(UNSPEC_SYNCI): Same.
	(UNSPEC_SYNC): Same.
	(clear_cache): New expand.
	(sync): New insn.
	(synci): Same.
	(rdhwr): Same.
	(clear_hazard): Same.
	* config/mips/mips-protos.h (mips_expand_synci_loop): Declare
	function.
	* testsuite/gcc.target/mips/clear-cache-1.c: New test.
	* testsuite/gcc.target/mips/clear-cache-2.c: New test.

2007-07-10  Ian Lance Taylor  <iant@google.com>

	* emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
	no_new_pseudos.

2007-07-10  David Daney  <ddaney@avtrex.com>

	* builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
	* builtins.c (expand_builtin___clear_cache): New function.
	(expand_builtin): Call expand_builtin___clear_cache for
	BUILT_IN_CLEAR_CACHE case.
	* doc/extend.texi (__builtin___clear_cache): Document new builtin.
	* doc/md.texi (clear_cache): Document new instruction pattern.
	* testsuite/gcc.dg/builtins-64.c: New test.

2007-07-11  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.md ("movsi"): Fix typo in last change.

2007-07-09  Geoffrey Keating  <geoffk@apple.com>

	PR 32617
	* c-common.c (c_alignof_expr): Look at DECL_ALIGN of
	FUNCTION_DECLs.
	(handle_aligned_attribute): Allow use on FUNCTION_DECLs.
	* varasm.c (assemble_start_function): Honor DECL_ALIGN
	for FUNCTION_DECLs.  Don't use align_functions_log if
	DECL_USER_ALIGN.
	* print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
	even for FUNCTION_DECLs.
	* c-decl.c (merge_decls): Propagate DECL_ALIGN even for
	FUNCTION_DECLs.
	* tree.h (DECL_ALIGN): Update for new location of 'align'.
	(DECL_FUNCTION_CODE): Update for new location and name of
	'function_code'.
	(DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
	(struct tree_decl_common): Move 'align' and 'off_align' out
	of union, ensure they're still on a 32-bit boundary.  Remove
	other fields in union 'u1'.
	(struct tree_function_decl): Add field 'function_code' replacing
	'u1.f' in tree_decl_common.
	* tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
	* doc/extend.texi (Function Attributes): Add 'aligned' attribute.
	(Variable Attributes): Cross-reference 'aligned' attribute
	to Function Attributes.
	* flags.h (force_align_functions_log): Delete.
	* toplev.c (force_align_functions_log): Delete.

2007-07-10  Uros Bizjak  <ubizjak@gmail.com>

	PR target/32708
	* config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
	(*vec_concatv2di_rex): New insn pattern.

2007-07-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR target/32538
	* config/mips/iris6.h (LIBGCC_SPEC): Add libm.

2007-07-10  Ian Lance Taylor  <iant@google.com>

	Replace no_new_pseudos in backends.
	* rtl.h (can_create_pseudo_p): Define.
	* config/darwin.c (machopic_indirect_data_reference): Use
	can_create_pseudo_p () instead of no_new_pseudos.
	(machopic_indirect_data_reference): Likewise.
	(machopic_legitimize_pic_address): Likewise.
	* config/alpha/alpha.c (alpha_legitimize_address): Likewise.
	(alpha_emit_set_const_1): Likewise.
	(alpha_emit_set_const): Likewise.
	(alpha_emit_conditional_move): Likewise.
	(alpha_split_conditional_move): Likewise.
	* config/alpha/alpha.md (various splitters): Likewise.
	(movti): Likewise.
	* config/arm/arm.c (legitimize_pic_address): Likewise.
	(arm_load_pic_register): Likewise.
	* config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
	(movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
	* config/bfin/bfin.c (legitimize_pic_address): Likewise.
	* config/cris/cris.c (cris_expand_pic_call_address): Likewise.
	* config/cris/cris.md (movsi): Likewise.
	* config/frv/frv.md (symGOT2reg_hilo): Likewise.
	(symGOTOFF2reg_hilo): Likewise.
	(symGPREL2reg, symGPREL2reg_hilo): Likewise.
	* config/h8300/h8300.md (insv, extzv): Likewise.
	* config/i386/i386.c (ix86_expand_move): Likewise.
	(ix86_expand_vector_move): Likewise.
	(ix86_prepare_fp_compare_args): Likewise.
	(ix86_expand_carry_flag_compare): Likewise.
	* config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
	(tls_dynamic_gnu2_combine_32): Likewise.
	(tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
	* config/ia64/ia64.c (ia64_expand_move): Likewise.
	(ia64_expand_movxf_movrf): Likewise.
	* config/m32c/m32c.c (m32c_prepare_move): Likewise.
	(m32c_split_move): Likewise.
	(m32c_expand_insv): Likewise.
	* config/m68k/m68k.md (movsi): Likewise.
	* config/mips/mips.c (mips_force_temporary): Likewise.
	(mips_split_symbol): Likewise.
	(mips_move_integer): Likewise.
	(mips_legitimize_const_move): Likewise.
	* config/mn10300/mn10300.md (movsi): Likewise.
	* config/pa/pa.c (emit_move_sequence): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
	(rs6000_got_register): Likewise.
	(create_TOC_reference): Likewise.
	(rs6000_machopic_legitimize_pic_address): Likewise.
	* config/rs6000/rs6000.md (add<mode>3): Likewise.
	(various splitters): Likewise.
	(iorsi3, xorsi3, iordi3, xordi3): Likewise.
	(movsi_got): Likewise.
	* config/s390/s390.c (emit_symbolic_move): Likewise.
	* config/s390/s390.md (movhi, movqi): Likewise.
	(load_multiple, store_multiple): Likewise.
	* config/score/score.c (score_force_temporary): Likewise.
	* config/sh/sh.c (prepare_move_operands): Likewise.
	(prepare_cbranch_operands): Likewise.
	(emit_fpu_switch): Likewise.
	(fpscr_set_from_mem): Likewise.
	* config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
	(adddi3, subsi3): Likewise.
	(various splitters): Likewise.
	(divsi_inv_fp_combine): Likewise.
	(symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
	(seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
	(sne): Likewise.
	* config/sh/predicates.md (xor_operand): Likewise.
	* config/sparc/sparc.c (legitimize_tls_address): Likewise.
	* config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
	(movdi_pic_label_ref): Likewise.
	* config/spu/spu.c (spu_split_immediate): Likewise.
	* config/alpha/alpha.md (various splitters): Remove test
	!no_new_pseudos || reload_completed.
	* config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
	no_new_pseudos.
	* config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
	* config/mips/mips.c (mips_output_mi_thunk): Likewise.
	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
	* config/score/score.c (th_output_mi_thunk): Likewise.
	* config/sh/sh.c (sh_output_mi_thunk): Likewise.
	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.

2007-07-10  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR rtl-optimization/32664
	* mode-switching.c (create_pre_exit): Skip barrier insns.

2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-scalar-evolution.c (scev_const_prop): Add arguments to
	force_gimple_operand_bsi.
	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
	rewrite_use_compare): Ditto.
	* tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
	Ditto.
	* tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
	* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
	* lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
	* tree-profile.c (prepare_instrumented_value,
	tree_gen_interval_profiler, tree_gen_pow2_profiler,
	tree_gen_one_value_profiler, tree_gen_ic_profiler,
	tree_gen_ic_func_profiler, tree_gen_average_profiler,
	tree_gen_ior_profiler): Ditto.
	* tree-ssa-reassoc.c (negate_value): Ditto.
	* matrix-reorg.c (transform_access_sites, transform_allocation_sites):
	Use force_gimple_operand_bsi.
	* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
	* tree-if-conv.c (add_to_dst_predicate_list,
	find_phi_replacement_condition): Ditto.
	* gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
	Call mark_symbols_for_renaming for new statements.
	* tree-flow.h (force_gimple_operand_bsi): Declaration changed.

2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>

	* cfghooks.c (remove_edge): New function.
	(redirect_edge_and_branch, remove_branch, merge_blocks): Updated
	loop exit rescans.
	* cfghooks.h (remove_edge): Declare.
	* cfg.c (remove_edge): Renamed to remove_edge_raw.
	* basic-block.h (remove_edge): Declaration changed to remove_edge_raw.

2007-07-09  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* optabs.h: Added declaration for signbit_optab.  
	* optabs.c: (init_optabs): Added initialization for signbit_optab.
	* genoptinit.c (optabs): Added entry for signbit insns.  
	* builtins.c (expand_builtin_signbit): Added code to use a signbit
	insn, if available.  
	* config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.  
	* config/s390/s390.md (signbit<mode>2): New expander.  

2007-07-09  Richard Guenther  <rguenther@suse.de>

	PR middle-end/32698
	* fold-const.c (fold_plusminus_mult_expr): Move constant
	arguments second to allow decomposing.

2007-07-09  Alexandre Oliva  <aoliva@oliva.athome.lsd.ic.unicamp.br>

	Revert:
	2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
	PR debug/23551
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce):
	Disregard DECL_FROM_INLINE.

2007-07-09  Uros Bizjak  <ubizjak@gmail.com>

	PR target/27855
	* doc/invoke.texi: Add ftree-reassoc flag.
	* common.opt (ftree-reassoc): New flag.
	* tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
	(struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.

2007-07-09  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/32681
	* tree-if-conv.c (find_phi_replacement_condition): Use the condition
	saved in second_edge->aux when first_bb is a loop header.

2007-07-09  Jan HUbicka  <jh@suse.cz>

	* cse.c (cse_insn): Avoid invalid sharing on trial replacement.

2007-07-09  Richard Guenther  <rguenther@suse.de>

	* c-decl.c (start_function): Do not promote return type.

2007-07-08  Daniel Franke  <franke.daniel@gmail.com>

	* function.c (do_warn_unused_parameter): Do not warn if
	TREE_NO_WARNING is set.

2007-07-08  Andreas Schwab  <schwab@suse.de>

	* doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.

2007-07-08  Sandra Loosemore  <sandra@codesourcery.com>

	Revert this patch:
	2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>

	* c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
	apply to assembly language, too.
	* doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.

2007-07-07  Daniel Berlin  <dberlin@dberlin.org>

	Revert (note the sccvn portions are *not* reverted)
	2007-07-06  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/23488

	* tree-vn.c (set_value_handle): Use decl_vh_map for decl value
	handles.
	* tree-flow-inline.h (get_value_handle): Ditto.
	* tree-ssa-pre.c (decl_vh_map): New.
	(decl_node_pool): New.
	(can_value_number_operation): Support DECL_P.
	(can_PRE_operation): Ditto.
	(create_expression_by_pieces): Ditto.
	(find_existing_value_expr): Modify to differnetiate between
	addressing and top level.
	(create_value_handle_for_expr): Handle DECL's.
	(poolify_tree): Ditto.
	(make_values_for_phi): Don't insert into PHI_GEN during FRE.
	(make_values_for_stmt): Handle DECL's properly.
	(init_pre): Reorg to not init useless things during FRE.
	(fini_pre): Ditto.
	* tree-flow.h: Include pointer-set.h.
	(decl_vh_map): Declare.
	* Makefile.in (TREE_FLOW_H): Add pointer-set.h

2007-07-07 Eric Weddington  <eweddington@cso.atmel.com>

	* config/avr/constraints.md (define_memory_constraint "Q"): Fix
	the constraint description.
	* doc/md.texi: Update documentation of AVR constraints.

2007-07-07  Kazu Hirata  <kazu@codesourcery.com>

	* auto-inc-dec.c, config/arm/arm.c,
	config/m32r/constraints.md, config/mips/mips.md,
	config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
	df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
	tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
	typos.  Follow spelling conventions.
	* doc/invoke.texi, doc/rtl.texi: Fix typos.

	* cfgrtl.c (delete_insn_chain_and_edges): Remove.
	* rtl.h: Remove the prototype for delete_insn_chain_and_edges.

	* tree-ssa-operands.c (realloc_vop, realloc_vdef,
	realloc_vuse): Remove.
	* tree-ssa-operands.h: Remove the prototype for realloc_vdef
	and realloc_vuse.

2007-07-06  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/23488

	* tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
	(try_to_simplify): Ditto.
	(visit_use): Ditto.
	* tree-vn.c (set_value_handle): Use decl_vh_map for decl value
	handles.
	* tree-flow-inline.h (get_value_handle): Ditto.
	* tree-ssa-pre.c (decl_vh_map): New.
	(decl_node_pool): New.
	(can_value_number_operation): Support DECL_P.
	(can_PRE_operation): Ditto.
	(create_expression_by_pieces): Ditto.
	(find_existing_value_expr): Modify to differnetiate between
	addressing and top level.
	(create_value_handle_for_expr): Handle DECL's.
	(poolify_tree): Ditto.
	(make_values_for_phi): Don't insert into PHI_GEN during FRE.
	(make_values_for_stmt): Handle DECL's properly.
	(init_pre): Reorg to not init useless things during FRE.
	(fini_pre): Ditto.
	* tree-flow.h: Include pointer-set.h.
	(decl_vh_map): Declare.
	* Makefile.in (TREE_FLOW_H): Add pointer-set.h
		
2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>

	* c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
	apply to assembly language, too.
	* doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.

2007-07-06  Ian Lance Taylor  <iant@google.com>
	    Zack Weinberg  <zackw@panix.com>

	PR middle-end/32441
	* builtins.c (std_expand_builtin_va_start): Don't use make_tree.

2007-07-06  Richard Sandiford  <richard@codesourcery.com>

	* config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
	(prefetch): Likewise if "pref" would be used.

2007-07-06  Josh Conner  <jconner@apple.com>

	PR middle-end/32602
	PR middle-end/32603
	* calls.c (store_one_arg): Handle arguments which are partially
	on the stack when detecting argument overlap.

2007-07-06  Bernd Schmidt  <bernd.schmidt@analog.com>

	* reload1.c (choose_reload_regs): Set reload_spill_index for regs
	chosen during find_reloads.

2007-07-06  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
	TYPE_ARG_TYPES for verification of argument types.  Use
	DECL_ARG_TYPE instead of the PARM_DECL type.  Take excess
	parameters as variable arguments.

2007-07-06  Andreas Krebbel  <krebbel1@de.ibm.com>

	* libgcc2.h (word_type): Type definition removed.
	(cmp_return_type, shift_count_type): Type definitions added.
	(__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
	replaced with shift_count_type.
	(__cmpdi2, __ucmpdi2): word_type of return type replaced with
	cmp_return_type.
	* libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
	changed from word_type to Wtype.
	(__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
	replaced with shift_count_type.
	(__cmpdi2, __ucmpdi2): word_type of return type replaced with
	cmp_return_type.
	* c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
	and libgcc_shift_count attribute added.
	* target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
	TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
	(TARGET_INITIALIZER): New target hooks added.
	* targhooks.c (default_libgcc_cmp_return_mode,
	default_libgcc_shift_count_mode): Default implementations for the new
	target hooks added.
	* targhooks.h (default_libgcc_cmp_return_mode,
	default_libgcc_shift_count_mode): Function prototypes added.
	* target.h (struct gcc_target): Fields for the new target hooks added.
	* optabs.c (expand_binop): Use shift_count_mode when expanding shift
	as library call.
	(prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
	library call.

	* doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
	TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.

	* config/s390/s390.c (s390_libgcc_cmp_return_mode,
	s390_libgcc_shift_count_mode): Functions added.
	(TARGET_LIBGCC_CMP_RETURN_MODE,	TARGET_LIBGCC_SHIFT_COUNT_MODE):
	Target hooks defined.

2007-07-06  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.c (compute_frame_size): Restore the original
	gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
	fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
	Document why the difference is needed.

2007-07-06  Richard Guenther  <rguenther@suse.de>

	* c-common.c (boolean_increment): Use correctly typed
	constant.

2007-07-06  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
	the topmost argument register is not also included in the save mask.
	(mips16e_collect_argument_save_p): Take a pointer to the argument
	register, rather than a pointer to the number of arguments.
	(mips16e_collect_argument_saves): Only include argument saves
	that aren't in the register mask.

2007-07-06  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/32450
	* function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
	to ensure that instructions are not moved into the prologue when
	profiling is on.  Remove unused prologue_end variable.
	(expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
	as a scheduling barrier.

2007-07-06  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/23551
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce):
	Disregard DECL_FROM_INLINE.

2007-07-05  Adam Nemet  <anemet@caviumnetworks.com>

	* rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
	IORing with a constant.

2007-07-05  Seongbae Park  <seongbae.park@gmail.com>

	PR rtl-optimization/32475
	* df-scan.c (df_def_record_1): Add a use of the stack pointer
	for every definition of the stack pointer.

2007-07-05  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (vfp3_const_double_index): Copy signed results of
	REAL_VALUE_TO_INT into unsigned vars.

2007-07-05  Richard Guenther  <rguenther@suse.de>

	PR middle-end/32639
	* alias.c (get_alias_set): Tread METHOD_TYPE the same as
	FUNCTION_TYPE.
	* tree-ssa.c (useless_type_conversion_p): Check canonical
	types early.

2007-07-05 Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.md (zero_extendqihi2, zero_extendqisi2, 
	zero_extendhisi2): Change to define_insn_and_split. 
	(zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.

2007-07-05  Paolo Bonzini  <bonzini@gnu.org>

	* function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
	pass_match_asm_constraints): New.
	* passes.c (init_optimization_passes): Add new pass.
	* stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
	* function.h (struct function): Add has_asm_statement bit.
	(current_function_has_asm_statement): New.
	* tree-pass.h (pass_match_asm_constraints): New.

2007-07-05  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_file_start): Avoid declaration
	after code.

2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>

	* optabs.c (expand_binop_directly): Fix signed/unsigned comparison.

2007-07-05  Uros Bizjak  <ubizjak@gmail.com>

	* rtl.def (NOTE): Change print format string to print
	operand 5 as a note insn name.

2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
	    David Ung  <davidu@mips.com>

	* config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
	* doc/invoke.texi: (MIPS Options): Document them.

2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
	    David Ung  <davidu@mips.com>

	Add support for SmartMIPS ASE.

	* optabs.c (expand_binop_directly): New, broken out from...
	(expand_binop): Here.  Make it try rotating in the other
	direction even when the second operand isn't constant.
	* config/mips/mips.md (*lwxs): New.
	* config/mips/mips.opt (msmartmips): New.
	* config/mips/mips.c (mips_lwxs_address_p): New.
	(mips_rtx_costs): Make it recognize scaled indexed addressing.
	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
	__mips_smartmips when compiling for TARGET_SMARTMIPS.
	(ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
	(ISA_HAS_LWXS): New.
	(ASM_SPEC): Add -msmartmips/-mno-smartmips.
	* doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
	* testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
	* testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
	* testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
	* testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
	* testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.

2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-vectorizer.c (new_loop_vec_info): Initialize
	LOOP_VINFO_COST_MODEL_MIN_ITERS.
	* tree-vectorizer.h (_loop_vec_info): Added new filed
	min_profitable_iters.
	(LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
	(TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
	* tree-vect-analyze.c (vect_analyze_operations): Set
	LOOP_VINFO_COST_MODEL_MIN_ITERS.
	* tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
	VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
	Fix calculation of peel_iters_prologue. Move consideration of epilogue
	and prologue cost to after they are computed.
	(vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
	TARG_VEC_STMT_COST.
	(vect_model_simple_cost): Takes additional argument dt. Consider cost
	of creating vectors from scalars according to dt.
	(vect_model_store_cost): Likewise.
	(vectorizable_call): Use dt array instead of scalar dt. Call
	vect_model_simple_cost with additional argument dt.
	(vectorizable_assignment): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_type_demotion): Likewise.
	(vectorizable_type_promotion): Likewise.
	(vectorizable_store): Use dt array instead of scalar dt. Call
	vect_model_store_cost with additional argument dt.
	(vect_do_peeling_for_loop_bound): Don't call
	vect_estimate_min_profitable_iters. Instead, lookup
	LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
	"may not be profitable".

2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>

	PR testsuite/32014
	* config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
	(UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
	(vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
	(vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns. 

2007-07-05  Zdenek Dvorak  <dvorakz@suse.cz>

	* config/i386/i386.c (ix86_address_cost): Do not consider more complex
	addressing modes cheaper.

2007-07-05  Alexandre Oliva  <aoliva@redhat.com>

	* dwarf2out.c (dw_ranges_by_label_ref): New typedef.
	(dw_ranges_struct): Rename block_num to num.  Adjust.
	(dw_ranges_by_label_struct): New.
	(ranges_by_label, ranges_by_label_allocated,
	ranges_by_label_in_use): New variables.
	(add_ranges_num): Factored most of the code out of...
	(add_ranges): ... this one.  Rewrite in terms of the former.
	(add_ranges_by_labels): New.
	(output_ranges): Output by-label ranges.
	(dwarf2out_finish): Output range for multiple-section
	compile_unit.  Output standard DW_AT_low_pc in addition to
	unexpected DW_AT_entry_pc.

2007-07-04  Daniel Berlin  <dberlin@dberlin.org>

	PR tree-optimization/32604
	PR tree-optimization/32606

	* tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
	(compute_antic_safe): Removed.
	(ANTIC_SAFE_LOADS): Ditto.
	(compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
	(execute_pre): Don't call compute_antic_safe.
	(vuse_equiv): New function.
	(make_values_for_stmt): Use it
	* tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
	not always true.

2007-07-04 Anatoly Sokolov <aesok@post.ru>

	PR target/31331
	* config/avr/avr.c (avr_naked_function_p): Handle receiving a type
	rather than a decl. 
	(avr_attribute_table): Make "naked" attribute apply to function types
	rather than to decls.
	(avr_handle_fntype_attribute): New function.

2007-07-04  Joseph Myers  <joseph@codesourcery.com>

	* target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
	after \.

2007-07-04  David Ung  <davidu@mips.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* config/mips/mips.md (type): Add logical, signext and move.
	(one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
	*ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
	*nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
	combinations", *zero_extend<SHORT:mode><GPR:mode>2,
	*zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
	*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
	*movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
	*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
	*movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
	*movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
	movv2sf_hardfloat_64bit): Use the new types.
	(*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
	*movdf_softfloat, *movdf_mips16): Use "multi".
	(extendqihi2): Replace with a define_expand.
	(*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
	Based on extend<SHORT:mode><GPR:mode>2 patterns.
	* config/mips/74k.md (r74k_int_logical): New reservation and
	bypasses.
	(r74k_int_arith): Remove "slt".
	* config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
	config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
	config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
	config/mips/sb1.md, config/mips/sr71k.md: Add new types to
	reservations for "arith".

2007-07-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa.c (useless_type_conversion_p): Add handling for
	scalar float and vector types.  Only call the types_compatible_p
	langhook for aggregate types as last resort.  Follow the
	rules.

2007-07-04  Richard Guenther  <rguenther@suse.de>

	* tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
	the same as NOP_EXPR.

2007-07-04  Nick Clifton  <nickc@redhat.com>

	* target.h (struct gcc_target): Add target_help field.
	* target-def.h (TARGET_HELP): New.
	(TARGET_INITIALIZER): Use TARGET_HELP.
	* opts.c (command_handle_option): Invoke target_help function, if
	defined, when the user has specified --target-help on the command
	line.
	* doc/invoke.texi: Mention that --target-help might print
	additional information.
	* doc/tm.texi: Document TARGET_HELP hook.

	* arm.c (TARGET_HELP): Override default definition.
	(arm_target_help): New - display a wrapped list of cores and
	architectures supported.

2007-07-04  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* config/v850/v850.c (expand_prologue): Make sure
	GEN_INT() argument is sign extended rather than zero extended.
	(expand_epilogue): Likewise.
	(output_move_double): Delete.
	* config/v850/v850-protos.h (output_move_double): Delete.
	* config/v850/v850.md (movdi): Delete.
	(*movdi_internal): Delete.
	(movdf): Delete.
	(*movdf_internal): Delete.

2007-07-04  Richard Sandiford  <richard@codesourcery.com>

	* config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
	unless compiling RTP PIC.

2007-07-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/32482
	* tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
	original ssa name if we didn't find a shift expression.
	Fix shift constant for bit zero test.

2007-07-04  Richard Sandiford  <richard@codesourcery.com>

	* config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.

2007-07-04  Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (arm-wrs-vxworks): Don't include svr4.h.
	* config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
	* config/arm/vxworks.h (ASM_SPEC): Delete.
	(SUBTARGET_EXTRA_ASM_SPEC): Define.

2007-07-04  Sebastian Pop  <sebpop@gmail.com>

	* tree-data-ref.h (data_dependence_relation): New flag reversed_p.
	(DDR_REVERSED_P): New.
	* tree-data-ref.c (initialize_data_dependence_relation,
	build_classic_dist_vector): Set DDR_REVERSED_P.

2007-07-04  Sebastian Pop  <sebpop@gmail.com>

	PR middle-end/32457
	* tree-data-ref.c (analyze_siv_subscript_cst_affine,
	compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
	init_omega_for_ddr_1): Use non conservative number of iterations
	estimations.
	(analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
	(analyze_siv_subscript): Remove FIXME and reinitialization of 
	last_conflicts to chrec_dont_know.
	* testsuite/gfortran.dg/vect/pr32457.f90: New.

2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>

	* tree.c (maybe_canonicalize_argtypes): Improve description.

2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>

	* tree.c (maybe_canonicalize_argtypes): New.
	(build_function_type): Set canonical type.
	(build_method_type_directly): Ditto.
	(reconstruct_complex_type): Rebuild the METHOD_TYPE node
	properly.

2007-07-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
	like PLUS_EXPR.
	(rewrite_use_nonlinear_expr): Likewise.

2007-07-03  Seongbae Park  <seongbae.park@gmail.com>

	* rtl.def (UNSPEC, USE, CLOBBER): More comments.

2007-07-04  Ben Elliston  <bje@au.ibm.com>

	* dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
	of this file.

	* c-objc-common.c (c_types_compatible_p): Fix indentation.

	* doc/tm.texi (Run-time Target): Capitalise "CPU".
	(Exception Handling): Likewise.

2007-07-03  Jan Hubicka  <jh@suse.cz>

	* ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.

2007-07-03  Eric Christopher  <echristo@apple.com>

	* doc/cppopts.texi: Add conflicting option note to -dM.
	* doc/invoke.texi: Add note about possible conflicts with
	-E for -dCHARS and note that -dM will not produce
	any results if there is no machine dependent reorg.
	
2007-07-03  Geoffrey Keating  <geoffk@apple.com>

	* tree.h (DECL_ALIGN): Back out previous change.

2007-07-03  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac: Test for .dtprelword support on MIPS.
	* configure, config.in: Regenerate.
	* config/mips/mips.c (mips_output_dwarf_dtprel): New.
	(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.

2007-07-03  Julian Brown  <julian@codesourcery.com>

	* config.gcc (with_fpu): Allow --with-fpu=vfp3.
	* config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
	* config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
	* config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
	capability.
	(all_fpus): Add FPUTYPE_VFP3.
	(fp_model_for_fpu): Add VFPv3 field.
	(arm_rtx_costs_1): Give cost to VFPv3 constants.
	(vfp3_const_double_index): New function. Return integer index of
	VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
	isn't suitable.
	(vfp3_const_double_rtx): New function. True if VFPv3 is enabled
	and argument represents a valid RTX for a VFPv3 constant.
	(vfp_output_fldmd): Split fldmd with > 16 registers in the list into
	two instructions.
	(vfp_emit_fstmd): Similar, for fstmd.
	(arm_print_operand): Implement new code 'G' for VFPv3 floating-point
	constants, represented as integer indices.
	(arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
	VFP_REGNO_OK_FOR_DOUBLE macros.
	(arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
	(arm_file_start): Set float-abi attribute for VFPv3, and output
	correct ".fpu" assembler directive.
	(arm_dbx_register_numbering): Add FIXME.
	* config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
	(fputype): Add FPUTYPE_VFP3.
	(FIXED_REGISTERS): Add 32 registers for D16-D31.
	(CALL_USED_REGISTERS): Likewise.
	(CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
	of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
	(LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
	(D7_VFP_REGNUM): New.
	(LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
	(VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
	(VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
	(FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
	(REG_ALLOC_ORDER): Adjust for VFPv3.
	(reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
	(REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
	VFP_LO_REGS, VFP_HI_REGS.
	(REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
	(IS_VFP_CLASS): Define macro.
	(SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
	IS_VFP_CLASS.
	(REGISTER_MOVE_COST): Likewise.
	* config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
	* config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
	(*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
	(*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
	(*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
	(*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
	(*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
	(*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
	(*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
	(floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
	(*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
	where appropriate for single-word registers.
	(*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
	As above. Fix type attributes.
	* config/arm/constraints.md (register_contraint "t"): Define.
	(register_constraint "w"): Change to D0-D15, or D0-D31 for
	VFPv3/NEON.
	(register_constraint "x"): Define.
	(constraint "Dv"): Define.

2007-07-03  Geoffrey Keating  <geoffk@apple.com>

	* tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.

2007-07-03  Tom Tromey  <tromey@redhat.com>

	* c-parser.c (objc_pq_context): Removed.
	(objc_need_raw_identifier): Likewise.
	(c_parser) <objc_pq_context>: New field.
	<objc_need_raw_identifier>: Likewise.
	(OBJC_NEED_RAW_IDENTIFIER): Removed.
	(c_lex_one_token): Update.
	(c_parser_objc_protocol_definition): Update.
	(c_parser_objc_method_definition): Update.
	(c_parser_objc_methodproto): Update.
	(c_parser_declspecs): Update.

2007-07-03  David Ung  <davidu@mips.com>

	* config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.

2007-07-03  David Ung  <davidu@mips.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* doc/invoke.texi: Document -march=74kf3_2.
	* config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
	(TUNE_74K): Check for it.
	* config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
	(mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
	* config/mips/mips.md (cpu): Add 74kf3_2.
	* config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
	(r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
	(r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
	(r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
	74kf3_2 to the CPU list.
	(r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
	(r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
	(r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
	(r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
	(r74kf3_2_fxfer_from_c1): New insn reservations.

2007-07-03  Richard Sandiford  <richard@codesourcery.com>
	    David Ung  <davidu@mips.com>

	* doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
	-march=24kx with -march=24kf1_1.  Likewise 24ke[fx], 34k[fx]
	and 74k[fx].  Document aliases for the new options.
	* config/mips/mips.h (PROCESSOR_24KF): Rename to...
	(PROCESSOR_24KF2_1): ...this.
	(PROCESSOR_24KX): Rename to...
	(PROCESSOR_24KF1_1): ...this.
	(PROCESSOR_74KF): Rename to...
	(PROCESSOR_74KF2_1): ...this.
	(PROCESSOR_74KX): Rename to...
	(PROCESSOR_74KF1_1): ...this.
	(TUNE_74K): Update PROCESSOR_* names.
	* config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
	for 24kf.  Add 24kf1_1 and 24kfx as synonyms for 24kx.  Likewise
	the 24ke*, 34k* and 74k* processors.  Update PROCESSOR_* names.
	(mips_rtx_cost_data): Update processor names in comments.
	(mips_issue_rate): Update PROCESSOR_* names.
	* config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
	24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
	* config/mips/24k.md: Rename FPU-related r24k_* insn reservations
	to r24kf2_1_*.  Rename r24kx_* insn reservations to r24kf1_1_*.
	Update cpu attribute names.
	(r24k_fpu_iss): Rename this reservation to...
	(r24kf2_1_fpu_iss): ...this and update all uses.
	(r24kx_fpu_iss): Rename this reservation to...
	(r24kf1_1_fpu_iss): ...this and update all uses.
	* config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
	to r74kf2_1_*.  Rename r74kx_* insn reservations to r74kf1_1_*.
	Update cpu attribute names.

2007-07-01  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/m32r/constraints.md: New file.
	* config/m32r/m32r.c: Include tm-constrs.h.
	(small_data_operand): Use satisfies_constraint_* instead of macro.
	(addr24_operand, gen_compare): Likewise.
	* config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
	(INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
	CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
	EXTRA_CONSTRAINT): Likewise.
	* config/m32r/m32r.md: Include constraints.md.
	(*movsi_insn): Use satisfies_constraint_* instead of macro.
	(andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
	* config/m32r/predicates.md (conditional_move_operand): Likewise.
	(two_insn_const_operand, int8_operand, uint16_operand,
	reg_or_int16_operand, reg_or_uint16_operand,
	reg_or_cmp_int16_operand, cmp_int16_operand,
	seth_add3_operand): Likewise.

2007-07-03  Eric Christopher  <echristo@gmail.com>

	* libgcc2.h: Conditionally declare __bswapsi2 and
	__bswapdi2.
	
2007-07-03  H.J. Lu  <hongjiu.lu@intel.com>

	* ddg.c (check_sccs): Define only if ENABLE_CHECKING is
	defined.

2007-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR target/28307
	* gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
	(__gthrw_pragma): Provide default definition.
	(__gthrw2): Use it.
	* gthr-posix.c (__gthrw_pragma): Define.

2007-07-03  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
	before declaring inequality.

2007-07-03  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* combine.c (recog_for_combine): Log the success or failure of
	  matching new insn patterns against the machine description in
	  detailed dumps.

2007-07-03  Revital Eres  <eres@il.ibm.com>

	* ddg.c (print_sccs): New function.
	(check_sccs): New function.
	(create_ddg_all_sccs): Use it.
	* ddg.h (print_sccs): Declare.
	* modulo-sched.c (sms_order_nodes): Call print_sccs.

2007-07-03  Uros Bizjak  <ubizjak@gmail.com>

	* targhooks.h (default_mode_for_suffix): New function declaration.
	* targhooks.c (default_mode_for_suffix): New default target hook.
	* target.h (struct c): New structure in the targetm struct.
	(mode_for_suffix): New target hook as part of struct c.
	target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
	default_mode_for_suffix.
	(TARGET_C): New define.
	* c-lex.c: Include "target.h".
	(interpret_float): Use targetm.c.mode_for_suffix to determine
	the mode for a given non-standard suffix.
	Makefile.in (c-lex.o): Depend on $(TARGET_H).

	* config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
	(TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.

	* doc/extend.texi (Floating Types): New node.  Document __float80 and
	__float128 types.  Document 'w', 'W', 'q' and 'Q' suffixes.

2007-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/32506
	* config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
	predicate instead of target_operand.
	(divsi3_i1_media, divsi3_media_2): Likewise.

2007-07-02  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h (alias_sets_might_conflict_p): Rename into
	alias_sets_must_conflict_p.
	* alias.c (alias_sets_might_conflict_p): Likewise.
	(alias_sets_conflict_p): Use it.
	(objects_must_conflict_p): Likewise.
	* c-common.c (strict_aliasing_warning): Adjust.

2007-07-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* rtlhooks.c (gen_lowpart_if_possible): Check for
	invalid subreg before calling gen_lowpart_SUBREG.

2007-07-02  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin9.h: Add copyright notice.
	(LINK_COMMAND_SPEC): Add comment.
	(DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
	* config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
	DARWIN_LIBSYSTEM_HAS_UNWIND.

2007-07-02  Jakub Jelinek  <jakub@redhat.com>

	PR libgomp/32468
	* omp-low.c (check_combined_parallel): New function.
	(lower_omp_parallel): Call it via walk_stmts, set
	OMP_PARALLEL_COMBINED if appropriate.
	(determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
	isn't the only statement in WS_ENTRY_BB or OMP_RETURN
	the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
	don't consider it as combined parallel.

2007-07-02  Richard Sandiford  <richard@codesourcery.com>

	* configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
	(gcc_tooldir): Likewise.
	* configure: Regenerate.
	* Makefile.in (libsubdir_to_prefix): New variable, based on the
	old configure.ac gcc_tooldir setting.
	(prefix_to_exec_prefix): New variable.
	(DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
	rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.

2007-07-02  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/32583
	Fix PR tree-optimization/32584
	* tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
	(phi_translate_set): Use phi_translate directly now.
	(make_values_for_stmt): Don't value number RHS if we already know
	it is constant.

2007-07-02  Steve Ellcey  <sje@cup.hp.com>
	    Jim Wilson <wilson@specifix.com>

	PR target/31684
	* haifa-sched.c (add_to_speculative_block): Change copy_rtx to
	copy_insn.

2007-07-02  Sandra Loosemore  <sandra@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>

	* config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
	(mips16e_output_save_restore): Declare.
	(mips16e_save_restore_pattern_p): Likewise.
	* config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
	* config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
	for GENERATE_MIPS16E_SAVE_RESTORE.  Return 0x400 for TARGET_MIPS16
	&& !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
	(BITSET_P): New global macro, extracted from...
	(mips_for_each_saved_reg): ...here.
	(mips16e_save_restore_info): New struct.
	(mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
	(mips16e_save_restore_regs): New variable.
	(mips_split_plus, mips16e_find_first_register): New functions.
	(mips16e_mask_registers): New function.
	(compute_frame_size): Expand the commentary before the function.
	Enforce the MIPS16e save and restore register range restrictions.
	Pad the general register save area at the low end.
	(mips16e_save_restore_reg, mips16e_build_save_restore)
	(mips16e_save_restore_pattern_p, mips16e_add_register_range)
	(mips16e_output_save_restore, mips16e_collect_propagate_value)
	(mips16e_collect_argument_save, mips16e_collect_argument_saves):
	New functions.
	(mips_expand_prologue, mips_expand_epilogue): Handle
	GENERATE_MIPS16E_SAVE_RESTORE.
	* config/mips/mips.md (*mips16e_save_restore): New pattern.

2007-07-02  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/31966
	PR tree-optimization/32533
	* tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
	"basic_block" description as its third argument.  Update function
	calls to get destination bb from "edge" argument.  Save "cond" into
	aux field of the edge.  Update prototype for changed arguments.
	(if_convertible_loop_p): Clear aux field of incoming edges if bb
	contains phi node.
	(find_phi_replacement_condition): Operate on incoming edges, not
	on predecessor blocks.  If there is a condition saved in the
	incoming edge aux field, AND it with incoming bb predicate.
	Return source bb of the first edge.
	(clean_predicate_lists): Clean aux field of outgoing node edges.
	(tree_if_conversion): Do not initialize cond variable. Move
	variable declaration into the loop.
	(replace_phi_with_cond_gimple_modify_stmt): Remove unneded
	initializations of new_stmt, arg0 and arg1 variables.

2007-07-02  Jakub Jelinek  <jakub@redhat.com>

	* tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
	SSA_NAMEs, RESULT_DECLs and PARM_DECLs.

2007-07-02  Richard Guenther  <rguenther@suse.de>

	* tree-ssa.c (useless_type_conversion_p): Document
	future intent as defining the middle-end type system.
	Re-structure to call langhook last, group by type class,
	mark questionable parts.

2007-07-02  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (types_compatible_p): Declare.
	* tree-ssa.c (types_compatible_p): New function.
	* ipa-type-escape.c (discover_unique_type): Use
	types_compatible_p instead of lang_hooks.types_compatible_p.
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
	* tree-vn.c (expressions_equal_p): Likewise.
	* tree.c (fields_compatible_p): Likewise.
	* tree-ssa-dom.c (avail_expr_eq): Likewise.
	(cprop_operand): Use useless_type_conversion_p instead of
	lang_hooks.types_compatible_p.
	* tree-inline.c (setup_one_parameter): Likewise.
	(declare_return_variable): Likewise.
	* tree-nrv.c (tree_nrv): Likewise.
	* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
	(maybe_fold_offset_to_component_ref): Likewise.
	(maybe_fold_offset_to_reference): Likewise.
	* tree-ssa-copy.c (may_propagate_copy): Likewise.
	(merge_alias_info): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
	* tree-ssa-phiopt.c (conditional_replacement): Likewise.
	* tree-ssa-reassoc.c (optimize_ops_list): Likewise.
	* tree-tailcall.c (find_tail_calls): Likewise.
	* tree-vect-generic.c (expand_vector_operations_1): Likewise.
	* gimplify.c (canonicalize_addr_expr): Likewise.
	(fold_indirect_ref_rhs): Likewise.
	(gimplify_addr_expr): Likewise.  Swap parameters to cpt_same_type.
	(cpt_same_type): Likewise.
	(check_pointer_types_r): Swap parameters to cpt_same_type
	where appropriate.
	* fold-const.c (fold_convert): Revert fix for PR15988.
	* tree-inline.c (setup_one_parameter): Instead fix it here by
	using fold_build1 instead of fold_convert and checking for
	error_mark_node.  Convert only if the conversion is necessary.

2007-07-02  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac: Check for .gnu_attribute on Power.
	* configure: Regenerate.
	* config/rs6000/rs6000.c (rs6000_file_start): If supported, output
	attribute for floating-point ABI.

2007-07-02  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/32230
	PR tree-optimization/32477
	* tree-vect-analyze.c (vect_analyze_data_refs): Fail if base 
	address is a constant.

2007-07-02  Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
	(mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
	(mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
	stanzas.  Use the first part of the triplet to set MIPS_ISA_DEFAULT.
	Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
	64-bit targets.  Add support for *-elfoabi*.
	* config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
	different settings if $(tm_defines) does not select the EABI.
	(MULTILIB_EXCLUSIONS): Define in those circumstances.
	* config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
	(MIPS_ARCH_OPTION_SPEC): Likewise.
	(MIPS_ISA_LEVEL_SPEC): Likewise.
	(OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
	* config/mips/elfoabi.h: New file.

2007-07-02  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
	(useless_type_conversion_p): ... this.
	* tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
	(useless_type_conversion_p): ... this.
	* builtins.c (fold_builtin_memory_op): Rename
	tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
	* tree-cfg.c (verify_expr): Likewise.
	* tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
	* tree-ssa-ccp.c (ccp_fold): Likewise.
	* tree-ssa-copy.c (may_propagate_copy): Likewise.
	* tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
	* tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
	* tree-ssa-pre.c (eliminate): Likewise.
	* tree-ssa.c (delete_tree_ssa): Likewise.
	(tree_ssa_useless_type_conversion): Likewise.
	* tree.c (build2_stat): Likewise.

2007-07-01  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/32571
	* tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
	simplifying them.

2007-07-01  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
	and other expected operations explicitly, change default to
	gcc_unreachable. 

2007-07-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
	PARALLEL.
	* config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
	(tls_load_dot_plus_eight): Move the label number into the unspec.
	* config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.

2007-07-01  Andreas Schwab  <schwab@suse.de>

	* dwarf2out.c (initial_return_save): Define only if used.

2007-07-01  Kenneth Zadeck <zadeck@naturalbridge.com>

	Unreverting Richard's Revert of:

	2007-06-27  Richard Sandiford  <richard@codesourcery.com>

	* dce.c (deletable_insn_p_1): New function, split out from...
	(deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
	specially, not those inside PARALLELs.  Remove BODY argument
	and adjust recursive call accordingly.
	(prescan_insns_for_dce): Update call to delete_insn_p.

2007-07-01  Vladimir Yanovsky  <yanov@il.ibm.com>
	    Revital Eres  <eres@il.ibm.com>

	* ddg.c (create_ddg_all_sccs): Fix missed
	initialization of scc_nodes.

2007-07-01  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/32559
	* fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
	X + ~X to 1 only for INTEGRAL_TYPE_P type.

2007-06-30  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac: Check for .gnu_attribute on MIPS.
	* configure, config.in: Regenerate.
	* config/mips/mips.c (mips_file_start): If supported, output
	attribute for floating-point ABI.

2007-06-30  Uros Bizjak  <ubizjak@gmail.com>

	PR target/32433
	* config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
	(ffs_cmove): New expander to expand using ctz pattern.
	(*ffs_cmove): Remove pattern.
	(*ffs_no_cmove): Enable only for !TARGET_CMOVE.
	(ffsdi2): Expand using ctz pattern.
	(*ffs_rex64): Remove pattern.

2007-06-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR rtl-optimization/32296
	* pa.md (return): Delete pattern.
	(return_internal): Remove "(const_int 1)" from pattern.
	(epilogue): Use return_internal pattern for trivial returns.
	* pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
	* pa.c (hppa_can_use_return_insn_p): Delete function.  Include "df.h".

2007-06-30  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (is_exception_related): New function
	(can_value_number_operation): Use it.

2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
	
	Fix PR tree-optimization/32540
	Fix PR tree-optimization/31651

	* tree-ssa-sccvn.c: New file.

	* tree-ssa-sccvn.h: Ditto.
	
	* tree-vn.c: Include tree-ssa-sccvn.h
	(val_expr_paid_d): Removed.
	(value_table): Ditto.
	(vn_compute): Ditto.
	(val_expr_pair_hash): Ditto.
	(val_expr_pair_expr_eq): Ditto.
	(copy_vuses_from_stmt): Ditto.
	(vn_delete): Ditto.
	(vn_init): Ditto.
	(shared_vuses_from_stmt): Ditto.
	(print_creation_to_file): Moved up.
	(sort_vuses): Ditto.
	(sort_vuses_heap): Ditto.
	(set_value_handle): Make non-static.
	(make_value_handle): Ditto.
	(vn_add): Rewritten to use sccvn lookups.
	(vn_add_with_vuses): Ditto.
	(vn_lookup): Ditto (and second argument removed).
	(vn_lookup_with_vuses): Ditto.
	(vn_lookup_or_add): Ditto (and second argument removed);
	(vn_lookup_or_add_with_vuses): Ditto.
	(vn_lookup_with_stmt): New.
	(vn_lookup_or_add_with_stmt): Ditto.
	(create_value_handle_for_expr): Ditto.

	* tree-ssa-pre.c: Include tree-ssa-sccvn.h.
	(seen_during_translate): New function.
	(phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
	(phi_trans_add): Ditto.
	(constant_expr_p): FIELD_DECL is always constant.
	(phi_translate_1): Renamed from phi_translate, add seen bitmap.
	Use constant_expr_p.
	Avoid infinite recursion on mutually valued expressions.
	Change callers of vn_lookup_or_add.
	(phi_translate): New function.
	(compute_antic_safe): Allow phi nodes.
	(create_component_ref_by_pieces): Update for FIELD_DECL change.
	(find_or_generate_expression): Rewrite slightly.
	(create_expression_by_pieces): Updated for vn_lookup_or_add
	change.
	Update VN_INFO for new names.
	(insert_into_preds_of_block): Update for new names.
	(add_to_exp_gen): New function.
	(add_to_sets): Use vn_lookup_or_add_with_stmt.
	(find_existing_value_expr): Rewrite to changed vn_lookup.
	(create_value_expr_from): Ditto, and use add_to_exp_gen.
	(try_look_through_load): Removed.
	(try_combine_conversion): Ditto.
	(get_sccvn_value): New function.
	(make_values_for_phi): Ditto.
	(make_values_for_stmt): Ditto.
	(compute_avail): Rewritten for vn_lookup_or_add changes and to use
	SCCVN.
	(init_pre): Update for SCCVN changes.
	(fini_pre): Ditto.
	(execute_pre): Ditto.

	* tree-flow.h (make_value_handle): Declare.
	(set_value_handle): Ditto.
	(sort_vuses_heap): Ditto.
	(vn_lookup_or_add_with_stmt): Ditto.
	(vn_lookup_with_stmt): Ditto.
	(vn_compute): Remove.
	(vn_init): Ditto.
	(vn_delete): Ditto.
	(vn_lookup): Update arguments.

	* Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
	(tree-vn.o): Ditto.
	(tree-ssa-sccvn.o): New.
	(OBJS-common): Add tree-ssa-sccvn.o
	
2007-06-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/4076
	* c-typeck.c (build_external_ref): Don't mark as used if called
	from itself.
	* calls.c (rtx_for_function_call): Likewise.
	
2007-06-30  Richard Sandiford  <richard@codesourcery.com>

	Revert:

	2007-06-27  Richard Sandiford  <richard@codesourcery.com>

	* dce.c (deletable_insn_p_1): New function, split out from...
	(deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
	specially, not those inside PARALLELs.  Remove BODY argument
	and adjust recursive call accordingly.
	(prescan_insns_for_dce): Update call to delete_insn_p.

2007-06-30  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
	(try_combine): Move potential calls to undo_all() so they happen
	before we commit to using the combined insns.

2007-06-30  Jan Hubicka  <jh@suse.cz>

	* loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
	code.

2007-06-30  Thomas Neumann  <tneumann@users.sourceforge.net>

	* ipa.c (cgraph_postorder): Cast according to the coding conventions.
	(cgraph_remove_unreachable_nodes): Likewise.
	* ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
	* ipa-inline.c (update_caller_keys): Cast according to the coding
	conventions.
	(cgraph_decide_recursive_inlining): Likewise.
	(cgraph_decide_inlining_of_small_function): Likewise.
	(try_inline): Likewise.
	(cgraph_decide_inlining_incrementally): Likewise.
	* ipa-pure-const.c (get_function_state): Likewise.
	(scan_function): Likewise.
	(analyze_function): Likewise.
 	(static_execute): Likewise.
	* ipa-reference.c (scan_for_static_refs): Likewise.
	(merge_callee_local_info): Likewise.
	(analyze_function): Use type safe memory macros.
	(static_execute): Likewise. Cast according to the coding conventions.
	* ipa-type-escape.c (scan_for_regs): Cast according to the coding
	conventions.
	* ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
	names.
	(ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
	* ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
	variable names.

2007-06-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/30024
	* emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
	for complex modes (both int and real).

2007-06-29  Jan Hubicka  <jh@suse.cz>

	* cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.

2007-06-29  Jan Hubicka  <jh@suse.cz>

	PR middle-end/32372
	* cse.c (cse_insn): Avoid invalid sharing in between register note and
	the insn pattern.

2007-06-29  Anatoly Sokolov <aesok@post.ru>

	PR target/32335
	* config/avr/avr.c: Include dataflow header file.
	(expand_prologue): Adjust for prologue insn change.
	* config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
	inside a insn.

2007-06-29  Richard Guenther  <rguenther@suse.de>

	PR middle-end/32493
	* gimplify.c (gimplify_call_expr): Ignore variable argument parts
	during type verification.

2007-06-29  Jan Hubicka  <jh@suse.cz>

	* recog.c (validate_change_rtx_1): Unshare TO argument.

2007-06-29  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/24659
	* tree-vect-transform.c (vectorizable_call): Handle
	(nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.

	* config/i386/sse.md (vec_pack_sfix_v2df): New expander.
	* config/i386/i386.c (enum ix86_builtins)
	[IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
	(struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
	description.
	(ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
	const using def_builtin_const.
	(ix86_expand_binop_builtin): Remove bogus assert() that insn wants
	input operands in the same modes as the result.
	(ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.

2007-06-29  Richard Sandiford  <rsandifo@nildram.co.uk>

	* df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
	(df_set_dead_notes_for_mw): Likewise.

2007-06-29  Eric Botcazou  <ebotcazou@adacore.com>

	* c-common.c (pointer_int_sum): Do the negation in sizetype.

2007-06-28  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.

2007-06-28  Geoffrey Keating  <geoffk@apple.com>

	* doc/invoke.texi (C++ Dialect Options): Document
	fvisibility-ms-compat.
	* c.opt (fvisibility-ms-compat): New.

2007-06-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR tree-opt/32417
	* tree-affine.c (aff_combination_add_elt): Handle
	pointer addition specially.

2007-06-28  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
	decl is non-external for AIX ABI.

2007-06-28  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/predicates.md (current_file_function_operand):
	Ensure the symbol is non-external for AIX ABI.

2007-06-28  Nick Clifton  <nickc@redhat.com>

	* common.opt (fipa-matrix-reorg): Add Optimization attribute.
	(fdce, fdse, fpredictive-commoning): Likewise.

2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>

	PR other/31400
	* gcc.c (process_command): Recognize the new -static-libgfortran
	option.

2007-06-27  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/32418
	* config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
	Use a call clobbered hard reg instead of a pseudo reg.

2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.md (load_gbr): Use correct operand constraint.

2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/32479
	* config/sh/sh.md (udivsi3): Don't wrap the sequence with
	REG_LIBCALL and REG_RETVAL notes.
	(divsi3, mulsi3): Likewise.
	(mulhisi3): Likewise.  Use emit_libcall_block.
	(umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.

2007-06-27  Seongbae Park  <seongbae.park@gmail.com>

	PR rtl-optimization/32481
	* combine.c (adjust_for_new_dest): Rescan the changed insn.

2007-06-27  Richard Sandiford  <richard@codesourcery.com>

	* dce.c (deletable_insn_p_1): New function, split out from...
	(deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
	specially, not those inside PARALLELs.  Remove BODY argument
	and adjust recursive call accordingly.
	(prescan_insns_for_dce): Update call to delete_insn_p.

2007-06-27  Richard Guenther  <rguenther@suse.de>

	PR middle-end/32492
	* tree.h (fold_convertible_p): Declare.
	* fold-const.c (fold_convertible_p): New function.
	* gimplify.c (gimplify_call_expr): Use fold_convertible_p
	instead of lang_hooks.types_compatible_p.

2007-06-26  Jan Hubicka  <jh@suse.cz>

	* fwprop.c (try_fwprop_subst): Use validate_unshare_change.
	* postreload.c (reload_cse_simplify_set): Instead of copying the rtx
	early use validate_unshare_change.
	(reload_combine): Likewise.
	* recog.c (change_t): New field unshare.
	(validate_change_1): Rename from validate_change; add argument unshare.
	(validate_change): Turn into wrapper of validate_change_1; update
	prototype for bools.
	(validate_unshare_change): New.
	(confirm_change_group): Unshare changes if asked for; avoid unnecesary
	calls of df_insn_rescan.
	* recog.h (validate_change): Replace ints by bools.
	(validate_unshare_change): Declare.

2007-06-26  Kenneth Zadeck <zadeck@naturalbridge.com>

	* tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
	
2007-06-26  Steve Ellcey  <sje@cup.hp.com>

	* builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.

2007-06-25  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (cgraph_mark_inline): Assert that we never inline
	uninlinable call.
	(cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
	cgraph_decide_inlining_incrementally): Move uninlinability checks to
	places other call site specific checks are performed.

2007-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR tree-opt/32421
	* tree-vect-transform.c (vectorizable_operation): Convert
	POINTER_PLUS_EXPR over to PLUS_EXPR.

2007-06-25  Chao-ying Fu  <fu@mips.com>

	* doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
	UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
	Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
	Document GET_MODE_IBIT, and GET_MODE_FBIT.

	* machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
	MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
	(SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
	SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
	SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
	ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
	ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
	SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
	ALL_FIXED_POINT_MODE_P): New define.
	(CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
	MODE_UACCUM.
	(GET_MODE_IBIT, GET_MODE_FBIT): New define.

	* mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
	MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
	MODE_VECTOR_UACCUM): New mode classes.

	* machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
	UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
	Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
	USA, UDA, and UTA.

	* genmodes.c (struct mode_data): Add ibit and fbit fields.
	(blank_mode): Initialize ibit and fbit.
	(adj_ibit, adj_fbit): New to adjust ibit and fbit.
	(vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
	MODE_UACCUM.
	(new_adjust): Change required_class to required_class_from and
	required_class_to for testing within a range.
	(complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
	MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
	MODE_VECTOR_UACCUM.
	(FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
	(make_fixed_point_mode): New.
	(_ADD_ADJUST): Change C to C1 and C2.
	(ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
	use a range for machine classes.
	(ADJUST_IBIT, ADJUST_FBIT): New.
	(emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
	CONST_MODE_FBIT.
	(emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
	MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
	Emit adjustment for ibit and fbit.
	(emit_mode_ibit, emit_mode_fbit): New.
	(emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.

2007-06-25  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
	as the source of the set.

2007-06-25  Roman Zippel <zippel@linux-m68k.org>

	* config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
	FP_REGNO_P): Use IN_RANGE.
	(REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
	(REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
	(DATA_REG_P): Use DATA_REGNO_P.
	(FP_REG_P): Use FP_REGNO_P.
	(ADDRESS_REG_P): Use ADDRESS_REGNO_P.
	* config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
	REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.

2007-06-24  Jan Hubicka  <jh@suse.cz>

	PR middle-end/30563
	* cgraphunit.c (cgraph_analyze_function): Fix ordering problem.

2007-06-24  Sebastian Pop  <sebpop@gmail.com>

	PR middle-end/32461
	* fold-const.c (fold_binary): Strip nops of operand 0
	of BIT_NOT_EXPR before calling operand_equal_p.
	* testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
	* testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.

2007-06-23  Mark Mitchell  <mark@codesourcery.com>

	* doc/extend.texi: Document that dllimport and dllexport imply
	default visibility.
	* tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
	imported or exported declaration, including type declarations.
	* c-common.c (handle_visibility_attribute): Check for conflicts
	with dllimport/dllexport.
	(c_determine_visibility): Handle dllimport/dllexport as an
	explicit visibility atttribute.

2007-06-23  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/16876
	PR middle-end/29478
	* tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
	for CALL_EXPRs.
	* tree-inline.c (initialize_inlined_parameters): Do not call
	lang_hooks.tree_inlining.convert_parm_for_inlining.
	* cgraphbuild.c (initialize_inline_failed): Set inline failed
	reason for mismatched types.
	* gimplify.c (gimplify_call_expr): Verify the call expression
	arguments match the called function type signature.  Otherwise
	mark the call expression to be not considered for inlining
	using CALL_CANNOT_INLINE_P flag.
	* ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
	edges call expression.
	(cgraph_decide_inlining_of_small_function): Likewise.
	(cgraph_decide_inlining): Likewise.
	* c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
	Remove define.
	* c-tree.h (c_convert_parm_for_inlining): Remove declaration.
	* c-typeck.c (c_convert_parm_for_inlining): Remove.
	* langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
	Remove declaration.
	(LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
	* langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
	Remove.
	* langhooks.h (struct lang_hooks_for_tree_inlining): Remove
	convert_parm_for_inlining member.

2007-06-23  Richard Earnshaw  <rearnsha@arm.com>

	PR target/31152
	* arm.md (negscc): Match the correct operand for optimized LT0 test.
	Remove optimization for GT.

2007-06-23  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR middle-end/32437
	* dce.c (deletable_insn_p): Add extra parameter and recurse if insn
	is a PARALLEL.
	(prescan_insns_for_dce): Add extra parameter.
	
2007-06-23  Jan Hubicka  <jh@suse.cz>

	PR middle-end/31541
	* gimplify.c (mark_addressable): New function.
	(gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.

2007-06-22  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/32374
	* expr.c (store_constructor): Do not clobber non-zeroed memory. 

2007-06-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/32413
	* config/i386/i386.c (ix86_register_move_cost): Rise the cost of
	moves between MMX/SSE registers to at least 8 units to prevent
	ICE caused by non-tieable SI/HI/QImodes in SSE registers. 

2007-06-22  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (override_options): Correct x86_sahf
	setting condition.

2007-06-21  David Daney  <ddaney@avtrex.com>

	PR target/32406
	* config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
	to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
	(exception_receiver): Renamed to ...
	(nonlocal_goto_receiver): ... this.

2007-06-22  Roman Zippel <zippel@linux-m68k.org>

	* df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
	(df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
	partial register accesses.

2007-06-21  Adam Nemet  <anemet@caviumnetworks.com>

	* fold-const.c (debug_fold_checksum): Move it under
	ENABLE_FOLD_CHECKING.

2007-06-21  Sebastian Pop  <sebpop@gmail.com>

	PR middle-end/20623
	* tree.h (debug_fold_checksum): Declared.
	* fold-const.c (build_fold_addr_expr_with_type_1): New.
	(build_fold_addr_expr_with_type, build_fold_addr_expr): Use 
	build_fold_addr_expr_with_type_1.
	(fold_addr_expr, debug_fold_checksum): New.
	(fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
	(fold_unary, fold_comparison, split_address_to_core_and_offset):
	Use fold_addr_expr.
	
2007-06-21  Sebastian Pop  <sebpop@gmail.com>

	PR tree-optimization/19590
	* tree-vrp.c (adjust_range_with_scev): Set the range when the result
	of scev is a constant.

2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-problems.c (df_note_bb_compute): Made computation of live
	info consistent with df_lr.

2007-06-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/32453
	* tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
	for pointer anti-range.

2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (processor_target_table): Increase maximum
	skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
	default 64bit.

	* config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
	byte alignment if > 8 byte alignment is preferred.
	* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.

2007-06-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/31866
	* tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
	if ASM_EXPR's input is not a SSA_NAME.

	PR middle-end/32362
	* omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
	but decl is a global var, instead return decl.
	* gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
	even for is_global_var decls, if they are private in some outer
	context.

2007-06-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/32451
	* tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.

2007-06-21  Christian Bruel  <christian.bruel@st.com>

	* config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
	* config/sh/sh.c (sh_loads_bankedreg_p): New function.
	(push_regs): Changed saving order or banked registers.
	(sh_expand_epilogue): Likewise.
	* config/sh/sh.h (BANKED_REGISTER_P): New macro.
	(FIRST_BANKED_REG): Likewise.
	(LAST_BANKED_REG): Likewise.
	* config/sh/sh.md (banked) New attribute.
	(in_delay_slot): Check banked attribute.
	
2007-06-20  Sebastian Pop  <sebpop@gmail.com>

	PR tree-optimization/32075
	* tree-data-ref.c (subscript_dependence_tester_1, 
	analyze_miv_subscript, analyze_overlapping_iterations,
	add_distance_for_zero_overlaps, build_classic_dist_vector,
	subscript_dependence_tester_1, analyze_overlapping_iterations,
	subscript_dependence_tester, access_functions_are_affine_or_constant_p,
	compute_affine_dependence, compute_all_dependences): Pass loop_nest 
	to evolution_function_is_affine_multivariate_p.

2007-06-20  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.

2007-06-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/32335
	* config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
	for TARGET_A16.
	* config/m32c/prologue.md (epilogue_exitd_16): New.
	(epilogue_reit_16): New.
	(epilogue_exitd): Rename to epilogue_exitd_24.
	(epilogue_reit): Rename to epilogue_reit_24.

2007-06-20  Seongbae Park  <seongbae.park@gmail.com>
	    Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	* dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
	New counters.
	* haifa-sched.c (queue_to_ready): Don't requeue next insn
	if dbg_cnt (sched_insn) reaches the limit.
	(choose_ready): New parameter INSN_PTR and new return value.
	(schedule_block): Handle dbg_cnt (sched_insn). Handle
	the new return value from choose_ready.
	* global.c (global_aloc): New dbgcnt global_alloc_at_reg.
	(rest_of_handle_global_alloc): New global_alloc_at_func.

2007-06-20  Adam Nemet  <anemet@caviumnetworks.com>

	PR tree-optimization/25737
	* tree.h (struct tree_struct_field_tag): Add new field alias_set.
	(SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
	* tree-flow.h (struct fieldoff): Add new field alias_set.
	* tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
	argument addressable_type.  Set alias_set of fieldoff.
	* tree-ssa-alias.c (create_sft): Add new argument alias_set.
	(create_overlap_variables_for): Pass alias_set from fieldoff to
	create_sft.
	* alias.c (get_alias_set): Use alias_set from SFT if set.

2007-06-20  Hui-May Chang  <hm.chang@apple.com>

	* config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
	of a variable as an unsigned HOST_WIDE_INT integer.

2007-06-20  Zdenek Dvorak  <dvorakz@suse.cz>

	PR rtl-optimization/32405
	* loop-iv.c (iv_get_reaching_def): Fail for partial defs.

2007-06-20  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).

	PR middle-end/31959
	* builtins.c: Include diagnostic.h.
	(expand_builtin_expect): Make gcc_assert more permissive.
	* Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).

	PR inline-asm/32109
	* gimplify.c (gimplify_asm_expr): Issue error if type is addressable
	and !allows_mem.

	PR middle-end/32285
	* calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
	if ACCUMULATE_OUTGOING_ARGS.

2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* config/m68hc11/m68hc11.c: Include dataflow header file.
	(m68hc11_reorg): Port to dataflow.

2007-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
	(struct df_problem.free_blocks_on_set_blocks): New field.
	(struct dataflow.optional_p): New field.
	(df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
	(df_live_set_all_dirty): New function.
	* df-scan.c (df_scan_alloc): Initialize optional_p.
	(problem_SCAN): Initialize free_blocks_on_set_blocks.
	* df-core.c (df_set_blocks): Removed use of
	DF_FIRST_OPTIONAL_PROBLEM.  Now uses
	df_problem.free_blocks_on_set_blocks to determine which blocks are
	recycled.
	(df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
	(df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM.  Now
	uses dataflow.optional_p to determine if problem should be
	deleted.
	(rest_of_handle_df_initialize): Only start live problem if 
	-02 or above.
	(df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
	* df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
	df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
	(problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
	problem_NOTE): Initialize free_blocks_on_set_blocks.
	(df_lr_bb_local_compute): Recompute luids if df_live problem is
	not active.
	(df_live_set_all_dirty, df_note_alloc): New function.
	* regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
	df_get_live_*.
	* sched_ebb.c (compute_jump_reg_dependencies): Ditto.
	* postreload.c (reload_combine): Ditto.
	* cse.c (cse_extended_basic_block): Ditto.
	* regmove.c (mark_flags_life_zones): Ditto.
	* rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
	erase_matching_seqs): Ditto.
	* bt-load.c (compute_defs_uses_and_gen): Ditto.
	* integrate (allocate_initial_values): Ditto.
	* combine.c (reg_dead_at_p): Ditto.
	* resource.c (mark_target_live_regs): Ditto.
	* sched-rgn.c (check_live_1, update_live_1): Ditto.
	* config/sh/sh.c (find_r0_life_regions): Ditto.
	* global.c (rest_of_handle_global_alloc): Only add back df_live
	for -O > 1.
	* local-alloc.c (rest_of_handle_local_alloc): Only remove
	df_live for -O > 1.
	* ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
	df_get_live_*.
	(if_convert): Make sure df_live is there at -O == 1.
	(pass_if_after_combine): Cleanup flags.
	* init-regs.c (initialize_uninitialized_regs): Make sure df_live
	is there at -O == 1.
	
2007-06-19  Seongbae Park  <seongbae.park@gmail.com>

	* config/arm/arm.c (arm_get_frame_offsets): Set
	offsets->locals_base to avoid negative stack size.
	(thumb1_expand_prologue): Assert on negative stack size.

2007-06-19  Sebastian Pop  <sebpop@gmail.com>

	PR tree-optimization/32367
	* tree-chrec.h (build_polynomial_chrec): Verify that the left hand side 
	of the chrec has no evolution in that loop.
	* testsuite/gcc.dg/tree-ssa/pr32367.c: New.

2007-06-19  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c: Include "df.h".
	(xtensa_builtin_saveregs): Use adjust_address instead of
	change_address.
	(xtensa_va_start): Invoke make_tree with sizetype for
	expand_builtin_saveregs and then convert the result to a pointer.
	Use POINTER_PLUS_EXPR.  Use size_int instead of build_int_cst.
	(xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
	Subtract argument size from index value as integers and then use
	POINTER_PLUS_EXPR to add the result to the array address.
	
2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/32335
	* config/m32c/m32c.c: Include dataflow header file.
	(m32c_emit_prologue): Adjust for prologue insn change.
	* config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
	once inside a PARALLEL. Assume frame size passed in operand 0
	includes space to save the fb register.
	(prologue_enter_24): Likewise.
	(epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.

2007-06-19  David Daney  <ddaney@avtrex.com

	PR target/32313
	* config/mips/mips.md (cprestore): Mark $gp as used.

2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/32369
	* config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
	(frv_ifcvt_modify_insn): Likewise.

2007-06-19  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (handle_ptr_arith): Make sure to
	only handle positive offsets that fit in a HOST_WIDE_INT.

2007-06-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
	result of rsqrt insn for zero input argument to avoid NaN.

2007-06-19  Richard Guenther  <rguenther@suse.de>

	PR middle-end/31950
	* tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.

2007-06-19  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/32353
	* tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.

2007-06-19  Nick Clifton  <nickc@redhat.com>

	* config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.

2007-06-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/32389
	* config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
	* config/i386/i386.c (assign_386_stack_local): Assert that
	SLOT_VIRTUAL is valid only before virtual regs are instantiated.
	(ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
	Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
	* config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.

2007-06-18  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.

2007-06-18  Seongbae Park  <seongbae.park@gmail.com>

	PR rtl-optimization/32321
	* gcse.c (replace_store_insn): Update the note before
	calling emit_insn_after.

2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR middle-end/32355
	* gcse (rest_of_handle_gcse): Add call to df_finish_pass after
	cse_main.
	* df-problems.c (df_note_bb_compute): Fix dumping info.
	
2007-06-18  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
	insn with emit_jump_insn.

2007-06-18  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/32383
	* targhooks.c (default_builtin_reciprocal): Add new bool argument.
	* targhooks.h (default_builtin_reciprocal): Update prototype.
	* target.h (struct gcc_target): Update builtin_reciprocal.
	* doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
	* tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
	where arg1 is not SSA_NAME.  Pass true to targetm.builtin_reciprocal
	when fndecl is in BUILT_IN_MD class.
	(execute_convert_to_rsqrt): Ditto.

	* config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
	argument.  Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
	Convert BUILT_IN_SQRTF code only  when md_fn is false.

2007-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>

	* bt-load.c (move_btr_def): Fix the order of arguments
	to validate_replace_rtx.

2007-06-18  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/m68k-devices.def: Add 54450..54455.

2007-06-17  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/32366
	* simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
	FLOAT_EXTEND]: Prevent non-scalar modes from entering
	significand_size.

2007-06-17  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR middle-end/32349
	* modulo-sched (generate_reg_moves): Added rescan parameter and if
	this is true, rescan insn being modified.
	(sms_schedule): Added rescan parameter.
	(rest_of_handle_sms): Moved freeing of dominance info to before
	getting out of cfg_layout.
	
2007-06-17  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
	* config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
	appropriate.

	* config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
	FL_CF_EMAC from the entry for isac.

	* config/m68k/predicates.md (const_call_operand): Adjust comment.
	(const_sibcall_operand): New.
	(sibcall_operand): Use it.
	* config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
	(m68k_isas): ISAC does not imply FPU or EMAC.
	(override_options): Add ISA_C logic for symbolic jump & call.

2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
	return mode from the builtin itself.
	(sparc_fold_builtin): Fix cast of zero constant.

2007-06-16  Uros Bizjak  <ubizjak@gmail.com>

	* targhooks.c (default_builtin_reciprocal): New default target hook.
	* targhooks.h (default_builtin_reciprocal): Add prototype.
	* hooks.c (hook_tree_tree_bool_null): Remove hook.
	* hooks.h (hook_tree_tree_bool_null): Remove prototype.
	* target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
	default_builtin_reciprocal.

2007-06-16  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/31723
	* hooks.c (hook_tree_tree_bool_null): New hook.
	* hooks.h (hook_tree_tree_bool_null): Add prototype.
	* tree-pass.h (pass_convert_to_rsqrt): Declare.
	* passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
	* tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
	and convert it to reciprocal a*rfunc(b).
	(execute_convert_to_rsqrt): New function.
	(gate_convert_to_rsqrt): New function.
	(pass_convert_to_rsqrt): New pass definition.
	* target.h (struct gcc_target): Add builtin_reciprocal.
	* target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
	(TARGET_INITIALIZER): Initialize builtin_reciprocal with
	TARGET_BUILTIN_RECIPROCAL.
	* doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.

	* config/i386/i386.h (TARGET_RECIP): New define.
	* config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
	for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
	flag_unsafe_math_optimizations are set, flag_trapping_math is unset
	and not optimizing for size.
	(*rcpsf2_sse): New insn pattern.
	(*rsqrtsf2_sse): Ditto.
	(rsqrtsf2): New expander.  Expand by calling ix86_emit_swsqrtsf
	for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
	flag_unsafe_math_optimizations are set, flag_trapping_math is unset
	and not optimizing for size.
	(sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
	for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
	flag_unsafe_math_optimizations are set, flag_trapping_math is unset
	and not optimizing for size.
	* config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
	for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
	flag_unsafe_math_optimizations are set, flag_trapping_math is unset
	and not optimizing for size.
	(*sse_rsqrtv4sf2): Do not export.
	(sqrtv4sf2): Ditto.
	(sse_rsqrtv4sf2): New expander.  Expand by calling ix86_emit_swsqrtsf
	for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
	flag_unsafe_math_optimizations are set, flag_trapping_math is unset
	and not optimizing for size.
	(sqrtv4sf2): Ditto.
	* config/i386/i386.opt (mrecip): New option.
	* config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
	(ix86_emit_swsqrtsf): Ditto.
	* config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
	(ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
	builtin definition.
	(ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
	ix86_expand_unop1_builtin.
	(ix86_emit_swdivsf): New function.
	(ix86_emit_swsqrtsf): Ditto.
	(ix86_builtin_reciprocal): New function.
	(TARGET_BUILTIN_RECIPROCAL): Use it.
	(ix86_vectorize_builtin_conversion): Rename from
	ix86_builtin_conversion.
	(TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
	* doc/invoke.texi (Machine Dependent Options): Add -mrecip to
	"i386 and x86_64 Options" section.
	(Intel 386 and AMD x86_64 Options): Document -mrecip.

2007-06-15  Andrew Pinski <andrew_pinski@playstation.sony.com>
	    Zdenek Dvorak <dvorakz@suse.cz>
	    Richard Guenther  <rguenther@suse.de>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	* tree-vrp.c (compare_values_warnv): Convert val2 to
	the type of val1.
	(extract_range_from_assert): Create
	POINTER_PLUS_EXPR for pointer types.
	(extract_range_from_binary_expr): Handle
	only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
	for pointer types.
	* doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
	* tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
	POINTER_PLUS_EXPR as PLUS_EXPR.
	(number_of_iterations_lt_to_ne):
	For pointer types, use sizetype when
	creating MINUS_EXPR/PLUS_EXPRs.
	(assert_loop_rolls_lt): For pointer types, use sizetype when
	creating MINUS_EXPR/PLUS_EXPRs.
	(number_of_iterations_le): Likewise.
	(expand_simple_operations): POINTER_PLUS_EXPR are simple also.
	(derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
	like PLUS_EXPR and MINUS_EXPR.
	* tree-pretty-print.c (dump_generic_node): Handle
	POINTER_PLUS_EXPR.
	(op_prio): Likewise.
	(op_symbol_1): Likewise.
	* optabs.c (optab_for_tree_code): Likewise.
	* tree-ssa-loop-manip.c (create_iv): Handle pointer base
	specially.
	* tree-tailcall.c (process_assignment): Mention
	POINTER_PLUS_EXPR in a TODO comment.
	* tree.c (build2_stat): Assert when trying to use PLUS_EXPR or 
	MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
	not used with a pointer and an integer type.
	* tree-scalar-evolution.c (add_to_evolution_1): Convert the
	increment using chrec_convert_rhs instead of chrec_convert.
	(follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
	PLUS_EXPR except for the right hand side's type will be
	sizetype.
	(interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
	(fold_used_pointer_cast): Kill.
	(pointer_offset_p): Kill.
	(fold_used_pointer): Kill.
	(pointer_used_p): Kill.
	(analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
	call fold_used_pointer.
	(instantiate_parameters_1): Convert the increment
	using chrec_convert_rhs instead of chrec_convert.
	Handle POINTER_PLUS_EXPR as PLUS_EXPR.
	* builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
	instead of PLUS_EXPR.
	(expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
	PLUS_EXPR for pointers.
	(std_gimplify_va_arg_expr): Likewise.
	(fold_builtin_memory_op): Likewise.
	(fold_builtin_strstr): Likewise.
	(fold_builtin_strchr): Likewise.
	(fold_builtin_strrchr): Likewise.
	(fold_builtin_strpbrk): Likewise.
	(expand_builtin_memory_chk): Likewise.
	(fold_builtin_memory_chk): Likewise.
	(std_expand_builtin_va_start): Use
	sizetype for the call to make_tree and then convert
	to the pointer type.
	(fold_builtin_memchr): Use POINTER_PLUS_EXPR
	instead of PLUS_EXPR for adding to a pointer.
	(std_gimplify_va_arg_expr): Use fold_build2 for
	the creating of POINTER_PLUS_EXPR.  For the BIT_AND_EXPR, cast
	the operands to sizetype first and then cast the BIT_AND_EXPR
	back to the pointer type.
	* fold-const.c (build_range_check): Handle pointer types
	specially.
	(extract_array_ref): Look for POINTER_PLUS_EXPR instead
	of PLUS_EXPR's. Make sure the offset is converted to
	sizetype.
	(try_move_mult_to_index): Strip the NOPs from the offset.
	Remove code argument and replace all uses with PLUS_EXPR.
	(fold_to_nonsharp_ineq_using_bound): Handle pointer types
	specially. Don't use a pointer type for MINUS_EXPR.
	(fold_unary): Handle for (T1)(X op Y),
	only p+ as that is the only as that can be handled for
	binary operators now.
	(fold_binary <case POINTER_PLUS_EXPR>): Add folding of
	POINTER_PLUS_EXPR.
	<case PLUS_EXPR>: Add folding of PTR+INT into
	PTR p+ INT.
	Don't call try_move_mult_to_index.
	<case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
	into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
	(PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
	Don't call try_move_mult_to_index.
	(tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
	(tree_expr_nonzero_p): Likewise.
	(fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
	of PLUS_EXPR for the complex expression folding.
	* tree-chrec.c (chrec_fold_plus_poly_poly): If the
	first chrec is a pointer type, then the second should
	be sizetype and not the first's type.
	For POINTER_PLUS_EXPR, use a different right hand side type.
	Handle POINTER_PLUS_EXPR like PLUS_EXPR.
	(chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
	different right hand side type.
	Handle POINTER_PLUS_EXPR like PLUS_EXPR.
	(chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
	instead of PLUS_EXPR.
	When either operand is zero, convert the other operand.
	(chrec_apply): Use chrec_convert_rhs
	on the argument x instead of chrec_convert.
	(reset_evolution_in_loop): For pointer types, the new_evol
	should be sizetype.
	(convert_affine_scev): For POINTER_PLUS_EXPR, use a
	different right hand side type.
	Handle POINTER_PLUS_EXPR like PLUS_EXPR.
	(chrec_convert_rhs): New function.
	(chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
	different right hand side type.
	Handle POINTER_PLUS_EXPR like PLUS_EXPR.
	* tree-chrec.h (chrec_convert_rhs): New prototype.
	(build_polynomial_chrec): For pointer types, the right hand
	* tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
	POINTER_PLUS_EXPR instead of PLUS_EXPR's.
	Remove subtraction case as it is always addition now.
	Make sure the offset is converted to sizetype.
	(fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
	Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
	* tree-ssa-loop-ivopts.c (determine_base_object): Abort for 
	PLUS_EXPR in pointer type.
	Handle POINTER_PLUS_EXPR.
	(tree_to_aff_combination): Likewise.
	(force_expr_to_var_cost): Likewise.
	(force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
	instead of PLUS_EXPR for pointers.
	* c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
	instead of PLUS_EXPR of pointer types.
	* tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
	as PLUS_EXPR.
	(check_va_list_escapes): Likewise.
	(check_all_va_list_escapes): Likewise.
	* dwarf2out.c (loc_descriptor_from_tree_1):
	Handle POINT_PLUS_EXPR as a PLUS_EXPR.
	* expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
	(string_constant): Likewise.
	* tree-ssa-address.c (tree_mem_ref_addr): When adding
	the offset to the base, use POINTER_PLUS_EXPR.
	(add_to_parts): Convert the index to sizetype.
	(create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
	* matrix-reorg.c (collect_data_for_malloc_call): Stmt
	will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
	Offset only holds something for PLUS_EXPR.
	(ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
	a PLUS_EXPR.
	(analyze_transpose): POINTER_PLUS_EXPR will only show up now
	and not PLUS_EXPR.
	(analyze_accesses_for_modify_stmt): Likewise.
	Remove comment about the type being integral type as it is
	wrong now.
	(can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
	PLUS_EXPR.
	(transform_access_sites): POINTER_PLUS_EXPR will only show up now
	and not PLUS_EXPR.
	Correct the type which the artimentic is done in (is now
	sizetype).
	Reindent one loop.
	* tree-data-ref.c (split_constant_offset): Handle
	POINTER_PLUS_EXPR
	* tree-affine.c (tree_to_aff_combination): Likewise.
	* c-typeck.c (build_unary_op): For pointers create the increment
	as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
	for pointers.
	* gimplify.c (gimplify_self_mod_expr): Create a
	POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
	(gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
	* tree.def (POINTER_PLUS_EXPR): New tree code.
	* tree-predcom.c (ref_at_iteration): If we have a pointer
	type do the multiplication in sizetype.
	* tree-mudflap.c (mf_xform_derefs_1): Create a
	POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
	* tree-ssa-forwprop.c 
	(forward_propagate_addr_into_variable_array_index):
	Don't expect there to be a cast for the index as that
	does not exist anymore.
	(forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
	instead of PLUS_EXPR.
	Don't check for the first operand of the POINTER_PLUS_EXPR
	was the index as it cannot be.
	Call forward_propagate_addr_into_variable_array_index with
	the SSA_NAME instead of the statement.
	* varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
	(compare_constant): Likewise.
	(copy_constant): Likewise.
	(compute_reloc_for_constant): Likewise.
	(output_addressed_constants): Likewise.
	(initializer_constant_valid_p): Likewise.
	* tree-ssa.c (tree_ssa_useless_type_conversion_1):
	Convert the MIN/MAX of the inner type to the outer
	type before comparing them.
	* tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle
	POINTER_PLUS_EXPR instead of PLUS_EXPR.
	(issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
	of PLUS_EXPR for pointers.
	* tree-inline.c (estimate_num_insns_1): Handle
	POINTER_PLUS_EXPR.
	* tree-vect-transform.c (vect_create_addr_base_for_vector_ref): 
	Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
	(bump_vector_ptr): Create a POINTER_PLUS_EXPR
	instead of PLUS_EXPR for the pointer increment statement.
	(vect_update_ivs_after_vectorizer): For pointer types, create
	POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
	MULT_EXPR in sizetype.
	(vect_gen_niters_for_prolog_loop): Add a cast when creating
	byte_misalign.
	* tree-object-size.c (plus_expr_object_size): Handle
	POINTER_PLUS_EXPR instead of PLUS_EXPR.  Removing all the extra
	code which is trying to figure out which side is a pointer and 
	is the index.
	(check_for_plus_in_loops_1): Likewise.
	(check_for_plus_in_loops): Likewise.
	* c-common.c (pointer_int_sum): Create a
	POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
	* tree-ssa-structalias.c (handle_ptr_arith): Handle
	only POINTER_PLUS_EXPR.  Removing all the extra
	code which is trying to figure out which side is a pointer and 
	is the index.
	* tree-cfg.c (verify_expr): Add extra checking for pointers and
	PLUS_EXPR and MINUS_EXPR.
	Also add checking to make sure the operands of POINTER_PLUS_EXPR
	are correct.
	* config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
	with make_tree, instead of a pointer type.
	* config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
	for pointers instead of PLUS_EXPR.
	(s390_gimplify_va_arg): Likewise.
	* config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
	instead of PLUS_EXPR when doing addition on pointer
	types.  Use sizetype for the second operand.
	(spu_gimplify_va_arg_expr): Likewise.
	* config/sparc/sparc.c (sparc_gimplify_va_arg): Use 
	POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
	a pointer.  Don't create a BIT_AND_EXPR for pointer types.
	* config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
	for the pointer addition and also use size_int/sizetype
	for the offset.
	(ix86_gimplify_va_arg): Likewise.
	Perform BIT_AND_EXPR on sizetype arguments.
	* config/sh/sh.c (sh_va_start): Call make_tree with sizetype
	and convert its result to a pointer type.  Use POINTER_PLUS_EXPR
	for the pointer additions and also use size_int for the offsets.
	(sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
	additions and also use size_int for the offsets.  Perform
	BIT_AND_EXPR on sizetype arguments.
	* config/ia64/ia64.c (ia64_gimplify_va_arg): Use
	POINTER_PLUS_EXPR for pointers and create the
	BIT_AND_EXPR in sizetype.
	* config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
	instead of PLUS_EXPR for pointer addition.
	(rs6000_va_start): Likewise.
	Also use sizetype for the offset.
	* config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
	as PLUS_EXPR/MINUS_EXPR.
	(hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
	PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
	Don't use BIT_AND_EXPR on a pointer type, convert the
	expression to sizetype first.
	* config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
	for pointers.
	(mips_gimplify_va_arg_expr): Likewise.
	Don't create BIT_AND_EXPR in a pointer type.

2007-06-15  Eric Christopher  <echristo@apple.com>

	* config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
	(x86_64-*-darwin*): Ditto.
	* config/i386/darwin.h (CRTEND_SPEC): New. Add support
	for above.

2007-06-15  Matthew Wilcox <matthew@wil.cx>

	* doc/extend.texi: Document behavior of __attribute__((aligned))
	on typedefs.

2007-06-15  Mark Mitchell  <mark@codesourcery.com>

	* rtlanal.c (note_stores): Improve documentation.

2007-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
	LOCAL_LABEL_PREFIX): Delete.
	* config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
	(bfin_internal_label): Delete.

2007-06-15  Uros Bizjak  <ubizjak@gmail.com>

	* libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
	define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
	otherwise define to LIBGCC2_TF_CEXT.
	* config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
	(LIBGCC_TF_CEXT): Ditto.
	(TF_SIZE): Ditto.

2007-06-14  Seongbae Park  <seongbae.park@gmail.com>

	PR rtl-optimization/32339
	* df-scan.c (df_uses_record): Don't modify flags but just add to
	it for df_ref_record.

2007-06-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* tree-mudflap.c: Fix whitespace issues.

2007-06-15  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.

2007-06-14  Eric Christopher  <echristo@apple.com>

	* config/i386/sse.md (movdi_to_sse): Rewrite body.
	(movv4sf): Use gcc_unreachable instead of abort.

2007-06-14  Uros Bizjak  <ubizjak@gmail.com>

	PR target/32268
	* config/i386/sfp-machine.h (CMPtype): New define.
	(mach stubs): Use CMPtype instead of int as a return type.

2007-06-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
	config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
	config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
	config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
	config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
	config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
	config/soft-fp/soft-fp.h: Update from glibc CVS.

2007-06-14  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/uclinux.h (MFWRAP_SPEC): New.

2007-06-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	PR target/32341
	* config/v850/v850.c: Include dataflow header file.
	(substitute_ep_register): Fix typo.

2007-06-14  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Fix earlier checkin.
	* configure: Regenerated.

2007-06-14  Paolo Bonzini  <bonzini@gnu.org>

	* acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
	* aclocal.m4: Regenerate.
	* configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
	ACX_PROG_CC_WARNINGS_ARE_ERRORS,
	ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
	* configure: Regenerate.
	* Makefile.in (LOOSE_WARN): Subst loose_warn.

	* Makefile.in (quickstrap): Build libgcc too.

2007-06-14  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Add --enable-checking=df.  Explicitly mention that
	the variables are initialized as for "release".
	* df-core.c: Use it.
	* configure: Regenerate.
	* config.in: Regenerate.

2007-06-14  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
	validate_replace_rtx instead of replace_rtx.
	(xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.

2007-06-14  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
	(DWARF2_UNWIND_INFO): Override default if configured with
	SJLJ EH disabled.
	* config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
	(ENDFILE_SPEC): Add crtend.o.
	* config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
	(ENDFILE_SPEC): Add crtend.o.
	(TARGET_USE_JCR_SECTION): Define.
	(MD_UNWIND_SUPPORT): Define for 32-bit target.

	* config/i386/cygming-crtbegin.c: New file.
	* config/i386/cygming-crtend.c: New file.

2007-06-14  Pascal Obry  <obry@adacore.com>

	* config/i386/w32-unwind.h: New file.

2007-06-13  Eric Christopher  <echristo@apple.com>

	* config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
	the user set a value below STACK_BOUNDARY.

2007-06-13  Thiemo Seufer  <ths@networkno.de>

	* config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
	imply -lpthread for -pthread.

2007-06-13  Kazu Hirata  <kazu@codesourcery.com>

	* basic-block.h: Remove the prototype for
	free_basic_block_vars.
	* cfglayout.h: Remove the prototype for
	insn_locators_initialize.
	* tree.h: Remove the prototype for emit_line_note.

	* tree-ssa-pre.c (mergephitemp): Remove.
	(init_pre): Don't use mergephitemp.

2007-06-13  Eric Christopher  <echristo@apple.com>

	* config/i386/i386.c (override_options): If we've specified
	an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.

2007-06-13  Bob Wilson  <bob.wilson@acm.org>

	* df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
	is defined.

2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
	* config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
	(eh_store_handler): New pattern.
	(eh_return): Emit it instead of a plain move.

2007-06-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_init_mmx_sse_builtins)
	[__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
	[__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
	def_builtin_const.

2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
	(find_next_insn_start, find_load): New functions.
	(bfin_reorg): Use them to deal with the fact that parallel insns are
	no longer represented as a SEQUENCE.

2007-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (sparc_override_options): Initialize
	fpu mask correctly.

2007-06-13  Dave Korn  <dave.korn@artimi.com>

	* config/i386/i386.c (ix86_eax_live_at_start_p): Use df_get_live_out.

2007-06-13  Kazu Hirata  <kazu@codesourcery.com>

	* auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
	config/sh/divcost-analysis, dbgcnt.def, df-core.c,
	df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
	tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
	tree-vect-transform.c: Fix comment typos.  Follow spelling
	conventions.

2007-06-12  Seongbae Park  <seongbae.park@gmail.com>

	* df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
	to the exit block use set.
	(df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". 
	* gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
	* config/sparc/sparc.c (sparc_check_64): Check df != NULL.

2007-06-12  Seongbae Park  <seongbae.park@gmail.com>

	* opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
	* dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
	to indicate an error.
	(dbg_cnt_process_single_pair, dbg_cnt_list_all_counters):
	New functions.
	(dbg_cnt_process_opt): Print an error on a bad argument.
	* dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
	* common.opt (-fdbg-cnt-list): New.
	* doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.

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

	* tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
	flag on ref-all pointers.

2007-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/31579
	* expr.c (expand_expr_addr_expr_1): Call expand_expr
	for the offset with the modifier as EXPAND_INITIALIZER
	if the modifier is EXPAND_INITIALIZER.
	(expand_expr_real_1 <case INTEGER_CST>): Don't force to
	a register if we had an overflow.

2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* real.c (real_isfinite): New.
	(real_sqrt): Use it.
	* real.h (real_isfinite): New.
	* builtins.c: Use it.

2007-06-12  Ian Lance Taylor  <iant@google.com>
	    Daniel Berlin  <dberlin@dberlin.org>

	PR libstdc++/29286
	* tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
	* tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
	(CHANGE_DYNAMIC_TYPE_LOCATION): Define.
	(DECL_NO_TBAA_P): Define.
	(struct tree_decl_common): Add no_tbaa_flag field.
	* tree-ssa-structalias.c (struct variable_info): Add
	no_tbaa_pruning field.
	(new_var_info): Initialize no_tbaa_pruning field.
	(unify_nodes): Copy no_tbaa_pruning field.
	(find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
	(dump_solution_for_var): Print no_tbaa_pruning flag.
	(set_uids_in_ptset): Add no_tbaa_pruning parameter.  Change all
	callers.
	(compute_tbaa_pruning): New static function.
	(compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
	Call compute_tbaa_pruning.
	* tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
	* gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
	* gimple-low.c (lower_stmt): Likewise.
	* tree-gimple.c (is_gimple_stmt): Likewise.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
	* tree-inline.c (estimate_num_insns_1): Likewise.
	(copy_result_decl_to_var): Likewise.
	* expr.c (expand_expr_real_1): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
	* omp-low.c (omp_copy_decl_2): Likewise.
	* print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
	* doc/c-tree.texi (Expression trees): Document
	CHANGE_DYNAMIC_TYPE_EXPR.

2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
	with !HONOR_NANS and !HONOR_INFINITIES.
	* simplify-rtx.c (simplify_binary_operation_1): Likewise.

2007-06-12  Tristan Gingold  <gingold@adacore.com>

	* gcov.c: Comments updated.
	(source_info): Add file_time field.
	(source_index): New variable.
	(mutiple_files): New variable.
	(generate_results): New function extracted from process_file.
	(process_file): Save and restore chain of functions, generate
	results and free structures only if not merging results.
	(release_structures): File names are now freed in create_file_names
	(create_file_names): Free previous file names.
	(find_source): File date is now read here and modifications in
	source files is checked here.
	(read_graph_file): Only reverse order of functions for the current
	object file.
	(make_gcov_file_name): Do not generate long names if input_name is
	NULL.
	(output_lines): If merging results do not display graph, data and
	runs informations.
	Checking source file modification is done in find_source.

	* doc/gcov.texi: Append an s to sourcefile.

2007-06-12  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.md (UNSPEC_NOP): New constant.
	(forced_nop): New pattern.
	* config/bfin/bfin.c: Include "df.h".
	(add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
	(bfin_discover_loop): Use df_get_live_in instead of
	global_live_at_start.
	(bfin_reorder_loops): Pass 0 to cfg_layout_initialize.  Call
	df_analyze when done.
	(gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
	the insns.  Use QImode for the final insn in a bundle.  Call
	df_insn_rescan on generated NOPs; use gen_forced_nop instead of
	gen_nop.
	(reorder_var_tracking_notes): New function.
	(bfin_reorg): Pass no argument to split_all_insns.  Don't call
	update_life_info.  Call df_analyze after scheduling and bundle
	generation.  Call reorder_var_tracking_notes if generating these
	notes.  Call df_finish_pass at the end.

2007-06-12  Dirk Mueller  <dmueller@suse.de>

	* optabs.c (debug_optab_libfuncs): fix gcc_assert to
	a comparison, not an assignment.

2007-06-12  Olivier Hainque  <hainque@adacore.com>

	* tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
	Request walking the subtrees only, leaving the current is_lhs/val_only
	untouched.
	(convert_non_local_reference): Likewise.

2007-06-12  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/m68k-devices.def (52221, 52223, 5253): New.

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

	PR tree-optimization/15353
	PR tree-optimization/31657
	* passes.c (init_optimization_passes): Add pass_tree_ifcombine.
	* timevar.def: Add TV_TREE_IFCOMBINE.
	* tree-pass.h (pass_tree_ifcombine): Declare.
	* tree-ssa-ifcombine.c: New file.
	* tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
	* tree-flow.h (blocks_in_phiopt_order): Declare.
	* Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
	(tree-ssa-ifcombine.o): New dependencies.

2007-06-12  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/32293
	* combine.c (simplify_if_then_else): Truncate return from
	nonzero_bits() to correct mode.

2007-06-12  Uros Bizjak  <ubizjak@gmail.com>

	* fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
	into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.

2007-06-11  Diego Novillo  <dnovillo@google.com>

	* Makefile.in (reload1.o-warn): Remove.

2007-06-11  Seongbae Park <seongbae.park@gmail.com>

	* combine.c (subst): Use reg_overlap_mentioned_p
	instead of comparing register numbers directly.

2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>

	* reload1.c (mark_home_live_1): Use the mode parameter.

2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
	df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
	word "deferred".
	* df-core.c: Ditto.

2007-06-11  Daniel Berlin  <dberlin@dberlin.org>

	* Merge dataflow-branch into mainline (see ChangeLog.dataflow)

2007-06-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md ("*movtf_internal): Penalize moves to and
	from integer registers.
	(FP mode splitters): Handle TFmode.

2007-06-11  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-structalias.c (find_what_p_points_to): Return false
	for ref-all pointers that point-to anything.

2007-06-11  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.c (arm_output_dwarf_dtprel,
	TARGET_ASM_OUTPUT_DWARF_DTPREL): New.

2007-06-11  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
	movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
	to memory moves.

2007-06-11  Rafael Ávila de Espíndola  <espindola@google.com>

	* tree.c (signed_or_unsigned_type_for): New.
	(unsigned_type_for): Use signed_or_unsigned_type_for.
	(signed_type_for): Use signed_or_unsigned_type_for.
	* tree.h (signed_or_unsigned_type_for): New.
	(get_signed_or_unsigned_type): Remove.
	* fold-const.c (fold_negate_expr): Use signed_type_for instead of
	lang_hooks.types.signed_type
	(size_diffop): Likewise.
	(all_ones_mask_p): Likewise.
	(build_range_check): Likewise.
	(fold_cond_expr_with_comparison): Likewise.
	(fold_cond_expr_with_comparison): Likewise.
	(unextend): Likewise.
	(extract_muldiv_1): Likewise.
	(fold_single_bit_test_into_sign_test): Likewise.
	(fold_binary): Likewise.
	(fold_ternary): Likewise.
	(operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
	instead of get_signed_or_unsigned_type.
	* c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
	(LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
	* expr.c (signed_or_unsigned_type_for): Use
	signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
	* langhooks.c (get_signed_or_unsigned_type): Remove.
	(lhd_signed_or_unsigned_type): Remove.
	* langhooks.h (lang_hooks_for_types): Remove signed_type and
	signed_or_unsigned_type.
	(lhd_signed_or_unsigned_type): Remove.
	* expmed.c (make_tree): Use signed_type_for instead of
	lang_hooks.types.signed_type.
	* c-common.c (same_scalar_type_ignoring_signedness): Use
	c_common_signed_type instead of lang_hooks.types.signed_type.
	(c_common_unsigned_type): New.
	(c_common_signed_type): Just call c_common_signed_or_unsigned_type.
	(shorten_compare): Use c_common_unsigned_type instead of
	c_common_signed_or_unsigned_type.
	(c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
	unsigned_type_for.
	* convert.c (convert_to_integer): Use signed_type_for instead of
	lang_hooks.types.signed_type.
	* langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
	(LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
	* c-format.c (check_format_types): Use c_common_unsigned_type
	instead of unsigned_type_for.
	* c-decl.c (groakdeclarator): Likewise.
	* c-typeck.c (convert_for_assignment): Likewise.
	* c-common.h (c_common_unsigned_type): New.

2007-06-11  Uros Bizjak  <ubizjak@gmail.com>

	PR target/32280
	* config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
	* config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.

2007-06-11  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/32279
	* fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
	into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.

2007-06-10  Jan Sjodin  <jan.sjodin@amd.com>
	    Sebastian Pop  <sebpop@gmail.com>

	* lambda-code.c (remove_iv): New.
	(lambda_loopnest_to_gcc_loopnest): Use remove_iv.

2007-06-10  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
	* tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
	* tree-ssa-loop-prefetch.c: Include optabs.h.
	(FENCE_FOLLOWING_MOVNT): New macro.
	(struct mem_ref): Add independent_p and storent_p fields.
	(record_ref): Initalize the new fields.
	(gather_memory_references_ref): Return true if the reference
	could be analysed.
	(gather_memory_references): Check whether all memory accesses
	in loop were recorded.
	(should_issue_prefetch_p): Return false for nontemporal stores.
	(nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
	may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
	(determine_loop_nest_reuse): Detect independent memory references.
	(loop_prefetch_arrays): Call mark_nontemporal_stores.
	* tree-flow.h (mark_virtual_ops_for_renaming): Declare.
	* Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
	* config/i386/i386.h (x86_mfence): Declare.
	(FENCE_FOLLOWING_MOVNT): Return x86_mfence.
	* config/i386/i386.c (x86_mfence): New variable.
	(ix86_init_mmx_sse_builtins): Initialize x86_mfence.

	* tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
	* optabs.c (init_optabs): Initialize storent_optab.
	* optabs.h (enum optab_index): Add OTI_storent.
	(storent_optab): Declare.
	* genopinit.c (optabs): Add initialization for storent_optab.
	* tree.h (MOVE_NONTEMPORAL): New macro.
	* expr.c (expand_assignment, store_expr, store_constructor_field,
	store_constructor, store_field, expand_expr_real_1): Propagate
	nontemporality of the expanded store.
	(emit_storent_insn): New function.
	* expr.h (expand_assignment, store_expr): Declaration changed.
	* function.c (assign_parm_setup_reg): Pass false as nontemporality
	to expand_assignment.
	* stmt.c (expand_asm_expr): Ditto.
	* calls.c (initialize_argument_information): Pass false as
	nontemporality to store_expr.
	* config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
	storentsi): New.

2007-06-09  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
	parameter, use it.
	(find_what_p_points_to): Pass new parameter to set_uids_in_ptset.

2007-06-09  Daniel Berlin  <dberlin@dberlin.org>

	* tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
	and allow DECL_P here.

2007-06-09  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
	follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
	track of the size of the expression.
	* cfghooks.c (merge_blocks): Remove block from loops structure only
	after call of the merge_blocks hook.

2007-06-09  Tom Tromey  <tromey@redhat.com>

	* c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
	(deprecated_state): Removed.
	(start_decl): Update.
	(enum deprecated_states): Moved earlier.
	(groktypename): Update.
	(push_parm_decl): Likewise.
	(grokfield): Likewise.
	(start_function): Likewise.

2007-06-09  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/32169
	* tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
	CONVERT_EXPR, check whether min and max both converted to an
	overflow infinity representation.

2007-06-08  Eric Botcazou  <ebotcazou@adacore.com>

	* reload1.c (fixup_abnormal_edges): Clear bb field for insns
	not inserted on the edge.

2007-06-08  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
	instructions if they are supported.
	(__divsi3, __umodsi3, __modsi3): Likewise.
	(__ashldi3, __ashrdi3, __lshrdi3): New.
	* config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.

2007-06-08  Harsha Jagasia <harsha.jagasia@amd.com>
	    Tony Linthicum <tony.linthicum@amd.com>

	* doc/invoke.texi: Add fvect-cost-model flag.
	* common.opt (fvect-cost-model): New flag.
	* tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
	cost fields in stmt_vec_info struct for STMT.
	* tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
	fields in stmt_vec_info struct and access functions for the same.
	(TARG_COND_BRANCH_COST): Define cost of conditional branch.
	(TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
	load, store and vector to scalar operation.
	(TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
	(TARG_VEC_LOAD_COST): Define cost of aligned vector load.
	(TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
	(TARG_VEC_STORE_COST): Define cost of vector store.
	(vect_estimate_min_profitable_iters): Define new function.
	* tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
	check to evaluate if loop iterations are less than minimum profitable
	iterations determined by cost model or minimum vect loop bound defined
	by user, whichever is more conservative.
	* tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
	run-time check to evaluate if loop iterations are less than minimum
	profitable iterations determined by cost model or minimum vect loop
	bound defined by user, whichever is more conservative.
	(vect_estimate_min_profitable_iterations): New function to estimate
	mimimimum iterartions required for vector version of loop to be
	profitable over scalar version.
	(vect_model_reduction_cost): New function.
	(vect_model_induction_cost): New function.
	(vect_model_simple_cost): New function.
	(vect_cost_strided_group_size): New function.
	(vect_model_store_cost): New function.
	(vect_model_load_cost): New function.
	(vectorizable_reduction): Call vect_model_reduction_cost during
	analysis phase.
	(vectorizable_induction): Call vect_model_induction_cost during
	analysis phase.
	(vectorizable_load): Call vect_model_load_cost during analysis phase.
	(vectorizable_store): Call vect_model_store_cost during analysis phase.
	(vectorizable_call, vectorizable_assignment, vectorizable_operation,
	vectorizable_promotion, vectorizable_demotion): Call
	vect_model_simple_cost during analysis phase.

2007-06-08  Simon Baldwin  <simonb@google.com>

	* reg-stack.c (get_true_reg): Readability change.  Moved default case
	label into direct switch statement scope.

2007-06-08  Simon Baldwin  <simonb@google.com>

	* tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
	in gcc_assert() with '==' comparison.

2007-06-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
	TARGET_ABM handling of x86_popcnt variable.

2007-06-08  Uros Bizjak  <ubizjak@gmail.com>

	* doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
	__builtin_copysignq and __builtin_infq built-in functions.

2007-06-08  Uros Bizjak  <ubizjak@gmail.com>

	* doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
	SSE4.2 section.  Correct built-in function names in SSE4A section.

2007-06-08  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/32243
	* tree-vect-transform.c (vectorizable_type_promotion): Move check
	for ncopies after ratio check between nunits_out and nunits_in.
	(vectorizable_type_demotion): Remove single-use variable "scalar_type".

2007-06-08  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/32224
	* tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
	vectorization upon a non GIMPLE_MODIFY_STMT.

2007-06-08  Christian Bruel  <christian.bruel@st.com>

	PR target/29953
	* config/sh/sh.md (doloop_end): New pattern and splitter.
	* loop-iv.c (simple_rhs_p): Check for hardware registers.

2007-06-08  Zdenek Dvorak  <dvorakz@suse.cz>

	PR middle-end/32209
	* dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
	functions.
	(verify_dominators): Do not change dominance tree.

2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/constraints.md: New file.
	* config/sh/sh.c: Include tm-constrs.h.
	(reg_class_from_letter): Remove.
	(prepare_cbranch_operands): Use satisfies_constraint_*
	function instead of macro.
	(andcosts, broken_move, sh_secondary_reload): Likewise.
	* config/sh/predicates.md (trapping_target_operand): Likewise.
	(and_operand, arith_operand, arith_reg_or_0_operand,
	cmp_operand, logical_operand, target_operand,
	ua_address_operand, ua_offset, xor_operand): Likewise.
	* config/sh/sh.md: Include constraints.md.
	(*movsicc_t_false): Use satisfies_constraint_* function
	instead of macro.
	(*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
	lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
	movdi_const_16bit+1, beq, bne, *ptb): Likewise.
	* config/sh/sh.h (reg_class_from_letter): Remove prototype.
	(OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
	(REG_CLASS_FROM_CONSTRAINT): Remove.
	(CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
	CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
	CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
	CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
	CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
	(SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
	function instead of macro.
	(SECONDARY_INPUT_RELOAD_CLASS): Likewise.
	(EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
	EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
	EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
	(IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
	(IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
	(IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
	(IS_NON_EXPLICIT_CONSTANT_P): Likewise.
	(EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
	EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
	EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
	EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
	EXTRA_CONSTRAINT_STR): Likewise.
	(GO_IF_LEGITIMATE_INDEX): Fix indentation.

2007-06-07  Geoffrey Keating  <geoffk@apple.com>

	* config/i386/darwin.h (STACK_BOUNDARY): Define.

2007-06-07  Simon Martin  <simartin@users.sourceforge.net>

	PR c++/30759
	* c-common.h (flag_cpp0x): Replaced by...
	(cxx_dialect): ... this new variable specifying the C++ dialect that
	is used.
	* c-common.c (flag_cpp0x): Removed.
	(cxx_dialect): Defined.
	* c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
	cxx_dialect.
	* c-opts.c (c_common_post_options): Likewise.
	(set_std_cxx98): Set cxx_dialect to cxx98.
	(set_std_cxx0x): Set cxx_dialect to cxx0x.

2007-06-07  Geoffrey Keating  <geoffk@apple.com>
	    Hui-May Chang <hm.chang@apple.com>

	* doc/invoke.texi (Darwin Options): Update documentation for
	-mmacosx-version-min.
	* config.gcc (*-*-darwin*): Set extra_gcc_objs.
	* config/darwin-driver.c: New file.
	* config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
	* config/t-darwin (darwin-driver.o): New rule.

	* config/darwin-c.c (version_as_macro): Ignore low digit.

2007-06-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (standard sse constant splitter): Handle TFmode.
	(negtf2, abstf2, *absnegtf2_sse): New insn patterns.
	(CSGNMODE): New mode macro.
	(CSGNVMODE): New mode attribute.
	(copysign<mode>3): Rename from copysingsf3 and copysigndf3.  Macroize
	expander using CSGNMODE mode macro.  Handle TFmode.
	(copysign<mode>3_const): Rename from copysignsf3_const and
	copysigndf3_const.  Macroize pattern using CSGNMODE mode macro.
	Handle TFmode.
	(copysign<mode>3_var): Rename from copysignsf3_var and
	copysigndf3_var.  Macroize pattern using CSGNMODE mode macro.
	Handle TFmode.
	(copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
	mode macro.  Handle TFmode.
	* config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
	(iortf3, *iortf3): Ditto.
	(xortf3, *xortf3): Ditto.
	* config/i386/i386.c (ix86_build_signbit_mask): Create scalar
	TFmode and TImode masks.
	(ix86_expand_copysign): Expand TFmode copysign insn.
	(IX86_BUILTIN_INFQ): New.
	(IX86_BUILTIN_FABSQ): Ditto.
	(IX86_BUILTIN_COPYSIGNQ): Ditto.
	(ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
	[__builtin_fabsq]: Ditto.
	[__builtin_copysignq]: Ditto.
	(ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
	[IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
	[IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
	ix86_expand_binop_builtin().

2007-06-07  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/lib1funcs.asm: Clean up whitespace.

2007-06-07  Steve Ellcey  <sje@cup.hp.com>

	PR target/31850
	* rtl.h (push_to_sequence2): New.
	* emit-rtl.c (push_to_sequence2): New.
	* function.c (assign_parm_data_all): Add new fields.
	(assign_parm_setup_block): Call push_to_sequence2 instead of
	push_to_sequence.
	(assign_parm_setup_reg): Ditto.
	(assign_parm_setup_stack): Ditto.
	(assign_parms_unsplit_complex): Ditto.
	(assign_parms): Change field name.

2007-06-07  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/32220
	* tree-predcom.c (eliminate_temp_copies): Handle the case that loop
	phi node is reached before defining statement.

2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR tree-opt/32231
	* tree-vect-transform.c (vectorizable_call): Call update_stmt
	after changing the right hand side of the assignment.

2007-06-06  Eric Christopher  <echristo@apple.com>

	* config.gcc (i?86-*-darwin*): Remove arch parameter.
	(x86_64-*-darwin*): Ditto.
	* config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
	(TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.

2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>

	* tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
	coding conventions.
	(add_key): Likewise.
	* tree-ssa.c (init_tree_ssa): Use type safe memory macros.
	* tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
	variable names.
	* tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory
	macros.
	(add_cost_one_coalesce): Likewise.
	* tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
	variable names. Rename orig to orig_name for consistency.
	* tree-ssa-dom.c (dom_thread_across_edge): Cast according to the
	coding conventions.
	(cprop_into_successor_phis): Avoid using C++ keywords as variable
	names.
	(record_equivalences_from_stmt): Likewise.
	* tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
	the coding conventions.
	(memory_ssa_name_same): Likewise.
	(dse_optimize_stmt): Likewise.
	(dse_record_phis): Likewise.
	(dse_finalize_block): Likewise.
	* tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
	keywords as variable names.
	(may_move_till): Cast according to the coding conventions.
	(force_move_till_expr): Avoid using C++ keywords as variable names.
	(force_move_till): Cast according to the coding conventions.
	(memref_hash): Likewise.
	(memref_eq): Likewise.
	(gather_mem_refs_stmt): Likewise.
	* tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid
	using C++ keywords as variable names.
	(idx_find_step): Cast according to the coding conventions.
	(idx_record_use): Likewise.
	(find_depends): Likewise.
	(prepare_decl_rtl): Likewise.
	(mbc_entry_hash): Likewise.
	(mbc_entry_eq): Likewise.
	* tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
	(simplify_replace_tree): Avoid using C++ keywords as variable names.
	(idx_infer_loop_bounds): Cast according to the coding conventions.
	* tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
	* tree-ssa-math-opts.c (occ_new ): Likwise.
	* tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
	macros.
	* tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as
	variable names.
	(add_use_op): Likewise.
	(add_vop): Likewise.
	(add_vuse_op): Likewise.
	(add_vdef_op): Likewise.
	(get_expr_operands): Likewise.
	(push_stmt_changes): Use type safe memory macros.
	* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
	keywords as variable names.
	(conditional_replacement): Likewise.
	(minmax_replacement): Likewise.
	(abs_replacement): Likewise.
	* tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
	coding conventions.
	(insert_fake_stores): Avoid using C++ keywords as variable names.
	* tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
	conventions.
	* tree-ssa-structalias.c (heapvar_lookup): Likewise.
	(heapvar_insert): Use type safe memory macros.
	(new_var_info): Cast according to the coding conventions.
	(new_constraint): Likewise.
	(remove_preds_and_fake_succs): Use type safe memory macros.
	* tree-ssa-threadupdate.c (thread_block): Cast according to the coding
	conventions.
	(thread_single_edge): Likewise.
	(thread_through_loop_header): Likewise.

2007-06-06  Eric Christopher  <echristo@apple.com>

	* config/i386/i386.c (override_options): Move handling
	of TARGET_SUBTARGET* earlier.

2007-06-06  Paolo Bonzini  <bonzini@gnu.org>

	* genmodes.c (tagged_printf, emit_insn_modes_h): Don't
	use %n on printf.

2007-06-06  Zdenek Dvorak  <dvorakz@suse.cz>

	* haifa-sched.c (restore_bb_notes): Clear bb field of the notes
	emited outside of basic block.
	* cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
	the created blocks.
	* rtl.h (delete_insn_chain): Declaration changed.
	* cfgrtl.c (delete_insn_chain): Add option to clear bb field for
	non-removed insns.
	(rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
	(delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
	rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
	to delete_insn_chain.
	(rtl_verify_flow_info_1): Verify that the insns in header and footer
	do not have bb field set.
	(rtl_verify_flow_info): Verify that insns between basic blocks do not
	have bb field set.
	* recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
	* cfgcleanup.c (try_optimize_cfg): Ditto.

2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>

	* lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
	(lambda_body_vector_new): Use type safe memory macros.
	(lambda_linear_expression_new): Likewise.
	(lambda_loopnest_new): Likewise.
	(lambda_lattice_new): Likewise.
	(replace_uses_equiv_to_x_with_y): Cast according to the coding
	conventions. Use type safe memory macros.
	* lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
	(lambda_body_vector_s): Likewise.
	* lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
	* lambda-trans.c (lambda_trans_matrix_new): Likewise.

2007-06-06  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
	if we need to schedule cfg_cleanup.
	(tree_ssa_forward_propagate_single_use_vars): Do so.

2007-06-06  Ian Lance Taylor  <iant@google.com>

	* fold-const.c (merge_ranges): If range_successor or
	range_predecessor fail, just return 0.

2007-06-06  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/32216
	* tree-vectorizer.c (supportable_widening_operation): Determine
	signedness of FIX_TRUNC_EXPR from output operand.
	(supportable_narrowing_operation): Ditto.
	* tree-vect-generic.c (expand_vector_operations_1): Determine
	signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
	from input operand.

2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>

	* config/i386/i386.c (enum pta_flags): Move out of struct scope...
	(struct pta): ...from here. Change flags to unsigned to avoid
	excessive casting (as it is used as a bit mask).
	(override_options): Add casts according to the coding convenventions.
	(x86_64_elf_unique_section): Likewise.
	(examine_argument): Avoid using C++ keywords as variable names.
	(construct_container): Likewise.
	(legitimize_pic_address): Likewise.
	(get_dllimport_decl): Cast according to the coding conventions. Use
	type safe memory macros.
	(legitimize_address): Cast according to the coding conventions.
	(emit_i387_cw_initialization): Corrected the type of slot to enum
	ix86_stack_slot.
	(ix86_init_machine_status): Use type safe memory macros.
	(bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
	(bdesc_pcmpistr): Likewise.
	(bdesc_crc32): Likewise.
	(bdesc_sse_3arg): Likewise.
	(bdesc_2arg): Likewise.
	(bdesc_1arg): Likewise.
	(ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
	(ix86_expand_sse_pcmpistr): Likewise.
	(ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
	(ix86_builtin_vectorized_function): Change the type of fn to unsigned
	int to match the langhook definition.
	(ix86_builtin_conversion): Change the type of code to unsigned init to
	match the langhook definition.
	(ix86_preferred_reload_class): Avoid using C++ keywords as variable
	names.
	(ix86_preferred_output_reload_class): Likewise.
	(ix86_cannot_change_mode_class): Likewise.
	(ix86_memory_move_cost): Likewise.
	(ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
	avoid excessive casting later on.
	(x86_output_mi_thunk): Avoid using C++ keywords as variable names.

2007-06-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
	as flags setting insn.
	(sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.

2007-06-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
	(UNSPEC_ROUND): New.
	("sse4_1_round<mode>2"): New insn pattern.
	("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
	SSE4.1 targets.
	("floor<mode>2"): Rename from floordf2 and floorsf2.  Macroize
	expander using SSEMODEF mode macro.  Expand using
	"sse4_1_round<mode>2" pattern for SSE4.1 targets.
	("ceil<mode>2"): Rename from ceildf2 and ceilsf2.  Macroize
	expander using SSEMODEF mode macro.  Expand using
	"sse4_1_round<mode>2" pattern for SSE4.1 targets.
	("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2.  Macroize
	expander using SSEMODEF mode macro.  Expand using
	"sse4_1_round<mode>2" pattern for SSE4.1 targets.
	* config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
	UNSPEC_ROUND instead of UNSPEC_ROUNDP.
	("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
	UNSPEC_ROUNDS.

2007-06-06  Jan Sjodin  <jan.sjodin@amd.com>
	    Sebastian Pop  <sebpop@gmail.com>

	* lambda.h (build_linear_expr): New.
	* lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
	Use build_linear_expr, call fold and force_gimple_operand.
	(lambda_loopnest_to_gcc_loopnest): Check that there is
	something to insert.
	* testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.

2007-06-05  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>

	PR preprocessor/23479
	* doc/extend.texi: Document the 0b-prefixed binary integer
	constant extension.

2007-06-05  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/32215
	* tree-vectorizer.c (supportable_widening_operation): Return false
	for unsupported FIX_TRUNC_EXPR tree code.
	(supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.

2007-06-06  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
	register on SPE targets.  Change documentation to reflect
	reality.
	* config/rs6000/rs6000.c (rs6000_conditional_register_usage):
	Change FIXED_SCRATCH to 14 and document why we're keeping r14
	out of the register allocation pool.
	(rs6000_reg_live_or_pic_offset_p): New function.
	(rs6000_emit_prologue): Move the actual saving of LR up to free
	r0 for holding r11.  Split saving of SPE 64-bit registers into
	its own case.  Ensure that offsets will always be in-range for
	'evstdd' by using r11 as a scratch register to point at the start
	of the SPE save area.  Save r11 if necessary, as it is the static
	chain register.
	(rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
	into its own case.  Ensure that offsets will always be in-range
	for 'evldd' by using r11 as a scratch register to point at the
	start of the SPE save area.  Also adjust r11 when restoring
	the stack pointer to compensate for pre-loading r11.

2007-06-05  Thomas Neumann  <tneumann@users.sourceforge.net>

	* cfg.c (init_flow): Use type safe memory macros.
	(alloc_block): Likewise.
	(unchecked_make_edge): Likewise.
	(dump_flow_info): Avoid using C++ keywords as variable names.
	(copy_original_table_clear): Cast according to the coding conventions.
	(copy_original_table_set): Likewise.
	* cfgexpand (label_rtx_for_bb): Likewise.
	(expand_gimple_basic_block): Likewise.
	* cfghooks.c (dump_bb): Likewise.
	(lv_adjust_loop_header_phi): Avoid using C++ keywords as
	variable names.
	(lv_add_condition_to_bb): Likewise.
	* cfglayout (relink_block_chain): Cast according to the coding
	conventions.
	(fixup_reorder_chain): Likewise.
	(fixup_fallthru_exit_predecessor): Likewise.
	* cfgloop.c (glb_enum_p): Likewise.
	(get_exit_description): Likewise.
	(dump_recorded_exit): Likewise.
	* cfgloop.h (enum loop_estimation): Move out of struct scope...
	(struct loop): ... from here.
	* cfgloopmanip.c (rpe_enum_p): Cast according to the coding
	conventions.
	* cfgrtl.c (rtl_create_basic_block): Likewise.
	(rtl_split_block): Likewise.
	(rtl_dump_bb): Likewise.
	(cfg_layout_split_block): Likewise.
	(init_rtl_bb_info): Use typesafe memory macros.

	* graphds.h (struct graph_edge): Renamed edge to graph_edge.
	* graphds.h: Updated all usages of edge to graph_edge.
	* graphds.c: Likewise.
	* cfgloopanal.c: Likewise.

2007-06-05  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
	PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
	(extract_range_from_assert): Set TREE_NO_WARNING when creating an
	expression.
	(test_for_singularity): Likewise.

2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/constraints.md ("Y2"): Replaced by ...
	("Yt"): This.
	* config/i386/i386.md: Likewise.
	* config/i386/mmx.md: Likewise.
	* config/i386/sse.md: Likewise.

2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/constraints.md ("z"): Replaced by ...
	("Y0"): This.
	* config/i386/sse.md (sse4_1_blendvpd): Likewise.
	(sse4_1_blendvps): Likewise.
	(sse4_1_pblendvb): Likewise.
	(sse4_2_pcmpestr): Likewise.
	(sse4_2_pcmpestrm): Likewise.
	(sse4_2_pcmpestr_cconly): Likewise.
	(sse4_2_pcmpistr): Likewise.
	(sse4_2_pcmpistrm): Likewise.
	(sse4_2_pcmpistr_cconly): Likewise.

2007-06-05  Razya Ladelsky  <razya@il.ibm.com>

	* matrix-reorg.c (transform_access_sites): Fix computation.
	(transform_allocation_sites): Same.

2007-06-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (override_options): Use
	TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.

2007-06-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
	(nonimm_not_xmm0_operand): Ditto.
	* config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
	as operand[0] and operand[1] predicate.  Use "nonimm_not_xmm0_operand"
	as operand[2] predicate.  Require "z" class XMM register for
	operand[3].  Adjust asm template.
	("sse4_1_blendvpd"): Ditto.
	("sse4_1_pblendvb"): Ditto.
 	* config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
	force op2 into xmm0 register for variable blend instructions.

2007-06-04  Tom Tromey  <tromey@redhat.com>

	* c-tree.h (start_enum): Update.
	(build_enumerator): Likewise.
	* c-decl.c (enum_next_value): Removed.
	(enum_overflow): Likewise.
	(start_enum): Add c_enum_contents argument.  Don't use globals.
	(build_enumerator): Likewise.
	* c-tree.h (struct c_enum_contents): New struct.

2007-06-04  Tom Tromey  <tromey@redhat.com>

	* c-common.c (c_common_get_alias_set): Fix indentation.

2007-06-04  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (adjust_range_with_scev): When loop is not expected
	to overflow, reduce overflow infinity to regular infinity.
	(vrp_var_may_overflow): New static function.
	(vrp_visit_phi_node): Check vrp_var_may_overflow.

2007-06-04  Kazu Hirata  <kazu@codesourcery.com>

	* stor-layout.c (layout_type): Remove duplicate code.

2007-06-04  Uros Bizjak  <ubizjak@gmail.com>

	PR c/32191
	* c-common.c (c_define_builtins): Call targetm.init_builtins ()
	before build_common_builtin_nodes ().

2007-06-04  Steve Ellcey  <sje@cup.hp.com>

	PR target/31733
	* cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.

2007-06-04  Jan Hubicka  <jh@suse.cz>

	* tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
	reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
	instead of _stat version.

2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/32194
	* tree-predcom.c (determine_offset): Check that both references have
	the same type.

2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>

	* cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
	Change dom_bbs to vector.  Add argument to iterate_fix_dominators call.
	* loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
	* tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
	Add argument to iterate_fix_dominators call.
	(remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
	* gcse.c (hoist_code): Change domby to vector.
	* cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
	Add argument to iterate_fix_dominators call.
	* loop-doloop.c (doloop_modify): Changed recount_dominator to
	recompute_dominator.
	* lambda-code.c (perfect_nestify): Ditto.
	* cfgloopanal.c: Include graphds.h.
	(struct edge, struct vertex, struct graph, dump_graph, new_graph,
	add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
	(mark_irreducible_loops): Use graphds_scc.  Remove argument from
	add_edge call.
	* graphds.c: New file.
	* graphds.h: New file.
	* dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
	(get_dominated_by, get_dominated_by_region): Change return type to
	vector.
	(verify_dominators): Recompute all dominators and compare the results.
	(recount_dominator): Renamed to ...
	(recompute_dominator): ... this.  Do not check that the block is
	dominated by entry.
	(iterate_fix_dominators): Reimplemented.
	(prune_bbs_to_update_dominators, root_of_dom_tree,
	determine_dominators_for_sons): New functions.
	* et-forest.c (et_root): New function.
	* et-forest.h (et_root): Declare.
	* Makefile.in (graphds.o): Add.
	(cfgloopanal.o): Add graphds.h dependency.
	(dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
	* basic-block.h (get_dominated_by, get_dominated_by_region,
	iterate_fix_dominators): Declaration changed.
	(recount_dominator): Renamed to ...
	(recompute_dominator): ... this.
	* tree-ssa-threadupdate.c (thread_block): Free dominance info.
	(thread_through_all_blocks): Do not free dominance info.

2007-06-03  Andreas Schwab  <schwab@suse.de>

	* config/m68k/m68k.c (override_options): Don't override
	REAL_MODE_FORMAT.
	* config/m68k/m68k-modes.def (SF, DF): Define to use
	motorola_single_format and motorola_double_format, resp.
	* real.c (motorola_single_format): Renamed from
	coldfire_single_format.
	(motorola_double_format): Renamed from coldfire_double_format.
	(encode_ieee_extended): Generate a proper canonical NaN image
	respecting canonical_nan_lsbs_set.
	(ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
	true.
	* real.h: Adjust declarations.

2007-06-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/32163
	* config/sh/sh.md (symGOT_load): Don't schedule insns when
	the symbol is generated with the stack protector.

2007-06-03  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
	(m68k_get_function_kind): Return m68k_fk_interrupt_handler on
	"interrupt".
	* doc/extend.texi (interrupt): Mention m68k.

2007-06-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
	safe_vector_operand() if input operand is VECTOR_MODE_P operand.
	(ix86_expand_sse_pcmpestr): Do not check operands for
	"register_operand", when insn operand predicate is "register_operand".
	(ix86_expand_sse_pcmpistr): Ditto.

2007-06-02  H.J. Lu  <hongjiu.lu@intel.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
	(SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
	(REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
	(REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
	* config/i386/constraints.md ("z"): New register constraint
	for members of SSE_FIRST_REG class.
	* config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
	* config/i386/i386.c (regclass_map): Change class of %xmm0 to
	SSE_FIRST_REG class.
	(put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
	(ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
	(IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
	(IX86_BUILTIN_PCMPESTRM128): Likewise.
	(IX86_BUILTIN_PCMPESTRA128): Likewise.
	(IX86_BUILTIN_PCMPESTRC128): Likewise.
	(IX86_BUILTIN_PCMPESTRO128): Likewise.
	(IX86_BUILTIN_PCMPESTRS128): Likewise.
	(IX86_BUILTIN_PCMPESTRZ128): Likewise.
	(IX86_BUILTIN_PCMPISTRI128): Likewise.
	(IX86_BUILTIN_PCMPISTRM128): Likewise.
	(IX86_BUILTIN_PCMPISTRA128): Likewise.
	(IX86_BUILTIN_PCMPISTRC128): Likewise.
	(IX86_BUILTIN_PCMPISTRO128): Likewise.
	(IX86_BUILTIN_PCMPISTRS128): Likewise.
	(IX86_BUILTIN_PCMPISTRZ128): Likewise.
	(struct builtin_description): Change "flag" field to unsigned.
	(bdesc_pcmpestr): New builtin description table.
	(bdesc_pcmpistr): Likewise.
	(ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
	v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
	Initialize pcmp[ei]str[im] insns for SSE4.2.
	(ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
	(ix86_expand_sse_pcmpistr): Likewise.
	(ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
	* config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
	(UNSPEC_PCMPISTR): Likewise.
	* config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
	(sse4_2_pcmpestri):New isns pattern.
	(sse4_2_pcmpestrm): Likewise.
	(sse4_2_pcmpestr_cconly): Likewise.
	(sse4_2_pcmpistr): New insn patern and splitter.
	(sse4_2_pcmpistri):New isns pattern.
	(sse4_2_pcmpistrm): Likewise.
	(sse4_2_pcmpistr_cconly): Likewise.
	* config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
	in SSE4.2.

2007-06-01  David Daney  <ddaney@avtrex.com>

	* config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
	LOADGP_ABSOLUTE and not binds_local_p.

2007-06-01  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.

2007-06-01  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (compare_name_with_value): Always set
	used_strict_overflow if we get a result from the variable itself.

2007-06-01  Ian Lance Taylor  <iant@google.com>

	PR rtl-optimization/31455
	* lower-subreg.c (find_decomposable_subregs): Don't decompose
	subregs which have a cast between modes which are not tieable.

2007-06-01  Uros Bizjak  <ubizjak@gmail.com>

	* expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
	breaks after return statements.

2007-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
	only after no_new_pseudos.

2007-05-31  Eric Christopher  <echristo@apple.com>

	* expr.c (convert_move): Assert that we don't have a BLKmode
	operand.
	(store_expr): Handle BLKmode moves by calling emit_block_move.

2007-05-31  Daniel Berlin  <dberlin@dberlin.org>

	* c-typeck.c (build_indirect_ref): Include type in error message.
	(build_binary_op): Pass types to binary_op_error.
	* c-common.c (binary_op_error): Take two type arguments, print out
	types with error.
	* c-common.h (binary_op_error): Update prototype.

2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c: Correct coments on -mno-sse4.

2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
	(x86_64-*-*): Likewise.
	* config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
	(OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE2_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE3_UNSET): Likewise.
	(OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE4): Likewise.
	(OPTION_MASK_ISA_SSE4_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
	(ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET.  Handle SSE4.2.
	(override_options): Support SSE4.2.
	(ix86_build_const_vector): Support SImode and DImode.
	(ix86_build_signbit_mask): Likewise.
	(ix86_expand_int_vcond): Support V2DImode.
	(IX86_BUILTIN_CRC32QI): New for SSE4.2.
	(IX86_BUILTIN_CRC32HI): Likewise.
	(IX86_BUILTIN_CRC32SI): Likewise.
	(IX86_BUILTIN_CRC32DI): Likewise.
	(IX86_BUILTIN_PCMPGTQ): Likewise.
	(bdesc_crc32): Likewise.
	(bdesc_sse_3arg): Likewise.
	(ix86_expand_crc32): Likewise.
	(ix86_init_mmx_sse_builtins): Support SSE4.2.
	(ix86_expand_builtin): Likewise.
	* config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
	__SSE4_2__ for -msse4.2.
	* config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
	(CRC32MODE): Likewise.
	(crc32modesuffix): Likewise.
	(crc32modeconstraint): Likewise.
	(sse4_2_crc32<mode>): Likewise.
	(sse4_2_crc32di): Likewise.
	* config/i386/i386.opt (msse4.2): New for SSE4.2.
	(msse4): Likewise.
	* config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
	* config/i386/smmintrin.h: Add SSE4.2 intrinsics.
	* config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
	(vcond<mode>): Use SSEMODEI instead of SSEMODE124.
	(vcondu<mode>): Likewise.
	* doc/extend.texi: Document SSE4.2 built-in functions.
	* doc/invoke.texi: Document -msse4.2/-msse4.

2007-05-31  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/32160
	* tree-predcom.c (predcom_tmp_var): New function.  Mark created
	variable as gimple reg.
	(initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.

2007-05-31  Kazu Hirata  <kazu@codesourcery.com>

	* gcc.c (main): Don't consider linker options when issuing the
	warning about a linker input file not being used.

2007-05-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* tree-vrp.c (compare_names): Initialize sop.

2007-05-30  Dirk Mueller  <dmueller@suse.de>

	* cgraphunit.c (cgraph_analyze_function): Remove
	computation of inline parameters.

2007-05-30  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.

2007-05-30  Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
	Add vx-common.h.  Include vxworks.h between vx-common.h and
	arm/vxworks.h.
	* config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
	redefining.
	* config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
	(TARGET_ASM_DESTRUCTOR): Likewise.
	* config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
	instead of arm_is_xscale.  Use VXWORKS_OS_CPP_BUILTINS.
	(OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
	(CC1_SPEC): Add -tstrongarm.  Line up backslashes.
	(VXWORKS_ENDIAN_SPEC): Define.
	(ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
	(LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
	VXWORKS_* equivalents.
	(LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
	(ASM_FILE_START): Delete.
	(TARGET_VERSION): Reformat.
	(FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
	(DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
	* config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
	(FPBIT, DPBIT): Define.
	(fp-bit.c, dp-bit.c): New rules.
	(MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
	(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
	* config/arm/arm-protos.h (arm_emit_call_insn): Declare.
	* config/arm/arm.h: Include vxworks-dummy.h.
	* config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
	Mark with ATTRIBUTE_UNUSED.
	(arm_override_options): Do not allow VxWorks RTP PIC to be used
	for Thumb.  Force r9 to be the PIC register for VxWorks RTPs and
	make it incompatible with -msingle-pic-base.
	(arm_function_ok_for_sibcall): Return false for calls that might
	go through a VxWorks PIC PLT entry.
	(require_pic_register): New function, split out from...
	(legitimize_pic_address): ...here.  Do not use GOTOFF accesses
	for VxWorks RTPs.
	(arm_load_pic_register): Handle the VxWorks RTP initialization
	sequence.  Use pic_reg as a shorthand for cfun->machine->pic_reg.
	(arm_emit_call_insn): New function.
	(arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
	* config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
	(pic_offset_arm): New pattern.
	(call, call_value): Use arm_emit_call_insn.
	(call_internal, call_value_internal): New expanders.
	* config/arm/lib1funcs.asm (__PLT__): Define to empty for
	VxWorks unless __PIC__.

2007-05-30  Eric Christopher  <echristo@gmail.com>

	* genrecog.c: Include regs.h in generated file.
	* genemit.c: Ditto. Fix up formatting.
	* config/mn10300/constraints.md: New.
	* config/mn10300/mn10300.md: Include.
	* config/mn10300/mn10300.c(mn10300_secondary_reload_class):
	Fix up for removed macro.
	* config/mn10300/predicates.md (call_address_operand): Ditto.
	* config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
	(CONST_OK_FOR_I): Ditto.
	(CONST_OK_FOR_J): Ditto.
	(CONST_OK_FOR_K): Ditto.
	(CONST_OK_FOR_L): Ditto.
	(CONST_OK_FOR_M): Ditto.
	(CONST_OK_FOR_N): Ditto.
	(CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
	(OK_FOR_Q): Ditto.
	(OK_FOR_R): Ditto.
	(OK_FOR_T): Ditto.
	(EXTRA_CONSTRAINT): Ditto.

2007-05-30 Uros Bizjak <ubizjak@gmail.com>

	* config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
	Remove defines.
	* config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
	OPTION_MASK_ISA_64BIT.
	* config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.

2007-05-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/32152
	* gimplify.c (gimplify_omp_atomic_pipeline): Use correct
	types for comparison.
	* fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
	with original typed arguments.
	* config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.

2007-05-30  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/31769
	* except.c (duplicate_eh_regions): Clear prev_try if
	ERT_MUST_NOT_THROW region is inside of ERT_TRY region.

2007-05-30  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-scalar-evolution.c (scev_const_prop): Do not create labels.
	* tree-ssa-sink.c (statement_sink_location): Return basic block and
	bsi of the location where statements should be inserted.
	(sink_code_in_bb): Take bsi from statement_sink_location.
	* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
	instead of bsi_start.
	* tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
	bsi_insert_after.
	* tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
	(bsi_move_before): Document inconsistency with bsi_move_after.
	(tree_redirect_edge_and_branch): Do not create labels if not necessary.

2007-05-30 Uros Bizjak <ubizjak@gmail.com>

	* config/i386/i386.h (TARGET_ABM): New define.
	(TARGET_POPCNT): Ditto.
	(TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
	New temporary defines to redefine from OPTION_ISA_* defines.
	(MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
	New temporary defines to redefine from OPTION_MASK_ISA_* defines.
	(ix86_isa_flags): New extern int declaration.
	(TARGET_SUBTARGET_DEFAULT): New define.
	(TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
	(TARGET_SUBTARGET32_DEFAULT): Ditto.
	(TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
	(TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
	* config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
	* config/i386/darwin.h: Change TARGET_64BIT define to
	OPTION_ISA_64BIT.

	* config/i386/i386.opt (m3dnowa): Define as undocumented option
	using existing "ix86_isa_flags" varible.
	(m32, m64): Use existing "ix86_isa_flags" variable.
	(mmmx, m3dnow): Ditto.
	(msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
	(mabm): Define as non-negative option using "x86_abm" variable.
	(mpopcnt): Define as non-negative option using "x86_popcnt" variable.

	* config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
	Rewrite feature test bitmap.
	(ix86_isa_flags): New initialized global int varible.
	(ix86_isa_flags_explicit): New static int variable.
	(ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
	msse, msse2, msse3, msse4.1 and msse4a option is processed.  Change
	i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
	target_flags_explicit.
	(override_options): Remove "target_enable" and "target_disable" fields
	from "struct ptt". Update processor_target_table accordingly. Remove
	PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
	defined and rearrange PTA_* bits.  Use "ix86_isa_flags" instead of
	"target_flags" and "ix86_isa_flags_explicit" instead of
	"target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
	MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*.  Set "x86_abm" to true when
	PTA_ABM is set in processor_alias_table flags entry.  Set "x86_popcnt"
	to true when either of PTA_POPCNT or PTA_ABM is set in
	processor_alias_table flags entry.  Set "x86_prefetch_sse" to true
	when either of PTA_PREFETCH_SSE or PTA_SSE is set in
	processor_alias_table flags entry.  Remove handling of
	"target_enable" and "target_disable" fields of processor_target_table.
	Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
	targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
	Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
	targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
	(def_builtin): Mask "mask" variable with "ix86_isa_flags", not
	"target_flags".
	(TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.

2007-05-29  David Daney  <ddaney@avtrex.com>

	PR gcc/31975
	* config/mips/mips.c (mips_output_mi_thunk): Emit
	NOTE_INSN_PROLOGUE_END at beginning of the thunk.

2007-05-29  Hui-May Chang  <hm.chang@apple.com>
	* config/i386/i386.c (ix86_function_regparm): Added checking of
	ix86_force_align_arg_pointer to determine the number of
	register parameters.

2007-05-29  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
	(SET_DR_MISALIGNMENT): New.
	* tree-vect-analyze.c (vect_compute_data_ref_alignment,
	vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
	Use SET_DR_MISALIGNMENT.
	* tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
	pointer.
	* tree-data-ref.c (create_data_ref, compute_all_dependences,
	find_loop_nest): Export.
	* tree-data-ref.h (struct data_reference): Change aux field to pointer.
	(create_data_ref, compute_all_dependences, find_loop_nest): Declare.
	* tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
	(L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
	New macros.
	(struct mem_ref): Add field reuse_distance.
	(find_or_create_group, record_ref): Use XNEW instead of xcalloc.
	Initialize reuse_distance field.
	(issue_prefetch_ref): Select temporality of prefetch according to
	reuse_distance.
	(volume_of_references, volume_of_dist_vector, add_subscript_strides,
	self_reuse_distance, determine_loop_nest_reuse): New functions.
	(loop_prefetch_arrays): Call determine_loop_nest_reuse.
	(tree_ssa_prefetch_arrays): Dump L2 cache size.
	* Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
	dependency.

2007-05-29  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-alias.c: Add aliasing overview.

2007-05-29  Zuxy Meng  <zuxy.meng@gmail.com>
	    Danny Smith  <dannysmith@users.sourceforge.net>

	PR target/29498
	* config/i386/t-crtfm: Compile crtfastmath.o with
	-minline-all-stringops.
	* config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
	* config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.

2007-05-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* doc/md.texi: Document constraints on HP PA-RISC.

	* pa/constraints.md: New file.
	* pa.md: Include constraints.md.
	* pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
	(integer_store_memory_operand, ldil_cint_p): New functions.
	* pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
	* pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
	IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
	* pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
	* pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.

2007-05-28  Andrew Pinski  <Andrew_pinski@playstation.sony.com>

	PR c/31339
	* c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
	case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
	case POSTDECREMENT_EXPR>): Return the error_mark_node
	if either the real or imaginary parts would an
	error_mark_node.

2007-05-28  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
	name when we remove it from a call.

2007-05-28  Kazu Hirata  <kazu@codesourcery.com>

	* targhooks.c (default_narrow_bitfield): Remove.
	* targhooks.h: Remove the prototype for
	default_narrow_bitfield.

	* langhooks-def.h: Remove the prototype for
	hook_get_alias_set_0.
	* langhooks.c (hook_get_alias_set_0): Remove.

	* global.c (EXECUTE_IF_CONFLICT): Remove.

2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR tree-opt/32100
	* fold-const.c (tree_expr_nonnegative_warnv_p): Don't
	return true when truth_value_p is true and the type
	is of signed:1.

2007-05-28  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Prerequisites): We no longer require Autoconf
	2.13 for the top-level.

2007-05-28  Uros Bizjak  <ubizjak@gmail.com>

	* target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
	memory access via x86_expand_vector_move_misalign() only for
	TImode values on 32-bit targets.

2007-05-28  Razya Ladelsky  <razya@il.ibm.com>

	* matrix-reorg.c: New file. Implement matrix flattening and
	transposing optimization.
	* tree-pass.h: Add matrix reorg pass.
	* common.opt: Add fipa-mreorg flag.
	* Makefile.in: Add matrix-reorg.c.
	* passes.c: Add matrix reorg pass.
	* varpool.c (add_new_static_var): New function.
	* cgraph.h (add_new_static_var): Declare.

2007-05-27  Eric Christopher  <echristo@apple.com>

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Update
	sp_offset depending on stack size. Save r12 depending
	on registers we're saving later.
	(rs6000_emit_epilogue): Update sp_offset depending only
	on stack size.

2007-05-27  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
	* tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
	* ifcvt.c (if_convert): Ditto.
	* tree-ssa-threadupdate.c (thread_block): Ditto.
	(thread_through_all_blocks): Ditto.  Assert that loops were analysed.
	* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
	verify_loop_closed_ssa): Check number_of_loops instead of
	current_loops.
	* predict.c (tree_estimate_probability): Ditto.
	* tree-if-conv.c (main_tree_if_conversion): Ditto.
	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
	* modulo-sched.c (sms_schedule): Ditto.
	* tree-scalar-evolution.c (scev_const_prop): Ditto.
	(scev_finalize): Do not do anything if scev analysis was not
	initialized.
	* cfgloopanal.c (mark_irreducible_loops): Do not check whether
	current_loops == NULL.
	(mark_loop_exit_edges): Check number_of_loops instead of current_loops.
	* loop-init.c (loop_optimizer_init): Do not free current_loops when
	there are no loops.
	(loop_optimizer_finalize): Assert that loops were analyzed.
	(rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
	rtl_doloop): Check number_of_loops instead of current_loops.
	* tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
	current_loops == NULL.
	(tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
	gate_tree_vectorize tree_linear_transform, check_data_deps,
	tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
	tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
	Check number_of_loops instead of current_loops.
	(tree_ssa_loop_done): Do not check whether current_loops == NULL.
	* tree-ssa-pre.c (fini_pre): Do not take do_fre argument.  Always
	free loops if available.
	(execute_pre): Do not pass do_fre to fini_pre.

2007-05-27  Tobias Burnus  <burnus@net-b.de>

	PR middle-end/32083
	* real.c (mpfr_from_real): Fix sign of -Inf.

2007-05-27  H.J. Lu  <hongjiu.lu@intel.com>

	* tree-vect-transform.c (vectorizable_conversion): Initialize
	tree_code variables to ERROR_MARK.
	(vectorizable_type_demotion): Likewise.
	(vectorizable_type_promotion): Likewise.

2007-05-26  Uros Bizjak  <ubizjak@gmail.com>

	PR target/32065
	* config/i386/i386.md (movti): Handle push operands via
	ix86_expand_push().

2007-05-26  Kazu Hirata  <kazu@codesourcery.com>

	* basic-block.h: Remove the prototype for merge_seq_blocks.
	* cfgcleanup.c (merge_seq_blocks): Remove.

	* tree-flow.h: Remove the prototype for is_aliased_with.
	* tree-ssa-alias.c (is_aliased_with): Remove.

2007-05-26  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.

	* config/i386/i386.c (ix86_expand_sse4_unpack): New.

	* config/i386/sse.md (vec_unpacku_hi_v16qi): Call
	ix86_expand_sse4_unpack if SSE4.1 is enabled.
	(vec_unpacks_hi_v16qi): Likewise.
	(vec_unpacku_lo_v16qi): Likewise.
	(vec_unpacks_lo_v16qi): Likewise.
	(vec_unpacku_hi_v8hi): Likewise.
	(vec_unpacks_hi_v8hi): Likewise.
	(vec_unpacku_lo_v8hi): Likewise.
	(vec_unpacks_lo_v8hi): Likewise.
	(vec_unpacku_hi_v4si): Likewise.
	(vec_unpacks_hi_v4si): Likewise.
	(vec_unpacku_lo_v4si): Likewise.
	(vec_unpacks_lo_v4si): Likewise.

2007-05-26  Kazu Hirata  <kazu@codesourcery.com>

	* c-typeck.c, config/arm/arm.c, config/darwin.c,
	config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
	omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
	follow spelling conventions in various
	warning/error/diagnostic messages.

	* config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
	df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
	fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
	tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
	tree-vrp.c: Fix comment typos.  Follow spelling conventions.
	* doc/tm.texi: Follow spelling conventions.

2007-05-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR tree-opt/32090
	* tree-ssa-forwprop.c
	(forward_propagate_addr_into_variable_array_index): Remove
	the lhs argument.  Use the type of def_rhs instead of lhs.
	(forward_propagate_addr_expr_1): Update use of
	forward_propagate_addr_into_variable_array_index.

2007-05-25  Sandra Loosemore  <sandra@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>

	* config/mips/mips.c (mips_attribute_table): Add "near" and "far"
	function attributes, "far" being an alias for "long_call".
	(TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
	(mips_near_type_p, mips_far_type_p): New.
	(mips_comp_type_attributes): New function to check that attributes
	attached to a function type are compatible.
	(mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
	TARGET_LONG_CALLS when deciding	whether we can do a direct sibcall
	to the target function of the thunk.
	(mips_encode_section_info): Check for "near" and "far" function
	attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.

	* config/mips/predicates.md (const_call_insn_operand): Test only
	SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.

	* doc/extend.texi (Function Attributes): Document MIPS "near" and
	"far" attributes.

	* testsuite/gcc.target/mips/near-far-1.c: New test case.
	* testsuite/gcc.target/mips/near-far-2.c: New test case.
	* testsuite/gcc.target/mips/near-far-3.c: New test case.
	* testsuite/gcc.target/mips/near-far-4.c: New test case.

2007-05-25  Eric Christopher  <echristo@apple.com>

	* config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
	to x86-darwin configurations.
	* config/i386/t-darwin: Add softfp support.
	* config/i386/t-darwin64: Ditto.
	* config/i386/sfp-machine.h: If mach then don't use
	aliasing, emit a stub to call.

2007-05-25  Kazu Hirata  <kazu@codesourcery.com>

	* cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
	haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
	tree-predcom.c, tree-ssa-alias-warnings.c,
	tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
	comment typos.  Follow spelling conventions.
	* doc/cpp.texi, doc/invoke.texi: Fix typos.

2007-05-26  Uros Bizjak  <ubizjak@gmail.com>

	PR target/32065
	* target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
	constants into memory.  Expand unaligned memory references for
	SSE modes via x86_expand_vector_move_misalign() function.

2007-05-25  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
	"memory" attribute for "sseishft" type insn without operands[2].

2007-05-25  Dirk Mueller  <dmueller@suse.de>
	    Marcus Meissner <meissner@suse.de>

	* doc/extend.texi (alloc_size): New attribute.
	* c-common.c (handle_alloc_size_attribute): New.
	* tree-object-size.c (alloc_object_size): Use alloc_size
	attribute, if available.

2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
	with MASK_SSE2.
	(__builtin_ia32_vec_ext_v2di): Likewise.
	(__builtin_ia32_vec_ext_v4si): Likewise.
	(__builtin_ia32_vec_ext_v8hi): Likewise.
	(__builtin_ia32_vec_ext_v16qi): Likewise.
	(__builtin_ia32_vec_set_v8hi): Likewise.

2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.

2007-05-25  Richard Sandiford  <richard@codesourcery.com>

	* config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
	(arm_is_longcall_p): Rename to...
	(arm_is_long_call_p): ...this.  Take a single tree argument and
	return a bool.
	* config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
	(CUMULATIVE_ARGS): Remove call_cookie.
	(SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
	(ENCODED_LONG_CALL_ATTR_P): Delete.
	(ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
	LONG_CALL_FLAG_CHAR cases.
	(ARM_DECLARE_FUNCTION_SIZE): Delete.
	* config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
	ARM_DECLARE_FUNCTION_SIZE.
	* config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
	(arm_function_arg): Return const0_rtx for VOIDmode arguments.
	(arm_encode_call_attribute, current_file_function_operand): Delete.
	(arm_function_in_section_p): New function.
	(arm_is_longcall_p): Rename to...
	(arm_is_long_call_p): ...this.  Take the target function as a single
	argument and return a bool.  Do not rely on call cookies.  Check
	whether the target symbol is in the same section as the current
	function, not just the same compilation unit.
	(arm_function_ok_for_sibcall): Use arm_is_long_call_p.
	(arm_encode_section_info): Don't encode a call type.
	* config/arm/arm.md (call, call_value): Update calls to
	arm_is_long(_)call_p.  Simplify logic.
	(*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
	Update calls to arm_is_long(_)call_p.

2007-05-25  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/31982
	* tree-ssa-forwprop.c
	(forward_propagate_addr_into_variable_array_index): Handle arrays
	with element size one.

2007-05-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
	(umulsi3_highpart): Likewise.

2007-05-24  Ian Lance Taylor  <iant@google.com>

	PR rtl-optimization/32069
	* regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
	is NULL.

2007-05-24  Ollie Wild  <aaw@google.com>

	* doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
	description.

2007-05-24  Richard Sandiford  <rsandifo@nildram.co.uk>

	* postreload-gcse.c (reg_changed_after_insn_p): New function.
	(oprs_unchanged_p): Use it to check all registers in a REG.
	(record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
	(reg_set_between_after_reload_p): Delete.
	(reg_used_between_after_reload_p): Likewise.
	(reg_set_or_used_since_bb_start): Likewise.
	(eliminate_partially_redundant_load): Use reg_changed_after_insn_p
	and reg_used_between_p instead of reg_set_or_used_since_bb_start.
	Use reg_set_between_p instead of reg_set_between_after_reload_p.
	* rtlanal.c (reg_set_p): Check whether REG overlaps
	regs_invalidated_by_call, rather than just checking the
	membership of REGNO (REG).

2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>

	* doc/passes.texi: Document predictive commoning.
	* doc/invoke.texi (-fpredictive-commoning): Document.
	* opts.c (decode_options): Enable flag_predictive_commoning on -O3.
	* tree-ssa-loop-im.c (get_lsm_tmp_name): Export.  Allow
	adding indices to the generated name.
	(schedule_sm): Pass 0 to get_lsm_tmp_name.
	* tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
	* tree-pretty-print.c (op_symbol_1): Renamed to ...
	(op_symbol_code): ... and exported.
	(dump_omp_clause, op_symbol): Use op_symbol_code
	instead of op_symbol_1.
	* tree-pass.h (pass_predcom): Declare.
	* timevar.def (TV_PREDCOM): New timevar.
	* tree-ssa-loop.c (run_tree_predictive_commoning,
	gate_tree_predictive_commoning, pass_predcom): New.
	* tree-data-ref.c (find_data_references_in_loop): Find the
	references in dominance order.
	(canonicalize_base_object_address): Ensure that the result has
	pointer type.
	(dr_analyze_innermost): Export.
	(create_data_ref): Code to fail for references with invariant
	address moved ...
	(find_data_references_in_stmt): ... here.
	* tree-data-ref.h (dr_analyze_innermost): Declare.
	* tree-affine.c: Include tree-gimple.h and hashtab.h.
	(aff_combination_find_elt, name_expansion_hash,
	name_expansion_eq, tree_to_aff_combination_expand,
	double_int_constant_multiple_p, aff_combination_constant_multiple_p):
	New functions.
	* tree-affine.h (aff_combination_constant_multiple_p,
	tree_to_aff_combination_expand): Declare.
	* tree-predcom.c: New file.
	* common.opt (fpredictive-commoning): New option.
	* tree-flow.h (op_symbol_code, tree_predictive_commoning,
	stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
	* Makefile.in (tree-predcom.o): Add.
	(tree-affine.o): Add TREE_GIMPLE_H dependency.
	* passes.c (init_optimization_passes): Add dceloop after
	copy propagation in loop optimizer.  Add predictive commoning
	to loop optimizer passes.

2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>

	* target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
	default hook.

2007-05-24  Jan Hubicka  <jh@suse.cz>

	* gengenrtl.c (gendecl, gendef): Output the gens annotated for
	statistics.
	(genheader): Include statistics.h.

	* doc/invoke.texi (-fdump-unnumbered): Update docs when line number
	notes are gone.
	* print-rtl.c (flag_dump_unnumbered): Update comments.
	(print_rtl): Fix my previous change.
	* emit-rtl.c (emit_note_before, emit_note_after): Clear out note
	specific data.

2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>

	PR middle-end/32018
	* tree-ssa-threadupdate.c (thread_through_loop_header): Use
	set_loop_copy.
	(thread_through_all_blocks): Call initialize_original_copy_tables
	and free_original_copy_tables.
	* cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
	Use set_loop_copy.
	* tree-cfg.c (tree_duplicate_sese_region): Ditto.
	* cfghooks.c (duplicate_block): Use get_loop_copy.
	* cfg.c: Include cfgloop.h.
	(loop_copy): New hash table.
	(initialize_original_copy_tables): Initialize loop_copy table.
	(free_original_copy_tables): Free loop_copy table.
	(copy_original_table_clear, copy_original_table_set,
	set_loop_copy, get_loop_copy): New functions.
	(set_bb_original, set_bb_copy): Use copy_original_table_set.
	* cfgloop.h (struct loop): Remove copy field.
	* Makefile.in (cfg.o): Add CFGLOOP_H dependency.
	* basic-block.h (set_loop_copy, get_loop_copy): Declare.

2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
	-msse/-msse2/-msse3.

2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
	__builtin_ia32_vec_set_v2di with MASK_64BIT.

2007-05-24  Danny Smith  <dannysmith@users.sourceforge.net>

	PR target/27067
	* doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
	* targhooks.h (default_mangle_decl_assembler_name): Declare
	default hook.
	* targhooks.c (default_mangle_decl_assembler_name): Define
	default hook.
	* target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
	default hook.
	* target.h (struct gcc_target): Add mangle_decl_assembler_name field.
	* langhooks.c (lhd_set_decl_assembler_name): Call
	targetm.mangle_decl_assembler_name for names with global scope.

	* config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
	default.
	(ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
	* config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
	Declare.
	* config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
	New. Factored out of i386_pe_encode_section_info.
	(gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
	Move check for prior decoration of stdcall
	symbols to i386_pe_encode_section_info.
	(i386_pe_encode_section_info): Adjust call to
	gen_stdcall_or_fastcall_suffix.  Use
	i386_pe_maybe_mangle_decl_assembler_name, if needed.
	(i386_pe_mangle_decl_assembler_name): New. Wrap
	i386_pe_maybe_mangle_decl_assembler_name.

2007-05-16  Rafael Ávila de Espíndola  <espindola@google.com>

	* c-common.c (c_common_signed_or_unsigned_type): Delay the check for
	INTEGRAL_TYPE_P and TYPE_UNSIGNED.
	* langhooks.c (get_signed_or_unsigned_type): Don't check for
	INTEGRAL_TYPE_P or TYPE_UNSIGNED.
	(lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
	TYPE_UNSIGNED.

2007-05-23  Sandra Loosemore  <sandra@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>
	    Richard Sandiford  <richard@codesourcery.com>

	Fix up MIPS16 hard float and add support for complex.

	* config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
	(TARGET_SOFT_FLOAT_ABI): New.
	(TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
	__mips_soft_float to reflect the ABI in use, not whether the
	FPU is directly accessible (e.g., in MIPS16 mode).
	(UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
	(UNITS_PER_FPVALUE): Likewise.

	* config/mips/mips.c (mips_expand_call): Remove redundant
	TARGET_MIPS16 check.
	(mips_arg_regno): New.
	(function_arg_advance): When setting bits in cum->fp_code for
	MIPS16, don't subtract 1 from cum->arg_number, since it is now
	zero-based.
	(function_arg): Use mips_arg_regno.
	(mips_return_mode_in_fpr_p): New.
	(mips16_call_stub_mode_suffix): New.
	(mips16_cfun_returns_in_fpr_p): New.
	(mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
	(mips_output_function_prologue): Test mips16_hard_float, not
	!TARGET_SOFT_FLOAT, to decide when a function stub is required.
	(mips_expand_epilogue): Call MIPS16 helper routines to copy
	return value into a floating-point register.
	(mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
	(mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
	(mips16_fp_args): Handle MIPS32r2 ISA which supports
	TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
	word of double arguments from or to the high bits of 64-bit
	floating point registers.
	(build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
	(mips16_fpret_double): New helper function.
	(build_mips16_call_stub): Use mips16_return_mode_in_fpr_p.  Add
	support for complex modes.  Fill in DECL_RESULT for stubdecl.
	(mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.

	* config/mips/mips16.S
	(RET, ARG1, ARG2): New.
	(MERGE_GPRf, MERGE_GPRt): New.
	(DELAYt, DELAYf): New.
	(MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
	(MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
	(MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
	(MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
	(SFOP): Renamed to...
	(OPSF3): This, and macro-ified.  Updated all uses.
	(SFOP2): Renamed to...
	(OPSF2): This, and macro-ified.  Updated all uses.
	(SFCMP): Renamed to...
	(CMPSF): This, and macro-ified.  Updated all uses.
	(SFREVCMP): Renamed to...
	(REVCMPSF): This, and macro-ified.  Updated all uses.
	(__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
	(LDDBL1, LDDBL2, RETDBL): Deleted.
	(DFOP): Renamed to...
	(OPDF3): This, and macro-ified.  Updated all uses.
	(DFOP2): Renamed to...
	(OPDF2): This, and macro-ified.  Updated all uses.
	(__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
	(DFCMP): Renamed to...
	(CMPDF): This, and macro-ified.  Updated all uses.
	(DFREVCMP): Renamed to...
	(REVCMPDF): This, and macro-ified.  Updated all uses.
	(__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
	(RET_FUNCTION): New.
	(__mips16_ret_sf, __mips16_ret_df): Macro-ified.
	(__mips16_ret_sc, __mips16_ret_dc): New.
	(STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
	STUB_ARGS_6, STUB_ARGS_10): New.
	(CALL_STUB_NO_RET): New.
	(__mips16_call_stub_1): Macro-ified.
	(__mips16_call_stub_5): Macro-ified.
	(__mips16_call_stub_2): Macro-ified.
	(__mips16_call_stub_6): Macro-ified.
	(__mips16_call_stub_9): Macro-ified.
	(__mips16_call_stub_10): Macro-ified.
	(CALL_STUB_RET): New.
	(__mips16_call_stub_sf_0): Macro-ified.
	(__mips16_call_stub_sf_1): Macro-ified.
	(__mips16_call_stub_sf_5): Macro-ified.
	(__mips16_call_stub_sf_2): Macro-ified.
	(__mips16_call_stub_sf_6): Macro-ified.
	(__mips16_call_stub_sf_9): Macro-ified.
	(__mips16_call_stub_sf_10): Macro-ified.
	(__mips16_call_stub_df_0): Macro-ified.
	(__mips16_call_stub_df_1): Macro-ified.
	(__mips16_call_stub_df_5): Macro-ified.
	(__mips16_call_stub_df_2): Macro-ified.
	(__mips16_call_stub_df_6): Macro-ified.
	(__mips16_call_stub_df_9): Macro-ified.
	(__mips16_call_stub_df_10): Macro-ified.
	(__mips16_call_stub_sc_0): New.
	(__mips16_call_stub_sc_1): New.
	(__mips16_call_stub_sc_5): New.
	(__mips16_call_stub_sc_2): New.
	(__mips16_call_stub_sc_6): New.
	(__mips16_call_stub_sc_9): New.
	(__mips16_call_stub_sc_10): New.
	(__mips16_call_stub_dc_0): New.
	(__mips16_call_stub_dc_1): New.
	(__mips16_call_stub_dc_5): New.
	(__mips16_call_stub_dc_2): New.
	(__mips16_call_stub_dc_6): New.
	(__mips16_call_stub_dc_9): New.
	(__mips16_call_stub_dc_10): New.

	* config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
	* config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
	* config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.

2007-05-23  Ian Lance Taylor  <iant@google.com>

	* doc/invoke.texi (Invoking GCC): Document that the order of the
	-l option matters.

2007-05-23  Chen Liqin  <liqin@sunnorth.com.cn>

	PR target/30987
	* config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
	* config/score/predicate.md (const_pow2, const_npow2): Remove.
	* config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
	undef.

	PR target/30474
	* config/score/score.c (score_print_operand): Make sure that only
	lower bits are used.

2007-05-22  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (avoid_overflow_infinity): New static function,
	broken out of set_value_range_to_value.
	(set_value_range_to_value): Call avoid_overflow_infinity.
	(extract_range_from_assert): Likewise.

2007-05-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/31095
	 * builtins.c (expand_builtin_memmove_args): Strip nops that don't
	change the type before looking for a COMPOUND_EXPR.

2007-05-22  Ian Lance Taylor  <iant@google.com>

	* lower-subreg.c (decompose_multiword_subregs): If we change an
	insn, call remove_retval_note on it.

2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>

	* regs.h (end_hard_regno): New function.
	(END_HARD_REGNO, END_REGNO): New macros.
	(add_to_hard_reg_set): New function.
	(remove_from_hard_reg_set): Likewise.
	(in_hard_reg_set_p): Likewise.
	(overlaps_hard_reg_set_p): Likewise.
	* bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
	(note_btr_set): Use END_HARD_REGNO.
	* caller-save.c (setup_save_areas): Use end_hard_regno.
	(mark_set_regs): Use END_HARD_REGNO.
	(add_stored_regs): Use end_hard_regno.
	(mark_referenced_regs): Use add_to_hard_reg_set.
	* combine.c (update_table_tick): Use END_REGNO.
	(record_value_for_reg): Likewise.
	(record_dead_and_set_regs): Likewise.
	(get_last_value_validate): Likewise.
	(use_crosses_set_p): Likewise.
	(reg_dead_at_p_1): Likewise.
	(reg_dead_at_p): Likewise.
	(mark_used_regs_combine): Use add_to_hard_reg_set.
	(move_deaths): Use END_HARD_REGNO.
	(reg_bitfield_target_p): Use end_hard_regno.
	(distribute_notes): Use END_HARD_REGNO.
	* cse.c (mention_regs): Use END_REGNO.
	(insert): Use add_to_hard_reg_set.
	(invalidate): Use END_HARD_REGNO.
	(invalidate_for_call): Likewise.
	(exp_equiv_p): Use END_REGNO.
	(cse_insn): Likewise.
	* cselib.c (cselib_invalidate_regno): Use end_hard_regno.
	* df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
	* df-scan.c (df_ref_record): Use END_HARD_REGNO.
	* function.c (keep_stack_depressed): Use end_hard_regno.
	* global.c (global_alloc): Use end_hard_regno.
	(global_conflicts): Use add_to_hard_reg_set instead of
	mark_reg_live_nc.
	(find_reg): Likewise.
	(mark_reg_store): Likewise.
	(mark_reg_conflicts): Likewise.
	(mark_reg_death): Use remove_from_hard_reg_set.
	(mark_reg_live_nc): Delete.
	(set_preference): Use end_hard_regno.
	* local-alloc.c (mark_life): Use add_to_hard_reg_set and
	remove_from_hard_reg_set.
	(post_mark_life): Use add_to_hard_reg_set.
	* mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
	(reg_becomes_live): Use add_to_hard_reg_set.
	* recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
	(peep2_find_free_register): Use add_to_hard_reg_set.
	* reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
	* regclass.c (record_reg_classes): Use in_hard_reg_set_p.
	* regrename.c (note_sets): Use add_to_hard_reg_set.
	(clear_dead_regs): Use remove_from_hard_reg_set.
	(regrename_optimize): Use add_to_hard_reg_set.
	(find_oldest_value_reg): Use in_hard_reg_set_p.
	* reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
	(hard_reg_set_here_p): Use end_hard_regno.
	(decompose): Likewise.
	(reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
	(find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
	* reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
	(mark_home_live): Use end_hard_regno.
	(spill_hard_reg): Likewise.
	(clear_reload_reg_in_use): Likewise.
	* reorg.c (delete_prior_computation): Use END_REGNO.
	* resource.c (update_live_status): Use END_HARD_REGNO.
	(mark_referenced_resources): Use add_to_hard_reg_set.
	(mark_set_resources): Likewise.
	(mark_target_live_regs): Likewise.  Use remove_from_hard_reg_set.
	* rtlanal.c (refers_to_regno_p): Use END_REGNO.
	(reg_overlap_mentioned_p): Likewise.
	(dead_or_set_p): Likewise.  Use an exclusive upper loop bound.
	(covers_regno_no_parallel_p): Use END_REGNO.
	(find_regno_note): Likewise.
	(find_reg_fusage): Use END_HARD_REGNO.
	* stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
	* var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.

2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>

	* mode-switching.c (reg_dies): Change type of second argument to
	"HARD_REG_SET *".
	(optimize_mode_switching): Update accordingly.

2007-05-22  Richard Sandiford  <richard@codesourcery.com>

	* hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
	in favor of...
	(hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
	(hard_reg_set_empty_p): ...these new functions.
	* bt-load.c (choose_btr): Use hard_reg_subset_p instead of
	GO_IF_HARD_REG_SUBSET.
	* cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
	instead of GO_IF_HARD_REG_EQUAL.
	* df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
	instead of GO_IF_HARD_REG_EQUAL.
	* global.c (find_reg): Use hard_reg_set_empty_p instead of
	GO_IF_HARD_REG_SUBSET.
	(modify_reg_pav): Use hard_reg_set_empty_p instead of
	GO_IF_HARD_REG_EQUAL.
	* local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
	of GO_IF_HARD_REG_SUBSET.
	* reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
	instead of GO_IF_HARD_REG_EQUAL.
	* regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
	hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
	(reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
	of GO_IF_HARD_REG_SUBSET,
	* reload1.c (finish_spills): Use hard_reg_subset_p instead of
	GO_IF_HARD_REG_SUBSET.
	* struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
	instead of GO_IF_HARD_REG_EQUAL.
	* config/sh/sh.c (push_regs, calc_live_regs): Use
	hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
	(hard_regs_intersect_p): Delete.

2007-05-22  Janis Johnson  <janis187@us.ibm.com>

	* doc/sourcebuild.texi (Test Directives) Add dg-message.

2007-05-22  H.J. Lu  <hongjiu.lu@intel.com>
	    Richard Henderson  <rth@redhat.com>

	* config.gcc (i[34567]86-*-*): Add smmintrin.h to
	extra_headers.
	(x86_64-*-*): Likewise.

	* config/i386/i386-modes.def (V2QI): New.

	* config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
	SSE4A.
	(override_options): Support SSE4.1.
	(IX86_BUILTIN_BLENDPD): New for SSE4.1.
	(IX86_BUILTIN_BLENDPS): Likewise.
	(IX86_BUILTIN_BLENDVPD): Likewise.
	(IX86_BUILTIN_BLENDVPS): Likewise.
	(IX86_BUILTIN_PBLENDVB128): Likewise.
	(IX86_BUILTIN_PBLENDW128): Likewise.
	(IX86_BUILTIN_DPPD): Likewise.
	(IX86_BUILTIN_DPPS): Likewise.
	(IX86_BUILTIN_INSERTPS128): Likewise.
	(IX86_BUILTIN_MOVNTDQA): Likewise.
	(IX86_BUILTIN_MPSADBW128): Likewise.
	(IX86_BUILTIN_PACKUSDW128): Likewise.
	(IX86_BUILTIN_PCMPEQQ): Likewise.
	(IX86_BUILTIN_PHMINPOSUW128): Likewise.
	(IX86_BUILTIN_PMAXSB128): Likewise.
	(IX86_BUILTIN_PMAXSD128): Likewise.
	(IX86_BUILTIN_PMAXUD128): Likewise.
	(IX86_BUILTIN_PMAXUW128): Likewise.
	(IX86_BUILTIN_PMINSB128): Likewise.
	(IX86_BUILTIN_PMINSD128): Likewise.
	(IX86_BUILTIN_PMINUD128): Likewise.
	(IX86_BUILTIN_PMINUW128): Likewise.
	(IX86_BUILTIN_PMOVSXBW128): Likewise.
	(IX86_BUILTIN_PMOVSXBD128): Likewise.
	(IX86_BUILTIN_PMOVSXBQ128): Likewise.
	(IX86_BUILTIN_PMOVSXWD128): Likewise.
	(IX86_BUILTIN_PMOVSXWQ128): Likewise.
	(IX86_BUILTIN_PMOVSXDQ128): Likewise.
	(IX86_BUILTIN_PMOVZXBW128): Likewise.
	(IX86_BUILTIN_PMOVZXBD128): Likewise.
	(IX86_BUILTIN_PMOVZXBQ128): Likewise.
	(IX86_BUILTIN_PMOVZXWD128): Likewise.
	(IX86_BUILTIN_PMOVZXWQ128): Likewise.
	(IX86_BUILTIN_PMOVZXDQ128): Likewise.
	(IX86_BUILTIN_PMULDQ128): Likewise.
	(IX86_BUILTIN_PMULLD128): Likewise.
	(IX86_BUILTIN_ROUNDPD): Likewise.
	(IX86_BUILTIN_ROUNDPS): Likewise.
	(IX86_BUILTIN_ROUNDSD): Likewise.
	(IX86_BUILTIN_ROUNDSS): Likewise.
	(IX86_BUILTIN_PTESTZ): Likewise.
	(IX86_BUILTIN_PTESTC): Likewise.
	(IX86_BUILTIN_PTESTNZC): Likewise.
	(IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
	(IX86_BUILTIN_VEC_SET_V2DI): Likewise.
	(IX86_BUILTIN_VEC_SET_V4SF): Likewise.
	(IX86_BUILTIN_VEC_SET_V4SI): Likewise.
	(IX86_BUILTIN_VEC_SET_V16QI): Likewise.
	(bdesc_ptest): New.
	(bdesc_sse_3arg): Likewise.
	(bdesc_2arg): Likewise.
	(bdesc_1arg): Likewise.
	(ix86_init_mmx_sse_builtins): Support SSE4.1.  Handle SSE builtins
	with 3 args.
	(ix86_expand_sse_4_operands_builtin): New.
	(ix86_expand_unop_builtin): Support 2 arg builtins with a constant
	smaller than 8 bits as the 2nd arg.
	(ix86_expand_sse_ptest): New.
	(ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
	(ix86_expand_vector_set): Support SSE4.1.
	(ix86_expand_vector_extract): Likewise.

	* config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
	__SSE4_1__ for -msse4.1.

	* config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
	(UNSPEC_INSERTPS): Likewise.
	(UNSPEC_DP): Likewise.
	(UNSPEC_MOVNTDQA): Likewise.
	(UNSPEC_MPSADBW): Likewise.
	(UNSPEC_PHMINPOSUW): Likewise.
	(UNSPEC_PTEST): Likewise.
	(UNSPEC_ROUNDP): Likewise.
	(UNSPEC_ROUNDS): Likewise.

	* config/i386/i386.opt (msse4.1): New for SSE4.1.

	* config/i386/predicates.md (const_pow2_1_to_2_operand): New.
	(const_pow2_1_to_32768_operand): Likewise.

	* config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
	file.

	* config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
	SSE4.1.
	(sse4_1_insertps): Likewise.
	(*sse4_1_extractps): Likewise.
	(sse4_1_ptest): Likewise.
	(sse4_1_mulv2siv2di3): Likewise.
	(*sse4_1_mulv4si3): Likewise.
	(*sse4_1_smax<mode>3): Likewise.
	(*sse4_1_umax<mode>3): Likewise.
	(*sse4_1_smin<mode>3): Likewise.
	(*sse4_1_umin<mode>3): Likewise.
	(sse4_1_eqv2di3): Likewise.
	(*sse4_1_pinsrb): Likewise.
	(*sse4_1_pinsrd): Likewise.
	(*sse4_1_pinsrq): Likewise.
	(*sse4_1_pextrb): Likewise.
	(*sse4_1_pextrb_memory): Likewise.
	(*sse4_1_pextrw_memory): Likewise.
	(*sse4_1_pextrq): Likewise.
	(sse4_1_blendpd): Likewise.
	(sse4_1_blendps): Likewise.
	(sse4_1_blendvpd): Likewise.
	(sse4_1_blendvps): Likewise.
	(sse4_1_dppd): Likewise.
	(sse4_1_dpps): Likewise.
	(sse4_1_movntdqa): Likewise.
	(sse4_1_mpsadbw): Likewise.
	(sse4_1_packusdw): Likewise.
	(sse4_1_pblendvb): Likewise.
	(sse4_1_pblendw): Likewise.
	(sse4_1_phminposuw): Likewise.
	(sse4_1_extendv8qiv8hi2): Likewise.
	(*sse4_1_extendv8qiv8hi2): Likewise.
	(sse4_1_extendv4qiv4si2): Likewise.
	(*sse4_1_extendv4qiv4si2): Likewise.
	(sse4_1_extendv2qiv2di2): Likewise.
	(*sse4_1_extendv2qiv2di2): Likewise.
	(sse4_1_extendv4hiv4si2): Likewise.
	(*sse4_1_extendv4hiv4si2): Likewise.
	(sse4_1_extendv2hiv2di2): Likewise.
	(*sse4_1_extendv2hiv2di2): Likewise.
	(sse4_1_extendv2siv2di2): Likewise.
	(*sse4_1_extendv2siv2di2): Likewise.
	(sse4_1_zero_extendv8qiv8hi2): Likewise.
	(*sse4_1_zero_extendv8qiv8hi2): Likewise.
	(sse4_1_zero_extendv4qiv4si2): Likewise.
	(*sse4_1_zero_extendv4qiv4si2): Likewise.
	(sse4_1_zero_extendv2qiv2di2): Likewise.
	(*sse4_1_zero_extendv2qiv2di2): Likewise.
	(sse4_1_zero_extendv4hiv4si2): Likewise.
	(*sse4_1_zero_extendv4hiv4si2): Likewise.
	(sse4_1_zero_extendv2hiv2di2): Likewise.
	(*sse4_1_zero_extendv2hiv2di2): Likewise.
	(sse4_1_zero_extendv2siv2di2): Likewise.
	(*sse4_1_zero_extendv2siv2di2): Likewise.
	(sse4_1_roundpd): Likewise.
	(sse4_1_roundps): Likewise.
	(sse4_1_roundsd): Likewise.
	(sse4_1_roundss): Likewise.
	(mulv4si3): Don't expand for SSE4.1.
	(smax<mode>3): Likewise.
	(umaxv4si3): Likewise.
	(uminv16qi3): Likewise.
	(umin<mode>3): Likewise.
	(umaxv8hi3): Rewrite.  Only enabled for SSE4.1.

	* doc/extend.texi: Document SSE4.1 built-in functions.

	* doc/invoke.texi: Document -msse4.1.

2007-05-22  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
	* config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
	* config/m68k/m68k.h (ASM_PCREL_SPEC): New.
	(ASM_SPEC): Add asm_pcrel_spec.
	(EXTRA_SPECS): Add asm_pcrel_spec.

2007-05-21  David Daney  <ddaney@avtrex.com>

	* doc/install.texi (Building a cross compiler): Add requirements
	for Java cross compiler.

2007-05-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/31995
	* tree-chrec.c (evolution_function_is_affine_multivariate_p):
	Add loopno argument.  Use evolution_function_is_invariant_rec_p
	instead of evolution_function_is_constant_p.
	Update calls to evolution_function_is_affine_multivariate_p.
	* tree-chrec.h (evolution_function_is_affine_multivariate_p):
	Add loopno argument.
	* tree-scalar-evolution.c (gather_chrec_stats): Call
	evolution_function_is_affine_multivariate_p with a loop
	number of 0.
	* tree-data-ref.c (analyze_miv_subscript): Likewise.
	(analyze_overlapping_iterations): Likewise.
	(access_functions_are_affine_or_constant_p): Likewise.
	(build_classic_dist_vector_1): If the access functions
	are equal, don't do anything.

2007-05-21  Paolo Bonzini  <bonzini@gnu.org>
	    Paolo Carlini  <pcarlini@suse.de>
	    Uros Bizjak  <ubizjak@gmail.com>

	* c-cppbuiltin.c (c_cpp_builtins): Define
	__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
	__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
	__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
	* doc/cpp.texi ([Standard Predefined Macros]): Document.

2007-05-21  Mike Stump  <mrs@apple.com>

	* config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
	handling as well.
	* config/darwin9.h (LINK_COMMAND_SPEC): Likewise.

2007-05-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
	implementation if __OPTIMIZE__ is not defined.
	(_mm_alignr_pi8): Ditto.
	* config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
	(_mm_inserti_si64): Ditto.
	* config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
	(_mm_slli_epi16): Ditto.
	(_mm_slli_epi32): Ditto.
	(_mm_slli_epi64): Ditto.
	(_mm_srai_epi16): Ditto.
	(_mm_srai_epi32): Ditto.
	(_mm_srli_si128): Ditto.
	(_mm_slli_si128): Ditto.
	(_mm_srli_epi16): Ditto.
	(_mm_srli_epi32): Ditto.
	(_mm_srli_epi64): Ditto.
	(_mm_extract_epi16): Ditto.
	(_mm_insert_epi16): Ditto.
	(_mm_shufflehi_epi16): Ditto.
	(_mm_shufflelo_epi16): Ditto.
	(_mm_shuffle_epi32): Ditto.
	* config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
	(_m_pextrw): Ditto.
	(_mm_insert_pi16): Ditto.
	(_m_pinsrw): Ditto.
	(_mm_shuffle_pi16): Ditto.
	(_m_pshufw): Ditto.
	(_mm_shufle_ps): Ditto.
	(_mm_prefetch): Ditto.

2007-05-21  Andreas Krebbel  <krebbel1@de.ibm.com>

	* defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
	* doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
	* real.c (encode_i370_single, decode_i370_single,
	encode_i370_double, decode_i370_double): Functions removed.
	(i370_single_format, i370_double_format): Initializations removed.
	(real_maxval, round_for_format, exact_real_truncate, significand_size):
	Consider the log2_b field to always be one.
	(ieee_single_format, mips_single_format, coldfire_single_format,
	ieee_double_format, mips_double_format,	coldfire_double_format,
	ieee_extended_motorola_format, ieee_extended_intel_96_format,
	ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
	ibm_extended_format, mips_extended_format, ieee_quad_format,
	mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
	decimal_single_format, decimal_double_format, decimal_quad_format,
	c4x_single_format, c4x_extended_format, real_internal_format): Remove
	initialization of log2_b.
	* real.h (i370_single_format, i370_double_format): Declarations
	removed.
	* c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
	field to always be one.

2007-05-21  Andreas Schwab  <schwab@suse.de>

	* config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
	NOTE_INSN_BASIC_BLOCK_P.
	(process_for_unwind_directive): Likewise.

2007-05-21  Nathan Sidwell  <nathan@codesourcery.com>

	* builtins.c (expand_builtin_setjmp_setup): Update comment.
	* function.h (struct function): Move va_list_gpr_size,
	va_list_fpr_size, function_frequency to front of bitfields.  Add
	calls_unwind_init.
	(current_function_calls_unwind_init): New.
	* except.c (expand_builtin_unwind_init): Set
	current_function_calls_unwind_init not
	current_function_has_nonlocal_label.
	* reload1.c (has_nonexceptional_receiver): New.
	(reload): Use it and current_function_calls_unwind_init to
	determine whether call-saved regs must be saved.

2007-05-20  Jan Hubicka  <jh@suse.cz>

	* gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
	NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
	* ddg.c (create_ddg): LIkewise.
	* final.c (final): Remove hunk moving line number notes around since
	they are no longer present at this stage.
	(final_scan_insn): Use NOTE_KIND instead of
	NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
	(output_asm_label): Likewise.
	* reorg.c (dbr_schedule): Likewise.
	* haifa-sched.c (unlink_other_notes): Likewise.
	* mode-switching.c (optimize_mode_switching): Likewise.
	* graph.c (start_bb): Likewise.
	* rtl.def (NOTE): Update description.
	* jump.c (squeeze_notes): Delete.
	(mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
	NOTE_INSN_BASIC_BLOCK_P when possible.
	* ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
	* dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
	NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
	(dwarf2out_var_location): Likewise.
	* cfgbuild.c (make_edges): Likewise.
	(find_basic_blocks_1): Likewise.
	* function.c (reorder_blocks_1): Likewise.
	(epilogue_done): Likewise.
	(reposition_prologue_and_epilogue_notes): Likewise.
	* print-rtl.c (print_rtx): Likewise; drop code for printing
	line number notes.
	(print_rtl): Likewise.
	(print_rtl_single): Likewise.
	* gcse.c (insert_insn_start_bb): Likewise.
	* alias.c (init_alias_analysis): Likewise.
	* calls.c (fixup_tail_calls): Likewise.
	* except.c (sjlj_emit_function_enter): Likewise.
	* emit-rtl.c (add_insn_after): Likeiwse.
	(emit_label_before): Likewise.
	(emit_label_after): Likewise.
	(emit_note_before, emit_note_after, emit_note): Update
	parameter to be enum insn_note; do not deal with source
	files.
	* cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
	Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
	when possible.
	(merge_blocks_move_successor_nojumps): Simplify now when
	we don't have BLOCK notes.
	(try_optimize_cfg): Likewise.
	* cfglayout.c (skip_insns_after_block): Likewise.
	(record_effective_endpoints): Likewise.
	(duplicate_insn_chain): Likewise.
	* varasm.c (output_constant_pool_1): Likewise.
	* sched-deps.c (sched_analyze): Likewise.
	* rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
	Exterminate.
	(note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
	* rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
	(SET_INSN_DELETED): Simplify.
	(NOTE_LINE_NUMBER): Exterminate.
	(NOTE_LINE_KIND): New.
	(NOTE_INSN_BASIC_BLOCK_P): Update.
	(enum insn_note): Simplify.
	(GET_NOTE_INSN_NAME) Simplify.
	(emit_note_before, emit_note_after, emit_note): Update prototype.
	(squeeze_notes): Remove.
	* sched-int.h (NOTE_NOT_BB_P): Update.
	* resource.c (mark_target_live_regs): Update.
	* sched-rgn.c (debug_dependencies): Update.
	* sched-vis.c (print_insn): Update.
	* config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
	* config/i386/i386.c (ix86_output_function_epilogue): Update.
	* config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
	(TARGET_ADJUST_UNROLL_MAX): Likewise.
	(split_branches): Update.
	(sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
	4.0.0.
	(sh_adjust_unroll_max): Exterminate.
	* config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
	* config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
	(m68hc11_reorg): Likewise.
	* config/ia64/ia64.c (emit_insn_group_barriers): Update.
	(emit_predicate_relation_info): Update.
	(process_for_unwind_directive): Update.
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
	(output_call): Update.
	* config/pa/pa.c (output_lbranch): Update.
	(output_millicode_call): Update.
	(output_call): Update.
	(pa_combine_instructions): Update.
	* config/mips/mips.c (mips16_gp_pseudo_reg): Update.
	* config/bfin/bfin.c (gen_one_bundle): Update.
	* cfgrtl.c (can_delete_note_p): Update.
	(delete_insn): Update.
	(rtl_merge_blocks): Update.
	(commit_one_edge_insertion): Update.
	(rtl_verify_flow_info): Update.
	* stmt.c (expand_case): Do not call squeeze_notes.

2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR middle-end/7651
	PR c++/11856
	PR c/12963
	PR c/23587
	PR other/29694
	* c.opt (Wtype-limits): New.
	* doc/invoke.texi (Wtype-limits): Document it.
	(Wextra): Enabled by -Wextra.
	* c-opts.c (c_common_post_options): Enabled by -Wextra.
	* c-common.c (shorten_compare): Warn with Wtype-limits.

2007-05-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
	inlined function, not as a macro.
	(_mm_alignr_pi8): Ditto.
	* config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
	(_mm_inserti_si64): Ditto.
	* config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
	(_mm_extract_epi16): Ditto.
	(_mm_insert_epi16): Ditto.
	(_mm_shufflehi_epi16): Ditto.
	(_mm_shufflelo_epi16): Ditto.
	(_mm_shuffle_epi32): Ditto.
	* config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
	* config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
	all functions.
	(_m_from_float): Add __extension__ to conversion.  Use 0.0f for
	float constant.
	(_m_to_float): Use C89 compatible assignment.

2007-05-20  Martin Michlmayr  <tbm@cyrius.com>

	PR target/32007
	* config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.

2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR middle-end/7651
	* doc/invoke.texi (Wreturn-type): Complete description.
	(Wextra): Delete item about return-type warning.
	* c-decl.c: Delete redundant Wextra warning.

2007-05-20  Uros Bizjak  <ubizjak@gmail.com>

	PR target/31585
	* config/i386/pmmintrin.h: Do not include xmmintrin.h
	* config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
	inlined function, not as a macro.
	(_mm_prefetch): Ditto.
	(_m_pextrw): Ditto.
	(_mm_insert_pi16): Ditto.
	(_m_pinsrw): Ditto.
	(_mm_shuffle_pi16): Ditto.  Add const to __N argument.
	(_m_pshufw): Ditto. Add const to __N argument.
	(_mm_shufle_ps): Ditto.  Add const to __mask argument.
	* config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
	(_mm_slli_epi32): Ditto.
	(_mm_srli_si128): Implement as always inlined function, not as a
	macro.  Add __inline to function declaration.
	(_mm_slli_si128): Ditto.

2007-05-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
	FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
	New constants.
	(struct fenv): New structure.
	(FP_HANDLE_EXCEPTIONS): New define.
	(FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
	(_FP_DECL_EXP): New define.
	(FP_INIT_ROUNDMODE): New define.
	(FP_ROUNDMODE): New define.

2007-05-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* doc/invoke.texi (Warning Options): Add -Wconversion-sign.
	(Wconversion): Update description.
	(Wconversion-sign): New.
	* c.opt (Wconversion-sign): New.
	* c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
	means disabled for C++. Otherwise, take the status of Wconversion.
	* c-common.c (conversion_warning): Warn with either Wconversion or
	Wconversion-sign.
	(warnings_for_convert_and_check): Conditions are already checked by
	conversion_warning.
	(convert_and_check): Don't check warnings if the conversion failed.

2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
	   Anatoly Sokolov <aesok@dol.ru>

	* config/avr/avr-protos.h (expand_prologue, expand_epilogue,
	avr_epilogue_uses) : Add declaration.
	* config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
	* config/avr/constraints.md (R): New constraint.
	config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
	UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
	(*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
	(*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
	(*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
	call_prologue_saves, epilogue_restores, return_from_epilogue,
	return_from_main_epilogue, return_from_interrupt_epilogue,
	return_from_naked_epilogue, prologue, epilogue): New patterns.
	(jump): Handle symbol reference.
	* config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
	avr_output_function_prologue, avr_output_function_epilogue): Remove
	functions.
	(avr_init_machine_status, expand_prologue, expand_epilogue,
	avr_asm_function_end_prologue, avr_epilogue_uses,
	avr_asm_function_begin_epilogue): New functions.
	(prologue_size, epilogue_size, jump_tables_size): Remove global
	variables.
	(TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
	(TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
	(TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
	(avr_override_options): Initialise init_machine_status.
	(output_movhi): Handle all stack pointer loads.
	(out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
	(avr_output_addr_vec_elt): Do not use variable jump_tables_size.
	* config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
	(EPILOGUE_USES) Redefine.
	(machine_function) Declare.

2007-05-19  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
	Use a single return statement.

2007-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR middle-end/30250
	* builtins.c (do_mpfr_lgamma_r): New.
	(fold_builtin_2): Handle builtin gamma_r/lgamma_r.
	* tree.h (CASE_FLT_FN_REENT): New.

2007-05-18  Geoffrey Keating  <geoffk@apple.com>

	* dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
	(output_die): Use 'unsigned long' with %x.
	* sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
	HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
	* tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.

	* unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.

2007-05-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/31989
	PR target/31681
	PR target/31666
	* config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
	true if function has no argument.

2007-05-18  DJ Delorie  <dj@redhat.com>

	* config/mips/mips.c (mips_offset_within_alignment_p): New.
	(mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.

2007-05-18  Uros Bizjak  <ubizjak@gmail.com>

	* longlong.h (__x86_64__): Add definitions for add_ssaaaa,
	sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
	count_trailing_zeros.
	(__i386__): Implement count_leading_zeros using __builtin_clz().
	Implement count_trailing_zeros usign __builtin_ctz().

2007-05-18  Richard Sandiford  <richard@codesourcery.com>

	* config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.

2007-05-18  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/31344
	* expr.c (emit_move_change_mode): Change mode of push operands here.

2007-05-17  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/31953
	* tree-vrp.c (set_value_range_to_value): Add equiv parameter.
	Change all callers.
	(set_value_range_to_null): Call set_value_range_to_value.
	(extract_range_from_comparison): Likewise.

2007-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* toplev.c (print_version): Output GMP/MPFR version info.

	* builtins.c (CASE_MATHFN_REENT): New macro.
	(mathfn_built_in): Use it.
	* builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
	BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
	BUILT_IN_LGAMMAL_R): New.
	* doc/extend.texi: Document new builtins.

	PR middle-end/31796
	* builtins.c (do_mpfr_remquo): New.
	(fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
	(fold_builtin_3): Handle BUILT_IN_REMQUO.

	PR middle-end/30251
	* builtins.c (fold_builtin_1): Handle y0, y1.
	(fold_builtin_2): Handle yn.

	PR middle-end/30251
	* builtins.c (do_mpfr_bessel_n): New.
	(fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
	(fold_builtin_2): Handle BUILT_IN_JN.

2007-05-17  Danny Smith  <dannysmith@users.sourceforge.net>

	PR target/31965
	* config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
	TYPE_PRECISION (intmax_type_node).

2007-05-17  Steve Ellcey  <sje@cup.hp.com>

	PR target/31850
	* reload.c (subst_reloads): Remove checking.

2007-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/31691
	* combine.c (simplify_set): Build a new src pattern instead of
	substituting its operands in the COMPARE case.

2007-05-17  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
	(execute_vrp): Preserve loops through jump threading.
	* tree-ssa-threadupdate.c (thread_single_edge,
	dbds_continue_enumeration_p, determine_bb_domination_status,
	thread_through_loop_header): New functions.
	(create_edge_and_update_destination_phis,
	create_edge_and_update_destination_phis): Set loops for the new blocks.
	(prune_undesirable_thread_requests): Removed.
	(redirect_edges): Do not pretend that redirect_edge_and_branch can
	create new blocks.
	(thread_block): Do not call prune_undesirable_thread_requests.
	Update loops.
	(mark_threaded_blocks): Select edges to thread here.
	(thread_through_all_blocks): Take may_peel_loop_headers argument.
	Thread edges through loop headers independently.
	* cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
	* tree-pass.h (TODO_mark_first_instance): New.
	(first_pass_instance): Declare.
	* cfghooks.c (duplicate_block): Put the block to the original loop
	if copy is not specified.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
	jump threading.  Pass may_peel_loop_headers to
	thread_through_all_blocks according to first_pass_instance.
	* cfgloop.h (create_preheader): Declare.
	* tree-flow.h (thread_through_all_blocks): Declaration changed.
	* basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
	* passes.c (first_pass_instance): New variable.
	(next_pass_1): Set TODO_mark_first_instance.
	(execute_todo): Set first_pass_instance.

2007-05-17  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/24659
	* optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
	OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
	OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
	OTI_vec_pack_ufix_trunc.
	(vec_unpacks_float_hi_optab): Define new macro.
	(vec_unpacks_float_lo_optab): Ditto.
	(vec_unpacku_float_hi_optab): Ditto.
	(vec_unpacku_float_lo_optab): Ditto.
	(vec_pack_sfix_trunc_optab): Ditto.
	(vec_pack_ufix_trunc_optab): Ditto.
	* genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
	and vec_pack_[s|u]fix_trunc_optab using
	vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
	* tree-vectorizer.c (supportable_widening_operation): Handle
	FLOAT_EXPR and CONVERT_EXPR.  Update comment.
	(supportable_narrowing_operation): New function.
	* tree-vectorizer.h (supportable_narrowing_operation): Prototype.
	* tree-vect-transform.c (vectorizable_conversion): Handle
	(nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
	(vect_gen_widened_results_half): Move before vectorizable_conversion.
	(vectorizable_type_demotion): Call supportable_narrowing_operation()
	to check for target support.
	* optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
	for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
	for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
	for VEC_PACK_FIX_TRUNC_EXPR.
	(expand_binop): Special case mode of the result for
	vec_pack_[u|s]fix_trunc_optab.
	(init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
	vec_pack_[u|s]fix_trunc_optab.

	* tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
	VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
	* tree-pretty-print.c (dump_generic_node): Handle
	VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
	VEC_PACK_FIX_TRUNC_EXPR.
	(op_prio): Ditto.
	* expr.c (expand_expr_real_1): Ditto.
	* tree-inline.c (estimate_num_insns_1): Ditto.
	* tree-vect-generic.c (expand_vector_operations_1): Ditto.

	* config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
	(vec_unpacks_float_lo_v8hi): Ditto.
	(vec_unpacku_float_hi_v8hi): Ditto.
	(vec_unpacku_float_lo_v8hi): Ditto.
	(vec_unpacks_float_hi_v4si): Ditto.
	(vec_unpacks_float_lo_v4si): Ditto.
	(vec_pack_sfix_trunc_v2df): Ditto.

	* doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
	Document.
	[VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
	[VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
	* doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
	[vec_pack_ufix_trunc]: Ditto.
	[vec_unpacks_float_hi]: Ditto.
	[vec_unpacks_float_lo]: Ditto.
	[vec_unpacku_float_hi]: Ditto.
	[vec_unpacku_float_lo]: Ditto.

2007-05-16  Uros Bizjak  <ubizjak@gmail.com>

	* soft-fp/README: Update for new files.
	* soft-fp/floattisf.c: New file.
	* soft-fp/floattidf.c: New file.
	* soft-fp/floattitf.c: New file.
	* soft-fp/floatuntisf.c: New file.
	* soft-fp/floatuntidf.c: New file.
	* soft-fp/floatuntitf.c: New file.
	* soft-fp/fixsfti.c: New file.
	* soft-fp/fixdfti.c: New file.
	* soft-fp/fixtfti.c: New file.
	* soft-fp/fixunssfti.c: New file.
	* soft-fp/fixunsdfti.c: New file.
	* soft-fp/fixunstfti.c: New file.
	* soft-fp/extendxftf.c: New file.
	* soft-fp/trunctfxf.c: New file.

	* libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
	(__trunctfxf2): Ditto.

	* config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
	__extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
	__fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
	__floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
	__letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
	__unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.

	* config/i386/t-fprules-softfp64: New file.
	* config/i386/sfp-machine.h: New file.
	* config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
	x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
	and soft-fp/t-softfp to tmake_file.
	(i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
	i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.

	* config/i386/t-linux64 (softfp_wrap_start): New.
	(softfp_wrap_end): New.
	* config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
	supported for TARGET_64BIT.

2007-05-16  Rafael Ávila de Espíndola  <espindola@google.com>

	* c-common.c (c_common_signed_or_unsigned_type): Emulate
	c_common_unsigned_type behavior.

2007-05-16  Paolo Bonzini  <bonzini@gnu.org>

	* config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
	calls as pure.

2007-05-16  Eric Christopher  <echristo@apple.com>

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
	saving after stack push. Set sp_offset whenever we push.
	(rs6000_emit_epilogue): Move altivec register restore before
	stack push.

2007-05-16  Richard Sandiford  <richard@codesourcery.com>

	* configure.ac: Allow sysroots to be relocated under $prefix as
	well as $exec_prefix.
	* configure: Regenerate.

2007-05-16  Richard Sandiford  <richard@codesourcery.com>

	Revert:

	2007-05-12  Richard Sandiford  <richard@codesourcery.com>

	* configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
	(gcc_tooldir): Likewise.
	* configure: Regenerate.
	* Makefile.in (libsubdir_to_prefix): New variable, based on the
	old configure.ac gcc_tooldir setting.
	(prefix_to_exec_prefix): New variable.
	(DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
	rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.

2007-05-14  Janis Johnson  <janis187@us.ibm.com>

	* c-typeck.c (build_binary_op): Return early for error.

2007-05-15  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
	struct nb_iter_bound.
	(free_numbers_of_iterations_estimates_loop): Use ggc_free.
	* gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
	* cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
	* tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
	(struct scev_info_str, scalar_evolution_info): Add GTY markers.
	(new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
	(del_scev_info): Use ggc_free.
	(scev_initialize): Allocate scalar_evolution_info in gc memory.
	* loop-init.c: Include ggc.h.
	(loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
	(loop_optimizer_finalize): Use ggc_free.
	* tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
	pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
	pass_iv_optimize): Add TODO_ggc_collect.
	* function.h (struct function): Remove skip marker from
	x_current_loops.
	* cfgloop.c: Include ggc.h.
	(flow_loops_free, flow_loop_free): Free the loop descriptions in gc
	memory.
	(establish_preds): Vector superloops is gc allocated.
	(alloc_loop): Allocate loop using GGC_CNEW.  Allocate head of
	loop->exits list.
	(flow_loops_find): Vector larray is gc allocated.
	(loop_exit_free): Use ggc_free.
	(rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit.  Reflect
	that head of exits list is now not a part of struct loop.
	(record_loop_exits): Allocate exits table in gc memory.
	(get_loop_exit_edges, verify_loop_structure, single_exit): Reflect
	that head of exits list is now not a part of struct loop.
	* cfgloop.h (struct lpt_decision, struct nb_iter_bound,
	struct loop_exit): Add GTY marker.
	(struct loop): Add GTY marker.  Make superloops vector gc allocated.
	Add skip marker to aux field.  Make head of exits list a separate
	object.
	(struct loops): Add GTY marker.  Make larray vector gc allocated.
	Add param marker to exits table.
	(get_loops): Type changed.
	* Makefile.in (tree-scalar-evolution.o): Add
	gt-tree-scalar-evolution.h dependency.
	(cfgloop.o, loop-init.o): Add ggc.h dependency.
	(GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
	* basic-block.h (struct basic_block_def): Remove skip marker from
	loop_father field.

2007-05-14  Uros Bizjak  <ubizjak@gmail.com>

	* builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
	of 0 in the call to expand_expr().
	(expand_builtin_mathfn_3): Ditto.
	(expand_builtin_interclass_mathfn): Ditto.
	(expand_builtin_cexpi): Ditto.
	(expand_builtin_int_roundingfn): Ditto.
	(expand_builtin_int_roundingfn_2): Ditto.
	(expand_builtin_pow): Ditto.
	(expand_builtin_powi): Ditto.
	(expand_builtin_bswap): Ditto.
	(expand_builtin_unop): Ditto.
	(expand_builtin_fabs): Ditto.
	(get_builtin_sync_mem): Use NULL_RTX instead of NULL in
	the call to expand_expr().
	(expand_builtin_sync_operation): Ditto.
	(expand_builtin_compare_and_swap): Ditto.
	(expand_builtin_lock_test_and_set): Ditto.
	* except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
	instead of 0 in the call to expand_expr().
	(expand_builtin_extract_return_addr): Ditto.
	(expand_builtin_eh_return): Ditto.
	(expand_eh_return): Ditto.
	* explow.c (expr_size): Ditto.
	* expr.c (optimize_bitfield_assignment_op): Ditto.
	(expand_assignement): Ditto.
	(store_expr): Ditto.
	(store_field): Ditto.
	(expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
	the call to expand_expr().
	(expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
	in the call to expand_expr().
	[CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
	BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
	[VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
	of expand_expr().
	* optabs.c (expand_vec_shift_expr): Ditto.
	(expand_vec_cond_expr): Ditto.
	(vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
	call to expand_expr().
	* stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
	in the call to expand_expr().

2007-05-14  Dave Korn  <dave.korn@artimi.com>

	* genautomata.c (gen_regexp_el): Allocate correct size for regexp.

2007-05-14  Rafael Ávila de Espíndola  <espindola@google.com>

	* c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
	instead of c_common_unsigned_type.
	(c_common_unsigned_type): Remove.
	(shorten_compare): Use c_common_signed_or_unsigned_type instead of
	c_common_unsigned_type.
	(c_common_nodes_and_builtins): Use unsigned_type_for instead of
	c_common_unsigned_type.
	* c-common.h (c_common_unsigned_type): Remove.
	* c-decl.c (grokdeclarator): Use unsigned_type_for instead of
	c_common_unsigned_type.
	* c-format.c (check_format_types): Use unsigned_type_for instead of
	c_common_unsigned_type.
	* c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
	* c-typeck.c (convert_for_assignment): Use unsigned_type_for instead
	of c_common_unsigned_type.
	* convert.c (convert_to_integer): Use unsigned_type_for instead of
	lang_hooks.types.unsigned_type.
	* expmed.c (make_tree): Use unsigned_type_for instead of
	lang_hooks.types.unsigned_type.
	* fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
	lang_hooks.types.unsigned_type.
	(build_range_check): Likewise.
	(fold_unary): Likewise.
	(fold_binary): Likewise.
	(fold_ternary): Likewise.
	* langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
	* langhooks.h (lang_hooks_for_types): Remove unsigned_type.
	* tree.c (get_unsigned_type): New.
	(unsigned_type_for): Use get_unsigned_type instead of
	lang_hooks.types.unsigned_type.

2007-05-14  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
	to m68k_get_function_kind.  Update its prototype.
	* config/m68k/m68k.c (m68k_attribute_table): Add an entry for
	interrupt_thread.
	(m68k_interrupt_function_p): Return enum m68k_function_type
	instead of bool.  Rename to m68k_get_function_kind.
	(m68k_handle_fndecl_attribute): Reject interrupt_thread if the
	target is not fido.
	(m68k_compute_frame_layout): Don't mark any register for save
	if an interrupt_thread attribute is specified.
	(m68k_hard_regno_rename_ok): Update a use of
	m68k_interrupt_function_p.
	* config/m68k/m68k.h (EPILOGUE_USES): Update a use of
	m68k_interrupt_function_p.
	(m68k_function_type): New.
	* config/m68k/m68k.md (*return): Output a 'sleep' instruction
	for a function with an interrupt_thread attribute.
	* doc/extend.texi: Document the interrupt_thread attribute.

2007-05-13  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/31911
	* tree-ssa-pre.c (phi_translate): Make sure to cache results even
	if they didn't change the expression.

2007-05-13  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-scalar-evolution.c (resolve_mixers): Exported.
	* tree-scalar-evolution.h (resolve_mixers): Declare.
	* tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
	ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
	record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
	base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
	init_array_ref, init_pointer_ref, analyze_indirect_ref,
	strip_conversion, analyze_offset_expr, address_analysis,
	object_analysis, analyze_offset): Removed.
	(dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
	split_constant_offset, canonicalize_base_object_address,
	object_address_invariant_in_loop_p, disjoint_objects_p,
	dr_may_alias_p, dr_address_invariant_p): New functions.
	(create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
	and dr_analyze_alias.
	(initialize_data_dependence_relation): Use dr_may_alias_p
	and object_address_invariant_in_loop_p.
	(compute_self_dependence): Handle the case when
	DDR_ARE_DEPENDENT (ddr) is chrec_dont_know.
	(find_data_references_in_stmt): Restrict the analysis of data
	references to the given loop nest.
	(find_data_references_in_loop): Made static.  Pass loop nest to
	find_data_references_in_stmt.
	(compute_data_dependences_for_loop): Use DR_VOPS.
	(free_data_ref): Free DR_VOPS.
	* tree-data-ref.h (struct first_location_in_loop): Replaced by ...
	(struct innermost_loop_behavior): ... new.
	(struct base_object_info): Replaced by ...
	(struct indices): ... new.
	(struct dr_alias): New.
	(enum data_ref_type): Removed.
	(struct data_reference): Consist of struct innermost_loop_behavior,
	struct indices and struct dr_alias.
	(DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
	(DR_MEMTAG): Renamed to ...
	(DR_SYMBOL_TAG): ... this.
	(find_data_references_in_loop): Declaration removed.
	* tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
	instead of DR_OFFSET_MISALIGNMENT.  DR_ALIGNED_TO is never NULL.
	(vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
	* tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.

2007-05-13  Revital Eres  <eres@il.ibm.com>

	* tree-ssa-dse.c (get_use_of_stmt_lhs): New function
	which walks virtual def-use chains to find redundant stores.
	(dse_optimize_stmt): Call it.

2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>

	* gcse.c (gcse_main): Do jump bypassing in CPROP2.
	* passes.c (init_optimization_passes): Move pass_jump_bypass
	after loop2.

	* basic-block.h (bb_has_eh_pred): Fix style issue.

2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/31848
	* loop-invariant.c (move_invariant_reg): If we move an insn
	with a REG_EQUAL note, and that insn is not always executed,
	remove the REG_EQUAL note.

2007-05-12  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/31797
	* tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
	propagate into a stmt that has volatile ops.

2007-05-12  Richard Sandiford  <richard@codesourcery.com>

	* configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
	(gcc_tooldir): Likewise.
	* configure: Regenerate.
	* Makefile.in (libsubdir_to_prefix): New variable, based on the
	old configure.ac gcc_tooldir setting.
	(prefix_to_exec_prefix): New variable.
	(DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
	rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.

2007-05-11  Silvius Rus  <rus@google.com>

	* Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
	* c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
	* c-common.h (strict_aliasing_warning): Change return type.
	* c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
	* c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
	(build_c_cast): Condition call to strict_aliasing_warning.
	* doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
	* flags.h (set_Wstrict_aliasing): Declare.
	* opts.c (set_Wstrict_alising): Define, add call to.
	* tree-flow.h (strict_aliasing_warning_backend): Declare.
	* tree-ssa-alias-warnings.c: New file.
	* tree-ssa-alias.c (compute_may_aliases): Add call to
	strict_aliasing_warning_backend.

2007-05-11  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
	Use loop_depth and loop_outer accessor functions.
	* tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
	determine_invariantness_stmt, move_computations_stmt): Ditto.
	* cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
	add_loop, loopify, unloop, fix_loop_structure): Ditto.
	* tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
	* tree-scalar-evolution.c (interpret_loop_phi,
	compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
	instantiate_parameters_1, scev_const_prop): Ditto.
	* cfghooks.c (make_forwarder_block): Ditto.
	* cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
	* modulo-sched.c (loop_canon_p): Ditto.
	* tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
	slpeel_can_duplicate_loop_p): Ditto.
	* lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
	* tree-cfg.c (tree_duplicate_sese_region): Ditto.
	* cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
	cancel_loop, verify_loop_structure): Ditto.
	(flow_loop_nested_p, superloop_at_depth, flow_loop_free,
	add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
	superloops vector instead of "pred" array.
	(establish_preds): Take father loop as an argument.  Initialize the
	superloops vector.
	(flow_loop_tree_node_add): Pass father loop to establish_preds.
	Do not initialize loop->outer.
	(flow_loop_tree_node_remove): Truncate the superloops vector.
	* cfgloop.h (struct loop): Removed field "outer", fields "depth" and
	"pred" merged to "superloops" vector.
	(loop_depth, loop_outer): New.
	(fel_init): Use loop_outer.

2007-05-11  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c: Include gt-cgraphunit.h
	(static_ctors, static_dtors): New static vars.
	(record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
	based on implementation in c-common.c
	(cgraph_finalize_function): Call record_cdtor_fn.
	(cgraph_optimize): Call cgraph_build_cdtor_fns.
	* decl.c (finish_function): Do not call c_record_cdtor_fn.
	(c_write_global_declarations): Do not call c_build_cdtor_fns.
	* c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
	build_cdtor, c_build_cdtor_fns): Remove.
	* c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
	c_build_cdtor_fns): Remove prototype.

2007-05-11  Paolo Carlini  <pcarlini@suse.de>

	PR other/31852
	* builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
	* builtins.def: Add BUILT_IN_MEMCHR, use the latter.
	* builtins.c (fold_builtin_memchr): New.
	(expand_builtin_memchr): Call the latter.
	(expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
	* doc/extend.texi ([Other built-in functions provided by GCC]):
	Document memchr.

2007-05-11  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
	PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
	PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
	PFPO_OP1_TYPE_SHIFT): Constants added.
	(DFP_ALL): Mode macro defined.
	("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
	"*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
	Insn definitions added.
	("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
	"extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
	Expanders added.

2007-05-10  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/31885
	* tree-chrec.c (chrec_contains_undetermined): Do not consider
	NULL_TREE to be undetermined.
	(automatically_generated_chrec_p): Return false for NULL.

2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.h (MOVE_RATIO): Define.

2007-05-10  Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (sparc-wrs-vxworks): New target.
	* config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
	* config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
	* config/sparc/sparc.h: Include vxworks-dummy.h.
	(PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
	include LABEL_REFs too.
	* config/sparc/sparc.c (sparc_expand_move): Don't assume that
	_GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
	VxWorks.
	(legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
	on VxWorks.
	(load_pic_register): Use gen_vxworks_load_got for VxWorks.
	(sparc_emit_call_insn): New function.
	(sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
	functions when generating VxWorks PIC.
	* config/sparc/sparc.md (vxworks_load_got): New pattern.
	(call, call_value): Use sparc_emit_call_insn instead of
	emit_call_insn.

2007-05-09  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.

2007-05-09  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
	for floating-point values if HOST_BITS_PER_LONG > 32.  Use
	split_double instead of operand_subword.

2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
	* config/bfin/bfin.c (bfin_local_alignment): New function.
	* config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.

2007-05-08  Chao-ying Fu  <fu@mips.com>

	* doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
	* optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
	(smsub_widen_optab, umsub_widen_optab): Define.
	* optabs.c (init_optabs): Initialize smsub_widen_optab and
	umsub_widen_optab.
	* genopinit.c (optabs): Fill in smsub_widen_optab and
	umsub_widen_optab.
	* expr.c (expand_expr_real_1): Try to use smsub_widen_optab
	and umsub_widen_optab to implement multiply-subtract sequences.
	* config/mips/mips.md (*msac<u>_di): Rename to...
	(<u>msubsidi4): ...this.  Extend condition to include
	GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
	of operand 0 to "ka" and use the three-operand form of msub<u>
	for TARGET_DSPR2.
	* config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
	to define_expands.

2007-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR rtl-optimization/28011
	* reload.c (push_reload): Set dont_share if IN appears in OUT
	also when IN is a PLUS rtx.
	(reg_overlap_mentioned_for_reload_p): Return true if X and IN
	are same PLUS rtx.

2007-05-08  Kazu Hirata  <kazu@codesourcery.com>

	* emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL.  Don't
	call unshare_all_decls.
	(unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
	(unshare_all_decls): Remove.

2007-05-08  Simon Martin  <simartin@users.sourceforge.net>

	PR 31847
	* tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
	dumps.

2007-05-08  Sandra Loosemore  <sandra@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>

	* config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
	Update comments and all uses.
	(MIN_FPRS_PER_FMT): Define.
	* config/mips/mips.c (function_arg): Fix to correctly handle
	the -mips32r2 -mfp64 -mabi=32 case.
	(override_options): Enable use of odd-numbered registers for
	SFmode values on MIPS32.
	(mips_save_reg_p): Save whole floating-point register pair if
	either half is used.
	(compute_frame_size): Fix comment.

2007-05-08  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
	argument of type bool.
	* config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
	argument. Safely select temporary P register according to it.
	(do_link): Change call site of add_to_reg accordingly.
	(do_unlink): Add epilogue_p as a fourth argument and pass it
	to add_to_reg.
	(expand_interrupt_handler_epilogue): Change call of do_unlink
	accordingly.
	(bfin_expand_prologue): Add a third argument sibcall_p.
	* config/bfin/bfin.md (epilogue): Change call of
	bfin_expand_epilogue accordingly.
	(sibcall_epilogue): Likewise.
	(eh_return_internal): Likewise.

	* config/bfin/bfin-protos.h (enum bfin_cpu): Add
	BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
	* config/bfin/bfin.c (bfin_handle_option): Handle
	-mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
	* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
	Support bf534, bf536 and bf561.
	* doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.

2007-05-08  Uros Bizjak  <ubizjak@gmail.com>

	PR target/31854
	* config/i386/i386.c (ix86_function_regparm): Process local
	functions only when TREE_CODE (decl) equals FUNCTION_DECL.

2007-05-07  Mike Stump  <mrs@apple.com>

	* doc/invoke.texi (Warning Options): Document that -Wempty-body
	also checks for and while statements in C++.

2007-05-07  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc.c (at_file_supplied): New variable.
	(main): Set it if we expanded argv.
	(do_spec_1): Pass an @-file to the linker if we were called with
	an @-file argument and HAVE_GNU_LD.
	* collect2.c (at_file_supplied): New variable.
	(response_file): New variable.
	(collect_exit): Unlink response_file if necessary.
	(handler): Likewise.
	(do_wait): Likewise.
	(main): Set at_file_supplied if we expanded argv.
	(collect_execute): Pass an @-file to subprocesses if we were called
	with an @-file argument.
	* configure.ac: Add define for HAVE_GNU_LD.
	* configure: Regenerate.
	* config.in: Regenerate.

2007-05-07  Naveen.H.S  <naveen.hs@kpitcummins.com>

	* config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
	operand to HI mode.
	(mulsi3): New.
	(divsi3): New.
	(udivsi3): New.

2007-05-07  Jayant Sonar  <jayants@kpitcummins.com>

	* config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
	(TARGET_ENCODE_SECTION_INFO): Re-define.
	(m32c_encode_section_info): New
	(function_vector_handler): New
	(current_function_special_page_vector): New
	(m32c_special_page_vector_p): New.
	* config/m32c/m32c-protos.h (m32c_special_page_vector_p):
	Prototype.
	* config/m32c/jump.md: Added instruction JSRS for functions
	with attribute "function_vector".
	* doc/extend.texi (function_vector): Added description
	for M16C, M32C targets.

2007-05-07  DJ Delorie  <dj@redhat.com>

	PR 31794
	* config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
	ashrpsi3, lshrpsi3): Update shift count constraint.

2007-05-07  Danny Smith  <dannysmith@users.sourceforge.net>
	    Nathan Froyd  <froydnj@codesourcery.com>

	PR 22133
	* c-incpath.c (add_path): Strip trailing path separators.

2007-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
	Free dominance info before purging EH edges.
	(eliminate_degenerate_phis): Likewise.
	(propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.

2007-05-07  Jan Hubicka  <jh@suse.cz>

	* gimplify.c (gimplify_expr): Do not crash when folding
	(void *)(int)&a + 4.

2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR driver/31694
	* c-opts.c (lang_fortran): Make it non static.
	* c-common.h (lang_fortran): New prototype.
	* c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
	-lang-fortran option was passed by the driver.

2007-05-06  Eric Botcazou  <ebotcazou@adacore.com>

	* timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
	of ASSERT_CHECKING.  Tweak message.

2007-05-06  Revital Eres  <eres@il.ibm.com>

	PR 30957
	* loop-unroll.c (insert_var_expansion_initialization):
	Initialize the expansions with -zero instead of +zero.

2007-05-05  Aurelien Jarno  <aurelien@aurel32.net>

	* config/pa/pa.md: Split tgd_load, tld_load and tie_load
	into pic and non-pic versions. Mark r19 as used for
	tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
	for tgd_load, tld_load and tie_load .
	* config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
	version of tgd_load, tld_load and tie_load depending on the
	value of flag_pic.

2007-05-04  Ulrich Drepper  <drepper@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
	(__do_global_dtors_aux): Use more paranoid loop to run
	destructors if HIDDEN_DTOR_LIST_END.
	(__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.

2007-05-04  Jakub Jelinek  <jakub@redhat.com>

	* varasm.c (align_variable): Don't increase alignment for
	DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
	DATA_ALIGNMENT or CONSTANT_ALIGNMENT.

2007-05-04  Josh Conner  <jconner@apple.com>

	* basic-block.h (cdi_direction): Assign values to all enumeration
	constants.
	(dom_computed): Remove.
	(dom_info_state): New.
	(set_dom_info_availability): New.
	* tree-ssa-loop-im.c (determine_invariantness): Initialize
	walk_data.dom_direction.
	* cfghooks.c (delete_basic_block): Use dom_info_available_p()
	instead of dom_computed[].
	(split_edge): Likewise.
	(create_basic_block): Likewise.
	(merge_blocks): Likewise.
	* ifcvt.c (find_if_header): Likewise.
	* tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
	* tree-ssa-dce.c (remove_dead_stmt): Likewise.
	* tree-ssa.c (verify_ssa): Likewise.
	* tree-cfg.c (tree_verify_flow_info): Likewise.
	(remove_edge_and_dominated_blocks): Likewise.
	* dominance.c (dom_computed): Make static.
	(calc_dfs_tree_nonrec): Change third param to a bool.
	(calc_dfs_tree): Change second param to a bool.
	(calc_idioms): Change second param to a bool.  Use
	dom_convert_dir_to_idx.
	(init_dom_info): Validate dir before using.
	(dom_convert_dir_to_idx): New.
	(calculate_dominance_info): Use dom_convert_dir_to_idx.  New
	variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
	(free_dominance_info): Use dom_convert_dir_to_idx.
	(get_immediate_dominator): Likewise.
	(set_immediate_dominator): Likewise.
	(get_dominated_by): Likewise.
	(redirect_immediate_dominators): Likewise.
	(nearest_common_denominator): Likewise.
	(dominated_by_p): Likewise.
	(bb_dom_dfs_in): Likewise.
	(bb_dom_dfs_out): Likewise.
	(recount_dominator): Likewise.
	(iterate_fix_dominators): Likewise.
	(add_to_dominance_info): Likewise.
	(delete_from_dominance_info): Likewise.
	(first_dom_son): Likewise.
	(next_dom_son): Likewise.
	(dom_info_available_p): Likewise.
	(dom_info_state): New.
	(set_dom_info_availability): New.

2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
	Expander removed.
	("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.

2007-05-04  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
	(subdi3, subdi_carry): Delete.

2007-05-04  Jan Hubicka  <jh@suse.cz>
	    Richard Guenther  <rguenther@suse.de>

	* opts.c (decode_options): Do not fiddle with inlining
	parameters in case of optimizing for size.
	* ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
	for size do nothing.
	(cgraph_decide_inlining_of_small_function): When optimizing for
	size never inline functions increasing caller size.
	(cgraph_early_inlining): Inline for size when optimizing for size.

2007-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
	logical operations piecewise.
	(<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
	zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
	subdi_sesidi_di): Delete.
	(add_with_carry): Produce carry in CC instead of a DREG to shorten
	the generated sequence.  Allow three-reg add in constraints.  Rewrite
	the rtl expression for carry to avoid zero_extend of a constant.
	(sub_with_carry): New pattern.
	(adddi3, subdi3): Change into define_expand.  For subtract, generate a
	different sequence not involving jumps.
	(notbi): Now a named pattern.

2007-05-04  Bradley Lucier  <lucier@math.purdue.edu>

	* doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
	Add the note about a significant loss of accuracy of some
	mathematical routines when these options are used.

2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	* haifa-sched.c (rtx_vec_t): New typedef.
	(contributes_to_priority_p): Extract piece of priority () into new
	static function.
	(priority): Use the function.  Add assertion.
	(rank_for_schedule, set_priorities): Add assertion to check that
	insn's priority is initialized.
	(clear_priorities, calc_priorities): Change signature.  Make it update
	all relevant insns.  Update all callers ('add_to_speculative_block ()'
	and 'create_block_check_twin ()').
	* sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
	Add new field 'priority_status'.
	(INSN_PRIORITY_STATUS): New macro.
	(INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.

2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	* sched-ebb.c (debug_ebb_dependencies): New static function.
	(init_ready_list): Use it.

	* sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
	with changed signature and 'debug_rgn_dependencies ()'.
	(debug_rgn_dependencies): New static function.
	(init_ready_list): Use it.

	* sched-int.h (debug_dependencies): Declare.

2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>

	* libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.

2007-05-04  Dirk Mueller  <dmueller@suse.de>

	* c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.

2007-05-03  Jan Hubicka  <jh@suse.cz>

	* fold-const.c (fold_unary): Convert (T1)(X op Y) into
	((T1)X op (T1)Y), for pointer type in more cases than before.

	* gimplify.c (gimplify_expr): Fold (void *)&a + 4.

	* tree-object-size.c (plus_expr_object_size): When operand size is
	unknown, return unknown.

2007-05-03  Dirk Mueller  <dmueller@suse.de>

	* doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.

	* config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
	options.

	* config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.

2007-05-03  Janis Johnson  <janis187@us.ibm.com>

	* doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.

2007-05-03  Joseph Myers  <joseph@codesourcery.com>

	* config/soft-fp/double.h, config/soft-fp/extended.h,
	config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
	config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
	config/soft-fp/op-2.h, config/soft-fp/op-4.h,
	config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
	glibc CVS.

2007-05-03  Ian Lance Taylor  <iant@google.com>

	* config/rs6000/rs6000.c (rs6000_override_options): Don't set
	MASK_PPC_GFXOPT for 8540 or 8548.

2007-05-03  Uros Bizjak  <ubizjak@gmail.com>

	* tree-vect-transform.c (vect_update_inits_of_drs): Use
	vect_print_dump_info() to output debug information.

2007-05-03  Uros Bizjak  <ubizjak@gmail.com>

	PR target/31768
	* config/i386/i386.c (print_operand) ['z']: Output 'w' for
	operands of size 2 when operand is not MEM_P.

2007-05-03  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/30565
	* lambda-code.c (perfect_nestify): Fix updating of dominators.

2007-05-03  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
	(umulsi3_highpart): Use them.
	* config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
	for final accumulator to D regisster tranfser.

2007-05-03  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/31699
	* tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove
	wrong code.
	(vect_enhance_data_refs_alignment): Compute peel amount using
	TYPE_VECTOR_SUBPARTS instead of vf.
	* tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.

2007-05-02  Brooks Moses  <brooks.moses@codesourcery.com>

	PR bootstrap/31776
	* system.h: Remove inclusion of double-int.h
	* tree.h: Include double-int.h
	* gengtype.c: Likewise
	* cfgloop.h: Likewise
	* Makefile.in: Adjust dependencies on double-int.h

2007-05-02  Eric Christopher  <echristo@apple.com>

	* config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
	-shared to -Zdynamiclib.

2007-05-02  Seongbae Park  <seongbae.park@gmail.com>

	PR c++/31663
	* c-common.c (strip_pointer_or_array_types): New function.
	* c-common.h (strip_pointer_or_array_types): New function declaration.

2007-05-03  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/31771
	* tree-cfg.c (move_block_to_fn): Assign bb to the correct index.

2007-05-02  Paul Brook  <paul@codesourcery.com>

	* config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.

2007-05-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/29715
	* fold-const.c (fold_comparision): Remove the "foo++ == CONST"
	transformation.

2007-05-02  Nick Clifton  <nickc@redhat.com>

	* config/frv/predicates.md (symbolic_operand): Accept CONSTs.

2007-05-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/31146
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
	argument, single_use_p.  If we have a single use that is
	a conversion to the definition rhs type, propagate that rhs.
	(forward_propagate_addr_expr): Pass single_use_p argument
	to forward_propagate_addr_expr_1.

2007-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_sse_comi): Remove unused
	variable.

2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>

	* doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
	'AMD Family 10 core'.

2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>

	* config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
	and athlon64-sse3 as improved versions of k8, opteron and athlon64
	with SSE3 instruction set support.
	* doc/invoke.texi: Likewise.

2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>

	* config/i386/i386.c (override_options): Tuning 32-byte loop
	alignment for amdfam10 architecture. Increasing the max loop
	alignment to 24 bytes.

2007-05-01  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/constraints.md: New.
	* config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
	CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
	EXTRA_CONSTRAINT): Remove.
	* config/m68k/m68k.md: Include constraints.md.
	* expr.c (expand_expr_real_1): Copy DECL_RTL before using it.

2007-05-01  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/31739
	* tree-vrp.c (vrp_val_is_max): New static function.
	(vrp_val_is_min): New static function.
	(set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
	copying the node.
	(set_value_range): Use vrp_val_is_{max,min}.
	(extract_range_from_assert): Likewise.
	(extract_range_from_binary_expr): Likewise.
	(extract_range_from_unary_expr): Likewise.
	(dump_value_range, vrp_meet): Likewise.
	(vrp_visit_phi_node): Likewise.
	* tree.c (build_distinct_type_copy): Revert change of 2007-04-27.

2007-05-01  Mark Mitchell  <mark@codesourcery.com>

	* config/i386/gmon-sol2.c (size_t): New type.
	(intptr_t): Likewise.
	(s_textsize): Declare as size_t.
	(sbrk): Declare.
	(monstartup): Use size_t for sizes.
	(_mcount): Save and restore registers.
	(internal_mcount): Pass 0 as the first argument to monstartup
	in 64-bit mode.
	(moncontrol): Convert pointer to appropriately sized integer
	before passing to profil.

2007-05-01  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
	__NO_FPRS__, not just if _SOFT_DOUBLE.
	* config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
	* config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
	also for E500 double.
	* config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
	suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
	&& !TARGET_FPRS).

2007-05-01  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt
	is NULL.

2007-05-01  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.

2007-05-01  Jan Hubicka  <jh@suse.cz>

	* tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is
	invariant.

2007-05-01  Jan Hubicka  <jh@suse.cz>

	* tree.h (maybe_fold_offset_to_component_ref): Remove.
	(maybe_fold_offset_to_reference): Declare.
	* fold-const.c (fold_unary): Do not fold
	(type *)&A into &A->field_of_type_and_offset_0
	* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
	size is unknown, give up.
	(maybe_fold_offset_to_component_ref): Ignore firelds with unknown
	offsets.
	(maybe_fold_offset_to_reference): New.
	(maybe_fold_stmt_indirect): Use it.
	(fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
	* gimplify.c (gimplify_conversion): Canonicalize conversions to
	field references.
	(gimplify_expr): Likewise for plus_expr.

2007-05-01  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
	bsi_after_labels.  Always insert statements before bsi.
	* tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
	* predict.c (apply_return_prediction): Check for empty blocks.
	* cfgexpand.c (lab_rtx_for_bb): New variable.
	(label_rtx_for_bb): Do not create new tree labels.
	(expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
	(tree_expand_cfg): Initialize lab_rtx_for_bb.
	* tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
	creating edges.
	(label_for_bb): Add field used.
	(update_eh_label, main_block_label): Mark the label used.
	(cleanup_dead_labels): Remove unused labels.

2007-05-01  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (set_value_range): Do not allocate equiv bitmap
	if it is not about to be set.
	(get_value_range): Do not pre-allocate equiv bitmap.
	(update_value_range): No need to clear equiv field.
	(add_equivalence): Change prototype to get bitmap pointer.
	Allocate bitmap here if it is not already.
	(extract_range_from_assert): Do not allocate bitmap here.
	Update callers to add_equivalence.
	(extract_range_from_ssa_name): Likewise.
	(get_vr_for_comparison): New static helper.
	(compare_name_with_value): Handle NULL equiv bitmap by
	peeling the first iteration of the comparison loop.
	Use get_vr_for_comparison.
	(compare_names): Handle NULL equiv bitmaps by using fake
	ones.  Use get_vr_for_comparison.

2007-04-30  Brooks Moses  <brooks.moses@codesourcery.com>

	* double-int.c (mpz_set_double_int): Moved from
	tree-ssa-loop-niter.c.
	(mpz_get_double_int): Likewise; also, add option to wrap
	out-of-range integers.
	* double-int.h: New prototypes for above.
	* tree.c (get_static_type_bounds): Moved from
	tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
	TYPE_MAX_VALUE if they exist..
	* tree.h: New prototype for above.
	* tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
	get_type_bounds calls.
	(mpz_set_double_int): Move to double-int.c.
	(get_type_bounds): Move to tree.c, rename to
	get_static_type_bounds.
	(mpz_to_double_int): Move to double-int.c, rename to
	mpz_get_double_int.

2007-04-30  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
	DIV0 exception can fall through to a normal return.

2007-04-30  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/22156
	Temporarily revert:
	2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
	* tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
	2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
	* tree-sra.c (try_instantiate_multiple_fields): Needlessly
	initialize align to silence bogus warning.
	2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
	* tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
	all_no_warning.
	(struct sra_walk_fns): Remove use_all parameter from use.
	(sra_hash_tree): Handle BIT_FIELD_REFs.
	(sra_elt_hash): Don't hash bitfld blocks.
	(sra_elt_eq): Skip them in parent compares as well.  Handle
	BIT_FIELD_REFs.
	(sra_walk_expr): Don't maintain or pass down use_all_p.
	(scan_use): Remove use_all parameter.
	(scalarize_use): Likewise.  Re-expand assignment to
	BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
	output, and re-scalarize after output.  Don't mark anything
	for no warning.
	(scalarize_ldst): Adjust.
	(scalarize_walk_gimple_modify_statement): Likewise.
	(build_element_name_1): Handle BIT_FIELD_REFs.
	(instantiate_element): Don't warn for any element whose parent
	is used as a whole.
	(instantiate_missing_elements_1): Return the sra_elt.
	(canon_type_for_field): New.
	(try_instantiate_multiple_fields): New.
	(instantiate_missing_elemnts): Use them.
	(mark_no_warning): Removed.
	(generate_one_element_ref): Handle BIT_FIELD_REFs.
	(REPLDUP, sra_build_elt_assignment): New.
	(generate_copy_inout): Use them.
	(generate_element_copy): Likewise.  Handle bitfld differences.
	(generate_element_zero): Don't recurse for blocks.  Use
	sra_build_elt_assignment.
	(generate_one_element_int): Take elt instead of var.  Use
	sra_build_elt_assignment.
	(generate_element_init_1): Adjust.
	(scalarize_use, scalarize_copy): Use REPLDUP.
	(scalarize_ldst): Move assert before dereference.
	(dump_sra_elt_name): Handle BIT_FIELD_REFs.

2007-04-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR C++/31721
	* tree.c (reconstruct_complex_type): Reconstruct a reference
	correctly.
	Also use the same mode for the pointer as the old pointer type.

2007-04-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>

	* doc/trouble.texi (Interoperation): Remove note about Ultrix
	Fortran compiler.

2007-04-29  Zdenek Dvorak  <dvorakz@suse.cz>

	PR rtl-optimization/31676
	* df-scan.c (record_nonlocal_goto_receiver_defs): New function.
	(df_refs_record): Call it.

2007-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>

	* rtl.def (SS_ABS): New code.
	* config/bfin/bfin.c (print_operand): New modifier 'v'.
	(enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32,
	BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32,
	BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32.
	(bfin_init_builtins): Define them.
	(bdesc_1arg, bdesc_2arg): Add some of them here, ...
	(bfin_expand_builtin): ... and handle the others here.
	* config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3,
	flag_mul_macv2hi_parts_acconly_andcc0): New patterns.
	(ss_absv2hi2): Renamed from absv2hi; use ss_abs code.
	(ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count
	operand is only HImode.

2007-04-29  Steven Bosscher  <steven@gcc.gnu.org>

	* regclass.c (scan_one_insn): Remove splitting of
	two address insns.

2007-04-28  Sandra Loosemore  <sandra@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>

	* config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.

2007-04-28  Jan Hubicka  <jh@suse.cz>

	* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use
	insn_locators_alloc instead of insn_locators_initialize;
	call reset_block_changes.
	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
	* config/sh/sh.c (sparc_output_mi_thunk): Likewise.
	* config/is64/ia64.c (ia64_output_mi_thunk): Likewise.
	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
	* config/score/score.c (th_output_mi_thunk): Likewise.
	* config/mips/mips.c (mips_output_mi_thunk): Likewise.
	* cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block):
	tolerate uninitialized locator info.

	Re-apply:
	* function.c (init_function_start): Don't init line number info.
	(expand_function_end): Update.
	(reset_block_changes, record_block_change, finalize_block_changes,
	check_block_change, free_block_changes): Kill.
	* function.h (reset_block_changes, record_block_change,
	finalize_block_changes, check_block_change, free_block_changes):
	Remove prototypes.
	(struct function): Remove ib_boundaries_block.
	* emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
	Use curr_insn_locator to initialize locator.
	(emit_line_note): Remove.
	* cfgexpand.c (expand_gimple_cond_expr): Update.
	(construct_exit_block): Likewise.
	(tree_expand_cfg): Initialize/finalize locators.
	* expr.c (expand_expr_real): Update.
	* cfglayout.c (line_locators_locs, line_locators_lines,
	file_locators_locs, file_locators_files): Remove.
	(set_block_levels): Move to cfgexpand.c.
	(insn_locators_initialize): Remove.
	(pass_insn_locators_initialize): Remove.
	(locations_locators_locs, locations_locators_vals): New static vars.
	(curr_location, last_location, curr_block, last_block, curr_rtl_loc):
	Likewise.
	(insn_locators_alloc, insn_locators_finalize,
	set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
	New functions.
	(locator_location): New.
	(locator_line, locator_file): Rewrite.
	* rtl.h (emit_line_note): Kill.
	(insn_locators_alloc, insn_locators_finalize,
	set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
	Declare.
	* tree-inline.c (initialize_cfun): Do not initialize
	ib_boundaries_block.
	* passes.c (pass_insn_locators_initialize): Remove.

2007-04-28  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-cfg.c (move_block_to_fn): Release bb from dominance
	info.  Update last_basic_block correctly.

2007-04-27  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/31701
	* config/sh/sh.c (output_stack_adjust): Avoid using the frame
	register itself to hold the offset constant.  Tell flow the use
	of r4 and r5 when they are used.

2007-04-27  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track
	if we simplified anything.
	(tree_ssa_forward_propagate_single_use_vars): Defer overflow
	warnings until we did a simplification and the stmt was not
	marked as TREE_NO_WARNING.

2007-04-27  Mike Stump  <mrs@apple.com>

	* config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove.

2007-04-27  Ian Lance Taylor  <iant@google.com>

	PR middle-end/31710
	* tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
	TYPE_MAX_VALUE exist, convert them to the new type.

2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
	if it claims to be available.
	* tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when
	edge is redirected.
	(perform_tree_ssa_dce): Always free postdominators.

2007-04-27  Richard Henderson  <rth@redhat.com>

	* config/alpha/predicates.md (aligned_memory_operand): Mark
	as define_special_predicate.
	(unaligned_memory_operand, normal_memory_operand): Likewise.
	(reg_or_unaligned_mem_operand): Remove.
	(any_memory_operand): Match the documentation and check for
	non-renumbered pseudos during reload.
	* config/alpha/alpha.c (alpha_secondary_reload): Rename from
	alpha_secondary_reload_class, update to new interface, make static.
	Handle CQImode like HImode.  Remove FP subreg check.
	(alpha_expand_mov): Use replace_equiv_address.
	(alpha_expand_mov_nobwx): Use any_memory_operand.
	(TARGET_SECONDARY_RELOAD): New.
	* config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
	* config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ...
	* config/alpha/alpha.md: ... here.
	(RELOAD12, reloadmode): New.
	(movcqi): New.
	(reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi.
	Don't handle the aligned case here.
	(reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi.
	(reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help,
	reload_inhi_help.  Don't expect a scratch register.
	(reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help,
	reload_outhi_help.
	* config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove.

2007-04-27  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.

2007-04-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/30965
	PR tree-optimization/30978
	* Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H).
	* tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove.
	(find_equivalent_equality_comparison): Likewise.
	(simplify_cond): Likewise.
	(get_prop_source_stmt): New helper.
	(get_prop_dest_stmt): Likewise.
	(can_propagate_from): Likewise.
	(remove_prop_source_from_use): Likewise.
	(combine_cond_expr_cond): Likewise.
	(forward_propagate_comparison): New function.
	(forward_propagate_into_cond): Rewrite to use fold for
	tree combining.
	(tree_ssa_forward_propagate_single_use_vars): Call
	forward_propagate_comparison to propagate comparisons.

2007-04-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/31715
	* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make
	sure to do computation on the offset in an appropriate
	signed type.

2007-04-27  Richard Sandiford  <richard@codesourcery.com>

	* reload.h (elimination_target_reg_p): Declare.
	* reload.c (find_reloads): Don't apply the reg_rtx move
	optimization if the SET_DEST satisfies elimination_target_reg_p.
	* reload1.c (elimination_target_reg_p): New function.
	(gen_reload): In the move/add2 fallback, make sure that op0
	does not overlap the destination register.

2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to
	transform only GIMPLE_MODIFY_STMTs.
	* tree-complex.c (expand_complex_operations_1): Ditto.
	(expand_complex_div_wide): Do not create gotos in COND_EXPR branches.
	* tree-ssa-loop-manip.c (build_if_stmt): Removed.
	(tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR
	branches.
	* value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
	tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto.
	* omp-low.c (expand_parallel_call, expand_omp_for_generic,
	expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto.
	* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes,
	slpeel_add_loop_guard): Ditto.
	* tree-mudflap.c (mf_build_check_statement_for): Ditto.
	* lambda-code.c (perfect_nestify): Ditto.
	* tree-iterator.c (tsi_split_statement_list_before): Fix splitting
	before the first statement.
	* tree-optimize.c (execute_free_datastructures): Fix comments.
	(execute_free_cfg_annotations): Do not call disband_implicit_edges.
	* tree-flow.h (disband_implicit_edges): Declaration removed.
	* tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR
	branches.
	(cleanup_dead_labels, tree_redirect_edge_and_branch): Handle
	COND_EXPRs without gotos.
	(disband_implicit_edges, has_label_p): Removed.
	(tree_verify_flow_info): Verify that COND_EXPR branches are empty.
	(tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR
	branches.
	* tree.c (build3_stat): Mark COND_EXPRs used as statements as having
	side effects.
	* tree-pretty-print.c (dump_implicit_edges): Dump implicit edges
	also for COND_EXPRs.
	* cfgexpand.c (label_rtx_for_bb): New function.
	(expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches.
	Use label_rtx_for_bb to find the labels.
	(expand_gimple_basic_block): Remove RETURN_EXPR at the end of the
	last block.  Detect fallthru edges.

2007-04-26  Ian Lance Taylor  <iant@google.com>

	PR target/28675
	* reload.c (find_reloads_subreg_address): If the address was valid
	in the original mode but not in the new mode, reload the whole
	address.

2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable.
	(remove_fallthru_edge): Use remove_edge_and_dominated_blocks.
	(cleanup_control_expr_graph): Do not invalidate dominance info.
	Record altered blocks.
	(cleanup_control_flow, cleanup_forwarder_blocks): Removed.
	(cleanup_control_flow_bb, split_bbs_on_noreturn_calls,
	cleanup_tree_cfg_bb): New functions.
	(remove_forwarder_block): Do not maintain the worklist of blocks.
	Record altered blocks.
	(cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs,
	not over whole cfg.
	(cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1.  Only call
	delete_unreachable_blocks if dominators are not available.
	* tree-inline.c (optimize_inline_calls): Free dominance information
	earlier.
	* tree-flow.h (remove_edge_and_dominated_blocks,
	cfgcleanup_altered_bbs): Altered.
	* tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered
	blocks.
	(get_all_dominated_blocks, remove_edge_and_dominated_blocks): New
	functions.
	(tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks,
	do not invalidate dominators.

2007-04-26  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
	ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

2007-04-26  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.md (ip_value): Fix itanium_class attribute.

2007-04-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/31703
	* tree-ssa-loop-im.c (rewrite_bittest): Make sure to use
	the right type for the target of the bittest.

2007-04-26  Richard Sandiford  <richard@codesourcery.com>

	* config/i386/vx-common.h (RETURN_IN_MEMORY): Use
	ix86_sol10_return_in_memory.

2007-04-26  Richard Sandiford  <richard@codesourcery.com>

	* config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused
	variables.

2007-04-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/31598
	* tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.

	PR tree-optimization/30558
	* tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
	clear this_state.prev_try.

2007-04-26  Richard Sandiford  <richard@codesourcery.com>
	    Mark Mitchell  <mark@codesourcery.com>

	* config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare.
	* config/i386/i386.c (ix86_sol10_return_in_memory): New function.
	* config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it.

2007-04-26  Richard Sandiford  <richard@codesourcery.com>

	PR driver/31107
	* doc/invoke.texi (%:print-asm-header): Document.
	* gcc.c (asm_options): Use %:print-asm-header() for --target-help
	and -ftarget-help.
	(static_spec_functions): Add print-asm-header.
	(main): Print a banner before the --target-help linker options.
	(print_asm_header_spec_function): New function.

2007-04-25  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/31403
	* config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A.
	(movsf_ie): Likewise.

2007-04-25  Paolo Carlini  <pcarlini@suse.de>

	* doc/extend.texi ([Type Traits]): Adjust per N2255.

2007-04-25  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an
	exception for divide-by-zero.
	(__umodsi3, __modsi3): Likewise.

2007-04-25  Dirk Mueller  <dmueller@suse.de>

	* c-typeck.c (build_compound_expr): Annotate warning()
	call with OPT_Wunused_value.
	* tree-ssa.c (warn_uninit): Annotate warning with
	OPT_Wunintialized.
	* c-common.c (handle_sentinel_attribute): Annotate warning
	call with OPT_Wattributes.

2007-04-25  Thiemo Seufer  <ths@mips.com>

	* config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options.
	(mips16): Fix typo.
	* config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx
	on to the assembler.  Improve handling of -mno-mips16.  Add handling
	of -mno-mips3d, -mno-dsp, -mno-dspr2.
	* doc/invoke.texi (MIPS Options): Whitespace cleanup.  Fix wrong use
	of @itemx.  Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx,
	-mno-mdmx, -mno-mips3d, -mmt and -mno-mt.

2007-04-25  Danny Smith  <dannysmith.users.sourceforge.net>

	PR target/31680
	* config/i386/winnt.c (i386_pe_file_end): Strip only
	USER_LABEL_PREFIX when writing export name.

2007-04-25  Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (sh-wrs-vxworks): Don't include dbxelf.h.  Include
	sh/elf.h, vx-common.h and vxworks.h.
	* config/sh/sh.h: Include config/vxworks-dummy.h.
	(SUBTARGET_OVERRIDE_OPTIONS): Define.
	(OVERRIDE_OPTIONS): Use it.
	* config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs.
	(vxworks_picreg): New pattern.
	* config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
	VXWORKS_OS_CPP_BUILTINS.
	(LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine
	to their VXWORKS_* equivalents.
	(SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
	(SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define.
	* config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC.
	(set_fpscr, ic_invalidate): Add VxWorks PIC sequences.
	* config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and
	-mrtp/-fPIC multilibs.
	(MULTILIB_EXCEPTIONS): Generalize globs accordingly.
	(MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define.
	(MULTILIB_OSDIRNAMES): Delete.

2007-04-25  Anatoly Sokolov <aesok@post.ru>

	PR target/18989
 	* config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.

2007-04-24  Brooks Moses  <brooks.moses@codesourcery.com>

	* real.c (mpfr_from_real): Handle Inf and NaN, and allow the
	rounding mode to be specified by the caller.
	(real_to_mpfr) Likewise.
	* real.h: Update mpfr_from_real, mpfr_to_real prototypes to
	include new arguments.
	* builtins.c: Update mpfr_from_real, mpfr_to_real calls.

2007-04-24  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/31605
	* tree-vrp.c (set_value_range): Check that min and max are not
	both overflow infinities.
	(set_value_range_to_value): New static function.
	(extract_range_from_binary_expr): Call set_value_range_to_value.
	(extract_range_from_cond_expr): Likewise.
	(extract_range_from_expr): Likewise.
	(extract_range_from_unary_expr): Likewise.  Don't create a range
	which overflows on both sides.
	(vrp_meet): Check for a useless range.
	(vrp_visit_phi_node): If we see a constant which looks like an
	overflow infinity, turn off the TREE_OVERFLOW flag.

2007-04-24  Ian Lance Taylor  <iant@google.com>

	* flow.c (elim_reg_cond): Handle a comparison of a subreg.

2007-04-24  Simon Martin  <simartin@users.sourceforge.net>

	PR diagnostic/25923
	* tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
	diagnostic message is being built.
	* tree-pretty-print.c (dump_generic_node): Only write the
	formatted text into BUFFER's stream if we are not building a
	diagnostic message.
	* toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
	dump_generic_node.
	* Makefile.in (toplev.o): Depend on tree-pass.h.

2007-04-24  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/31602
	* tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
	conditionals in the copied loop header.
	* tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
	warnings if TREE_NO_WARNING is set.
	* doc/invoke.texi (Warning Options): Clarify that
	-Wstrict-overflow does not warn about loops.

2007-04-24  Janis Johnson  <janis187@us.ibm.com>

	* config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
	expand on the comment about _Decimal128 arguments and check the
	integer result of the modulus operation; for 64-bit ELF ABI, ensure
	that _Decimal128 argument uses even/odd register pair.
	(function_arg): Ditto.

2007-04-24  Hui-May Chang <hm.chang@apple.com>

	* reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
	instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.

2007-04-24  Richard Guenther  <rguenther@suse.de>
	    Olga Golovanevsky  <olga@il.ibm.com>

	* fold-const.c (multiple_of_p): Check for bottom
	to be zero.

2007-04-24  Richard Henderson  <rth@redhat.com>

	* libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from
	IS_IBM_EXTENDED.  Also define in terms of WIDEST_HARDWARE_FP_SIZE.
	* libgcc2.c (__floatdisf): Avoid double-word arithmetic when
	looking for non-zero bits shifted out.  Avoid a recursive call
	when constructing the scalar.
	(__floatundisf): Likewise.

2007-04-24  Nathan Froyd  <froydnj@codesourcery.com>

	* dwarf2out.c (field_byte_offset): Move the existing logic
	under the control of PCC_BITFIELD_TYPE_MATTERS and just use
	the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.

2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>

	PR target/31641
	* config/s390/s390.c (s390_expand_setmem): Don't ICE for constant
	length argument of 0 for memset.
	(s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
	unsigned shift instead of the signed variant.

2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
	"fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
	"floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
	"*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
	"*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
	"*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
	"*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
	"*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
	"*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
	("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
	"truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
	"mul<mode>3", "div<mode>3"): Insn definitions added.
	("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
	"fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
	to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
	("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
	"trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
	"sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
	("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
	* config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
	TARGET_FLOAT_FORMAT): Macro definitions removed.
	(FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
	* config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
	z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
	(s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
	(s390_gen_rtx_const_DI): Function removed.
	* config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.

2007-04-24  Richard Sandiford  <richard@codesourcery.com>

	* optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
	over an external ffs function.

2007-04-24  Chao-ying Fu  <fu@mips.com>
	    Richard Sandiford  <richard@nildram.co.uk>

	* doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
	* optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
	(smadd_widen_optab, umadd_widen_optab): Define.
	* optabs.c (init_optabs): Initialize smadd_widen_optab and
	umadd_widen_optab.
	* genopinit.c (optabs): Fill in smadd_widen_optab and
	umadd_widen_optab.
	* expr.c (expand_expr_real_1): Try to use smadd_widen_optab
	and umadd_widen_optab to implement multiply-add sequences.
	* config/mips/mips.md (*<su>mul_acc_di): Rename to...
	(<u>maddsidi4): ...this.  Extend condition to include
	GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
	of operand 0 to "ka" and use the three-operand form of madd<u>
	for TARGET_DSPR2.
	* config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
	to define_expands.
	* config/mips/constraints.md (ka): New register constraint.

2007-04-24  Jan Hubicka  <j@suse.cz>

	Revert:

	2007-04-23  Jan Hubicka  <jh@suse.cz>
	* function.c (init_function_start): Don't init line number info.
	(expand_function_end): Update.
	(reset_block_changes, record_block_change, finalize_block_changes,
	check_block_change, free_block_changes): Kill.
	* function.h (reset_block_changes, record_block_change,
	finalize_block_changes, check_block_change, free_block_changes):
	Remove prototypes.
	(struct function): Remove ib_boundaries_block.
	* emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
	Use curr_insn_locator to initialize locator.
	(emit_line_note): Remove.
	* cfgexpand.c (expand_gimple_cond_expr): Update.
	(construct_exit_block): Likewise.
	(tree_expand_cfg): Initialize/finalize locators.
	* expr.c (expand_expr_real): Update.
	* cfglayout.c (line_locators_locs, line_locators_lines,
	file_locators_locs, file_locators_files): Remove.
	(set_block_levels): Move to cfgexpand.c.
	(insn_locators_initialize): Remove.
	(pass_insn_locators_initialize): Remove.
	(locations_locators_locs, locations_locators_vals): New static vars.
	(curr_location, last_location, curr_block, last_block, curr_rtl_loc):
	Likewise.
	(insn_locators_alloc, insn_locators_finalize,
	set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
	New functions.
	(locator_location): New.
	(locator_line, locator_file): Rewrite.
	* rtl.h (emit_line_note): Kill.
	(insn_locators_alloc, insn_locators_finalize,
	set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
	Declare.
	* tree-inline.c (initialize_cfun): Do not initialize
	ib_boundaries_block.
	* passes.c (pass_insn_locators_initialize): Remove.

2007-04-24  Daniel Franke  <franke.daniel@gmail.com>

	* doc/invoke.texi: Removed leading '-' from option index entries.

2007-04-23  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
	Use phi_nodes_ptr.
	(create_phi_node): Use set_phi_nodes.
	* omp-low.c (expand_omp_parallel): Use bb_stmt_list.
	* tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
	(combine_blocks): Use bb_stmt_list and set_bb_stmt_list.
	* tree-flow-inline.h (phi_nodes, set_phi_nodes,
	(bsi_start, bsi_last): Use bb_stmt_list.
	(phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
	* cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
	Traverse the statements using tsi iterator.
	* basic-block.h (struct basic_block_def): Fields stmt_list
	and phi_nodes moved to ...
	(struct tree_bb_info): ... new structure.
	* tree-cfg.c (create_bb): Allocate il.tree.  Use set_bb_stmt_list.
	(tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
	(remove_bb): Handle blocks with NULL stmt list.  Clear il.tree field.
	(tree_verify_flow_info): Verify that il.tree is not set for
	entry and exit block.
	(tree_split_block): Use set_bb_stmt_list.

2007-04-23  Mike Stump  <mrs@apple.com>

	* config/i386/i386.c (ix86_tune_features
	[X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
	nocona and core2.

2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (prefix_extra): New attribute.
	(length): Add prefix_extra.

	* onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
	(sse2_movntv2di): Likewise.
	(sse2_cvtps2dq): Likewise.
	(sse2_cvtpd2pi): Likewise.
	(sse2_cvttpd2pi): Likewise.
	(*sse2_cvtpd2ps): Likewise.
	(*add<mode>3): Likewise.
	(sse2_ssadd<mode>3): Likewise.
	(sse2_usadd<mode>3): Likewise.
	(*sub<mode>3): Likewise.
	(sse2_sssub<mode>3): Likewise.
	(sse2_ussub<mode>3): Likewise.
	(*mulv8hi3): Likewise.
	(*smulv8hi3_highpart): Likewise.
	(*umulv8hi3_highpart): Likewise.
	(sse2_umulv2siv2di3): Likewise.
	(sse2_pmaddwd): Likewise.
	(ashr<mode>3): Likewise.
	(lshr<mode>3): Likewise.
	(ashl<mode>3): Likewise.
	(sse2_ashlti3): Likewise.
	(sse2_lshrti3): Likewise.
	(*umaxv16qi3): Likewise.
	(*smaxv8hi3): Likewise.
	(*uminv16qi3): Likewise.
	(*sminv8hi3): Likewise.
	(sse2_eq<mode>3): Likewise.
	(sse2_gt<mode>3): Likewise.
	(*and<mode>3): Likewise.
	(sse2_nand<mode>3): Likewise.
	(*ior<mode>3): Likewise.
	(*xor<mode>3): Likewise.
	(sse2_packsswb): Likewise.
	(sse2_packssdw): Likewise.
	(sse2_packuswb): Likewise.
	(sse2_punpckhbw): Likewise.
	(sse2_punpcklbw): Likewise.
	(sse2_punpckhwd): Likewise.
	(sse2_punpcklwd): Likewise.
	(sse2_punpckhdq): Likewise.
	(sse2_punpckldq): Likewise.
	(sse2_punpckhqdq): Likewise.
	(sse2_punpcklqdq): Likewise.
	(*sse2_pinsrw): Likewise.
	(*sse2_pextrw): Likewise.
	(sse2_pshufd_1): Likewise.
	(sse2_uavgv16qi3): Likewise.
	(sse2_uavgv8hi3): Likewise.
	(sse2_psadbw): Likewise.
	(sse2_pmovmskb): Likewise.
	(*sse2_maskmovdqu): Likewise.
	(*sse2_maskmovdqu_rex64): Likewise.
	(sse4a_extrqi): Likewise.
	(sse4a_extrq): Likewise.
	(sse3_lddqu): Set prefix_rep.
	(sse3_addsubv4sf3): Likewise.
	(sse3_haddv4sf3): Likewise.
	(sse3_hsubv4sf3): Likewise.
	(sse_cvtss2si): Likewise.
	(sse_cvtss2si_2): Likewise.
	(sse_cvtss2siq): Likewise.
	(sse_cvtss2siq_2): Likewise.
	(sse_cvttss2si): Likewise.
	(sse_cvttss2siq): Likewise.
	(sse2_cvttps2dq): Likewise.
	(sse3_movshdup): Likewise.
	(sse3_movsldup): 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_pshuflw_1): Likewise.
	(sse2_pshufhw_1): Likewise.
	(sse4a_insertqi): Likewise.
	(sse4a_insertq): Likewise.
	(ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
	(ssse3_phadddv4si3): Likewise.
	(ssse3_phaddswv8hi3): Likewise.
	(ssse3_phsubwv8hi3): Likewise.
	(ssse3_phsubdv4si3): Likewise.
	(ssse3_phsubswv8hi3): Likewise.
	(ssse3_pmaddubswv8hi3): Likewise.
	(ssse3_pmulhrswv8hi3): Likewise.
	(ssse3_pshufbv16qi3): Likewise.
	(ssse3_psign<mode>3): Likewise.
	(ssse3_palignrti): Likewise.
	(abs<mode>2): Likewise.
	(ssse3_phaddwv4hi3): Set prefix_extra.
	(ssse3_phadddv2si3): Likewise.
	(ssse3_phaddswv4hi3): Likewise.
	(ssse3_phsubwv4hi3): Likewise.
	(ssse3_phsubdv2si3): Likewise.
	(ssse3_phsubswv4hi3): Likewise.
	(ssse3_pmaddubswv4hi3): Likewise.
	(ssse3_pmulhrswv4hi3): Likewise.
	(ssse3_pshufbv8qi3): Likewise.
	(ssse3_psign<mode>3): Likewise.
	(ssse3_palignrdi): Likewise.
	(abs<mode>2): Likewise.
	(sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
	(*vec_dupv2df): Set mode to V2DF instead of V4SF.
	(sse2_pmovmskb): Set mode to SI instead of V2DF.

2007-04-23  Nick Clifton  <nickc@redhat.com>

	* params.def: Fix formatting of emacs local variables.

2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (sse2_stored): Don't split to inter-unit
	move if inter-unit move isn't allowed.
	Don't split moving the first element of V2DI to DI to inter-unit
	move if inter-unit move isn't allowed.

2007-04-23  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
	and CDI_POST_DOMINATORS separately.

2007-04-23  Nick Clifton  <nickc@redhat.com>

	* c.opt (Wformat-contains-nul): Add warning attribute.

2007-04-23  Jan Hubicka  <jh@suse.cz>

	* function.c (init_function_start): Don't init line number info.
	(expand_function_end): Update.
	(reset_block_changes, record_block_change, finalize_block_changes,
	check_block_change, free_block_changes): Kill.
	* function.h (reset_block_changes, record_block_change,
	finalize_block_changes, check_block_change, free_block_changes):
	Remove prototypes.
	(struct function): Remove ib_boundaries_block.
	* emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
	Use curr_insn_locator to initialize locator.
	(emit_line_note): Remove.
	* cfgexpand.c (expand_gimple_cond_expr): Update.
	(construct_exit_block): Likewise.
	(tree_expand_cfg): Initialize/finalize locators.
	* expr.c (expand_expr_real): Update.
	* cfglayout.c (line_locators_locs, line_locators_lines,
	file_locators_locs, file_locators_files): Remove.
	(set_block_levels): Move to cfgexpand.c.
	(insn_locators_initialize): Remove.
	(pass_insn_locators_initialize): Remove.
	(locations_locators_locs, locations_locators_vals): New static vars.
	(curr_location, last_location, curr_block, last_block, curr_rtl_loc):
	Likewise.
	(insn_locators_alloc, insn_locators_finalize,
	set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
	New functions.
	(locator_location): New.
	(locator_line, locator_file): Rewrite.
	* rtl.h (emit_line_note): Kill.
	(insn_locators_alloc, insn_locators_finalize,
	set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
	Declare.
	* tree-inline.c (initialize_cfun): Do not initialize
	ib_boundaries_block.
	* passes.c (pass_insn_locators_initialize): Remove.

2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/31448
	* expr.c (reduce_to_bit_field_precision): Handle
	CONST_INT rtx's.

2007-04-22  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/24659
	* optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
	OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
	(vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
	* genopinit.c (optabs): Rename vec_pack_mod_optab
	to vec_pack_trunc_optab.
	* tree-vect-transform.c (vectorizable_type_demotion): Do not fail
	early for scalar floating point operands for NOP_EXPR.
	(vectorizable_type_promotion): Ditto.
	* optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
	vec_pack_trunc_optab.
	(expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.

	* tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
	* tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
	Rename from VEC_PACK_MOD_EXPR.
	(op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
	* expr.c (expand_expr_real_1): Ditto.
	* tree-inline.c (estimate_num_insns_1): Ditto.
	* tree-vect-generic.c (expand_vector_operations_1): Ditto.

	* config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
	(vec_unpacks_lo_v4sf): Ditto.
	(vec_pack_trunc_v2df): Ditto.
	(vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
	(vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
	(vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.

	* config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
	vec_pack_mod_v8hi.
	(vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.

	* doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
	Rename from VEC_PACK_MOD_EXPR.  This expression also represent
	packing of floating point operands.
	[VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
	represent unpacking of floating point operands.
	* doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
	[vec_unpacks_hi]: Ditto.
	[vec_unpacks_lo]: Ditto.

2007-04-22  Jan Hubicka  <jh@suse.cz>

	* final.c (rest_of_handle_final): Call
	targetm.asm_out.constructor/targetm.asm_out.destructor
	* cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
	proper priority via decl_*_priority_insert.
	* c-common.c (c_expand_body): Likewise.

2007-04-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/29789
	* tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
	(rewrite_reciprocal): New helper split out from
	determine_invariantness_stmt.
	(rewrite_bittest): Likewise.
	(determine_invariantness_stmt): Rewrite (A >> B) & 1 to
	A & (1 << B) if (1 << B) is loop invariant but (A >> B)
	is not.

2007-04-22  Revital Eres  <eres@il.ibm.com>

	* loop-unroll.c (var_to_expand): New field to support also
	insns of the form x = something + x.
	(analyze_insn_to_expand_var): Use it.
	(expand_var_during_unrolling): Likewise.

2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>

	* predict.c: Include pointer-set.h.
	(bb_predictions): New variable.
	(tree_predicted_by_p, tree_predict_edge,
	remove_predictions_associated_with_edge): Use bb_predictions map
	instead of bb->predictions.
	(clear_bb_predictions, assert_is_empty): New functions.
	(combine_predictions_for_bb): Use bb_predictions map.  Call
	clear_bb_predictions.
	(tree_estimate_probability): Create and free bb_predictions map.
	* Makefile.in (predict.o): Add pointer-set.h dependency.
	* basic-block.h (struct basic_block_def): Remove predictions
	field.
	* cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.

2007-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/31480
	* config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
	is null.

2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* timevar.c (timevar_print): Change reference of --disable-checking to
	--enable-checking=release.  Also warn if assert checking is disabled.

2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR C/30265
	* c-gimplifier.c (gimplify_compound_literal_expr): Mark the
	decl as addressable if the compound literal was marked as
	addressable.
	Mark the decl as a gimple register if it is a complex or
	vector decl and does not live in memory.

2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
	(GENERIC_NEXT): New function macro.
	(PHI_CHAIN): Use phi_node's new chain variable.
	(tree_phi_node): Change tree_common to tree_base
	and add the chain field.
	* tree-phinodes.c (make_phi_node): Don't set
	TREE_TYPE on the new node.
	* c-decl.c (lang_tree_node): Use GENERIC_NEXT
	instead of checking GIMPLE_TUPLE_P in chain_next.
	* tree-vect-transform.c
	(get_initial_def_for_induction): Look at
	PHI_RESULT_TREE for the type of the phi node.
	(update_vuses_to_preheader): Use PHI_CHAIN
	instead of TREE_CHAIN on the phi node.
	* tree-ssa-structalias.c (compute_points_to_sets):
	Likewise.
	(ipa_pta_execute): Likewise.

2007-04-21  Richard Guenther  <rguenther@suse.de>

	PR middle-end/31136
	* fold-const.c (fold_unary): Call fold_convert_const on the
	original tree.

2007-04-21  Alexandre Oliva  <aoliva@redhat.com>

	* gcse.c (store_killed_in_insn): Handle PARALLELs.
	(store_killed_in_pat): New.

2007-04-20  Richard Henderson  <rth@redhat.com>

	PR target/31628
	* config/i386/i386.c (type_has_variadic_args_p): Look for any
	TREE_LIST with a void_type_node value, not void_list_node exactly.

2007-04-21  Douglas Gregor  <doug.gregor@gmail.com>

	* doc/standards.texi: Re-arrange into language-specific
	subsections. Add a C++ section, documenting which standards we
	support.

2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
	* tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.

2007-04-20  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
	ecrti.o and crtbegin.o.
	(LIB_DEFAULT_SPEC): Include -lc.
	(ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.

2007-04-20  Richard Henderson  <rth@redhat.com>

	PR target/28623
	* config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
	argument; update all callers.
	(get_unaligned_offset): New.
	* config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
	get_unaligned_address, just pass on the address directly.
	(unaligned_extendqidi): Use gen_lowpart instead of open-coding
	the subreg in the helper patterns.
	(unaligned_extendqidi_le): Use get_unaligned_offset.
	(unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
	(unaligned_extendhidi_be): Likewise.
	(unaligned_extendhidi): Tidy.
	* config/alpha/alpha-protos.h: Update.

2007-04-20  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
	(EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
	* config/alpha/linux.h (CPP_SPEC): Undef before redefine.
	* config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
	* config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
	(CPP_SPEC): Don't include %(cpp_subtarget).
	* config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
	(EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
	* config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.

2007-04-20  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
	for __builtin_ia32_cmpordss.

	PR tree-optimization/31632
	* fold-const.c (fold_binary): Use op0 and op1 instead of arg0
	and arg1 for optimizations of comparison against min/max values.
	Fold arg0 to arg1's type for optimizations of comparison against
	min+1 and max-1 values.

2007-04-19  Bernd Schmidt  <bernd.schmidt@analog.com>

	* reload.c (combine_reloads): When trying to use a dying register,
	check whether it's uninitialized and don't use if so.

2007-04-19  Brooks Moses  <brooks.moses@codesourcery.com>

	* fold-const.c: Remove prototypes for native_encode_expr and
	native_interpret_expr.
	(native_encode_expr): Make non-static.
	(native_interpret_expr): Likewise.
	* tree.h: Add prototypes for the above.

2007-04-19  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
	*mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
	*mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
	spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
	tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
	Add length attributes.

2007-04-19  Janis Johnson  <janis187@us.ibm.com>

	* ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
	not that it is 1.

	* c-cppbuiltin.c (c_cpp_builtins): Remove definition of
	__STDC_WANT_DEC_FP__.

2007-04-19  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
	for long double compatibility.
	* configure: Regenerate.

2007-04-19  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/29841
	* cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
	trap instructions.
	* sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
	that may cause control flow transfer from being moved.

2007-04-18  Jan Hubicka  <jh@suse.cz>

	* fold-const.c (div_if_zero_remainder): Do signed divide for pointer
	types.

2007-04-18  Eric Christopher  <echristo@apple.com>

	* config/rs6000/darwin.md (load_macho_picbase): Use link register
	only. Update operands.
	* config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
	* config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
	link register to pic register.

2007-04-18  Dirk Mueller  <dmueller@suse.de>

	PR diagnostic/31227
	* tree-vrp.c (search_for_addr_array): New.
	(check_array_bounds): Suppress warning about
	address taken of array refs if its not de-referenced.

2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
	* tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.

	* tree-vectorizer.h (NITERS_KNOWN_P): New.
	* tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
	instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.

	* tree-vect-analyze.c (vect_determine_vectorization_factor): Add
	dump print.
	(vect_analyze_operations): Fix indenetation.  Fix a comment.  Fix a
	print message.
	(vect_analyze_scalar_cycles): Fix indentation.
	(vect_enhance_data_refs_alignment): Fix check in case of peeling.
	(vect_mark_relevant): Include phis in relevance analysis.

	* tree-vect-transform.c (vect_transform_loop): Add an assert.

2007-04-18  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (ptrreg_to_str): Replace error() with
	output_operand_lossage().

2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-vect-transform.c (get_initial_def_for_reduction): Clean away
	the unused code for reduction without adjust-in-epilog to simplify the
	function.

2007-04-18  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
	(S390_TDC_NEGATIVE_ZERO): New constant.
	(S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
	(S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
	(S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
	(S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
	(S390_TDC_POSITIVE_INFINITY): New constant.
	(S390_TDC_NEGATIVE_INFINITY): New constant.
	(S390_TDC_POSITIVE_QUIET_NAN): New constant.
	(S390_TDC_NEGATIVE_QUIET_NAN): New constant.
	(S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
	(S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
	(S390_TDC_INFINITY): New constant.
	* config/s390/s390.c (s390_canonicalize_comparison): Renamed
	UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
	optimization for UNSPEC_CCZ_TO_INT.
	* config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
	("*ccz_to_int"): New insn.
	("isinf<mode>2"): New insn.
	(UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
	(UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
	(UNSPEC_CCZ_TO_INT): New constant.

2007-04-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/19431
	PR tree-optimization/21463
	* tree-pass.h (pass_phiprop): Declare.
	* passes.c (init_optimization_passes): New phiprop pass.
	* tree-ssa-forwprop.c (struct phiprop_d): New structure.
	(phivn_valid_p): New helper function.
	(phiprop_insert_phi): Likewise.
	(propagate_with_phi): Likewise.
	(tree_ssa_phiprop): New propagator propagating loads
	through phi nodes if profitable.

2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-vect-analyze.c (process_use): New function.
	(vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
	Check phis in all bbs.
	* tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
	assert.

2007-04-18  Bernd Schmidt  <bernd.schmidt@analog.com>

	* reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
	we use REG_EQUAL.

2007-04-17  Anatoly Sokolov <aesok@post.ru>

	PR target/30483
	* config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
	error().

2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
	on "0".
	(sse_vmmulv4sf3): Likewise.
	(sse2_vmaddv2df3): Likewise.
	(sse2_vmmulv2df3): Likewise.

2007-04-17  Zdenek Dvorak  <dvorakz@suse.cz>

	PR rtl-optimization/31360
	* cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
	(target_reg_cost): New.
	(init_set_costs): Initialize target_reg_cost.  Add comments
	regarding the rationale of the costs.
	(global_cost_for_size): Renamed to...
	(estimate_reg_pressure_cost): ... and simplify.  Decrease importance
	of register pressure.
	* tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
	estimate_reg_pressure_cost.  Add number of ivs.
	(determine_set_costs): Dump target_reg_cost.
	* loop-invariant.c (gain_for_invariant): Use
	estimate_reg_pressure_cost.  Removed n_inv_uses argument.
	(best_gain_for_invariant, find_invariants_to_move): Remove
	n_inv_uses.
	* cfgloop.h (target_small_cost, target_pres_cost): Removed.
	(target_reg_cost): Declare.
	(global_cost_for_size): Declaration removed.
	(estimate_reg_pressure_cost): Declare.

2007-04-17  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
	regnos into even/odd register pairs.
	* config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
	TDmode similar to the other floating point modes.
	[SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
	* config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
	define_expand's.
	(negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
	nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
	(movdd_hardfloat64): Use TARGET_MFPGPR.

2007-04-17  Bernd Schmidt  <bernd.schmidt@analog.com>

	* reload1.c (delete_output_reload): Don't count output in n_inherited.

	Revert
	2005-01-05  Richard Henderson  <rth@redhat.com>
	PR rtl-opt/10692
	* reload1.c (do_input_reload): Restrict the optimization deleteing
	a previous output reload to RELOAD_FOR_INPUT.

2007-04-17  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-vectorizer.h (stmt_vec_info_type): Add enum value
	induc_vec_info_type.
	(vectorizable_induction): New function declaration.
	* tree-vect-transform.c (get_initial_def_for_induction): No need to
	check if already vectorized.  Find first place in BB where new stmts
	can be inserted.  Takes only one argument.
	(vectorizable_induction): New function.
	(vect_transform_stmt): Add case for induc_vec_info_type to call
	vectorizable_induction.
	(vect_transform_loop): Consider phis for vectorization.
	* tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
	condition.
	(analyze_operations): Call vectorizable_induction when analyzing phis.
	Fix comment.
	(vect_mark_stmts_to_be_vectorized): Remove redundant checks.
	(vect_mark_relevant): Include phis in relevance analysis.
	(vect_mark_stmts_to_be_vectorize): Likewise.
	* tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.

2007-04-16  Lawrence Crowl  <crowl@google.com>

	* doc/invoke.texi (Debugging Options): Add documentation for the
	-femit-struct-debug options -femit-struct-debug-baseonly,
	-femit-struct-debug-reduced, and
	-femit-struct-debug-detailed[=...].

	* c-opts.c (c_common_handle_option): Add
	OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
	and OPT_femit_struct_debug_detailed_.
	* c.opt: Add specifications for
	-femit-struct-debug-baseonly, -femit-struct-debug-reduced,
	and -femit-struct-debug-detailed[=...].
	* opts.c (set_struct_debug_option): Parse the
	-femit-struct-debug-... options.
	* opts.c (matches_main_base, main_input_basename,
	main_input_baselength, base_of_path, matches_main_base): Add
	variables and functions to compare header base name to compilation
	unit base name.
	* opts.c (should_emit_struct_debug): Add to determine to emit a
	structure based on the option.
	(dump_struct_debug) Also disabled function to debug this
	function.
	* opts.c (handle_options): Save the base name of the
	compilation unit.

	* langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
	This hook indicates if a type is generic.  Set it by default
	to "never generic".
	* langhooks.h (struct lang_hooks_for_types): Add a new hook
	to determine if a struct type is generic or not.
	* cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
	* cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
	* cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
	with live C++ hook.

	* flags.h (enum debug_info_usage): Add an enumeration to describe
	a program's use of a structure type.
	* dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
	to indicate the program's usage of the type.  Filter structs based
	on the -femit-struct-debug-... specification.
	(gen_type_die): Split into two routines, gen_type_die and
	gen_type_die_with_usage.  gen_type_die is now a wrapper
	that assumes direct usage.
	(gen_type_die_with_usage): Replace calls to gen_type_die
	with gen_type_die_with_usage adding the program usage of
	the referenced type.
	(dwarf2out_imported_module_or_decl): Suppress struct debug
	information using should_emit_struct_debug when appropriate.

2007-04-16  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/31522
	* tree-vrp.c (vr_phi_edge_counts): New static variable.
	(vrp_initialize): Allocate vr_phi_edge_counts.
	(vrp_visit_phi_node): Don't push to infinity if we saw a new
	executable edge.  Drop test for all constants.
	(vrp_finalize): Free vrp_phi_edge_counts.

	* doc/cpp.texi (Common Predefined Macros): Clarify description of
	__GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.

	* tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
	predecessors at head rather than tail.

2007-04-16  Matthias Klose  <doko@debian.org>

	* config/alpha/linux.h (CPP_SPEC): Define.
	* config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.

2007-04-16  Aldy Hernandez  <aldyh@redhat.com>

	* function.h: Remove sequence_stack extern declaration.

2007-04-16  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
	TARGET_FIDOA.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
	defined.

2007-04-16  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (avr_arch_types): Rearranging  array.
	(enum avr_arch): Add.
	(avr_mcu_types): Use avr_arch enumeration constants instead of
	numbers.
	* config/avr/avr.h (LINK_SPEC): Simplify.

2007-04-16  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.c (m68k_libcall_value,
	m68k_function_value): Use macros for register names more.

	* config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
	instead.
	(M68K_REGNAME): Use A6_REG.
	* config/m68k/m68k.md (FP_REG): Rename to A6_REG.

2007-04-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	PR middle-end/28071
	* sched-int.h (struct deps): Split field 'pending_lists_length' into
	'pending_read_list_length' and 'pending_write_list_length'.  Update
	comment.
	* sched-deps.c (add_insn_mem_dependence): Change signature.  Update
	to handle two length counters instead of one.  Update all uses.
	(flush_pending_lists, sched_analyze_1, init_deps): Update to handle
	two length counters instead of one.
	* sched-rgn.c (propagate_deps): Update to handle two length counters
	instead of one.

2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/31582
	* config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
	copy of source, pass it to ix86_expand_vector_set and return
	it as target.

2007-04-16  David Ung  <davidu@mips.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
	PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
	* config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
	Add 74K processor information.
	* config/mips/mips.md: Include 74k.md.
	(cpu): Add 74kc,74kf,74kx.
	(ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
	* config/mips/74k.md: New.
	* doc/invoke.texi (MIPS Options): Document 74K support.

2007-04-16  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
	vectorizable_* functions.
	* tree-vect-transform.c (vectorizable_call): Add check for
	STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
	(vectorizable_store): likewise.
	(vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
	Add comments.
	(vectorizable_operation, vectorizable_type_demotion): Likewise.
	(vectorizable_type_promotion, vectorizable_load): Likewise.
	(vectorizable_live_operation, vectorizable_condition): Likewise.
	(vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
	STMT_VINFO_LIVE_P.
	(vect_transform_stmt): Reorganize calls to vectorizable_* functions.

2007-04-15  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
	register numbers more.
	* config/m68k/m68k.h (STACK_POINTER_REGNUM,
	FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
	M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
	FUNCTION_VALUE_REGNO_P): Likewise.
	* config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
	STATIC_CHAIN_REGNUM): Likewise.
	* config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
	* config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
	STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
	* config/m68k/m68k.md (FP_REG): New.

2007-04-15  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
	alignment on fido.

2007-04-15  Kazu Hirata  <kazu@codesourcery.com>

	* config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
	tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
	comment typos.

2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
	cold loops.

2007-04-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR c/31520
	* c-decl.c (finish_decl): Grab the type of the decl after the call
	to store_init_value.

2007-04-14  Steven Bosscher  <steven@gcc.gnu.org>

	* common.opt (fforward-propagate): Fix "Optimization" annotation.

2007-04-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/25874
	* omp-low.c (expand_omp_parallel): If child_cfun->cfg, free
	dominators, post dominators and cleanup cfg before returning.

2007-04-14  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
	* config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.

2007-04-14  Kazu Hirata  <kazu@codesourcery.com>

	* config.gcc: Recognize fido.
	* config/m68k/m68k-devices.def (fidoa): New.
	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
	__mfido__.
	(FL_FIDOA, TARGET_FIDOA): New.
	* config/m68k/m68k.opt (mfidoa): New.

2007-04-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/31322
	* dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
	when a personality function is used.

2007-04-13  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.

2007-04-13  Mike Stump  <mrs@apple.com>

	* config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
	we can...
	* config/darwin.opt (fapple-kext): Make C++ only.
	* config/darwin.c (darwin_override_options): Remove code to ensure
	-fapple-kext is given for C++ only.

2007-04-13  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
	* config/mips/mips.c (override_options): Call
	SUBTARGET_OVERRIDE_OPTIONS, if defined.

2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.opt (msvr3-shlib): Removed.

	* doc/invoke.texi: Remove -msvr3-shlib.

2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
	with "popcnt" instruction.

2007-04-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/21258
	* tree-vrp.c (compare_case_labels): New helper.
	(find_switch_asserts): New function.
	(find_assert_locations): Call it for SWITCH_EXPRs.

2007-04-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
	* config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
	check is now implied in X87_FLOAT_MODE_P.
	(*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
	(*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
	(fix_trunc<mode>_i386_fisttp): Ditto.
	(fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
	(*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
	(fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
	(fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
	(*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
	(*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
	(unnamed_splitters): Ditto.
	* config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
	for X87_FLOAT_MODE_P mode.  Override FIRST_FLOAT_REG with
	FIRST_SSE_REG for local functions when SSE math is enabled or
	for functions with sseregparm attribute.
	(standard_80387_constant_p): Return -1 if mode is not
	X87_FLOAT_MODE_P.
	(ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
	(ix86_expand_compare): Ditto.
	(ix86_expand_carry_flag_compare): Ditto.
	(ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
	of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
	DECIMAL_FLOAT_MODE_P.
	(ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
	of SCALAR_FLOAT_MODE_P.
	(ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
	[MINUS]: ... here.  Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
	checks before FLOAT_MODE_P.
	[MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
	before FLOAT_MODE_P.
	[DIV]: Ditto.
	[NEG]: Ditto.
	[ABS]: Ditto.
	[SQRT]: Ditto.
	[FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.

2007-04-12  Paolo Bonzini  <bonzini@gnu.org>
	    Charles Wilson  <libtool@cwilson.fastmail.fm>

	* Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
	(libgcc.mvars): Don't depend on them.
	* configure.ac (as, collect-ld, nm): Create from exec-tool.in.
	* exec-tool.in: New.

2007-04-12  Brooks Moses  <brooks.moses@codesourcery.com>

	* doc/invoke.text (--help): Document --help=common.

2007-04-12  Thomas Neumann  <tneumann@users.sourceforge.net>

	* stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.

2007-04-12  Richard Sandiford  <richard@codesourcery.com>

	* Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
	* genemit.c (main): Emit #include "integrate.h".
	* config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
	(LOADGP_RTP): New mips_loadgp_style.
	* config/mips/mips.h: Include config/vxworks-dummy.h.
	(TARGET_RTP_PIC): New macro.
	(TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
	(TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
	for TARGET_RTP_PIC.
	* config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define.  Pass down
	-mvxworks-pic when using -mrtp and a PIC option.
	* config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
	for RTP PIC.
	(mips_symbolic_constant_p, mips_symbolic_address_p)
	(mips_symbol_insns): Handle SYMBOL_HALF.
	(override_options): Warn about -G and -mrtp being used together.
	Initialize mips_lo_relocs[SYMBOL_HALF].
	(mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
	(mips_emit_loadgp): Handle LOADGP_RTP.
	(mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
	* config/mips/mips.md (loadgp_rtp): New insn and splitter.
	(tablejump): Handle function-relative case table entries if
	TARGET_RTP_PIC.
	* config/mips/predicates.md (symbol_ref_operand): New predicate.

2007-04-12  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.md (load_call<mode>): Allow any general register.
	destination.
	(sibcall_value_internal, sibcall_value_multiple_internal)
	(call_value_internal, call_value_split, call_value_multiple_internal)
	(call_value_multiple_split): Remove constraints from operand 0.

2007-04-12  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips-protos.h: In comments, refer to loadgp_absolute
	rather than loadgp_noshared.
	* config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
	instead of gen_loadgp_noshared.  Use gen_loadgp_newabi instead of
	gen_loadgp.
	* config/mips/mips.md (loadgp): Rename to...
	(loadgp_newabi): ...this.
	(loadgp_noshared): Rename to...
	(loadgp_absolute): ...this.

2007-04-12  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
	false for locally-binding symbols.
	(mips_dangerous_for_la25_p): Check mips_global_symbol_p.

2007-04-12  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
	(SYMBOL_GOT_PAGE_OFST): ...this.
	(SYMBOL_GOT_GLOBAL): Rename to...
	(SYMBOL_GOT_DISP): ...this.
	(SYMBOL_GOTOFF_GLOBAL): Rename to...
	(SYMBOL_GOTOFF_DISP): ...this.  Update comments accordingly.
	* config/mips/mips.c (mips_global_symbol_p): New function.
	(mips_symbol_binds_local_p): Likewise.
	(mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
	and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST.  Use
	mips_global_symbol_p and mips_symbol_binds_local_p.
	(mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
	(override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
	SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
	SYMBOL_GOTOFF_DISP.
	(mips_ok_for_lazy_binding_p): New function.
	(mips_load_call_address, mips_expand_call): Use it.
	(mips_dangerous_for_la25_p): Likewise.
	* config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
	(*got_disp<mode>): Use got_disp_operand instead of
	global_got_operand.  Use SYMBOL_GOTOFF_DISP instead of
	SYMBOL_GOTOFF_GLOBAL.
	(*got_page<mode>): Use got_page_ofst_operand instead of
	local_got_operand.
	* config/mips/predicates.md (const_call_insn_operand): Use
	SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
	(global_got_operand): Rename to...
	(got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
	SYMBOL_GOT_GLOBAL.
	(local_got_operand): Rename to...
	(got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
	of SYMBOL_GOT_LOCAL.

2007-04-12  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.h (TARGET_SPLIT_CALLS): Check
	TARGET_CALL_CLOBBERED_GP.
	(TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
	(TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
	(TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
	(STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
	of TARGET_ABICALLS && !TARGET_NEWABI.
	(MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
	* config/mips/mips.c (mips_load_call_address): Check
	TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
	(mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
	Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
	(mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
	TARGET_ABICALLS && TARGET_NEWABI.
	(mips_current_loadgp_style): Check TARGET_USE_GOT instead of
	TARGET_ABICALLS.
	(mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
	(mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
	TARGET_ABICALLS && TARGET_NEWABI.
	(mips_output_mi_thunk): Check TARGET_USE_GOT instead of
	TARGET_ABICALLS.  Check TARGET_CALL_SAVED_GP instead of
	TARGET_NEWABI.  Use TARGET_USE_PIC_FN_ADDR_REG to decide
	whether indirect calls must use $25.
	(mips_extra_live_on_entry): Check TARGET_GOT instead of
	TARGET_ABICALLS.
	* config/mips/mips.md (jal_macro): Check flag_pic and
	TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
	(builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
	instead of TARGET_ABICALLS.
	(exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
	TARGET_ABICALLS && TARGET_OLDABI.
	(load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
	(sibcall): In the comment above the define_insn, mention
	TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
	* config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
	instead of TARGET_ABICALLS.

2007-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>

	* doc/md.texi (Blackfin family constraints): Document PA and PB.
	* config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
	(MACFLAGS_MATCH_P): New macro.
	* config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
	(bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
	* config/bfin/bfin.md (MACFLAG_IS_M): New constant.  Renumber some of
	the other MACFLAG constants.
	(sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
	(flag_machi): Tighten constraints.  Renumber some of the operands.
	(flag_machi_acconly): Tighten constraints.  Correct operand numbers in
	output template.
	(flag_machi_parts_acconly): New pattern.
	(flag_macinithi): Tighten constraints.  Allow any accumulator to be
	used.
	(flag_macinit1hi): Tighten constraints.
	(flag_mul_macv2hi_parts_acconly): New pattern.

	* config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
	Use a more efficient implementation.
	* config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
	inline sequences when not optimizing for size.

	* config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
	movhi_high2low): Delete, merge functionality into...
	(packv2hi): ... this pattern.

	2007-02-11  Jie Zhang  <jie.zhang@analog.com>
	* config/bfin/bfin.opt (msim): New option.
	(mcpu=): New option.
	* config/bfin/bfin-protos.h (enum bfin_cpu): New.
	(bfin_cpu_t): Typedef of enum bfin_cpu.
	(bfin_cpu_type): New declaration.
	* config/bfin/elf.h (STARTFILE_SPEC): Add support for
	-msim and -mcpu= options.
	(LIB_SPEC): Likewise.
	* config/bfin/bfin.c (bfin_cpu_type): Define.
	(bfin_handle_option): Handle -mcpu= option.
	* config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
	(TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
	__ADSPBF533__ or __ADSPBF537__ according to the cpu type.

2007-04-12  Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
	(arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
	(powerpc-wrs-vxworksae): Use ${tm_file}.
	(i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
	after elfos.h.  Remove i386/sysv4.h and add i386/vx-common.h.
	* config/i386/vx-common.h: New file.

2007-04-12  Richard Sandiford  <richard@codesourcery.com>

	* config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
	of crt0.o%s.

2007-04-12  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
	ldxtr.

2007-04-12  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/31078
	PR c++/31103
	* c-common.c (c_build_qualified_type): Set canonical type
	appropriately.

2007-04-12  Richard Guenther  <rguenther@suse.de>

	* tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
	lower bound and element size if lower bound is not zero
	or either of the ARRAY_REF operands is set.

2007-04-12  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/24689
	PR tree-optimization/31307
	* fold-const.c (operand_equal_p): Compare INTEGER_CST array
	indices by value.
	* gimplify.c (canonicalize_addr_expr): To be consistent with
	gimplify_compound_lval only set operands two and three of
	ARRAY_REFs if they are not gimple_min_invariant.  This makes
	it never at this place.
	* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.

2007-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
	null before emitting a .nsubspa directive.

2007-04-11  Diego Novillo  <dnovillo@redhat.com>

	* tree-ssa-alias.c (dump_mem_ref_stats): Do not call
	need_to_partition_p if there are no memory statements in the
	function.

2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
	(gcd_of_steps_may_divide_p): New function.
	(analyze_miv_subscript): Use gcd_of_steps_may_divide_p.

2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>

	* reload.c (find_reloads_toplev, find_reloads_address,
	find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
	not a pointer equality test, to decide if we need to call
	push_reg_equiv_alt_mem.

2007-04-11  Sebastian Pop  <sebastian.pop@inria.fr>

	* tree-data-ref.c (affine_function_zero_p, constant_access_functions,
	insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps):
	New.
	(build_classic_dist_vector): Call add_distance_for_zero_overlaps.

2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-data-ref.c (add_multivariate_self_dist): Force the distance
	vector to be positive.

2007-04-11  Diego Novillo  <dnovillo@redhat.com>

	PR 30735
	PR 31090
	* doc/invoke.texi: Document --params max-aliased-vops and
	avg-aliased-vops.
	* tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
	debug_memory_partitions): Move to tree-flow.h
	* params.h (AVG_ALIASED_VOPS): Define.
	* tree-ssa-alias.c (struct mp_info_def): Remove.  Update all
	users.
	(mp_info_t): Likewise.
	(get_mem_sym_stats_for): New.
	(set_memory_partition): Move from tree-flow-inline.h.
	(mark_non_addressable): Only clear the set of symbols for the
	partition if it exists.
	(dump_memory_partitions): Move from tree-ssa-operands.c
	(debug_memory_partitions): Likewise.
	(need_to_partition_p): New.
	(dump_mem_ref_stats): New.
	(debug_mem_ref_stats): New.
	(dump_mem_sym_stats): New.
	(debug_mem_sym_stats): New.
	(update_mem_sym_stats_from_stmt): New.
	(compare_mp_info_entries): New.
	(mp_info_cmp): Call it.
	(sort_mp_info): Change argument to a list of mem_sym_stats_t
	objects.
	(get_mpt_for): Move from tree-ssa-operands.c.
	(find_partition_for): New.
	(create_partition_for): Remove.
	(estimate_vop_reduction): New.
	(update_reference_counts): New.
	(build_mp_info): New.
	(compute_memory_partitions): Refactor.
	Document new heuristic.
	Call build_mp_info, update_reference_counts,
	find_partition_for and estimate_vop_reduction.
	(compute_may_aliases): Populate virtual operands before
	calling debugging dumps.
	(delete_mem_sym_stats): New.
	(delete_mem_ref_stats): New.
	(init_mem_ref_stats): New.
	(init_alias_info): Call it.
	(maybe_create_global_var): Remove alias_info argument.
	Get number of call sites and number of pure/const call sites
	from gimple_mem_ref_stats().
	(dump_alias_info): Call dump_memory_partitions first.
	(dump_points_to_info_for): Show how many times a pointer has
	been dereferenced.
	* opts.c (decode_options): For -O2 set --param
	max-aliased-vops to 500.
	For -O3 set --param max-aliased-vops to 1000 and --param
	avg-aliased-vops to 3.
	* fortran/options.c (gfc_init_options): Remove assignment to
	MAX_ALIASED_VOPS.
	* tree-flow-inline.h (gimple_mem_ref_stats): New.
	* tree-dfa.c (dump_variable): Dump memory reference
	statistics.
	Dump NO_ALIAS* settings.
	(referenced_var_lookup): Tidy.
	(mem_sym_stats): New.
	* tree-ssa-copy.c (may_propagate_copy): Return true if DEST
	and ORIG are different SSA names for a memory partition.
	* tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
	* tree-flow.h (struct mem_sym_stats_d): Define.
	(mem_sym_stats_t): Define.
	(struct mem_ref_stats_d): Define.
	(struct gimple_df): Add field mem_ref_stats.
	(enum noalias_state): Define.
	(struct var_ann_d): Add bitfield noalias_state.
	(mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
	debug_mem_ref_stats, debug_memory_partitions,
	debug_mem_sym_stats): Declare.
	* tree-ssa-structalias.c (update_alias_info): Update call
	sites, pure/const call sites and asm sites in structure
	returned by gimple_mem_ref_stats.
	Remove local variable IS_POTENTIAL_DEREF.
	Increase NUM_DEREFS if the memory expression is a potential
	dereference.
	Call update_mem_sym_stats_from_stmt.
	If the memory references memory, call
	update_mem_sym_stats_from_stmt for all the direct memory
	symbol references found.
	(intra_create_variable_infos): Set noalias_state field for
	pointer arguments according to the value of
	flag_argument_noalias.
	* tree-ssa-structalias.h (struct alias_info): Remove fields
	num_calls_found and num_pure_const_calls_found.
	(update_mem_sym_stats_from_stmt): Declare.
	* params.def (PARAM_MAX_ALIASED_VOPS): Change description.
	Set default value to 100.
	(PARAM_AVG_ALIASED_VOPS): Define.

2007-04-11  Richard Guenther  <rguenther@suse.de>

	PR middle-end/31530
	* simplify-rtx.c (simplify_binary_operation_1): Do not simplify
	a * -b + c as c - a * b if we honor sign dependent rounding.

2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
	bfin_expand_strmov.
	* config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
	bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
	variables.
	(initialize_trampoline): Don't use old-style function definition.
	(bfin_secondary_reload): Mark IN_P argument as unused.

2007-04-10  Sebastian Pop  <sebastian.pop@inria.fr>

	PR tree-optimization/31343
	* tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
	(build_polynomial_chrec): Return a scalar when the evolution is zero.
	* testsuite/gcc.dg/vect/pr31343.c: New.

2007-04-10  Eric Christopher  <echristo@apple.com>

	* config/i386/i386.h (X87_FLOAT_MODE_P): New.
	* config/i386/i386.md (*cmpfp0): Use.
	(*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
	(*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
	(fix_trunc<mode>_i386_fisttp): Ditto.
	(fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
	(*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
	(fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
	(fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
	(*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
	(*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
	(unnamed_splitters): Ditto.
	* config/i386/i386.c (output_fix_trunc): Assert that
	we're not being passed a TFmode operand.

2007-04-10  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/31526
	* tree-inline.c (copy_cfg_body): Use last_basic_block instead of
	n_basic_blocks to find newly added blocks.

2007-04-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
	alternative.
	(fix_trunc<mode>si_sse): Ditto.
	(*floatsisf2_mixed, *floatsisf2_sse): Ditto.
	(*floatsidf2_mixed, *floatsidf2_sse): Ditto.
	(*floatdisf2_mixed, *floatdisf2_sse): Ditto.
	(*floatdidf2_mixed, *floatdidf2_sse): Ditto.
	(floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
	expander using SSEMODEF mode macro.
	(floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
	expander using SSEMODEF mode macro.
	(*floathi<mode>2_i387): Rename from *floathisf2_i387 and
	*floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
	(*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
	*floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
	(*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
	*floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
	(float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
	Macroize insn using X87MODEF mode macro.

2007-04-09  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (sse2_pinsrw): Removed.
	(sse2_pextrw): Renamed to ...
	(*sse2_pextrw): This.

2007-04-09  Jan Hubicka  <jh@suse.cz>

	PR target/27869
	* config/i386/sse.md
	(sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
	(sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
	(sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
	(sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.

2007-04-09  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
	multiple fields of union.

2007-04-09  Zdenek Dvorak  <dvorakz@suse.cz>

	* cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
	(create_preheaders): Check that loops are available.
	(fix_loop_structure): Clean up, improve comments.
	* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
	Check that loops are available.  Set LOOP_CLOSED_SSA to the loops
	state flags.
	* tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
	* predict.c (tree_estimate_probability): Do not call
	calculate_dominance_info.  Call create_preheaders.
	* tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
	rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
	flags.
	* cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
	* cfgloop.h (LOOP_CLOSED_SSA): New constant.
	* tree-cfg.c (tree_split_edge): Make an assert more precise.
	* tree-ssa-threadedge.c (thread_across_edge): Comment the function
	arguments.

2007-04-08  Jan Hubicka  <jh@suse.cz>

	* tree.h (maybe_fold_offset_to_component_ref): Declare.
	* tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
	* fold-const.c (fold_unary): Use it.

2007-04-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* varasm.c (assemble_variable): Remove call to
	lang_hooks.decls.prepare_assemble_variable.
	* langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
	(LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
	* langhooks.h (lang_hooks_for_decls): Remove
	prepare_assemble_variable.

2007-04-08  Mike Stump  <mrs@apple.com>

	* config/i386/i386.c: Use inc/dec on Core2.

2007-04-08  Steven Bosscher  <steven@gcc.gnu.org>

	* langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
	lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
	lhd_tree_inlining_end_inlining): Remove.
	* langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
	add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
	end_inlining hooks.
	* langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
	lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
	lhd_tree_inlining_end_inlining): Remove prototypes.
	(LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
	LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
	LANG_HOOKS_TREE_INLINING_START_INLINING,
	LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.

	* c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
	not set it.

2007-04-08  Anatoly Sokolov <aesok@post.ru>

	PR target/29932
	* config/avr/predicates.md (io_address_operand): Delete predicate.
	(low_io_address_operand): Don't use 'mode' argument.
	(higth_io_address_operand): Rename ...
	(high_io_address_operand): ... to this. Don't use 'mode' argument.
	* config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
	for above change.

2007-04-07  Daniel Berlin  <dberlin@dberlin.org>

	Revert change removing staticp.

2007-04-07  Anatoly Sokolov <aesok@post.ru>

	PR target/30289
	* config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
	earlyclobber.

2007-04-07  Bruce Korb  <bkorb@gnu.org>

	* c.opt: Add -Wformat-contains-nul.
	* c-format.c (set_Wformat): Set warn_format_contains_nul to the
	  -Wformat setting.
	(check_format_info_main): Check OPT_Wformat_contains_nul before emitting
	the NUL byte warning.

2007-04-07  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_handle_option): Handle SSSE3.

2007-04-06  Daniel Berlin  <dberlin@dberlin.org>

	* tree.c (staticp): No longer use staticp langhook.
	* langhooks.c (lhd_staticp): Removed.
	* langhooks.h (struct lang_hooks): Remove staticp.
	* c-common.c (c_staticp): Remove.
	* c-common.h (c_staticp): Ditto.
	* langhooks-defs.h (lhd_staticp): Ditto.
	(LHD_HOOKS_STATICP): Ditto
	* tree.h (gcc_assert_lowered): New macro.

2007-04-06  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
	argument "reliable".
	(infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
	Add argument "reliable".  Propagate it through calls.
	(infer_loop_bounds_from_undefined): Derive number of iterations
	estimates from references in blocks that do not dominate loop latch.
	(gcov_type_to_double_int): New function.
	(estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
	and expected_loop_iterations_unbounded.
	* cfgloopanal.c (expected_loop_iterations_unbounded): New function.
	(expected_loop_iterations): Use expected_loop_iterations_unbounded.
	* tree-data-ref.c (estimated_loop_iterations): Export.
	(get_references_in_stmt): Fix -- do not return addresses of local
	objects.
	* cfgloop.h (expected_loop_iterations_unbounded,
	estimated_loop_iterations): Declare.

2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>

	* tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.

2007-04-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
	and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
	(*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
	Use output_387_reg_move().
	(*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
	expander using X87MODEF12 mode macro.
	(*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
	choosing register preferences.  Use output_387_reg_move().
	(*truncxfdf2_mixed): Combine alternatives, use "r" alternative
	instead of "x".  Use output_387_reg_move().
	(*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
	*truncxfdf2_i387_noop.  Macroize insn using X87MODEF12 mode macro.
	(*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
	*truncxfdf2_i387.  Macroize insn using X87MODEF12 mode macro.
	Use output_387_reg_move().
	(*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
	mode macro.
	(*truncxf?f_i387 splitter): Ditto.

2007-04-06  Daniel Berlin  <dberlin@dberlin.org>

	* langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
	LANG_HOOKS_SAFE_FROM_P.
	* expr.c (safe_from_p): Remove langhook call.
	* langhooks.h (lang_hooks): Remove safe_from_p.
	(lhd_safe_from_p): Remove prototype.
	* langhooks.c (lhd_safe_from_p): Remove.

2007-04-06  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (decide_is_function_needed): Do not keep always_inline
	functions.

2007-04-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
	* config/i386/i386.md (*movsf_1, *movdf_nointeger,
	*movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
	*movxf_integer): Use output_387_reg_move() for x87 reg->mem
	alternative.
	(*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
	*extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.

2007-04-05  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (print_operand) [+]: Remove.
	(alpha_end_function): Print nop if call at end of function.
	* config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
	* config/alpha/alpha.md (UNSPEC_LDGP1): New.
	(call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
	(call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
	(call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
	the call pattern. Update peepholes to match.

2007-04-05  Janis Johnson  <janis187@us.ibm.com>

	* doc/extend.texi (Other Builtins): Add decimal float variants
	of signbit.
	* builtins.def: Ditto.
	* builtins.c (expand_builtin): Ditto.

2007-04-05  Uros Bizjak  <ubizjak@gmail.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR target/31478
	* config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
	of V8HImode when calling ix86_binary_operator_ok.
	(sse2_pmaddwd): Call ix86_binary_operator_ok.
	(sdot_prodv8hi): Operands 1 and 2 must be register.

2007-04-05  Alexandre Oliva  <aoliva@redhat.com>

	* tree-sra.c (try_instantiate_multiple_fields): Needlessly
	initialize align to silence bogus warning.

2007-04-05  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/22156
	* tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
	all_no_warning.
	(struct sra_walk_fns): Remove use_all parameter from use.
	(sra_hash_tree): Handle BIT_FIELD_REFs.
	(sra_elt_hash): Don't hash bitfld blocks.
	(sra_elt_eq): Skip them in parent compares as well.  Handle
	BIT_FIELD_REFs.
	(sra_walk_expr): Don't maintain or pass down use_all_p.
	(scan_use): Remove use_all parameter.
	(scalarize_use): Likewise.  Re-expand assignment to
	BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
	output, and re-scalarize after output.  Don't mark anything
	for no warning.
	(scalarize_ldst): Adjust.
	(scalarize_walk_gimple_modify_statement): Likewise.
	(build_element_name_1): Handle BIT_FIELD_REFs.
	(instantiate_element): Don't warn for any element whose parent
	is used as a whole.
	(instantiate_missing_elements_1): Return the sra_elt.
	(canon_type_for_field): New.
	(try_instantiate_multiple_fields): New.
	(instantiate_missing_elemnts): Use them.
	(mark_no_warning): Removed.
	(generate_one_element_ref): Handle BIT_FIELD_REFs.
	(REPLDUP, sra_build_elt_assignment): New.
	(generate_copy_inout): Use them.
	(generate_element_copy): Likewise.  Handle bitfld differences.
	(generate_element_zero): Don't recurse for blocks.  Use
	sra_build_elt_assignment.
	(generate_one_element_int): Take elt instead of var.  Use
	sra_build_elt_assignment.
	(generate_element_init_1): Adjust.
	(scalarize_use, scalarize_copy): Use REPLDUP.
	(scalarize_ldst): Move assert before dereference.
	(dump_sra_elt_name): Handle BIT_FIELD_REFs.

2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>

	* regmove.c: Fix unused variable warnings due to previous commit.

2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>

	* regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
	(regmove_bb_head): Remove.
	(copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
	(regmove_optimize): Don't do unnecessary CFG fixes for non-existing
	problems with fixup_match_1.
	Don't initialize/free regmove_bb_head.

	(reg_is_remote_constant_p): If an insn is in the same basic block
	but not before INSN, consider it remote, too.

2007-04-05  Anatoly Sokolov <aesok@post.ru>

	PR target/25448
	* config/avr/avr.c (avr_handle_fndecl_attribute): Use the
	DECL_ASSEMBLER_NAME, not the DECL_NAME.

2007-04-05  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
	(CONDITIONAL_REGISTER_USAGE): Likewise.

2007-04-04  Richard Henderson  <rth@redhat.com>

	* config/alpha/lib1funcs.asm: Remove unused file.

2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>

	PR other/31356
	* opts.c (print_specific_help): Fix --help=<language>
	header line.
	(common_handle_option): Support --help=common.

2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>

	PR other/31353
	* gcc.c (main): Do not run the linker if
	print_subprocess_help indicates that it shouldn't be
	run.

2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>

	PR doc/31355
	* doc/invoke.texi (--help=): Document <languages> value, fix
	formatting in tables of values.

2007-04-04  Danny Smith  <dannysmith.users.sourceforge.net>

	* config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
	dllimport attribute of virtual methods.

2007-04-04  Chen Liqin  <liqin@sunnorth.com.cn>

	* config/score/crti.asm: Change _bss_start to __bss_start.
	* config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
	(OUTGOING_REG_PARM_STACK_SPACE) update.
	* config/score/score.opt: add options to make backend support
	score5, score5u, score7 and score7d.
	* config/score/score.md: Likewise.
	* config/score/misc.md: Likewise.
	* config/score/mac.md: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: update constraints define.

2007-04-03  Richard Henderson  <rth@redhat.com>

	* expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
	an appropriate type, use the mode instead.

2007-04-03  Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
	Set the default --with-arch setting to mips2.
	* config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
	(MULTILIB_EXCEPTIONS): Redefine with new multilibs.
	(MULTILIB_OSDIRNAMES): Delete.
	(MULTILIB_DIRNAMES): Define.
	* config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
	(LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
	(TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
	definitions, except for _WRS_R3K_EXC_SUPPORT.  Call
	VXWORKS_OS_CPP_BUILTINS.
	(SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
	(MIPS_DEBUGGING_INFO): Undefine.
	(FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.

2007-04-03  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/30704
	* fold-const.c (native_encode_real): Encode real.c provided longs
	as a series of 32-bit native integers.
	(native_interpret_real): Interpret buffer as a series of 32-bit
	native integers.

2007-04-03  Richard Guenther  <rguenther@suse.de>

	* genpreds.c (write_insn_constraint_len): Write function
	optimized for CONSTRAINT_LEN implementation.
	(write_tm_preds_h): Output insn_constraint_len inline and
	use it for CONSTRAINT_LEN.
	(write_insn_preds_c): Don't output insn_constraint_len.
	* doc/md.texi (define_register_constraint): Document multi-letter
	constraints shall have the same length if they start with the same
	letter.

2007-04-03  Uros Bizjak  <ubizjak@gmail.com>

	PR target/31175
	* config/i386/i386.md (isinf<mode>2): Expand only when
	TARGET_C99_FUNCTIONS is set.

2007-04-03  Uros Bizjak  <ubizjak@gmail.com>

	* config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
	(x86_64-*-linux*): Ditto.
	* config/i386/i386.opt (mpc): New option.
	* config/i386/i386.c (overrride_options): Handle
	ix87_precision_string.
	* config/i386/crtprec.c: New file.
	* config/i386/t-crtpc: Ditto.
	* config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
	and -mpc80 options.
	* config/i386/linux64.h (ENDFILE_SPEC): Ditto.
	* config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
	crtprec32.o, crtprec64.o and crtprec80.o.

	* doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
	and -mpc80 options.
	(i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.

2007-04-02  Eric Christopher  <echristo@apple.com>

	* doc/invoke.texi (i386 and x86-64 Options): Document -m64
	limitations on darwin.

2007-04-02  Anatoly Sokolov <aesok@post.ru>

	PR target/31137
	* config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.

2007-04-02  Dave Korn  <dave.korn@artimi.com>

	* doc/tm.texi (FUNCTION_MODE): Update and extend documentation.

2007-04-02  Dave Korn  <dave.korn@artimi.com>

	* libgcc2.h (exception_descriptor): Don't forward-declare.
	(__get_eh_table_language, __get_eh_table_version): Delete
	prototypes of long-dead functions.

2007-04-01  Daniel Berlin  <dberlin@dberlin.org>

	* ebitmap.h: New file
	* ebitmap.c: New file
	* Makefile.in (ebitmap.o): New target.

2007-04-01  Jan Hubicka  <jh@suse.cz>

	* emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
	before very first instruction.

2007-04-01  Jan Hubicka  <jh@suse.cz>

	* ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
	waring on 64bit hosts.
	* bitmap.h: Fix typo in bitmap_head_def.

2007-04-01  Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/31391
	* cfgcleanup.c (try_optimize_cfg): If a removed label is turned
	into a DELETED_LABEL note, and the label is in an empty basic
	block, update BB_END as well as BB_HEAD.

2007-04-01  Richard Henderson  <rth@redhat.com>

	PR tree-optimization/31169
	* tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
	to varying if the range is outside [0,  prec-1].

2007-04-01  Richard Sandiford  <richard@codesourcery.com>

	PR target/31388
	* config/mips/mips.md (load_const_gp): New insn.
	* config/mips/mips.c (mips_split_symbol): Avoid using or creating
	the MIPS16 GP pseudo register if no_new_pseudos.
	(mips16_gp_pseudo_reg): Use gen_load_const_gp.

2007-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR target/31364
	* config/rs6000/rs6000.md (call): Convert to LR hard reg for
	secureplt.
	(call_value): Likewise.

2007-03-31  Wolfgang Bangerth  <bangerth@dealii.org>
	    Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 14737
	* doc/invoke.texi: (optimization options): Reword description
	of -ffast-math. Document its primary purpose.

2007-03-31  Richard Guenther  <rguenther@suse.de>

	* omp-low.c (splay-tree.h): Include.
	(lookup_decl): Replace splay-tree usage by pointer-map.
	(maybe_lookup_decl): Likewise.
	(new_omp_context): Likewise.
	(delete_omp_context): Likewise.
	* gimplify.c (splay-tree.h): Include.
	* tree-inline.c (insert_decl_map): Replace splay-tree usage by
	pointer-map.
	(remap_ssa_name): Likewise.
	(remap_decl): Likewise.
	(remap_type_1): Likewise.
	(remap_type): Likewise.
	(copy_body_r): Likewise.
	(expand_call_inline): Likewise.
	(clone_body): Likewise.
	(copy_tree_r): Likewise.
	(remap_save_expr): Likewise.
	(unsave_r): Likewise.
	(unsave_expr_now): Likewise.
	(tree_function_versioning): Likewise.
	(build_duplicate_type): Likewise.
	* tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
	(struct copy_body_data): Replace splay-tree by pointer-map.
	* Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
	not $(SPLAY_TREE_H).
	(gimplify.o): Depend on $(SPLAY_TREE_H).
	(omp-low.p): Likewise.

2007-03-31  Anatoly Sokolov <aesok@post.ru>

	* config/avr/predicates.md (even_register_operand,
	odd_register_operand): New predicates.
	* config/avr/avr.md (movw peephole2): New.
	(movw_r peephole2): New.

2007-03-30  Rafael Ávila de Espíndola  <espindola@google.com>

	* tree.h (get_signed_or_unsigned_type): New.
	* fold-const.c (operand_equal_for_comparison_p): Use
	get_signed_or_unsigned_type instead of
	lang_hooks.types.signed_or_unsigned_type.
	* expr.c (store_expr): Ditto.
	* langhooks.c (get_signed_or_unsigned_type): New.
	(lhd_signed_or_unsigned_type): New.
	* langhooks.h (lhd_signed_or_unsigned_type): New.
	* langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.

2007-03-30  Richard Henderson  <rth@redhat.com>

	* tree-ssa-loop-ivopts.c: Include target.h.
	(produce_memory_decl_rtl): Pass the rtx through encode_section_info.
	(get_address_cost): Force SYMBOL_FLAG_LOCAL set.
	(force_expr_to_var_cost): Use produce_memory_decl_rtl.
	* Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.

2007-03-30  Richard Henderson  <rth@redhat.com>
	    Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
	default for 64-bit.
	(PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
	(TARGET_64BIT_MS_ABI): New.
	(DBX_REGISTER_NUMBER): Handle 64-bit.
	(SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
	(LONG_TYPE_SIZE): Force to 32.
	(REG_PARM_STACK_SPACE): New.
	(OUTGOING_REG_PARM_STACK_SPACE): New.
	(REGPARM_MAX, SSE_REGPARM_MAX): New.
	(HANDLE_PRAGMA_PUSH_POP_MACRO): New.
	(STACK_BOUNDARY): Use 128 for 64-bit.
	* config/i386/cygwin.asm: Use push/ret to preserve call stack.
	Add 64-bit implementation.
	* config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
	argument unused.
	* config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
	(override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
	Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
	for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
	(ix86_handle_cconv_attribute): Don't warn when ignoring if
	TARGET_64BIT_MS_ABI.
	(ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
	(ix86_pass_by_reference): Likewise.
	(ix86_function_value_regno_p): Likewise.
	(ix86_build_builtin_va_list): Likewise.
	(ix86_va_start, ix86_gimplify_va_arg): Likewise.
	(function_arg_advance_ms_64): New.
	(function_arg_advance): Call it.
	(function_arg_ms_64): New.
	(function_arg): Call it.
	(function_value_ms_64): New.
	(ix86_function_value_1): Call it.
	(return_in_memory_ms_64): New.
	(ix86_return_in_memory): Call it.
	(setup_incoming_varargs_ms_64): New.
	(ix86_setup_incoming_varargs): Call it.
	(ix86_expand_prologue): Handle 64-bit stack probing.
	(legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
	(output_pic_addr_const): Likewise.
	(x86_this_parameter): Likewise.
	(x86_output_mi_thunk): Likewise.
	(x86_function_profiler): Likewise.
	(TARGET_STRICT_ARGUMENT_NAMING): New.
	* config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
	(TARGET_64BIT_MS_ABI): New.
	(CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
	* config/i386/i386.md (allocate_stack_worker): Remove.
	(allocate_stack_worker_32): Rename from allocate_stack_worker_1;
	describe the clobber of eax without a match_scratch.
	(allocate_stack_worker_postreload): Remove.
	(allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
	describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
	(allocate_stack_worker_rex64_postreload): Remove.
	(allocate_stack): Handle 64-bit.
	* config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
	* config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
	(EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
	(STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
	(STANDARD_STARTFILE_PREFIX_1): Likewise.
	* config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
	* config.build (x86_64-*-mingw*): New host.
	* config.host (x86_64-*-mingw*): New host.
	* config.gcc (x86_64-*-mingw*): New target.
	* gthr-win32.h (__gthread_key_create): Mark dtor unused.

2007-03-30  Richard Henderson  <rth@redhat.com>
	    Kai Tietz  <kai.tietz@onevision.com>

	* c-pragma.c (struct def_pragma_macro_value): New.
	(struct def_pragma_macro): New.
	(pushed_macro_table): New.
	(dpm_hash, dpm_eq): New.
	(handle_pragma_push_macro, handle_pragma_pop_macro): New.
	(init_pragma): Install them.
	* doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.

2007-03-30  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (avr_override_options): Clear
	'flag_delete_null_pointer_checks'.

2007-03-30  Paolo Carlini  <pcarlini@suse.de>

	PR c++/26099
	* c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
	RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
	RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
	RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
	RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
	RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
	RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
	C++ extensions.
	* doc/extend.texi (Extensions to the C++ Language): Add Type Traits.

2007-03-30  Steven Bosscher  <steven@gcc.gnu.org>

	* regmove.c: Move all of pass_stack_adjustments from here...
	* combine-stack-adj.c: ...to this new file.
	* Makefile.in: Add rules for combine-stack-adj.o.

2007-03-30  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/31383
	* tree-data-ref.c (affine_function_equal_p): Do not require the
	vectors to have the same length.

2007-03-30  Jan Hubicka  <jh@suse.cz>

	PR middle-end/30700
	* dwarf2out.c (reference_to_unused): Ask cgraph for functions
	availablility; add more sanity checking; ask varpool only about
	VAR_DECL.

2007-03-29  Richard Henderson  <rth@redhat.com>

	* unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
	to decide, but __SIZEOF_LONG_LONG__.

2007-03-29  Richard Henderson  <rth@redhat.com>

	* emutls.c (struct __emutls_array): New.
	(emutls_destroy): Use it instead of casting element 0 from void*.
	(__emutls_get_address): Likewise.

2007-03-29  Richard Henderson  <rth@redhat.com>

	* varasm.c (initializer_constant_valid_p): Don't deny
	DECL_DLLIMPORT_P on functions.

	* config/i386/cygming.h: Remove function declarations.
	(SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
	(ASM_OUTPUT_LABELREF): Remove.
	(COMMON_ASM_OP): Remove.
	(ASM_OUTPUT_COMMON): Remove.
	(ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
	(ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
	(ASM_DECLARE_FUNCTION_NAME): Likewise.
	* config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
	Rename from TARGET_ENCODE_SECTION_INFO.
	* config/i386/netware.h: Likewise.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
	of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
	(legitimate_constant_p): Reject dllimports.
	(dllimport_map, get_dllimport_decl): New.
	(legitimize_dllimport_symbol): New.
	(legitimize_address, ix86_expand_move): Use it.
	(TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
	* config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
	(SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
	(SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
	* config/i386/predicates.md (constant_call_address_operand): Only
	accept symbols; reject dllimport_p symbols.
	* config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
	i386_pe_maybe_record_exported_symbol.
	* config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
	(i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
	(i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
	trust the setting of DECL_DLLIMPORT_P.
	(i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
	(i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
	(gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
	tidy the argument scanning loop.
	(i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
	SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
	(i386_pe_strip_name_encoding): Remove.
	(i386_pe_binds_local_p): New.
	(i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
	(i386_pe_output_labelref): Remove.
	(i386_pe_asm_output_aligned_decl_common): New.
	(i386_pe_maybe_record_exported_symbol): Rename from
	i386_pe_record_exported_symbol; check for dllexported symbols.

2007-03-29  Zack Weinberg  <zack@mrtock.ucsd.edu>

	* gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
	add comment explaining why vsnprintf cannot be used.

2007-03-29  Douglas Gregor  <doug.gregor@gmail.com>

	PR tree-optimization/30666
	* tree.c (build_complex_type): When creating type names for DWARF2
	debug info, create TYPE_DECLs for TYPE_NAME instead of
	IDENTIFIER_NODEs.
	(build_common_tree_nodes_2): Use build_complex_type when building
	predefined complex types, to preserve canonical types.

2007-03-29  Steven Bosscher  <steven@gcc.gnu.org>

	* ifcvt.c (struct noce_if_info): Add then_else_reversed field.
	(noce_get_alt_condition): Look at it to determine whether to
	reverse the condition or not.
	(noce_get_condition): Substitute the truth for lies.
	(noce_find_if_block): Set the then_else_reversed field.

2007-03-29  Lars Poeschel <larsi@wh2.tu-dresden.de>

	* config/fr30/fr30.md (movdi): Do not accept immediates as the
	destination of this insn.
	* config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
	than calling gen_rtx_SET directly.  Use r0 to hold the value of
	'address + 4' rather than a stack based temporary which can be
	mis-optimized away.

2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_secondary_input_reload_class,
	s390_secondary_output_reload_class): Functions removed.
	(s390_secondary_reload): New function.
	(TARGET_SECONDARY_RELOAD): Target macro defined.
	* config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
	SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
	* config/s390/s390.md ("reload_outti", "reload_outdi",
	"reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
	"reload_out<mode>"): Expanders removed.
	("reload<mode>_plus", "reload<mode>_nonoffmem_in",
	"reload<mode>_nonoffmem_out"): Expanders added.

2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>

	* regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair
	action if SRC->DEST replacement failed anyway.

2007-03-28  Mike Stump  <mrs@apple.com>

	* config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
	* config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
	* config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.

2007-03-28  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* config.gcc: Accept barcelona as a variant of amdfam10.
	* config/i386/i386.c (override_options): Likewise.
	* doc/invoke.texi: Likewise.

2007-03-28  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-dfa.c (get_ref_base_and_extent): Do not expect positive
	offsets for BIT_FIELD_REF and COMPONENT_REF.

2007-03-28  Richard Guenther  <rguenther@suse.de>

	* tree.c (is_global_var): Move ...
	* tree-flow-inline.h (is_global_var): ... here.
	* tree.h (is_global_var): Remove declaration.

2007-03-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
	option.
	(TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
	* config/i386/i386.c (ix86_tune_features): Initialize new
	tuning option.
	* config/i386/predicates.md (promotable_binary_operator): Use
	TARGET_TUNE_PROMOTE_HIMODE_IMUL.

2007-03-28  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>

	PR target/31380
	* config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.

2007-03-28  Lars Poeschel <larsi@wh2.tu-dresden.de>

	* config/fr30/fr30.md (movsi_internal): Change destination
	constraint from m to V and add m to the end.

2007-03-28  Christian Bruel  <christian.bruel@st.com>

	* config/sh/sh.md (movsi_i): Fix type attribute.

2007-03-28  Christian Bruel  <christian.bruel@st.com>

	* config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
	(movsf_ie): Likewise.

2007-03-28  Christian Bruel  <christian.bruel@st.com>

	* config.gcc: Add sh4-300 to multilib.
	* config/sh/t-mlib-sh4-300: New file.

2007-03-28  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
	("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
	fix_trunc<mode>di2.
	("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
	fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
	("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
	"fixuns_trunctddi2"): Whitespace fix.

2007-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
	the definition of struct sh_args.
	(CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
	CALL_COOKIE_INT_REG_GET): Likewise.

2007-03-28  Steven Bosscher  <steven@gcc.gnu.org>

	* ifcvt.c (cond_exec_find_if_block): Return FALSE if no
	transformations are applied successfully.

2007-03-27  Douglas Gregor  <doug.gregor@gmail.com>

	* tree.c (tree_contains_struct): Permit 512 tree codes.
	* tree.h (tree_contains_struct): Ditto.
	(MAX_TREE_CODES): Ditto.
	(struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
	SPARE member to store remaining padding bits.

2007-03-27  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
	architecture.

2007-03-27  Janis Johnson  <janis187@us.ibm.com>

	* configure.ac: Fix assembler test for powerpc*-linux decimal float.
	* configure: Regenerate.

	* configure: Regenerate using the correct version of autoconf.

2007-03-27  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
	pointer regs.
	* config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
	regs to "__SP_L__" and "__SP_H__".

2007-03-27  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
	computations with it with a HOST_WIDE_INT variable.

2007-03-26  Mike Stump  <mrs@apple.com>

	* config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
	objective-c-header, objective-c++-header and objc++-cpp-output
	support.
	* config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.

2007-03-26  Richard Henderson  <rth@redhat.com>

	PR target/31361
	* config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
	IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
	IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
	IX86_BUILTIN_PSRLQ128): New.
	(ix86_init_mmx_sse_builtins): Add them.
	(ix86_expand_builtin): Expand them.
	* config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
	operand 2 be TImode.
	* config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
	_mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
	_mm_srli_epi64): Mark __B const.
	(_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
	(_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
	_mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
	new two-vector shift builtins.

2007-03-26  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/31345
	* tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
	[+INF, +INF(OVF)] into VARYING.

2007-03-26  Zack Weinberg  <zackw@panix.com>

	* gengtype-parse.c: New file.
	* gengtype-yacc.y: Delete.
	* gengtype-lex.l: Don't include gengtype-yacc.h.
	Define YY_DECL and yyterminate appropriately for recursive
	descent parser.  yylval is now a string out-parameter to yylex.
	(HWS, EOID): New shorthand.
	(IWORD): Add a couple more types.
	(yylex): Add a setup stanza.  Remove the complex rules for
	detecting GTY'ed types and typedefs; replace with simple
	keyword detectors.  Adjust everything for the changed
	definition of yylval.  Ignore all pp-directives, not just #define.
	(yyerror): Delete.
	(parse_file): Rename yybegin; do not call yyparse.
	(yyend): New.
	* gengtype.c (xasprintf): Export again.
	(this_file): New.  Use everywhere __FILE__ was being used.
	(get_lang_bitmap): Special case types defined in gengtype.c.
	(do_typedef, new_structure): Suppress definition of certain types.
	(new_structure): Improve diagnostics of duplicate definitions.
	Make sure location_s is associated with input.h.
	(nreverse_pairs, define_location_structures): New functions.
	(main): Improve tagging of kludge types.  Remove old kludges
	for input.h types; use define_location_structures.
	* gengtype.h: Update prototypes.  Define token codes here.
	* Makefile.in: Remove all references to gengtype-yacc.
	Add rules for gengtype-parse.o.  Adjust rules for gengtype-lex.o
	and gengtype.
	* bitmap.h (struct bitmap_head_def): Coalesce definitions,
	add GTY((skip)) to the field that's only conditionally there.
	* doc/install.texi: Document that Bison is no longer required
	unless building treelang.

	* gengtype.c: Don't include gtyp-gen.h.
	(srcdir): Declare here.
	(base_files, lang_dir_names): Allocate dynamically.
	(gt_files, num_gt_files, num_lang_dirs): New globals.
	(measure_input_list, read_input_line, read_input_list)
	(set_lang_bitmap): New functions.
	(get_base_file_bitmap): Rename get_lang_bitmap and drastically
	simplify, relying on read_input_list to set up the bitmaps.
	(main): Arguments are no longer unused.  Check for correct number
	of command line arguments, set srcdir and srcdir_len, then call
	read_input_list, before doing anything else.  No need to worry
	about duplicates in main loop.
	* configure.ac: Simplify the calculation of all_gtfiles.
	Put language tags in there.  Don't set or substitute
	all_gtfiles_files_langs or all_gtfiles_files_frags.
	* Makefile.in: Revamp the way gengtype is invoked, now that it
	takes a file on its command line with a much simpler format.
	Remove or replace with gtyp-input.list all references to gtyp-gen.h.
	(GTFILES): Remove duplicates and C source files.
	* c-config-lang.in, cp/config-lang.in, objc/config-lang.in
	* objcp/config-lang.in: Add c-pragma.h to gtfiles.
	* configure: Regenerate.

	* gengtype.h: Remove all type definitions to gengtype.c; leave
	only definitions of options_p, type_p, and pair_p as opaque
	pointers.  Update prototypes.
	* gengtype.c: Many type definitions moved here from gengtype.h.
	Consolidate type definitions at the top of the file.
	(xvasprintf): Delete.
	(xasprintf): Make static.
	(create_nested_pointer_option): Add 'next' parameter.
	(create_field_all, create_field_at): New functions.
	(create_field): Now a thin wrapper around create_field_all.
	(create_optional_field): Rename create_optional_field_ and add
	line argument.  Original name is now a macro which supplies
	__LINE__.
	(oprintf): Use vsnprintf directly.
	(close_output_files): Use fatal rather than perror/exit.
	(note_def_vec, note_def_vec_alloc): Use create_field_at.
	(main): Set progname.  Don't use exit.
	* gengtype-yacc.y (struct_fields): Use create_field_at.
	(option, optionseqopt): Delete.
	(optionseq): Consolidate productions from option here so we
	can use the first argument to create_option.

	* gengtype-lex.l: Distinguish unions from structures in the
	token type.  Don't call find_structure; return the tag as a string.
	* gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and
	ENT_UNION.  Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is
	string.  Reorganize typedef_struct production accordingly.
	Use create_nested_ptr_option.
	* gengtype.c (create_nested_ptr_option): New function.
	* gengtype.h: Declare it.

	* gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
	(string_type): Don't declare.
	(do_scalar_typedef): Declare.
	(create_scalar_type): Update prototype.
	* gengtype.c (string_type): Make static.
	(scalar_nonchar, scalar_char): New.
	(do_scalar_typedef): Export.  Always use scalar_nonchar for the type.
	(resolve_typedef): Use scalar_nonchar for error recovery.
	(create_scalar_type): Remove name_len field.  Return scalar_char
	or scalar_nonchar as appropriate.
	(adjust_field_type): Look at scalar_is_char boolean to decide whether
	to use string_type.
	(throughout): Use scalar_nonchar instead of calling
	create_scalar_type, whenever possible.
	(main): Initialize scalar_char and scalar_nonchar before calling
	gen_rtx_next.
	* gengtype-lex.l: Adjust for removal of second argument to
	create_scalar_type.  Use yylval.s instead of yylval.t when
	returning SCALAR.
	* gengtype-yacc.y: Type of SCALAR is string.  Call
	create_scalar_type from type:SCALAR rule.  Adjust for removal of
	second argument to create_scalar_type.

	* vec.h: Remove all #if IN_GENGTYPE blocks.
	Add comment saying that changes may require adjustments to gengtype.
	* gengtype.c: Don't include coretypes.h or tm.h.
	Add comment to inclusion of errors.h.
	(note_def_vec, note_def_vec_alloc): New functions.
	* gengtype.h: Declare new functions.
	* gengtype-lex.l: Don't include coretypes.h.
	(YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
	Delete.
	(update_lineno): Remove unnecessary prototype.
	(DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
	(VEC rule): Just return VEC_TOKEN.
	* gengtype-yacc.y (VEC_TOKEN): New token type.
	(type): Add a production for VEC(a,b).
	* Makefile.in: Update dependencies.

	* gengtype-lex.l: Remove rules for parsing pointer-to-function
	typedefs that use the old PARAMS macro.

	* gengtype-lex.l: Remove all rules and states relating to yacc
	input files.
	* gengtype-yacc.y: Similarly.
	* gengtype.c (note_yacc_type): Delete function.
	* gengtype.h: Update prototypes.

2007-03-26  Joseph Myers  <joseph@codesourcery.com>

	* tree-pretty-print.c (dump_generic_node): Report precision of
	unnamed integer types.

2007-03-26  Steven Bosscher  <steven@gcc.gnu.org>

	* ifcvt.c (noce_try_store_flag_constants): Don't check
	no_new_pseudos here.
	(noce_try_store_flag_constants): Don't check no_new_pseudos.
	(noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
	noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
	noce_try_sign_mask): Likewise.
	(if_convert): Check no_new_pseudos here.

	(cond_exec_process_if_block, noce_process_if_block, find_if_block):
	Remove prototypes.
	(struct noce_if_info): Add then_bb, else_bb, join_bb members.
	(noce_get_condition): Handle new then_else_reversed argument.
	(noce_init_if_info): Remove, fold into noce_find_if_block.
	(noce_process_if_block): Take a struct noce_if_info as the
	argument.  Don't set up one based on ce_if_info.  Update pointer
	references accordingly.
	(cond_move_process_if_block): Likewise.
	(process_if_block): Removed.
	(find_if_block): Removed.  Move functionality two new functions,
	noce_find_if_block and cond_exec_find_if_block.
	(noce_find_if_block): New function.  Be aware of IF-THEN-JOIN
	blocks and the symmetric IF-ELSE-JOIN case.
	(cond_exec_find_if_block): Also new function mostly based on old
	find_if_block and process_if_block.
	(find_if_header): Replace find_if_block call with separately
	guarded calls to noce_find_if_block and cond_exec_find_if_block.
	(find_cond_trap): Update noce_get_condition call.
	(dead_or_predicable): Likewise.

2007-03-26  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
	Remove.
	(IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
	IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
	IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
	(ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
	v4si_ftype_v4si_v2di.  Remove __builtin_ia32_psllw128,
	__builtin_ia32_pslld128, __builtin_ia32_psllq128,
	__builtin_ia32_psrlw128, __builtin_ia32_psrld128,
	__builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
	__builtin_ia32_psrad128 builtins.

2007-03-26  Uros Bizjak  <ubizjak@gmail.com>

	* reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
	* config/i386/constraints.md
	(define_constraint "I"): Use IN_RANGE macro.
	(define_constraint "J"): Ditto.
	(define_constraint "K"): Ditto.
	(define_constraint "M"): Ditto.
	(define_constraint "N"): Ditto.
	(define_constraint "O"): Ditto.
	* config/i386/predicates.md
	(define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
	(define_predicate "const_0_to_3_operand"): Ditto.
	(define_predicate "const_0_to_7_operand"): Ditto.
	(define_predicate "const_0_to_15_operand"): Ditto.
	(define_predicate "const_0_to_63_operand"): Ditto.
	(define_predicate "const_0_to_255_operand"): Ditto.
	(define_predicate "const_1_to_31_operand"): Ditto.
	(define_predicate "const_2_to_3_operand"): Ditto.
	(define_predicate "const_4_to_7_operand"): Ditto.

2007-03-25  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
	in SImode for save_world.
	* config/rs6000/altivec.md (save_world, restore_world): Convert to
	LR hard reg.

2007-03-25  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/30784
	* fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
	BIT_FIELD_REF.

2007-03-25  Revital Eres  <eres@il.ibm.com>

	* tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
	  Fold movement_possibility function into it.

2007-03-25  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
	(load_macho_picbase_{si,di}): Convert to LR hard reg.
	(call_indirect_nonlocal_darwin64): Same.
	(call_nonlocal_darwin64): Same.
	(call_value_indirect_nonlocal_darwin64): Same.
	(call_value_nonlocal_darwin64): Same.
	(sibcall_nonlocal_darwin64): Same.
	(sibcall_value_nonlocal_darwin64): Same.
	(sibcall_symbolic_64): Same.
	(sibcall_value_symbolic_64): Same.
	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
	LR pseudo.
	(rs6000_emit_load_toc_table): Same.
	* config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
	* config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
	(mull_call): Same.
	(divss_call): Same.
	(divus_call): Same.
	(quoss_call): Same.
	(quous_call): Same.
	(load_toc_v4_pic_si): Same
	(load_toc_v4_PIC_1): Same.
	(load_toc_v4_PIC_1b): Same.
	(call_indirect_aix{32,64}): Same.
	(call_value_indirect_aix{32,64}): Same.
	(call): Same.
	(call_value): Same.
	(call_local{32,64}): Same.
	(call_value_local{32,64}): Same.
	(call_indirect_nonlocal_aix{32,64}): Same.
	(call_nonlocal_aix{32,64}): Same.
	(call_value_indirect_nonlocal_aix{32,64}): Same.
	(call_value_nonlocal_aix{32,64}): Same.
	(call_indirect_nonlocal_sysv<mode>): Same.
	(call_nonlocal_sysv<mode>): Same.
	(call_value_indirect_nonlocal_sysv<mode>): Same.
	(call_value_nonlocal_sysv<mode>): Same.
	(sibcall): Same.
	(sibcall_local{32,64}): Same.
	(sibcall_value_local{32,64}): Same.
	(sibcall_nonlocal_aix{32,64}): Same.
	(sibcall_value_nonlocal_aix{32,64}): Same.
	(sibcall_nonlocal_sysv<mode>): Same.
	(sibcall_value): Same.
	(sibcall_value_nonlocal_sysv<mode>): Same.

2007-03-24  Paul Brook  <paul@codesourcery.com>

	* config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
	* config/arm/linux-eabi.h: Remove legacy syscall hack.

2007-03-24  Richard Henderson  <rth@redhat.com>

	* config/ia64/constraints.md: New file.
	* config/ia64/predicates.md: Replace CONST_OK_FOR_? with
	satisfies_constraint_?.
	* config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
	ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
	ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
	ia64_output_mi_thunk): Likewise.
	(ia64_const_ok_for_letter_p): Remove.
	(ia64_const_double_ok_for_letter_p): Remove.
	(ia64_extra_constraint): Remove.
	* config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
	(CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
	CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
	CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
	CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
	EXTRA_MEMORY_CONSTRAINT): Remove.
	* config/ia64/ia64.md: Include constriants.md.  Replace
	CONST_OK_FOR_? with satisfies_constraint_?.

2007-03-23  Michael Meissner  <michael.meissner@amd.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
	DPD or BID name.
	(name macros): Use DPD_BID_NAME to convert names properly.

	* optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
	decimal floating point format.
	(init_floating_libfuncs): Change decimal functions so that they
	have a "bid_" prefix if the decimal system uses the BID format,
	and "dpd_" prefix if the decimal system uses the DPD format.
	(init_interclass_conv_libfuncs): Ditto.
	(init_intraclass_conv_libfuncs): Ditto.

	* config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
	using the BID format.

	* configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
	whether we are using the BID decimal format.
	* configure: Regenerate.

	* c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
	the compiler has decimal floating point enabled.  Define
	__DECIMAL_BID_FORMAT__ if BID decimal floating point is used
	instead of DPD.

	* config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
	using the BID format.

	* configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
	whether we are using the BID decimal format.
	* configure: Regenerate.

	* c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
	the compiler has decimal floating point enabled.  Define
	__DECIMAL_BID_FORMAT__ if BID decimal floating point is used
	instead of DPD.

	* doc/install.texi (--enable-decimal-float): Document BID and DPD
	options, and that it is enabled for i386/x86_64 systems.

	* Makefile.in (enable_decimal_float): New.
	(DECNUMFMT): New.
	(DECNUMINC): Add  -I$(DECNUMFMT).
	(DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
	to $(DECNUMFMT) from $(DECNUM).

	* configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
	Substitute enable_decimal_float.
	* configure: Regenerated.

	PR other/30529
	* config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
	unsigned long.

	* configure.ac: Enable decimal float for x86_64-*-linux*.
	* configure: Regenerated.

	PR other/30530
	* dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
	decimal128ClearSign to flip and clear the sign bit in decimal128.
	(decimal_real_maxval): Set decimal128SetSign to set the sign
	bit in decimal128.

2007-03-23  Ian Lance Taylor  <iant@google.com>

	* fold-const.c (fold_binary): Correct warning for X - c >= X.

2007-03-23  Ian Lance Taylor  <iant@google.com>

	* tree-dump.c (dump_files): Correct comment.

2007-03-23  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (operand_less_p): Ignore fold overflow warnings.

2007-03-23  Steven Bosscher  <steven@gcc.gnu.org>

	* tracer.c (tracer): Don't take FLAGS argument.  Assert we are
	in cfglayout mode.  Don't go into and out of cfglayout mode.
	Link the blocks in the order of the constructed traces.
	(rest_of_handle_tracer): Adjust call to tracer.
	* loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
	Don't go into cfglayout mode.
	(rtl_loop_done): Don't go out of cfglayout mode.
	* cfglayout.c (relink_block_chain): New function, split out from...
	(fixup_reorder_chain): ...here.  Remove redundant checking.
	(cfg_layout_finalize): Don't clear the header, footer, and aux
	fields here, move the code to do so to relink_block_chain.  Likewise
	for free_original_copy_tables.
	* rtl.h (tracer): Update prototype.
	* bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
	Assert we are in cfglayout mode.  Don't go into and out of cfglayout
	mode.  Use relink_block_chain to serialize the CFG according to the
	new basic block order.  Move targetm.cannot_modify_jumps_p check from
	here...
	(gate_handle_reorder_blocks): ...to here.
	(duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
	from here...
	(gate_duplicate_computed_gotos): ...to here.
	(rest_of_handle_reorder_blocks): Don't see if anything has changed,
	something always changes when going into and out of cfglayout mode.
	Perform an expensive cfg cleanup while going into cfglayout mode.
	Always update liveness information on HAVE_conditional_execution
	targets.  Reserialize the basic blocks and go out of cfglayout mode.
	* reg-stack.c: Include cfglayout.h.
	(rest_of_handle_stack_regs): Go into and out of cfglayout mode around
	the call to reorder_basic_blocks.
	* basic-block.h (reorder_basic_blocks): Update prototype.
	(relink_block_chain): New prototype.
	* passes.c (pass_outof_cfg_layout_mode): Move after cse2.

2007-03-23  Joseph Myers  <joseph@codesourcery.com>

	* config/mips/mips.md (type, hazard, *movdi_32bit,
	*movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
	*movhi_internal, *movqi_internal, *movsf_hardfloat,
	*movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
	movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
	mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
	applicable.
	(movcc): Change first xfer to multi.
	* config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
	config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
	config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
	config/mips/generic.md: Change reservations using "xfer" to use
	"mfc,mtc".
	* config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
	using match_operand.
	(ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
	* config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
	examining mode.
	(ir_sr70_xfer_to): Use "mtc" instead of examining mode.

2007-03-22  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c: Remove unnecessary function declarations.
	Move targetm definition, and all related macros, to the end of
	the file.  Resort some functions to put definitions before uses.
	(ix86_attribute_table): Make static.  Move to end of file.
	(ix86_gimplify_va_arg): Make static.

2007-03-22  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
	don't increase local_regparm with force_align_arg_pointer check.
	(ix86_function_sseregparm): Assert 32-bit.
	(type_has_variadic_args_p): New.
	(ix86_return_pops_args): Early exit for 64-bit.  Reindent; use
	type_has_variadic_args_p.
	(ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
	(init_cumulative_args): Remove TARGET_DEBUG_ARG.  Remove zero_cum;
	use memset instead.  Do maybe_vaarg check first; skip attribute
	tests if true; skip attribute tests for 64-bit.
	(construct_container): Remove TARGET_DEBUG_ARG.
	(function_arg_advance_32, function_arg_advance_64): Split out ...
	(function_arg_advance): ... from here.
	(function_arg_32, function_arg_64): Split out ...
	(function_arg): ... from here.
	(ix86_pass_by_reference): Tidy.
	(ix86_function_value_regno_p): Rearrange w/ switch on regno.
	(function_value_32): New, from parts of ix86_function_value
	and ix86_value_regno.
	(function_value_64): New, from parts of ix86_function_value
	and ix86_libcall_value.
	(ix86_function_value_1): New.
	(ix86_function_value, ix86_libcall_value): Use it.
	(return_in_memory_32, return_in_memory_64): Split out ...
	(ix86_return_in_memory): ... from here.
	(ix86_struct_value_rtx): Skip for 64-bit.
	(ix86_libcall_value, ix86_value_regno): Remove.
	(setup_incoming_varargs_64): Split out ...
	(ix86_setup_incoming_varargs): ... from here.
	(ix86_va_start): Remove TARGET_DEBUG_ARG.
	(legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
	* config/i386/i386-protos.h (ix86_function_value): Remove.
	* config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.

2007-03-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR other/23572
	* c-lex.c (interpret_float): On overflow, emit pedantic warning if
	infinities not supported, otherwise emit warning if -Woverflow. On
	underflow, emit warning if -Woverflow.
	* real.c (real_from_string): Return -1 if underflow, +1 if overflow
	and 0 otherwise.
	* real.h (real_from_string): Update declaration

2007-03-22  Kai Tietz  <kai.tietz@onevision.com>
	    Richard Henderson  <rth@redhat.com>

	* defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
	* calls.c (compute_argument_block_size, expand_call,
	emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
	* expr.c (block_move_libcall_safe_for_call_parm): Likewise.
	* function.c (STACK_DYNAMIC_OFFSET): Likewise.
	* doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
	* config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
	config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
	config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
	config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
	Set to 1.

2007-03-22  Joseph Myers  <joseph@codesourcery.com>

	* c-incpath.c (add_sysroot_to_chain): New.
	(merge_include_chains): Add sysroot argument.  Call
	add_sysroot_to_chain if sysrooted.
	(register_include_chains): Update call to merge_include_chains.
	* doc/cppopts.texi: Document use of '=' in include directory
	arguments.

2007-03-22  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
	Macroize expander using SSEMODEF mode macro.  Use SSE_FLOAT_MODE_P.
	(*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
	insn pattern using X87MODEF12 mode macro.

2007-03-21  Seongbae Park <seongbae.park@gmail.com>

	* regmove.c (regmove_optimize): Use reg_mentioned_p
	instead of reg_overlap_mentioned_p for DST.

2007-03-21  Mike Stump  <mrs@apple.com>

	* c.opt: Fixup for Objective-C/C++.

2007-03-21  Steve Ellcey  <sje@cup.hp.com>

	* explow.c (convert_memory_address): Fold memory reference when
	POINTERS_EXTEND_UNSIGNED < 0

2007-03-21  Richard Henderson  <rth@redhat.com>

	PR target/31245
	* config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
	* config/i386/mmintrin.h (__m64): Likewise.
	* config/i386/xmmintrin.h (__m128): Likewise.

2007-03-21  Richard Sandiford  <richard@codesourcery.com>

	* config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
	(VXWORKS_OS_CPP_BUILTINS): Define.
	* config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
	(TARGET_OS_CPP_BUILTINS): ...here.  Use VXWORKS_OS_CPP_BUILTINS.

2007-03-21  Richard Sandiford  <richard@codesourcery.com>

	* rtl.h (constant_pool_reference_p): Delete.
	(find_constant_src): Declare.
	* rtlanal.c (find_constant_src): New function.
	* simplify-rtx.c (constant_pool_reference_p): Delete.
	* config/i386/i386.md: Use find_constant_src instead of
	constant_pool_reference_p/avoid_constant_pool_reference pairs.

2007-03-21  Richard Sandiford  <richard@codesourcery.com>

	* doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
	* c-cppbuiltin.c (c_cpp_builtins): Define them.

2007-03-20  Mark Mitchell  <mark@codesourcery.com>

	* config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
	* config/arm/arm.c (arm_elf_asm_cdtor): New function.
	(arm_elf_asm_constructor): Use it.
	(arm_elf_asm_destructor): New function.

2007-03-20  Bernd Schmidt  <bernd.schmidt@analog.com>

	* jump.c (mark_jump_label): Treat SEQUENCE specially.

2007-03-20  Nathan Sidwell  <nathan@codesourcery.com>

	* config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.

2007-03-19  Andrew Haley  <aph@redhat.com>

	PR tree-optimization/31264
	* tree-vrp.c (register_edge_assert_for_1): Don't look though
	VIEW_CONVERT_EXPRs.

2007-03-19  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/30907
	* fwprop.c (forward_propagate_into): Never propagate inside a loop.
	(fwprop_init): Always call loop_optimizer_initialize.
	(fwprop_done): Always call loop_optimizer_finalize.
	(fwprop): We always have loop info now.
	(gate_fwprop_addr): Remove.
	(pass_fwprop_addr): Use gate_fwprop as gate.

	PR rtl-optimization/30841
	* df-problems.c (df_ru_local_compute, df_rd_local_compute,
	df_chain_alloc): Call df_reorganize_refs unconditionally.
	* df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
	refs_organized to refs_organized_size.
	(df_ref_create_structure): Use refs_organized_size instead of
	bitmap_size if refs had been organized, and keep refs_organized_size
	up-to-date.
	* df.h (struct df_ref_info): Change refs_organized to
	refs_organized_size.
	(DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
	bitmap_size.

2007-03-19  Mark Mitchell  <mark@codesourcery.com>

	* except.c (output_function_exception_table): Do not reference the
	EH personality routine for functions that do not require an
	exception table.

2007-03-20  Jakub Jelinek  <jakub@redhat.com>

	PR c/30762
	* c-typeck.c (convert_for_assignment): Call comptypes for
	RECORD_TYPE or UNION_TYPE.

	PR inline-asm/30505
	* reload1.c (reload): Do invalid ASM checking after
	cleanup_subreg_operands.

2007-03-19  Jeff Law  <law@redhat.com>

	* tree-cfg.c (find_taken_edge): Tighten conditions for
	optimizing computed gotos.

2007-03-19  Michael Matz  <matz@suse.de>

	* builtins.c (expand_builtin_sync_operation,
	expand_builtin_compare_and_swap,
	expand_builtin_lock_test_and_set): Care for extending CONST_INTs
	correctly.

	* config/i386/sync.md (sync_double_compare_and_swapdi_pic,
	sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
	for operand 3.

2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* doc/tm.texi: Add brackets around the return type of
	TARGET_SECONDARY_RELOAD.

2007-03-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
	Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/31254
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
	Use handled_component_p () where appropriate.  Continue
	propagating into the rhs if we propagated into an INDIRECT_REF
	on the lhs.

2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md (op_type attribute): RRR instruction type added.
	(FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
	(xde, xdee): Mode attributes adjusted to support DFP modes.
	(RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
	("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
	DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
	"*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
	"*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
	"div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
	"*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
	numbers.
	("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
	"movsf"): Insn definitions removed.
	("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
	"*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
	"trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
	definitions added.
	("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
	"reload_in<mode>", "reload_out<mode>"): Expander added.
	("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
	Expander removed.

2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md: Only non-functional changes.  Renamed
	FPR mode macro to BFP all over the file.

2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
	(op_type attribute): RRF instruction type added.
	(fT0): New mode attribute.
	("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
	"*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
	* config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new
	instruction no secondary memory is needed when moving DFmode values
	between GPRs and FPRs.

2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
	inverted and documentation adjusted.
	("mhard-dfp", "msoft-dfp"): New options.
	* config/s390/s390.c (s390_handle_arch_option): New architecture
	switch: z9-ec.
	(override_options): Sanity checks for the new options added.
	* config.gcc: New architecture switch: z9-ec.
	* config/s390/s390.h (processor_flags): PF_DFP added.
	(TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
	(TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
	when the bit is NOT set so remove it from the defaults.

2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* genemit.c (main): Print include statement for dfp.h.
	* dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
	is not available.

2007-03-19  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.

2007-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/31022
	* config/sh/sh.c (sh_adjust_cost): Use the result of single_set
	instead of PATTERN.

2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (output_deferred_plabels, output_bb, output_millicode_call,
	attr_length_call, output_call, output_indirect_call): Cleanup
	formatting of targetm calls.

2007-03-19  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.

2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.md: Add fpstore_load and store_fpload instruction types.  Provide
	reservation, bypass and anti-bypass descriptions for these
	instructions.  Update move patterns.
	* pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
	TYPE_FPSTORE.

2007-03-18  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-vect-transform.c (get_initial_def_for_induction): Replace
	GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
	(get_initial_def_for_reduction): Likewise.

2007-03-16  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/29922
	* tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
	(get_representative): Removed.
	(value_dies_in_block_x): Update for rvuse removal.
	(valid_in_sets): Update for renaming of vuses_dies_in_block_x.
	(compute_antic_aux): Handle when PHI nodes appear in
	non-single-successors.
	(dump_bitmap_of_names): Removed.
	(compute_antic_safe): Renamed and removed rvuse calculation.
	Calculate only antic safe.
	(insert_into_preds_of_block): Remove assert.
	(execute_pre): Update for renamed functions.
	(defer_or_phi_translate_block): New function.

2007-03-17  Kazu Hirata  <kazu@codesourcery.com>

	* config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
	config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
	typos.
	* doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
	Follow spelling conventions.

	* tree-data-ref.h: Remove the prototype for analyze_array.

2007-03-17  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/31041
	* tree-vect-transform.c (get_initial_def_for_induction): Call
	force_gimple_operand.

2007-03-17  Olga Golovanevsky  <olga@il.ibm.com>

  	* ipa-type-escape.c (look_for_casts) : Revert code to use
	handled_component_p due to ada test a-numaux.adb.

2007-03-17  Kazu Hirata  <kazu@codesourcery.com>

	* final.c (final_scan_insn): Alter the condition of a
	conditional trap if we have nonstandard CC.

2007-03-16  Alexandre Oliva  <aoliva@redhat.com>

	* configure.ac: Remove excess quoting from asm line 0 test.
	* configure: Rebuilt.

2007-03-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* doc/invoke.texi (-Wconversion): Document warnings specific to C++.
	* c-common.c (convert_and_check): Move warning logic to...
	(warnings_for_convert_and_check): ...here. Define.
	* c-common.h (warnings_for_convert_and_check): Declare.

2007-03-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (attr_length_call): Partially revert change of 2007-03-09.
	(output_call): Likewise.

2007-03-16  Richard Sandiford  <richard@codesourcery.com>

	* config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.

2007-03-16  Richard Sandiford  <richard@codesourcery.com>

	* config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.

2007-03-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
	opteron, athlon-64 and athlon-fx processor_alias_table entries.

2007-03-16  Sebastian Pop  <sebastian.pop@inria.fr>

	PR tree-optimization/31183
	* tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
	Use double_int instead of unsigned int for representing access_strides.
	* testsuite/gcc.dg/tree-ssa/pr31183.c: New.

2007-03-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/31146
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
	to allow recursion of forward_propagate_addr_expr.
	(forward_propagate_addr_into_variable_array_index): Likewise.
	(forward_propagate_addr_expr): Likewise.
	(tree_ssa_forward_propagate_single_use_vars): Likewise.
	(forward_propagate_addr_expr_1): Recurse on simple copies
	instead of propagating into them.  Do so for useless conversions
	as well.
	(forward_propagate_addr_expr): Clean up unused statements after
	recursion.

2007-03-16  Richard Guenther  <rguenther@suse.de>

	* builtins.c (expand_builtin_cexpi): Use the right argument
	for the expansion via cexp.

2007-03-16  Alexandre Oliva  <aoliva@redhat.com>

	* configure.ac: Don't require ELF binutils to tolerate # 0 "".
	* configure: Rebuilt.

2007-03-16  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/29906
	* dwarf2out.c (force_type_die): Adjust comment.
	(dwarf2out_imported_module_or_decl): Handle base AT_import types.

2007-03-15  DJ Delorie  <dj@redhat.com>

	* config/frv/predicates.md (minmax_operator): Don't check operands
	here.

2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
	Update constant estimates of number of iterations.
	(record_nonwrapping_iv): Add "upper" argument.  "data_size_bounds_p"
	argument renamed to "realistic".
	(compute_estimated_nb_iterations): Removed.
	(record_niter_bound): New function.
	(idx_infer_loop_bounds): For possible but unlikely tail arrays,
	call record_nonwrapping_iv with upper = false.
	(infer_loop_bounds_from_signedness): Pass upper argument to
	record_nonwrapping_iv.
	(estimate_numbers_of_iterations_loop): Do not call
	compute_estimated_nb_iterations.  Record estimate based on profile
	information.  Initialize the constant estimates of number of
	iterations.
	* tree-data-ref.c (estimated_loop_iterations): Return the recorded
	estimates.
	* tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
	number of iterations is too small.
	* cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
	(EST_NOT_AVAILABLE): Removed.
	(struct loop): Replace estimated_nb_iterations by any_upper_bound,
	nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
	fields.

2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
	Handle NE_EXPR guards.

2007-03-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/24924
	* c-opts.c (c_common_post_options): Handle C++ post-processing here.
	Set also -pedantic-errors by default for the  preprocessor unless
	-fpermissive is given.

2007-03-15  Richard Guenther  <rguenther@suse.de>

	PR middle-end/29719
	PR middle-end/31161
	* builtins.c (expand_builtin_cexpi): As a fallback if we
	don't have builtins for sincos or cexp create a function
	declaration for cexp and expand to a call to that.
	(expand_builtin_int_roundingfn): Always fall
	back to floor/ceil and its variants even if they may be
	not available.

2007-03-15  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/31159
	* cfglayout.c (fixup_reorder_chain): Postpone deleting dead
	jump tables, move the call to delete_dead_jumptables from here...
	(cfg_layout_finalize): ...to here.  But rebuild jump labels first.
	* cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
	don't allow merging of blocks that try_redirect_by_replacing_jump
	also does not handle when not optimizing.

2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
	    Francois-Xavier Coudert  <coudert@clipper.ens.fr>

	* config/i386/i386.md (x86_sahf_1): Correctly handle
	HAVE_AS_IX86_SAHF.

2007-03-15  Uros Bizjak  <ubizjak@gmail.com>

	PR target/31167
	* config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
	x86_64_general_operand as operand[2] predicate.  Remove "iF"
	from operand constraints and use "e" constraint instead.
	(*subti3_1, *subti3_1 splitter): Ditto.
	(*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
	operand[1] predicate.

2007-03-14  Sebastian Pop  <sebastian.pop@inria.fr>

	* tree-loop-linear.c (gather_interchange_stats): For multidimensional
	arrays, multiply the access strides by the size of the sub-array.
	* testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.

2007-03-14  Uros Bizjak  <ubizjak@gmail.com>

	* configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
	the configured assembler supports the sahf mnemonic.
	* configure: Regenerate.
	* config.in: Regenerate.

	* config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
	emit "sahf" or ".byte\t0x9e" as asm template.

2007-03-14  Michael Meissner  <michael.meissner@amd.com>

	PR 31018
	* config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
	option to replace hard coded TARGET_xxx in md file.
	(X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
	(X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
	(X86_TUNE_SLOW_IMUL_IMM8): Ditto.
	(X86_TUNE_MOVE_M1_VIA_OR): Ditto.
	(X86_TUNE_NOT_UNPAIRABLE): Ditto.
	(X86_TUNE_NOT_VECTORMODE): Ditto.
	(TUNE_SHORTEN_X87_SSE): Use new tuning option.
	(TUNE_AVOID_VECTOR_DECODE): Ditto.
	(TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
	(TUNE_SLOW_IMUL_IMM8): Ditto.
	(TUNE_MOVE_M1_VIA_OR): Ditto.
	(TUNE_NOT_UNPAIRABLE): Ditto.
	(TUNE_NOT_VECTORMODE): Ditto.

	* config/i386/i386.c (ix86_tune_features): Fill in new tuning
	options.

	* config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
	tuning options instead of hard coded TARGET_xxx.
	(fix ssemode peephole2's): Ditto.
	(imul peephole2's): Ditto.
	(movsi_or): Ditto.
	(movdi_or_rex64): Ditto.
	(move peephole2): Ditto.
	(not peephole2's): Ditto.

2007-03-14  Dirk Mueller  <dmueller@suse.de>

	* c-common.h (empty_body_warning): Rename to empty_if_body_warning.
	* c-common.c (empty_if_body_warning): Rephrase diagnostic message.
	* c-parser.c (c_parser_if_body): Always add an empty statement in case
	of empty body.
	* c-parser.c (c_parser_do_statement): Warn about empty body in
	do/while statement.
	* c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
	* doc/invoke.texi (-Wempty-body): Update documentation.

2007-03-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/21438
	* c-common.h (warn_for_div_by_zero): Declare.
	* c-common.c (warn_for_div_by_zero): Define.
	* c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
	warning.

2007-03-14  Richard Sandiford  <richard@codesourcery.com>

	* Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
	to PREFIX and STANDARD_PREFIX.

2007-03-14  Richard Sandiford  <richard@codesourcery.com>
	    Phil Edwards  <phil@codesourcery.com>

	* gthr-vxworks.h: Add an extern "C" wrapper for C++.
	(__gthread_once_t): Remove busy field for RTPs.
	(__GTHREAD_ONCE_INIT): Update accordingly.

2007-03-14  Richard Sandiford  <richard@codesourcery.com>

	* doc/invoke.texi: Document VxWorks options.

2007-03-14  Uros Bizjak  <ubizjak@gmail.com>

	* doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.

2007-03-13  Seongbae Park <seongbae.park@gmail.com>

	PR tree-optimization/30590
	* tree-nrv.c (tree_nrv): Check for the partial update of the
	return value.

2007-03-13  Alexandre Oliva  <aoliva@redhat.com>

	* flags.h (flag_random_seed): Remove declaration, in favor of...
	* toplev.h (get_random_seed, set_random_seed): ... these.
	* tree.c (get_file_function_name): Use the former.
	* opts.c (common_handle_option): Use the latter.
	* toplev.c

2007-03-13  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/31127
	* cse.c (cse_find_path): Do not bail out if a basic block that
	we already visited now becomes part of a path that starts at a
	different basic block.  Just disallow this, to make sure we
	visit each basic block at most once.

2007-03-13  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold
	attributes, when profile esitmate is present, calls with very low
	frequency are cold.

2007-03-13  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/30730
	PR tree-optimization/26900
	* tree-ssa-loop-niter.c: Include gmp.h.
	(bounds): New type.
	(mpz_set_double_int, get_type_bounds, mpz_to_double_int,
	split_to_var_and_offset, determine_value_range,
	bound_difference_of_offsetted_base, refine_bounds_using_guard,
	bound_difference, bounds_add, bounds_negate,
	number_of_iterations_ne_max, dump_affine_iv): New functions.
	(number_of_iterations_ne, number_of_iterations_lt_to_ne,
	assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
	difference of initial and final value of control iv to validate
	results.
	(number_of_iterations_cond): Add loop parameter.  Determine bounds
	on the difference of the extremes of the control iv.  Add dumps.
	(expand_simple_operations): Handle phi nodes.
	(simplify_using_initial_conditions): Do not record used conditions.
	(number_of_iterations_exit): Pass loop to number_of_iterations_cond.
	Do not set additional_info.
	(implies_nonnegative_p, implies_ge_p): Removed.
	(derive_constant_upper_bound): Do not use parameter `additional'.
	(record_estimate): Parameter `additional' removed.  Parameter
	`i_bound' added.  Do not call derive_constant_upper_bound.
	(record_nonwrapping_iv): Use derive_constant_upper_bound to
	bound the number of iterations estimate.
	(estimate_numbers_of_iterations_loop): Pass the estimate from
	the number of iterations analysis to record_estimate.
	* tree.h (multiple_of_p): Declare.
	* tree-scalar-evolution.c (expression_expensive_p): Removed.
	(scev_const_prop): Do not check expression_expensive_p.
	* fold-const.c (multiple_of_p): Exported.
	* double-int.c (double_int_mask): Exported.
	* double-int.h (double_int_mask): Declare.
	* tree-flow.h (struct tree_niter_desc): Removed additional_info
	field.  Added max field.

2007-03-13  David Taylor  <taylor@candd.org>

	PR driver/12448
	* gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
	default -MQ.

2007-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/31123
	* pa.md (vdepi_ior): Don't allow zero length deposit.  Likewise for
	two unamed patterns.

2007-03-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.opt (mcx16, msahf): New options.
	* config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
	(ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.

	* config/i386/driver-i386.c (bit_LAHF_LM): New define.
	(host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
	Output -mcx16 and -msahf options when corresponding bit is set.

	* doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
	and -msahf options.

2007-03-13  Alexandre Oliva  <aoliva@redhat.com>

	* configure.ac: Test for assembler tolerance to # 0 "".
	* configure, config.in: Rebuilt.
	* final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.

2007-03-13  Geoffrey Keating  <geoffk@apple.com>

	* doc/invoke.texi (Spec Files): Update for '%{,' spec.

	* config/rs6000/darwin-fallback.c: Compile file only on powerpc.
	(handle_syscall): Handle direct system calls.
	* config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.

2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>

	* doc/invoke.texi: Fix cpp.info cross-reference.
	* doc/passes.texi: Fix gcc.info cross-reference.

2007-03-12  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/30835
	* lambda-code.c (can_convert_to_perfect_nest): Check whether
	bb_for_stmt is not NULL before accessing it.

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

	* gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
	some multilibs.

2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>

	PR 30635
	* doc/install.texi: Document --enable-stage1-languages

2007-03-12  Steven Bosscher  <steven@gcc.gnu.org>

	* tree-pass.h (pass_into_cfg_layout_mode,
	pass_outof_cfg_layout_mode): Declare.
	* cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
	pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
	* passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
	(pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.

2007-03-12  Seongbae Park <seongbae.park@gmail.com>

	* c-decl.c (warn_variable_length_array): New function.
	Refactored from grokdeclarator to handle warn_vla
	and handle unnamed array case.
	(grokdeclarator): Refactored VLA warning case.
	* c.opt (Wvla): New flag.
	* doc/invoke.texi (Wvla): New warning.

2007-03-12  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_elf_section_type_flags): New.
	(TARGET_SECTION_TYPE_FLAGS): New.

2007-03-12  Richard Henderson  <rth@redhat.com>

	* config/darwin.c (machopic_reloc_rw_mask): New.
	* config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
	* config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.

2007-03-12  Mark Mitchell  <mark@codesourcery.com>

	* cppdefault.c (cpp_EXEC_PREFIX): New variable.
	* cppdefault.h (cpp_PREFIX): Document.
	(cpp_PREFIX_len): Likewise.
	(cpp_EXEC_PREFIX): New variable.
	* Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
	* c-incpath.c (add_standard_paths): Correct logic for relocating
	paths within prefix.

2007-03-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
	fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
	mode macro.
	(fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
	fix_truncdfdi_sse using SSEMODEF mode macro.
	(fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
	fix_truncdfsi_sse using SSEMODEF mode macro.
	(fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
	(fix_trunc?f?i_sse K8 peephole2): Fix register constraint.

2007-03-12  Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
	elfos.h to tm_file.

2007-03-12  Olga Golovanevsky  <olga@il.ibm.com>

  	* tree.h : Add multiple_of_p declaration.
  	* fold-const.c (multiple_of_p): Make multiple_of_p public.
  	* ipa-type-escape.c (results_of_malloc): Redundant.
  	(visited_stmts): New. Visited stmt for walk_use_def_chains.
  	(cast_type): Extended with new members.
  	(check_cast): Returns cast_type.
  	(cast): New structure for data of walk_use_def_chains.
  	(is_malloc_result, is_cast_from_non_pointer_1,
  	is_cast_from_non_pointer,
  	is_array_access_through_pointer_and_index): New functions.
  	(look_for_casts): Returns cast types.
 	(check_call): Returns void.
  	(okay_pointer_operation): Use support of pointer plus index,
  	pointer plus constant and allow all multiplications.

2007-03-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/31115
	* tree-vrp.c (extract_range_from_binary_expr): Make sure
	the shift count is positive and non-anti-range for RSHIFT_EXPR.
	A shift count of zero is not special as with *_DIV_EXPR.
	(vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
	direction.

2007-03-11  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
	the *_DIV_EXPR codes correctly with overflow infinities.

2007-03-11  Ira Rosen  <irar@il.ibm.com>

	* tree-data-ref.c (analyze_offset): Add a return value (bool) to
	indicate success/failure of the analysis. Add negation to subtrahend
	in case of subtraction. Fail if both operands contain constants.
	(create_data_ref): Fail if analyze_offset fails.

2007-03-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (frndintxf2): Rename to ...
	(rintxf2): ... this. Remove expander having same name.
	(rintsf2, rintdf2): Implement using SSEMODEF macro.
	(roundsf2, rounddf2): Ditto.
	(lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
	(lround<mode>di2, lround<mode>si2): Ditto.

2007-03-11  Steven Bosscher  <steven@gcc.gnu.org>

	* lower-subreg.c: Include except.h.
	(decompose_multiword_subregs): Verify that the only control flow
	insns we can split are loads to multi-words pseudos.
	Handle breaking such blocks after splitting, instead of calling
	find_many_sub_basic_blocks.

	* loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
	on the new basic block.  Add a lengthy comment explaining why we
	thought this was necessary.
	* cfglayout.c (cfg_layout_finalize): Don't break superblocks.

2007-03-10  Mark Mitchell  <mark@codesourcery.com>

	PR c++/30924
	* tree.c (walk_type_fields): Recurse into the element type of
	ARRAY_TYPEs if there is a pointer set.

2007-03-10  Dirk Mueller  <dmueller@suse.de>

	* c-common.c (warn_logical_operator): Fix condition.

2007-03-10  Tobias Schlüter  <tobi@gcc.gnu.org>

	* config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
	quotation mark.
	* config/darwin.c (machopic_select_section): Remove superfluous
	argument in call to categorize_decl_for_section.  Remove unused
	variable shlib.

2007-03-10  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (glibc_header_dir): Set using with_build_sysroot if
	defined.
	* configure: Regenerate.

2007-03-10  Uros Bizjak  <ubizjak@gmail.com>

	PR target/31101
	* config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
	(fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
	(fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
	Add LABEL_NUSES to emitted label.
	* config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
	branch probability value to emitted jump insn.
	* reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
	Do not check life information and do not re-arrange input operands
	for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.

2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_insn_length_adjustment): Adjust for
	the change of decode_asm_operands.

2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>

	* mode-switching.c (create_pre_exit): Skip blockage insn.

2007-03-09  Diego Novillo  <dnovillo@redhat.com>

	* tree-pass.h (TODO_update_smt_usage): Remove.
	Update all users.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
	argument SOME.
	Update all users.

2007-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (attr_length_call): Revise condition for long
	pc-relative branch.
	(output_call): Use "LONG_PIC_SDIFF" instruction sequence for long
	local calls on the SOM target.  Don't use "LONG_PIC_PCREL" call
	sequence on SOM target.

2007-03-09  Geoffrey Keating  <geoffk@apple.com>

	* gcc.c: Document %{, in big comment at top.
	(input_suffix_matches): Remove special handling for .s and
	.S.
	(input_spec_matches): New.
	(handle_braces): Handle %{,.
	(validate_switches): ',' indicates a value which is not a switch.
	* config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
	to detect assembler input.
	* config/i386/sol2.h (CPP_SPEC): Likewise.
	* config/rs6000/sysv4.h (ASM_SPEC): Likewise.
	* config/rs6000/vxworks.h (ASM_SPEC): Likewise.
	* config/rs6000/lynx.h (ASM_SPEC): Likewise.
	* config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
	* config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
	-m64 causes deployment target to default to 10.5.
	* config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.

2007-03-09  Richard Henderson  <rth@redhat.com>

	PR target/26090
	* target.h (targetm.asm.out.reloc_rw_mask): New.
	* target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
	(TARGET_ASM_OUT): Use it.
	* targhooks.c, targhooks.h (default_reloc_rw_mask): New.
	* varasm.c (categorize_decl_for_section): Remove shlib argument;
	use the new reloc_rw_mask target hook instead.
	(default_section_type_flags_1): Merge into...
	(default_section_type_flags): ... here.
	(decl_readonly_section_1): Merge into...
	(decl_readonly_section): ... here.
	(default_elf_select_section_1): Merge into...
	(default_elf_select_section): ... here.
	(default_unique_section_1): Merge into...
	(default_unique_section): ... here.
	(compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
	(default_select_rtx_section): Use it.
	(default_elf_select_rtx_section): Likewise.
	* output.h: Update to match.
	* doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
	* config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
	(TARGET_ASM_RELOC_RW_MASK): New.
	* config/i386/i386.c (x86_64_elf_select_section): Adjust call
	to categorize_decl_for_section.
	(x86_64_elf_unique_section): Likewise.
	* config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
	TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
	(TARGET_ASM_RELOC_RW_MASK): New.
	* config/ia64/ia64.c (ia64_rwreloc_select_section,
	ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
	(ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
	(TARGET_RWRELOC): Remove.
	(ia64_section_type_flags): Adjust call to default_section_type_flags.
	* config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
	* config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
	(rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
	(rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
	(rs6000_xcoff_select_section): Use decl_readonly_section.
	(rs6000_xcoff_section_type_flags): Use default_section_type_flags.
	* config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
	(TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
	(TARGET_SECTION_TYPE_FLAGS): Remove.
	* config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.

2007-03-09  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_comparison): Remove compile-time evaluation of
	complex constant equality/inequality comparisons for here.
	(fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
	known at compile-time or can be simplified to a scalar comparison.
	(fold_relational_const): Move compile-time evaluation of complex
	constant equality/inequality comparisons to here.

2007-03-09  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/30643
	* cse.c (cse_insn): Recompute dest_hash after insert_regs for
	dest_addr_elt.
	(fold_rtx): Recurse, like before 2006-11-03.

2007-03-09  DJ Delorie  <dj@redhat.com>

	* config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
	m32c-pragma.o.

2007-03-09  Aldy Hernandez  <aldyh@redhat.com>

	PR tree-optimization/30375
	* tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
	LHS of statements is not the same.
	* testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.

2007-03-09  Chao-ying Fu  <fu@mips.com>

	* doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
	REV 2.
	* doc/invoke.texi (-mdspr2): Document new option.
	* config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
	New unspec for DSP REV 2.
	(<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
	these instructions are extended in DSP REV 2.
	(mips-dspr2.md): Include.
	* config/mips/mips.opt (mdspr2): New option.
	* config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
	MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
	MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
	(override_options): Check TARGET_DSPR2 to enable MASK_DSP.
	(CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
	(dsp_bdesc): Add DSP REV 2 builtins.  Remove 32-bit only DSP builtins.
	(dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
	and 2 builtins.
	(bdesc_map): Add one field of unsupported_target_flags.
	(bdesc_arrays): Update entries to have extra fields.  Add
	dsp_32only_bdesc.
	(mips_init_builtins): Initialize new function types.
	Check unsupported_target_fileds to filter out builtins.
	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
	TARGET_DSPR2.
	(ASM_SPEC): Pass mdspr2 to the assembler.
	* config/mips/mips-dspr2.md: New file.

2007-03-09  Sa Liu  <saliu@de.ibm.com>

	* config/rs6000/altivec.md: Fix vcond patterns using if_then_else.

2007-03-09  Ian Lance Taylor  <iant@google.com>

	* opts.c (common_handle_option): Treat -Wstrict-overflow (with no
	argument) like -Wstrict-overflow=2.
	* doc/invoke.texi (Warning Options): Update documentation.

2007-03-09  Dirk Mueller  <dmueller@suse.de>

	PR c++/17946
	* doc/invoke.texi (-Wlogical-op): Document.
	* common.opt (-Wlogical-op): New.
	* c-common.h (warn_logical_operator): Declare.
	* c-common.c (warn_logical_operator): Define.
	* c-typeck.c (parser_build_binary_op): Call
	warn_logical_operator.

2007-03-09  Alexandre Oliva  <aoliva@redhat.com>

	* rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
	* final.c (final_scan_insn): Test for non-"" file name.

2007-03-09  Sebastian Pop  <sebastian.pop@inria.fr>

	* doc/loop.texi: Document the Omega linear constraints solver.
	* doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
	omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
	omega-hash-table-size, omega-max-keys, and
	omega-eliminate-redundant-constraints.
	* tree-pass.h (pass_check_data_deps): Declared.
	* omega.c: New.
	* omega.h: New.
	* timevar.def (TV_CHECK_DATA_DEPS): Declared.
	* tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
	pass_check_data_deps): New.
	* tree-data-ref.c (init_data_ref): Remove declaration.
	(dump_data_dependence_relation): Dump DDR_INNER_LOOP.
	(analyze_array): Renamed init_array_ref, move up initializations.
	(init_data_ref): Renamed init_pointer_ref.  Moved before its call.
	Removed arguments that are set to NULL.
	(analyze_indirect_ref): Correct indentation, correct call to
	init_pointer_ref.
	(object_analysis): Call init_array_ref instead of analyze_array.
	(initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
	(access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
	of DR_ACCESS_FNS_ADDR.
	(init_omega_eq_with_af, omega_extract_distance_vectors,
	omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
	ddr_consistent_p): New.
	(compute_affine_dependence): Check consistency of ddrs when
	flag_check_data_deps is passed.
	(analyze_all_data_dependences): Uncomment.
	(tree_check_data_deps): New.
	* tree-data-ref.h: Include omega.h.
	(DR_ACCESS_FNS_ADDR): Removed.
	(data_dependence_relation): Add inner_loop.
	(DDR_INNER_LOOP): New.
	* common.opt (fcheck-data-deps): New.
	* tree-flow.h (tree_check_data_deps): Declare.
	* Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
	(OBJS-common): Depend on omega.o.
	(omega.o): Define.
	* passes.c (pass_check_data_deps): Scheduled.
	* params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
	PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
	PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
	PARAM_VECT_MAX_VERSION_CHECKS,
	PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.

2007-03-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/30904
	PR middle-end/31058
	* tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
	the same way as *_DIV_EXPR.

2007-03-09  Alexandre Oliva  <aoliva@redhat.com>

	* recog.c (decode_asm_operands): No mixed declarations and code.

2007-03-09  Alexandre Oliva  <aoliva@redhat.com>

	* rtl.def (ASM_INPUT): Add location.
	* rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
	(ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
	(decode_asm_operands): Add loc operand.
	(gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
	* stmt.c (expand_asm): Rename to...
	(expand_asm_loc): ... this.  Add locus argument.  Pass it on to
	gen_rtx_ASM_INPUT_loc.
	(expand_asm_expr): Adjust.
	* recog.c (decode_asm_operands): Add loc operand.
	(check_asm_operands, extract_insn): Adjust.
	* reload1.c (maybe_fix_stack_asms): Likewise.
	* final.c (asm_insn_count): Likewise.
	(final_scan_insn): Output # line before and after asm.

2007-03-09  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (variable_info): Remove
	finished_solution.
	(new_var_info): Ditto.
	(shared_bitmap_info_t): New structure.
	(shared_bitmap_table): New variable.
	(shared_bitmap_hash): New function.
	(shared_bitmap_eq): Ditto
	(shared_bitmap_lookup): Ditto.
	(shared_bitmap_add): Ditto.
	(merge_smts_into): Change to take bitmap directly.
	(find_what_p_points_to): Rewrite to use shared bitmap hashtable.
	(init_alias_vars): Init shared bitmap hashtable.
	(delete_points_to_sets): Delete shared bitmap hashtable.
	* tree-ssa-operands.c (add_virtual_operand): Partially revert the
	is_aliased removal as a change that was still necessary was
	deleted.

2007-03-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (override_options): Conditionally disable
	x86_sahf for 64bit targets only.

2007-03-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR C/31072
	* c-decl.c (merge_decls): Don't call make_var_volatile.
	* varasm.c (make_var_volatile): Remove.
	* output.h (make_var_volatile): Remove.

2007-03-08  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/31085
	* tree-ssa-address.c (create_mem_ref): Fix test of type of base.

2007-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
	llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
	ATTR_CONST_NOTHROW_LIST.

	* fold-const.c (tree_expr_nonnegative_warnv_p): Handle
	FIX_TRUNC_EXPR.

2007-03-08  Diego Novillo  <dnovillo@redhat.com>

	* doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.

2007-03-08  Geoffrey Keating  <geoffk@apple.com>

	PR 31013
	* gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
	is declared.
	* config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
	passed, use shared libgcc.

2007-03-08  Roger Sayle  <roger@eyesopen.com>

	* tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
	instead of calling build2 with a GIMPLE_MODIFY_STMT.
	(honor_protect_cleanup_actions, lower_try_finally_switch):
	Likewise.
	* tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
	ifc_temp_var): Likewise.
	* tree-inline.c (setup_one_parameter): Likewise.
	* tree-mudflap.c (mf_decl_cache_locals,
	mf_build_check_statement_for): Likewise.
	* tree-nested.c (init_tmp_var, save_tmp_var,
	finalize_nesting_tree_1): Likewise.
	* tree-outof-ssa.c (insert_copy_on_edge,
	insert_backedge_copies): Likewise.
	* tree-profile.c (tree_gen_edge_profiler,
	tree_gen_ic_profiler): Likewise.
	* tree-scalar-evolution.c (scev_const_prop): Likewise.
	* tree-sra.c (sra_build_assignment): Likewise.
	* tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
	* tree-ssa-math-opts.c (insert_reciprocals,
	execute_cse_sincos_1): Likewise.
	* tree-tailcall.c (adjust_accumulator_values,
	adjust_return_value): Likewise.
	* tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
	* tree-vect-transform.c (vect_create_data_ref_ptr,
	bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
	vect_create_epilog_for_reduction, vectorizable_reduction,
	vectorizable_call, vectorizable_conversion,
	vectorizable_assignment, vectorizable_operation,
	vectorizable_type_demotion, vect_gen_widened_results_half,
	vect_permute_store_chain, vectorizable_store,
	vect_setup_realignment, vect_permute_load_chain,
	vectorizable_load, vectorizable_condition,
	vect_create_cond_for_align_checks): Likewise.
	* tree-vrp.c (build_assert_expr_for): Likewise.

2007-03-08  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c: Include "intl.h".
	(usable_range_p): New static function.
	(compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
	overflowed values, juts set *strict_overflow_p.
	(compare_values): Only return -2 if one of the operands is not a
	constant.
	(compare_ranges): Call usable_range_p.
	(compare_range_with_value): Likewise.
	(vrp_evaluate_conditional_warnv): Rename from
	vrp_evaluate_conditional.  Make static.  Change all callers.
	(vrp_evaluate_conditional): New function.
	(simplify_div_or_mod_using_ranges): Issue warning about reliance
	on signed overflow.
	(simplify_abs_using_ranges): Likewise.
	(simplify_stmt_for_jump_threading): Add within_stmt parameter.
	* tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
	within_stmt parameter.
	* tree-ssa-propagate.c (fold_predicate_in): Update call to
	vrp_evaluate_conditional.
	* tree-ssa-threadedge.c
	(record_temporary_equivalences_from_stmts_at_dest): Change
	simplify parameter to take a second tree parameter.
	(simplify_control_stmt_condition): Likewise.
	(thread_across_edge): Likewise.
	* tree-flow.h (vrp_evaluate_conditional): Update declaration.
	(thread_across_edge): Likewise.
	* Makefile.in (tree-vrp.o): Depend upon intl.h.

2007-03-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (TARGET_SAHF): New define.
	* config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
	Also enable for m_K8, m_AMDFAM10 and m_CORE2.
	(x86_sahf): New global variable.
	(override_options): Add PTA_NO_SAHF to pta_flags enum.  Recode
	pta_flags masks using shifts.  Add PTA_NO_SAHF to x86_64 and
	nocona processor flags.  Set x86_sahf when PTA_NO_SAHF is not set
	in processor flags.  Do not unconditionally disable TARGET_USE_SAHF
	for 64-bit.
	(ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
	(ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
	when expanding fcomi/sahf based tests.
	(ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
	expanding sahf based alternative. Emit sahf based sequence when
	optimizing for code size.
	* config/i386/i386.md (x86_sahf_1): Do not disable for
	TARGET_64BIT, enable for TARGET_SAHF.

2007-03-08  Martin Michlmayr  <tbm@cyrius.com>

	* tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
	spurious whitespace from error message.

2007-03-08  Volker Reichelt  <v.reichelt@netcologne.de>

	PR c++/30852
	* c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.

2007-03-08  Alexandre Oliva  <aoliva@redhat.com>

	* c-decl.c (grokdeclarator): Disable warnings for anonymous
	bitfields.
	* tree-sra.c (instantiate_element): Propagate disabled warnings
	from the element itself to the created variable.

2007-03-07  Richard Henderson  <rth@redhat.com>

	PR target/30848
	* reg-stack.c (emit_swap_insn): If a malformed asm was seen,
	silently fix up the stack in the case of a missing register.

2007-03-07  Paul Brook  <paul@codesourcery.com>

	* config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.

2007-03-07  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
	New.
	(phase1_vrs): Use them.
	(DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
	(__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
	__gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
	(restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
	__gnu_Unwind_Restore_WMMXC if required.
	(_Unwind_VRS_Pop): Implement iWMMXt support.
	* config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
	gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
	gnu_Unwind_Save_WMMXC): Define.

2007-03-07  Richard Sandiford  <richard@codesourcery.com>

	* config/vxworks.h (vxworks_override_options): Declare.
	(VXWORKS_OVERRIDE_OPTIONS): Use it.
	* config/vxworks.c: Include target.h and toplev.h.
	(vxworks_override_options): New function.
	* config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.

2007-03-07  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (override_options): Don't emit an error when
	-mstack-size is used without providing -mstack-guard.
	(s390_emit_prologue): Choose stack_guard value automatically if not
	provided via command line.
	* doc/invoke.texi: Adjust description of -mstack-guard and
	-mstack-size.

2007-03-07  Richard Sandiford  <richard@codesourcery.com>

	* config/i386/i386.c (output_set_got): Add a GOT initialization
	sequence for VxWorks PIC.
	(legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
	around labels as well as symbols.  Use gotoff_operand instead
	of local_symbolic_operand.
	(legitimize_pic_address): Use gotoff_operand instead of
	local_symbolic_operand.  Use @GOT accesses for labels as
	well as symbols.
	(ix86_output_addr_diff_elt): Use PC-relative rather than
	GP-relative offsets for VxWorks PIC.
	(ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
	no_new_pseudos.  Check whether the returned register is op0.
	* config/i386/i386.md (tablejump): Use PC-relative rather than
	GP-relative offsets for VxWorks PIC.
	* config/i386/predicates.md (gotoff_operand): New predicate.

2007-03-06  Richard Sandiford  <richard@codesourcery.com>

	* config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
	before defining.
	* config/vxworks-dummy.h: New file.
	* config/i386/i386.h: Include it.

2007-03-07  Alexandre Oliva  <aoliva@redhat.com>

	* dwarf2out.c (is_inlined_entry_point): New
	(add_high_low_attributes): Emit DW_AT_entry_pc along with
	DW_AT_ranges if the first subblock is the entry point.

2007-03-06  David Daney  <ddaney@avtrex.com>

	* doc/install.texi (mips-*-*): Change recommended binutils
	version.

2007-03-06  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
	ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
	devices.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

2007-03-06  Jan Hubicka  <jh@suse.cz>

	* errors.h (warning, error, fatal, internal_error): Mark as cold.
	* predict.c (maybe_hot_bb): Cold functions are never hot; hot
	functions are hot.
	(probably_cold_bb_p): Cold functions are cold.
	(probably_never_executed_bb_p): Cold functions are cold.
	(tree_bb_level_predictions): Predict calls to cold functions as not
	taken.
	(compute_function_frequency): Check hot/cold attributes.
	* function.h (function_frequency): Update comments.
	* predict.def (PRED_COLD_FUNCTION): Predict cold function.
	* c-common.c (handle_hot_attribute, handle_cold_attribute): New.
	(c_common_att): Add cold and hot.

	* doc/extend.texi (hot,cold attributes): Document.

2007-03-06  Andrew Haley  <aph@redhat.com>

	* function.c (expand_function_end): Move blockage to just after we
	emit the label for the naked return from the function.

2007-03-06  Richard Sandiford  <richard@codesourcery.com>

	* config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
	before redefining.

2007-03-06  Jan Hubicka  <jh@suse.cz>

	* reg-stack.c (reg_to_stack): Large models don't allow NAN to be
	loaded for constant large models.  Non-large 64bit PIC can do.
	* config/i386/i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
	* cmodel.h: Add LARGE PIC.
	* config/i386/i386.md (UNSPEC_PLTOFF): New.
	(UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other
	unspecs as needed.
	(*call_1_rex64): Disable for large models.
	(*call_1_rex64_large): New.
	(*call_value_1_rex64): Disable for large models.
	(*call_value_1_rex64_large): New.
	(set_rip_rex4): New.
	(set_got_offset_rex64): New.
	* config/i386/predicates.md (constant_call_address_operand): For
	large model constant calls are not possible.
	* config/i386/i386-protos.h (construct_plt_address): Declare.
	* config/i386/i386.c (override_options): Accept large models.
	(ix86_expand_prologue): Expand large PIC GOT pointer load.
	(legitimate_constant_p): Add new UNSPECs.
	(legitimate_pic_operand_p): Likewise.
	(legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
	(legitimize_pic_address): Do easy RIP relative way for TLS only for
	non-large model.
	(output_pic_addr_const): Add PLTOFF.
	(ix86_output_addr_diff_elt): Output 64bit tables when needed.
	(ix86_expand_move): Legitimize pic address when in PIC mode.
	(construct_plt_address): New function.
	(ix86_expand_call): Offload the address to register and use GOT
	pointer for large model.
	* invoke.texi (mcmodel=large): Update documentation.

2007-03-06  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (x86_use_leave, x86_push_memory,
	x86_zero_extend_with_and, x86_movx, x86_double_with_add,
	x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
	x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
	x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
	x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
	x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
	x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
	x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
	x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
	x86_partial_reg_dependency, x86_memory_mismatch_stall,
	x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
	x86_sse_partial_reg_dependency, x86_sse_split_regs,
	x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
	x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
	x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
	x86_schedule, x86_use_bt, x86_pad_returns,
	x86_use_xchgb): Merge into ...
	(ix86_tune_features): ... here.  New array.
	(x86_cmove, x86_cmpxchg, x86_cmpxchg8b,	x86_xadd,
	x86_bswap): Merge into ...
	(ix86_arch_features): ... here.  New array.
	(x86_3dnow_a): Remove.
	(x86_accumulate_outgoing_args): Make static.
	(x86_arch_always_fancy_math_387): Make static.
	(ix86_tune_mask, ix86_arch_mask): Move ...
	(override_options): ... to local variables here.  Apply the
	appropriate mask to each element of ix86_arch_features and
	ix86_tune_features.  Adjust TARGET_CMOVE and TARGET_USE_SAHF
	as were done in the old macros.
	(standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
	* config/i386/i386.h (x86_use_leave, x86_push_memory,
	x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
	x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
	x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
	x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
	x86_read_modify_write, x86_read_modify, x86_split_long_moves,
	x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
	x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
	x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
	x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
	x86_partial_reg_dependency, x86_memory_mismatch_stall,
	x86_accumulate_outgoing_args, x86_prologue_using_move,
	x86_epilogue_using_move, x86_decompose_lea,
	x86_arch_always_fancy_math_387, x86_shift1,
	x86_sse_partial_reg_dependency, x86_sse_split_regs,
	x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
	x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
	x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
	x86_use_incdec, x86_pad_returns, x86_bswap,
	x86_partial_flag_reg_stall): Remove.
	(enum ix86_tune_indices): New.
	(ix86_tune_features): New.
	(TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
	TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
	TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
	TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
	TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
	TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
	TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
	TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
	TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
	TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
	TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
	TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
	TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
	TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
	TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
	TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
	TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
	TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
	TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
	TARGET_EXT_80387_CONSTANTS): Use it.
	(enum ix86_arch_indices): New.
	(ix86_arch_features): New.
	(TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
	TARGET_BSWAP): Use it.
	(ix86_tune_mask, ix86_arch_mask): Remove.

2007-03-06  Joseph Myers  <joseph@codesourcery.com>

	PR bootstrap/31020
	* configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
	Define using $${sysroot_headers_suffix}.
	* configure: Regenerate.
	* cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
	multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
	defined.
	* doc/invoke.texi (-print-sysroot-headers-suffix): Document.
	* gcc.c (print_sysroot_headers_suffix): New.
	(option_map): Include --print-sysroot-headers-suffix.
	(display_help): Mention -print-sysroot-headers-suffix.
	(process_command): Handle -print-sysroot-headers-suffix.
	(do_spec_1): Append multilib directory to include-fixed path if
	sysroot suffixes in use.
	(main): Handle -print-sysroot-headers-suffix.
	* Makefile.in (start.encap): Don't depend on xlimits.h
	(xlimits.h): Remove.
	(stmp-int-hdrs): Don't depend on xlimits.h.  Inline generation of
	limits.h for each multilib in fixinc_list.
	(fixinc_list, s-fixinc_list): New.
	(stmp-fixinc): Depend on fixinc_list.  If not copying headers,
	generate them for each multilib in fixinc_list.
	(stmp-fixproto): Use include-fixed.  Run fixproto for each
	multilib in fixinc_list.
	(mostlyclean): Don't remove xlimits.h.
	(clean): Remove include-fixed.
	(real-install-headers-tar, real-install-headers-cpio,
	real-install-headers-cp): Don't copy include, only include-fixed.
	(install-mkheaders): Depend on fixinc_list.  Don't depend on
	xlimits.h.  Save limits.h files for each multilib in fixinc_list.
	Always save mkinstalldirs.  Preserve ${sysroot_headers_suffix} in
	SYSTEM_HEADER_DIR setting in mkheaders.conf.

2007-03-06  Jan Hubicka  <jh@suse.cz>

	* regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
	NANs easilly.

2007-03-06  Richard Sandiford  <richard@codesourcery.com>

	* configure.ac: Allow tm_file to contain build-directory files.
	* configure: Regenerate.
	* config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
	* config/m68k/t-uclinux (sysroot-suffix.h): New target.
	* config/m68k/print-sysroot-suffix.sh: New file.

2007-03-06  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
	of pic_offset_table_rtx if reload_completed.
	(CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
	PIC_OFFSET_TABLE_REGNUM.
	* config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
	return true.
	(m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
	(m68k_output_mi_thunk): Rewrite to use RTL.  Honor vcall_offset.

2007-03-06  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
	functions that call eh_return.

2007-03-06  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
	functions that need a constant pool.

2007-03-06  Richard Sandiford  <richard@codesourcery.com>

	PR target/28181
	* config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
	(m68k_preferred_reload_class): Likewise.
	* config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
	(SECONDARY_RELOAD_CLASS): Define.
	(PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
	(LIMIT_RELOAD_CLASS): Delete.
	* config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
	registers from storing bytes.
	(m68k_secondary_reload_class): New function.
	(m68k_preferred_reload_class): Likewise.

2007-03-06  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.c (m68k_save_reg): Remove special case for
	leaf functions.
	(m68k_expand_prologue): Likewise.

2007-03-06  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k-protos.h (output_sibcall): Declare.
	(mips_expand_epilogue): Add a bool parameter.
	(m68k_legitimize_sibcall_address): Declare.
	* config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
	(m68k_expand_epilogue): Add a parameter to select between sibling
	and normal epilogues.  Only generate a return for the latter.
	(m68k_ok_for_sibcall_p): New function.
	(m68k_legitimize_sibcall_address, output_sibcall): New functions.
	* config/m68k/m68k.md (sibcall, *sibcall): New patterns.
	(sibcall_value, *sibcall_value): Likewise.
	(*call, *call_value): Require !SIBLING_CALL_P.
	(epilogue): Update call to m68k_expand_epilogue.
	(sibcall_epilogue): New pattern.
	* config/m68k/predicates.md (const_call_operand): Say that this
	predicate applies to sibling calls too.
	(sibcall_operand): New predicate.

2007-03-06  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
	alternatives as movsi_cf.
	(movsf_cf_hard): Add commentary.

2007-03-06  Kazu Hirata  <kazu@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
	(m68k_movem_pattern_p, m68k_output_movem): Likewise.
	(m68k_expand_prologue, m68k_expand_epilogue): Likewise.
	* config/m68k/m68k.h (EPILOGUE_USES): Define.  Treat all registers
	as being live on exit from an interrupt function.
	(PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
	* config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
	(m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
	(TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
	(m68k_interrupt_function_p): Globalize.
	(m68k_compute_frame_layout): Remove reverse mask code.
	(m68k_emit_movem, m68k_set_frame_related): New functions.
	(m68k_output_function_prologue): Delete in favor of...
	(m68k_expand_prologue): ...this new function.
	(m68k_output_function_epilogue): Delete in favor of...
	(m68k_expand_epilogue): ...this new function.
	(m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
	functions.
	(print_operand): Handle %?.
	* config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
	(UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
	(prologue, epilogue): New patterns.
	(return): Turn into a define_expand.
	(*return): New pattern, derived from old "return" pattern.  Use rte
	rather than rts for interrupt functions.  Only use rtd if the pop
	count is nonzero.
	(*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
	(*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
	(link, *link, unlink, *unlink, load_got): Likewise.

2007-03-06  Richard Sandiford  <richard@codesourcery.com>

	PR target/23482
	PR target/17114
	* config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
	(m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
	(m68k_matches_q_p, m68k_matches_u_p): Likewise.
	* config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
	and m68k_matches_u_p.
	(PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
	(INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
	(GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
	(LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
	(GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
	(REG_STRICT_P): New macro.
	(LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
	PCREL_GENERAL_OPERAND_OK.
	(REG_OK_FOR_BASE_P): Merge definitions.  Use REG_STRICT_P and
	m68k_legitimate_base_reg_p.
	(REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
	(GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
	(PIC_CASE_VECTOR_ADDRESS): Update comment.
	* config/m68k/m68k.c (m68k_address): New structure.
	(m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
	(m68k_decompose_index, m68k_legitimate_constant_address_p)
	(m68k_jump_table_ref_p, m68k_decompose_address)
	(m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
	(m68k_matches_u_p): New functions.
	(print_operand_address): Rewrite to use m68k_decompose_index.

2007-03-05  David Taylor  <dtaylor@emc.com>

	* gcc.c: Correct copyright date in --version output.

2007-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.md: In unamed move patterns, disparge copies between general
	and floating point registers using '?' modifier.  Don't include 'f'
	constraint for register preferences in DImode, SImode, HImode and
	QImode patterns.  Likewise for 'r' in DFmode and SFmode patterns.
	Remove constraints for copies between general and floating registers
	in soft-float DFmode pattern.
	(movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
	floating register.
	(movsf): Likewise.

2007-03-05  Mike Stump  <mrs@apple.com>

	* c-common.c (targetcm): Add.
	* c-opts.c (c_common_handle_option): Handle language specific
	target options.
	* opts.c (handle_option): Verify language for target options, if
	any are given.
	* opth-gen.awk: Add CL_LANG_ALL.
	* target-def.h (TARGET_HANDLE_C_OPTION): Add.
	(TARGETCM_INITIALIZER): Add.
	* target.h (struct gcc_targetcm): Add.
	(targetcm): Add.
	* targhooks.c (default_handle_c_option): Add.
	* targhooks.h (default_handle_c_option): Add.
	* doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.

	* config/darwin.opt (iframework): Add.
	* config/darwin.h (TARGET_HAS_TARGETCM): Add.
	* config/darwin-c.c (handle_c_option): Add.
	(TARGET_HANDLE_C_OPTION): Add.
	(targetcm): Add.
	* doc/invoke.texi (Darwin Options): Add -iframework.

2007-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
	conversion.

2007-03-05  Ian Lance Taylor  <iant@google.com>

	* c.opt (fgnu89-inline): New option.
	* c-opts.c (c_common_post_options): Set default value for
	flag_gnu89_inline.
	* c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
	(pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
	inline functions.
	(diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
	(grokdeclarator, start_function): Likewise.
	* c-cppbuiltin.c (c_cpp_builtins): Define either
	__GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
	* doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
	(C Dialect Options): Document -fgnu89-inline.
	* doc/extend.texi (Function Attributes): Explain what the
	gnu_inline attribute does.
	* doc/cpp.texi (Common Predefined Macros): Document
	__GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.

2007-03-05  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/31034
	* tree-vrp.c (extract_range_from_assert): Don't try to handle a
	half-range if the other side is an overflow infinity.

2007-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
	(bfin*-linux-uclibc*): New configuration.
	* config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
	defining.
	* config/bfin/linux.h: New file.
	* config/bfin/libgcc-bfin.ver: New file.
	* config/bfin/t-bfin-uclinux: New file.
	* config/bfin/t-bfin-linux: New file.
	* config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
	(TARGET_OS_CPP_BUILTINS): New macro.

2007-03-05  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_binary): Remove duplicate folding
	of comparison of non-null ADDR_EXPR against null.

2007-03-05  Richard Guenther  <rguenther@suse.de>
	    Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/26420
	* tree-vectorizer.c (vectorize_loops): Bail out early if there
	are no loops in the function.  Only print the number of
	vectorized loops if it is greater than zero or we are supposed
	to print information about unvectorized loops.

2007-03-05  Revital Eres  <eres@il.ibm.com>

	* gcc.dg/var-expand1.c: New test.
	* loop-unroll.c (analyze_insn_to_expand_var): Add dump info
	when an accumulator is expanded.

2007-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR other/30465
	* c-common.c (convert_and_check): Don't give warnings for
	conversion if 'expr' already overflowed.

2007-03-04  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/30744
	* fold-const.c (fold_comparison): Enforce type consistency when
	transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.

2007-03-04  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-address.c (create_mem_ref): Do not put an expression
	containing a cast to the base of TARGET_MEM_REF.

2007-03-04  Martin Michlmayr  <tbm@cyrius.com>

	* tree.c (tree_contains_struct_check_failed): Remove spurious
	whitespace from error message.

2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>

	PR target/30406
	* config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
	instead of precision.

2007-03-04  Roman Zippel <zippel@linux-m68k.org>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* emit-rtl.c (find_auto_inc): New.
	(try_split): recreate REG_INC notes,
	Use regular for loops rather than whiles.

2007-03-03  Andreas Schwab  <schwab@suse.de>

	* configure.ac (HAVE_AS_REL16): Move test back to correct place.
	* configure: Regenerate.

2007-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
	flag_rounding_math, not flag_unsafe_math_optimizations.

	* c-pretty-print.c (pp_c_direct_abstract_declarator): Use
	fold_build2.
	* config/alpha/alpha.c (alpha_fold_builtin_zapnot,
	alpha_fold_vector_minmax): Likewise.
	* config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
	* config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.

2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
	(sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
	if the lhs has side-effects.
	<lhs_elt>: Treat the reference as a use if the rhs has side-effects.

2007-03-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (TUNEMASK): Remove define.
	(ARCHMASK): Remove define.
	(TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
	 Use ix86_arch_mask variable instead of ARCHMASK.
	* config/i386/i386.c (override_options): Ditto.
	(standard_80387_constant_p): Ditto.

2007-03-02  Ian Lance Taylor  <iant@google.com>

	Used signed infinities in VRP.
	* tree-vrp.c (uses_overflow_infinity): New static function.
	(supports_overflow_infinity): New static function.
	(make_overflow_infinity): New static function.
	(negative_overflow_infinity): New static function.
	(positive_overflow_infinity): New static function.
	(is_negative_overflow_infinity): New static function.
	(is_positive_overflow_infinity): New static function.
	(is_overflow_infinity): New static function.
	(overflow_infinity_range_p): New static function.
	(compare_values_warnv): New function split out of compare_values.
	(compare_value): Call it.
	(set_value_range_to_nonnegative): Add overflow_infinity
	parameter.  Change caller.
	(vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
	Change callers.
	(vrp_expr_computes_nonzero): Likewise.
	(compare_ranges, compare_range_with_value): Likewise.
	(compare_name_with_value, compare_names): Likewise.
	(vrp_evaluate_conditional): Likewise.
	(set_value_range): Handle infinity
	(vrp_operand_equal_p, operand_less_p): Likewise.
	(extract_range_from_assert): Likewise.
	(vrp_int_const_binop): Likewise.
	(extract_range_from_binary_expr): Likewise.
	(extract_range_from_unary_expr): Likewise.
	(extract_range_from_comparison): Likewise.
	(extract_range_from_expr): Likewise.
	(dump_value_range): Likewise.
	(vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
	(test_for_singularity): Likewise.
	(vrp_int_const_binop): Remove inline qualifier.
	(adjust_range_with_scev): Add comment.
	* tree-flow.h (vrp_evaluate_conditional): Update declaration.

2007-03-02  Diego Novillo  <dnovillo@redhat.com>

	* tree-ssa-structalias.c (could_have_pointers): Tidy.
	(get_constraint_for): Likewise.
	(do_structure_copy): Likewise.
	(find_func_aliases): Fix references to MODIFY_EXPR.
	(intra_create_variable_infos): Tidy.
	* tree-ssa-operands.c (add_virtual_operand): Add argument
	IS_CALL_SITE.
	When adding members of alias sets, if IS_CALL_SITE is true and
	the symbol is not call-clobbered, skip it.
	Adjust all callers.

2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>

	* config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
	entry by means of emit_insn_at_entry.

2007-03-02  Richard Henderson  <rth@redhat.com>

	* expr.h (promoted_input_arg): Remove decl.
	* function.c (promoted_input_arg): Merge into ...
	* combine.c (setup_incoming_promotions): ... only caller.
	Rearrange to avoid double loop.

2007-03-02  Ben Elliston  <bje@au.ibm.com>
	    Peter Bergner  <bergner@vnet.ibm.com>
	    Janis Johnson  <janis187@us.ibm.com>

	* config/rs6000/dfp.md: New file.
	* config/rs6000/rs6000.md: Include dfp.md.
	(add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
	and TDmode decimal float modes in FP registers.
	(num_insns_constant): Likewise.
	(rs6000_legitimate_offset_address_p): Likewise.
	(rs6000_legitimize_address): Likewise.
	(rs6000_legitimize_reload_address): Likewise.
	(rs6000_legitimate_address): Likewise.
	(rs6000_emit_move): Likewise.
	(function_arg_boundary): Likewise.
	(function_arg_advance): Likewise.
	(rs6000_darwin64_record_arg_recurse): Likewise.
	(function_arg): Likewise.
	(rs6000_gimplify_va_arg): Likewise.
	(rs6000_split_multireg_move): Likewise.
	(rs6000_output_function_epilogue): Likewise.
	(rs6000_output_function_epilogue): Likewise.
	(rs6000_register_move_cost): Likewise.
	(rs6000_function_value): Likewise.
	(rs6000_libcall_value): Likewise.

2007-03-02  Richard Sandiford  <richard@codesourcery.com>

	* config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.

2007-03-02  Richard Sandiford  <richard@codesourcery.com>

	* config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
	Use $MULTIDIR to choose between the kernel and RTP headers,
	and use $WIND_BASE and $WIND_USR to locate them.

2007-03-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (override_options): Put initialization of
	ix86_tune_mask and ix86_arch_mask to the correct place.

2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
	    Michael Meissner  <michael.meissner@amd.com>

	PR target/31019
	* config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
	(ARCHMASK): Define.
	(TARGET_CMOVE): Use ARCHMASK.
	(TARGET_CMPXCHG): Ditto.
	(TARGET_CMPXCHG8B): Ditto.
	(TARGET_XADD): Ditto.
	(TARGET_BSWAP): Ditto.
	* config/i386/i386.c (ix86_tune_mask): New global variable.
	(ix86_arch_mask): Ditto.
	(override_options): Initialize ix86_tune_mask and
	ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
	target_flags.

2007-03-02  Ben Elliston  <bje@au.ibm.com>

	PR 30992
	* config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".

2007-03-02  Joseph Myers  <joseph@codesourcery.com>

	* target.h (init_dwarf_reg_sizes_extra): New target hook.
	* target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
	* doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
	* dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
	hook.
	* config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
	rs6000_init_dwarf_reg_sizes_extra): New.
	* config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
	SPE register high parts.

2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>

	* Makefile.in: Add install-pdf target as
	copied from automake v1.10 rules.
	* configure.ac: Add install-pdf to target list.
	* configure: Regenerate.

2007-03-01  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
	modes to LDRD for DImode.
	(output_move_double): Fixup out of range ldrd/strd.
	(vfp_secondary_reload_class): Rename...
	(coproc_secondary_reload_class): ... to this.  Add wb argument.
	* config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
	coproc_secondary_reload_class for CLASS_IWMMXT.
	(SECONDARY_INPUT_RELOAD_CLASS): Ditto.
	* arm-protos.h (coproc_secondary_reload_class): Update prototype.

2007-03-01  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the
	unroll factor by the estimated number of iterations.
	(loop_prefetch_arrays): Do not prefetch in loops that iterate less
	than prefetch latency.

	* config/i386/driver-i386.c (describe_cache, detect_caches_amd,
	decode_caches_intel, detect_caches_intel): New functions.
	(host_detect_local_cpu): Use detect_caches_amd and
	detect_caches_intel.

2007-03-01  Richard Henderson  <rth@redhat.com>

	* expr.c (emit_move_complex_push): Export.
	(emit_move_complex_parts): Split out from ...
	(emit_move_complex): ... here.
	* expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
	* config/i386/i386.md (movcdi): New.

2007-03-01  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
	size of mode1 to check for tieable modes in MMX case.

2007-03-01  Richard Sandiford  <richard@codesourcery.com>

	* Makefile.in (rtlanal.o): Depend on tree.h.
	* rtl.h (offset_within_section_p, split_const): Declare.
	* rtlanal.c: Include tree.h.
	(offset_within_block_p): New function, taken from
	mips_offset_within_object_p.
	(split_const): New function, taken from mips_split_const.
	* config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
	Declare.
	* config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
	(CONSTANT_ADDRESS_P): Only accept legitimate constants.
	(LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
	* config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
	(m68k_illegitimate_symbolic_constant_p): New function.
	* config/m68k/m68k.md (movsi): Remove misleading predicates.
	If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
	symbolic constant that might be outside the symbol's section,
	move the symbol first and then add the offset.
	* config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
	Override.
	* config/mips/mips.c (mips_split_const): Delete.
	(mips_offset_within_object_p): Delete.
	(mips_symbolic_constant_p): Use offset_within_section_p and
	split_const instead of mips_offset_within_object_p and
	mips_split_const.
	(mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
	(mips_legitimize_const_move, print_operand_reloc)
	(mips_dangerous_for_la25_p): Use split_const instead of
	mips_split_const.

2007-02-28  Eric Christopher  <echristo@apple.com>

	* Makefile.in (install-include-dir): Don't rm -rf include.

2007-02-28  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30364
	* fold-const.c (fold_binary): Do not associate expressions
	with more than one variable for integer types that do not wrap.

2007-02-28  Sandra Loosemore  <sandra@codesourcery.com>

	* builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
	Delete, and replace with...
	(fold_builtin_call_array): This.  Update callers to use it.
	* fold-const.c (fold_build_call_list): Delete, and replace with...
	(fold_build_call_array): This.
	(fold_build_call_list_initializer): Delete, and replace with...
	(fold_build_call_array_initializer): This.
	* tree.h: Update declarations to reflect above changes.

	* c-typeck.c (build_function_call): Store converted arguments
	in a stack-allocated array instead of building a list.
	(convert_arguments): Store arguments in the array passed in as an
	argument, and return the actual number of arguments.
	* c-format.c: (check_function_format): Pass arguments in an
	array instead of a list.
	* c-common.c (check_function_nonnull): Likewise.
	(check_function_sentinel): Likewise.
	(check_function_arguments): Likewise.
	* c-common.h: Update declarations to reflect above changes.

2007-02-28  Jan Hubicka  <jh@suse.cz>

	* predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
	PRED_NEGATIVE_RETURN): Update outcomes.

2007-02-28  Bernd Schmidt  <bernd.schmidt@analog.com>

	* calls.c (emit_library_call_value_1): Handle partial registers
	correctly when building up CALL_INSN_FUNCTION_USAGE.

2007-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa/predicates.md (move_src_operand): Allow zero for mode.
	* pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
	move pattern.

2007-02-27  Uros Bizjak  <ubizjak@gmail.com>

	PR target/30970
	* config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
	*movv2df_internal): Enable pattern only for valid operand
	combinations.
	* config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
	tie only 128bit modes. For MMX registers, tie only 64bit modes.

2007-02-27  Mike Stump  <mrs@apple.com>

	* config/darwin-crt3.c: Avoid compilation when compiling for a
	kext multilib.

2007-02-27  Joseph Myers  <joseph@codesourcery.com>

	* Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
	FIXED_INCLUDE_DIR.
	(stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
	for fixed headers and limits.h.
	(install-include-dir, install-headers-tar, install-headers-cpio,
	install-headers-cp, real-install-headers-tar,
	real-install-headers-cpio, real-install-headers-cp): Handle
	include-fixed as well as include.
	(install-mkheaders): Don't install files that go only in include
	not include-fixed.
	* cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
	from GCC_INCLUDE_DIR.
	* gcc.c (process_command): Remove special -BstageN/ handling.
	(do_spec_1): Add include-fixed directories.

2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
	_smulsi3_highpart.
	* config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
	New functions.
	* config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
	patterns.

2007-02-27  Mark Mitchell  <mark@codesourcery.com>

	* c-common.c (get_priority): Add check for
	SUPPORTS_INIT_PRIORITY.

2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.

	* config/bfin/bfin.c: Include "cfglayout.h".
	(MAX_LSETUP_DISTANCE): New macro.
	(struct loop_info): New members incoming, incoming_src and
	incoming_dest.  Delete member predecessor.
	(length_for_loop): New function.
	(bfin_optimize_loop): Handle more different loop structures.
	(bfin_discover_loop): Rework detection of predecessor blocks by
	examining incoming edges.
	(bfin_discover_loops, bfin_free_loops): New functions, broken out of
	bfin_reorg_loops.
	(bfin_reorder_loops): New function.
	(bfin_reorg_loops): Use these three new functions.

	* config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
	REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
	(CONSTRAINT_LEN): Add entry for 'q'.
	(REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
	Add 'q' constraints.
	(REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
	(CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.

	* config/bfin/bfin.md (add_with_carry): New pattern.
	(s_or_u, su_optab, su_modifier): New code macros/attrs.
	(<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
	<su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
	support unsigned multiplies too.  Removed incorrect commutativity from
	operand 1 constraint where appropriate.
	(usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
	patterns.
	(<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
	<su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
	New patterns.
	(usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
	usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
	usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
	usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
	usmulhisi_hh_huh): New patterns.

	* config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
	lshifthi3): Fix output template to use half reg for operand 2.

	* config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
	instead of R2.

	* config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.

2007-02-27  Andreas Schwab  <schwab@suse.de>

	* Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.

2007-02-27  Jan Hubicka  <jh@suse.cz>

	* predict.c (last_basic_block_p): Remove.
	(tree_estimate_probability): Update return heuristic for commonized
	return blocks.

2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>

	* Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.

2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>

	* doc/include/gcc-common.texi (versionsubtitle): New macro.
	* doc/cpp.texi: Standardize title page.
	* doc/cppinternals.texi: Likewise.
	* doc/gcc.texi: Standardize title page, remove version number
	from copyright page.
	* doc/gccint.texi: Likewise.
	* doc/install.texi: Standardize title page, add table of
	contents.

2007-02-26  Jan Hubicka  <jh@suse.cz>

	* predict.def: Set outcomes according to more recent results.
	(PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
	Remove dead predictors.
	* predict.c (return_prediction): Fix pasto.

2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>

	* loop-iv.c (simplify_using_initial_values): Fix oversight in previous
	change; avoid a memory leak when returning early.

2007-02-26  Mark Mitchell  <mark@codesourcery.com>

	* c-decl.c (static_ctors): Move to c-common.c.
	(static_dtors): Likewise.
	(finish_function): Use c_record_cdtor_fn.
	(build_cdtor): Move to c-common.c.
	(c_write_global_declarations): Use c_build_cdtor_fns.
	* c-common.h (static_ctors): Declare.
	(static_dtors): Likewise.
	(c_record_cdtor_fn): Likewise.
	(c_build_cdtor_fns): Likewise.
	* c-common.c (static_ctors): New variable.
	(static_dtors): Likewise.
	(c_record_cdtor_fn): New function.
	(build_cdtor): Move from c-decl.c
	(c_build_cdtor_fns): New function.

	* output.h (assemble_addr_to_section): Declare.
	(get_cdtor_priority_section): Likewise.
	* varasm.c (assemble_addr_to_section): New function.
	(get_cdtor_priority_section): Likewise.
	(default_named_section_asm_out_destructor): Use them.
	(destor_dtor_section_asm_out_destructor): Likewise.
	(default_named_section_asm_out_constructor): Likewise.
	(default_ctor_section_asm_out_constructor): Likewise.
	* config.gcc (*-*-vxworks*): Include vxworks.o.
	* config/t-vxworks (vxworks.o): New target.
	* config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
	(TARGET_ASM_CONSTRUCTOR): Define.
	(TARGET_ASM_DESTRUCTOR): Likewise.
	(vxworks_asm_out_constructor): Declare.
	(vxworks_asm_out_destructor): Likewise.

	* c-common.c (get_priority): Check that we have not just an
	INTEGER_CST, but an integer constant with integeral type.

2007-02-25  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/30938
	* tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
	use &dt[nargs-1] instead of &dt[nargs] in the call to
	vect_is_simple_use().

2007-02-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload.c (find_reloads_address_1): Handle PLUS expressions resulting
	from register elimination as PRE_MODIFY / POST_MODIFY increments.
	Do not attempt to handle MEM inside auto-inc expressions.
	* reload1.c (eliminate_regs_1): Do not attempt to handle elimination
	of a register modified by an auto-inc expression.  However, do handle
	elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
	(elimination_effects): Prohibit elimination of a register modified
	by an auto-inc expression.  Disable register elimination rules whose
	target register is modified by an auto-inc expression with variable
	increment.

2007-02-25  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
	off-by-one error.
	(array_at_struct_end_p): New function.
	(idx_infer_loop_bounds): Use it.
	(estimate_numbers_of_iterations_loop): Export.
	* predict.c (predict_loops): Use estimated_loop_iterations_int.
	Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
	(tree_estimate_probability): Call record_loop_exits.
	* tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
	(estimated_loop_iterations, estimated_loop_iterations_int,
	estimated_loop_iterations_tree): New functions.
	(analyze_siv_subscript_cst_affine,
	compute_overlap_steps_for_affine_1_2,
	analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
	(analyze_miv_subscript): Use estimated_loop_iterations_tree.
	* predict.def (PRED_LOOP_ITERATIONS): Update comment.
	(PRED_LOOP_ITERATIONS_GUESSED): New.
	* cfgloop.c (record_loop_exits): Do nothing if there are no loops.
	* cfgloop.h (estimate_numbers_of_iterations_loop,
	estimated_loop_iterations_int): Declare.

2007-02-25  Mark Mitchell  <mark@codesourcery.com>

	* doc/extend.texi: Document optional priority argument to
	constructors and destructors.
	* tree.c (init_priority_for_decl): Adjust GTY markers.
	(init_ttree): Use priority-info hash functions for
	init_priority_for_decl.
	(tree_map_eq): Rename to ...
	(tree_map_base_eq): ... this.
	(tree_map_marked_p): Rename to ...
	(tree_map_base_marked_p): ... this.
	(tree_map_base_hash): New function.
	(decl_init_priority_lookup): Rework.
	(decl_fini_priority_lookup): New function.
	(decl_priority_info): New function.
	(decl_init_priority_insert): Use it.
	(decl_fini_priority_insert): Likewise.
	(decl_restrict_base_lookup): Adjust for refactoring of tree_map
	hierarchy.
	(decl_restrict_base_insert): Likewise.
	(decl_debug_expr_insert): Likewise.
	(decl_value_expr_lookup): Likewise.
	(decl_value_expr_insert): Likewise.
	* tree.h (priority_type): New type.
	(decl_init_priority_lookup): Use priority_type.
	(decl_fini_priority_lookup): New function.
	(decl_init_priority_insert): Use priority_type.
	(decl_fini_priority_insert): New function.
	(DECL_HAS_INIT_PRIORITY): Tweak comments.
	(DECL_INIT_PRIORITY): Likewise.
	(SET_DECL_INIT_PRIORITY): Add comment.
	(DECL_FINI_PRIORITY): New macro.
	(SET_DECL_FINI_PRIORITY): Likewise.
	(DEFAULT_INIT_PRIORITY): Document.
	(MAX_INIT_PRIORITY): Likewise.
	(MAX_RESERVED_INIT_PRIORITY): Likewise.
	(tree_map_base): New type.
	(tree_map_base_eq): New function.
	(tree_map_base_hash): Likewise.
	(tree_map_base_marked_p): Likewise.
	(tree_map): Inherit from tree_map_base.
	(tree_map_eq): Make it a macro.
	(tree_map_marked_p): Likewise.
	(tree_int_map): Inherit from tree_map_base.
	(tree_int_map_eq): Make it a macro.
	(tree_int_map_hash): Likewise.
	(tree_int_map_marked_p): Likewise.
	(tree_priority_map): New type.
	(tree_priority_map_eq): New macro.
	(tree_priority_map_hash): Likewise.
	(tree_priority_map_marked_p): Likewise.
	* varasm.c (emults_decl): Adjust for refactoring of tree_map
	hierarchy.
	(emutls_common_1): Likewise.
	* lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
	* tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
	of tree_map hierarchy.
	* tree-cfg.c (move_stmt_r): Likewise.
	(new_label_mapper): Likewise.
	* c-tree.h (c_expand_body): Move to ...
	* c-common.h (c_expand_body): ... here.
	* c-decl.c (c_expand_body): Move to ...
	* c-common.c (c_expand_body): ... here.
	(c_common_attribute_table): Allow 1 argument for the constructor
	and destructor attributes.
	(get_priority): New function.
	(handle_constructor_attribute): Set DECL_INIT_PRIORITY.
	(handle_destructor_attribute): Set DECL_FINI_PRIORITY.

2007-02-24  Jan Hubicka  <jh@suse.cz>

	PR middle-end/30509
	* tree-inline.c (copy_bb): Produce exact copy of EH info when
	copying for inlining.

2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
	    Jan Hubicka  <jh@suse.cz>

	PR target/30778
	* cofnig/i386/i386.c (counter_mode): New function.
	(expand_set_or_movmem_via_loop): Use it.
	(expand_movmem_epilogue): Likewise; fix pasto.
	(ix86_expand_movmem): Do emit guard even for constant counts.
	(ix86_expand_setmem): Likewise.

2007-02-25  Nick Clifton  <nickc@redhat.com>

	* config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
	(JUMP_TABLES_IN_TEXT_SECTION): Define.

2007-02-24  Uros Bizjak  <ubizjak@gmail.com>

	PR target/30770
	* config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
	count argument with 0x10, not with 0x16.
	(expand_setmem_epilogue): Ditto.

2007-02-24  Mike Stump  <mrs@apple.com>

	* config/i386/i386.c (output_pic_addr_const): Stubify optimized
	symbols.

2007-02-24  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30951
	* fold-const.c (fold_binary): Fold x +- CST op x for
	EQ_EXPR and NE_EXPR.

2007-02-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.md (muldi3): Force subregs to registers in 64-bit expander.

2007-02-24  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (decide_is_function_needed): Honor
	-fkeep-inline-functions.

2007-02-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_modf): New.
	(fold_builtin_2): Use it.

2007-02-24  Bernd Schmidt  <bernd.schmidt@analog.com>

	* loop-iv.c (implies_p): Detect additional cases where A implies B.
	(determine_max_iter): Take additional LOOP arg; all callers changed.
	Lose broken logic dealing with PLUS.  Try to limit the upper bound by
	one using simplifications.
	(simplify_using_initial_values): Return if the expression becomes
	invalid due to altered regs.

2007-02-23  DJ Delorie  <dj@redhat.com>

	* doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.

2007-02-23  Mike Stump  <mrs@apple.com>

	* tlink.c (scan_linker_output): Parse linker messages from
	darwin9's linker better.

2007-02-23  Steve Ellcey  <sje@cup.hp.com>

	PR debug/29614
	* varpool.c (varpool_assemble_pending_decls): Set
	varpool_last_needed_node to null.

2007-02-23  DJ Delorie  <dj@redhat.com>

	* config/i386/i386.c (ix86_data_alignment): Don't specify an
	alignment bigger than the object file can handle.

2007-02-23  Uros Bizjak  <ubizjak@gmail.com>

	PR target/30825
	* config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
	zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
	(*movsf_1): Penalize MMX moves.

2007-02-23  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
	2^32-1 or more times unless flag_unsafe_loop_optimizations.

	* loop-iv.c (determine_max_iter): Moved in front of its sole user.

2007-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_logb, fold_builtin_significand): New.
	(fold_builtin_1): Use them.
	* fold-const.c (tree_expr_nonnegative_warnv_p): Handle
	BUILT_IN_SIGNIFICAND.

2007-02-23  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (bdesc_1arg): Initialize
	IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
	"__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
	(ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
	and IX86_BUILTIN_MOVSLDUP.

2007-02-22  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/30841
	* fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.

2007-02-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_frexp): New.
	(fold_builtin_2): Use it.

2007-02-22  Mark Mitchell  <mark@codesourcery.com>

	* doc/invoke.texi (Spec Files): Document getenv spec function.

	* gcc.c (getenv_spec_function): New function.
	(static_spec_functions): Add it.
	* config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
	(VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
	header files.

2007-02-22  Michael Matz  <matz@suse.de

	PR c++/29433
	* dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
	(type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.

2007-02-22  Ian Lance Taylor  <iant@google.com>

	PR debug/30898
	* dwarf2out.c (concatn_mem_loc_descriptor): New static function.
	(mem_loc_descriptor): Call it.

2007-02-22  Zdenek Dvorak  <dvorakz@suse.cz>
	    Ira Rosen  <irar@il.ibm.com>

	* tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.

2007-02-22  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/30843
	* tree-vect-transform.c (vect_transform_loop): Remove strided scalar
	stores only after all the group is vectorized.

2007-02-22  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/30858
	* tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
	in the reduction cycle have a single use in the loop.
	* tree-vectorizer.h (relevant): Add documentation.

2007-02-20  Mike Stump  <mrs@apple.com>

	* configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
	* configure: Regenerate.

2007-02-21  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>

	Change the defaults of some parameters and options.
	* config/spu/spu-protos.h (spu_optimization_options): Declare.
	* config/spu/spu.c (spu_optimization_options): Add.
	(spu_override_options): Change params in spu_optimization_options.
	* config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.

	Register 127 is only 16 byte aligned when used as a frame pointer.
	* config/spu/spu-protos.h (spu_init_expanders): Declare.
	* config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
	HARD_FRAME_POINTER_REGNUM.
	(spu_legitimate_address): Use regno_aligned_for_reload.
	(regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte
	aligned when frame_pointer_needed is true.
	(spu_init_expanders): New.  Set alignment of HARD_FRAME_POINTER_REGNUM
	to 8 bits.
	* config/spu/spu.h (INIT_EXPANDERS): Define.

	Make sure shift and rotate instructions have valid immediate operands.
	* config/spu/predicates.md (spu_shift_operand): Remove.
	* config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
	* config/spu/constraints.md (W, O): Extend range.
	* config/spu/spu.md (umask, nmask): Define.
	(ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
	lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
	rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
	rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
	spu_nonmem_operand instead of spu_shift_operands.  Use new modifiers.
	(lshr<mode>3_reg): Fix rtl description.

	Make sure mulhisi immediate operands are valid.
	* config/spu/predicates.md (imm_K_operand): Add.
	* config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.

	Generate constants using fsmbi and andi.
	* config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
	(print_operand, spu_split_immediate, classify_immediate,
	fsmbi_const_p): Handle IC_FSMBI2.

	Correctly handle a CONST_VECTOR containing symbols.
	* config/spu/spu.c (print_operand): Handle HIGH correctly.
	(spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
	(immediate_load_p): Allow symbols that use 2 instructions to create.
	(classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR
	with symbols when flag_pic is set.
	(const_vector_immediate_p): New.
	(logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
	accept a CONST_VECTOR with symbols.
	(spu_legitimate_constant_p): Use const_vector_immediate_p.  Don't
	accept a CONST_VECTOR with symbols when flag_pic is set.  Handle HIGH
	correctly.
	* config/spu/spu.md (high, low): Delete.
	(low_<mode>): Define.

	Remove INTRmode and INTR_REGNUM, which didn't work.
	* config/spu/spu.c (spu_conditional_register_usage): Remove reference
	of INTR_REGNUM.
	* config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
	set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
	peephole2 pattern): Don't use INTR or 131.
	(movintrcc): Delete.
	* config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
	CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
	* config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
	(UNSPEC_SET_INTR): Add.
	* config/spu/spu-modes.def (INTR): Remove.

	More accurate warnings about run-time relocations.
	* config/spu/spu.c (reloc_diagnostic): Test in_section.

	Correctly warn about immediate arguments to specific intrinsics.
	* config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
	(spu_expand_builtin_1): Call spu_check_builtin_parm before checking
	the instruction predicate.

	Fix tree check errors with latest update.
	* config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
	CALL_EXPR_ARG.
	(spu_expand_builtin): Use CALL_EXPR_FN.

	Add missing specific intrinsics.
	* config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
	si_bislede.
	* config/spu/spu_internals.h: Ditto.

	Fix incorrect operand modifiers.
	* config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H.
	* config/spu/spu.md (xor<mode>3): Change %S to %J.

	Optimize one case of zero_extend of a vec_select.
	* config/spu/spu.md (_vec_extractv8hi_ze): Add.

	Accept any immediate for hbr.
	* config/spu/spu.md (hbr): Change s constraints to i.

2007-02-21  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
	condexec_count when skipping USE and CLOBBER.

2007-02-21  Nick Clifton  <nickc@redhat.com>

	* common.opt (Warray-bounds): Add Warning attribute.
	(Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
	Likewise.
	(fsized-zeroes): Add Optimization attribute.
	(fsplit-wide-types, ftree-scev-cprop): Likewise.
	* c.opt (Wc++0x-compat): Add Warning attribute.

2007-02-21  Ulrich Weigand  <uweigand@de.ibm.com>

	PR middle-end/30761
	* reload1.c (eliminate_regs_in_insn): In the single_set special
	case, attempt to re-recognize the insn before falling back to
	having reload fix it up.

2007-02-20  Eric Christopher  <echristo@gmail.com>

	* config/frv/frv.c (frv_read_argument): Take a tree and int argument.
	Rewrite accordingly.
	(frv_read_iacc_argument): Ditto.
	(frv_expand_set_builtin): Take a call instead of arglist, update for
	above changes.
	(frv_expand_unop_builtin): Ditto.
	(frv_expand_binop_builtin): Ditto.
	(frv_expand_cut_builtin): Ditto.
	(frv_expand_binopimm_builtin): Ditto.
	(frv_expand_voidbinop_builtin): Ditto.
	(frv_expand_int_void2arg): Ditto.
	(frv_expand_prefetches): Ditto.
	(frv_expand_voidtriop_builtin): Ditto.
	(frv_expand_voidaccop_builtin): Ditto.
	(frv_expand_load_builtin): Ditto.
	(frv_expand_store_builtin): Ditto.
	(frv_expand_mdpackh_builtin): Ditto.
	(frv_expand_mclracc_builtin): Ditto.
	(frv_expand_mrdacc_builtin): Ditto.
	(frv_expand_mwtacc_builtin): Ditto.
	(frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
	calls for above.

2007-02-20  Janis Johnson  <janis187@us.ibm.com>

	* doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
	* configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
	cmpb instruction.
	(HAVE_GAS_DFP): Check for assembler support of decimal floating
	point instructions.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/rs6000/rs6000.opt (mcmpb, mdfp): New.
	* config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
	masks to power6 and power6x and to POWERPC_MASKS.
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
	_ARCH_PWR6.
	* config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
	* config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
	Access PROTOTYPE as variable, not mask.

2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>

	* rtl.h (remove_reg_equal_equiv_notes): New prototype.
	* rtlanal.c (remove_reg_equal_equiv_notes): New function.
	* combine.c (adjust_for_new_dest): Use it.
	* postreload.c (reload_combine): Likewise.

2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>

	* rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
	notes on an insn with multiple sets, even if single_set returns
	non-NULL for that insn.

2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
	scalbn and scalbln.

2007-02-20  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
	if user didn't pass it.
	* config/i386/darwin.h (CC1_SPEC): Likewise.
	* config/rs6000/darwin.h (CC1_SPEC): Likewise.
	(DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
	-mmacosx-version-min.

2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
	    Uros Bizjak  <ubizjak@gmail.com>

	* optabs.h (enum optab_index): Add new OTI_scalb.
	(scalb_optab): Define corresponding macro.
	* optabs.c (init_optabs): Initialize scalb_optab.
	* genopinit.c (optabs): Implement scalb_optab using scalb?f3
	patterns.
	* builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
	BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
	(expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
	and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
	flag_unsafe_math_optimizations is set.

	* config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
	to implement scalbf, scalb and scalbl built-ins as inline x87
	intrinsics.

2007-02-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
	    DJ Delorie <dj@redhat.com>

	PR other/30824
	* diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
	(diagnostic_report_diagnostic): ... here, and turn them into real
	errors. If warnings are inhibited, no need to do anything.

2007-02-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (expm1xf2): Reorder insn sequence for
	better code generation.

2007-02-20  Ben Elliston  <bje@au.ibm.com>

	* config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.

2007-02-20  Kazu Hirata  <kazu@codesourcery.com>

	* config/alpha/alpha.c, config/alpha/alpha.md,
	config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
	config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
	config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
	config/arm/lib1funcs.asm: Follow spelling conventions.

	* config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
	config/fr30/fr30.md, config/i386/i386.h,
	config/iq2000/iq2000.h, config/iq2000/predicates.md,
	config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
	config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
	config/pdp11/pdp11.c, config/pdp11/pdp11.h,
	config/rs6000/altivec.md, config/rs6000/rs6000.c,
	config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
	config/sparc/sparc.c, config/sparc/sparc.h,
	config/sparc/sparc.md, config/spu/constraints.md,
	config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
	conventions.

2007-02-20  Alan Modra  <amodra@bigpond.net.au>

	PR target/29943
	* varasm.c (use_blocks_for_decl_p): Return false for decls with
	alias attribute.

2007-02-19  Kazu Hirata  <kazu@codesourcery.com>

	* doc/invoke.texi (-ftree-lrs): Remove.

2007-02-19  Diego Novillo  <dnovillo@redhat.com>

	* tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
	NULL.

2007-02-19  Lee Millward  <lee.millward@codesourcery.com>

	* config/ia64/ia64.c (ia64_expand_builtin): Use the
	new CALL_EXPR_FN macro for retrieving the function
	declaration of the input expression.

2007-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* c.opt (Waddress): New.
	* common.opt (Walways-true): Delete.
	(Wstring-literal-comparison): Delete.
	* doc/invoke.texi (Warning Options): Delete -Walways-true and
	-Wstring-literal-comparison. Add -Waddress.
	(Waddress): New.
	(Walways-true): Delete.
	(Wstring-literal-comparison): Delete.
	* doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
	consistently instead of -Walways-true in example.
	* c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
	* c-typeck.c (parser_build_binary_op): Replace
	-Wstring-literal-comparison and -Walways-true with -Waddress.
	* c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
	with -Waddress.

2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-cfg.c (dump_function_to_file): Be prepared for functions
	without DECL_STRUCT_FUNCTION initialized.

2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
	due to calls to functions taking pointers as parameters.

2007-02-19  Richard Henderson  <rth@redhat.com>

	PR debug/29558
	* var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
	in memory.

2007-02-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_call_saved_register_used,
	s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
	accessed to the new scheme.

2007-02-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
	(cris_print_index, cris_print_operand, cris_print_operand_address)
	(cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
	(cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
	(cris_expand_pic_call_address): Use xxx_P predicate macros instead of
	GET_CODE () == xxx.
	* config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
	EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
	GO_IF_LEGITIMATE_ADDRESS): Ditto.
	* config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
	(*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
	(*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
	(*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
	(*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
	(*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
	(uminsi3, call, call_value): Ditto.
	(define_split: indir_to_reg_split, unnamed): Ditto.

2007-02-19  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/30975
	* tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
	wrong assert.

2007-02-18  Eric Christopher  <echristo@gmail.com>

	* mips.c (mips_prepare_builtin_arg): Add argnum parameter.
	Remove use of arglist.
	(mips_expand_builtin): Remove use of arglist, pass in expr.
	(mips_expand_builtin_direct): Rewrite handling for arglist removal.
	(mips_expand_builtin_movtf): Ditto.
	(mips_expand_builtin_compare): Ditto.

2007-02-19  Alexandre Oliva  <aoliva@redhat.com>

	* tree-sra.c (sra_build_assignment): Replace assertion
	checking with a comment explaining why it can't be done.

2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>

	PR middle-end/30833
	* tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
	during CALL_EXPR representation conversion.
	* tree-ssa-propagate.c (set_rhs): Likewise.

2007-02-19  Alexandre Oliva  <aoliva@redhat.com>

	* tree-sra.c (sra_build_assignment): Disable assertion checking
	for now.

2007-02-18  Roger Sayle  <roger@eyesopen.com>

	* function.c (gimplify_parameters): Call build_gimple_modify_stmt
	instead of calling build2 with a GIMPLE_MODIFY_STMT.
	* gimple-low.c (lower_function_body, lower_builtin_setjmp):
	Likewise.
	* gimplify.c (build_stack_save_restore, gimplify_return_expr,
	gimplify_decl_expr,  gimplify_self_mod_expr, gimplify_cond_expr,
	gimplify_init_ctor_eval_range, gimple_push_cleanup,
	gimplify_omp_for, gimplify_omp_atomic_pipeline,
	gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
	force_gimple_operand): Likewise.
	* ipa-cp.c (constant_val_insert): Likewise.
	* lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
	lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
	perfect_nestify): Likewise.
	* langhooks.c (lhd_omp_assignment): Likewise.
	* omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
	lower_copyprivate_clauses, lower_send_clauses,
	lower_send_shared_vars, expand_parallel_call,
	expand_omp_for_generic, expand_omp_for_static_nochunk,
	expand_omp_for_static_chunk, expand_omp_sections,
	lower_omp_single_copy, lower_omp_for_lastprivate,
	lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
	* value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
	tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
	Likewise.

2007-02-19  Kazu Hirata  <kazu@codesourcery.com>

	* config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
	config/sh/sh.md: Follow spelling conventions.

	* config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
	config/frv/predicates.md: Follow spelling conventions.

	* config/m68k/linux-unwind.h: Fix a comment typo.
	* target.h: Follow spelling conventions.

2007-02-18  Roger Sayle  <roger@eyesopen.com>

	PR rtl-optimization/28173
	* simplify-rtx.c (simplify_binary_operation_1) <IOR>: Optimize
	(X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
	Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
	Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
	<AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).

2007-02-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_load_exponent): New.
	(fold_builtin_2): Use it.

2007-02-18  Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/30773
	* local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
	if we fail to attach a REG_EQUIV note.

2007-02-18  David Edelsohn  <edelsohn@gnu.org>
	    Roger Sayle  <roger@eyesopen.com>

	* config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.

2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>

	* calls.c (initialize_argument_information): Pass original EXP
	and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments.  Move
	code to split complex arguments here, as part of initializing the
	ARGS array.
	(expand_call): Remove code that builds a list of arguments and
	inserts implicit arguments into it.  Instead, just count how many
	implicit arguments there will be so we can determine the size of
	the ARGS array, and let initialize_argument_information do the work.
	(split_complex_values): Delete unused function.

2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.

2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>

	* calls.c (mem_overlaps_already_clobbered_arg_p): Return true
	for arg pointer based indexed addressing.

2007-02-18  Kazu Hirata  <kazu@codesourcery.com>

	* config/ia64/ia64.h, config/ia64/ia64.md,
	config/ia64/predicates.md, config/ia64/sysv4.h: Follow
	spelling conventions.

2007-02-18  Roman Zippel <zippel@linux-m68k.org>

	* config/m68k/m68k.c (split_di): New.
	* config/m68k/m68k-protos.h: Declare split_di.
	* config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
	  Improve predicate handling and split constant shifts.

2007-02-18  Roman Zippel <zippel@linux-m68k.org>

	* config/m68k/m68k.md (extv,extzv,insv): disable dynamic
	parameter for register bitfield operations, general predicates
	cleanup

2007-02-18  Roman Zippel <zippel@linux-m68k.org>

	* config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
	* config/m68k/linux-unwind.h: New file.

2007-02-18  Kazu Hirata  <kazu@codesourcery.com>

	* cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
	config/i386/athlon.md, config/ia64/ia64.md,
	config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
	df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
	ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
	tree-ssa-loop-niter.c, tree-vect-analyze.c,
	tree-vect-transform.c: Fix comment typos.

2007-02-17  Kazu Hirata  <kazu@codesourcery.com>

	* sched-deps.c (find_insn_list): Remove.
	* sched-int.h: Remove the prototype for find_insn_list.

2007-02-16  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
	to linker.
	(DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
	* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
	darwin_rs6000_override_options.
	(C_COMMON_OVERRIDE_OPTIONS): Expect
	darwin_macosx_version_min to be non-NULL always.
	(TARGET_C99_FUNCTIONS): Likewise.
	(CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
	(DARWIN_MINVERSION_SPEC): New.
	* config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
	* config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
	to cc1*.
	(DARWIN_MINVERSION_SPEC): New.
	* config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
	value.
	* config/darwin-c.c (darwin_cpp_builtins): Expect
	darwin_macosx_version_min to be non-NULL always.

	* config/rs6000/rs6000.c: Clean up trailing whitespace.

2007-02-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (x86_use_xchgb): New.
	(TARGET_USE_XCHGB): New macro.
	* config/i386/i386.c (x86_use_xchgb): Set for PENT4.
	* config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
	Split after reload into bswaphi for shifts of 8.
	(bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
	(*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
	or when optimizing for size.

2007-02-16  Richard Guenther  <rguenther@suse.de>
	    Christian Bruel  <christian.bruel@st.com>

	* fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
	DECLs but prefer SSA_NAMEs over DECLs.

2007-02-16  Richard Guenther  <rguenther@suse.de>

	* tree-flow-inline.h (single_imm_use_p): Remove.
	(zero_imm_uses_p): Likewise.
	* tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
	instead of single_imm_use_p.
	* tree-cfg.c (replace_uses_by): Use has_zero_use instead of
	zero_imm_uses_p.

2007-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR other/27843
	* Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
	nested double- and backquotes.

2007-02-15  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/30391
	* tree.c (expr_align): Handle MODIFY_EXPR.  GIMPLE_MODIFY_STMT
	should be unreachable.
	(build2_stat): Allow construction of MODIFY_EXPR at any time.
	For the time being redirect GIMPLE_MODIFY_STMT to the new
	(renamed) build_gimple_modify_stmt_stat.
	(build2_gimple_stat): Rename to...
	(build_gimple_modify_stmt_stat): Now longer take a CODE argument.
	Always build a GIMPLE_MODIFY_STMT node.
	* tree.h (build2_gimple, build2_gimple_stat): Delete.
	(build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
	declarations.

	* tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
	gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
	* tree-complex.c (set_component_ssa_name, expand_complex_move,
	expand_complex_div_wide): Likewise.
	* tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
	* tree-ssa-loop-im.c (schedule_sm): Likewise.
	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	* tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
	abs_replacement): Likewise.
	* tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
	realify_fake_stores): Likewise.

	* builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
	node rather than a GIMPLE_MODIFY_STMT node.
	(std_gimpify_va_arg_expr, expand_builtin_va_copy,
	fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
	Likewise.
	(integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
	* expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
	GIMPLE_MODIFY_STMT.

2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/30433
	* fold-const.c (fold_comparison): Add back the
	folding of constant complex comparisions.

2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/30729
	* stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
	effects unknown to this function, return early.

2007-02-15  Ian Lance Taylor  <iant@google.com>

	* lower-subreg.c (move_eh_region_note): New static function.
	(resolve_simple_move): Call it.
	(decompose_multiword_subregs): Track blocks for which we resolve a
	simple move which is also a control flow insn.  Pass them to
	find_many_sub_basic_blocks.
	(pass_lower_subreg): Add TODO_verify_flow.
	(pass_lower_subreg2): Likewise.

2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
	    Brooks Moses  <brooks.moses@codesourcery.com>
	    Lee Millward  <lee.millward@codesourcery.com>

	* tree.h (enum tree_code_class): Add tcc_vl_exp.
	(VL_EXP_CLASS_P): New.
	(TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
	TREE_CODE_LENGTH.
	(TREE_OPERAND_CHECK_CODE): Likewise.
	(GIMPLE_STMT_OPERAND_CHECK): Likewise.
	(TREE_RTL_OPERAND_CHECK): Likewise.
	(tree_operand_check_failed): Make second parameter the whole tree
	instead of its code.  Fixed callers.
	(VL_EXP_CHECK): New.
	(TREE_OPERAND_LENGTH): New.
	(VL_EXP_OPERAND_LENGTH): New.
	(CALL_EXPR_FN): New.
	(CALL_EXPR_STATIC_CHAIN): New.
	(CALL_EXPR_ARGS): New.
	(CALL_EXPR_ARG): New.
	(call_expr_nargs): New.
	(CALL_EXPR_ARGP): New.
	(build_nt_call_list): Declare.
	(build_vl_exp_stat): Declare.
	(build_vl_exp): New.
	(build_call_list): Declare.
	(build_call_nary): Declare.
	(build_call_valist): Declare.
	(build_call_array): Declare.
	(call_expr_arg): Declare.
	(call_expr_argp): Declare.
	(call_expr_arglist): Declare.
	(fold_build_call_list): Declare.
	(fold_build_call_list_initializer): Declare.
	(fold_call_expr): Declare to replace fold_builtin.
	(fold_builtin_fputs): Update to agree with modified definition.
	(fold_builtin_strcpy): Likewise.
	(fold_builtin_strncpy): Likewise.
	(fold_builtin_memory_chk): Likewise.
	(fold_builtin_stxcpy_chk): Likewise.
	(fold_builtin_strncpy_chk): Likewise.
	(fold_builtin_next_arg): Likewise.
	(fold_build_call_expr): Declare.
	(fold_builtin_call_list): Declare.
	(fold_builtin_call_valist): Declare.
	(build_call_expr): Declare.
	(validate_arglist): Update to agree with modified definition.
	(tree_operand_length): New.
	(call_expr_arg_iterator): New.
	(init_call_expr_arg_iterator): New.
	(next_call_expr_arg): New.
	(first_call_expr_arg): New.
	(more_call_expr_args_p): New.
	(FOR_EACH_CALL_EXPR_ARG): New.

	* tree.c (tree_code_class_string): Add entries for tcc_vl_exp
	and tcc_gimple_stmt.
	(tree_code_size): Update documentation.  Use sizeof (tree) rather
	than sizeof (char *).
	(tree_size): Likewise.  Add case for tcc_vl_exp.
	(tree_node_structure): Add case for tcc_vl_exp.
	(contains_placeholder_p): Likewise.
	(substitute_in_expr): Likewise.
	(substitute_placeholder_in_expr): Likewise.
	(stabilize_reference_1): Likewise.
	(build3_stat): Remove logic for CALL_EXPRs.  Replace with assertion
	to diagnose breakage of this interface for constructing CALL_EXPRs.
	(build_nt): Add similar assertion here.
	(build_nt_call_list): New.
	(simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
	(iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
	TREE_CODE_LENGTH.
	(get_callee_fndecl): Use new CALL_EXPR accessors.
	(tree_operand_check_failed): Change parameters to pass entire node
	instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
	(process_call_operands): New.
	(build_vl_exp_stat): New.
	(build_call_list): New.
	(build_call_nary): New.
	(build_call_valist): New.
	(build_call_array): New.
	(walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
	(call_expr_arglist): New.

	* tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
	tcc_vl_exp instead of a fixed-size tcc_expression.

	* doc/c-tree.texi (CALL_EXPR): Document new representation and
	accessors for CALL_EXPRs.
	(AGGR_INIT_EXPR): Likewise.

2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
	    Brooks Moses  <brooks.moses@codesourcery.com>
	    Lee Millward  <lee.millward@codesourcery.com>

	* builtins.c (c_strlen): Return NULL_TREE instead of 0.
	(expand_builtin_nonlocal_goto): Change parameter to be entire
	CALL_EXPR instead of an arglist.  Use new CALL_EXPR accessors.
	(expand_builtin_prefetch): Likewise.
	(expand_builtin_classify_type): Likewise.
	(mathfn_built_in): Return NULL_TREE instead of 0.
	(expand_errno_check): Use new CALL_EXPR accessors.
	(expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
	Return NULL_RTX instead of 0.
	(expand_builtin_mathfn_2): Likewise.
	(expand_builtin_mathfn_3): Likewise.
	(expand_builtin_interclass_mathfn): Likewise.
	(expand_builtin_sincos): Likewise.
	(expand_builtin_cexpi): Likewise.
	(expand_builtin_int_roundingfn): Likewise.
	(expand_builtin_int_roundingfn_2): Likewise.
	(expand_builtin_pow): Likewise.
	(expand_builtin_powi): Likewise.
	(expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
	of arglist, fixing callers appropriately.  Use new CALL_EXPR
	accessors and constructors.  Return NULL_RTX instead of 0.
	(expand_builtin_strstr): Likewise.
	(expand_builtin_strchr): Likewise.
	(expand_builtin_strrchr): Likewise.
	(expand_builtin_strpbrk): Likewise.
	(expand_builtin_memcpy): Likewise.
	(expand_builtin_mempcpy): Likewise.
	(expand_builtin_mempcpy_args): New.
	(expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
	(expand_builtin_memmove_args): New.
	(expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
	(expand_movstr): Likewise.
	(expand_builtin_strcpy): Likewise.
	(expand_builtin_strcpy_args): New.
	(expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
	(expand_builtin_strncpy): Likewise.
	(expand_builtin_memset): Likewise.
	(expand_builtin_memset_args): New.
	(expand_builtin_bzero): Similarly to expand_builtin_memset.
	(expand_builtin_memcmp): Likewise.
	(expand_builtin_strcmp): Likewise.
	(expand_builtin_strncmp): Likewise.
	(expand_builtin_strcat): Likewise.
	(expand_builtin_strncat): Likewise.
	(expand_builtin_strspn): Likewise.
	(expand_builtin_strcspn): Likewise.
	(expand_builtin_args_info): Likewise.
	(expand_builtin_va_start): Likewise.
	(gimplify_va_arg_expr): Likewise.
	(expand_builtin_va_end): Likewise.
	(expand_builtin_va_copy): Likewise.
	(expand_builtin_frame_address): Likewise.
	(expand_builtin_alloca): Likewise.
	(expand_builtin_bswap): Likewise.
	(expand_builtin_unop): Likewise.
	(expand_builtin_fputs): Likewise.
	(expand_builtin_expect): Likewise.
	(expand_builtin_fabs): Likewise.
	(expand_builtin_copysign): Likewise.
	(expand_builtin_printf): Likewise.
	(expand_builtin_fprintf): Likewise.
	(expand_builtin_sprintf): Likewise.
	(expand_builtin_init_trampoline): Likewise.
	(expand_builtin_signbit): Likewise.
	(expand_builtin_fork_or_exec): Likewise.
	(expand_builtin_sync_operation): Likewise.
	(expand_builtin_compare_and_swap): Likewise.
	(expand_builtin_lock_test_and_set): Likewise.
	(expand_builtin_lock_release): Likewise.
	(expand_builtin): Likewise.
	(builtin_mathfn_code): Likewise.

	(fold_builtin_constant_p): Pass call arguments individually instead
	of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
	accessors and constructors.  Return NULL_TREE instead of 0.
	(fold_builtin_expect): Likewise.
	(fold_builtin_classify_type): Likewise.
	(fold_builtin_strlen): Likewise.
	(fold_builtin_nan): Likewise.
	(integer_valued_real_p): Likewise.
	(fold_trunc_transparent_mathfn): Likewise.
	(fold_fixed_mathfn): Likewise.
	(fold_builtin_cabs): Likewise.
	(fold_builtin_sqrt): Likewise.
	(fold_builtin_cbrt): Likewise.
	(fold_builtin_cos): Likewise.
	(fold_builtin_cosh): Likewise.
	(fold_builtin_tan): Likewise.
	(fold_builtin_sincos): Likewise.
	(fold_builtin_cexp): Likewise.
	(fold_builtin_trunc): Likewise.
	(fold_builtin_floor): Likewise.
	(fold_builtin_ceil): Likewise.
	(fold_builtin_round): Likewise.
	(fold_builtin_int_roundingfn): Likewise.
	(fold_builtin_bitop): Likewise.
	(fold_builtin_bswap): Likewise.
	(fold_builtin_logarithm): Likewise.
	(fold_builtin_hypot): Likewise.
	(fold_builtin_pow): Likewise.
	(fold_builtin_powi): Likewise.
	(fold_builtin_exponent): Likewise.
	(fold_builtin_memset): Likewise.
	(fold_builtin_bzero): Likewise.
	(fold_builtin_memory_op): Likewise.
	(fold_builtin_bcopy): Deleted; call site changed to invoke
	fold_builtin_memory_op directly.
	(fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
	(fold_builtin_strncpy): Likewise.
	(fold_builtin_memcmp): Likewise.
	(fold_builtin_strcmp): Likewise.
	(fold_builtin_strncmp): Likewise.
	(fold_builtin_signbit): Likewise.
	(fold_builtin_copysign): Likewise.
	(fold_builtin_isascii): Likewise.
	(fold_builtin_toascii): Likewise.
	(fold_builtin_isdigit): Likewise.
	(fold_builtin_fabs): Likewise.
	(fold_builtin_abs): Likewise.
	(fold_builtin_fmin_fmax): Likewise.
	(fold_builtin_carg): Likewise.
	(fold_builtin_classify): Likewise.
	(fold_builtin_unordered_cmp): Likewise.

	(fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
	New functions split out from fold_builtin_1.
	(fold_builtin_n): New.
	(fold_builtin_varargs): New.
	(fold_builtin): Deleted.  Most callers changed to use fold_call_expr
	instead.
	(fold_call_expr): New.
	(build_function_call_expr): Rewrite to use new helper function.
	(fold_builtin_call_list): New.
	(build_call_expr): New.
	(fold_builtin_call_valist): New.
	(rewrite_call_expr): New.
	(validate_arg): New.
	(validate_arglist): Change parameter to be entire CALL_EXPR instead
	of an arglist.  Change return type to bool.  Use new CALL_EXPR
	accessors.

	(fold_builtin_strstr): Pass call arguments individually instead
	of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
	accessors and constructors.  Return NULL_TREE instead of 0.
	(fold_builtin_strchr): Likewise.
	(fold_builtin_strrchr): Likewise.
	(fold_builtin_strpbrk): Likewise.
	(fold_builtin_strcat): Likewise.
	(fold_builtin_strncat): Likewise.
	(fold_builtin_strspn): Likewise.
	(fold_builtin_strcspn): Likewise.
	(fold_builtin_fputs): Likewise.
	(fold_builtin_next_arg): Likewise.
	(fold_builtin_sprintf): Likewise.

	(expand_builtin_object_size): Use new CALL_EXPR accessors.  Use
	NULL_RTX instead of 0.
	(expand_builtin_memory_chk): Likewise.
	(maybe_emit_chk_warning): Likewise.
	(maybe_emit_sprintf_chk_warning): Likewise.

	(fold_builtin_object_size): Pass call arguments individually instead
	of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
	accessors and constructors.  Return NULL_TREE instead of 0.
	(fold_builtin_memory_chk): Likewise.
	(fold_builtin_stxcpy_chk): Likewise.
	(fold_builtin_strncpy_chk): Likewise.
	(fold_builtin_strcat_chk): Likewise.
	(fold_builtin_strcat_chk): Likewise.
	(fold_builtin_strncat_chk): Likewise.
	(fold_builtin_sprintf_chk): Likewise.
	(fold_builtin_snprintf_chk): Likewise.
	(fold_builtin_printf): Likewise.
	(fold_builtin_vprintf): Likewise.

	* fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
	constructors.
	(operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
	(make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
	(extract_muldiv_1): Add VL_EXP_CLASS_P case.
	(fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
	(fold_unary): Likewise.
	(fold_binary): Likewise.
	(fold_ternary): Remove CALL_EXPR case, since they are no longer
	ternary expressions.
	(fold): Add logic for tcc_vl_exp.
	(fold_checksum_tree): Make it know about tcc_vl_exp.  Use
	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
	(fold_build3_stat): Add assertion to flag broken interface for
	constructing CALL_EXPRs.
	(fold_build_call_list): New.
	(fold_build_call_list_initializer): New.
	(tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
	constructors.
	(fold_strip_sign_ops): Likewise.

2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
	    Brooks Moses  <brooks.moses@codesourcery.com>
	    Lee Millward  <lee.millward@codesourcery.com>

	* tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
	accessors and dump arguments explicitly.

	* tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
	TREE_CODE_LENGTH.
	(dump_generic_node): Use new CALL_EXPR accessors and walk arguments
	explicitly.
	(print_call_name): Use new CALL_EXPR accessors.

	* print-tree.c (print_node): Add case tcc_vl_exp.  Print
	CALL_EXPR arguments explicitly instead of as a list.  Use
	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.

	* tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
	(vrp_visit_stmt): Likewise.

	* tree-ssa-loop-im.c (outermost_invariant_loop_expr): Make it
	know about tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of
	TREE_CODE_LENGTH.
	(force_move_till_expr): Likewise.

	* targhooks.c (default_external_stack_protect_fail): Use
	build_call_expr instead of build_function_call_expr.
	(default_hidden_stack_protect_fail): Likewise.

	* tree-complex.c (expand_complex_libcall): Use build_call_expr to
	build the call.

	* cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
	and walk arguments explicitly.

	* tree-ssa-loop-niter.c (simplify_replace_tree): Use
	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
	(expand_simple_operations): Likewise.
	(infer_loop_bounds_from_array): Use new CALL_EXPR accessors.

	* gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
	of TREE_CODE_LENGTH.
	(walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.

	* optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
	instead of TREE_CODE_LENGTH.

	* value_prof.c (tree_ic): Use new CALL_EXPR accessors.
	(tree_ic_transform): Likewise.
	(interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
	parameter instead of arglist.  Fix callers.
	(tree_stringop_fixed_value): Use new CALL_EXPR accessors.
	(tree_stringops_transform): Likewise.
	(tree_indirect_call_to_profile): Likewise.
	(tree_stringops_values_to_profile): Likewise.

	* tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
	(eliminate_tail_call): Likewise.

	* ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.

	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
	Use TREE_OPERAND_LENGTH and generalize to handle any number of
	operands.
	(instantiate_parameters_1): Can't handle tcc_vl_exp here.

	* omp-low.c (build_omp_barrier): Use build_call_expr.
	(lower_rec_input_clauses): Likewise.
	(lower_reduction_clauses): Likewise.
	(expand_parallel_call): Likewise.
	(maybe_catch_exception): Likewise.
	(expand_omp_for_generic): Likewise.
	(expand_omp_for_static_nochunk): Likewise.
	(expand_omp_sections): Likewise.
	(lower_omp_single_simple): Likewise.
	(lower_omp_single_copy): Likewise.
	(lower_omp_master): Likewise.
	(lower_omp_ordered): Likewise.
	(lower_omp_critical): Likewise.

	* ipa-reference.c (check-call): Use new CALL_EXPR iterator.
	(scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.

	* tree-gimple.c (is_gimple_call_addr): Fix doc.
	(recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
	TREE_CODE_LENGTH.  Add tcc_vl_exp case.

	* tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
	and generalize to handle any number of operands.
	(chrec_contains_undetermined): Likewise.
	(tree_contains_chrecs): Likewise.
	(evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.

	* cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.

	* tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors.  Use
	fold_call_expr instead of fold_builtin.
	(ccp_fold_builtin): Likewise.  Update calls into builtins.c to
	match declarations there.
	(fold_stmt): Use new CALL_EXPR constructor and accessors.  Doc
	updates.

	* tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.

	* ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
	(scan_function): Add case tcc_vl_exp for CALL_EXPR.

	* tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
	accessors.

	* tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
	(execute_cse_sincos): Use new CALL_EXPR accessors.

	* tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.

	* gimple-low.c (lower_function_body): Use build_call_expr.
	(lower_builtin_setjmp): Likewise.

	* expr.c (emit_block_move_via_libcall): Use build_call_expr.
	(set_storage_via_libcall): Likewise.
	(safe_from_p): Add tcc_vl_exp case.  Use TREE_OPERAND_LENGTH
	instead of TREE_CODE_LENGTH.
	(expand_expr_real_1): Use new CALL_EXPR accessors.

	* tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
	generalize to handle any number of operands.
	(TB_parent_eq): Likewise.

	* predict.c (expr_expected_value): Use new CALL_EXPR accessors.
	(strip_builtin_expect): Likewise.

	* function.c (gimplify_parameters): Use build_call_expr.

	* tree-vectorizer.c (vect_is_simple_reduction): Use
	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.

	* ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
	(scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.

	* tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
	iterators.

	* gimplify.c (build_stack_save_restore): Use build_call_expr.
	(gimplify_decl_expr): Likewise.
	(gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
	Use new CALL_EXPR iterators.
	(gimplify_modify_expr_to_memcpy): Use build_call_expr.
	(gimplify_modify_expr_to_memset): Likewise.
	(gimplify_variable_sized_compare): Likewise.
	(gimplify_omp_atomic_fetch_op): Likewise.
	(gimplify_omp_atomic_pipeline): Likewise.
	(gimplify_omp_atomic_mutex): Likewise.
	(gimplify_function_tree): Likewise.

	* calls.c (alloca_call_p): Use new CALL_EXPR accessors.
	(call_expr_flags): Likewise.
	(expand_call): Likewise.

	* except.c (expand_builtin_eh_return_data_regno): Pass entire
	CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
	accessors.

	* coverage.c (create_coverage): Use build_call_expr.

	* tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
	(temp_call_expr_obstack): New.
	(pool_copy_list): Delete.
	(temp_copy_call_expr): New.
	(phi_translate): Add case tcc_vl_exp for CALL_EXPR.  Use new
	CALL_EXPR accessors.  Get rid of special goo for copying argument
	lists and use temp_copy_call_expr instead.
	(valid_in_sets): Add case tcc_vl_exp for CALL_EXPR.  Use new
	CALL_EXPR accessors.
	(create_expression_by_pieces): Likewise.  Use build_call_array
	to construct the result instead of fold_build3.
	(create_value_expr_from): Add tcc_vl_exp.  Delete special goo for
	dealing with argument lists.
	(init_pre): Remove references to expression_node_pool and
	list_node_pool.  Init temp_call_expr_obstack instead.
	(fini_pre): Remove references to expression_node_pool and
	list_node_pool.

	* tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
	and walk arguments explicitly instead of as a list.

	* tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
	(mx_register_decls): Likewise.
	(mudflap_register_call): Likewise.
	(mudflap_finish_file): Likewise.

	* ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
	(ipa_callsite_compute_param): Likewise.

	* tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
	accessors and constructor.

	* tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
	accessors and constructor.
	(convert_tramp_reference): Likewise.
	(convert_call_expr): Likewise.
	(finalize_nesting_tree_1): Likewise.

	* tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
	accessors.

	* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.

	* tree-inline.c (initialize_inlined_parameters): Pass entire
	CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
	accessors.
	(estimate_num_insns_1): Use new CALL_EXPR accessors.
	(expand_call_inline): Tidy up call to initialize_inlined_parameters.

	* tree-vect-transform.c (vect_create_epilog_for_reduction): Use
	TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
	(vectorizable_reduction): Likewise.
	(vectorizable_call): Use new CALL_EXPR iterators.
	(vectorizable_conversion): Use build_call_expr.
	(vectorizable_operation): Use TREE_OPERAND_LENGTH.
	(vect_gen_widened_results_half): Use build_call_expr.
	(vect_setup_realignment): Likewise.
	(vectorizable_live_operation): Use TREE_OPERAND_LENGTH.

	* tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
	(pass_through_call): Likewise.
	(compute_object_sizes): Likewise.  Use fold_call_expr instead of
	fold_builtin.

	* tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
	(tree_gen_pow2_profiler): Likewise.
	(tree_gen_one_value_profiler): Likewise.
	(tree_gen_ic_func_profiler): Likewise.
	(tree_gen_average_profiler): Likewise.
	(tree_gen_ior_profiler): Likewise.

	* tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
	(find_func_aliases): Use new CALL_EXPR accessors.  Add case
	tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.

	* tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
	of TREE_CODE_LENGTH.

	* stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
	of TREE_CODE_LENGTH.

	* convert.c (convert_to_real): Use new CALL_EXPR accessors and
	constructor.
	(convert_to_integer): Likewise.

	* tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
	accessors.

2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
	    Brooks Moses  <brooks.moses@codesourcery.com>
	    Lee Millward  <lee.millward@codesourcery.com>

	* config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
	accessors.
	* config/frv/frv.c (frv_expand_builtin): Likewise.
	* config/s390/s390.c (s390_expand_builtin): Likewise.

	* config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
	(sparc_expand_builtin): Use new CALL_EXPR accessors.

	* config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
	(ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
	instead of arglist.  Use new CALL_EXPR accessors on it.  Fix callers.
	(ix86_expand_store_builtin): Likewise.
	(ix86_expand_unop_builtin): Likewise.
	(ix86_expand_unop1_builtin): Likewise.
	(ix86_expand_sse_compare): Likewise.
	(ix86_expand_sse_comi): Likewise.
	(ix86_expand_vec_init_builtin): Likewise.
	(ix86_expand_vec_ext_builtin): Likewise.
	(ix86_expand_vec_set_builtin): Likewise.
	(ix86_expand_builtin): Use new CALL_EXPR accessors.

	* config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
	* config/c4x/c4x.c (c4x_expand_builtin): Likewise.

	* config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
	instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
	(iq2000_expand_builtin): Use new CALL_EXPR accessors.

	* config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
	build_call_expr.
	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
	(rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
	arglist.  Use new CALL_EXPR accessors.  Fix callers.
	(altivec_expand_abs_builtin): Likewise.
	(rs6000_expand_binop_builtin): Likewise.
	(altivec_expand_predicate_builtin): Likewise.
	(altivec_expand_lv_builtin): Likewise.
	(spe_expand_stv_builtin): Likewise.
	(altivec_expand_stv_builtin): Likewise.
	(rs6000_expand_ternop_builtin): Likewise.
	(altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
	(altivec_expand_st_builtin): Likewise.
	(altivec_expand_dst_builtin): Likewise.
	(altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
	arglist.  Use new CALL_EXPR accessors.  Fix callers.
	(altivec_expand_vec_set_builtin): Likewise.
	(altivec_expand_vec_ext_builtin): Likewise.
	(altivec_expand_builtin): Use new CALL_EXPR accessors.
	(spe_expand_builtin): Likewise.
	(spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
	arglist.  Use new CALL_EXPR accessors.  Fix callers.
	(spe_expand_evsel_builtin): Likewise.
	(rs6000_expand_builtin): Use new CALL_EXPR accessors.  VCFUX and
	FCFSX cases must construct whole new CALL_EXPR, not just arglist.

	* config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
	instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
	(arm_expand_unop_builtin): Likewise.
	(arm_expand_builtin): Use new CALL_EXPR accessors.

	* config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR
	accessors.

	* config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire
	CALL_EXPR instead of arglist.  Use new CALL_EXPR accessors.
	Fix callers.
	(bfin_expand_unop_builtin): Likewise.
	(bfin_expand_builtin): Use new CALL_EXPR accessors.

2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
	    Brooks Moses  <brooks.moses@codesourcery.com>
	    Lee Millward  <lee.millward@codesourcery.com>

	* c-semantics.c (build_stmt): Add internal diagnostic check.

	* c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
	accessors.  Print arguments explicitly instead of as a list.

	* c-typeck.c (build_function_call): Use new CALL_EXPR constructors.

	* c-omp.c (c_finish_omp_barrier): Use build_call_expr.
	(c_finish_omp_flish): Likewise.

	* c-common.c (verify_tree): Use new CALL_EXPR accessors.  Traverse
	arguments explicitly instead of as a list.  Use TREE_OPERAND_LENGTH
	instead of TREE_CODE_LENGTH.
	(check_function_arguments_recurse): Use new CALL_EXPR accessors.
	(c_warn_unused_result): Likewise.

2007-02-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/26494
	* doc/invoke.texi (Warning Options): Remove
	-Werror-implicit-function-declaration.
	(Wimplicit-function-declaration): Update description.
	* opts.c (common_handle_option): Move handling of -Werror=* to...
	(enable_warning_as_error): ...here.
	* opts.h (enable_warning_as_error): Declare.
	* c-decl.c (implicit_decl_warning): Unless
	-Wno-implicit-function-declaration is given, emit a pedwarn if
	-std=c99 or emit a warning if -Wimplicit-function-declaration.
	* c.opt (Wimplicit-function-declaration): Replace
	mesg_implicit_function_declaration with
	warn_implicit_function_declaration.
	* c-opts.c (c_common_handle_option):
	-Werror-implicit-function-declaration is exactly equal as
	-Werror=implicit-function-declaration.
	(set_Wimplicit): Replace mesg_implicit_function_declaration with
	warn_implicit_function_declaration.
	(c_common_post_options): -Wimplict-function-declaration is enabled
	by default by -std=c99, otherwise is disabled by default.
	* c-objc-common.c (c_objc_common_init): Remove flawed logic.

2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_modify_expr): During gimplification, attach a
	DECL on the rhs to a DECL on the lhs for debug info purposes if the
	former is ignored but not the latter.

2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
	is made and the reference doesn't use the alias set of its type,
	do not create the temporary using that type.

2007-02-15  Aldy Hernandez  <aldyh@redhat.com>

	* jump.c: Remove prototypes for delete_computation and
	delete_prior_computation.

2007-02-15  Paolo Bonzini  <bonzini@gnu.org>

	* jump.c (get_label_after): Delete.
	(get_label_before, delete_computation, delete_jump,
	delete_prior_computation, follow_jumps): Move...
	* reorg.c (delete_computation, delete_prior_computation): ... here...
	(get_label_before, delete_jump): ... making these static ...
	(follow_jumps): ... and simplifying this since it only runs after
	reload.
	* rtl.h (get_label_after, get_label_before, delete_jump,
	follow_jumps): Delete prototypes.

2007-02-15  Paolo Bonzini  <bonzini@gnu.org>

	* caller-save.c (save_call_clobbered_regs): Do not process sibcalls.

2007-02-15  Nick Clifton  <nickc@redhat.com>

	* varasm.c (default_asm_output_anchor): Prepend * to . symbol in
	order to prevent it from being munged by the target.

2007-02-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md: Remove misleading comment.

2007-02-15  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
	reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
	invalid patterns.

2007-02-15  Alexandre Oliva  <aoliva@redhat.com>

	* tree-sra.c (instantiate_missing_elements): Canonicalize
	bit-field types.
	(sra_build_assignment): New.
	(generate_copy_inout, generate_element_copy,
	generate_element_zero, generate_one_element_init): Use it.

2007-02-15  Alexandre Oliva  <aoliva@redhat.com>

	* tree-sra.c (instantiate_missing_elements): Canonicalize
	bit-field types.
	(sra_build_assignment): New.
	(generate_copy_inout, generate_element_copy,
	generate_element_zero, generate_one_element_init): Use it.

2007-02-15  Alexandre Oliva  <aoliva@redhat.com>

	* dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
	limbo die nodes.

2007-02-14  Joseph Myers  <joseph@codesourcery.com>

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
	types as aggregates not scalars.
	* function.c (assign_stack_temp_for_type): Likewise.

2007-02-14  Roger Sayle  <roger@eyesopen.com>
	    Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-dump.c (dump_switch_p_1): Require exact match of the option
	name.

2007-02-14  Zdenek Dvorak  <dvorakz@suse.cz>

	* passes.c (next_pass_1): Clear the next field of the copied
	pass structure.

2007-02-14  Richard Henderson  <rth@redhat.com>

	* tree-sra.c (early_sra): New.
	(decl_can_be_decomposed_p): Deny va_list if early_sra.
	(tree_sra_early, pass_sra_early): New.
	* tree-pass.h (pass_sra_early): Declare.
	* passes.c (init_optimization_passes): Use it.

2007-02-14  Richard Guenther  <rguenther@suse.de>

	* flags.h (issue_strict_overflow_warning): Convert to a macro.

2007-02-14  Dorit Nuzman  <dorit@il.ibm.com>

	 PR tree-optimization/30771
	* tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
	also phi nodes.
	(vect_analyze_operations): Induction phis can now be marked as
	used_in_loop.
	(vect_mark_stmts_to_be_vectorized): No special treatment for phis.
	Update documentation accordingly.

2007-02-14  Nick Clifton  <nickc@redhat.com>

	* builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
	most 3 arguments are supported.
	(DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.

2007-02-13  Seongbae Park <seongbae.park@gmail.com>

	* bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
	Ensure dst->current is valid.

2007-02-13  Paul Brook  <paul@codesourcery.com>

	* config.gcc: Add arm*-*-uclinux-*eabi.
	* config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
	(SUBTARGET_EXTRA_LINK_SPEC): Define.
	(STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
	(LINK_GCC_C_SEQUENCE_SPEC): Undef.
	(LINK_SPEC): Define.
	(LIB_SPEC): Define.
	* config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
	register.
	* config/arm/uclinux-eabi.h: New file.
	* config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
	* config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
	based targets.

2007-02-13  Ian Lance Taylor  <iant@google.com>

	* common.opt: Add Wstrict-overflow and Wstrict-overflow=.
	* flags.h (warn_strict_overflow): Declare.
	(enum warn_strict_overflow_code): Define.
	(issue_strict_overflow_warning): New static inline function.
	* opts.c (warn_strict_overflow): New variable.
	(common_handle_option): Handle OPT_Wstrict_overflow and
	OPT_Wstrict_overflow_.
	* c-opts.c (c_common_handle_option): Set warn_strict_overflow for
	OPT_Wall.
	* fold-const.c: Include intl.h.
	(fold_deferring_overflow_warnings): New static variable.
	(fold_deferred_overflow_warning): New static variable.
	(fold_deferred_overflow_code): New static variable.
	(fold_defer_overflow_warnings): New function.
	(fold_undefer_overflow_warnings): New function.
	(fold_undefer_and_ignore_overflow_warnings): New function.
	(fold_deferring_overflow_warnings_p): New function.
	(fold_overflow_warning): New static function.
	(make_range): Add strict_overflow_p parameter.  Change all
	callers.
	(extract_muldiv, extract_muldiv_1): Likewise.
	(fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
	tree_expr_nonnegative_p.
	(fold_negate_expr): Call fold_overflow_warning.
	(fold_range_test): Likewise.
	(fold_comparison): Likewise.
	(fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
	instead of tree_expr_nonnegative_p.
	(tree_expr_nonnegative_warnv_p): Rename from
	tree_expr_nonnegative_p, add strict_overflow_p parameter.
	(tree_expr_nonnegative_p): New function.
	(tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
	strict_overflow_p parameter.
	(tree_expr_nonzero_p): New function.
	* passes.c (verify_interpass_invariants): New static function.
	(execute_one_pass): Call it.
	* tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
	warnings.
	(number_of_iterations_exit, loop_niter_by_eval): Likewise.
	(estimate_numbers_of_iterations): Likewise.
	(scev_probably_wraps_p): Likewise.
	* tree-ssa-ccp.c: Include "toplev.h".
	(evaluate_stmt): Defer fold overflow warnings until we know we are
	going to optimize.
	(struct fold_stmt_r_data): Add stmt field.
	(fold_stmt_r): Defer fold overflow warnings until we know we
	optimized.
	(fold_stmt): Initialize stmt field of fold_stmt_r_data.
	(fold_stmt_inplace): Likewise.
	* tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
	(cleanup_control_expr_graph): Defer fold overflow warnings until
	we know we are going to optimize.
	* tree-cfg.c (fold_cond_expr_cond): Likewise.
	* tree-ssa-threadedge.c (simplify_control_stmt_condition):
	Likewise.
	* tree-vrp.c (vrp_expr_computes_nonnegative): Call
	tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	* c-typeck.c (build_conditional_expr): Likewise.
	(build_binary_op): Likewise.
	* tree-vrp.c (vrp_expr_computes_nonzero): Call
	tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
	(extract_range_from_unary_expr): Likewise.
	* simplify-rtx.c (simplify_const_relational_operation): Warn when
	assuming that signed overflow does not occur.
	* c-common.c (pointer_int_sum): Ignore fold overflow warnings.
	* tree.h (tree_expr_nonnegative_warnv_p): Declare.
	(fold_defer_overflow_warnings): Declare.
	(fold_undefer_overflow_warnings): Declare.
	(fold_undefer_and_ignore_overflow_warnings): Declare.
	(fold_deferring_overflow_warnings_p): Declare.
	(tree_expr_nonzero_warnv_p): Declare.
	* doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
	of warning options.
	(Warning Options): Document -Wstrict-overflow.
	* Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
	(tree-ssa-ccp.o): Likewise.
	(tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
	(fold-const.o): Depend on intl.h.

2007-02-13  Ian Lance Taylor  <iant@google.com>

	PR middle-end/30751
	* lower-subreg.c (resolve_simple_move): Decompose subregs in
	addresses.

2007-02-13  Stuart Hastings  <stuart@apple.com>

	* config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.

2007-02-13  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
	handled_component_p before looking for the indirect_ref.

2007-02-13  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
	remove flags clobber.
	(bswapsi2): New expander, emit code for !TARGET_BSWAP.
	(bswaphi_lowpart): New.
	(bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
	remove TARGET_BSWAP test.  Delete expander of the same name.

	* optabs.c (widen_bswap, expand_doubleword_bswap): New.
	(expand_unop): Use them.

2007-02-13  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
	*cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
	*movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
	*ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
	*ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
	*ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
	*ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
	assembler dialect choice from asm templates.

2007-02-12  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
	(fixuns_trunc<SSEMODEF>si2): Use it.
	* config/i386/sse.md (vec_setv4sf_0): Export.
	* config/i386/i386.c (ix86_build_const_vector): Export.
	(ix86_split_convert_uns_si_sse): Rename from
	ix86_expand_convert_uns_si_sse and rewrite as a splitter.
	* config/i386/i386-protos.h: Update.

2007-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/29521
	* c-typeck.c (c_finish_return): Improve warning message.

2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* alias.c (find_symbolic_term): Delete unused function.

2007-02-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (paritydi2, paritysi2): New expanders.
	(paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
	(*parityhi2_cmp, *parityqi2_cmp): New insn patterns.

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

	* tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
	* cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
	the function, temporarily point the debug interface to the null one.

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

	* dwarf2out.c (round_up_to_align): New static function.
	(field_byte_offset): Use it to round the offset.

2007-02-12  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (bswapsi2, bswapdi2): New.
	(inswl_const): Export.

2007-02-12  Richard Henderson  <rth@redhat.com>

	* calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
	result mode of the libcall, convert back to outmode.

2007-02-12  Roger Sayle  <roger@eyesopen.com>

	* config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
	(bswapdi2): New define_expand to implement 32-bit implementation.

2007-02-12  Nick Clifton  <nickc@redhat.com>

	* doc/invoke.texi (Overall Options): Document --help=.
	* gcc.c (target_help_flag): Rename to print_subprocess_flag.
	(cc1_options): Pass --help= on to cc1.
	(display_help): Add description of --help=.
	(process_command): Add code to handle --help=.  Allow translated
	--help and --target-help switches to be passed on to compiler
	sub-process.
	(main): Remove unused if statement.
	* opts.c (columns): Remove.
	(LEFT_COLUMN): Define.
	(wrap_help): Add columns argument.
	(print_filtered_help): Change parameters to be an include bitmask,
	an exclude bitmask, an any bitmask and the column width.  Move the
	code to display the params list here.  Add code to display the
	status of options rather than their descriptions if the quiet flag
	is not active.
	(print_specific_help): Change parameters to be an include bitmask,
	an exclude bitmask and an any bitmask.  Move code to look up the
	column width here.  Decide upon the title for an options listing.
	(common_handle_options): Add code to handle --help=.  Adapt code
	for --help and --target-help to use the revised form of the
	print_specific_help function.
	(print_help): Delete.
	(print_param_help): Delete.
	(print_switch): Delete.
	* opts.h (cl_lang_count): Add prototype.
	(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS,
	CL_MAX_OPTION_CLASS): New defines.
	* optc-gen.awk: Add construction of cl_lang_count.
	* c.opt: Add Warning attribute to warning options and Optimization
	attribute to optimization options.
	* common.opt: Likewise.
	Add --help=.
	Add -fhelp and -ftarget-help as aliases for the transformed --help
	and --target-help options.
	* opt-functions.awk: Add code to handle Warning and Optimization
	attributes.

2007-02-12  Richard Henderson  <rth@redhat.com>

	* config/alpha/constraints.md: New file.
	* config/alpha/alpha.c: Include tm-constrs.h.
	(alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
	alpha_extra_constraint): Remove.
	(alpha_emit_conditional_branch): Use satisfies_constraint_*.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
	(CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
	(EXTRA_CONSTRAINT): Remove.
	* config/alpha/alpha.md: Include constraints.md.
	(adddi splitter): Use satisfies_constraint_*.
	* config/alpha/predicates.md (add_operand): Likewise.
	(sext_add_operand, addition_operation): Likewise.

2007-02-12  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/29145
	* tree-data-ref.c (base_addr_differ_p): Make us more conservative
	in our handling of restrict qualified pointers.

2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR middle-end/7651
	* doc/invoke.texi (Wunused-value): Update description.
	(Wextra): Delete item.
	* opts.c (set_Wextra): Don't use the value of Wextra to set the
	value of Wunused-value.
	* c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
	(c_finish_stmt_expr): Don't check extra_warnings.
	(emit_side_effect_warnings): The caller is responsible to check
	warn_unused_value.

2007-02-11  Roger Sayle  <roger@eyesopen.com>
	    Matt Thomas  <matt@3am-software.com>

	* simplify-rtx.c (simplify_relational_operation_1): Correct typo.

2007-02-11  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (simplify_relational_operation_1): Optimize
	comparisons of POPCOUNT against zero.
	(simplify_const_relational_operation): Likewise.

2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* doc/invoke.texi (Wextra): Delete outdated paragraph.

2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* dwarf2out.c (root_type): Delete unused function.

2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* genattrtab.c (contained_in_p): Delete unused function.
	(write_expr_attr_cache): Likewise.

2007-02-11  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
	previous patch.

2007-02-11  Steven Bosscher  <steven@gcc.gnu.org>

	* fwprop.c (try_fwprop_subst): Use set_unique_reg_note
	to add the REG_EQ* note.
	* see.c (see_merge_one_use_extension): Likewise.
	* local-alloc.c (update_equiv_regs): Likewise.  Also don't
	turn REG_EQUAL notes into REG_EQUIV notes if the target
	register may have more than one set.
	* function.c (assign_parm_setup_reg): Use set_unique_reg_note.
	* gcse.c (try_replace_reg): Likewise.
	* alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
	* calls.c (fixup_tail_calls): Likewise.  Abort if there is
	more than one REG_EQUIV note.
	* reload1.c (gen_reload): Use set_unique_reg_note.

2007-02-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
	(ix86_builtin_conversion): New function.

2007-02-06  Mark Mitchell  <mark@codesourcery.com>

	PR target/29487
	* tree.h (DECL_REPLACEABLE_P): New macro.
	* except.c (set_nothrow_function_flags): Likewise.

2007-02-11  Tehila Meyzels  <tehila@il.ibm.com>
	    Ira Rosen  <irar@il.ibm.com>
	    Dorit Nuzman  <dorit@il.ibm.com>

	* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
	* targhooks.c (default_builtin_vectorized_conversion): New.
	* targhooks.h (default_builtin_vectorized_function): New declaration.
	* target.h (struct vectorize): Add builtin_conversion field.
	* tree-vectorizer.h (type_conversion_vec_info_type): New enum
	stmt_vec_info_type value.
	(vectorizable_conversion): New declaration.
	* tree-vect-analyze.c (vect_analyze_operations): Add
	vectorizable_conversion call.
	* target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
	* tree-vect-transform.c (vectorizable_conversion): New function.
	(vect_transform_stmt): Add case for type_conversion_vec_info_type.
	* tree-vect-generic.c (expand_vector_operations_1): Consider correct
	mode.
	* config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
	(TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
	(rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX
	or ALTIVEC_BUILTIN_VCFSX.

2007-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/30634
	* pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
	CONST_DOUBLE and operand 0 is a hard register.
	(movdi): For 64-bit target, remove code to force CONST_DOUBLE to
	memory.  Fail if operand 1 is a non-zero CONST_INT and operand 0
	is a hard floating-point register.

2007-02-10  Richard Henderson  <rth@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>
	    Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
	* builtin-types.def (BT_WORD): Make unsigned.
	(BT_FN_VOID_PTR_WORD_WORD_PTR): New.
	* builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
	(BUILT_IN_EMUTLS_REGISTER_COMMON): New.
	* c-decl.c (grokdeclarator): Don't error if !have_tls.
	* c-parser.c (c_parser_omp_threadprivate): Likewise.
	* dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
	emulated tls.
	* expr.c (emutls_var_address): New.
	(expand_expr_real_1): Expand emulated tls.
	(expand_expr_addr_expr_1): Likewise.
	* libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
	* output.h (emutls_finish): Declare.
	* toplev.c (compile_file): Call it.
	* tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
	address before wrapping in CONST.
	* varasm.c (emutls_htab, emutls_object_type): New.
	(EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
	(get_emutls_object_name, get_emutls_object_type): New.
	(get_emutls_init_templ_addr, emutls_decl): New.
	(emutls_common_1, emutls_finish): New.
	(assemble_variable): When emulating tls, swap decls; generate
	constructor for the emutls objects.
	(do_assemble_alias): When emulating tls, swap decl and target name.
	(default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
	for emulated tls.
	* varpool.c (decide_is_variable_needed): Look at force_output.
	Recurse for emulated tls.
	(cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
	with decide_is_variable_needed.
	* emutls.c: New file.
	* config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
	tls_object for real tls.

2007-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR rtl-optimization/29599
	* reload1.c (eliminate_regs_in_insn): Take the destination
	mode into account when computing the offset.

2007-02-09  Stuart Hastings  <stuart@apple.com>
	    Richard Henderson  <rth@redhat.com>

	* config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
	* config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
	* config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
	fixuns_truncdfhi2): New.
	(fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
	(floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
	(floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
	(floatunssidf2): Allow nonimmediate source.
	* config/i386/sse.md (movdi_to_sse): New.
	(vec_concatv2di): Drop '*'.
	* config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
	ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
	ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse):
	New.
	* config/i386/i386.c (ix86_expand_convert_uns_si_sse,
	ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
	ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
	ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
	(ix86_build_signbit_mask): Fix decl of v, refactor to call
	ix86_build_const_vector.
	(x86_emit_floatuns): Rewrite.

2007-02-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* genautomata.c (longest_path_length): Delete unused function.
	(struct state): Delete unused longest_path_length.
	(UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
	(get_free_state): Delete unused.

2007-02-09  Jan Hubicka  <jh@suse.cz>

	* params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
	* doc/invoke.texi (inline-unit-growth): Update default value.

	* Makefile.in (passes.o, ipa-inline.o): Add dependencies.
	* cgraphbuild.c (build_cgraph_edges): Compute frequencies.
	(rebuild_cgraph_edges): Likewise.
	* cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
	(dump_cgraph_node): Dump frequencies.
	(cgraph_clone_edge): Add frequency scales.
	(cgraph_clone_node): Add freuqnecy.
	* cgraph.h (cgraph_edge): Add freuqnecy argument.
	(CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
	(cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
	* tree-pass.h (TODO_rebuild_frequencies): New constant.
	* cgraphunit.c (verify_cgraph_node): Verify frequencies.
	(cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
	(save_inline_function_body): Likewise.
	* ipa-inline.c: inluce rtl.h
	(cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
	(cgraph_edge_badness): Use frequencies.
	(cgraph_decide_recursive_inlining): Update clonning.
	(cgraph_decide_inlining_of_small_function): Dump frequency.
	* predict.c (estimate_bb_frequencies): Export.
	* predict.h (estimate_bb_frequencies): Declare.
	* tree-inline.c (copy_bb): Watch overflows.
	(expand_call_inline): Update call of cgraph_create_edge.
	(optimize_inline_calls): Use TODO flags to update frequnecies.
	* passes.h: Include predict.h
	(init_optimization_passes): Move profile ahead.
	(execute_function_todo): Handle TODO_rebuild_frequencies.

2007-02-09  Roger Sayle  <roger@eyesopen.com>

	* config/alpha/alpha.c (emit_insxl): Force the first operand of
	the insbl or inswl pattern into a register.

2007-02-09  Roger Sayle  <roger@eyesopen.com>

	* config/ia64/ia64.md (bswapdi2): New define_insn.

2007-02-09  Richard Henderson  <rth@redhat.com>

	* config/i386/constraints.md (Ym): New constraint.
	* config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
	(movdi_1_rex64): Split sse and xmm general register moves from
	memory move alternatives.  Use conditional register constraints.
	(movsf_1, movdf_integer): Likewise.
	(zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
	(movdf_integer_rex64): New.
	(pushsf_rex64): Fix output constraints.
	* config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
	(sse2_stored): Likewise.
	(sse2_storeq_rex64): New.
	* config/i386/i386.c (x86_inter_unit_moves): Enable for not
	amd and not generic.
	(ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
	for optimize_size.  Remove SF/DFmode hack.

2007-02-09  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
	(bit_SSE4a): New.

2007-02-09  Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
	(m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
	(m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
	m68k/t-mlib to tmake_file.
	(m68020-*-elf*, m68k-*-elf*): Likewise.  Add t-m68kbare as well.
	(m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
	(m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
	Allow it to be cf or m68k.  Set m68k_arch_family.  If that
	variable is not empty, add t-$m68k_arch_family to tmake_file.
	Add t-mlibs to tmake_file.
	* doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
	* config/m68k/t-cf: New file.
	* config/m68k/t-m68k: Likewise.
	* config/m68k/t-mlibs: Likewise.
	* config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
	(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
	(M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
	* config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
	(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
	Delete.
	* config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
	(INSTALL_LIBGCC): Delete.
	(M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
	* config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
	(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
	(M68K_MLIB_CPU): Define.
	* config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
	(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
	(M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.

2007-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
	    Richard Guenther  <rguenther@suse.de>

	PR middle-end/23361
	* fold-const.c (fold_comparison): Handle obfuscated comparisons
	against INT_MIN/INT_MAX.
	* tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump
	file if a loop is removed.

2007-02-09  Joseph Myers  <joseph@codesourcery.com>

	* calls.c (store_one_arg): Pass correct alignment to
	emit_push_insn for non-BLKmode values.
	* expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an
	unaligned stack slot via a suitably aligned slot.

2007-02-08  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.c (m32c_unpend_compare): Add default to silence
	warnings.
	(legal_subregs): Use unsigned char, make const.
	(m32c_illegal_subreg_p): Use ARRAY_SIZE.  Delete unused variables.

2007-02-08  Paul Brook  <paul@codesourcery.com>

	* config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no
	special interworking needed.

2007-02-08  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config/i386/xmmintrin.h: Make inclusion of emmintrin.h
	conditional to __SSE2__.
	(Entries below should have been added to first ChangeLog
	entry for amdfam10 dated 2007-02-05)
	* config/i386/emmintrin.h: Generate #error if __SSE2__ is not
	defined.
	* config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
	defined.
	* config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
	defined.

2007-02-08  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New.
	* config/m32c/m32c.c (legal_subregs): New.
	(m32c_illegal_subreg_p): New.
	* config/m32c/predicates.md (m32c_any_operand): Use it to reject
	unsupported subregs of hard regs.

2007-02-08  Jan Hubicka  <jh@suse.cz>

	* tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
	the same one; always update histograms.

2007-02-08  Diego Novillo  <dnovillo@redhat.com>

	* passes.c (init_optimization_passes): Tidy comment.

2007-02-08  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can
	strip zero_extend, bswap and rotates from POCOUNT's argument.
	<PARITY>: Likewise, we can strip not, bswap, sign_extend,
	zero_extend and rotates from PARITY's argument.
	<BSWAP>: A byte-swap followed by a byte-swap is an identity.
	(simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap
	of an integer constant at compile-time.

2007-02-08  Diego Novillo  <dnovillo@redhat.com>

	PR 30562
	* tree-flow.h (struct var_ann_d): Remove field 'is_used'.
	Update all users.
	* tree-ssa-alias.c (compute_is_aliased): Remove.  Update all
	users.
	(init_alias_info):
	* tree-ssa-live.c (remove_unused_locals): Do not remove
	TREE_ADDRESSABLE variables.
	* tree-ssa-structalias.c (compute_points_to_sets): Tidy.
	* tree-ssa-operands.c (add_virtual_operand): Remove argument
	FOR_CLOBBER.  Update all users.
	If VAR has an associated alias set, add a virtual operand for
	it if no alias is found to conflict with the memory reference.

2007-02-07  Jan Hubicka  <jh@suse.cz>
	    Robert Kidd <rkidd@crhc.uiuc.edu>

	* value-prof.c (visit_hist, free_hist): Return 1 instead of 0.

2007-02-07  Ian Lance Taylor  <iant@google.com>

	* lower-subreg.c (simple_move): Reject PARTIAL_INT modes.

2007-02-07  Roger Sayle  <roger@eyesopen.com>

	* config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
	parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
	tablejumpdi, movsi_to_cr_one): Remove constraints from
	define_expand's match_operands.

2007-02-07  Roger Sayle  <roger@eyesopen.com>

	* global.c (compute_regsets): Move declatation of "i" inside of
	#ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.

2007-02-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/30703
	* gimplify.c (gimplify_scan_omp_clauses): Remove special casing
	of INDIRECT_REF <RESULT_DECL>.

	* config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.

2007-02-06  J"orn Rennecke  <joern.rennecke@arc.com>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/29746
	* config/sh/sh.c (expand_cbranchdi4): Use scratch register
	properly.
	(sh_initialize_trampoline): Add parentheses to avoid a warning.

2007-02-06  Zdenek Dvorak <dvorakz@suse.cz>

	* doc/loop.texi: Document possibility not to perform disambiguation
	of loops with multiple latches.
	* cfgloopmanip.c (alp_enum_p): Removed.
	(add_loop): Handle subloops.  Use get_loop_body_with_size.
	(create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
	* cfghooks.c (redirect_edge_and_branch_force): Set dominator for
	the new forwarder block.
	(make_forwarder_block): Only call new_bb_cbk if it is not NULL.
	Handle the case latch is NULL.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg
	modifications when marking loop exits.
	* ifcvt.c (if_convert): Ditto.  Mark loop exits even if cfg cannot
	be modified.
	* loop-init.c (loop_optimizer_init): Do not modify cfg.  Call
	disambiguate_loops_with_multiple_latches.
	* tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
	before fix_loop_structure.
	* cfgloop.c: Include pointer-set.h and output.h.
	(canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
	update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
	(get_loop_latch_edges, find_subloop_latch_edge_by_profile,
	find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
	mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
	disambiguate_multiple_latches, get_loop_body_with_size,
	disambiguate_loops_with_multiple_latches): New functions.
	(flow_loop_dump): Dump multiple latch edges.
	(flow_loop_nodes_find): Handle loops with multiple latches.
	(flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
	(glb_enum_p): Modified.
	(get_loop_body): Use get_loop_body_with_size.
	* cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
	(AVOID_CFG_MODIFICATIONS): New constant.
	(disambiguate_loops_with_multiple_latches, add_loop,
	get_loop_body_with_size): Declare.
	* Makefile.in (cfgloop.o): Add pointer-set.h and output.h.

2007-02-06  Seongbae Park <seongbae.park@gmail.com>

	PR inline-asm/28686
	* global.c (compute_regsets): New function.
	(global_alloc): Refactored ELIMINABLE_REGSET
	and NO_GLOBAL_ALLOC_REGS computation out.
	(rest_of_handle_global_alloc): Call compute_regsets()
	for non-optimizing case.

2007-02-06  Richard Henderson  <rth@redhat.com>

	* config/i386/constraints.md (Y2): Rename from Y.
	(Yi): New constraint.
	* config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger,
	pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32,
	zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2.
	(extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
	truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
	fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
	floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
	absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
	fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
	* config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
	mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal,
	vec_extractv2si_1): Change Y constraints to Y2.
	* config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si,
	vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di):
	Change Y constraints to Y2.
	(sse2_loadld): Change Y constraints to x.

2007-02-06  Roger Sayle  <roger@eyesopen.com>

	* config/rs6000/rs6000.md (popcount<mode>2): Rewrite.
	(parity<mode>2): New define_expand using rs6000_emit_parity.
	* config/rs6000/rs6000.c (rs6000_emit_popcount,
	rs6000_emit_parity): New functions.
	* config/rs6000/rs6000-protos.h (rs6000_emit_popcount,
	rs6000_emit_parity): Prototype here.

2007-02-06  Ian Lance Taylor  <iant@google.com>

	* lower-subreg.c (simple_move_operand): Reject CONST.
	(resolve_clobber): Call validate_change rather than directly
	assigning to XEXP (pat, 0).

2007-02-06  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
	(tree-ssa-reassoc.o): Add pointer-set.h dependency.
	(tree-cfg.o): Remove hashtab.h dependency.

	* tree-ssa-loop-ivopts.c: Include pointer-set.h.
	(struct ivopts_data): Change niters to pointer_map_t.
	(struct nfe_cache_elt, nfe_hash, nfe_eq): Delete.
	(niter_for_exit): Create pointer_map on demand.  Change for
	pointer_map API.
	(tree_ssa_iv_optimize_init): Initialize data->niters to NULL.
	(free_loop_data): Destroy data->niters if created and reset field.
	(tree_ssa_iv_optimize_finalize): Don't delete data->niters here.
	(tree_ssa_iv_optimize_loop): Check for presence of stale data.

	* tree-ssa-reassoc.c: Include pointer-set.h.
	(bb_rank): Change to long *.
	(operand_rank): Change to pointer_map_t.
	(find_operand_rank): Return long, -1 if not found.  Declare as inline.
	(insert_operand_rank): Accept long.
	(operand_entry_hash, operand_entry_eq): Remove.
	(get_rank): Return long.  Adjust for changes above.
	(init_reassoc): Change rank type to long.  Adjust creation of bb_rank
	and operand_rank.
	(fini_reassoc): Delete operand_rank with pointer_map_destroy.

	* tree-ssa-structalias.c (vi_for_tree): Change to pointer_map.
	(struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete.
	(insert_vi_for_tree): Rewrite for pointer_map API.  Assert argument
	is not NULL.
	(lookup_vi_for_tree): Rewrite for pointer_map API.  Return varinfo_t
	directly since it cannot be NULL.
	(get_vi_for_tree): Rewrite for pointer_map API.
	(find_what_p_points_to): Adjust for change to lookup_vi_for_tree.
	(init_alias_vars): Create vi_for_tree as pointer_map.
	(delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy.

	* tree-cfg.c: Don't include hashtab.h.
	(edge_to_cases): Declare as pointer_map.
	(struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq):
	Delete.
	(edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback.
	(start_recording_case_labels): Create edge_to_cases as pointer_map.
	(end_recoding_case_labels): Cleanup edge_to_cases manually before
	destroying it.
	(record_switch_edge): Delete.
	(get_cases_for_edge): Adjust for pointer_map API, inline
	record_switch_edge (rewritten for new API), remove goto.

2007-02-06  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in (tree-nested.o): Add pointer-set.h dependency.
	* tree-nested.c: Include pointer-set.h.
	(var_map_elt, var_map_eq, var_map_hash): Delete.
	(struct nesting_info): Remove GTY marker.  Change the two htab_t's
	to pointer_map_t's.
	(nesting_info_bitmap_obstack): New.
	(lookup_field_for_decl): Adjust for pointer_map API.
	(lookup_tramp_for_decl): Adjust for pointer_map API.
	(get_nonlocal_debug_decl): Adjust for pointer_map API.
	(get_local_debug_decl): Adjust for pointer_map API.
	(convert_nl_goto_reference): Adjust for pointer_map API.
	(convert_nl_goto_receiver): Adjust for pointer_map API.
	(create_nesting_tree): Create outside GGC space.  Create bitmap on
	the new obstack.  Create field_map and var_map as pointer_maps.
	(free_nesting_tree): Adjust for changes to create_nesting_tree.
	(root): Delete.
	(lower_nested_functions): Move root here, no need to NULL it.
	Initialize and release the obstack.

2007-02-06  Paolo Bonzini  <bonzini@gnu.org>

	* tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
	Remove prototypes and make them non-static.
	(struct tree_int_map): Remove.
	* tree.h (struct tree_int_map): Move here, turning TO into an
	unsigned int.
	(tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.

	* tree.h (TREE_COMPLEXITY): Remove.
	(struct tree_exp): Remove complexity field.
	* tree.c (build1_stat): Don't set it.

2007-02-06  Dorit Nuzman  <dorit@il.ibm.com>
	    Victor Kaplansky  <victork@il.ibm.com>

	* tree-vectorizer.c (vect_is_simple_use): Support induction.
	(vect_is_simple_reduction): Support reduction with induction as
	one of the operands.
	(vect_is_simple_iv_evolution): Fix formatting.
	* tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
	formatting.  Don't mark induction phis for vectorization.
	(vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
	* tree-vect-transform.c (get_initial_def_for_induction): New function.
	(vect_get_vec_def_for_operand): Support induction.
	(vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
	induction case.
	(vectorizable_reduction): Support reduction with induction as one of
	the operands.
	(vectorizable_type_demotion): Use def-type of stmt argument rather
	than dummy def-type.

	* tree-ssa-loop.c (gate_scev_const_prop): Return the value of
	flag_tree_scev_cprop.
	* common.opt (tree-scev-cprop): New flag.

	* tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
	call to vect_get_new_vect_var.

2007-02-06  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
	vectype is not NULL.
	(vect_pattern_recog_1): Likewise.

2007-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* fold-const.c (negate_expr_p): Handle CONJ_EXPR.
	(fold_negate_expr): Likewise.

2007-02-05  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/30189
	* dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
	even if cv-qualification is the same.

2007-02-05  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
	__enable_execute_stack on completion.

2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
	athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
	athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul,
	athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn,
	athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8,
	athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load,
	athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
	athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.

2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
	cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
	swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse,
	fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse,
	x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed,
	floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse,
	floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1,
	mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn,
	umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn,
	umuldi3_highpart_rex64, umulsi3_highpart_insn,
	umulsi3_highpart_zext, smuldi3_highpart_rex64,
	smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld,
	x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse,
	sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
	sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
	sqrtextenddfxf2_i387): Added amdfam10_decode.

	* config/i386/athlon.md (athlon_idirect_amdfam10,
	athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
	athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
	athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10,
	athlon_ivector_store_amdfam10): New define_insn_reservation.
	(athlon_idirect_loadmov, athlon_idirect_movstore): Added
	amdfam10.

2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config/i386/athlon.md (athlon_call_amdfam10,
	athlon_pop_amdfam10, athlon_lea_amdfam10): New
	define_insn_reservation.
	(athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8,
	athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
	athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.

2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config/i386/athlon.md (athlon_sseld_amdfam10,
	athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
	athlon_mmxssest_short_amdfam10): New define_insn_reservation.

2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config/i386/athlon.md (athlon_sseins_amdfam10): New
	define_insn_reservation.
	* config/i386/i386.md (sseins): Added sseins to define_attr type
	and define_attr unit.
	* config/i386/sse.md: Set type attribute to sseins for insertq
	and insertqi.

2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
	ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
	ssecomi_load_amdfam10, ssecomi_amdfam10,
	sseaddvector_load_amdfam10, sseaddvector_amdfam10): New
	define_insn_reservation.
	(ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.

2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config/i386/athlon.md (cvtss2sd_load_amdfam10,
	cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
	cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
	cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
	cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
	cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New
	define_insn_reservation.

	* config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
	cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq,
	cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq,
	cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
	cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.

2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config/i386/athlon.md (athlon_ssedivvector_amdfam10,
	athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
	athlon_ssemulvector_load_amdfam10): New define_insn_reservation.
	(athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
	athlon_ssemul_load_k8): Added amdfam10.

2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
	(x86_sse_unaligned_move_optimal): New variable.

	* config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for
	m_AMDFAM10.
	(ix86_expand_vector_move_misalign): Add code to generate movupd/movups
	for unaligned vector SSE double/single precision loads for AMDFAM10.

2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config/i386/i386.h (TARGET_AMDFAM10): New macro.
	(TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
	Define TARGET_CPU_DEFAULT_amdfam10.
	(TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
	(processor_type): Add PROCESSOR_AMDFAM10.

	* config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
	processor_type in config/i386/i386.h.
	Enable imul peepholes for TARGET_AMDFAM10.

	* config.gcc: Add support for --with-cpu option for amdfam10.

	* config/i386/i386.c (amdfam10_cost): New variable.
	(m_AMDFAM10): New macro.
	(m_ATHLON_K8_AMDFAM10): New macro.
	(x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
	x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
	x86_promote_QImode, x86_integer_DFmode_moves,
	x86_partial_reg_dependency, x86_memory_mismatch_stall,
	x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
	x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
	x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
	x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
	Enable/disable for amdfam10.
	(override_options): Add amdfam10_cost to processor_target_table.
	Set up PROCESSOR_AMDFAM10 for amdfam10 entry in
	processor_alias_table.
	(ix86_issue_rate): Add PROCESSOR_AMDFAM10.
	(ix86_adjust_cost): Add code for amdfam10.

2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
	instruction set feature flag. Add new (-mpopcnt) flag for popcnt
	instruction. Add new SSE4A (-msse4a) instruction set feature flag.
	* config/i386/i386.h: Add builtin definition for SSE4A.
	* config/i386/i386.md: Add support for ABM instructions
	(popcnt and lzcnt).
	* config/i386/sse.md: Add support for SSE4A instructions
	(movntss, movntsd, extrq, insertq).
	* config/i386/i386.c: Add support for ABM and SSE4A builtins.
	Add -march=amdfam10 flag.
	* config/i386/ammintrin.h: Add support for SSE4A intrinsics.
	* doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt
	and amdfam10.
	* doc/extend.texi: Add documentation for SSE4A builtins.

2007-02-05  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.

2007-02-05  Richard Guenther  <rguenther@suse.de>

	* tree-vectorizer.h (vectorizable_function): Add argument type
	argument, change return type.
	* tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller.
	* tree-vect-transform.c (vectorizable_function): Handle extra
	argument, return vectorized function decl.
	(build_vectorized_function_call): Remove.
	(vectorizable_call): Handle calls with result and argument types
	differing.  Handle loop vectorization factor correctly.
	* targhooks.c (default_builtin_vectorized_function): Adjust for
	extra argument.
	* targhooks.h (default_builtin_vectorized_function): Likewise.
	* target.h (builtin_vectorized_function): Add argument type
	argument.
	* config/i386/i386.c (ix86_builtin_vectorized_function): Handle
	extra argument, allow vectorizing of lrintf.
	* doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
	documentation of target hook.

2007-02-05  Hans-Peter Nilsson  <hp@axis.com>

	PR target/30665
	* config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
	("*andhi_clear", andu (casesi+45)): For size-changed operand where
	memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.

2007-02-05  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_unary) <REAL_PART>: Test for availability of
	BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
	<IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
	* builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
	before canonicalizing sincos to cexpi.
	(fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.

2007-02-05  Roger Sayle  <roger@eyesopen.com>

	* config/alpha/alpha.c (alpha_add_builtins): New Helper function.
	Set TREE_READONLY and TREE_NOTHROW directly, not via attributes.
	(alpha_init_builtins): Use alpha_add_builtins to process tables.

2007-02-05  Roger Sayle  <roger@eyesopen.com>

	* mips-tfile.c (initialize_init_file): Correct endianness test.

2007-02-05  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
	the 'y' constraint.

2007-02-05  Richard Sandiford  <richard@codesourcery.com>

	* dwarf2out.c (dwarf2out_frame_debug_expr): Record the register
	saves in a PARALLEL before the register assignments.

2007-02-05  Richard Sandiford  <richard@codesourcery.com>

	* doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
	DWARF_FRAME_RETURN_COLUMN to be a general register.
	* dwarf2out.c (init_return_column_size): New function, split from...
	(expand_builtin_init_dwarf_reg_sizes): ...here.  Allow both
	DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
	to be nongeneral registers.
	* config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
	integer registers.
	(DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
	(DWARF_ALT_FRAME_RETURN_COLUMN): Define.

2007-02-04  Zdenek Dvorak <dvorakz@suse.cz>

	* cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.

2007-02-04  Zdenek Dvorak <dvorakz@suse.cz>

	* cfgloopmanip.c (loop_delete_branch_edge): Removed.
	(remove_path): Use can_remove_branch_p and remove_branch instead
	of loop_delete_branch_edge.
	* tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function.
	(tree_transform_and_unroll_loop): Remove dead branches immediately.
	Update profile using scale_dominated_blocks_in_loop.
	* cfghooks.c (can_remove_branch_p, remove_branch): New functions.
	* cfghooks.h (struct cfg_hooks): Add can_remove_branch_p.
	(can_remove_branch_p, remove_branch): Declare.
	* tree-cfg.c (tree_can_remove_branch_p): New function.
	(tree_cfg_hooks): Add tree_can_remove_branch_p.
	* cfgrtl.c (rtl_can_remove_branch_p): New function.
	(rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p.

2007-02-05  Jan Hubicka  <jh@suse.cz>

	PR middle-end/30696
	* ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed
	nodes in cgraph, don't remove offline copy of the function.

2007-02-04  Jan Hubicka  <jh@suse.cz>

	* tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
	vectors might cause maybe_lookup_element_for_expr to be called
	on non-sra-candidate.

2007-02-04  Kazu Hirata  <kazu@codesourcery.com>

	* config/bfin/bfin-modes.def, config/bfin/bfin.c,
	config/bfin/bfin.md, config/bfin/predicates.md: Follow
	spelling conventions.

2007-02-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30636
	* fold-const.c (try_move_mult_to_index): Make sure to not
	overflow one dimension of a multi-dimensional array access.

2007-02-04  Jan Hubicka  <jh@suse.cz>

	* passes.c (init_optimization_passes): Reindent.

2007-02-04  Jan Hubicka  <jh@suse.cz>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* tree-optimize.c (has_abnormal_outgoing_edge_p): Move to...
	(execute_fixup_cfg): Break out the abnormal goto code.
	* tree-inline.c (has_abnormal_outgoing_edge_p): ...here.
	(make_nonlocal_label_edges): Move here from execute_fixup_cfg.
	(optimize_inline_calls): Call make_nonlocal_label_edges.

2007-02-04  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return
	true when something was changed.
	(rename_ssa_copies): When something was changed, do
	TODO_remove_unused_locals.
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
	add TODO_remove_unused_locals when instruction was removed.

2007-02-04  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (try_inline): Improve debug output; work on already
	inline edges too.
	(cgraph_decide_inlining_incrementally): Indent; improve debug output;
	call try_inline for already inlined edges too when flattening;
	inline also functions that make callee growth but overall unit size
	reduce.

2007-02-04  Kazu Hirata  <kazu@codesourcery.com>

	* config/m32c/bitops.md, config/m32c/jump.md,
	config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c,
	config/m32r/m32r.h, config/m32r/m32r.md,
	config/m32r/predicates.md, config/m68hc11/larith.asm,
	config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
	config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md,
	config/mips/mips-protos.h, config/mips/mips.c,
	config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S,
	config/mn10300/mn10300.h, config/mn10300/predicates.md,
	config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow
	spelling conventions.

	* config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
	Follow spelling conventions.

2007-02-03  Douglas Gregor  <doug.gregor@gmail.com>

	* c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
	warn about C++0x compatibility.

2007-02-04  Kazu Hirata  <kazu@codesourcery.com>

	* config/h8300/h8300.c, config/h8300/h8300.h,
	config/h8300/h8300.md: Follow spelling conventions.

2007-02-03  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/30667
	* combine.c (try_combine): Do not substitute source operand
	with constants wider than 2 * HOST_BITS_PER_WIDE_INT.

2007-02-03  Jan Hubicka  <jh@suse.cz>

	PR gcov-profile/30650
	* value-prof.c (stringop_block_profile): Fix handling of size counter;
	do not divide by zero for never executed counters.
	(tree_find_values_to_profile): Fix counters.
	* gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments.

2007-02-03  Ian Lance Taylor  <iant@google.com>

	* lower-subreg.c (simple_move_operand): New static function,
	broken out of simple_move.  Reject LABEL_REF, SYMBOL_REF, and HIGH
	operands.
	(simple_move): Call simple_move_operand.
	(find_decomposable_subregs): Add special handling of MEMs.
	(can_decompose_p): Rename from cannot_decompose_p.  Reverse
	meaning of return value.  If we see a hard register, test whether
	it can store a word_mode value.  Change all callers.

2007-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New
	ftrapv insns and expanders.
	(subdi3): Change define_expand operand 1 to arith11_operand, and
	operand 2 to reg_or_0_operand.  Change constraints of 64-bit insn
	pattern to handle reg_or_0 operands.  Revise 32-bit insn pattern to
	handle 11-bit constants and reg_or_0 operands in operands 1 and 2,
	respectively.

	PR middle-end/30174
	* varasm.c (notice_global_symbol): Treat global objects as weak when
	flag_shlib is true.

2007-02-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* emit-rtl.c (dconstpi): Delete.
	(dconstsqrt2): New.
	(init_emit_once): Delete dconstpi and init dconstsqrt2.
	* real.h (dconstpi): Delete.
	(dconstsqrt2): New.
	* builtins.c (fold_builtin_cabs): Use dconstsqrt2.
	(fold_builtin_hypot): Likewise.

2007-02-03  Tom Tromey  <tromey@redhat.com>

	PR driver/30246
	* gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
	-gcoff3, -gxcoff3, -gvms3 implies -dD.

2007-02-03  Kazu Hirata  <kazu@codesourcery.com>

	* c-decl.c, config/avr/avr.c, config/avr/avr.h,
	config/m68k/m68k.c, config/m68k/netbsd-elf.h,
	config/mn10300/mn10300.c, config/pdp11/pdp11.h,
	config/rs6000/cell.md, config/rs6000/darwin.h,
	config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
	config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
	jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
	tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
	typos.  Follow spelling conventions.
	* doc/invoke.texi: Follow spelling conventions.

2007-02-03  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (simplify_relational_operation_1): Implement some
	canonicalization transformations that attempt to simplify integer
	constant comparisons to become comparisons against zero.

2007-02-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into
	fabs(x)*sqrt(2).
	* fold-const.c (fold_binary): Fix comment typos.  Fold complex
	(x,0)-(0,y) into (x,-y).  Likewise (0,y)-(x,0) into (-x,y).

2007-02-02  Mike Stump  <mrs@apple.com>

	* config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add.
	* config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
	(output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
	generate a branch island.

2007-02-02  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P.
	(xtensa_legitimate_address_p): New.
	(xtensa_legitimize_address): New.
	(xtensa_output_addr_const_extra): New.
	* config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define.
	(BASE_REG_P): New.
	(REG_OK_FOR_BASE_P): Use BASE_REG_P.
	(GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p.
	(LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address.
	(OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra.
	* config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New.
	(xtensa_legitimize_address): New.
	(xtensa_output_addr_const_extra): New.

2007-02-02  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.c (ia64_print_operand): Fix compare strings.

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

	* expmed.c (expand_divmod): Add comment.

2007-02-02  Kazu Hirata  <kazu@codesourcery.com>

	* emit-rtl.c (renumber_insns): Remove.
	* flags.h: Remove the extern for flag_renumber_insns.
	* rtl.h: Remove the prototype for renumber_insns.
	* toplev.c (flag_renumber_insns): Remove.

2007-02-02  Hui-May Chang  <hm.chang@apple.com>

	Revert for x86 darwin:
	2005-06-19  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.c (ix86_function_arg_regno_p): Put back the
	code before the following patch under TARGET_MACHO.
	(ix86_function_value_regno_p): Likewise.

2007-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* fold-const.c (negate_expr_p, fold_negate_expr): Handle
	COMPLEX_EXPR.

2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	PR target/29682
	* config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory
	loads to general or fp registers.  Add comments.
	* config/ia64/ia64.md (reg_pred_prefix): Add comment.

2007-02-02  Paolo Bonzini  <bonzini@gnu.org>

	* pointer-set.c (insert_aux): Only return insertion slot.
	(pointer_set_insert): Adjust.
	(pointer_set_traverse, struct pointer_map_t, pointer_map_create,
	pointer_map_destroy, pointer_map_insert, pointer_map_contains,
	pointer_map_traverse): New.
	* pointer-set.h (pointer_set_traverse, struct pointer_map_t,
	pointer_map_create,  pointer_map_destroy, pointer_map_insert,
	pointer_map_contains, pointer_map_traverse): Declare.

2007-02-02  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/30473
	* builtins.c (fold_builtin_sprintf): Do not attempt to optimize
	sprintf (str, "%s").  Do not optimize sprintf (str, "nopercent", p++).

2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	* sched-int.h (ds_to_dk, dk_to_ds): Declare functions.

	(struct _dep): New type.
	(dep_t): New typedef.
	(DEP_PRO, DEP_CON, DEP_KIND): New access macros.
	(DEP_STATUS): New access macro.  The macro with the same name was
	renamed to DEP_LINK_STATUS.
	(dep_init): Declare function

	(struct _dep_link): New type.
	(dep_link_t): New typedef.
	(DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
	(DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
	(DEP_LINK_STATUS): New macro.
	(debug_dep_links): New debug function.

	(struct _deps_list): New type.
	(deps_list_t): New typedef.
	(DEPS_LIST_FIRST): New access macro.
	(FOR_EACH_DEP_LINK): New cycle macro.
	(create_deps_list, free_deps_list, delete_deps_list): Declare
	functions.
	(deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
	(find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
	(copy_deps_list_change_con): Ditto.

	(move_dep_link): Declare function.

	(struct _dep_node): New type.
	(dep_node_t): New typedef.
	(DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.

	(struct haifa_insn_data.back_deps): New field to hold backward
	dependencies of the insn.
	(struct haifa_insn_data.depend): Rename to forw_deps.  Change its type
	to deps_list_t.
	(struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
	Change its type	to deps_list_t.
	(INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
	(INSN_DEPEND): Rename to INSN_FORW_DEPS.
	(RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.

	(INSN_COST): Move to haifa-sched.c.  Use insn_cost () instead.

	(DEP_STATUS): Rename to DEP_LINK_STATUS.  Fix typo in the comment.

	(add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration
	and all callers.
	(dep_cost): Declare.

	* sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
	(ds_to_dk, dk_to_ds): New functions.

	(init_dep_1): New static function.
	(init_dep): New function.
	(copy_dep): New static function.

	(dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
	functions.
	(detach_dep_link): New static function.
	(move_dep_link): New function.

	(dep_links_consistent_p, dump_dep_links): New static functions.
	(debug_dep_links): New debugging function.

	(deps_obstack, dl_obstack, dn_obstack): New static variables.

	(alloc_deps_list, init_deps_list): New static functions.
	(create_deps_list): New function.
	(clear_deps_list): New static function.
	(free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
	(deps_list_consistent_p, dump_deps_list): New static functions.
	(debug_deps_list): New function.
	(add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
	functions.
	(find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.

	(maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
	use new scheduler dependencies lists.
	(add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
	(sched_analyze): Ditto.  Initialize dependencies lists.
	(add_forw_dep, compute_forward_dependences): Update to use new
	scheduler dependencies lists.

	(init_dependency_caches): Init deps_obstack.
	(free_dependency_caches): Free deps_obstack.

	(adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
	new scheduler dependencies lists.
	(delete_forw_dep, add_or_update_back_forw_dep): Ditto.
	(add_back_forw_dep, delete_back_forw_dep): Ditto.

	* sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
	Update to use new scheduler dependencies lists.
	(is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
	(debug_dependencies): Ditto.
	(schedule_region): Update comments.

	* sched-ebb.c (earliest_block_with_similiar_load): Update to use new
	scheduler dependencies lists.
	(schedule_ebb): Update comments.

	* rtl.def (DEPS_LIST): Remove.

	* lists.c (unused_deps_list): Remove.
	(free_list): Update assertions.

	(alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
	(remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.

	* rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
	(remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.

	* haifa-sched.c (comments): Update.
	(insn_cost1): Remove.  Inline the code into insn_cost ().
	(insn_cost): Update to use new scheduler dependencies lists.  Move
	processing of the dependency cost to dep_cost ().
	(dep_cost): New function.  Use it instead of insn_cost () when
	evaluating cost of the dependency.  Use compatible interface to
	interact with the target.
	(priority): Update to use new scheduler dependencies lists.
	(rank_for_schedule): Ditto.  Optimize heuristic that prefers the insn
	with greater number of insns that depend on the insn.
	(schedule_insn): Update to use new scheduler dependencies lists.  Add
	code to free backward dependencies lists.  Inline and optimize code
	from resolve_dep () - see PR28071.
	(ok_for_early_queue_removal): Update to use new scheduler dependencies
	lists.  Update call to targetm.sched.is_costly_dependence hook.

	(fix_inter_tick, try_ready, fix_tick_ready): Update to use new
	scheduler dependencies lists.

	(resolve_dep): Remove.  Move the logic to schedule_insn ().
	(init_h_i_d): Initialize dependencies lists.

	(process_insn_depend_be_in_spec): Rename to
	process_insn_forw_deps_be_in_spec.  Update to use new scheduler
	dependencies lists.
	(add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
	Update to use new scheduler dependencies lists.
	(clear_priorities, calc_priorities, add_jump_dependencies): Ditto.

	* ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
	new scheduler dependencies lists.
	(build_intra_loop_deps): Ditto.

	* target.h (struct _dep): Declare to use in
	gcc_target.sched.is_costly_dependence.
	(struct gcc_target.sched.adjust_cost): Fix typo.
	(struct gcc_target.sched.is_costly_dependence): Change signature to
	use single dep_t parameter instead of an equivalent triad.
	(struct gcc_target.sched.adjust_cost_2): Remove.

	* target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.

	* reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.

	* doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
	documentation.
	(TARGET_SCHED_ADJUST_COST_2): Remove documentation.

	* doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
	(REG_DEP_TRUE): Document.

	* config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
	Change signature to correspond to the targetm.sched.adjust_cost hook.
	Update use in TARGET_SCHED_ADJUST_COST_2.
	(TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
	(ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
	new scheduler dependencies lists.
	(ia64_gen_check): Ditto.

	* config/mips/mips.c (vr4130_swap_insns_p): Update to use new
	scheduler dependencies lists.

	* config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
	signature to correspond to the targetm.sched.is_costly_dependence hook.
	(is_costly_group): Update to use new scheduler dependencies lists.

	* config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
	instead of INSN_COST () macro.

2007-02-01  Ian Lance Taylor  <iant@google.com>

	* lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.

2007-02-01  Guy Martin  <gmsoft@gentoo.org>

	* pa.md (tp_load): Correct mfctl instruction syntax.

2007-02-01  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/rs6000.c (rs6000_stack_info): Correct
	altivec_padding_size calculation on AIX.  Improve comment, add
	assert to verify that it's right.

	* config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
	64-bit.

2007-2-01  Seongbae Park  <seongbae.park@gmail.com>

	PR inline-asm/28686
	* global.c (global_alloc): Add mising initialization of
	ELIMINABLE_REGSET.

2007-02-01  Roger Sayle  <roger@eyesopen.com>

	* alias.c (init_alias_analysis): Correct whitespace.
	* bb-reorder.c (fix_edges_for_rarely_executed_code,
	partition_hot_cold_basic_blocks): Likewise.
	* builtins.c (expand_builtin_printf, expand_builtin_fprintf,
	expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
	maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
	fold_builtin_snprintf_chk, fold_builtin_printf,
	fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
	do_mpfr_arg3, do_mpfr_sincos): Likewise.
	* cfgcleanup.c (cleanup_cfg): Likewise.
	* cfgexpand.c (tree_expand_cfg): Likewise.
	* fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
	* function.c (get_next_funcdef_no): Likewise.
	* gengtype.c (main): Likewise.
	* genmodes.c (main): Likewise.
	* gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
	* haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
	* ifcvt.c (noce_emit_move_insn): Likewise.
	* modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
	Likewise.
	* stor-layout.c (get_best_mode): Likewise.
	* tree-ssa-loop-niter.c (get_val_for): Likewise.
	* tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
	scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
	perform_var_substitution, solve_graph): Likewise.
	* tree-vrp.c (vrp_finalize): Likewise.

2007-02-01  Ian Lance Taylor  <iant@google.com>

	* lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
	high part of a paradoxical subreg, return a constant zero.

2007-02-01  Zdenek Dvorak <dvorakz@suse.cz>

	* toplev.c (lang_dependent_init): Call init_set_costs.
	* loop-init.c (loop_optimizer_init): Do not call init_set_costs.

2007-02-01  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30656
	* fold-const.c (fold_negate_expr): Allow negating a
	constant if overflow does not change.

2007-02-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/c-tree.texi (Expression trees): Improve markup.
	* doc/tm.texi (Register Classes, Addressing Modes)
	(Floating Point): Fix spacing after abbreviations.  Fix some
	typos.

2007-02-01  Ben Elliston  <bje@au.ibm.com>

	* doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
	* doc/contrib.texi: Likewise.
	* doc/install.texi: Likewise.

2007-01-31  Richard Henderson  <rth@redhat.com>
	    Ian Lance Taylor  <iant@google.com>

	* lower-subreg.c: New file.
	* rtl.def (CONCATN): Define.
	* passes.c (init_optimization_passes): Add pass_lower_subreg and
	pass_lower_subreg2.
	* emit-rtl.c (update_reg_offset): New static function, broken out
	of gen_rtx_REG_offset.
	(gen_rtx_REG_offset): Call update_reg_offset.
	(gen_reg_rtx_offset): New function.
	* regclass.c: Revert patch of 2006-03-05, restoring
	reg_scan_update.
	(clear_reg_info_regno): New function.
	* dwarf2out.c (concatn_loc_descriptor): New static function.
	(loc_descriptor): Handle CONCATN.
	* common.opt (fsplit_wide_types): New option.
	* opts.c (decode_options): Set flag_split_wide_types when
	optimizing.
	* timevar.def (TV_LOWER_SUBREG): Define.
	* rtl.h (gen_reg_rtx_offset): Declare.
	(reg_scan_update): Declare.
	* regs.h (clear_reg_info_regno): Declare.
	* tree-pass.h (pass_lower_subreg): Declare.
	(pass_lower_subreg2): Declare.
	* doc/invoke.texi (Option Summary): List -fno-split-wide-types.
	(Optimize Options): Add -fsplit-wide-types to -O1 list.  Document
	-fsplit-wide-types.
	* doc/rtl.texi (Regs and Memory): Document concat and concatn.
	* Makefile.in (OBJS-common): Add lower-subreg.o.
	(lower-subreg.o): New target.

2007-01-31  Kazu Hirata  <kazu@codesourcery.com>

	* config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.

2007-01-31  Anatoly Sokolov <aesok@post.ru>

	PR target/19087
	* config/avr/avr.c (DWARF2_ADDR_SIZE): Define.

2007-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR middle-end/29335
	* builtins.c (fold_builtin_sqrt): Use MPFR for constant args.

2007-01-31  Zdenek Dvorak <dvorakz@suse.cz>

	* cfgloop.h: Include vec-prim.h.
	(enum li_flags): Remove LI_ONLY_OLD.
	(loop_iterator): Changed.
	(fel_next, fel_init): Iterate over loop tree.
	(FOR_EACH_LOOP_BREAK): New macro.
	* loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
	FOR_EACH_LOOP.
	* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
	* modulo-sched.c (sms_schedule): Ditto.
	* tree-vectorizer.c (vectorize_loops): Ditto.
	* doc/loop.texi: Update information on loop numbering and behavior of
	FOR_EACH_LOOP wrto new loops.
	* tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
	add_to_evolution_1): Test nestedness of loops instead of comparing
	their numbers.
	* tree-chrec.c (chrec_fold_plus_poly_poly,
	chrec_fold_multiply_poly_poly, chrec_evaluate,
	hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
	reset_evolution_in_loop): Ditto.
	* Makefile.in (CFGLOOP_H): Add vecprim.h dependency.

2007-01-31  Dirk Mueller  <dmueller@suse.de>

	* c-common.c (warn_about_parentheses): Separate warning about
	un-parenthized sequence of comparison operators from the one
	which is supposed to warn about x <= y <= z.

2007-01-31  Uros Bizjak  <ubizjak@gmail.com>

	* optabs.h (enum optab_index): Add new OTI_isinf.
	(isinf_optab): Define corresponding macro.
	* optabs.c (init_optabs): Initialize isinf_optab.
	* genopinit.c (optabs): Implement isinf_optab using isinf?f2
	patterns.
	* builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
	(expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
	using isinf_optab.
	(expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
	expand_builtin_interclass_mathfn.
	* reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
	* config/i386/i386.md (UNSPEC_FXAM): New constant.
	(fxam<mode>2_i387): New insn pattern.
	(isinf<mode>2) New expander to implement isinf, isinff and isinfl
	built-in functions as x87 inline asm.

2007-01-31  Kazu Hirata  <kazu@codesourcery.com>

	* config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.

2007-01-30  Eric Christopher  <echristo@apple.com>

	* config.gcc: Add geode.

2007-01-31  Kazu Hirata  <kazu@codesourcery.com>

	* cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
	ipa-inline.c, tree-profile.c, tree-ssa-live.c,
	tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
	value-prof.c: Fix comment typos.

2007-01-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/24745
	* doc/invoke.texi (Wpointer-arith): Document warning.

2007-01-30  Janis Johnson  <janis187@us.ibm.com>

	* doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
	the list of discrepancies from the draft TR.

2007-01-30  Dirk Mueller  <dmueller@suse.de>

	PR c++/30601
	* doc/invoke.texi (-Wreturn-type): Update description to
	match new behavior.

2007-01-30  Richard Sandiford  <richard@codesourcery.com>

	* cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.

2007-01-30  Uros Bizjak  <ubizjak@gmail.com>

	* builtins.c (expand_builtin_int_interclass_roundingfn): New function
	to handle optabs that operate on floating point input argument and
	output to integer output.
	(expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
	(expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
	(expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
	expand_builtin_interclass_mathfn ().
	* config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
	(ilogbsi2): Remove.
	(ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
	ilogbl built-in functions as x87 intrinsics.

2007-01-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/27657
	* dwarf2out.c (reference_to_unused): Query varpool if the
	variable was output.

2007-01-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30313
	* passes.c (execute_one_pass): Reset in_gimple_form to not
	confuse non-unit-at-a-time mode.

2007-01-29  Roger Sayle  <roger@eyesopen.com>
	    Richard Guenther  <rguenther@suse.de>

	* fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
	avoid undefined behaviour on overflow.  Use force_fit_type_double
	to construct the constant with the specified TREE_OVERFLOW.

2007-01-29  Janis Johnson  <janis187@us.ibm.com>

	* config/dfp-bit.c: Add parameterized support for fp exceptions.
	* config/dfp-bit.h: Ditto.

2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* c-decl.c (pop_scope): Replace warnings with call to
	warn_for_unused_label.
	* c-common.h (warn_for_unused_label): Declare.
	* c-common.c (warn_for_unused_label): Define.

2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* tree-optimize.c (update_inlined_to_pointers): Delete unused
	function.

2007-01-29  Janis Johnson  <janis187@us.ibm.com>

	* Makefile.in (USER_H): Remove decfloat.h.
	* ginclude/decfloat.h: Delete, moving contents to ...
	* ginclude/float.h: Add support for decimal floating point,
	guarded by __STDC_WANT_DEC_FP__.

2007-01-29  Mike Stump  <mrs@apple.com>

	* doc/gccint.texi (Top): Rename Loop Representation to Loop
	Analysis and Representation to resolve case insensitive conflict.
	* doc/loop.texi (Loop Analysis and Representation): Likewise.

2007-01-28  Daniel Berlin  <dberlin@dberlin.org>

	* tree.h (struct tree_memory_tag): Add aliases member.
	(MTAG_ALIASES): New macro.
	* tree-ssa-alias.c (alias_bitmap_obstack): New variable.
	(add_may_alias): Remove pointer-set. Update for may_aliases being
	a bitmap.
	(mark_aliases_call_clobbered): Update for may_aliases being a
	bitmap.
	(compute_tag_properties): Ditto.
	(create_partition_for): Ditto.
	(compute_memory_partitions): Ditto.
	(dump_may_aliases_for): Ditto.
	(is_aliased_with): Ditto.
	(add_may_alias_for_new_tag): Ditto.
	(rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
	(compute_is_aliased): New function.
	(compute_may_aliases): Call compute_is_aliased).
	(init_alias_info): Initialize alias_bitmap_obstack.
	(union_alias_set_into): New function.
	(compute_flow_sensitive_aliasing): Use union_aliases_into.
	(have_common_aliases_p): Rewrite to take two bitmaps and use
	intersection.
	(compute_flow_insensitive_aliasing): Stop using pointer-sets.
	Update for bitmaps.
	(finalize_ref_all_pointers): Update for add_may_alias changes.
	(new_type_alias): Ditto.
	* tree-flow-inline.h (may_aliases): Return a bitmap.
	* tree-dfa.c (dump_variable): Check for MTAG_P'ness.
	* tree-ssa.c (verify_flow_insensitive_alias_info): Update for
	may_aliases being a bitmap.
	* tree-flow.h (struct var_ann_d): Remove may_aliases member.
	may_aliases now returns a bitmap.
	* tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
	being a bitmap.
	* tree-ssa-operands.c (add_virtual_operand): Update for
	may_aliases being a bitmap.

2007-01-29  Daniel Berlin  <dberlin@dberlin.org>

	PR tree-optimization/30630
	* tree-ssa-structalias.c (do_complex_constraint): Mark correct
	variable as changed.

2007-01-29  Simon Martin  <simartin@users.sourceforge.net>

	PR c++/28266
	* gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
	expanded only once even if an error occurs.

2007-01-29  Ben Elliston  <bje@au.ibm.com>

	* gcov-io.h (__gcov_indirect_call_profiler): Declare.
	(__gcov_average_profiler): Likewise.
	(__gcov_ior_profiler): Likewise.
	(__gcov_merge_ior): Likewise.

2007-01-28  Jan Hubicka  <jh@suse.cz>

	* builtins.c (expand_builtin_memset): Fix typo in my last patch.
	* value-prof.c (stringop_block_profile): Likewise.

2007-01-28  Jan Hubicka  <jh@suse.cz>

	* expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall):
	Add variant handling histograms; add wrapper.
	(clear_storage_via_libcall): Export.
	(emit_block_move_hints): Break out from ...; add histograms.
	(emit_block_move): ... this one.
	(clear_storage_hints): Break out from ...; add histograms.
	(clear_storage): ... this one.
	(set_storage_via_memset): Handle histogram.
	* expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
	(clear_storage_hints, clear_storage_via_libcall): Declare.
	(set_storage_via_setmem): Update prototype.
	* doc/md.texi (movmem, setmem): Document new arguments.

	* value-prof.c (dump_histogram_value, tree_find_values_to_profile):
	Add new histograms.
	(stringop_block_profile): New global function.
	(tree_stringops_values_to_profile): Profile block size and alignment.
	* value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
	HIST_TYPE_IOR.
	(struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
	(stringop_block_profile): Declare.
	* builtins.c: Include value-prof.h.
	(expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
	* gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
	(GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
	(GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
	* profile.c (instrument_values): Add new counters.
	* cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
	calls.
	* tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
	(tree_init_edge_profiler): Build new profilers.
	(tree_gen_average_profiler, tree_gen_ior_profiler): New.
	(pass_tree_profile): Add dump.
	(tree_profile_hooks): Update.
	* Makefile.in (LIBGCOV): Add new constants.
	* libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
	__gcov_ior_profiler): New.
	* config/i386/i386.md (movmem/setmem expanders): Add new optional
	arguments.

2007-01-28  David Edelsohn  <edelsohn@gnu.org>

	* doc/md.texi (Standard Pattern Names): Document blockage pattern.

2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>

	* tree-ssa-loop-unswitch.c: Include tree-inline.h.
	(tree_unswitch_single_loop): Pass eni_size_weights to
	tree_num_loop_insns.
	* tree-ssa-loop-manip.c: Include tree-inline.h.
	(can_unroll_loop_p): Pass eni_size_weights to
	tree_num_loop_insns.
	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
	Pass eni_size_weights to estimate_num_insns.
	* tree.h (init_inline_once): Export.
	* toplev.c (backend_init): Call init_inline_once.
	* cgraphunit.c (cgraph_process_new_functions,
	cgraph_analyze_function): Pass eni_inlining_weights to
	estimate_num_insns.
	* ipa-inline.c (compute_inline_parameters): Ditto.
	* tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
	to estimate_num_insns.
	(try_unroll_loop_completely): Pass eni_size_weights to
	tree_num_loop_insns.
	* tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
	ot estimate_num_insns.
	* tree-ssa-loop-prefetch.c: Include tree-inline.h.
	(loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
	* tree-inline.c (eni_inlining_weights, eni_size_weights,
	eni_time_weights): New variables.
	(init_inline_once): Initialize them.
	(struct eni_data): Mew.
	(estimate_num_insns_1, estimate_num_insns): Use weights.
	* tree-inline.h (struct eni_weights_d): New.
	(eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
	(estimate_num_insns): Declaration changed.
	* cfgloop.h (tree_num_loop_insns): Declaration changed.
	* Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
	tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.

2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>

	* tree-data-ref.c (conflict_fn): Assert that the number of affine
	relations in the conflict function is valid.

2007-01-27  Ian Lance Taylor  <iant@google.com>

	* common.opt: Add fstrict-overflow.
	* opts.c (decode_options): Set flag_strict_overflow if -O2.
	* flags.h (TYPE_OVERFLOW_WRAPS): Define.
	(TYPE_OVERFLOW_UNDEFINED): Define.
	(TYPE_OVERFLOW_TRAPS): Define.  This replaces TYPE_TRAP_SIGNED.
	Replace all uses.
	* tree.h (TYPE_TRAP_SIGNED): Don't define.
	* fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
	(fold_negate_expr): Likewise.
	(make_range): Likewise.
	(extract_muldiv_1): Likewise.
	(maybe_canonicalize_comparison): Likewise.
	(fold_comparison): Likewise.
	(fold_binary): Likewise.
	(tree_expr_nonnegative_p): Likewise.
	(tree_expr_nonzero_p): Likewise.
	* tree-vrp.c (compare_values): Likewise.
	(extract_range_from_binary_expr): Likewise.
	(extract_range_from_unary_expr): Likewise.
	* tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
	Likewise.
	(nowrap_type_p): Likewise.
	* tree-scalar-evolution.c (simple_iv): Likewise.
	* fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
	(build_range_check): Likewise.
	(extract_muldiv_1): Likewise.
	(fold_comparison): Likewise.
	* tree-vrp.c (vrp_int_const_binop): Likewise.
	(extract_range_from_unary_expr): Likewise.
	* convert.c (convert_to_integer): Likewise.
	* fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
	(fold_comparison): Likewise.
	(fold_binary): Likewise.
	* optabs.c (optab_for_tree_code): Likewise.
	* tree-vectorizer.c (vect_is_simple_reduction): Likewise.
	* simplify-rtx.c (simplify_const_relational_operation): Check
	flag_strict_overflow and flag_trapv.
	(simplify_const_relational_operation): Likewise.
	* doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
	(Optimize Options): Add -fstrict-overflow to -O2 list.  Document
	-fstrict-overflow.

2007-01-27  Roger Sayle  <roger@eyesopen.com>

	* tree.c (tree_fold_gcd): Delete.
	* tree.h (tree_fold_gcd): Remove prototype.
	* tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
	test whether one constant integer is a multiple of another.  Instead
	call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
	* fold-const.c (multiple_of_p): We've determined both TOP and
	BOTTOM are integer constants so we can call int_const_binop directly
	instead of the more generic const_binop.

2007-01-27  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
	1*X check that the constant hasn't overflowed, to preserve the
	TREE_OVERFLOW bit.
	(round_up): Provide an efficient implementation when rouding-up an
	INTEGER_CST to a power-of-two.

2007-01-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/sourcebuild.texi: Add comma for clarity.
	* doc/extend.texi: Fix some typos.
	* doc/passes.texi: Likewise.
	* doc/cppinternals.texi: Likewise.
	* doc/c-tree.texi: Likewise.
	* doc/tree-ssa.texi: Likewise.
	* doc/install.texi: Likewise.

2007-01-27  Jan Hubicka  <jh@suse.cz>

	* tree-sra.c (sra_walk_function): Don't rely on aliases being build.
	(pass_sra): Do not require alias information.
	* passes.c (init_optimization_passes): Add SRA

2007-01-27  Steven Bosscher  <steven@gcc.gnu.org>

	* tracer.c (rest_of_handle_tracer): We already cleaned
	up the CFG in tracer() so don't do it here again.
	* cfgcleanup.c (rest_of_handle_jump2): Don't repeat
	cleanup_cfg here, either.  And don't call renumber_insns.

	* cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
	and BB_HEAD are in the insn stream here.  Instead make sure
	that BB_INSN is valid on all insns.  Also, do check here that
	there are no pending branch predictions...
	(rtl_verify_flow_info): ...instead of doing it here.  Checks
	for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
	here.

2007-01-26  Roger Sayle  <roger@eyesopen.com>

	* config/i386/i386.c (ix86_swap_binary_operands_p): New helper
	function to simplify/factorize operand order canonicalization.
	(ix86_fixup_binary_operands): Reorganize using the above function.
	(ix86_binary_operator_ok): Likewise.

2007-01-27  Jakub Jelinek  <jakub@redhat.com>

	* genattrtab.c (struct attr_value_list, insn_code_values): Move to
	file scope from optimize_attrs.
	(simplify_test_exp): If insn_code_values is not NULL, use it to speed
	up search.
	(optimize_attrs): Clear insn_code_values after freeing it.

2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>

	* tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
	a parts.base assignment.

2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>

	* tree-data-ref.c (dump_subscript): Use dump_conflict_function.
	(compute_subscript_distance, initialize_data_dependence_relation,
	finalize_ddr_dependent, analyze_ziv_subscript,
	analyze_siv_subscript_cst_affine,
	compute_overlap_steps_for_affine_univar,
	compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
	analyze_siv_subscript, analyze_miv_subscript,
	analyze_overlapping_iterations, subscript_dependence_tester_1,
	compute_self_dependence, free_dependence_relation): Work
	with affine_fn instead of chrecs.
	(dump_affine_function, dump_conflict_function, affine_function_equal_p,
	common_affine_function, affine_function_base,
	affine_function_constant_p, affine_fn_op, affine_fn_plus,
	affine_fn_minus, affine_fn_free, conflict_fn_not_known,
	conflict_fn_no_dependence, free_conflict_function, free_subscripts,
	conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
	(all_chrecs_equal_p): Removed.
	* tree-data-ref.h (affine_fn, conflict_function): New types.
	(struct subscript): Change type of conflicting_iterations_in_a
	and conflicting_iterations_in_b.

2007-01-26  Steve Ellcey  <sje@cup.hp.com>

	PR other/30182
	* config/pa/pa.h (TARGET_HPUX_11): New.
	* config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
	* config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.

2007-01-26  Daniel Berlin  <dberlin@dberlin.org>
	Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (solve_graph): Handle case
	we merged the variable to another.

2007-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
	functions.

	* fold-const.c (negate_mathfn_p): Treat casin, casinh, catan,
	catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions.

2007-01-25  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't
	allow changes to modes which don't fit in those registers.

	* reload1.c (choose_reload_regs): Check for invalid subregs before
	computing their locations, not after.

2007-01-25  Geoffrey Keating  <geoffk@apple.com>

	PR 25127
	* config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
	save Altivec registers in an eh_return function.
	(compute_vrsave_mask): Likewise.
	(rs6000_stack_info): Correct AIX/Darwin stack alignment computation
	for saving Altivec registers.
	(rs6000_emit_prologue): Don't allocate stack twice in
	eh_return function.  Correct expected value of altivec_save_offset
	when using save_world.  Describe save of R0 to stack when using
	save_world.  Describe stack pointer adjustment when using
	save_world.  Remove duplicated eh_return parameter register saving.
	Update sp_offset variable after save_world.
	* config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
	darwin-world.asm.
	(LIB2FUNCS_EXTRA): Add darwin-world.asm.
	* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
	implies Altivec.

2007-01-25  Steve Ellcey  <sje@cup.hp.com>

	* config.gcc (ia64*-*-hpux*): Make posix threads the default.

2007-01-25  Steve Ellcey  <sje@cup.hp.com>

	PR other/30182
	* config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
	* config/ia64/ia64.c (ia64_init_builtins): Ditto.

2007-01-25  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi (-Wcoverage-mismatch): Document.
	* common.opt (-Wcoverage-mismatch): New warning option.
	* coverage.c (get_coverage_counts): Ignore coverage mismatch
	if -Wcoverage-mismatch is given.

2007-01-25  Razya Ladelsky  <razya@il.ibm.com>

	* ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
	(ipcp_driver): Change to static definition.
	Add dumping of the ifunctions.
	(constant_val_insert): Remove unused parameter. Support for SSA.
	(ipcp_propagate_const): Support for SSA.
	(ipcp_profile_bb_print): Print only analyzed nodes.
	(ipcp_replace_map_create): Remove support for Fortran constant
	for now.
	* ipa-prop.c (ipa_method_modify_stmt,
	ipa_callsite_compute_param): Support for SSA.
	* ipa-prop.h (ipcp_driver): Remove declaration.
	(IS_VALID_TREE_MAP_INDEX): Add define.

2007-01-24  Geoffrey Keating  <geoffk@apple.com>

	* unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.

2007-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR middle-end/30447
	* builtins.c (fold_builtin_cabs): Use MPFR to evaluate a
	constant argument to cabs and do it without checking for
	-funsafe-math-optimizations.

2007-01-24  Douglas Gregor  <dgregor@osl.iu.edu>

	* c-common.h (RID_FIRST_CXX0X): New.
	(RID_LAST_CXX0X): New.
	* c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
	by -Wall.
	* c.opt (Wc++0x-compat): New.
	* doc/invoke.texi (-Wc++0x-compat): Document.

2007-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_carg): New.
	(fold_builtin_1): Use it.

2007-01-24  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns.

	* ipa-inline.c (initial_insns, max_insns): Delete.
	(compute_max_insns): New function.
	(cgraph_decide_inlining_of_small_function): Use it; take minimal
	amount of insns as base for code growth.
	(cgraph_decide_inlining): Make initial_insns local; do not compute
	max_insns.
	* params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
	* doc/invoke.texi (inline-unit-growth): Update docs.

2007-01-24  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.h (x86_cmpxchg16b): Remove const.
	(TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
	* config/i386/i386.c (x86_cmpxchg16b): Remove const.
	(override_options): Add PTA_CX16 flag.  Set x86_cmpxchg16b
	for CPUs that have PTA_CX16 set.

	PR middle-end/27416
	* gimplify.c (omp_check_private): New function.
	(gimplify_scan_omp_clauses): Use it for
	firstprivate/lastprivate/reduction.

	PR middle-end/30494
	* gimplify.c (omp_add_variable): Don't call omp_notice_variable
	on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.

	PR middle-end/30421
	* omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
	If lower_lastprivate_clauses emits some statements, append them
	to dlist rather than body_p and to body_p append an initializer.
	(lower_omp_for): Adjust caller.

2007-01-24  Steve Ellcey  <sje@cup.hp.com>

	* target.h (globalize_decl_name): New.
	* target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
	* output.h (default_globalize_decl_name): New.
	* varasm.c (asm_output_bss): Use globalize_decl_name instead of
	globalize_label.
	(globalize_decl): Ditto.
	(default_globalize_decl_name): New.
	* config/ia64/ia64.c (ia64_globalize_decl_name): New.
	(ia64_handle_version_id_attribute): New.
	(TARGET_ASM_GLOBALIZE_DECL_NAME): New.
	(ia64_asm_output_external): Use globalize_decl_name instead
	of globalize_label.
	* doc/extend.texi (version_id): New pragma.
	* doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.

2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>

	* unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
	_uleb128_t and _Unwind_SWord with _sleb128_t.
	* unwind-dw2.c (extract_cie_info, execute_stack_op,
	execute_cfa_program, uw_frame_state_for, uw_update_context_1):
	Likewise.
	* unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
	* unwind-pe.h (read_uleb128, read_sleb128,
	read_encoded_value_with_base): Likewise.
	* unwind-generic.h: Define _sleb128_t and _uleb128_t types.

2007-01-24  Richard Guenther  <rguenther@suse.de>

	* builtins.c (expand_builtin_cexpi): Get the fndecl
	for cexp in the correct way.

2007-01-24  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS
	of calls.

2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>

	* c-cppbuiltin.c (builtin_define_type_sizeof): New function.
	(c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
	__SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
	__SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
	__SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
	__SIZEOF_PTRDIFF_T__.
	* doc/cpp.texi: Documentation for the new builtin macros added.

2007-01-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2,
	log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2
	instead of operands[2] to avoid access past the end of array.

2007-01-24  Richard Sandiford  <richard@codesourcery.com>

	* reload1.c (emit_reload_insns): Pass the reload register
	for a non-spill output reload through forget_old_reloads_1.

2007-01-23  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
	_SOFT_DOUBLE if doubles use software floating-point.
	* config/rs6000/libgcc-ppc-glibc.ver: Export additional long
	double functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
	* config/rs6000/darwin-ldouble.c: Also compile functions for
	hard-float without FPRs.  Use fmsub function for all __NO_FPRS__
	cases.  Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
	* config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove
	commented-out long double override.
	(CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise.
	* config/rs6000/eabispe.h: Likewise.
	* config/rs6000/rs6000.c (rs6000_override_options): Don't override
	long double for non-SPE.
	(rs6000_handle_option): Likewise.
	(invalid_e500_subreg): Disallow more subregs involding DImode,
	DFmode, TImode or TFmode.
	(rs6000_legitimate_offset_address_p): Check TFmode offsets for
	E500 double.
	(legitimate_lo_sum_address_p): Also check for TFmode for E500
	double.
	(rs6000_legitimize_address): Also handle TFmode for E500 double.
	(rs6000_legitimize_reload_address): Also handle TFmode for E500
	double.
	(rs6000_legitimate_address): Also check for TFmode for E500
	double.
	(rs6000_emit_move): Use DFmode subregs of TFmode for E500 double.
	(spe_build_register_parallel): Handle TFmode and TCmode.
	(rs6000_spe_function_arg): Handle TFmode and TCmode for E500
	double.
	(function_arg): Handle TFmode and TCmode for E500 double.
	(rs6000_init_libfuncs): Initialize extra libfuncs for soft double
	in general.
	(print_operand): Handle TFmode and TImode for %y.
	(rs6000_generate_compare): Handle TFmode comparisons for E500
	double.
	(spe_func_has_64bit_regs_p): Check for TFmode for E500 double.
	(rs6000_function_value): Handle TFmode and TCmode for E500 double.
	(rs6000_libcall_value): Handle TFmode and TCmode for E500 double.
	* config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for
	TFmode for E500 double.
	* config/rs6000/rs6000.md (FP): Allow TF for E500 double.
	(floatsidf2): Enable for E500 double.
	(movtf_softfloat): Use rs6000_nonimmediate_operand.
	(extenddftf2): Change to extenddftf2_fprs.
	(extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs
	depending on TARGET_E500_DOUBLE.
	(extendsftf2): Enable for E500 double.
	(trunctfdf2): Enable for E500 double.
	(trunctfsf2): Change to trunctfsf2_fprs.
	(trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs
	depending on TARGET_E500_DOUBLE.
	(floatsitf2): Enable for E500 double.
	(fix_trunctfsi2): Change to fix_trunctfsi2_fprs.
	(fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or
	gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE.
	(negtf2): Change to negtf2_internal.
	(negtf2): New expander.
	(abstf2): Enable for E500 double.  Call gen_spe_abstf2_tst,
	gen_spe_abstf2_cmp or gen_abstf2_internal depending on
	TARGET_E500_DOUBLE and flag_unsafe_math_optimizations.
	(movdi_internal32): Use rs6000_nonimmediate_operand.
	(unnamed splitter): Likewise.
	* config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR,
	TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs.
	(SPE64TF, DITI): New mode macros.
	(frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more
	modes.
	(frob_tf_ti): New.
	(frob_<mode>_di_2): New.
	(frob_tf_di_8_2): New.
	(frob_di_df): Change to frob_di_<mode>; allow more modes.
	(frob_ti_tf): New.
	(frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow
	more modes.
	(frob_ti_<mode>_8_2): New.
	(frob_ti_tf_2): New.
	(mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2,
	mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow
	TFmode.
	(mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2,
	mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New.
	(spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2,
	spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal,
	spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New.
	(cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr,
	tsttflt_gp): New.

2007-01-23  Ian Lance Taylor  <iant@google.com>

	* Makefile.in (OBJS-common): Reformat, alphabetize, but put
	insn-*.o first.
	(OBJS-archive): Reformat, alphabetize.
	(OBJS): Change out_object_file to OBJS-md.

2007-01-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
	JUMP_P and CALL_P predicates where applicable.
	* config/i386/i386.c: Ditto.
	* config/i386/i386.md: Ditto.
	* config/i386/mmx.md: Ditto.
	* config/i386/predicates.md: Ditto.

2007-01-22  Andreas Schwab  <schwab@suse.de>

	* config/m68k/m68k.h: Fix comment.

2007-01-22  Jan Hubicka  <jh@suse.cz>

	* passes.c (init_optimization_passes): Do not rerun
	pass_early_warn_uninitialized.

2007-01-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/30038
	* tree-ssa-math-opts.c (maybe_record_sincos): New static helper
	function.
	(execute_cse_sincos_1): Likewise.
	(execute_cse_sincos): Likewise.
	(gate_cse_sincos): Likewise.
	(pass_cse_sincos): New pass CSEing sin() and cos() calls using
	the cexpi() canonicalization of sincos().
	* tree-pass.h (pass_cse_sincos): Declare.
	* passes.c (init_optimization_passes): New pass pas_cse_sincos.

2007-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/29329
	* combine.c (replaced_rhs_insn): Rename to i2mod.
	(replaced_rhs_value): Rename to i2mod_new_rhs.
	(i2mod_old_rhs): New global variable.
	(combine_instructions): Adjust for above change.  Save a copy of
	the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
	note are substituted in the second instruction.
	(distribute_notes) <REG_DEAD>: Adjust for above change.  Do not
	ditch the note if it pertains to the second eliminated register
	and this register is mentioned in i2mod_old_rhs.

	Revert:
	2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
	the insn to which the note was originally attached.

2007-01-21  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (inlining_mode): Comment, move up.
	(cgraph_decide_inlining_incrementally): Do not perform inlining
	itself; fix handling of flattening of self recursive functions.
	(cgraph_find_cycles): Remove.
	(cgraph_flatten_node): Remove.
	(cgraph_decide_inlining): Use incremental inliner to handle flattening.
	(try_inline): New function.
	(cgraph_early_inlining): Update call of
	cgraph_decide_inlining_incrementally.  Apply inlining here.
	(apply_inline): Update call of cgraph_decide_inlining_incrementally.

2007-01-21  Dirk Mueller  <dmueller@suse.de>

	PR bootstrap/30511
	* tree-vrp.c (check_array_bounds): do not warn
	about ADDR_EXPR's of ARRAY_REF's which are immediately
	used in binary expressions.

2007-01-21  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.h (struct _stmt_vec_info): Add new field
	read_write_dep and macros for its access.
	* tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
	* tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
	argument, call vect_check_interleaving for every independent pair of
	data-refs. Mark loads that access the same memory location as a store
	in the loop.
	(vect_check_dependences): Remove.
	(vect_analyze_data_ref_dependences): Remove  vect_check_dependences
	call, fix the call to vect_analyze_data_ref_dependence.
	(vect_analyze_data_ref_access): For statements that access the same
	data-ref, check that they are not stores; for loads, check that there
	is no store that access the same location.

2007-01-20  Roger Sayle  <roger@eyesopen.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
	(-fdump-rtl-stack): Likewise.
	(-fno-signed-zeros): Use @minus{} for a minus sign.  Correct typo.
	(-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
	(-mpt-fixed): Use @minus{} for minus sign.
	(Using Precompiled Headers): Fix under/overfull hbox.

2007-01-20  Jan Hubicka  <jh@suse.cz>

	* tree-flow.h (struct stmt_ann_d): Move references_memory to proper
	place within annotation.

2007-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (output_move_double): Change array size of xoperands to 4.

2007-01-20  Jan Hubicka  <jh@suse.cz>

	* tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
	as temporary.

2007-01-19  Ian Lance Taylor  <iant@google.com>

	* expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
	constant to unsigned HOST_WIDE_INT before negating.

2007-01-19  Ian Lance Taylor  <iant@google.com>

	* tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
	to unsigned.
	(VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
	(VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
	(SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
	(SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
	(SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
	(realloc_vdef, realloc_vuse): Change second parameter to
	unsigned.
	(ssa_operand_iterator_d): Change vuse_index and mayuse_index
	fields to unsigned.
	* tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
	unsigned. Change x and lim locals to unsigned.
	(realloc_vdef, realloc_vuse): Change num_elem parameter to
	unsigned.
	(finalize_ssa_vuse_ops): Change old_i local to unsigned.
	(copy_virtual_operands): Change i and n locals to unsigned.

2007-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR middle-end/29335
	* builtins.c (fold_builtin_1): Handle builtin fdim.

2007-01-20  Jan Hubicka  <jh@suse.cz>

	* tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
	* tree-ssa-structalias.c (compute_points_to_sets): Do call
	init_alias_heapvars.
	(init_alias_heapvars): Initialize only when not already initialized.
	(delete_alias_heapvars): Set heapvar_for_stmt to NULL.

2007-01-19  Roger Sayle  <roger@eyesopen.com>

	* common.opt (fsigned-zeros): New command line option.
	* flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
	of flag_unsafe_math_optimizations.
	* opts.c (set_fast_math_flags): The -ffast-math command line option
	implies -fno-signed-zeros.
	(fast_math_flags_set_p): Likewise.

	* doc/invoke.texi: Document new -fno-signed-zeros option, and update
	the documentation of -ffast-math appropriately.  Wrap long lines.

2007-01-19  Steve Ellcey  <sje@cup.hp.com>

	* system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
	* varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.

2007-01-19  Tomas Bily  <tbily@suse.cz>

	* cgraphunit.c (cgraph_finalize_function): Updating of pid
	* tree-profile.c:
	(tree_init_ic_make_global_vars): New function
	(tree_init_edge_profiler): call of tree_init_ic_make_global_vars
	(tree_gen_ic_profiler): New function
	(tree_gen_ic_func_profiler): New function
	(tree_profiling): Added calling of tree_gen_ic_func_profiler
	(tree_profile_hooks): Added hook for indirec/virtual calls
	* value-prof.c (tree_find_values_to_profile): New case for
	indirect calls
	(tree_values_to_profile): Call for determining indirect/virtual
	counters
	(tree_indirect_call_to_profile): New function
	(tree_ic_transform): New function
	(tree_ic): New function
	(find_func_by_pid): New function
	(init_pid_map): New function
	(tree_value_profile_transformations): Added check for
	indirect/virtual call transformation
	* value-prof.h (enum hist_type): New counter type for
	indirect/virtual calls
	(profile_hooks): Added new hook for profiling indirect/virtual
	calls
	* profile.c (instrument_values): New case for indirect/virtual
	call added
	* gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
	(GCOV_COUNTER_V_INDIR): New counter type
	(GCOV_COUNTER_NAMES): New name of counter "indirect" added
	(GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
	call added
	* cgraph.c: Definition of cgraph_max_pid
	(cgraph_create_node): Default init of pid attribute
	* cgraph.h: Declaration of cgraph_max_pid
	(struct cgraph_node): Added pid attribute
	* libgcov.c (__gcov_indirect_call_profiler): New function
	(__gcov_one_value_profiler_body): New function
	(__gcov_one_value_profiler): Body was moved to
	__gcov_one_value_profiler_body and calls it

2007-01-19  Basile Starynkevitch  <basile@starynkevitch.net>

	* doc/gty.texi (Options): Document the mark_hook option to GTY.
	* gengtype.c (write_types_data, write_func_for_structure,
	write_types, ggc_wtd, pch_wtd): Add skip_hooks to
	write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
	(walk_type, write_func_for_structure): Generate the mark_hook if
	needed.

2007-01-19  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of
	'early' argument take inlining mode argument specifying whether to
	inline for size/speeed or all functions; add support for flattening;
	improve dumpting.
	(cgraph_early_inlining): Update call of decide_inlining_incrementally.

2007-01-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/17947
	* toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
	the name of the declared identifier.

2007-01-19  Dirk Mueller  <dmueller@suse.de>

	* config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
	result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
	duplicate evaluation.

2007-01-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
	Macroize expander using X87MODEF12 mode macro.  Extend operand 1
	to XFMode, use acosxf2 and truncate result to requested mode.
	Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
	(asin<mode>2): Similarly, with asin expanders.
	(*fscalexf4_i387): Rename from *fscalexf4.
	(expNcorexf3): New expander.
	(expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
	(exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
	X87MODEF12 mode macro.  Extend operand 1 to XFMode, use expxf2 and
	truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
	patterns for SSE math.
	(exp10<mode>2): Similarly, with exp10 expanders.
	(exp2<mode>2): Similarly, with exp2 expanders.
	(expm1<mode>2): Similarly, with expm1 expanders.
	(ldexp<mode>3): Similarly, with ldexp expanders.
	(log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
	Use gen_truncxf<mode>2_i387_noop to truncate result.

2007-01-19  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
	for ColdFire targets.

2007-01-19  Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
	(INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
	(__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
	* config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
	(M68K_STATIC_CHAIN_REG_NAME): Likewise.
	* config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.

2007-01-19  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.md (adddi_dilshr32): Rename to...
	(*adddi_dilshr32): ...this.  Fix formatting.  Remove commented-out
	non-canonical pattern.  Restrict to !TARGET_COLDFIRE.
	(*adddi_dilshr32_cf): New pattern.
	(adddi3, subdi3): Remove first alternatives.

2007-01-19  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.c (notice_update_cc): If an SFmode move is
	implemented using move.l, do not use its cc result for floating-point
	comparisons.

2007-01-19  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
	from accepting 's' constraints if flag_pic.

2007-01-19  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
	(bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
	(bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
	condition from TARGET_68881 to TARGET_HARD_FLOAT.

2007-01-19  Sandra Loosemore  <sandra@codesourcery.com>

	* longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
	ColdFire alternatives.
	* config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
	* config/m68k/m68k.md (clzsi2): Define for ColdFire
	architectures that support ff1 instruction.

2007-01-19  Richard Sandiford  <richard@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	* config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
	* config/m68k/m68k.md (*movsi_cfv4): Fold into...
	(*movsi_cf): ...here.  Remove unnecessary 'R' from 'Rg'.
	Add commentary.

2007-01-19  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
	and return a bool.
	(output_move_const_into_data_reg, output_move_simode_const): Delete.
	* config/m68k/m68k.c (const_method, const_int_cost): Take a
	HOST_WIDE_INT instead of an rtx.
	(m68k_rtx_costs): Update call accordingly.
	(output_move_const_into_data_reg): Likewise.  Fix formatting.
	(valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
	Return a bool.
	(output_move_simode_const): Update calls after above changes.
	Rework to use automatic variables and predicates like MEM_P.
	* config/m68k/m68k.md (pushexthisi_const): Update call to
	valid_mov3q_const.

2007-01-19  Dirk Mueller  <dmueller@suse.de>

	* tree-ssa-alias.c (perform_var_substitution): Fix typo
	in dump_flags test.

2007-01-19  Richard Guenther  <rguenther@suse.de>

	* builtins.c (expand_builtin_cexpi): Fall back to expanding
	via cexp in case sincos is not available.

2007-01-19  Richard Guenther  <rguenther@suse.de>

	* doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
	* defaults.h (TARGET_HAS_SINCOS): Default to off.
	* config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
	* config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
	* config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
	* config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
	* config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
	* config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.

2007-01-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
	New insn patterns.
	(atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
	(atan2xf3): Directly generate RTL pattern.
	(atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
	patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
	and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
	disable patterns for SSE math.
	(atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
	patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
	and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
	disable patterns for SSE math.

2007-01-19  Alexandre Oliva  <aoliva@redhat.com>

	* libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.

2007-01-18  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
	VIEW_CONVERT_EXPR to the same type as it's operand.

2007-01-18  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
	configured for long double 128.

2007-01-18  Mike Stump  <mrs@apple.com>

	* config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
	error.

2007-01-18  Michael Meissner  <michael.meissner@amd.com>

	* config/i386/i386.c (ix86_compute_frame_layout): Make fprintf's
	in #if 0 code type correct.

2007-01-18  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-operands.c (vop_free_bucket_size): Never return value
	greater than NUM_VOP_FREE_BUCKETS.

2007-01-18  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c: Update comments.
	(ptabitmap_obstack): Removed.
	(pta_obstack): New.
	(oldpta_obstack): Ditto.
	(stats): Add a few members.
	(struct variable_info): Remove node, complex, address_taken, and
	indirect_target members. Add oldsolution member.
	(new_var_info): Do not initialize removed members.
	(constraint_expr_type): Remove INCLUDES.
	(constraint_graph): Add size, implicit_preds, rep,
	indirect_cycles, eq_rep, label, direct_nodes, and complex members.
	(FIRST_REF_NODE): New macro.
	(LAST_REF_NODE): Ditto.
	(FIRST_ADDR_NODE): Ditto.
	(find): New function.
	(unite): Ditto.
	(dump_constraint): Do not handle INCLUDES.
	(insert_into_complex): Do not insert duplicate constraints.
	(condense_varmap_nodes): Renamed and rewritten into ...
	(merge_node_constraints): This. Also fix bug in handling of
	offseted copy constraints.
	(clear_edges_for_node): No longer need to deal with preds at all,
	or removing associated preds/succs.
	(merge_graph_nodes): Deal with indirect_cycles.
	Don't deal with predecessors.
	(add_implicit_graph_edge): New function.
	(add_pred_graph_edge): Ditto.
	(add_graph_edge): Don't deal with predecessors.
	(build_constraint_graph): Removed.
	(build_pred_graph): New function.
	(build_succ_graph): Ditto.
	(struct scc_info): Removed in_component. Added roots, dfs, and
	node_mapping. Remove visited_index, unification_queue.
	(scc_visit): Deal with union-find we do now.
	Deal with cycles with REF nodes.
	(collapse_nodes): Renamed and rewritten to ...
	(unify_nodes): This.
	(process_unification_queue): Removed.
	(topo_visit): Cleanup
	(do_da_constraint): Use find.
	(do_sd_constraint): Ditto.
	(do_ds_constraint): Ditto.
	(do_complex_constraint): Ditto.
	(init_scc_info): Update for removed and added members.
	(find_and_collapse_graph_cycles): Renamed and rewritten into ...
	(find_indirect_cycles): This.
	(equivalence_class): New variable.
	(label_visit): New function.
	(perform_variable_substitution): Rewritten.
	(free_var_substitution_info): New function.
	(find_equivalent_node): Ditto.
	(move_complex_constraints): Ditto.
	(eliminate_indirect_cycles): Ditto.
	(solve_graph): Only propagate changed bits.
	Use indirect cycle elimination.
	Use find.
	(tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
	(tree_id_eq): Renamed to ...
	(tree_vi_eq): This. Update for member change
	(insert_id_for_tree): Renamed and rewritten to ...
	(insert_vi_for_tree): This.
	(lookup_id_for_tree): Renamed and rewritten to ...
	(lookup_vi_for_tree): This.
	(get_id_for_tree): Renamed and rewritten to ...
	(get_vi_for_tree): Ditto.
	(get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
	(process_constraint): Don't handle INCLUDES.
	Remove special ADDRESSOF case.
	(find_func_aliases): Rewrite to use vi functions instead of id
	ones.
	(create_function_info_for): Ditto.
	(create_variable_info_for): Ditto.
	(intra_create_variable_infos): Ditto.
	(merge_smts_into): Ditto.
	(find_what_p_points_to): Ditto.
	(init_base_vars): Ditto.
	(init_alias_vars): Ditto.
	(remove_preds_and_fake_succs): New function.
	(dump_sa_points_to_info): Dump new stats.
	(dump_solution_for_var): Use find.
	(set_used_smts): Fix formatting.
	(compute_points_to_sets): Updated for new functions.
	(ipa_pta_execute): Ditto.

2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
	parallels.
	* calls.c (expand_call): If the return value is a PARALLEL,
	extract its first member.
	* config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
	* config/m68k/m68k.c (m68k_output_function_epilogue): Don't
	use FUNCTION_EXTRA_EPILOGUE.
	(m68k_function_value): Return a PARALLEL if the return value
	is of a pointer type.
	* config/m68k/netbsd-elf.h (current_function_returns_pointer)
	(FUNCTION_EXTRA_EPILOGUE): Remove.
	* config/m68k/m68k.md (D0_REG): New constant.

2007-01-18  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.c (m68k_output_function_epilogue): Don't
	output a NOP for empty epilogues.

2007-01-18  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.c (m68k_use_return_insn): Update comments
	before function.  Extend register save check to include all
	registers, not just integer ones.

2007-01-18  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k-protos.h (use_return_insn): Rename to...
	(m68k_use_return_insn): ...this.
	* config/m68k/m68k.h (USE_RETURN_INSN): Delete.
	* config/m68k/m68k.c (use_return_insn): Rename to...
	(m68k_use_return_insn): ...this.
	* config/m68k/m68k.md (return): Use m68k_use_return_insn instead
	of USE_RETURN_INSN.

2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
	nearest even, fix denormal rounding overflow.

2007-01-18  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
	f%$smove and f%$move.
	(movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
	(extendsfdf2_cf): Use fdmove instead of f%&move.
	(truncdfsf2_cf): Use fsmove instead of f%$smove.
	(add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.

2007-01-18  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
	GPR<-GPR moves.

2007-01-18  Richard Sandiford  <richard@codesourcery.com>

	* real.h (real_format): Add a canonical_nan_lsbs_set field.
	(coldfire_single_format): Declare.
	(coldfire_double_format): Likewise.
	* real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
	of qnan_msb_set to determine the lower bits of a canonical
	NaN significand.
	(encode_ieee_double): Likewise.
	(encode_ieee_quad): Likewise.
	(ieee_single_format): Initialize canonical_nan_lsbs_set.
	(mips_single_format): Likewise.
	(ieee_double_format): Likewise.
	(mips_double_format): Likewise.
	(ieee_extended_motorola_format): Likewise.
	(ieee_extended_intel_96_format): Likewise.
	(ieee_extended_intel_128_format): Likewise.
	(ieee_extended_intel_96_round_53_format): Likewise.
	(ibm_extended_format): Likewise.
	(mips_extended_format): Likewise.
	(ieee_quad_format): Likewise.
	(mips_quad_format): Likewise.
	(vax_f_format): Likewise.
	(vax_d_format): Likewise.
	(vax_g_format): Likewise.
	(i370_single_format): Likewise.
	(i370_double_format): Likewise.
	(decimal_single_format): Likewise.
	(decimal_double_format): Likewise.
	(decimal_quad_format): Likewise.
	(c4x_single_format): Likewise.
	(c4x_extended_format): Likewise.
	(real_internal_format): Likewise.
	(coldfire_single_format): New real_format.
	(coldfire_double_format): Likewise.
	* config/pdp11/pdp11.c (pdp11_f_format): Initialize
	canonical_nan_lsbs_set.
	(pdp11_d_format): Likewise.
	* config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
	if TARGET_COLDFIRE_CPU.

2007-01-18  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
	(output_call, m68k_legitimize_call_address): Declare.
	* config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
	parenthesees.  Add support for a 'W' constraint.
	(LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
	(PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
	(m68k_symbolic_call, m68k_symbolic_jump): Declare.
	* config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
	variables.
	(override_options): Initialize them.  Do not set flag_no_function_cse
	for TARGET_ID_SHARED_LIBRARY.
	(m68k_output_pic_call): Delete.
	(m68k_legitimize_call_address): New function.
	(print_operand): Remove the %o prefix.  Handle the %p prefix.
	(output_call): New function.
	(m68k_output_mi_thunk): Use m68k_symbolic_jump.  Always load the
	target address from the GOT if symbolic jumps are not allowed.
	* config/m68k/m68k.md (call, general_operand): Do not set
	SYMBOL_REF_FLAG.  Use m68k_legitimize_call_address instead.
	Merge separate flag_pic and !flag_pic define_insns into...
	(*call, *call_value): ...these new patterns.  Match the address
	rather than the containing MEM and require it to be a call_operand.
	Use output_call to generate the asm template.
	* config/m68k/predicates.md (const_call_operand): New predicate.
	(call_operand): Likewise.

2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
	(STACK_GROWS_DOWNWARD): Define to 1.
	(FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
	comments, emphasizing that these values are only defaults.
	* config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
	* config/m68k/m68k.c (const_method): Remove trailing whitespace.

2007-01-18  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.

2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
	(FP_REGNO_P): New macros.
	(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
	(REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
	(EH_RETURN_STACKADJ_RTX): Use A0_REG.
	* config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.

2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>

	* config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
	(m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
	to $tmake_file.
	* config/m68k/t-floatlib: New file, extracting common code from...
	* config/m68k/t-m68kbare, config/m68k/t-m68kelf,
	* config/m68k/t-uclinux: Here.
	* config/m68k/fpgnulib.c: Do not compile extendeed precision
	routines on ColdFire targets.

2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>

	* config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
	(m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
	(m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
	(m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
	explicitly set MOTOROLA to 1.
	* config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.

2007-01-18  Richard Sandiford  <richard@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
	(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
	* config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
	* config/m68k/m68020-elf.h (LIB_SPEC): Delete.
	* config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
	* config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
	(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
	(NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
	(BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
	* config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
	* config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
	(WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
	(TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
	(DBX_REGISTER_NUMBER): Delete.
	* config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
	(PCC_STATIC_STRUCT_RETURN): Don't undefine.
	* config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.

2007-01-18  Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
	* config/flat.h: New file.
	* crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
	OBJECT_FORMAT_FLAT.
	* config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
	indirect references for -msep-data or -mid-shared-library.
	Do not use PC-relative code addresses either.
	* config/m68k/m68k.c (override_options): Restrict -fPIC error
	to -mpcrel.
	* config/m68k/uclinux.h (STARTFILE_SPEC): Define.  Use Scrt1.o
	for shared libraries and crt1.o for executables.  Use crti.o and
	crtbegin.o.
	(ENDFILE_SPEC): Use crtend.o and crtn.o.
	(LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
	Do not add -elf2flt or -shared-lib-id options here.
	(LINK_SPEC): Define.  Pass -elf2flt if no -elf2flt option is given.
	Pass -shared-lib-id if -mid-shared-library, taking the library
	identifier from -mshared-library-id if given, otherwise
	defaulting to 0.
	(EH_FRAME_IN_DATA_SECTION): Do not undefine.
	(INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
	(TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
	and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
	(DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
	* config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
	and crtend.o.
	* config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
	jump sequence for ISA A and ISA A+.
	(PICJUMP): Likewise.

2007-01-18  Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (m68k-*-uclinux*): Base the port on the common
	and m68k GNU/Linux files rather than on the generic ELF ones.
	* config/m68k/uclinux.h (TARGET_VERSION): Override.
	(TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.

2007-01-18  Julian Brown  <julian@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
	* config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
	before redefining.
	* config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
	80 unconditionally.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.

2007-01-18  Richard Sandiford  <richard@codesourcery.com>

	* doc/install.texi: Document m68k-uclinuxoldabi.
	* config.gcc (m68k-*-uclinuxoldabi): New configuration.
	* config/m68k/uclinux-oldabi.h: New file, copied from
	config/m68k/uclinux.h.

2007-01-18  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
	* config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
	(m32r_compute_frame_size): Use unsigned for regno.
	(m32r_reload_lr): Use gen_frame_mem.
	(pop): New.
	(m32r_output_function_epilogue): Don't output the function epilogue
	textually here.
	(m32r_expand_epilogue): New.
	(direct_return): Return false if the function has the interrupt
	attribute.
	(m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
	* config/m32r/m32r.md (epilogue): New expander.
	(return_lr, return_rte): New insns.
	(return): Make it expander.
	(return_normal): New expander.

2007-01-18  Josh Conner  <jconner@apple.com>

	PR target/30485
	* config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
	support for UNLE, UNLT, UNGE, and UNGT.

2007-01-18  Jan Hubicka  <jh@suse.cz>

	* tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
	* tree-tailcall (add_virtual_phis): Likewise.
	(optimize_tail_call): Return TODOs.
	(execute_tail_calls): Return TODOs.
	* tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
	* tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
	changed.
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
	Cleanup cfg using TODO.
	* tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
	* passes.c (execute_function_todo): When cleanup did something, remove
	unused locals.
	* tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
	(make_edges): Don't cleanup_cfg.

2007-01-18  Uros Bizjak  <ubizjak@gmail.com>

	* reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
	UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
	operate on the top of stack.
	[UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
	register handling of instructions that output to the second
	stack slot.
	[UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
	(move_for_stack_reg): Special-case check for dead destination
	stack slot for constant load of 1.0 inside UNSPEC_TAN.

	* config/i386/i386.md (UNSPEC_TAN): New constant.
	(UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
	(fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
	to correctly model move of constant 1.0 to top stack slot.
	(*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
	(unnamed peephole2 pattern): Remove corresponding peephole2
	pattern that optimizes tan insn and loading of constant 1.0.
	(tanxf2): Use fptanxf4_i387.
	(tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
	patterns using X87MODEF12 mode macro.  Use fptan_extend<mode>xf4_i387
	and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
	disable patterns for SSE math.
	(sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
	(fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.

2007-01-18  Dirk Mueller  <dmueller@suse.de>
	    Richard Guenther <rguenther@suse.de>

	PR diagnostic/8268
	* doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
	* common.opt (Warray-bounds): Add new warning option.
	* c-opts.c (c_common_handle_option): Define -Warray-bounds
	if -Wall is given.
	* Makefile.in: make tree-vrp.o depend on toplev.h
	* tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
	is enabled.
	(check_array_refs, check_array_bounds, check_array_ref): New.

2007-01-18  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-ccp.c (ccp_finalize): Return if something changed.
	(execute_ssa_ccp): Return flags conditionally.
	* tree-ssa-propagate.c (substitue_and_fold): Return if something was
	changed.
	* tree-ssa-propagate.h (substitute_and_fold): Update prototype.

2007-01-18  Steven Bosscher  <steven@gcc.gnu.org>

	* cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
	the CLEANUP_CFGLAYOUT flag when in cfglayout mode.

	* Makefile.c (GTFILES): Add cfglayout.h.
	* gengtype.c (open_base_files): Likewise.
	* cfglayout.c (cfg_layout_function_footer,
	cfg_layout_function_header) Reindent to make gengtype happy.
	* cfglayout.h (cfg_layout_function_footer,
	cfg_layout_function_header): Add GTY(()) marker.

	* ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.

2007-01-18  Ben Elliston  <bje@au.ibm.com>

	* genautomata.c (write_automata): Include xstrerror output in the
	error message if writing the DFA description file fails.

2007-01-17  H.J. Lu  <hongjiu.lu@intel.com>

	* config/mips/mips-protos.h (mips_output_external): Make it
	return void.
	* config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
	* config/mips/mips.c (irix_output_external_libcall): Likewise.
	(extern_list): Likewise.
	(extern_head): Likewise.
	(TARGET_ASM_FILE_END): Likewise.
	(mips_file_end): Likewise.
	(mips_output_external): Rewritten.

2007-01-18  Ben Elliston  <bje@au.ibm.com>

	* genpreds.c (write_insn_preds_c): Only write out the function
	body for regclass_for_constraint if we have register constraints.

2007-01-17  Tom Tromey  <tromey@redhat.com>

	* doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
	* doc/install.texi (Testing): Use sourceware.org.
	(Binaries): Likewise.
	(Specific): Likewise.
	* doc/contrib.texi (Contributors): Use sourceware.org.

2007-01-17  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.h (AVR_HAVE_LPMX): New macro.
	(AVR_ENHANCED): Rename to ...
	(AVR_HAVE_MUL): ... new.
	(avr_enhanced_p): Rename to ...
	(avr_have_mul_p): ... new.
	(TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
	'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
	* config/avr/avr.c (avr_enhanced_p): Rename to ...
	(avr_have_mul_p): ... new.
	(base_arch_s): Rename 'enhanced' to 'have_mul'.
	(avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
	'avr_enhanced_p' and 'enhanced'.
	(ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use
	AVR_HAVE_MUL instead of AVR_ENHANCED.
	* avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
	(mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3,
	*mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL
	instead of AVR_ENHANCED.
	(*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
	* libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
	(__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.

2007-01-17  Ian Lance Taylor  <iant@google.com>

	* vec.h (VEC_reserve_exact): Define.
	(vec_gc_p_reserve_exact): Declare.
	(vec_gc_o_reserve_exact): Declare.
	(vec_heap_p_reserve_exact): Declare.
	(vec_heap_o_reserve_exact): Declare.
	(VEC_OP (T,A,reserve_exact)): New static inline function, three
	versions.
	(VEC_OP (T,A,reserve)) [all versions]: Remove handling of
	negative parameter.
	(VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
	(VEC_OP (T,A,copy)) [all versions]: Likewise.
	(VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
	* vec.c (calculate_allocation): Add exact parameter.  Change all
	callers.
	(vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
	(vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
	(vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
	(vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
	(vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
	(vec_heap_p_reserve_exact): New function.
	(vec_heap_o_reserve_exact): New function.

2007-01-17  Jan Hubicka  <jh@suse.cz>

	* ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.

2007-01-17  Eric Christopher  <echristo@apple.com>

	* config.gcc: Support core2 processor.

2007-01-16  Jan Hubicka  <jh@suse.cz>

	* tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
	the names, just unlink the chain so we don't crash on dangling
	pointers
	to dead SSA names.

2007-01-16  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (cgraph_decide_inlining_incrementally): Kill.
	* tree-pass.h: Reorder to make IPA passes appear toegher.
	(pass_early_inline, pass_inline_parameters, pass_apply_inline):
	Declare.
	* cgraphunit.c (cgraph_finalize_function): Do not compute inling
	parameters, do not call early inliner.
	* ipa-inline.c: Update comments.  Include tree-flow.h
	(cgraph_decide_inlining): Do not compute inlining parameters.
	(cgraph_decide_inlining_incrementally): Return TODOs; assume to
	be called with function context set up.
	(pass_ipa_inline): Remove unreachable functions before pass.
	(cgraph_early_inlining): Simplify assuming to be called from the
	PM as local pass.
	(pass_early_inline): New pass.
	(cgraph_gate_ipa_early_inlining): New gate.
	(pass_ipa_early_inline): Turn into simple wrapper.
	(compute_inline_parameters): New function.
	(gate_inline_passes): New gate.
	(pass_inline_parameters): New pass.
	(apply_inline): Move here from tree-optimize.c
	(pass_apply_inline): New pass.
	* ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after
	transforming.
	* tree-inline.c (optimize_inline_calls): Return TODOs rather than
	doing them by hand.
	(tree_function_versioning): Do not allocate dummy struct function.
	* tree-inline.h (optimize_inline_calls): Update prototype.
	* tree-optimize.c (execute_fixup_cfg): Export.
	(pass_fixup_cfg): Remove
	(tree_rest_of_compilation): Do not apply inlines.
	* tree-flow.h (execute_fixup_cfg): Declare.
	* Makefile.in (gt-passes.c): New.
	* passes.c: Include gt-passes.h
	(init_optimization_passes): New passes.
	(nnodes, order): New static vars.
	(do_per_function_toporder): New function.
	(execute_one_pass): Dump current pass here.
	(execute_ipa_pass_list): Don't dump current pass here.

2007-01-16  Janis Johnson  <janis187@us.ibm.com>

	* config/dfp-bit.c (dfp_compare_op): Return separate value for NaN.
	(DFP_NE, DFP_LE, DFP_GE): Return false for NaN.

2007-01-16  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
	(strong_alias): Define.
	(__gcc_qmul): Provide non-FMA for soft-float.
	(__gcc_qdiv): Same.
	(__gcc_qneg): New.
	(__gcc_qeq): New.
	(__gcc_qle): New.
	(__gcc_qge): New.
	(__gcc_qunord): New.
	(__gcc_stoq): New.
	(__gcc_dtoq): New.
	(__gcc_qtos): New.
	(__gcc_qtod): New.
	(__gcc_qtoi): New.
	(__gcc_qtou): New.
	(__gcc_itoq): New.
	(__gcc_utoq): New.
	(fmsub): New.
	* config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
	soft-float functions.
	* config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
	about long double soft float.

2007-01-16  Dorit Nuzman  <dorit@il.ibm.com>
	    Tehila Meyzels  <tehila@il.ibm.com>

	* tree-vectorizer.h (is_pattern_stmt_p): New.
	* tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
	formatting (tabs instead of spaces). Cleanup and clarify setting
	of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
	* tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
	(vectorizable_type_demotion): Check that types are integral.
	(vectorizable_type_promotion): Likewise.
	(vectorizable_store): Fix typo.  Eliminate new-line at end of
	comments.

2007-01-16  Jan Hubicka  <jh@suse.cz>

	* tree-ssanames.c (release_dead_ssa_names): Remove invalidated
	cgraph edges too.

2007-01-15  Eric Christopher  <echristo@apple.com>

	* ifcvt.c: Include vec.h, vecprim.h.
	(check_cond_move_block): New argument regs.
	Reorganize. Add registers used to regs.
	(cond_move_process_if_block): Use regs set above as
	loop bounds.

2007-01-15  Eric Christopher  <echristo@apple.com>

	* config/darwin.h: Update copyright.
	(TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
	(LINK_COMMAND_SPEC): Add -u.
	(LINK_SPEC): Fix umbrella for above.

2007-01-15  Joseph S. Myers  <joseph@codesourcery.com>

	* config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
	glibc CVS.

2007-01-15  Tom Tromey  <tromey@redhat.com>

	* doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
	* doc/install.texi (Testing): Don't mention jacks.
	(Configuration): Document --enable-java-maintainer-mode.  Move
	--with-java-home to libgcj-specific section.  Document
	--with-ecj-jar.
	(Prerequisites): Mention --enable-java-maintainer-mode, ecj1.

2007-01-15  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-dce.c (DCE_TODOs): New.
	(propagate_necessity): Return if something changed.
	(eliminate_unnecessary_stmts): Likewise.
	(perform_tree_ssa_dce): Return TODO flags when needed.
	(pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.

2007-01-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
	(fyl2x_extend<mode>xf3_i387): New insn pattern.
	(log<mode>2): Rename from logsf2 and logdf2 and macroize insn
	patterns using X87MODEF12 mode macro.  Extend operand 1
	to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
	(log10<mode>2): Ditto.
	(log2<mode>2): Ditto.
	(log1p<mode>2): Ditto.
	(logb<mode>2): Ditto.
	(fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
	(fyl2xp1_extend<mode>xf3_i387): New insn pattern.
	(*fxtractxf3_i387): Rename from *fxtractxf3.
	(fxtract_extend<mode>xf3_i387): New insn pattern.
	(ilogbsi2): Use match_dup 3, not match_operand:XF 3.
	* config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
	and gen_fyl2xxf3_i387().

2007-01-14  Zdenek Dvorak <dvorakz@suse.cz>

	* loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
	* cfgloopmanip.c (fix_loop_placement): Made static.  Use
	get_loop_exit_edges.  Changed return type to bool.
	* cfgloop.h (fix_loop_placement): Declaration removed.

2007-01-14  Dorit Nuzman  <dorit@il.ibm.com>

	* param.h (MIN_VECT_LOOP_BOUND): New.
	* params.def (MIN_VECT_LOOP_BOUND): New.
	* tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
	argument - minimum threshold for number of iterations.
	* tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
	argument to declaration.
	* tree-vect-analyze.c (vect_analyze_operations): Check value of
	MIN_VECT_LOOP_BOUND.
	* tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
	slpeel_tree_peel_loop_to_edge with additional argument.
	(vect_do_peeling_for_alignment): Likewise.
	* doc/invoke.texi (min-vect-loop-bound): Document new param option.

2007-01-14  Uros Bizjak  <ubizjak@gmail.com>

	PR target/30413
	* config/i386/i386.c (print_operand) ['z']: Output 'b' for
	operands of size 1.

2007-01-14  Jan Hubicka  <jh@suse.cz>

	* tree-dfa.c (remove_referenced_var): New function.
	* tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
	prune referenced vars list too.
	* tree-flow.h (remove_referenced_var): Declare.

2007-01-14  Jan Hubicka  <jh@suse.cz>

	* tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
	separately.
	(remove_stmt_from_eh_region_fn): Do not remove call_exprs.
	(verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
	* except.h (verify_eh_throw_table_statements): Kill prototype.
	* cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
	into call exrepssions.
	* tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
	eh trhow verifier.
	* tree-cfg.c: Include pointer-set.h.
	(verify_node_sharing): Work on pointer set.
	(verify_eh_throw_stmt_node): New.
	(verify_stmts): Use pointers sets, verify throw_stmt.

2007-01-13  Zdenek Dvorak <dvorakz@suse.cz>

	* ipa-reference.c (analyze_function): Consider also addresses taken
	in phi nodes.

2007-01-12  Roger Sayle  <roger@eyesopen.com>

	* c-typeck.c (null_pointer_constant_p): Replace use of
	TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
	(build_c_cast): Likewise.

2007-01-12  Roger Sayle  <roger@eyesopen.com>

	* tree.h (force_fit_type_double): Remove unused final argument.
	* c-common.c (constant_expression_warning): Replace use of
	TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
	(convert_and_check): Likewise.
	(shorten_compare): Update call to force_fit_type_double.
	(c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
	* convert.c (convert_to_pointer): Update call to
	force_fit_type_double.
	* fold-const.c (force_fit_type_double): Remove overflowed_const
	argument.
	(int_const_binop, fold_convert_const_int_from_int,
	fold_convert_const_int_from_real, fold_div_compare,
	fold_sign_changed_comparison, fold_unary, fold_negate_const,
	fold_abs_const, fold_not_const): Remove the final argument from
	calls to force_fit_type_double.

2007-01-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* configure.ac: Set insn to "nop" for spu-*-* also.
	* configure: Regenerate.

2007-01-12  Olga Golovanevsky  <olga@il.ibm.com>

	* builtins.def : Add BUILT_IN_FREE.

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

	PR tree-optimization/30443
	* tree-inline.c (tree_function_versioning): Do not optimize when
	cloning for inlining.

2007-01-12  Zdenek Dvorak <dvorakz@suse.cz>

	* doc/loop.texi: Document recording of loop exits.
	* cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
	(update_single_exits_after_duplication,
	update_single_exit_for_duplicated_loop,
	update_single_exit_for_duplicated_loops): Removed.
	(duplicate_loop_to_header_edge): Do not call
	update_single_exits_after_duplication and
	update_single_exit_for_duplicated_loops.
	(loop_version): Do not update single_exit information.
	(fix_loop_structure): Use record_loop_exits instead of
	mark_single_exit_loops.
	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
	the lists of loop exits.
	* cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
	split_edge, merge_blocks): Update the lists of loop exits.
	* modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
	loop_optimizer_init.
	* loop-init.c (loop_optimizer_init): Call record_loop_exits instead
	of mark_single_exit_loops.
	(loop_optimizer_finalize): Call release_recorded_exits.
	* tree-ssa-loop.c (tree_loop_optimizer_init): Pass
	LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
	* tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
	update single exit information.
	* lambda-code.c (perfect_nestify): Ditto.
	* cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
	(mark_single_exit_loops): Removed.
	(alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
	get_exit_descriptions, rescan_loop_exit, record_loop_exits,
	dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
	functions.
	(get_loop_exit_edges, single_exit): Use recorded exit lists.
	(add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
	(verify_loop_structure): Verify consistency of the exit lists.
	(flow_loops_find): Use alloc_loop.  Initialize exits hash.
	(set_single_exit): Removed.
	* cfgloop.h (struct loop_exit): New function.
	(struct loop): single_exit_ field replaced by exits field.
	(LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by
	LOOPS_HAVE_RECORDED_EXITS.
	(struct loops): Added exits hash.
	(mark_single_exit_loops, set_single_exit): Declaration removed.
	(release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.

2007-01-12  Richard Sandiford  <richard@codesourcery.com>

	* doc/invoke.texi: Avoid use of @headitem.

2007-01-12  Richard Sandiford  <richard@codesourcery.com>

	* cse.c (cse_insn): Move HAVE_CC0 code after declarations.

2007-01-12  Richard Sandiford  <richard@codesourcery.com>

	* doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
	list of targets.

2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
	* config/m68k/m68k.opt: Resort options.
	(mbitfield, mrtd, mshort): Remove RejectNegative properties.

2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* doc/invoke.texi: Document the macros that are defined by
	m68k's -mtune and -mhard-float options.
	* config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
	(m68k_cpp_cpu_family): Likewise.
	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
	of __ucfv*__ macros.  Define __mcffpu__ if generating code for
	ColdFire FPUs.  Define __mcf_cpu_* and __mcf_family_* macros.
	* config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
	(m68k_cpp_cpu_family): Likewise.

2007-01-12  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68*
	macros besides mc68000 as tuning macros.  Use a switch statement
	to set them and mcpu32.

2007-01-12  Julian Brown  <julian@codesourcery.com>

	* config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY.
	(TARGET_68040_ONLY): Rename to...
	(TARGET_68040): ...this.
	* config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY.
	* config/m68k/m68k.md: Likewise.

2007-01-12  Julian Brown  <julian@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to
	the -mcpu= argument associated with the --with-cpu setting.
	Define M68K_DEFAULT_TUNE to the default -mtune= option,
	if different from the one implied by the -mcpu setting.
	Accept --with-cpu=FOO if FOO is listed in m68k-devices.def,
	using mcpu=FOO as the default CPU option.  Set target_cpu_default2.
	* doc/invoke.texi: Mention ColdFire in the introduction to the
	m68k options.  Document the new -march, -mcpu, -mtune, -mdiv,
	-mno-div and -mhard-float options.  Make -m68881 a synonym for
	-mhard-float.  Document the previously-undocumented -m5206e,
	-m528x, -m5307 and -m5407 options.  Tweak the existing option
	documentation for consistency.
	* doc/install.texi: Mention new --with-cpu arguments.
	* config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the
	default CPU if neither -mcpu nor -march are specified.
	(ASM_CPU_SPEC): Pass down -mcpu and -march options.
	(TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from
	TARGET_ISA*.  Set the legacy __mcf*__ cpu macros in the same way,
	using m68k_tune to decide between families that implement the
	same ISA.  Use m68k_tune to set __mcfv4e__.
	(FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC)
	(FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000)
	(FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B)
	(FL_ISA_C, FL_ISA_MMU): New macros.
	(MASK_COLDFIRE): Delete.
	(TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE)
	(TARGET_ISAB): Redefine in terms of m68k_cpu_flags.
	(TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu.
	(TARGET_HARD_FLOAT): Do not define here.
	(TARGET_ISAAPLUS, TARGET_ISAC): New macros.
	(TUNE_68000): New macro.
	(TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010.
	(TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32)
	(TUNE_CFV2): Redefine in terms of m68k_tune.
	(uarch_type, target_device, fpu_type): New enums.
	(m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare.
	* config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881.
	(FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40)
	(FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b)
	(FL_FOR_isa_c): New macros.
	(m68k_isa): New enum.
	(m68k_target_selection): New structure.
	(all_devices, all_isas, all_microarchs): New tables.
	(m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu)
	(m68k_tune, m68k_fpu, m68k_cpu_flags): New variables.
	(MASK_ALL_CPU_BITS): Delete.
	(m68k_find_selection): New function.
	(m68k_handle_option): Handle -mcpu=, -march= and -mtune=.
	Map the legacy target options to a combination of the new ones.
	(override_options): Set m68k_cpu, m68k_tune, m68k_fpu and
	m68k_cpu_flags.  Handle M68K_DEFAULT_TUNE.  Use m68k_cpu_flags
	to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT
	settings.
	* config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e)
	(m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask
	properties.
	(m68881, msoft-float): Change mask from 68881 to HARD_FLOAT.
	(march=, mcpu=, mdiv, mhard-float, mtune=): New options.
	* config/m68k/m68k-devices.def: New file.

2007-01-12  Richard Sandiford  <richard@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS)
	(SUBTARGET_EXTRA_SPECS): New macros.
	* config/m68k/linux.h (ASM_SPEC): Remove CPU flags;
	use %(asm_cpu_spec) instead.
	* config/m68k/m68k-none.h (ASM_SPEC): Likewise.
	* config/m68k/openbsd.h (ASM_SPEC): Likewise.
	* config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
	(EXTRA_SPECS): Rename to...
	(SUBTARGET_EXTRA_SPECS): ...this.

2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	* config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
	(m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
	to the configuration's default CPU.
	(m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
	Remove default masks.
	(m680[012]0-*-*): Set the default with_cpu to the first part of
	the target name.
	(m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
	(m68k*-*-linux): Extend the --with-cpu handling to...
	(m680[012]0-*-*, m68k*-*-*): ...these configurations.  Allow m68000
	and m68010.  Don't set target_cpu_default2.
	* doc/install.texi: Document --with-cpu for m68k.
	* config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
	* config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
	(M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
	(M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
	(ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
	(ASM_SPEC): Remove use of %(asm_cpu_default).
	(EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
	* config/m68k/linux.h (TARGET_DEFAULT): Delete.
	(CPP_SPEC): Merge definitions.  Do not handle __HAVE_68881__ here.
	* config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
	__HAVE_FPU__ if TARGET_HARD_FLOAT.
	(TARGET_DEFAULT): Delete.
	(EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
	cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
	(CPP_CPU_SPEC): Delete.
	(TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
	the appropriate string.
	(CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
	(CPP_SPEC): Define to NETBSD_CPP_SPEC.
	(ASM_SPEC): Don't use %(asm_default_spec).
	* config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
	TARGET_DEFAULT and add MASK_68881.
	* config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.

2007-01-12  Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
	(m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add
	MASK_68010 alongside MASK_68020.
	* doc/invoke.texi: Document -m68010.
	* config/m68k/m68k.opt (m68010): New.
	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010
	if TUNE_68010.
	(TUNE_68010): New macro.
	* config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010)
	(M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040)
	(M68K_CPU_m68332): Add MASK_68010.
	* config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to
	fallback definition.
	* config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant
	defines.
	* config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010.
	(m68k_handle_option): Handle OPT_m68010.  Add MASK_68010
	to all entries that use MASK_68020.
	(output_move_simode_const, output_move_himode, output_move_qimode)
	(output_move_stricthi, output_move_strictqi): Use TARGET_68010
	instead of TARGET_68020 to select clr behavior.  Remove comment
	about there being no TARGET_68010.
	* config/m68k/m68k.md: Likewise throughout.

2007-01-12  Julian Brown  <julian@codesourcery.com>

	* config/m68k/m68k.h (TARGET_ISAB): New macro.
	* config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4.
	* config/m68k/m68k.md: Likewise.

2007-01-12  Julian Brown  <julian@codesourcery.com>

	* config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use
	TARGET_COLDFIRE_FPU instead of TARGET_CFV4E.

2007-01-12  Julian Brown  <julian@codesourcery.com>

	* config/m68k/m68k.h (TUNE_68040_60): New macro.
	* config/m68k/m68k.c (standard_68881_constant_p): Use it.
	* config/m68k/m68k.md: Likewise.

2007-01-12  Julian Brown  <julian@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030
	instead of TARGET_68030, TUNE_68040 instead of TARGET_68040,
	TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of
	TARGET_CPU32.
	(TARGET_CPU32): Rename to...
	(TUNE_CPU32): ...this.
	(TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060)
	(TUNE_CFV2): New macros.
	* config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify;
	remove conditions that are implied by TARGET_68020.
	* config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040
	instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32.
	(m68k_output_function_epilogue): Likewise.
	(m68k_rtx_costs): Likewise.  Use TUNE_68060 instead of TARGET_68060
	and TUNE_CFV2 instead of TARGET_5200.  Use TUNE_68000_10 instead of
	"!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and
	non-68000 timings.  Refactor multiplication and division costs.
	(output_addsi3): Use TUNE_68040 instead of TARGET_68040 and
	TUNE_CPU32 instead of TARGET_CPU32.
	(standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040
	and TUNE_68060 instead of TARGET_68060.
	* config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040,
	TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of
	TARGET_CPU32.
	(movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020
	&& !TARGET_COLDFIRE" to choose between moveq and clr.
	Likewise in the unnamed movsf pattern.
	(ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than
	"!TARGET_68020 && !TARGET_COLDFIRE".  Likewise the unnamed
	ashiftrt pattern.

2007-01-12  Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount
	of tabbing before backslashes.

2007-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
	* pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
	(ASM_OUTPUT_INTERNAL_LABEL): Define.

2007-01-11  Zdenek Dvorak <dvorakz@suse.cz>

	* tree-ssa-loop-ivopts.c (extract_cond_operands): Split from
	find_interesting_uses_cond.
	(find_interesting_uses_cond): Use extract_cond_operands.
	(rewrite_use_compare): Use extract_cond_operands and
	force_gimple_operand_bsi.  Do not call update_stmt.
	(determine_use_iv_cost_condition): Use extract_cond_operands.
	Return cheaper of using original bound and changing the exit bound.

2007-01-11  Zdenek Dvorak <dvorakz@suse.cz>

	PR tree-optimization/29516
	* tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
	most_expensive_mult_to_index, addr_to_parts,
	create_mem_ref, maybe_fold_tmr): Make the type of
	fields of TARGET_MEM_REF sizetype.
	(move_fixed_address_to_symbol, move_pointer_to_base):
	New functions.
	* tree.def (TARGET_MEM_REF): Add comment on types of
	the operands.

2007-01-11  Joseph Myers  <joseph@codesourcery.com>

	* c-common.c (vector_types_convertible_p): Treat opaque types as
	always convertible if they have the same size, but not otherwise.

2007-01-11  Steven Bosscher  <steven@gcc.gnu.org>

	* ifcvt.c (struct noce_if_info): Add comments to the fields.
	Remove the b_unconditional field.
	(noce_try_sign_mask): Do not look at b_unconditional.
	(noce_process_if_block): Do not use merge_if_blocks.  Update
	the CFG here.  Do not set b_unconditional.
	(cond_move_process_if_block): Likewise.
	(find_cond_trap): Likewise.
	(check_cond_move_block): Require simple jump insns at the end
	of the basic block.

2007-01-11  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/1046
	* tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
	when alias info is not ready.
	(pass_tail_recursion): Do not require aliasing.
	* tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
	* tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
	* tree-ssa-copy.c (pass_copy_prop): Likewise.
	* tree-ssa-forwprop.c (pass_forwprop): Likewise.
	* tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
	* passes.c (init_optimization_passes): Execute rename_ssa_copies,
	ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
	before inlining.
	* tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
	When aliasing is not build, mark statement as volatile.

2007-01-11  Tom Tromey  <tromey@redhat.com>

	PR preprocessor/15185
	PR preprocessor/20989
	* doc/cppopts.texi <-MT>: Update description of algorithm for
	computing default target.
	<-M, -MD>: Reword "basename" text.

2007-01-11  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (expand_builtin_pow, expand_builtin_powi,
	fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc,
	fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
	fold_builtin_int_int_roundingfn, fold_builtin_bitop,
	fold_builtin_bswap, real_constp, fold_builtin_pow,
	fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign,
	do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace
	uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
	* convert.c (convert_to_pointer): Likewise.
	* expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
	* fold-const.c (force_fit_type, fold_negate_expr, int_const_binop,
	const_binop, fold_convert_const_int_from_int,
	fold_convert_const_int_from_real,
	fold_convert_const_real_from_real, sign_bit_p,
	optimize_minmax_comparison, extract_muldiv_1, fold_div_compare,
	fold_sign_changed_comparison, fold_unary, fold_comparison,
	fold_binary, multiple_of_p, tree_Expr_non_zero_p,
	fold_negate_const, fold_abs_const, fold_not_const): Likewise.
	* print-tree.c (print_node_brief, print_node): Likewise.
	* stor-layout.c (place_field, layout_type): Likewise.
	* tree-chrec.c (keep_cast): Likewise.
	* tree.c (build_vector, build_real, build_real_from_int_cst,
	build_complex): Likewise.

2007-01-11  Roger Sayle  <roger@eyesopen.com>

	* tree.h (TREE_CONSTANT_OVERFLOW): Obsolete.  For the time being,
	treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW.

2007-01-11  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac (strict1_warn): Rename to strict_warn.
	(WERROR, --enable-werror, symlink hacks, stage1_cflags,
	cc_set_by_configure, quoted_cc_set_by_configure,
	stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
	all_boot_languages, all_stagestuff): Remove.
	(target_list): Remove bootstrap targets.
	* Makefile.in (quickstrap): Unconditionally make a synonym of all.
	(BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
	REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
	SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
	VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
	STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
	stage1_copy, stage2_build, stage2_copy, stageprofile_build,
	stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
	stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
	bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
	bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
	unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
	restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
	cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
	*compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
	stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
	stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
	risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
	(ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
	(STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
	(mostlyclean): Adjust.
	(clean, distclean): Don't mention bootstrap stuff.
	* configure: Regenerate.
	* ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
	java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
	treelang/config-lang.in (stagestuff): Remove.
	* doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
	stageprofile, stagefeedback, stagestuff): Remove mention.

2007-01-11  Nick Clifton  <nickc@redhat.com>

	* config/mcore/predicates.md (mcore_general_movesrc_operand):
	Accept CONSTs.
	(mcore_general_movdst_operand): Do not accept CONST_INTs.
	(mcore_arith_K_S_operand): Run the test for the S constraint not
	the test for the M constraint.
	(mcore_addsub_operand): Do not accept integer values that are
	larger than 32 bits.
	* config/mcore/mcore.md: Remove unused constraints from split.
	(andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL.
	(addsi3): Likewise.
	(allocate_stack): Likewise.
	* config/mcore/mcore.c (mcore_print_operand): Restrict output of P
	operands to 32 bits.
	(mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an
	INTVAL.
	(mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore,
	mcore_const_ok_for_inline, mcore_const_trick_uses_not,
	try_constant_tricks, mcore_num_ones, mcore_num_zeros,
	mcore_output_bclri, mcore_output_andn, output_inline_const,
	mcore_output_move, mcore_output_movedouble): Likewise.
	(mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N.
	(output_inline_const): Likewise.
	(output_inline_const): Fix format strings used in sprintf
	statements.
	* config/mcore/mcore-protos.h: Update prototypes for changed
	functions in mcore.c.
	* config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to
	HOST_WIDE_INT and not int.
	(CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M,
	CONST_OK_FOR_N): Likewise.
	(LEGITIMATE_CONSTANT_P): Also check CONSTANT_P.
	(GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold
	an INTVAL.

2007-01-10  Jan Hubicka  <jh@suse.cz>

	* tree-vrp.c (remove_range_assertions): Release defs.
	* tree-ssa-loop-ivopts.c (rmeove_statement): Likewise.
	* tree-ssa-dom.c (remove_stmt_or_phi): Likewise.

2007-01-10  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
	* config/arm/arm.md (mulsi3subsi): New insn.

2007-01-10  Zdenek Dvorak <dvorakz@suse.cz>

	* tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
	(tree_transform_and_unroll_loop): New.
	* tree-flow.h (transform_callback, tree_transform_and_unroll_loop):
	Declare.

2007-01-10  Robert Kennedy <jimbob@google.com>

	* fold-const.c (fold_comparison): Fold comparisons like (x *
	1000 < 0) to (x < 0).

2007-01-10  Ian Lance Taylor  <iant@google.com>

	* tree-pretty-print.c (dump_generic_node): Print parentheses when
	operands have the same priority.

2007-01-10  Tom Tromey  <tromey@redhat.com>

	* fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
	(fold_binary): Likewise.
	* langhooks.c (lhd_can_use_bit_fields_p): Removed.
	* langhooks-def.h (lhd_can_use_bit_fields_p): Removed.
	(LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
	(LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P.
	* langhooks.h (struct lang_hooks): Removed field
	'can_use_bit_fields_p'.

2007-01-10  Ralf Corsépius <ralf.corsepius@rtems.org>

	* config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.

2007-01-10  Razya Ladelsky  <razya@il.ibm.com>

	* function.c (get_last_funcdef_no): New function.
	* function.h (get_last_funcdef_no): Declare.
	* tree-inline.c (initialize_cfun): Add initialization.
	(tree_function_versioning): Cleanup.

2007-01-10  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c (setup_one_parameter): Do not propagate into abnormal
	PHIs.

2007-01-10  Sa Liu  <saliu@de.ibm.com>
	    Ben Elliston  <bje@au.ibm.com>

	* spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode
	for SAVE_NONLOCAL and Pmode for any other save level.
	* spu-protos.h (spu_restore_stack_block): Declare.
	* spu.md (save_stack_block): Remove.
	(restore_stack_block): Call spu_restore_stack_block.
	* spu.c (spu_restore_stack_block): New function.
	(spu_expand_epilogue): Remove old comment.

2007-01-09  Zdenek Dvorak <dvorakz@suse.cz>

	PR tree-optimization/30322
	* tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed.
	(cand_value_at): Return the value as aff_tree.
	(may_eliminate_iv): Convert the bound from aff_tree to tree.
	* tree-affine.c (aff_combination_add_cst, aff_combination_add_product,
	aff_combination_mult): New functions.
	(aff_combination_add): Use aff_combination_add_cst.
	(aff_combination_convert): Allow conversions to a wider type.
	(tree_to_aff_combination): Handle BIT_NOT_EXPR.
	* tree-affine.h (aff_combination_mult): Declare.

2007-01-09  Carlos O'Donell  <carlos@codesourcery.com>

	* doc/tm.texi: Update documentation to reflect reality of exec
	and start file search behaviours. Update copyright year.
	* doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
	header file directories.

2007-01-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
	(*cosxf2): Rename to cosxf2_i387.
	(*sindf2, *sinsf2): Extend operand 1 to XFmode.  Macroize patterns
	using X87MODEF12 mode macro. Rename patterns to
	*sin_extend<mode>xf2_i387.  Use SSE_FLOAT_MODE_P to disable patterns
	for SSE math.
	(*cosdf2, *cossf2): Ditto.
	(sincosdf3, sincossf3): Ditto.  Rewrite corresponding splitters
	to match extended input operands.
	(sincos<mode>3): New expander.
	(*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
	insn patterns and corresponding splitters.

2007-01-09  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
	(SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.

2007-01-09  Nicolas Pitre  <nico@cam.org>

	PR target/30173
	* arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.

2007-01-08  Geoffrey Keating  <geoffk@apple.com>

	* target.h (struct gcc_target): New field library_rtti_comdat.
	* target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
	(TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
	* doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
	* config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.

2007-01-08  Geoffrey Keating  <geoffk@apple.com>

	* doc/invoke.texi (Optimize Options): Correct description of -O0.

2007-01-08  Richard Guenther  <rguenther@suse.de>

	* tree.h (force_fit_type_double): Export.
	(force_fit_type): Remove.
	* fold-const.c (force_fit_type_double): New function.
	(force_fit_type): Remove.
	(int_const_binop): Use it.
	(fold_convert_const_int_from_int): Likewise.
	(fold_convert_const_int_from_real): Likewise.
	(fold_div_compare): Likewise.
	(fold_sign_changed_comparison): Likewise.
	(fold_unary): Likewise.
	(fold_negate_const): Likewise.
	(fold_abs_const): Likewise.
	(fold_not_const): Likewise.
	* c-common.c (shorten_compare): Use force_fit_type_double.
	* convert.c (convert_to_pointer): Likewise.

2007-01-08  Richard Guenther  <rguenther@suse.de>

	* tree.h (build_int_cst_wide_type): Export.
	* tree.c (build_int_cst_wide_type): New function.
	(build_int_cst_wide): Fix comment.
	* builtins.c (fold_builtin_object_size): Use build_int_cst
	to build -1 or 0 of the correct type.  Use fit_double_type
	to check for overflow.
	* fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
	to build the mask.
	(decode_field_reference): Likewise.
	(all_ones_mask_p): Likewise.
	(native_interpret_int): Use build_int_cst_wide_type.
	(fold_binary): Use build_int_cst_type to build an all-ones
	value.
	* stor-layout.c (set_sizetype): Use build_int_cst_wide_type.

2007-01-08  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/pa/t-pa64 (libgcc_stub.a): Use $(T).

2007-01-09  Ben Elliston  <bje@au.ibm.com>

	* genautomata.c (STATS_OPTION): New option.
	(stats_flag): New flag.
	(gen_automata_option): Handle it.
	(initiate_automaton_gen): Ditto.
	(write_automata): Output statistics only if stats_flag is
	set. Likewise, output time statistics only if time_flag is set.
	* doc/md.texi (Processor pipeline description): Document new flag.

2007-01-08  Richard Guenther  <rguenther@suse.de>

	* builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
	* tree.c (build_int_cst_type): Likewise.
	(size_in_bytes): Don't call force_fit_type on the result.
	(int_fits_type_p): Use fit_double_type.
	* fold-const.c (fit_double_type): New function.
	(force_fit_type): Use it.
	* tree.h (fit_double_type): Export.

2007-01-08  Jan Hubicka  <jh@suse.cz>

	* tree-vectorizer.c (gate_increase_alignment): Fix return type.
	* ipa.c (function_and_variable_visibility): Fix return type.

2007-01-08  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
	of offset to build the index.
	* tree-pretty-print.c (dump_generic_node): Don't build negated
	const just for printing.
	* c-pretty-print.c (pp_c_integer_constant): Likewise.
	* builtins.c (fold_builtin_int_roundingfn): Check if result
	fits the type by using force_fit_type and comparing the result.
	* predict.c (predict_loops): Use compare_tree_int for comparison.
	* tree.c (build_int_cst): Fall back to integer_type_node for
	NULL_TREE type.
	(build_int_cst_wide): Assert type is non-null.

2007-01-08  Roberto Costa  <roberto.costa@st.com>

	* tree-vrp.c (extract_range_from_cond_expr): New.
	(extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
	* tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
	as expressions.
	(fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
	* tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
	tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
	used as expressions.
	* tree-object-size.c (cond_expr_object_size): New.
	(collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.

2007-01-08  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-forwprop.c (forward_propagate_into_cond,
	tree_ssa_forward_propagate_single_use_va): Release defs of propagated
	statement.

2007-01-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/23603
	* tree-vrp.c (set_value_range_to_truthvalue): New function.
	(extract_range_from_binary): Fall back to truthvalue instead of
	varying for TRUTH_*_EXPR.
	(extract_range_from_comparison): Fall back to truthvalue instead of
	varying.
	(vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
	if all visited PHI values were constant.

2007-01-08  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
	(cgraph_analyze_function): break out from ...
	(cgraph_finalize_compilation_unit): ... here.
	(cgraph_expand_function): Remove forgoten commented out line.
	(cgraph_optimize): Analyze functions.

2007-01-08  Jan Hubicka  <jh@suse.cz>

	* tree-pas.h (TODO_remove_function): New flag.
	(TODO_update*): Renumber.
	(pass_ipa_increase_alignment,
	pass_ipa_function_and_variable_visibility): New passes.
	* cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
	(cgraph_function_and_variable_visibility): Move to ipa.c
	(cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
	cgraph_increase_alignment.
	* ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
	(cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
	calling tree-inline.
	(cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
	(pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
	* tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
	(gate_increase_alignment): New function.
	(pass_ipa_increase_alignment): New pass.
	* ipa.c: Inline tree-pass.h and timevar.h
	(function_and_variable_visibility): Move here from cgraphunit.c
	* tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
	* passes.c (init_optimization_passes): Add the two new passes.
	(execute_todo): Handle cgraph_remove_functions.

2007-01-08  Nick Clifton  <nickc@redhat.com>

	* config/frv/predicates.md (reg_or_0_operand): Accept
	CONST_DOUBLEs.

2007-01-08  Ralf Corsépius <ralf.corsepius@rtems.org>

	* config/bfin/rtems.h, config/bfin/t-rtems: New.
	* config.gcc: Add bfin*-rtems*.

2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>

	* c.opt: Add -flax-vector-conversions.
	* c-typeck.c (convert_for_assignment): Pass flag to
	vector_types_convertible_p to allow emission of note.
	(digest_init): Likewise.
	* c-opts.c: Handle -flax-vector-conversions.
	* c-common.c (flag_lax_vector_conversions): New.
	(vector_types_convertible_p): Unless -flax-vector conversions
	has been passed, disallow conversions between vectors with
	differing numbers of subparts and/or element types.  If such
	a conversion is disallowed, possibly emit a note on the first
	occasion only to inform the user of -flax-vector-conversions.
	The new last argument specifies this.
	* c-common.h (flag_lax_vector_conversions): New.
	(vector_types_convertible_p): Add extra argument.
	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
	char_type_node for V*QI type vectors.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
	Update to satisfy new typechecking rules.
	* config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
	C and C++ variants.
	* doc/invoke.texi (C Dialect Options): Document
	-flax-vector-conversions.

2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>

	PR tree-optimization/29877
	* tree-ssa-ter.c (is_replaceable_p): Deem assignments with
	a register variable on the RHS to not be replaceable.

2007-01-08  Chen Liqin  <liqin@sunnorth.com.cn>
	* config/score/t-score-elf (MULTILIB_OPTIONS): Change.
	* config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
	const_simm15, const_pow2, const_npow2): Added.
	* config/score/misc.md (insv, extv, extzv, movmemsi,
	move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
	* config/score/score.c (score_address_cost, score_select_cc_mode):
	Added.
	Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
	Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
	Update score_print_operand.
	* config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
	Adjust register allocate order and update some macro define.
	* config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
	mdx_block_move_straight, mdx_block_move_loop_head,
	mdx_block_move_loop_body, mdx_block_move_loop_foot,
	mdx_block_move_loop, mdx_block_move): Added.
	(mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
	mdp_limm): Updated and fix some bug and typo.
	* config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
	(movsf, movdf, doloop_end): Added.

2007-01-08  Kazu Hirata  <kazu@codesourcery.com>

	* config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
	config/arm/thumb2.md: Fix comment typos.
	* doc/extend.texi: Fix a typo.

2007-01-07  Eric Christopher  <echristo@apple.com>

	* configure.ac: Check for __stack_chk_fail for darwin.
	* configure: Regenerate.

2007-01-07  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (extract_range_from_assert): CSE calls to
	compare_values where possible.
	(extract_range_from_unary_expr): Likewise.

2007-01-07  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr-protos.h (call_insn_operand): Delete prototype.
	* config/avr/avr.c (call_insn_operand): Delete function.
	* config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
	instead of register number. Use predicates.
	* config/avr/predicates.md (const0_operand, reg_or_0_operand,
	call_insn_operand): Add.

2007-01-06  Jan Hubicka  <jh@suse.cz>

	* tree-pass.h (pass_build_cgraph_edges): Declare.
	* cgraphunit.c (record_refernece): Move to cgraphbuild.c
	(visited_nodes): Remove.
	(cgraph_create_edges): Move to cgraphbuild.c; rename to
	build_cgrpah_edges; make visited_nodes local.
	(cgraph_process_new_functions): DO not call initialize_inline_failed.
	(record_references_in_initializer): Move to cgraphbuild.c
	(initialize_inline_failed, rebuild_cgraph_edges,
	pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
	(verify_cgraph_node): Make visited_nodes local.
	(cgraph_analyze_function): Do not call cgraph_create_edges and
	initialize_inline_failed.
	(cgraph_expand_function): Do not call cgraph_lower_function;
	assert that function is already lowered.
	* Makefile.in (cgraphbuild.o): New.
	* passes.c (init_optimization_passes): Add pass_build_cgraph_edges
	at the end of lowering passes.

2007-01-06  Steven Bosscher  <steven@gcc.gnu.org>

	* ifcvt.c (cond_move_convert_if_block): New function, code
	factored out from...
	(cond_move_process_if_block): ...here.  Call the new function
	on the THEN and ELSE blocks.
	(merge_if_block): Do not copy global_live_at_end, merge_blocks
	already takes care of this.

2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/19978
	* tree.h (TREE_OVERFLOW_P): New.
	* c-typeck.c (parser_build_unary_op): Warn only if result
	overflowed and operands did not.
	(parser_build_binary_op): Likewise.
	(convert_for_assignment): Remove redundant overflow_warning.
	* c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.

2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* c-typeck.c (store_init_value): Split over two lines to follow
	the GNU coding style.

2007-01-05  Benjamin Kosnik  <bkoz@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
	__GXX_EXPERIMENTAL_CXX0X__.
	* doc/cpp.texi: Same.

2007-01-05  Richard Guenther  <rguenther@suse.de>

	PR middle-end/27826
	* tree.c (get_narrower): Do not construct COMPONENT_REFs
	with mismatched types.  Instead explicitly build a
	conversion NOP_EXPR.

2007-01-05  Ian Lance Taylor  <iant@google.com>

	* c-common.c (decl_with_nonnull_addr_p): New function.
	(c_common_truthvalue_conversion): Call it.
	* c-typeck.c (build_binary_op): Likewise.
	* c-common.h (decl_with_nonnull_addr_p): Declare.

2007-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR c/30360
	* libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
	denom against 0.0.

2007-01-05  Joel Brobecker  <brobecker@adacore.com>

	* doc/install.texi (Final install): Document the fact that
	the GNAT runtime should not be stripped.

2007-01-04  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c (fold_marked_statements): Update operand caches
	and EH after folding

2007-01-04  Ian Lance Taylor  <iant@google.com>

	* c-common.c (check_function_nonnull): Whitespace fix.

2007-01-04  Jan Hubicka  <jh@suse.cz>

	* tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
	comitted older version of patch.
	(pass_fixup_cfg): Add TODOs to verify flow and statements, dump
	function, celanup cfg and collect garbage.

2007-01-04  Mike Stump  <mrs@apple.com>

	* Makefile.in (mostlyclean): Don't remove libgcc anymore.
	(clean): Likewise.

2007-01-04  Eric Christopher  <echristo@apple.com>

	* libgcc2.c (__bswapsi2): Use SItype.
	(__bswapdi2): Use DItype.
	* libgcc2.h: Update for above.

2007-01-04  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
	mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
	mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
	umulsidi3, umulsidi3adddi, smulsi3_highpart,
	umulsi3_highpart): Make conditional on !arm_arch6.
	(arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
	mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
	mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
	umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
	umulsi3_highpart_v6): New insns.

2007-01-04  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_convert): When casting an expression to void,
	fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
	have a type.  Instead of attempting to build a NOP_EXPR, return
	these "special" trees directly.

2007-01-04  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
	MULT inside MINUS as either argument.  Use rs6000_cost->dmul -
	rs6000_cost->fp not 0 as adjustment for outer NEG.

2007-01-04  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_release_function_body): New function.
	(cgraph_remove_node): Use it.
	* cgraph.h (cgraph_release_function_body): Declare.
	* cgraphunit.c (cgraph_expand_function): Use it.
	* ipa.c (cgraph_remove_unreahchable_nodes): Use it.
	* tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
	is initialized and while compilation of other function is running.
	* tree-optimize.c (execute_free_cfg_annotations): Move code to clear
	statement CFG annotations from here to ...
	* tree-cfg.c (delete_tree_cfg_annotations): ... here.

2007-01-04  Zdenek Dvorak <dvorakz@suse.cz>

	* cfgloop.h (enum li_flags): Make the constants powers of two.

2007-01-04  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c (copy_bb): Insert new statements to statements_to_fold
	set.
	(fold_marked_statements): New function.
	(optimize_inline_calls, tree_function_versioning): Fold new statements.
	* tree-inline.h (copy_body_data): Add statements_to_fold.

2007-01-03  Daniel Jacobowitz  <dan@codesourcery.com>

	* config.gcc: Mention libgcc/config.host.
	* Makefile.in: Update comments mentioning libgcc.
	(LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
	(all.cross, start.encap, rest.encap, rest.cross): Update
	dependencies for libgcc move.
	(libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
	(clean-target, clean-target-libgcc): Delete.
	(srcdirify, GCC_EXTRA_PARTS): New macros.
	(libgcc-support, libgcc.mvars): New rules.
	(distclean): Remove mention of mklibgcc.
	(install): Don't reference INSTALL_LIBGCC.
	(install-common): Don't reference EXTRA_PARTS.
	(install-libgcc, install-multilib): Delete rules.
	* mklibgcc.in: Delete file.
	* doc/configfiles.texi: Don't mention mklibgcc.

	* config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
	* config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
	* config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
	* config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
	(mklibgcc, ldblspecs): Likewise.

	* config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
	(posixpre.def): Use $(T).
	(SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
	(SHLIB_SRC, SHLIB_INSTALL): Delete.
	(SHLIB_LINK): Make dummy.
	* config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.

	* config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.

	* config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
	* config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
	config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
	config/rs6000/t-newas, config/sparc/t-elf: Likewise.

	* configure.ac (all_outputs): Remove mklibgcc.
	* configure: Regenerated.

2007-01-03  Josh Conner  <jconner@apple.com>

	PR middle-end/29683
	* calls.c (compute_argument_addresses): Set stack and stack_slot
	for partial args, too.
	(store_one_arg): Use locate.size.constant for the size when
	generating a save_area.

2007-01-03  Robert Kennedy <jimbob@google.com>

	* tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
	whose definitions are deleted due to basic block merging.

2007-01-03  Paul Brook  <paul@codesourcery.com>

	PR target/16634
	* config/arm/arm.c (output_return_instruction): Pop PC in interrupt
	functions.
	(use_return_insn): Return 0 for Thumb interrupt functions.
	(print_multi_reg): Add rfe argument for IRQ returns.
	(arm_output_epilogue): Pop interrupt return address directly into PC.
	(arm_expand_prologue): Only adjust IRQ return address in Arm mode.

2007-01-03  Paul Brook  <paul@codesourcery.com>

	Merge from sourcerygxx-4_1.
	* config/arm/thumb2.md: New file.
	* config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
	Thumb-2.
	* config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
	* config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
	* config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
	tables.
	(ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
	* config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
	comptibility.
	* config/arm/ieee754-sf.S: Ditto.
	* config/arm/arm.c (thumb_base_register_rtx_p): Rename...
	(thumb1_base_register_rtx_p): ... to this.
	(thumb_index_register_rtx_p): Rename...
	(thumb1_index_register_rtx_p): ... to this.
	(thumb_output_function_prologue): Rename...
	(thumb1_output_function_prologue): ... to this.
	(thumb_legitimate_address_p): Rename...
	(thumb1_legitimate_address_p): ... to this.
	(thumb_rtx_costs): Rename...
	(thumb1_rtx_costs): ... to this.
	(thumb_compute_save_reg_mask): Rename...
	(thumb1_compute_save_reg_mask): ... to this.
	(thumb_final_prescan_insn): Rename...
	(thumb1_final_prescan_insn): ... to this.
	(thumb_expand_epilogue): Rename...
	(thumb1_expand_epilogue): ... to this.
	(arm_unwind_emit_stm): Rename...
	(arm_unwind_emit_sequence): ... to this.
	(thumb2_legitimate_index_p, thumb2_legitimate_address_p,
	thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
	thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
	arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
	thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
	thumb2_output_casesi): New functions.
	(TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
	(FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
	FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
	THUMB2_WORK_REGS): Define.
	(arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
	arm_condexec_mask, arm_condexec_masklen)): New variables.
	(all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
	(arm_override_options): Check new CPU capabilities.
	Set new architecture flag variables.
	(arm_isr_value): Handle v7m interrupt functions.
	(user_return_insn): Return 0 for v7m interrupt functions.  Handle
	Thumb-2.
	(const_ok_for_arm): Handle Thumb-2 constants.
	(arm_gen_constant): Ditto.  Use movw when available.
	(arm_function_ok_for_sibcall): Return false for v7m interrupt
	functions.
	(legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
	(thumb_find_work_register, arm_load_pic_register,
	legitimize_tls_address, arm_address_cost, load_multiple_sequence,
	emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
	print_multi_reg, output_mov_long_double_fpa_from_arm,
	output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
	output_mov_double_fpa_from_arm, output_move_double,
	arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
	output_return_instruction, arm_output_function_prologue,
	arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
	arm_output_mi_thunk, thumb_set_return_address): Ditto.
	(arm_expand_prologue): Handle Thumb-2.  Use arm_save_coproc_regs.
	(arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
	(arithmetic_instr, shift_op): Use arm_shift_nmem.
	(arm_print_operand): Use arm_print_condition.  Handle '(', ')', '.',
	'!' and 'L'.
	(arm_final_prescan_insn): Use extract_constrain_insn_cached.
	(thumb_expand_prologue): Use thumb_set_frame_pointer.
	(arm_file_start): Output directive for unified syntax.
	(arm_unwind_emit_set): Handle stack alignment instruction.
	* config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
	Add v6t2, v7, v7a, v7r and v7m.
	(RETLDM): Add Thumb-2 code.
	(do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
	(TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
	TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
	THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
	ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
	THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
	CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
	ADJUST_INSN_LENGTH): Define.
	(TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
	STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
	BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
	PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
	SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
	TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
	HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
	HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
	REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
	REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
	LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
	GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
	ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
	FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
	PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
	(arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
	* config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
	cortex-m3.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm-protos.h: Update prototypes.
	* config/arm/vfp.md: Enable patterns for Thumb-2.
	(arm_movsi_vfp): Add movw alternative.  Use output_move_vfp.
	(arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
	(thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
	thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
	* config/arm/libunwind.S: Add Thumb-2 code.
	* config/arm/constraints.md: Update include Thumb-2.
	* config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
	* config/arm/ieee754-df.S: Ditto.
	* config/arm/bpabi.S: Ditto.
	* config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
	* config/arm/predicates.md (low_register_operand,
	low_reg_or_int_operand, thumb_16bit_operator): New.
	(thumb_cmp_operand, thumb_cmpneg_operand): Rename...
	(thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
	* config/arm/t-arm-elf: Add armv7 multilib.
	* config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
	Include thumb2.md.
	(UNSPEC_STACK_ALIGN, ce_count): New.
	(arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
	arm_zero_extendsidi2, arm_zero_extendqidi2): New
	insns/expanders.
	* config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
	(thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
	thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
	* config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
	(cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
	thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
	insns.
	* doc/extend.texi: Document ARMv7-M interrupt functions.
	* doc/invoke.texi: Document Thumb-2 new cores+architectures.

2007-01-03  Jakub Jelinek  <jakub@redhat.com>

	* unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
	(struct _Unwind_Context): Rename args_size to flags, remove
	signal_frame field, add a new args_size field and version field.
	(_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
	_Unwind_IsExtendedContext): New inline functions.
	(_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
	Assume by_value array is only present if _Unwind_IsExtendedContext.
	(_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
	_Unwind_IsSignalFrame.
	(__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
	(uw_update_context_1): Use _Unwind_SetSignalFrame.
	(uw_init_context_1): Initialize context->flags to
	EXTENDED_CONTEXT_BIT.
	* config/rs6000/linux-unwind.h (frob_update_context): Use
	_Unwind_SetSignalFrame.

2007-01-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/30353
	* gimplify.c (gimplify_modify_expr_complex_part): Move below
	tree_to_gimple_tuple.  Call tree_to_gimple_tuple when we need
	the value.

2007-01-03  Kazu Hirata  <kazu@codesourcery.com>

	* config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
	REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
	RET, AT_SP): Remove.
	* config/i386/i386.md (*sse_prologue_save_insn): Use return
	instead of RET.

	* alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
	* cfgbuild.c (find_basic_blocks): Likewise.
	* cfgrtl.c (rtl_create_basic_block): Likewise.
	* function.c (temp_slots_at_level): Likewise.
	* reg-stack.c (stack_regs_mentioned): Likewise.
	* regclass.c (allocate_reg_info): Likewise.
	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
	set_bb_for_stmt, move_block_to_fn): Likewise.
	* tree-complex.c (tree_lower_complex): Likewise.
	* vec.h (VEC_safe_grow_cleared): New.

	* cgraphunit.c, tree-ssa-alias.c: Fix comment typos.

2007-01-03  Zdenek Dvorak <dvorakz@suse.cz>

	* loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
	* tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
	to loop_version.
	* cfgloopmanip.c (scale_loop_frequencies): Export.
	(loopify): Scale the frequencies by prescribed coefficients.
	(set_zero_probability): New function.
	(duplicate_loop_to_header_edge): Improve updating of frequencies.
	(lv_adjust_loop_entry_edge, loop_version): Set probabilities
	and frequencies according to arguments.
	* tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
	correctly.
	* cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
	* modulo-sched.c (sms_schedule): Set probabilities for entering
	versioned loop correctly.
	* tree-vect-transform.c (vect_transform_loop): Ditto.
	* cfgloop.h (loopify, loop_version): Declaration changed.
	(scale_loop_frequencies): Declared.

2007-01-02  Jan Hubicka  <jh@suse.cz>

	* cgraph.c: Include tree-flow.h
	(cgraph_add_new-function): Handle IPA_SSA mode; execute
	early_local_passes.
	* cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
	* tree-pass.h (pass_all_early_optimizations): Declare.
	* cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
	early_local_passes.
	(cgraph_analyze_function): Do early_local_passes.
	* tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
	Do not add referenced vars.
	* tree-optimize.c (gate_all_optimizations): Do not execute when not in
	SSA form.
	(gate_all_early_local_passes): New gate.
	(pass_early_local_passes): Use new gate.
	(execute_early_local_optimizations): New functions.
	(gate_all_early_optimizations): New gate.
	(pass_all_early_optimizations): New pass.
	(execute_free_datastructures): Free SSA only when initialized.
	(gate_init_datastructures): Init only when optimizing.
	(tree_lowering_passes): Do early local passes when called late.
	* tree-profile.c (do_tree_profiling): Don't profile functions added
	late.
	(do_early_tree_profiling, pass_early_tree_profile): Kill.
	* tree-cfg.c (update_modified_stmts): Do not update when operands are
	not active.
	* passes.c (init_optimizations_passes): Reorder so we go into SSA
	during early_local_passes.
	* Makefile.in (cgraph.o): Add dependency on tree-flow.h.


2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>

	* Makefile.in: Update copyright year.

2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>

	* Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
	in $(lang_checks) and check-consistency targets.

2007-01-02  Jan Hubicka  <jh@suse.cz>

	* tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
	Do not add referenced vars.
	* tree-cfg.c (update_modified_stmts): Do not update when SSA operands
	are not active.
	* passes.c (init_optimization_passes): Put mudflap_2 after
	free_datastructures.

2007-01-02  Jan Hubicka  <jh@suse.cz>

	* tree-optimize (execute_fixup_cfg): Set after_inlining flag.
	Set NOTHROW flag on call statements proved to be nothrow.
	Update statement of local calls so new pure/const functions are
	updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
	goto receivers.
	(tree_rest_of_compilation): Register hooks and initialize bitmap
	early. Do not set after_inlining flag.

2007-01-02  Steve Ellcey  <sje@cup.hp.com>

	* sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to
	HOST_BITS_PER_LONGLONG

2007-01-02  Manuel Lopez-Ibanez <manu@gcc.gnu.org>

	PR c/19977
	* c-typeck.c (store_init_value): Don't emit pedantic overflow
	warning for non-static initializers.

2007-01-02  Steven Bosscher  <steven@gcc.gnu.org>

	* config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
	m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
	rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
	Always use set_unique_reg_note to add REG_EQUAL notes.

2007-01-02  Kazu Hirata  <kazu@codesourcery.com>

	Revert:
	2007-01-02  Kazu Hirata  <kazu@codesourcery.com>

	* alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
	* cfgbuild.c (find_basic_blocks): Likewise.
	* cfgrtl.c (rtl_create_basic_block): Likewise.
	* function.c (temp_slots_at_level): Likewise.
	* reg-stack.c (stack_regs_mentioned): Likewise.
	* regclass.c (allocate_reg_info): Likewise.
	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
	set_bb_for_stmt, move_block_to_fn): Likewise.
	* tree-complex.c (tree_lower_complex): Likewise.
	* vec.h (VEC_safe_grow_cleared): New.

2007-01-02  Ian Lance Taylor  <iant@google.com>

	* c-common.c (c_common_truthvalue_conversion): When warning about
	using an assignment as a truth value, set TREE_NO_WARNING.

2007-01-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR middle-end/7651
	* c.opt (Wold-style-declaration): New.
	* doc/invoke.texi (C-only Warning Options): New.
	(Wold-style-declaration): Document it.
	(Wextra): Enabled by -Wextra.
	* c-opts.c (c_common_post_options): Enabled by -Wextra.
	* c-decl.c (declspecs_add_scspec): Replace -Wextra with
	-Wold-style-declaration.

2007-01-02  Kazu Hirata  <kazu@codesourcery.com>

	* alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
	* cfgbuild.c (find_basic_blocks): Likewise.
	* cfgrtl.c (rtl_create_basic_block): Likewise.
	* function.c (temp_slots_at_level): Likewise.
	* reg-stack.c (stack_regs_mentioned): Likewise.
	* regclass.c (allocate_reg_info): Likewise.
	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
	set_bb_for_stmt, move_block_to_fn): Likewise.
	* tree-complex.c (tree_lower_complex): Likewise.
	* vec.h (VEC_safe_grow_cleared): New.

2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>

	* c-common.c (c_common_nodes_and_builtins): Since variants of
	void_type_node get built before it is given a name, we need to
	give those variants the name, too.
	(complete_array_type): We need to work with the canonical main
	type of the array, from which we will build the qualified version.
	* params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
	* print-tree.c (print_node): Display canonical type information
	for each type.
	* stor-layout.c (layout_type): When we don't know the
	alignment of a type for which we're building an array, we end up
	guessing wrong, so make the type require structural equality.
	* tree.c (make_node_stat): When we build a new type, it is its
	own canonical type.
	(build_type_attribute_qual_variant): When building an attribute
	variant, its canonical type is the non-attribute variant. However,
	if the attributes are target-dependent and they differ, we need to
	use structural equality checks for this type.
	(build_qualified_type): A qualified type is not equivalent to its
	unqualified variant; set the canonical type appropriately.
	(build_distinct_type_copy): When building a distinct type from
	another type, the new type is its own canonical type.
	(build_variant_type_copy): When building a new type variant, we
	assume that it is equivalent to the original type.
	(build_pointer_type_for_mode): When building a pointer type, also
	build a canonical type pointer.
	(build_reference_type_for_mode): When building a reference type,
	also build a canonical type reference.
	(build_index_type): When we can't hash an index type (e.g.,
	because its maximum value is negative), the index type requires
	structural equality tests.
	(build_array_type): Build the canonical form of an array type.
	(build_function_type): Function types require structural equality,
	because they contain default arguments, attributes, etc.
	(build_method_type_directly): Ditto for method types.
	(build_offset_type): Build the canonical offset type.
	(build_complex_type): Build the canonical vector type.
	(make_vector_type): Build the canonical vector type.
	* tree.h (TYPE_CANONICAL): New.
	(TYPE_STRUCTURAL_EQUALITY_P): New.
	(SET_TYPE_STRUCTURAL_EQUALITY): New.
	(struct tree_type): Added "canonical" field.
	* params.h (VERIFY_CANONICAL_TYPES): New.
	* doc/c-tree.texi (TYPE_CANONICAL): Document.
	(TYPE_STRUCTURAL_EQUALITY_P): Document.
	(SET_TYPE_STRUCTURAL_EQUALITY): Document.
	* doc/invoke.texi (verify-canonical-types): Document --param
	parameter for verifying canonical types.

2007-01-02  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
	powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
	powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
	powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
	tm_file.
	* config/rs6000/e500.h: New.
	* config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
	TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
	Remove.
	* config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
	TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
	TARGET_E500_DOUBLE): Remove.
	* config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
	TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
	* config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
	* config/rs6000/rs6000.c (rs6000_override_options): Use
	CHECK_E500_OPTIONS.

2007-01-02  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
	TARGET_E500_DOUBLE), not TARGET_E500, for %y.
	(rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
	rs6000_emit_cmove): Don't check TARGET_E500.
	* config/rs6000/rs6000.md (bunordered, bordered, sunordered,
	sordered): Don't check TARGET_E500.

2007-01-01  Eric Christopher  <echristo@apple.com>

	* config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
	HARD_REGISTER_NUM_P.

2007-01-01  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
	"X eq/ne (C1^C2)".  Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
	has no side-effects.  Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
	eq/ne Y".

2007-01-01  Mike Stump  <mrs@apple.com>

	* configure.ac: Remove support for building with Apple's gcc-3.1.

2007-01-02  Joseph Myers  <joseph@codesourcery.com>

	PR middle-end/30311
	* caller-save.c (add_stored_regs): Only handle SUBREGs if inner
	REG is a hard register.  Do not modify REG before calling
	subreg_nregs.
	* rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
	multiple of the size of YMODE for certain lowpart cases.

2007-01-01  Andrew Pinski  <pinskia@gmail.com>

	PR middle-end/30253
	* gimplify (voidify_wrapper_expr): Update for
	GIMPLE_MODIFY_STMT.

2007-01-01  Andreas Schwab  <schwab@suse.de>

	PR target/29166
	* config/ia64/ia64.c (ia64_compute_frame_size): Account space for
	save of BR0 in extra_spill_size instead of spill_size.
	(ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
	area.
	(ia64_expand_epilogue): Restore BR0 from its new location.

2007-01-01  Andrew Pinski  <pinskia@gmail.com>

	* gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
	Use a temporary variable if the left hand side is not a gimple
	register.

2007-01-01  Andrew Pinski  <pinskia@gmail.com>

	* gimplify.c (gimplify_return_expr): Make the temporary variable
	for the return expression, a gimple register variable.

2007-01-01  Jan Hubicka  <jh@suse.cz>

	* emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
	INSN_LIST.

2007-01-01  Mike Stump  <mrs@apple.com>

	* configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
	.literal16.
	* config/darwin.c (machopic_select_rtx_section): Use
	HAVE_GAS_LITERAL16.
	(darwin_mergeable_constant_section): Likewise.
	* configure: Regenerate.
	* config.in: Regenerate.

2007-01-01  Jan Hubicka  <jh@suse.cz>
	    Andrew Pinski  <pinskia@gmail.com>

	* cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
	before starting IPA passes.


Copyright (C) 2007 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
