2008-12-31  Uros Bizjak  <ubizjak@gmail.com>

	* sched-deps.c (sched_analyze_2) [UNSPEC_VOLATILE]: Flush pending
	memory loads and stores.

2008-12-31  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/38505
	* tree-ssa-ccp.c (may_propagate_address_into_dereference): Return
	false if ADDR's operand has incomplete type.

	Revert:
	2008-12-15  Jakub Jelinek  <jakub@redhat.com>
	PR middle-end/38505
	* tree-ssa.c (useless_type_conversion_p_1): Return
	false if inner_type is incomplete and outer_type is complete.

2008-12-31  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/38676
	* gimplify.c (gimple_regimplify_operands): For GIMPLE_SWITCH
	only regimplify switch index.

2008-12-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38645
	* tree-ssa-ccp.c (fold_gimple_assign): Use the correct pointer
	type.
	* tree-ssa-dom.c (cprop_operand): Simplify.  Do not propagate
	volatileness changing operands.

2008-12-30  Steven Bosscher  <steven@gcc.gnu.org>

	* tree-cfg.c (verify_eh_throw_stmt_node): Return nonzero,
	to visit all EH statement and fix EH checking.

2008-12-31  Seongbae Park  <seongbae.park@gmail.com>

	Revert:
	2008-12-29  Seongbae Park  <seongbae.park@gmail.com>
	* tree-profile.c (tree_init_ic_make_global_vars): Make static
	variables TLS.

2008-12-30  Andrew Pinski  <pinskia@gmail.com>

	PR middle-end/38661
	* tree-switch-conversion.c (build_constructors): Test for wrapping of
	pos case.

2008-12-30  Steven Bosscher  <steven@gcc.gnu.org>

	PR middle-end/38584
	* ipa-inline.c (compute_inline_parameters): When not optimizing,
	don't compute the inline parameters, just set them to 0 instead.

2008-12-30  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/38572
	* tree-vrp.c (vrp_visit_phi_node): Look out for invalid ranges
	and change them to VARYING.

2008-12-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/38564
	* fold-const.c (fold_comparison): Use the correct result type.

2008-12-30  Dorit Nuzman  <dorit@il.ibm.com>
	    Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/38529
	* tree-vect-transform (vect_transform_stmt): Handle inner-loop stmts
	whose DEF is used in the loop-nest that is being vectorized, but
	outside the immediately enclosing loop.

2008-12-29  Seongbae Park  <seongbae.park@gmail.com>

	* tree-profile.c (tree_init_ic_make_global_vars): Make static
	variables TLS.

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

	PR c++/36191
	* tree-complex.c (expand_complex_libcall): Call
	maybe_clean_or_replace_eh_stmt and gimple_purge_dead_eh_edges
	instead of passing true as 3rd argument to gsi_replace.

2008-12-28  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/38652
	* dse.c: Include target.h.
	* Makefile.in (dse.o): Depend on $(TARGET_H).

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

	PR driver/38381
	* gcc.c (process_command): Accept also -b with configuration name
	in the next argument.
	* doc/invoke.texi (-b): Document that no hyphen is required if
	configuration name is in the next argument after -b.

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

	PR middle-end/38641
	* gimple-pretty-print.c (dump_binary_rhs): Print
	VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR,
	VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR, VEC_PACK_FIX_TRUNC_EXPR,
	VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR
	VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR similarly
	to COMPLEX_EXPR, MIN_EXPR and MAX_EXPR.

	PR middle-end/38633
	* tree-cfg.c (replace_block_vars_by_duplicates): Only call
	replace_by_duplicate_decl for VAR_DECLs or CONST_DECLs.

2008-12-24  Kazu Hirata  <kazu@codesourcery.com>

	* Makefile.in (GTFILES): Add $(srcdir)/expr.h.
	* expr.h: Fix the declaration of block_clear_fn.

2008-12-23  Andrew Pinski  <pinski@gmail.com>

	PR middle-end/38590
	* fold-const.c (fold_binary): Call fold_convert on arguments to
	fold_build2 for negative divide optimization.

2008-12-23  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/31150
	* dse.c (struct store_info): Add const_rhs field.
	(clear_rhs_from_active_local_stores): Clear also const_rhs.
	(record_store): Try also cselib_expand_value_rtx to get a constant.
	(find_shift_sequence, get_stored_val): Use const_rhs instead of
	rhs if worthwhile.
	* cselib.c (cselib_record_sets): If !cselib_record_memory and
	there is just one set from read-only MEM, look at REG_EQUAL or
	REG_EQUIV note.

	* dse.c (struct store_info): Add redundant_reason field.
	(record_store): When storing the same constant as has been stored by
	an earlier store, set redundant_reason field to the earlier store's
	insn_info_t.  Don't delete cannot_delete insns.
	(find_shift_sequence): Remove read_info argument, add read_mode
	and require_cst arguments.  Return early if require_cst and
	constant wouldn't be returned.
	(get_stored_val): New function.
	(replace_read): Use it.
	(scan_insn): Put even cannot_delete insns with exactly 1 store
	into active_local_stores.
	(dse_step1): Don't delete cannot_delete insns.  Remove redundant
	constant stores if contains_cselib_groups and earlier store storing
	the same value hasn't been eliminated.
	(dse_step6): Renamed to dse_step7.  New function.
	(dse_step7): Renamed from dse_step6.
	(rest_of_handle_dse): Call dse_step6 and dse_step7 at the end.
	* cselib.c (cselib_expand_value_rtx): Don't wrap CONST_INTs
	into CONST unless really necessary.  Handle SUBREG, unary,
	ternary, bitfield and compares specially, to be able to simplify
	operations on constants.
	(expand_loc): Try to optimize LO_SUM.

	* dse.c (get_call_args): New function.
	(scan_insn): Don't handle BUILT_IN_BZERO.  For memset, attempt
	to get call arguments and if successful and both len and val are
	constants, handle the call as (mem:BLK) (const_int) store.

	* dse.c (struct store_info): Add is_large bool field, change
	positions_needed into a union of a bitmask and bitmap + count.
	(free_store_info): Free bitmap if is_large.
	(set_usage_bits): Don't look at stores where
	offset + width >= MAX_OFFSET.
	(set_position_unneeded, set_all_positions_unneeded,
	any_positions_needed_p, all_positions_needed_p): New static inline
	functions.
	(record_store): Handle BLKmode stores of CONST_INT, if
	MEM_SIZE is set on the MEM.  Use the new positions_needed
	accessor inlines.
	(replace_read): Handle reads from BLKmode CONST_INT stores.
	(check_mem_read_rtx): Use all_positions_needed_p function.
	(dse_step1): Free large positions_needed bitmaps and clear is_large.

	* dse.c (struct store_info): Change begin and end types to
	HOST_WIDE_INT.

	* dse.c (record_store): Fix check for unused store.

	* expr.c (block_clear_fn): No longer static.
	* expr.h (block_clear_fn): Declare.
	* dse.c (scan_insn): Memset and bzero can just read their arguments.

	* config/i386/i386.c (expand_setmem_via_rep_stos): Add ORIG_VALUE
	argument.  If ORIG_VALUE is const0_rtx and COUNT is constant,
	set MEM_SIZE on DESTMEM.
	(ix86_expand_setmem): Adjust callers.

	PR target/38488
	* expr.h (get_mem_align_offset): New prototype.
	* emit-rtl.c (get_mem_align_offset): New function.
	* config/i386/i386.c (expand_movmem_via_rep_mov): Set MEM_SIZE
	correctly.
	(expand_constant_movmem_prologue, expand_constant_setmem_prologue):
	New functions.
	(ix86_expand_movmem): Optimize if COUNT_EXP
	is constant, desired_align > align and dst & (desired_align - 1)
	is computable at compile time.
	(ix86_expand_setmem): Likewise.

	* builtins.c (get_memory_rtx): Try to derive MEM_ATTRS from not yet
	resolved SAVE_EXPR or POINTER_PLUS_EXPR.

2008-12-22  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/elf.h (ASM_OUTPUT_EXTERNAL): New macro.

	PR target/34571
	* config/alpha/predicates.md (symbolic_operand): Return 1 for a
	label_ref with an offset.

2008-12-21  Andrew Pinski  <pinskia@gmail.com>

	PR target/38300
	* configure: Regenerate.

2008-12-21  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips-dsp.md (mips_lbux): Turn into a define_expand,
	changing operand 1 to a pmode_register_operand.
	(mips_lhx, mips_lwx): Likewise.
	(mips_lbux_<mode>, mips_lhx_<mode>, mips_lwx_<mode>): New patterns.
	* config/mips/mips.c (mips_prepare_builtin_arg): Get the mode of
	the value from the argument expression.

2008-12-21  Jan Hubicka  <jh@suse.cz>
	    Kai Tietz  <kai.tietz@onevision.com>

	* i386.md (UNSPEC_MS_TO_SYSV_CALL): New constant.
	(call_1_rex64_ms_sysv, call_value_0_rex64_ms_sysv,
	call_value_1_rex64_ms_sysv): New patterns.
	* i386.c (function_arg_ms_64): Pass magical value of -2 as callarg.
	(ix86_expand_call): Emit extra clobbers for ms->sysv ABI calls.

2008-12-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_pad_noreturn): New static function.
	(alpha_reorg): Call alpha_pad_noreturn.

2008-12-21  Denis Chertykov  <denisc@overta.ru>

	* config/avr/avr.md ("andsi3"): Fix wrong cc attribute.

2008-12-20  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/37610
	* configure.ac (gcc_cv_as_cfi_advance_working): Fall back to 'no'
	if readelf is nowhere to be found.
	* configure: Regenerate.

2008-12-19  Andrew Haley  <aph@redhat.com>

	* builtins.c, tree-ssa-loop-ivopts.c, fixed-value.c:
	Fix comments.

2008-12-19  Richard Earnshaw  <rearnsha@arm.com>

	PR target/38548
	* arm/t-linux (LIB1ASMFUNCS): Add _arm_addsubdf3 and _arm_addsubsf3.
	* arm/lib1funcs.asm (clzsi2): Use RET macro for return instruction.

2008-12-19  Richard Earnshaw  <rearnsha@arm.com>

	PR bootstrap/38578
	* arm.c (load_multiple_sequence): Initialize ORDER array.
	(store_multiple_sequence): Likewise.
	(output_move_double): Make reg0 unsigned.
	(arm_output_epilogue): Make amount unsigned.
	(arm_expand_prologue): Move declaration of dwarf before block
	statements.

2008-12-19  Steve Ellcey  <sje@cup.hp.com>

	* df-scan.c (df_hard_reg_init): Move declaration of i.

2008-12-19  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/37739
	* config.host: For powerpc*-*-linux* host with 32-bit GCC,
	use rs6000/x-linux-relax snippet if ld is new enough,
	otherwise use rs6000/x-linux-O1.
	* config/rs6000/x-linux-relax: New file.
	* config/x-cflags-O1: New file.

2008-12-18  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_generate_compare): Condition
	choice of e500 comparison instructions on flag_finite_math_only &&
	!flag_trapping_math, not flag_unsafe_math_optimizations.
	* config/rs6000/rs6000.md (abstf2): Condition choice of e500
	instructions on flag_finite_math_only && !flag_trapping_math, not
	flag_unsafe_math_optimizations.
	(bltgt, sltgt): Disable for TARGET_HARD_FLOAT && !TARGET_FPRS.
	* config/rs6000/spe.md (cmpsfeq_gpr, tstsfeq_gpr, cmpsfgt_gpr,
	tstsfgt_gpr, cmpsflt_gpr, tstsflt_gpr, cmpdfeq_gpr, tstdfeq_gpr,
	cmpdfgt_gpr, tstdfgt_gpr, cmpdflt_gpr, tstdflt_gpr, cmptfeq_gpr,
	tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
	Condition choice of comparison instructions on
	flag_finite_math_only && !flag_trapping_math, not
	flag_unsafe_math_optimizations.

2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2008-12-18  Jan Hubicka  <jh@suse.cz>
	    Kai Tietz  <kai.tietz@onevision.com>

	* df-scan.c (persistent_obstack, df_invalidated_by_call): Remove.
	(df_scan_start_dump, df_get_call_refs, df_hard_reg_init): Rename
	df_invalidated_by_call to invalidated_by_call_regset.
	* df.h (df_invalidated_by_call): Remove.
	* regclass.c (regs_invalidated_by_call_regset, persistent_obstack):
	New variables.
	(init_reg_sets_1): Initialize regs_invalidated_by_call_regset.
	(globalize_reg): Likewise.
	* df-problems.c (df_rd_local_compute, df_lr_confluence_n,
	df_byte_lr_alloc): Rename df_invalidated_by_call to
	invalidated_by_call_regset.
	* basic-block.h (regs_invalidated_by_call_regset): Declare.

2008-12-18  Jan Hubicka  <jh@suse.cz>
	    Kai Tietz  <kai.tietz@onevision.com>

	* ira-cost.c (copy_cost): Lazilly initialize move_cost if needed.

2008-12-18  Jan Hubicka  <jh@suse.cz>
	    Kai Tietz  <kai.tietz@onevision.com>

	* i386.h (CONDITIONAL_REGISTER_USAGE): Initialize for current
	function ABI.
	* i386.c (ix86_call_abi_override): Do not trigger target re-init and
	do not try to modify call used regs.
	(ix86_maybe_switch_abi): New function.
	(TARGET_EXPAND_TO_RTL_HOOK): New macro.

2008-12-18  Kenneth Zadeck  <zadeck@naturalbridge.com>

	PR rtl-optimization/37922
	* dse.c (bb_info): Added regs_live field.
	(look_for_hardregs): New function.
	(replace_read): Added regs_live parameter and code to check that
	shift sequence does not clobber live hardregs.
	(check_mem_read_rtx): Added parameter to replace_read.
	(dse_step1): Added regs_live bitmap and initialize it.
	(rest_of_handle_dse): Added DF_NOTES problem and earlier call to
	df_analyze.
	* df-problems.c Renamed to df_simulate_initialize_backwards.
	(df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards.
	(df_simulate_artificial_refs_at_top): Renamed to
	df_simulate_finalize_backwards.
	(df_simulate_initialized_forwards, df_simulate_one_insn_forwards,
	df_simulate_finalize_backwards): New functions.
	* df.h (df_simulate_artificial_refs_at_end): Renamed to
	df_simulate_initialize_backwards.
	(df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards.
	(df_simulate_artificial_refs_at_top): Renamed to
	df_simulate_finalize_backwards.
	(df_simulate_initialized_forwards, df_simulate_one_insn_forwards,
	df_simulate_finalize_backwards): New functions.
	* ra-conflict.c (global_conflicts): Renamed
	df_simulate_artificial_refs_at_end to
	df_simulate_initialize_backwards.
	* sel-sched.c (propagate_lv_set): Renamed df_simulate_one_insn to
	df_simulate_one_insn_backwards.
	* ifcvt.c (dead_or_predicable): Renamed
	df_simulate_artificial_refs_at_end to
	df_simulate_initialize_backwards. Renamed df_simulate_one_insn to
	df_simulate_one_insn_backwards.
	* recog.c (peephole2_optimize): Ditto.
	* rtl-factoring (collect_pattern_seqs, clear_regs_live_in_seq): Ditto.

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

	PR middle-end/38533
	* tree-ssa-reassoc.c (remove_visited_stmt_chain): New function.
	(rewrite_expr_tree): Add moved argument, move stmts together if
	needed.  Call remove_visited_stmt_chain.
	(linearize_expr_tree): Don't move stmts here.
	(reassociate_bb): Call remove_visited_stmt_chain if num ops is 1.
	Adjust rewrite_expr_tree caller.

	PR middle-end/38505
	* tree-ssa.c (useless_type_conversion_p_1): Return
	false if inner_type is incomplete and outer_type is complete.

2008-12-17  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/install.texi (Prerequisites): Document PPL and CLooG-PPL
	dependences and the configure options.
	(Configuration): Document --with-cloog, --with-ppl, --with-cloog-lib,
	--with-ppl-lib, --with-cloog-incude, --with-ppl-include.

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

	PR middle-end/38556
	* calls.c (expand_call): Check outgoing_reg_parm_stack_space
	only if REG_PARM_STACK_SPACE is defined.

2008-12-17  Jan Hubicka  <jh@suse.cz>
	    Kai Tietz  <kai.tietz@onevision.com>

	* calls.c (expand_call): Do not sibcall if
	outgoing_reg_parm_stack_space does not match.

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

	* config/avr/avr.c (avr_mcu_t): Add attiny87, attiny327, at90pwm81,
	atmega16m1, at90scr100, atmega128rfa1, m3000f, m3000s and m3001b
	devices.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

2008-12-16  Hariharan Sandanagobalane  <hariharan@picochip.com>

	PR target/38842
	* config/picochip/picochip.opt (mae): Squeezed the comments onto one
	line.

2008-12-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_ld_hidden): Sun ld on Solaris 9 and up
	supports hidden.
	* configure: Regenerate.

2008-12-16  Richard Earnshaw  <rearnsha@arm.com>

	PR target/37436
	* arm.c (arm_legitimate_index): Only accept addresses that are in
	canonical form.
	* predicates.md (arm_reg_or_extendqisi_mem_op): New predicate.
	* arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate
	for operand1.
	(extendqisi2): Likewise.
	(arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op
	predicate for operand1.
	
2008-12-15  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.c (mips_output_conditional_branch): Assert that
	openrands[1] is a CODE_LABEL.

2008-12-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_expand_builtin_direct): Set TARGET to
	the result of mips_prepare_builtin_target.

2008-12-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_abicalls
	if TARGET_ABICALLS is true.

2008-12-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.md (move_doubleword_fpr<mode>): Use
	TARGET_FLOAT64 && !TARGET_64BIT to detect the mxhc1 case.

2008-12-15  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (picochip_override_options): Disable CFI
	asm and change the signature of brev and byteSwap functions to use
	unsigned values.
	* config/picochip/picochip.md (commsTestPort): This is a complex
	instruction and should not be vliwed. Don't set insn type.

2008-12-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
	* config/s390/s390.c (s390_swap_cmp): New function.
	(s390_non_addr_reg_read_p): New function.
	(s390_z10_optimize_cmp): New function.
	(s390_reorg): Added call to s390_optimize_cmp.
	* config/s390/s390.md (nop1): New insn.

2008-12-12  Rainer Emrich  <r.emrich@de.tecosim.com>

	PR bootstrap/38383
	* pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Don't hardcode search path
	for the milli.a library.

2008-12-12  Andrew Pinski  <andrew_pinskia@playstation.sony.com>
	    Peter Bergner  <bergner@vnet.ibm.com>

	PR target/24779
	* config/rs6000/rs6000.md (call_indirect_aix32): Move the load of the
	TOC into the call pattern.
	(call_indirect_aix64): Likewise.
	(call_value_indirect_aix32): Likewise.
	(call_value_indirect_aix64): Likewise.
	(call_indirect_nonlocal_aix32_internal): New insn and split patterns
	to split off the load of the TOC.
	(call_indirect_nonlocal_aix32): Enable only after reload.
	(call_indirect_nonlocal_aix64_internal): New insn and split patterns
	to split off the load of the TOC.
	(call_indirect_nonlocal_aix64): Enable only after reload.
	(call_value_indirect_nonlocal_aix32_internal): New insn and split
	patterns to split off the load of the TOC.
	(call_value_indirect_nonlocal_aix32): Enable only after reload.
	(call_value_indirect_nonlocal_aix64_internal): New insn and split
	patterns to split off the load of the TOC.
	(call_value_indirect_nonlocal_aix64): Enable only after reload.

2008-12-12  Andreas Schwab  <schwab@suse.de>

	Revert:
	2008-12-12  Andreas Schwab  <schwab@suse.de>
	* cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
	a BARRIER insn.

2008-12-12  Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/32044
	* tree-scalar-evolution.h (expression_expensive_p): Declare.
	* tree-scalar-evolution.c (expression_expensive_p): New function.
	(scev_const_prop): Avoid introducing expensive expressions.
	* tree-ssa-loop-ivopts.c (may_eliminate_iv): Ditto.

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

	PR middle-end/38409
	* graphite.c (nb_reductions_in_loop): Use simple_iv.

2008-12-12  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* config/i386/x86intrin.h: New header file to support all x86
	intrinsics
	* config.gcc (extra_headers): For x86 and x86-64, add x86intrin.h

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

	PR target/38402
	* gcc/doc/md.texi: Remove Y and document Yz, Y2, Yi and Ym
	constraints for x86.

2008-12-12  Andreas Schwab  <schwab@suse.de>

	* cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on
	a BARRIER insn.

2008-12-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/sync.md (memory_barrier): Remove mem:BLK from operands.
	Use Pmode for scratch reg.
	(*mb_internal): Use (match_dup 0) for unspec operand.

2008-12-12  Alexandre Oliva  <aoliva@redhat.com>

	* tree-vrp.c (extract_range_from_binary_expr): Don't shift by
	floor_log2 of zero.  Negate widened zero.

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

	* config/fp-bit.c (nan): Rename from this ...
	(makenan): ... to this.

2008-12-11  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.md (*branch_bit<bbv><mode>,
	*branch_bit<bbv><mode>_inverted): Renumber operands so that the
	label becomes operands[1].

2008-12-11  Harsha Jagasia  <harsha.jagasia@amd.com>

	PR tree-optimization/38446
	* graphite.c (register_bb_in_sese): New.
	(bb_in_sese_p): Check if bb belongs to sese region by explicitly
	looking at the bbs in the region.
	* graphite.h (sese): Add region_basic_blocks pointer set to
	structure and initialize at the time of defining new scop.

2008-12-11  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE.
	(find_params_in_bb): Do not free data refs.
	(free_graphite_bb): Add FIXME on disabled free_data_refs.

2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (struct ivtype_map_elt): New.
	(debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map,
	new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts,
	gcc_type_for_cloog_iv): New.
	(loop_iv_stack_patch_for_consts): Use the type of the induction
	variable from the original loop, except for the automatically
	generated loops, i.e., in the case of a strip-mined loop, in
	which case there is no original loop: in that case just use
	integer_type_node.
	(new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES.
	(free_graphite_bb): Free GBB_CLOOG_IV_TYPES.
	(clast_name_to_gcc): Accept params to be NULL.
	(clast_to_gcc_expression): Take an extra parameter for the type.
	Convert to that type all the expressions built by this function.
	(gcc_type_for_clast_expr, gcc_type_for_clast_eq): New.
	(graphite_translate_clast_equation): Compute the type of the
	clast_equation before translating its LHS and RHS.
	(clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New.
	(graphite_create_new_loop): Compute the type of the induction
	variable before translating the lower and upper bounds and before
	creating the induction variable.
	(rename_variables_from_edge, rename_phis_end_scop): New.
	(copy_bb_and_scalar_dependences): Call rename_phis_end_scop.
	(sese_add_exit_phis_edge): Do not use integer_zero_node.
	(find_cloog_iv_in_expr, compute_cloog_iv_types_1,
	compute_cloog_iv_types): New.
	(gloog): Call compute_cloog_iv_types before starting the
	translation of the clast.

	* graphite.h (struct graphite_bb): New field cloog_iv_types.
	(GBB_CLOOG_IV_TYPES): New.
	(debug_ivtype_map): Declared.
	(oldiv_for_loop): New.

2008-12-10  Tobias Grosser  <grosser@fim.uni-passau.de>

	PR middle-end/38459
	* graphite.c (new_scop): Initialize SCOP_ADD_PARAMS.
	(param_index): Assert if parameter is not know after parameter
	detection.
	(find_params_in_bb): Detect params directly in GBB_CONDITIONS.
	(find_scop_parameters): Mark, that we have finished parameter
	detection.
	(graphite_transform_loops): Move condition detection before parameter
	detection.
	* graphite.h (struct scop): Add SCOP_ADD_PARAMS.

2008-12-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR testsuite/35677
	* emutls.c (__emutls_get_address): Make sure offset is really zero
	before initializing the object's offset.

2008-12-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/38253
	* gimplify.c (gimplify_init_constructor): Don't force constructor
	into memory if there is just one nonzero element.

2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>

	Fix testsuite/gfortran.dg/graphite/id-4.f90.
	* graphite.c (scan_tree_for_params): Do not compute the multiplicand
	when not needed.

2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (build_scops_1): Initialize open_scop.exit
	and sinfo.last.

2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>
	    Harsha Jagasia  <harsha.jagasia@amd.com>

	PR middle-end/37852
	PR middle-end/37883
	PR middle-end/37928
	PR middle-end/37980
	PR middle-end/38038
	PR middle-end/38039
	PR middle-end/38073
	PR middle-end/38083
	PR middle-end/38125

	* tree-phinodes.c (remove_phi_nodes): New, extracted from...
	* tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
	... here.
	* tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
	* Makefile.in (graphite.o): Depend on value-prof.h.
	(graphite.o-warn): Removed -Wno-error.
	* tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list
	to be a NULL pointer.  Call update_stmt.  Return the newly created
	cannonical induction variable.

	* graphite.h (debug_rename_map): Declared.  Fix some comments.

	* graphite.c: Reimplement the code generation from graphite to gimple.
	Include value-prof.h.
	(loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
	(get_old_iv_from_ssa_name): Removed.
	(graphite_stmt_p): New.
	(new_graphite_bb): Test for useful statements before building a
	graphite statement for the basic block.
	(free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
	in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without reason.
	(recompute_all_dominators, graphite_verify,
	nb_reductions_in_loop, graphite_loop_normal_form): New.
	(scop_record_loop): Call graphite_loop_normal_form.
	(build_scop_loop_nests): Iterate over all the blocks of the
	function instead of relying on the incomplete information from
	SCOP_BBS.  Return the success of the operation.
	(find_params_in_bb): Use the data from GBB_DATA_REFS.
	(add_bb_domains): Removed.
	(build_loop_iteration_domains): Don't call add_bb_domains.
	Add the iteration domain only to the basic blocks that have been
	translated to graphite.
	(build_scop_conditions_1): Add constraints only if the basic
	block have been translated to graphite.
	(build_scop_data_accesses): Completely disabled until data
	dependence is correctly implemented.
	(debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
	(remove_all_edges_1, remove_all_edges): Removed.
	(get_new_name_from_old_name): New.
	(graphite_rename_variables_in_stmt): Renamed.
	rename_variables_in_stmt.  Call get_new_name_from_old_name.
	Use replace_exp	and update_stmt.
	(is_old_iv): Renamed is_iv.
	(expand_scalar_variables_stmt): Extra parameter for renaming map.
	Use replace_exp	and update_stmt.
	(expand_scalar_variables_expr): Same.  Use the map to get the
	new names for the renaming of induction variables and for the
	renaming of variables after a basic block has been copied.
	(expand_scalar_variables): Same.
	(graphite_rename_variables): Renamed rename_variables.
	(move_phi_nodes): Removed.
	(get_false_edge_from_guard_bb): New.
	(build_iv_mapping): Do not insert the induction variable of a
	loop in the renaming iv map if the basic block does not belong
	to that loop.
	(register_old_new_names, graphite_copy_stmts_from_block,
	copy_bb_and_scalar_dependences): New.
	(translate_clast): Heavily reimplemented: copy basic blocks,
	do not move them.  Finally, in call cleanup_tree_cfg in gloog.
	At each translation step call graphite_verify ensuring the
	consistency of the SSA, loops and dominators information.
	(collect_virtual_phis, find_vdef_for_var_in_bb,
	find_vdef_for_var_1, find_vdef_for_var,
	patch_phis_for_virtual_defs): Removed huge hack.
	(mark_old_loops, remove_dead_loops, skip_phi_defs,
	collect_scop_exit_phi_args, patch_scop_exit_phi_args,
	gbb_can_be_ignored, scop_remove_ignoreable_gbbs): Removed.
	(remove_sese_region, ifsese, if_region_entry, if_region_exit,
	if_region_get_condition_block, if_region_set_false_region,
	create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
	sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb,
	sese_add_exit_phis_edge, sese_add_exit_phis_var,
	rewrite_into_sese_closed_ssa): New.
	(gloog): Remove dead code.  Early return if code cannot be
	generated.  Call cleanup_tree_cfg once the scop has been code
	generated.
	(graphite_trans_scop_block, graphite_trans_loop_block): Do not
	block loops with less than two loops.
	(graphite_apply_transformations): Remove the call to
	scop_remove_ignoreable_gbbs.
	(limit_scops): When build_scop_loop_nests fails, continue on next
	scop.  Fix open_scop.entry.
	(graphite_transform_loops): Call recompute_all_dominators: force the
	recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS.
	Call initialize_original_copy_tables and free_original_copy_tables
	to be able to copy basic blocks during code generation.
	When build_scop_loop_nests fails, continue on next scop.
	(value_clast): New union.
	(clast_to_gcc_expression): Fix type cast warning.

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

	PR tree-optimization/36792
	* tree-ssa-pre.c (compute_avail): Handle tcc_comparison like
	tcc_binary.

2008-12-10  Daniel Berlin  <dberlin@dberlin.org>

	PR tree-optimization/36792
	* tree-ssa-pre.c (compute_avail): Don't insert defs into maximal set.

2008-12-10  Alexandre Oliva  <aoliva@redhat.com>

	PR target/37033
	* dwarf2out.c (saved_do_cfi_asm): New.
	(dwarf2out_do_frame): Take it into account.
	(dwarf2out_d_cfi_asm): Likewise.  Set it when appropriate.

2008-12-10  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/38271
	* tree-sra.c (sra_build_bf_assignment): Avoid warnings for
	variables initialized from SRAed bit fields.

2008-12-10  Martin Guy  <martinwguy@yahoo.it>

	PR target/37668
	* arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
	result will be in an FPU register.

2008-12-10  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/37170
	PR target/38448
	* final.c (output_addr_const) <SYMBOL_REF>: Call assemble_external
	on the associated SYMBOL_REF_DECL node, if any.

2008-12-09  David Daney  <ddaney@caviumnetworks.com>

	* config/mips/sync.md (sync_<optab>_12): Replace
	MIPS_SYNC_OP_12_NOT_NOP with MIPS_SYNC_OP_12_AND.
	(sync_old_<optab>_12): Remove third paramater to
	MIPS_SYNC_OLD_OP_12 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOP
	with MIPS_SYNC_OLD_OP_12_AND.
	(sync_new_<optab>_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOP
	with MIPS_SYNC_NEW_OP_12_AND.
	(sync_nand_12): Replace MIPS_SYNC_OP_12_NOT_NOT with
	MIPS_SYNC_OP_12_XOR, reduce length attribute to 40.
	(sync_old_nand_12): Remove third paramater to MIPS_SYNC_OLD_OP_12
	macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOT with
	MIPS_SYNC_OLD_OP_12_XOR and reduce length attribute to 40.
	(sync_new_nand_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOT with
	MIPS_SYNC_NEW_OP_12_XOR.
	* config/mips/mips.h (MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
	MIPS_SYNC_OP_12_NOT_NOT,MIPS_SYNC_OLD_OP_12_NOT_NOP,
	MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_NEW_OP_12,
	MIPS_SYNC_NEW_OP_12_NOT_NOP, MIPS_SYNC_NEW_OP_12_NOT_NOT,
	MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Rewritten
	to implement new __sync_nand semantics.
	(MIPS_SYNC_OLD_OP_12): Implement new __sync_nand semantics, and
	remove third parameter.
	(MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
	MIPS_SYNC_OLD_OP_12_NOT_NOT_REG): Removed.
	(MIPS_SYNC_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OP_12_AND.
	(MIPS_SYNC_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OP_12_XOR.
	(MIPS_SYNC_OLD_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OLD_OP_12_AND.
	(MIPS_SYNC_OLD_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OLD_OP_12_XOR.
	(MIPS_SYNC_NEW_OP_12_NOT_NOP): Renamed to MIPS_SYNC_NEW_OP_12_AND.
	(MIPS_SYNC_NEW_OP_12_NOT_NOT): Renamed to MIPS_SYNC_NEW_OP_12_XOR

2008-12-09  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (graphite_transform_loops): Always call find_transform ()
	in ENABLE_CHECKING.  So we test these code paths, even if we do not
	generate code.

2008-12-09  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (print_graphite_bb): Fix printing to file != dump_file.

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

	PR middle-end/38454
	* function.h (struct function): Add always_inline_functions_inlined.
	* ipa-inline.c (cgraph_early_inlining): Set it to true.
	* tree-optimize.c (execute_fixup_cfg): Likewise.
	* builtins.c (avoid_folding_inline_builtin): New function.
	(fold_call_expr): Don't optimize always_inline builtins before
	inlining.
	(fold_call_stmt): Likewise.
	(fold_builtin_call_array): Likewise.  Don't call
	fold_builtin_varargs for BUILT_IN_MD builtins.

	PR tree-optimization/37416
	* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR.

2008-12-09  Janis Johnson  <janis187@us.ibm.com>

	* doc/sourcebuild.texi (Test Directives): Fix formatting.

2008-12-09  Vladimir Makarov  <vmakarov@redhat.com>

	* doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.

	* doc/invoke.texi (-fira-region): Describe new option.
	(-fira-algorithm): Change the values.

	* ira-conflicts.c (build_conflict_bit_table,
	build_allocno_conflicts): Use ira_reg_classes_intersect_p.
	(ira_build_conflicts): Use flag flag_ira_region instead of
	flag_ira_algorithm.  Prohibit usage of callee-saved likely spilled
	base registers for allocnos crossing calls.

	* flags.h (enum ira_algorithm): Redefine.
	(enum ira_region): New.
	(flag_ira_region): New.

	* cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region
	instead of flag_ira_algorithm.

	* toplev.c (flag_ira_algorithm): Change the initial value.
	(flag_ira_region): New.

	* ira-int.h (ira_reg_classes_intersect_p,
	ira_reg_class_super_classes): New.

	* ira-color.c (update_copy_costs): Use
	ira_reg_classes_intersect_p.  Use right class to find hard reg index.
	(update_conflict_hard_regno_costs): Ditto.  Add a new parameter.
	(assign_hard_reg): Ditto.  Pass additional argument to
	update_conflict_hard_regno_costs.  Do not uncoalesce for priority
	coloring.
	(allocno_priorities, setup_allocno_priorities,
	allocno_priority_compare_func): Move before color_allocnos.
	(color_allocnos): Add priority coloring.  Use flag flag_ira_region
	instead of flag_ira_algorithm.
	(move_spill_restore): Check classes of the same reg allocno from
	different regions.
	(update_curr_costs): Use ira_reg_classes_intersect_p.
	(ira_reassign_conflict_allocnos): Ditto.

	* opts.c (decode_options): Always set up flag_ira.  Set up
	flag_ira_algorithm.  Warn CB can not be used for architecture.
	(common_handle_option): Modify code for -fira-algorithm.  Add code
	to process -fira-region.

	* ira-lives.c (update_allocno_pressure_excess_length): Process
	superclasses too.
	(set_allocno_live, clear_allocno_live, mark_reg_live,
	mark_reg_dead, process_bb_node_lives): Ditto.

	* ira-emit.c (ira_emit): Fix insn codes.

	* ira-build.c (propagate_allocno_info): Use flag flag_ira_region
	instead of flag_ira_algorithm.
	(allocno_range_compare_func): Ignore classes for priority coloring.
	(setup_min_max_conflict_allocno_ids): Ditto.
	(ira_flattening): Use ira_reg_classes_intersect_p.

	* genpreds.c (write_enum_constraint_num): Output CONSTRAINT__LIMIT.

	* common.opt (fira-algorithm): Modify.
	(fira-region): New.

	* ira.c (setup_class_hard_regs): Initialize.
	(setup_cover_and_important_classes): Modify code setting class
	related info for priority coloring.
	(setup_class_translate): Ditto.
	(ira_reg_classes_intersect_p, ira_reg_class_super_classes): New.
	(setup_reg_class_intersect_union): Rename to
	setup_reg_class_relations.  Add code for setting up new variables.
	(find_reg_class_closure): Do not check targetm.ira_cover_classes.
	(ira): Use flag flag_ira_region instead of flag_ira_algorithm.

	* ira-costs.c (common_classes): New.
	(print_costs): Use flag flag_ira_region instead of flag_ira_algorithm.
	(find_allocno_class_costs): Ditto.  Use common_classes.  Translate
	alt_class.
	(ira_costs): Allocate/deallocate common_classes.

	* config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19.
	(REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for
	R02A_REGS.

	* reload1.c (choose_reload_regs): Use MODE_INT for partial ints in
	smallest_mode_for_size.

2008-12-10  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/linux-unwind.h (get_regs): Constify casts.

2008-12-09  Jan Hubicka  <jh@suse.cz>

	* predict.c (estimate_bb_frequencies): Fix test if profile is present.

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

	PR tree-optimization/35468
	* tree-ssa-ccp.c (fold_stmt_r): Don't fold reads from constant
	string on LHS.

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

	PR tree-optimization/38445
	* tree-ssa-structalias.c (emit_pointer_definition): Only visit
	names once.
	(emit_alias_warning): Adjust.

2008-12-09  Andrew Haley  <aph@redhat.com>

	* fixed-value.c (do_fixed_add): Add comment.
	* tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
	* builtins.c (fold_builtin_sqrt): Likewise.

2008-12-09  Kai Tietz  <kai.tietz@onevision.com>

	PR/38366
	* function.c (aggregate_value_p): Get fntype from CALL_EXPR in any
	case.
	* calls.c (nitialize_argument_information): Add fntype argument
	and use it for calls.promote_function_args.
	(expand_call): Pass fntype to aggregate_value_p if no fndecl
	available and pass additional fntype to
	initialize_argument_information.
	* config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part
	to get function abi type.
	(init_cumulative_args): Use for abi kind detection fntype, when no
	fndecl is available.

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

	* config/s390/s390.md (movti, movdi_64, movdi_31,
	*movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31,
	*mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove
	Q->Q alternative.
	(Integer->BLKmode splitter): Removed.

2008-12-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/alpha/alpha.c (alpha_set_memflags): Process memory
	references in full insn sequence.

2008-12-09  Jason Merrill  <jason@redhat.com>

	* gimplify.c (gimplify_init_constructor): Revert to using < rather
	than <= for sparseness test.

	PR c++/38410
	* gimplify.c (gimplify_init_constructor): Don't write out a static
	copy of the CONSTRUCTOR for TREE_ADDRESSABLE types or small sparse
	initializers.

2008-12-09  Tobias Grosser  <grosser@fim.uni-passau.de>

	PR middle-end/38084
	Fix testsuite/gfortran.dg/graphite/id-3.f90.
	* graphite.c (scopdet_basic_block_info): Fix bug that found some
	regions more than once.

2008-12-09  Ben Elliston  <bje@au.ibm.com>

	* emutls.c (__emutls_get_address): Prototype.
	(__emutls_register_common): Likewise.

	* config/dfp-bit.c (DFP_TO_INT): Remove unnecessary cast.

2008-12-09  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/darwin-ldouble.c (fmsub): Remove unused variable, v.

2008-12-08  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant.
	(nonlocal_goto_receiver): New instruction.

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

	PR c/35443
	* c-pretty-print.c (pp_c_expression): Handle BIND_EXPR.

	PR c/35442
	* c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
	VIEW_CONVERT_EXPR the same as CASE_CONVERT.

2008-12-08  Richard Henderson  <rth@redhat.com>

	PR 38240
	* tree.h (TYPE_MODE): Invoke vector_type_mode when needed.
	(SET_TYPE_MODE): New.
	* c-decl.c (parser_xref_tag): Use it.
	(finish_enum): Likewise.
	* tree.c (build_pointer_type_for_mode): Likewise.
	(build_reference_type_for_mode, build_index_type): Likewise.
	(build_range_type, make_vector_type): Likewise.
	(build_common_tree_nodes_2): Likewise.
	* stor-layout.c (compute_record_mode): Likewise.
	(finalize_type_size, layout_type, make_fract_type): Likewise.
	(make_accum_type, initialize_sizetypes): Likewise.
	(vector_type_mode): New.
	* function.c (allocate_struct_function): Call
	invoke_set_current_function_hook before querying anything else.

	* config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx.

2008-12-08  Luis Machado  <luisgpm@br.ibm.com>

	* alias.c (find_base_term): Synch LO_SUM handling with what
	find_base_value does.

2008-12-08  Andrew Haley  <aph@redhat.com>
	    Kamaraju Kusumanchi  <raju.mailinglists@gmail.com>

	* gimple.h (gimple_build_try): Fix declaration.

	* builtins.c (fold_builtin_sqrt): Don't use a conditional operator.
	* fixed-value.c (do_fixed_add): Likewise.
	* tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.

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

	PR middle-end/36802
	* omp-low.c (use_pointer_for_field): Only call maybe_lookup_decl
	on parallel and task contexts.

2008-12-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple.c (recalculate_side_effects) <tcc_constant>: New case.

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

	PR tree-optimization/38405
	* tree-vrp.c (simplify_truth_ops_using_ranges): Make sure to
	not sign-extend truth values.

2008-12-07  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-sra.c (scalarize_use): Create another temporary with the proper
	type for signed types in the use_all && !is_output bitfield case.

2008-12-06  Steven Bosscher  <steven@gcc.gnu.org>

	PR rtl-optimization/36365
	* df-core.c (df_worklist_dataflow_overeager): Remove.
	(df_worklist_dataflow): Don't call it, use double-queue only.
	* params.def (PARAM_DF_DOUBLE_QUQUQ_THRESHOLD_FACTOR): Remove.

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

	PR middle-end/38428
	* tree-ssa-operands.c (get_expr_operands) <case BIT_FIELD_REF>: Set
	gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile.

2008-12-07  Ben Elliston  <bje@au.ibm.com>

	* gthr-single.h (__gthread_once): Adjust prototype to match all
	other gthreads models.

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

	* config/i386/i386.c (override_options): Use CPU_AMDFAM10
	instead of PROCESSOR_AMDFAM10 for barcelona's schedule.

	PR middle-end/38422
	* fold-const.c (fold_unary) <CASE_CONVERT>: Don't convert MULT_EXPR
	operands to mult_type if it isn't narrower than op0's type.

2008-12-06  Jan Hubicka  <jh@suse.cz>
	    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/38074
	* cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0
	entry frequency.
	* predict.c (combine_predictions_for_bb): Ignore predictor predicting
	in both dirrection for first match heuristics.
	(tree_bb_level_predictions): Disable noreturn heuristic when there
	is no returning path.

2008-12-05  Bernd Schmidt  <bernd.schmidt@analog.com>

	PR rtl-optimization/38272
	* reload1.c (choose_reload_regs): Keep reload_spill_index correct
	in all cases.

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

	PR c++/35336
	* c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF.
	(pp_c_expression): Likewise.

2008-12-05  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR c/38416
	* c-parser.c (struct c_token): Make pragma_kind 8 bits.

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

	PR middle-end/37248
	* fold-const.c (make_bit_field_ref): Change bitpos and bitsize
	arguments to HOST_WIDE_INT.  If type has different signedness
	than unsignedp or different precision from bitsize, create
	the right type for BIT_FIELD_REF and cast to type.
	(fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.

	Revert:
	2008-03-05  Richard Guenther  <rguenther@suse.de>
	PR c++/35336
	* fold-const.c (fold_truthop): Remove code generating
	BIT_FIELD_REFs of structure bases.
	(fold_binary): Likewise.
	(make_bit_field_ref): Remove.
	(optimize_bit_field_compare): Remove.
	(all_ones_mask_p): Remove.

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

	* tree-sra.c (sra_explode_bitfield_assignment): Always
	call unsigned_type_for, if the precision is higher than
	needed, call build_nonstandard_integer_type.

	PR debug/38367
	* function.c (assign_parm_find_stack_rtl): If promoted_mode
	is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for
	big endian.

	PR middle-end/38338
	* builtins.c (expand_builtin_apply_args): Put before parm_birth_insn
	only if internal_arg_pointer is a non-virtual pseudo.

2008-12-05  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
	TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500.
	* config/rs6000/spe.md (e500_cr_ior_compare): Likewise.

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

	PR tree-optimization/37716
	* gimplify.c (gimplify_expr): Allow COND_EXPR if
	gimplify_ctxp->allow_rhs_cond_expr.

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

	* config/alpha/alpha.c (alpha_fold_vector_minmax): Create
	VIEW_CONVERT_EXPR to convert output to long_integer_type_node.

	(alpha_emit_conditional_branch): Do not generate direct branch
	for UNORDERED comparisons.

2008-12-05  Andreas Schwab  <schwab@suse.de>

	* config/rs6000/linux-unwind.h (frob_update_context): Check for
	NULL lr.

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

	PR c/38408
	* fold-const.c (fold_checksum_tree): Change buf type to union
	tree_node.

2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>

	PR bootstrap/38262
	* Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS.
	(BACKENDLIBS): New.
	(cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS.

2008-12-05  Ben Elliston  <bje@au.ibm.com>

	* c-parser.c (c_parser_enum_specifier): Initialise ident_loc and
	comma_loc.
	(c_parser_initelt): Initialise des_loc and ellipsis_loc.

2008-12-04  Eric Botcazou  <ebotcazou@adacore.com>
	    Gary Funck  <gary@intrepid.com>

	* cse.c (lookup_as_function): Delete mode frobbing code.
	(equiv_constant): Re-implement it there for SUBREGs.

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

	PR middle-end/36509
	* Makefile.in (tree-ssa-alias-warnings.o): Remove.
	(tree-ssa-structalias.o): Remove errors.h dependency.
	(tree-ssa-reassoc.o): Likewise.
	* tree-ssa-reassoc.c: Do not include errors.h.
	* tree-ssa-alias-warnings.c: Remove.
	* tree-ssa-alias.c (compute_may_aliases): Remove call to
	strict_aliasing_warning_backend.
	* tree-ssa-structalias.c (emit_pointer_definition): New function.
	(emit_alias_warning): Likewise.
	(set_uids_in_ptset): Warn for clear cases of type-punning.
	* tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING
	on INDIRECT_REFs.

2008-12-04  Eric Botcazou  <ebotcazou@adacore.com>

	* cse.c (equiv_constant): Fix pasto.

2008-12-04  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16.md: Remove extraneous spaces and quotes.
	* config/stormy16/stormy16.c: Remove extraneous spaces and fix up
	formatting of quotes.

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

	PR middle-end/38371
	* fold-const.c (fold_checksum_tree): Allow modification of
	TYPE_NEXT_VARIANT.

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

	PR middle-end/38360
	* tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't
	have the right number of arguments.

2008-12-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36326
	* gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for
	non-BLKmode types.

2008-12-03  Tomas Bily  <tbily@suse.cz>

	PR middle-end/38250
	* tree-loop-distribution.c (build_size_arg): New function.
	(generate_memset_zero): Checks if dr_analyze_innermost succeed.
	Reorganized generating of stmts.
	* testsuite/gcc.dg/tree-ssa/pr38250.c: New file.
	* tree-data-ref.c (dr_analyze_innermost): Returns bool.
	Indicate if analysis succeed.
	* tree-data-ref.h (dr_analyze_innermost): Returns bool.
	* tree-predcom.c (valid_initializer_p, find_looparound_phi):
	Uses new definition of dr_analyze_innermost.

2008-12-03  Ben Elliston  <bje@au.ibm.com>

	* tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime.

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

	PR tree-optimization/37716
	* tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct
	all the needed operations as trees and gimplify_assign it to dst.

	PR target/37610
	* configure.ac (gcc_cv_readelf): Look for readelf.
	(gcc_cv_as_cfi_advance_working): Check for working
	cfi advances with code alignment factor > 1.
	(HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances
	don't work properly.
	* configure: Regenerated.

2008-12-03  Eric Botcazou  <ebotcazou@adacore.com>
	    Jakub Jelinek  <jakub@redhat.com>
	    Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR rtl-optimization/38281
	* combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2,
	set it to NULL_RTX afterwards.

	* emit-rtl.c (set_insn_deleted): Fix formatting.

2008-12-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_expand_builtin): Fix the mode of the
	error return value.
	* config/mips/mips.md (IMOVE32): New mode iterator.
	(movsi): Generalize with IMOVE32.
	(*movsi_internal): Likewise.
	(*mov<mode>_mips16): Likewise.
	(*lwxs): Likewise.

2008-12-02  Nathan Sidwell  <nathan@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
	PC-relative addressing when compiling for uclinux PIC.
	(__cmpdf_internal, __cmpsf_internal): Hide.
	(__cmpdf, __cmpsf): Use PIC call sequence.

2008-12-02  Andreas Tobler  <a.tobler@schweiz.org>
	    Jack Howarth  <howarth@bromo.med.uc.edu>

	* config/i386/t-darwin64: Add m32 multilib support.

2008-12-02  Jack Howarth  <howarth@bromo.med.uc.edu>

	* testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later.

2008-12-02  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/38343
	* builtins.c (fold_builtin_memory_op): Convert len to sizetype
	before using it in POINTER_PLUS_EXPR.

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

	PR tree-optimization/38359
	* fold-const.c (fold_binary): Fold -1 >> x to -1 only for
	non-negative x.

2008-12-02  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/37861
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
	for INDIRECT_REFs.
	(forward_propagate_addr_into_variable_array_index): Check that the
	offset is not computed from a MULT_EXPR, use is_gimple_assign rather
	than the gimple code directly.

2008-12-02  Ben Elliston  <bje@au.ibm.com>

	* config/spu/float_disf.c (__floatdisf): Prototype.
	* config/spu/float_unsdisf.c (__float_undisf): Likewise.
	* config/spu/float_unssidf.c (__float_unssidf): Constify cast.
	* config/spu/float_unsdidf.c (__float_unsdidf): Likewise.

2008-12-02  DJ Delorie  <dj@redhat.com>

	* config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate.
	(DWARF_CIE_DATA_ALIGNMENT): Define.

	* config/stormy16/stormy16.c (xstormy16_compute_stack_layout):
	Invert add/sub for INCOMING_FRAME_SP_OFFSET.
	(xstormy16_expand_prologue): Likewise.
	(xstormy16_expand_builtin_va_start): Likewise.
	(xstormy16_gimplify_va_arg_expr): Likewise.

2008-12-02  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/38343
	* builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs
	potentially returned from folding memcpy.
	(expand_builtin_stpcpy_args): Similarly for folding strcpy.
	(fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored.

2008-12-02  Danny Smith  <dannysmith@users.sourceforge.net>

	PR target/38054
	* config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall
	decoration of function RTL names here on Ada language.

2008-12-01  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/38280
	* ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func,
	ira_rebuild_regno_allocno_list): New functions.
	(regno_allocnos): New static variable.
	(remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos.
	Call ira_rebuild_regno_allocno_list.

2008-12-01  David Daney  <ddaney@caviumnetworks.com>
	    Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/linux64.h (DRIVER_SELF_SPECS): Add
	LINUX_DRIVER_SELF_SPECS.

2008-12-01  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/37514
	* reload1.c (reload_as_needed): Invalidate reg_last_reload
	from previous insns.

2008-12-01  Jakub Jelinek  <jakub@redhat.com>

	PR c++/38348
	* c-omp.c (c_finish_omp_for): Only transform pointer
	++ or -- into MODIFY_EXPR if second argument is non-NULL.

	PR rtl-optimization/38245
	* tree-vrp.c (abs_extent_range): New function.
	(extract_range_from_binary_expr): Compute range
	for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE
	or includes zero or if vr1 is VR_RANGE and op0 has some
	other range.

2008-12-01  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/37908
	* config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND
	case by calculating ~(new_reg & val) instead of (~new_reg & val).
	* config/alpha/sync.md (sync_nand<mode>): Change insn RTX
	to (not:I48MODE (and:I48MODE (...))).
	(sync_old_nand<mode>): Ditto.
	(sync_new_nand<mode>): Ditto.

2008-12-01  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16.md (CARRY_REG): New constant.
	Replace uses of the "y" register class with direct references to
	the CARRY_REG register.
	* config/stormy16/stormy16.c: Replace clobbers of a BImode scratch
	register with clobbers of the carry register.
	(xstormy16_secondary_reload_class): Do not return CARRY_REGS.
	(xstormy16_split_cbranch): Remove redundant carry parameter.
	(xstormy16_expand_arith): Likewise.
	* config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS.
	(IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
	REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
	(CARRY_REGNUM): Define.
	* config/stormy16/stormy16-protos.h (xstormy16_split_cbranch):
	Update prototype.
	(xstormy16_expand_arith): Likewise.

2008-12-01  Chen Liqin  <liqin.chen@sunplusct.com>

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

2008-11-30  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/38287
	* config/sparc/sparc.md (divsi3 expander): Remove constraints.
	(divsi3_sp32): Add new alternative with 'K' for operand #2.
	(cmp_sdiv_cc_set): Factor common string.
	(udivsi3_sp32): Add new alternative with 'K' for operand #2.
	Add TARGET_V9 case.
	(cmp_udiv_cc_set): Factor common string.

2008-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/38283
	* varasm.c (emutls_finish): Fix common registration.

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

	PR target/29987
	* config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.

2008-11-29  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for
	operand wrapped in NOT.  Emit NAND as (ior (not X) (not Y)).
	(rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)).
	* config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL.
	Call rs6000_emit_sync with CODE=NOT and unmodified operands.
	Ignore sub-word case for now.
	(sync_nand<mode>_internal): Represent NAND in RTL.
	(sync_old_nand<mode): Same.
	(sync_old_name<mode>_internal): Same.
	(sync_new_nand<mode>): Same.
	(sync_new_nand<mode>_internal): Same.
	(sync_boolcshort_internal): Expect NAND.

2008-11-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37955
	PR tree-optimization/37742
	* tree-vect-transform.c (vectorizable_store): Remove assert for
	compatible aliases.
	(vectorizable_load): Likewise.

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

	* tree-ssa-structalias.c (intra_create_variable_infos): Make
	a constraint for the static chain parameter.

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

	* config/bfin/bfin.opt (micplb): New option.
	* config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
	* config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
	ENABLE_WA_INDIRECT_CALLS): New macros.
	* config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
	all 54x CPUs.
	(indirect_call_p): New function.
	(workaround_speculation): Handle anomaly 05-00-0426 when
	ENABLE_WA_INDIRECT_CALLS is true.
	* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
	__WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
	* doc/invoke.texi (Blackfin Options): Document -micplb.

2008-11-26  DJ Delorie  <dj@redhat.com>

	* config/m32c/mov.md ("extendhipsi2"): New.

	* config/m32c/bitops.md (bset_qi): Add memsym_operand predicate.

	* config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class.
	* config/m32c/mov.md (zero_extendqihi2): Likewise.

2008-11-26  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.md (clear_hazard): Rename to
	clear_hazard_<mode>.  Use mode-specific addition.
	(clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
	or gen_clear_hazard_di depending on the size of Pmode.

2008-11-26  DJ Delorie  <dj@redhat.com>

	* configure.ac: Test m32c-elf-gas for .loc.
	* configure: Likewise.

2008-11-26  Janis Johnson  <janis187@us.ibm.com>

	PR testsuite/28870
	* doc/sourcebuild.texi (Test Directives): Add dg-timeout and
	dg-timeout-factor.

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

	* config/i386/sync.md (memory_barrier_nosse): Disable also for
	TARGET_64BIT.  Remove special asm template for TARGET_64BIT case.
	(memory_barrier): Do not generate memory_barrier_nosse instruction
	for TARGET_64BIT.
	* config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.

2008-11-26  Fredrik Unger  <fred@tree.se>

	* config/soft-fp/floatuntisf.c (__floatuntisf): Correct
	function name from __floatundisf.
	* config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
	DFtype.

2008-11-25  Daniel Berlin  <dberlin@dberlin.org>
	    Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37869
	* tree-ssa-structalias.c (struct constraint_graph): Remove
	pt_used and number_incoming members.
	(build_pred_graph): Do not allocate them.
	(condense_visit): Do not use them.
	(label_visit): Likewise.
	(free_var_substitution_info): Do not free them.

2008-11-25  Vladimir Makarov  <vmakarov@redhat.com>

	* doc/invoke.texi (ira-max-loops-num): Change semantics.

	* ira-int.h (struct ira_loop_tree_node): New member to_remove_p.

	* ira-color.c (allocno_spill_priority): New function.
	(remove_allocno_from_bucket_and_push, push_allocno_to_spill):
	Print more info about the spilled allocno.
	(push_allocnos_to_stack): Use allocno_spill_priority.  Add more
	checks on bad spill.

	* ira-build.c (loop_node_to_be_removed_p): Remove.
	(loop_compare_func, mark_loops_for_removal): New functions.
	(remove_uneccesary_loop_nodes_from_loop_t): Use member
	to_remove_p.
	(remove_unnecessary_allocnos): Call mark_loops_for_removal.

	* ira.c (ira): Don't change flag_ira_algorithm.

	* params.def (ira-max-loops-num): Change the value.

2008-11-25  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
	Disable unsupported alternative for ColdFire,
	add new alternative that ColdFire can handle.

2008-11-25  Eric Botcazou  <ebotcazou@adacore.com>

	* regrename.c (merge_overlapping_regs): Add registers artificially
	defined at the top of the basic block to the set of live ones just
	before the first insn.

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

	PR middle-end/37843
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Return
	false if we need to align the outgoing stack.
	(ix86_update_stack_boundary): Check parm_stack_boundary.

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

	PR middle-end/38151
	PR middle-end/38236
	* tree-ssa-alias.c (struct alias_info): Remove written_vars.
	Remove dereferenced_ptrs_store and dereferenced_ptrs_load
	in favor of dereferenced_ptrs.
	(init_alias_info): Adjust.
	(delete_alias_info): Likewise.
	(compute_flow_insensitive_aliasing): Properly
	include all aliased variables.
	(update_alias_info_1): Use dereferenced_ptrs.
	(setup_pointers_and_addressables): Likewise.
	(get_smt_for): Honor ref-all pointers and pointers with known alias
	set properly.
	* config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.

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

	PR target/38254
	* config/i386/sync.md (memory_barrier_nosse): New insn pattern.
	(memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2.

2008-11-24  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo.

2008-11-24  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define.

2008-11-24  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR target/35018
	* config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes.
	(addsi_lshrsi_31): Add ColdFire-friendly alternatives.

2008-11-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (UNSPECV_CMPXCHG): Rename from
	UNSPECV_CMPXCHG_[12].
	* config/i386/sync.md: Use UNSPECV_CMPXCHG instead of
	UNSPECV_CMPXCHG_[12].

	PR target/36793
	* config/i386/sync.md (memory_barrier): New expander.

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

	PR middle-end/37135
	* dse.c (find_shift_sequence): Optimize extraction from a constant.

2008-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (function_arg): Revert 2008-10-26 change.

2008-11-23  Helge Deller  <deller@gmx.de>

	* pa/linux-atomic.c (EBUSY): Define if not _LP64.
	(__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
	succeeded and lws_ret is not equal to oldval.

2008-11-23  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.

2008-11-22  Andreas Schwab  <schwab@suse.de>

	* varasm.c (default_file_start): Suppress ASM_APP_OFF also with
	-dA and -dP.

2008-11-22  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
	Use constant 1 as the operand.
	* config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
	Rename gen_rdhwr to gen_rdhwr_synci_step_si or
	gen_rdhwr_synci_step_di depending on the size of Pmode.

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

	PR target/38222
	* config/i386/i386.md (SWI248): New mode iterator.
	(SWI32): Remove mode iterator.
	(popcount<mode>2): Rename from popcounthi2, popcountsi2 and
	popcounthi2 insn patterns. Macroize pattern using SWI248 mode
	iterator.  Generate popcnt mnemonic without mode extensions
	for Darwin x86 targets.
	(*popcount<mode>2_cmp): Ditto.
	(*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
	extensions for Darwin x86 targets.

2008-11-22  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
	only if HAVE_AS_SPARC_UA_PCREL is defined.

2008-11-22  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira-costs.c (find_allocno_class_costs): Work out the maximum
	allocno_costs value of the classees with the lowest total_costs
	value.  Use this to set ALLOCNO_COVER_CLASS_COST here...
	(setup_allocno_cover_class_and_costs): ...rather than here.
	Use the ALLOCNO_COVER_CLASS_COST for all registers in the
	preferred class.

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

	PR middle-end/37323
	* builtins.c (expand_builtin_apply_args): Emit sequence before
	parm_birth_insn instead of after entry_of_function's first insn.

	PR middle-end/37316
	* function.c (assign_parm_remove_parallels): Pass
	data->passed_type as third argument to emit_group_store.

	PR target/37170
	* final.c (mark_symbol_refs_as_used): New function.
	* output.h (mark_symbol_refs_as_used): New prototype.
	* config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
	(s390_output_pool_entry): Use mark_symbol_refs_as_used.
	* config/arm/arm.md (consttable_4): Likewise.

	PR target/37880
	* doc/invoke.texi: Adjust wording of -mcmodel=medium description.

2008-11-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/38200
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
	propagate x = &a into *x = b if conversion from b to a's type is
	useless.

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

	* caller-save.c (insert_one_insn): Take into account REG_INC notes
	for the liveness computation of the new insn.

2008-11-21  DJ Delorie  <dj@redhat.com>

	* config/stormy16/stormy16.md (movqi_internal, movhi_internal):
	Moves to/from below100 space (W) can only use r0-r7.

2008-11-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR other/38214
	* doc/invoke.texi (Optimization Options): Fix typo.

2008-11-21  H.J. Lu  <hongjiu.lu@intel.com>
	    Xuepeng Guo  <xuepeng.guo@intel.com>

	* config.gcc (extra_headers): For x86 and x86-64, remove
	gmmintrin.h, add immintrin.h and avxintrin.h.

	* config/i386/gmmintrin.h: Renamed to ...
	* config/i386/avxintrin.h: This.  Issue an error if
	_IMMINTRIN_H_INCLUDED is undedined.

	* config/i386/immintrin.h: New.

2008-11-21  Jakub Jelinek  <jakub@redhat.com>

	PR target/38208
	* reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
	mode of PLUS, not mode of the eliminated register.

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

	* config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
	* config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
	(<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
	(sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
	(*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
	(*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
	(*nand<mode>3): Rename to *andnot<mode>3.
	(*nandtf3): rename to *andnottf3.
	* config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
	Use CODE_FOR_mmx_andnotv2si3.
	[IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
	[IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
	[IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
	[IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
	[IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.

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

	PR middle-end/37908
	* config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND
	case by calculating ~(new_reg & val) instead of (~new_reg & val).
	* config/ia64/sync.md (sync_nand<mode>): Change insn RTX
	to (not:IMODE (and:IMODE (...))).
	(sync_old_nand<mode>): Ditto.
	(sync_new_nand<mode>): Ditto.

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

	* config/arm/thumb2.md (thumb2_casesi_internal,
	thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.

2008-11-20  Andreas Krebbel  <krebbel1@de.ibm.com>

	* gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
	nand to the changed 4.4 semantic.

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

	PR middle-end/29215
	* builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
	(fold_builtin_memory_op): Handle even the case where just one
	of src and dest is an address of a var decl component, using
	TYPE_REF_CAN_ALIAS_ALL pointers.  Remove is_gimple_min_invariant
	and readonly_data_expr src check.
	* tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
	up warnings.

	PR rtl-optimization/36998
	* dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
	arguments.  Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
	(compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
	stack_adjust_offset callers.
	(dwarf2out_stack_adjust): Likewise.  Handle insns in annulled
	branches properly.
	(compute_barrier_args_size): Handle insns in annulled branches
	properly.

2008-11-20  Uros Bizjak  <ubizjak@gmail.com>

	PR target/38151
	* config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
	Handle cases when integer argument crosses argument register boundary.

2008-11-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR bootstrap/33100
	* config.gcc (i[34567]86-*-solaris2*): Don't include
	i386/t-crtstuff here.
	Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
	* config/i386/t-sol2: Move to libgcc/config/i386.

2008-11-20  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	PR driver/21706
	* tlink.c: Include "libiberty.h".
	(initial_cwd): Change type into char *.
	(tlink_init): Call getpwd instead of getcwd.

2008-11-19  Zdenek Dvorak  <ook@ucw.cz>

	PR rtl-optimization/32283
	* tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
	of the induction variable to decide whether it may wrap.
	* tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
	initialization of the bound before the loop.
	* simplify-rtx.c (simplify_binary_operation_1): Add two
	simplifications regarding AND.
	(simplify_plus_minus): Only fail if no simplification is possible.
	* loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.

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

	PR c++/36631
	* gimplify.c (gimplify_call_expr): Defer most of the cannot inline
	checking until GIMPLE lowering.
	* gimple-low.c (check_call_args): New function.
	(lower_stmt) <case GIMPLE_CALL>: Call it.

2008-11-19  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
	with the same type as the first operand of the AND expression.

2008-11-19  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/37859
	* ira-int.h (struct ira_loop_tree_node): New member
	entered_from_non_parent_p.

	* ira-color.c (print_loop_title): Print loop bbs.

	* ira-emit.c (entered_from_non_parent_p,
	setup_entered_from_non_parent_p): New functions.
	(not_modified_p): Rename to store_can_be_removed_p.  Check there
	is no side entries.
	(generate_edge_moves): Use store_can_be_removed_p instead of
	not_modified_p.
	(ira_emit): Call setup_entered_from_non_parent_p.

	* ira-build.c (copy_info_to_removed_store_destinations):
	Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
	ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
	(ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
	update all accumulated attributes.

2008-11-19  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/37790
	* ira-int.h (ira_copy_allocno_live_range_list,
	ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
	ira_finish_allocno_live_range_list): New prototypes.
	(ira_allocno_live_ranges_intersect_p,
	ira_pseudo_live_ranges_intersect_p): Remove.

	* ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
	ira_pseudo_live_ranges_intersect_p): Rename to
	allocnos_have_intersected_live_ranges_p and
	pseudos_have_intersected_live_ranges_p.  Move them from here to ...

	* ira-color.c: ... here
	(coalesced_allocno_conflict_p): Use
	allocnos_have_intersected_live_ranges_p.
	(coalesced_allocnos_living_at_program_points,
	coalesced_allocnos_live_at_points_p,
	set_coalesced_allocnos_live_points): Remove.
	(slot_coalesced_allocnos_live_ranges,
	slot_coalesced_allocno_live_ranges_intersect_p,
	setup_slot_coalesced_allocno_live_ranges): New.
	(coalesce_spill_slots): Use ranges of coalesced allocnos.
	(ira_sort_regnos_for_alter_reg): Use
	allocnos_have_intersected_live_ranges_p.
	(ira_reuse_stack_slot): Use
	pseudos_have_intersected_live_ranges_p.

	* global.c (pseudo_for_reload_consideration_p): Check
	flag_ira_share_spill_slots too.

	* ira-build.c (copy_allocno_live_range_list): Rename to
	ira_copy_allocno_live_range_list.  Make it external.
	(merge_ranges): Rename to ira_merge_allocno_live_ranges.  Make it
	external.
	(ira_allocno_live_ranges_intersect_p): New.
	(ira_finish_allocno_live_range_list): New.
	(finish_allocno): Use it.
	(remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
	(copy_info_to_removed_store_destinations): Ditto.  Use
	ira_copy_allocno_live_range_list.
	(ira_flattening): Use ira_merge_allocno_live_ranges.

	* ira.c (too_high_register_pressure_p): New function.
	(ira): Switch off sharing spill slots if the pressure is too high.

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

	* tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
	non-sizetype offsets if their precision matches that of the pointer.
	* expr.c (expand_expr_real_1): Always sign-extend the offset
	operand of a POINTER_PLUS_EXPR.

2008-11-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config.gcc: Unobsolete mips-sgi-irix[56]*.
	(mips-sgi-irix[56]*): No need to use fixproto.

2008-11-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
	    Paul Brook  <paul@codesourcery.com>

	* config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
	executable stack.

2008-11-19  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.

2008-11-19  Razya Ladelsky  <razya@il.ibm.com>

	PR target/38156
	* tree-parloops.c (loop_parallel_p): NULL vect_dump.
	(separate_decls_in_region): Create shared struct even when there
	are only reductions.

2008-11-19  Hariharan Sandanagobalane  <hariharan@picochip.com>

	* config/picochip/picochip.c (headers): Remove an unnecessary
	header file.

2008-11-19  Andrew Stubbs  <ams@codesourcery.com>

	PR target/36133
	* config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
	* config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
	shift instructions.
	* config/m68k/m68k.md: Adjust all conditional branches that use the
	carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.

2008-11-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/37362
	* config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high"
	is a register or zero operand in the correct mode before generating
	mtch1 insn or a register operand in the correct mode before generating
	mfch1 insn.
	(mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand.

2008-11-18  Adam Nemet  <anemet@caviumnetworks.com>

	* config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
	(mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
	mipsisa*-*-elf*.  Handle mipsisa64r2*.
	* config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
	* config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
	mips64r2.
	(MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
	* config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
	mips64r2.
	(MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.  Add mips64r2/mips16.
	Fix mips16 if mips64 or mips64r2 are multilib defaults.
	* config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
	mips64r2.

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

	PR target/38130
	* config/i386/i386.md (allocate_stack_worker_32,
	allocate_stack_worker_64): Don't use match_dup between input and
	output operand.
	(allocate_stack): Adjust gen_stack_worker_{32,64} caller.
	* config/i386/i386.c (ix86_expand_prologue): Likewise.

2008-11-18  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
	is forced when trying to do a symbol link for it.

2008-11-17  Adam Nemet  <anemet@caviumnetworks.com>

	* expmed.c (extract_bit_field_1): Also use a temporary and
	convert_extracted_bit_field when the conversion from ext_mode to
	the target mode requires explicit truncation.

2008-11-17  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
	Tweak formatting.
	* config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
	registers when not optimizing.

2008-11-17  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.md (*mul_acc_si): Remove middle alternative
	and its associated define_split.  Expose the all-d alternative
	to the register allocator, but mark it with "?".  Mark the first
	alternative with "*?*?".
	(*mul_sub_si): Likewise.
	(*mul_acc_si_r3900): New pattern.

2008-11-17  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/38140
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
	propagating x = &a into *x = b, add a cast if not useless
	type conversion or don't optimize if another stmt would be
	needed.

2008-11-17  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/37908
	* optabs.c (expand_sync_operation): Properly handle NAND case
	by calculating ~(t1 & val) instead of (~t1 & val).
	* builtins.c (expand_builtin_sync_operation): Warn for changed
	semantics in NAND builtins.
	* c.opt (Wsync-nand): New warning option.  Describe -Wsync-nand.

	* doc/invoke.texi (Warning options): Add Wsync-nand.
	* doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
	__sync_fetch_and_nand builtin operation in the example.  Add a note
	about changed semantics in GCC 4.4.
	[__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
	operation in the example.  Add a note about changed semantics in
	GCC 4.4.

2008-11-16  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_function_body_availability): Fix test of externally
	visible.

2008-11-16  Joshua Kinard  <kumba@gentoo.org>

	* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
	to -mips4.

2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/38052
	* config/mips/mips.c (mips_cfun_call_saved_reg_p)
	(mips_cfun_might_clobber_call_saved_reg_p): New functions,
	split out from...
	(mips_save_reg_p): ...here.  Always consult TARGET_CALL_SAVED_GP
	rather than call_really_used_regs when handling $gp.

2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/38052
	* config/mips/mips.c (machine_function): Update the comment
	above global_pointer.
	(mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
	that a function doesn't need a global pointer.
	(mips_current_loadgp_style): Update accordingly.
	(mips_restore_gp): Likewise.
	(mips_output_cplocal): Likewise.
	(mips_expand_prologue): Likewise.

2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
	parameter.  Use DImode for computing the number of registers.
	(function_arg): Adjust for above change.
	(function_value): Likewise.

2008-11-15  Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/37950
	* tree-flow-inline.h (memory_partition): Return NULL when aliases were
	not computed for the current function.

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

	PR target/38123
	* config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
	gpr and other COMPONENT_REFs.

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

	PR tree-optimization/38051
	* tree-ssa-alias.c (update_alias_info_1): Manually find
	written variables.

2008-11-15  Joshua Kinard  <kumba@gentoo.org>

	* doc/invoke.texi (-mfix-r10000): Document.
	* config/mips/mips.opt (mfix-r10000): New option.
	* config/mips/mips-protos.h (mips_output_sync_loop): Declare.
	* config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
	(MIPS_COMPARE_AND_SWAP_12): Likewise.
	(MIPS_SYNC_OP): Likewise.
	(MIPS_SYNC_OP_12): Likewise.
	(MIPS_SYNC_OLD_OP_12): Likewise.
	(MIPS_SYNC_NEW_OP_12): Likewise.
	(MIPS_SYNC_OLD_OP): Likewise.
	(MIPS_SYNC_NAND): Likewise.
	(MIPS_SYNC_OLD_NAND): Likewise.
	(MIPS_SYNC_EXCHANGE): Likewise.
	(MIPS_SYNC_EXCHANGE_12): Likewise.
	(MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
	delay slots.
	(MIPS_SYNC_NEW_NAND): Likewise.
	* config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
	(mips_init_print_operand_punct): Treat '~' as a punctuation character.
	(mips_output_sync_loop): New function.
	(mips_override_options): Make -march=r10000 imply -mfix-r10000.
	Make -mfix-r10000 require branch-likely instructions.
	* config/mips/sync.md (sync_compare_and_swap<mode>): Use
	mips_output_sync_loop.
	(compare_and_swap_12): Likewise.
	(sync_add<mode>): Likewise.
	(sync_<optab>_12): Likewise.
	(sync_old_<optab>_12): Likewise.
	(sync_new_<optab>_12): Likewise.
	(sync_nand_12): Likewise.
	(sync_old_nand_12): Likewise.
	(sync_new_nand_12): Likewise.
	(sync_sub<mode>): Likewise.
	(sync_old_add<mode>): Likewise.
	(sync_old_sub<mode>): Likewise.
	(sync_new_add<mode>): Likewise.
	(sync_new_sub<mode>): Likewise.
	(sync_<optab><mode>): Likewise.
	(sync_old_<optab><mode>): Likewise.
	(sync_new_<optab><mode>): Likewise.
	(sync_nand<mode>): Likewise.
	(sync_old_nand<mode>): Likewise.
	(sync_new_nand<mode>): Likewise.
	(sync_lock_test_and_set<mode>): Likewise.
	(test_and_set_12): Likewise.

2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc.c (cc1_options): Fix comment.

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

	PR c++/37561
	* c-typeck.c (build_unary_op): Don't call get_unwidened.  Use
	argtype instead of result_type.

2008-11-14  Adam Nemet  <anemet@caviumnetworks.com>

	* ira-int.h (struct ira_loop_tree_node): Improve comments for
	subloop_next/next and subloops/childen fields.

2008-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
	(STANDARD_INCLUDE_DIR): Redefine to "/include".
	(LOCAL_INCLUDE_DIR): Undefine.
	* config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.

2008-11-14  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/37397
	* ira-int.h (struct ira_allocno): New member bad_spill_p.
	(ALLOCNO_BAD_SPILL_P): New macro.

	* ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.

	* ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
	(create_cap_allocno, propagate_allocno_info,
	remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
	(update_bad_spill_attribute): New function.
	(ira_build): Call it.

	* ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.

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

	PR tree-optimization/38104
	* gimplify.c (gimple_regimplify_operands): Add referenced vars
	before calling mark_symbols_for_renaming, not after it.

2008-11-14  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
	(OVERRIDE_OPTIONS): Likewise.

2008-11-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
	    Andrew Stubbs  <ams@codesourcery.com>
	    Gunnar Von Boehn  <gunnar@genesi-usa.com>

	PR target/36134
	* config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
	the shorter LEA insn over ADD.L where possible.

2008-11-14  Thomas Schwinge  <tschwinge@gnu.org>

	* configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
	systems, which are assumend to always provide SSP-support in glibc.
	Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
	case.
	* configure: Regenerate.

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

	PR middle-end/36125
	* function.c (gimplify_parameters): For callee copies parameters,
	move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.

2008-11-13  Thomas Schwinge  <tschwinge@gnu.org>

	PR target/28102
	* config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
	x86 parts into the `i[34567]86-*-linux*' and parts that are
	independent of the processor architecture into the `*-*-linux*' cases.
	(*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
	* config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
	(TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
	[TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
	* config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
	(HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
	(LINUX_TARGET_OS_CPP_BUILTINS): Redefine.

2008-11-13  Ruan Beihong  <ruanbeihong@gmail.com>

	* config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
	* config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
	(ls2_idiv): Likewise idiv3.
	(ls2_prefetch): New reservation.
	* config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
	* config/mips/mips.md (type): Add imul3nc and idiv3.
	(length): Handle idiv3.
	(any_mod): New code_iterator.
	(u): Handle MOD and UMOD.
	(mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
	(prefetch): Handle TARGET_LOONGSON_2EF.

2008-11-13  Jakub Jelinek  <jakub@redhat.com>

	PR c++/27017
	* dwarf2out.c (prune_unused_types_walk_local_classes): New function.
	(prune_unused_types_walk): Call it for non-perennial local classes.
	Set die_mark to 2 if recursing on children.  If die_mark is 1 on
	entry, just set it to 2 and recurse on children, don't walk attributes
	again.

2008-11-13  Martin Michlmayr  <tbm@cyrius.com>

	* c-common.c (warn_about_parentheses): Add missing whitespace
	in warning.

2008-11-13  Paul Brook  <paul@codesourcery.com>

	* doc/invoke.texi: Document --fix-cortex-m3.
	* config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
	Cortex-M3 cpu is selected.
	(output_move_double): Avoid overlapping base register and first
	destination register when fix_cm3_ldrd.
	* config/arm/arm.opt: Add mfix-cortex-m3-ldrd.

2008-11-13  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/38100
	* gimple.h (gimple_range_check_failed): Remove prototype.
	* gimple.c (gimple_check_failed): Don't check GCC_VERSION
	in guarding #if.
	(gimple_range_check_failed): Removed.

2008-11-13  Andrew Haley  <aph@redhat.com>

	PR bootstrap/38088
	* mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
	__LONG_LONG_MAX__.

2008-11-12  Jakub Jelinek  <jakub@redhat.com>

	PR c++/36478
	Revert:
	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++.

2008-11-12  Dodji Seketeli  <dodji@redhat.com>

	PR debug/27574
	* cgraph.h: New abstract_and_needed member to struct cgraph_node.
	* cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
	- which clones are reachable - as "abstract and needed".
	* cgraph.c (cgraph_release_function_body):  If a node is
	"abstract and needed", do not release its DECL_INITIAL() content
	that will be needed to emit debug info.

2008-11-12  Steve Ellcey  <sje@cup.hp.com>

	PR target/27880
	* configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
	to set HAVE_GETIPINFO.
	* aclocal.m4: Include ../config/unwind_ipinfo.m4.
	* configure: Regenerate.
	* config.in: Regenerate.

2008-11-12  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR bootstrap/38010
	* gcc/config.gcc: Use darwin9.h on darwin10 as well.

2008-11-12  Jakub Jelinek  <jakub@redhat.com>

	Revert:
	2008-10-21  Jakub Jelinek  <jakub@redhat.com>
	* gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.

2008-11-12  Jason Merrill  <jason@redhat.com>

	PR c++/38007
	* c-common.c (c_common_signed_or_unsigned_type): Remove C++
	special casing.

2008-11-12  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
	atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
	atmega32u6 devices.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

2008-11-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
	packed-stack special handling.
	(FRAME_ADDR_RTX): Add definition.

2008-11-12  Jakub Jelinek  <jakub@redhat.com>

	PR target/35366
	* fold-const.c (native_encode_string): New function.
	(native_encode_expr): Use it for STRING_CST.

2008-11-12  DJ Delorie  <dj@redhat.com>

	* config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
	insns if the intermediate value will be used later.

2008-11-12  Andreas Schwab  <schwab@suse.de>

	* config/m68k/m68k.c (print_operand): Mask off extra extension
	bits when writing out the representation of real values.

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

	PR tree-optimization/38079
	* tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
	with vect_dump.

2008-11-12  Jakub Jelinek  <jakub@redhat.com>

	PR c++/35334
	* c-pretty-print.c (pp_c_complex_expr): New function.
	(pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.

	PR target/35366
	* expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
	than INNER and INNER is a constant, forcibly align INNER as much
	as needed.

2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>

	* cse.c (fold_rtx): Remove redundant gen_rtx_CONST.

2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/37363
	* simplify-rtx.c (simplify_plus_minus): Don't create
	(const (minus ...)) expresisons.

2008-11-11  Eric Botcazou  <ebotcazou@adacore.com>

	* ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
	handling.

2008-11-10  Catherine Moore  <clm@codesourcery.com>

	* config.gcc (mips64vrel-*-elf*): Include the tm_file
	prior to vr.h.
	* config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
	(BASE_DRIVER_SELF_SPECS): Remove.
	(DRIVER_SELF_SPECS): New definition.
	* config/mips/elfoabi.h (DRIVER_SELF_SPECS): Include
	BASE_DRIVER_SELF_SPECS.
	* config/mips/sde.h: Likewise.
	* config/mips/iris6.h: Likewise.
	* config/mips/vr.h: Likewise.
	* config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.

2008-11-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimizations/37948
	* ira-int.h (struct ira_allocno_copy): New member constraint_p.
	(ira_create_copy, ira_add_allocno_copy): New parameter.

	* ira-conflicts.c (process_regs_for_copy): New parameter.  Pass it
	to ira_add_allocno_copy.
	(process_reg_shuffles, add_insn_allocno_copies): Pass a new
	parameter to process_regs_for_copy.
	(propagate_copies): Pass a new parameter to ira_add_allocno_copy.
	Fix typo in passing second allocno to ira_add_allocno_copy.

	* ira-color.c (update_conflict_hard_regno_costs): Use head of
	coalesced allocnos list.
	(assign_hard_reg): Ditto.  Check that assigned allocnos are not in
	the graph.
	(add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
	(add_ira_allocno_to_ordered_bucket): Rename to
	add_allocno_to_ordered_bucket.
	(push_ira_allocno_to_stack): Rename to push_allocno_to_stack.  Use
	head of coalesced allocnos list.
	(push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
	Check that it is aready calculated.
	(push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
	(setup_allocno_left_conflicts_num): Use head of coalesced allocnos
	list.
	(coalesce_allocnos): Do extended coalescing too.

	* ira-emit.c (add_range_and_copies_from_move_list): Pass a new
	parameter to ira_add_allocno_copy.

	* ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
	parameter.
	(print_copy): Print copy origination too.

	* ira-costs.c (scan_one_insn): Use alloc_pref for load from
	equivalent memory.

2008-11-10  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR rtl-optimization/37514
	* config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
	flag_ira_share_spill_slots to 2 if it's already non-zero.
	(OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
	flag_ira_share_spill_slots is 2.

2008-11-10  Kevin Buettner  <kevinb@redhat.com>

	* config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
	(prologue_enter_32): Set FB to SP - 4.

2008-11-10  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
	constraint for single-bit-clear in lower byte of HI constant, vs
	Imb which just ignores the upper byte.
	* config/m32c/predicates.md (m32c_1mask8_operand): Use it.
	* config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
	(iorhi3_16): Check for single bit set, not single bit clear.

2008-11-10  Janis Johnson  <janis187@us.ibm.com>

	* doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.

	* doc/sourcebuild.texi (Torture Tests): Fix formatting in example.

2008-11-10  Eric Botcazou  <ebotcazou@adacore.com>

	* calls.c (store_unaligned_arguments_into_pseudos): Deal only with
	values living in memory and use more precise alignment information.

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

	PR middle-end/35314
	* tree-mudflap.c (mf_build_check_statement_for): Split then_block
	after __mf_check call if the call must end a bb.

2008-11-10  Ralph Loader  <suckfish@ihug.co.nz>

	PR middle-end/37807
	PR middle-end/37809
	* combine.c (force_to_mode): Do not process vector types.

	* rtlanal.c (nonzero_bits1): Do not process vector types.
	(num_sign_bit_copies1): Likewise.

2008-11-09  Thomas Schwinge  <tschwinge@gnu.org>

	* config/i386/gnu.h: Add copyright and licensing header.
	* config/gnu.h: Likewise.

2008-11-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* fwprop.c (fwprop_done): Call df_remove_problem.

2008-11-07  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/37379
	* tree-scalar-evolution.c (instantiate_scev_1): Return
	chrec_dont_know for VL_EXP_CLASS_P.

2008-11-06  Uros Bizjak  <ubizjak@gmail.com>

	* reg-stack.c (reg_to_stack): Add missing braces in memset
	size calculation.

2008-11-06  Andrew Stubbs  <ams@codesourcery.com>

	* config/arm/bpabi.h (PROFILE_HOOK): New undef.
	(NO_PROFILE_COUNTERS): New define.

2008-11-06  David Edelsohn  <edelsohn@gnu.org>

	PR target/26397
	* config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.

2008-11-06  Kazu Hirata  <kazu@codesourcery.com>

	PR target/35574
	* config/sparc/constraints.md (D): New.
	* config/sparc/predicates.md (const_double_or_vector_operand): New.
	* config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
	'D' constraint.
	* config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
	Use the 'D' constraint in addition to 'F' in some alternatives.
	(DF splitter): Generalize for V64mode.
	* doc/md.texi (SPARC): Document the 'D' constraint.

2008-11-06  Uros Bizjak  <ubizjak@gmail.com>

	* reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.

2008-11-06  Ben Elliston  <bje@au.ibm.com>

	* gcc.c: Remove ancient comment about a bug in Sun cc.

2008-11-05  Janis Johnson  <janis187@us.ibm.com>

	* doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.

2008-11-06  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/rs6000.c (rs6000_override_options): Comment fix.

2008-11-06  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
	description.

2008-11-05  Hans-Peter Nilsson  <hp@axis.com>

	PR target/38016
	* config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
	just MEM_P.

2008-11-05  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/37861
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
	pointer arithmetics into array_ref if the array is accessed
	through an indirect_ref.

2008-11-05  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37742
	* tree-ssa.c (useless_type_conversion_p_1): Check different restrict
	qualified pointer conversion before stripping qualifiers.
	* gimplify.c (create_tmp_from_val): Use correctly qualified type.
	* tree-flow.h (may_propagate_address_into_dereference): Declare.
	* tree-ssa-ccp.c (may_propagate_address_into_dereference): New
	function.
	(ccp_fold): Use it.
	* tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
	properly canonicalize binary ops.
	(forward_propagate_addr_expr_1): Use
	may_propagate_address_into_dereference.

2008-11-05  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/37286
	* reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
	Initialize uninitialized input registers with a NaN.

2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>

	PR middle-end/37833

	* graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.

2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>

	PR middle-end/37943

	* graphite.c (scopdet_basic_block_info): Fix loops with multiple
	exits and conditions.
	* testsuite/gcc.dg/graphite/pr37943.c: New.

2008-11-04  Jakub Jelinek  <jakub@redhat.com>
	    Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR c/35430
	* c-common.c (warn_for_sign_compare): For complex result_type
	use component's type.

2008-11-04  Jakub Jelinek  <jakuB@redhat.com>

	* print-tree.c (print_node): Use code instead of TREE_CODE (node).

	* print-tree.c (print_node): Don't print DECL_INITIAL
	for PARM_DECL.

	PR c/37106
	* c-common.c (parse_optimize_options): Save and restore
	flag_strict_aliasing around decode_options call.

2008-11-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/driver-i386.c (enum vendor_signatures): New enum.
	(host_detect_local_cpu): Use it instead of casted strings to
	compare vendor signatures.

2008-11-03  Mikael Pettersson  <mikpe@it.uu.se>

	PR target/37989
	* config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
	or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.

2008-11-03  Catherine Moore  <clm@codesourcery.com>

	* config/mips.c (mips_conditional_register_usage):  Handle the
	DSP control register.
	* doc/extend.texi: Document the DSP control register.

2008-11-03  Steve Ellcey  <sje@cup.hp.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (expand_omp_for_generic): If iter_type has different
	precision than type and type is a pointer type, cast n1 and n2
	first to an integer type with the same precision as pointers
	and only afterwards to iter_type.

2008-11-03  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
	(UNSPEC_GOTSYM_OFF): New unspec.
	(pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
	(pic_add_dot_plus_eight): Likewise.
	(tls_load_dot_plus_eight): Likewise.  Update peephole2.
	* config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
	UNSPEC_PIC_BASE operands.
	* config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
	(arm_output_addr_const_extra): Handle it.

2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
	integer class to full integer class if the offset is not word-aligned.

2008-11-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR rtl-opt/37782
	* loop-doloop.c (doloop_modify): Add from_mode argument that says what
	mode count is in.
	(doloop_optimize): Update call to doloop_modify.

2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-sra.c (bitfield_overlaps_p): Fix oversight.

2008-11-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR other/37463
	* configure.ac (gcc_cv_ld_ro_rw_mix): Move before
	gcc_cv_as_cfi_directive.
	(gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
	merging read-only and read-write sections or assembler emits
	read-write .eh_frame sections.
	* configure: Regenerate.

2008-11-03  Nathan Froyd  <froydnj@codesourcery.com>

	Revert:
	2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
	problem.
	(rs6000_emit_prologue): Invert logic.
	* config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
	(reg:P 11) instead of match_operand.
	(*save_fpregs_<mode>): Likewise.
	(*restore_gpregs_<mode>): Likewise.
	(*return_and_restore_gpregs_<mode>): Likewise.
	(*return_and_restore_fpregs_<mode>): Likewise.
	* config/rs6000/spe.md (*save_gpregs_spe): Use explicit
	(reg:P 11) insted of match_operand.
	(*restore_gpregs_spe): Likewise.
	(*return_and_restore_gpregs_spe): Likewise.

2008-11-03  Harsha Jagasia  <harsha.jagasia@amd.com>

	PR tree-optimization/37684
	* gcc.dg/graphite/pr37684.c: New.
	* graphite.c (exclude_component_ref): New.
	(is_simple_operand): Call exclude_component_ref.

2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/36908
	* testsuite/gcc.dg/tree-ssa/pr36908.c: New.
	* tree-loop-distribution.c (number_of_rw_in_rdg): New.
	(number_of_rw_in_partition): New.
	(partition_contains_all_rw): New.
	(ldist_gen): Do not distribute when one of the partitions
	contains all the memory operations.

2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>

	* cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
	EDGE_IRREDUCIBLE_LOOP.

2008-11-03  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
	where we have one entry point in the loop which isn't the head.

2008-11-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37573
	* tree-data-ref.c (split_constant_offset_1): Fix tuplification.

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

	PR middle-end/37858
	* passes.c (execute_one_pass): Don't look at cfun->curr_properties
	for ipa and simple ipa passes.

2008-11-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37542
	* tree-ssa-pre.c (fully_constant_expression): Handle more cases.
	* tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
	(vn_nary_op_lookup_stmt): Adjust for unary reference trees.
	(vn_nary_op_insert_stmt): Likewise.
	(visit_use): Likewise.

2008-11-02  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.md (UNSPEC_SWAP): Remove constants.
	(*swap): Remove.
	(rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
	rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
	(ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
	ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
	lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
	peephole2's): Replace unspec with rotate.
	* config/avr/avr.c (avr_rtx_costs): Add ROTATE.

2008-11-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37991
	* tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
	* tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
	(set_ssa_val_to): Print if the value changed.
	(simplify_binary_expression): Strip useless conversions.

2008-11-01  Hans-Peter Nilsson  <hp@axis.com>

	PR target/37939
	* config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
	operand.

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

	PR middle-end/37976
	* builtins.c (fold_builtin_strspn): Return a size_t.
	(fold_builtin_strcspn): Likewise.

2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_file_start): Output gnu
	attribute for struct return convention.

2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/crtsavres.asm: Really, really delete.

2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
	problem.
	(rs6000_emit_prologue): Invert logic.
	* config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
	(reg:P 11) instead of match_operand.
	(*save_fpregs_<mode>): Likewise.
	(*restore_gpregs_<mode>): Likewise.
	(*return_and_restore_gpregs_<mode>): Likewise.
	(*return_and_restore_fpregs_<mode>): Likewise.
	* config/rs6000/spe.md (*save_gpregs_spe): Use explicit
	(reg:P 11) insted of match_operand.
	(*restore_gpregs_spe): Likewise.
	(*return_and_restore_gpregs_spe): Likewise.

2008-10-28  Luis Machado  <luisgpm@br.ibm.com>

	* gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
	list of word switches that take args.

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

	* config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
	(s390_output_pool_entry): Call it through for_each_rtx.

	PR middle-end/37730
	* expr.c (store_constructor): For vectors, if target is a MEM, use
	target's MEM_ALIAS_SET instead of elttype alias set.

2008-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/37909
	* config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
	no address.

2008-10-29  David Edelsohn  <edelsohn@gnu.org>

	PR target/37878
	* config/rs6000/predicates.md (word_offset_memref_operand):
	Restructure code and look inside auto-inc/dec addresses.

2008-10-29  Steve Ellcey  <sje@cup.hp.com>

	PR target/32277
	* libgcov.c (__gcov_indirect_call_profiler): Check
	TARGET_VTABLE_USES_DESCRIPTORS.

2008-10-29  Stefan Schulze Frielinghaus  <xxschulz@de.ibm.com>

	* config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
	(INITIAL_FRAME_POINTER_OFFSET): Remove.
	* config/spu/spu.c (spu_initial_elimination_offset): Calculate new
	offset if eliminating soft frame pointer.
	* config/spu/spu.md (stack_protect_set, stack_protect_test)
	(stack_protect_test_si): Add initial machine description
	for Stack Smashing Protector

2008-10-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 11492
	* c-common.c (min_precision): Move to...
	* tree.c (tree_int_cst_min_precision): ... to here. Renamed.
	* tree.h (tree_int_cst_min_precision): Declare.
	* c-common.h (min_precision): Delete declaration.
	* fold-const.c (tree_binary_nonnegative_warnv_p): Handle
	multiplication of non-negative integer constants.
	* c-decl.c (check_bitfield_type_and_width): Rename min_precision to
	tree_int_cst_min_precision.
	(finish_enum): Likewise.

2008-10-29  Joseph Myers  <joseph@codesourcery.com>

	PR middle-end/36578
	* convert.c (convert_to_real): Do not optimize conversions of
	binary arithmetic operations between binary and decimal
	floating-point types.  Consider mode of target type in determining
	decimal type for arithmetic.  Unless
	flag_unsafe_math_optimizations, do not optimize binary conversions
	where this may change rounding behavior.
	* real.c (real_can_shorten_arithmetic): New.
	* real.h (real_can_shorten_arithmetic): Declare.

2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
	ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
	* config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
	appropriate.
	(must_save_p): For some workarounds, interrupts need to clobber a
	P register.
	(expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
	and LC1 for WA_05000257.
	(expand_interrupt_handler_prologue): Add dummy read of CHIPID for
	WA_05000283 and WA_05000315.
	* config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
	(movbi): Add alternative to set CC to 1; improve code for setting
	CC to 0.
	(dummy_load): New pattern.

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

	PR middle-end/37870
	* expmed.c (extract_bit_field_1): If int_mode_for_mode returns
	BLKmode for non-memory, convert using a wider MODE_INT mode
	or through memory.

	PR middle-end/37913
	* tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
	that haven't been removed yet.

2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (struct machine_function): New member
	has_loopreg_clobber.
	(bfin_expand_movmem): Set it when generating memcpy insns.
	(n_regs_saved_by_prologue, expand_prologue_reg_save,
	expand_epilogue_reg_restore): If we have hardware loops,
	memcpy insns (indicated by has_loopreg_clobber) or function
	calls, we need to save the loop registers.

2008-10-28  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (core2_cost): Fix typos in comments.

2008-10-28  Jakub Jelinek  <jakub@redhat.com>

	PR c/37924
	* combine.c (make_compound_operation): Don't call make_extraction with
	non-positive length.
	(simplify_shift_const_1): Canonicalize count even if complement_p.

2008-10-28  Joseph Myers  <joseph@codesourcery.com>

	* convert.c (strip_float_extensions): Do not remove or introduce
	conversions between binary and decimal floating-point types.

2008-10-28  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/37931
	* fold-const.c (distribute_bit_expr): Convert common, left and
	right arguments to type.

2008-10-28  Nick Clifton  <nickc@redhat.com>

	* config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
	* config/mn10300/mn10300.c (fp_regs_to_save): Test the
	call_really_used_regs array rather than the call_used_regs array.
	(mn10300_get_live_callee_saved_regs, expand_prologue,
	expand_epilogue, output_tst): Likewise.

2008-10-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/37378
	* df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
	(df_get_entry_block_def_set): Neither here.
	(df_get_regular_block_artificial_uses): Add EH_USES registers.

	PR tree-optimization/37879
	* predict.c (tree_estimate_probability): Check if last_stmt is
	non-NULL before dereferencing it.

2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-int.h (ira_allocno): Add member updated_cover_class_cost.
	(ALLOCNO_UPDATED_COVER_CLASS_COST): New.
	(ira_fast_allocation): Remove the prototype.

	* ira-color.c (update_copy_costs, allocno_cost_compare_func,
	assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
	(color_pass): Modify the updated costs.
	(ira_color): Rename to color.  Make it static.
	(ira_fast_allocation): Rename to fast_allocation.  Make it static.
	(ira_color): New function.

	* ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
	change.

	* ira-lives.c (last_call_num, allocno_saved_at_call): New
	variables.
	(set_allocno_live, clear_allocno_live, mark_ref_live,
	mark_ref_dead): Invalidate corresponding element of
	allocno_saved_at_call.
	(process_bb_node_lives): Increment last_call_num.  Setup
	allocno_saved_at_call.  Don't increase ALLOCNO_CALL_FREQ if the
	allocno was already saved.
	(ira_create_allocno_live_ranges): Initiate last_call_num and
	allocno_saved_at_call.

	* ira-build.c (ira_create_allocno): Initiate
	ALLOCNO_UPDATED_COVER_CLASS_COST.
	(create_cap_allocno, propagate_allocno_info,
	remove_unnecessary_allocnos): Remove setting updated costs.
	(ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.

	* ira.c (ira):  Don't call ira_fast_allocation.

	* ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
	updated costs.

2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/37813
	* ira-conflicts.c (process_regs_for_copy): Remove class subset check.

	* ira-int.h (ira_hard_regno_cover_class): New.

	* ira-lives.c (mark_reg_live, mark_reg_dead,
	process_bb_node_lives): Use ira_hard_regno_cover_class.

	* ira.c (reg_class ira_hard_regno_cover_class): New global variable.
	(setup_hard_regno_cover_class): New function.
	(ira_init): Call setup_hard_regno_cover_class.

	* ira-costs.c (cost_class_nums): Add comment.
	(find_allocno_class_costs): Initiate cost_class_nums.
	(setup_allocno_cover_class_and_costs): Check cost_class_nums.

2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/37884
	* ira-build.c (copy_live_ranges_to_removed_store_destinations):
	Rename to copy_info_to_removed_store_destinations.  Propagate
	conflict hard regs and register stack attribute.

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

	PR middle-end/37316
	* pa.c (function_arg_padding):  Pad complex and vector types
	upward in 64-bit runtime.
	(function_arg): Use BLKmode for PARALLEL in 64-bit runtime.

2008-10-26  Matthias Klose  <doko@ubuntu.com>

	* doc/install.texi: Document requirements on antlr.

2008-10-25  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
	first.

2008-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/37841
	* function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
	is defined, use it to modify the constant offset.

	* doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.

	* config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
	and short arguments to the correct location as mandated by the ABI.

2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR rtl-optimization/37769
	* regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.

2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
	unwind-dw2-Os-4-200.o.

2008-10-24  Joseph Myers  <joseph@codesourcery.com>

	* c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
	(convert_for_assignment): Remove ic_argpass_nonproto cases.

2008-10-24  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/36038
	* tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
	add sizetype IV with initial value zero instead of pointer type.

2008-10-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/7543
	* value-prof.c (gimple_stringop_fixed_value): Use parentheses
	around bit operation.
	* profile.c (is_edge_inconsistent): Likewise.
	* fold-const.c (truth_value_p): Move from here...
	* tree.h (truth_value_p): ... to here.
	* c-tree.h (c_expr): Update description of original_code.
	* c-typeck.c (parser_build_unary_op): Set original_code.
	(parser_build_binary_op): Update call to warn_about_parentheses.
	* c-common.c (warn_about_parentheses): Take two additional
	arguments of the operands. Use a switch. Quote operators
	appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
	Add warning about !x | y and !x & y.
	* c-common.h (warn_about_parentheses): Update declaration.

2008-10-24  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
	check_p_tool, check_p_vars, check_p_subno, check_p_comma,
	check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
	New variables.
	(check-subtargets, check-%-subtargets, check-parallel-%): New targets.
	(check-%): For test targets listed in lang_checks_parallelized
	if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
	run the testing in multiple make goals, possibly parallel, and
	afterwards run dg-extract-results.sh to merge the sum and log files.

2008-10-24  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_canonicalize_move_class): New function.
	(mips_move_to_gpr_cost): Likewise.
	(mips_move_from_gpr_cost): Likewise.
	(mips_register_move_cost): Make more fine-grained.

2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (graphite_apply_transformations): Check for
	-fgraphite-identity.
	* toplev.c (process_options): Add graphite_identity.
	* tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.

2008-10-23  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
	mulhisihl and mulhisihh builtins.

	From Jie Zhang  <jie.zhang@analog.com>
	* config/bfin/bfin.md (composev2hi): Put operands into vector
	with correct order.

2008-10-22  Chao-ying Fu  <fu@mips.com>

	* config/mips/mips.opt (msmartmips): Accept -mno-smartmips.

2008-10-22  Bernd Schmidt  <bernd.schmidt@analog.com>

	From Mike Frysinger  <michael.frysinger@analog.com>
	* config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
	BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
	* config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
	and bf518.  Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
	Add 0.6 for bf533, bf532, and bf531.  Add 0.5 for bf538 and bf539.
	Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
	* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
	for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
	for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518.  Define
	__ADSPBF51x__ for all of them.
	* config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
	-mcpu bf512, bf514, bf516, and bf518.
	* config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
	bf512-none, bf514-none, bf516-none, and bf518-none.
	* config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
	* config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
	* doc/invoke.texi (Blackfin Options): Document that
	-mcpu now accepts bf512, bf514, bf516, and bf518.

2008-10-22  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/37882
	* fold-const.c (build_range_type): For 1 .. signed_max
	range call build_nonstandard_inter_type if signed_type_for
	returned a type with bigger precision.

2008-10-22  Richard Guenther  <rguenther@suse.de>

	* tree.def (COMPLEX_TYPE): Constrain element type.
	* tree.c (build_complex_type): Assert that.
	* tree-ssa-structalias.c (could_have_pointers): Complex types
	cannot have pointers.

2008-10-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/30949
	* c-typeck.c (convert_for_assignment): Do not give declaration's
	location for builtins. Spell out which type was expected and which
	was given.

2008-10-22  Nick Clifton  <nickc@redhat.com>

	* config/frv/frv.h (HARD_REGNO_RENAME_OK): Define.  Do not allow
	the fdpic register to be a target when running in fdpic mode.

2008-10-22  Rafael Espindola  <espindola@google.com>

	* ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
	newly created statements.

2008-10-22  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/37633
	* config/sh/sh.c (sh_hard_regno_mode_ok): New function.
	* config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
	* config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.

2008-10-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/37880
	* doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
	Adjust -mcmodel=medium description for 2005-07-31 changes.

2008-10-22  Jan Hubicka  <jh@suse.cz>
	    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/35853
	* doc/invoke.texi: Remove references to obsoleted -d dumps.

2008-10-21  Richard Henderson  <rth@redhat.com>

	PR 37815
	* emit-rtl.c (get_spill_slot_decl): Export.
	* emit-rtl.h (get_spill_slot_decl): Declare.
	* var-tracking.c (vt_add_function_parameters): Relax assertion
	on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.

2008-10-21  Bob Wilson  <bob.wilson@acm.org>

	* var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
	REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
	of from insn.

2008-10-21  Adam Nemet  <anemet@caviumnetworks.com>

	PR middle-end/37669
	* tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
	processed by get_maxval_strlen.

2008-10-21  David Edelsohn  <edelsohn@gnu.org>

	PR target/35485
	* tree.c (get_file_function_name): Copy first_global_object_name.
	Centralize call to clean_symbol_name.

2008-10-21  Sandra Loosemore  <sandra@codesourcery.com>

	* config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
	* config/svr4.h (SVR4_ASM_SPEC): New.
	(ASM_SPEC): Inherit from SVR4_ASM_SPEC.
	* config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.

	* doc/invoke.texi (Option Summary): Add -T to linker options.
	(Link Options): Document -T.

2008-10-21  Jakub Jelinek  <jakub@redhat.com>

	* tree-inline.c (tree_inlinable_function_p): Remove tuples
	debugging hack.

	* gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.

	PR debug/37020
	* c-decl.c (merge_decls): Don't call outlining_inline_function hook.

2008-10-20  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
	part of expression.

2008-10-20  Tobias Schlüter  <tobi@gcc.gnu.org>

	* doc/install.texi: Fix typos in previous patch.

2008-10-19  Tobias Schlüter  <tobi@gcc.gnu.org>

	* doc/install.texi: Document in-tree building of gcc and mpfr.

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

	* tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.

2008-10-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/30260
	* c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
	(build_enumerator): Convert enumerators that fit in integer to
	integer type.

2008-10-18  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (unnamed peephole2): Do not force memory
	operands of arith or logical instructions into registers for
	non-TARGET_READ_MODIFY targets.

	(ffs_cmove): Change operand 0 predicate to register_operand.
	Change operand 1 predicate to nonimmediate_operand.
	(ffsdi2): Ditto.
	(*ffs_no_cmove): Change operand 0 predicate to register_operand.

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

	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
	VIEW_CONVERT_EXPR case against invalid gimple.

2008-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>

	* c-parser.c (c_parser_binary_expression): Silence the
	uninitialized variable warning emitted for binary_loc.

2008-10-16  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (phi_translate_set): Add constants to phi
	translation cache.

2008-10-16  Joseph Myers  <joseph@codesourcery.com>

	PR c/33192
	* c-typeck.c (build_unary_op): Use omit_one_operand for
	IMAGPART_EXPR of real argument.

2008-10-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/37664
	* fold-const.c (fold_binary): When optimizing comparison with
	highest or lowest type's value, don't consider TREE_OVERFLOW.

2008-10-16  David Edelsohn  <edelsohn@gnu.org>

	PR target/35483
	* Makefile.in (coverage.o): Depend on $(TM_P_H).
	* coverage.c: Include tm_p.h.
	* config/rs6000/x-aix (jc1): Override LDFLAGS.
	* config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
	dollar signs from PREFIX.
	* config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
	instead of manual strip_name_encoding.

2008-10-16  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37418
	* tree-ssa.c (useless_type_conversion_p_1): Do not treat
	volatile qualified functions or methods as relevant.

2008-10-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/37525
	* tree.c (int_fits_type_p): Rewrite using double_int.  Zero extend
	sizetype unsigned constants, both in the case of C and bounds.

2008-10-15  Jan Hubicka  <jh@suse.cz>

	* ira-emit.c (change_regs): Return false when replacing reg by itself.

2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/37633
	* ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
	HARD_REGNO_CALL_PART_CLOBBERED.

2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/37535
	* ira-lives.c (mark_early_clobbers): Remove.
	(make_pseudo_conflict, check_and_make_def_use_conflicts,
	check_and_make_def_conflicts,
	make_early_clobber_and_input_conflicts,
	mark_hard_reg_early_clobbers): New functions.
	(process_bb_node_lives): Call
	make_early_clobber_and_input_conflicts and
	mark_hard_reg_early_clobbers.  Make hard register inputs live again.

	* doc/rtl.texi (clobber): Change descriotion of RA behaviour for
	early clobbers of pseudo-registers.

2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/37674
	* ira-build.c (ira_flattening): Recalculate
	ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
	from the scratch instead of the propagation.

2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/rtl.texi (const_double): Remove the "addr" operand.
	Describe CONST_DOUBLE_* macros under const_double rather
	than const_vector.
	(const_fixed): Fix the operand description.
	(const): Add an @findex directive.
	(CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
	after the constant rtl table.
	(fix): Combine floating-point and fixed-point descriptions.
	Fix hyphenation.
	* sched-deps.c (sched_analyze_2): Remove reference to
	CONST_DOUBLE_CHAIN.

2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
	UNSPEC_GOTSYM_OFFs.
	* config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
	for UNSPEC_GOTSYM_OFFs.
	* config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
	(add_GOT_to_pic_reg): Use it.
	* config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.

2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
	    Harsha Jagasia  <harsha.jagasia@amd.com>

	PR tree-optimization/37485
	* graphite.c (gmp_cst_to_tree): Moved.
	(iv_stack_entry_is_constant): New.
	(iv_stack_entry_is_iv): New.
	(loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
	(loop_iv_stack_insert_constant): New.
	(loop_iv_stack_pop): Use new datatpype.
	(loop_iv_stack_get_iv): Same.
	(loop_iv_stack_get_iv_from_name): Same.
	(loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
	(loop_iv_stack_patch_for_consts): New.
	(loop_iv_stack_remove_constants): New.
	(graphite_create_new_loop): Use loop_iv_stack_push_iv.
	(translate_clast): Call loop_iv_stack_patch_for_consts and
	loop_iv_stack_remove_constants.
	(gloog): Use new datatype.  Redirect construction edge to end
	block to avoid accidental deletion.
	* graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
	iv stack entry.
	(union iv_stack_entry_data): New.  Data in iv stack entry.
	(struct iv_stack_entry): New.  Datatype for iv stack entries.

2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
	* graphite.c (free_scop): Same.
	(build_scops): Same.
	(free_scattering): New.
	(build_cloog_prog): Call free_scattering.
	(patch_phis_for_virtual_defs): Fix memleak.
	(graphite_trans_bb_strip_mine): Same.
	(limit_scops): Same.

2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
	    Harsha Jagasia  <harsha.jagasia@amd.com>

	PR tree-optimization/37828
	* graphite.c (graphite_trans_loop_block): Do not loop block
	single nested loops.

2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/37686
	* tree-loop-linear.c (linear_transform_loops): Build a
	loop nest vector.  Pass it to lambda_compute_access_matrices.
	* tree-data-ref.h (struct access_matrix): Store the loop nest
	relative to which it encodes the information.
	(AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
	(am_vector_index_for_loop): Reimplemented: iterate over the
	loop nest for finding the loop index in the access matrix.
	(lambda_compute_access_matrices): Update declaration.
	* lambda-code.c (build_access_matrix): Pass the loop nest and
	record it.
	(lambda_compute_access_matrices): Same.

2008-10-15  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.h (TARGET_DFP): This requires TARGET_HARD_FLOAT.
	* config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
	TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
	already implies hard float.  Also fix several insn condition
	with TARGET_DFP which shall require TARGET_HARD_DFP instead.

2008-10-15  David Edelsohn  <edelsohn@gnu.org>

	PR target/35483
	Based on patches by Laurent Vivier.
	* xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
	* config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
	* config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
	dollar sign to underscore.
	(ASM_OUTPUT_EXTERNAL): Same.
	(ASM_OUTPUT_LABELREF): New.
	* config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.

	* config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
	* config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
	* config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
	* config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.

2008-10-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/36881
	* tree-switch-conversion.c (check_final_bb): For flag_pic, check
	that each value doesn't need runtime relocations, for !flag_pic
	check that each value is just a valid initializer constant.

2008-10-14  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
	LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
	COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
	Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
	GR_AND_ACC_REGS.
	(REG_CLASS_NAMES): Update accordingly.
	(REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
	rather than an unpredictable descriptive string.
	* config/mips/mips.c (mips_register_move_cost): Remove comment.
	(mips_register_move_cost): Check for specific COP*_REGS classes,
	instead of ALL_COP_AND_GR_REGS.
	(mips_ira_cover_classes): New function.
	(mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
	(TARGET_IRA_COVER_CLASSES): Define.

2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/37553
	* tree.c (build_type_attribute_qual_variant): Hash on the
	unqualified type, and don't overwrite an existing
	(type_hash_eq): Make the TYPE_NAME of the types significant, to
	allow distinguishing between wchar_t and its underlying type. This
	also means that we'll retain a little more typedef information.

2008-10-14  Andrey Belevantsev  <abel@ispras.ru>
	    Dmitry Melnik  <dm@ispras.ru>
	    Dmitry Zhurikhin  <zhur@ispras.ru>
	    Alexander Monakov  <amonakov@ispras.ru>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	* target.h (struct gcc_target): Update prototypes of needs_block_p
	and gen_spec_check.
	* haifa-sched.c (create_check_block_twin): Update calls to the above.
	* sel-sched.c (create_speculation_check): Likewise.
	* doc/tm.texi: Provide documentation for new target hooks.

	* config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
	(ia64_gen_spec_insn): Removed.
	(get_spec_check_gen_function, insn_can_be_in_speculative_p,
	ia64_gen_spec_check): New static functions.
	(ia64_alloc_sched_context, ia64_init_sched_context,
	ia64_set_sched_context, ia64_clear_sched_context,
	ia64_free_sched_context, ia64_get_insn_spec_ds,
	ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
	(ia64_needs_block_p): Change prototype.
	(ia64_gen_check): Rename to ia64_gen_spec_check.
	(ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter
	into declaration, add special memory dependencies handling.
	(TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
	TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
	TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
	TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
	Define new target hooks.
	(TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
	(ia64_optimization_options): Turn on selective scheduling with -O3,
	disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
	default with selective scheduling.
	(ia64_override_options): Initialize align_loops and align_functions
	to 32 and 64, respectively.  Set global selective scheduling flags
	according to target-dependent flags.
	(rtx_needs_barrier): Support UNSPEC_LDS_A.
	(group_barrier_needed): Use new mstop-bit-before-check flag.
	Add heuristic.
	(dfa_state_size): Make global.
	(spec_check_no, max_uid): Remove.
	(mem_ops_in_group, current_cycle): New variables.
	(ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
	Initialize new variables.
	(is_load_p, record_memory_reference): New functions.
	(ia64_dfa_sched_reorder): Lower priority of loads when limit is
	reached.
	(ia64_variable_issue): Change use of current_sched_info to
	sched_deps_info.  Update comment.  Note if a load or a store is issued.
	(ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
	advance if maximal number of loads or stores was issued on current
	cycle.
	(scheduled_good_insn): New static helper function.
	(ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
	a group barrier is needed.  Fix vertical spacing.  Guard the code
	doing state transition with last_scheduled_insn check.
	Mark that a stop bit should be before current insn if there was a
	cycle advance.  Update current_cycle and mem_ops_in_group.
	(ia64_h_i_d_extended): Change use of current_sched_info to
	sched_deps_info. Reallocate stops_p by larger chunks.
	(struct _ia64_sched_context): New structure.
	(ia64_sched_context_t): New typedef.
	(ia64_alloc_sched_context, ia64_init_sched_context,
	ia64_set_sched_context, ia64_clear_sched_context,
	ia64_free_sched_context): New static functions.
	(gen_func_t): New typedef.
	(get_spec_load_gen_function): New function.
	(SPEC_GEN_EXTEND_OFFSET): Declare.
	(ia64_set_sched_flags): Check common_sched_info instead of *flags.
	(get_mode_no_for_insn): Change the condition that prevents use of
	special hardware registers so it can now handle pseudos.
	(get_spec_unspec_code): New function.
	(ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
	ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
	(ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
	during selective scheduling.
	(ia64_speculate_insn): Use ds_get_speculation_types when
	determining whether we need to change the pattern.
	(SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
	(ia64_spec_check_src_p): Support new speculation/check codes.
	(struct bundle_state): New field.
	(issue_nops_and_insn): Initialize it.
	(insert_bundle_state): Minimize mid-bundle stop bits.
	(important_for_bundling_p): New function.
	(get_next_important_insn): Use important_for_bundling_p.
	(bundling): When shifting TImode from unimportant insns, ignore
	also group barriers.  Assert that best state is found before
	the backward bundling pass.  Print number of mid-bundle stop bits.
	Minimize mid-bundle stop bits.  Check correct calculation of
	mid-bundle stop bits.
	(ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
	(final_emit_insn_group_barriers): Emit stop bits before insns starting
	a new cycle.
	(sel2_run): New variable.
	(ia64_reorg): When flag_selective_scheduling2 is set, run the
	selective scheduling pass instead of schedule_ebbs.

	* config/ia64/ia64.md (speculable1, speculable2): New attributes.
	(UNSPEC_LDS_A): New UNSPEC.
	(movqi_internal, movhi_internal, movsi_internal, movdi_internal,
	movti_internal, movsf_internal, movdf_internal,
	movxf_internal): Make visible.  Add speculable* attributes.
	(output_c_nc): New mode attribute.
	(mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
	mov<mode>_nc, zero_extend<mode>di2_nc,
	advanced_load_check_nc_<mode>): New insns.
	(zero_extend*): Add speculable* attributes.

	* config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
	(msched-stop-bits-after-every-cycle): Likewise.
	(msched-max-memory-insns, msched-max-memory-insns-hard-limit):
	Likewise.
	(msched-spec-verbose): Remove.
	(msched-prefer-non-data-spec-insns,
	msched-prefer-non-control-spec-insns,
	msched-count-spec-in-critical-path,
	msel-sched-dont-check-control-spec): Use Target  Report Var
	instead of Common Report Var.

	* config/ia64/itanium2.md: Remove incorrect bypass.

	* config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.

2008-10-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/37805
	* opts.c (common_handle_option): Don't ICE on -fhelp=joined
	and -fhelp=separate.

2008-10-14  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/rs6000.md (cell_micro): Fix formatting.

2008-10-13  Joseph Myers  <joseph@codesourcery.com>

	* combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
	non-integer modes.

2008-10-13  Matthias Klose  <doko@ubuntu.com>

	* config/pa/linux-atomic.c: Work around missing header file
	for hppa64-linux-gnu targets.

2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
	    Kaushal Kantawala  <Kaushal_Kantawala@playstation.sony.com>
	    Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
	    Grace Cao  <grace_cao@playstation.sony.com>

	* doc/invoke.texi (-mgen-cell-microcode): Document.
	(-mwarn-cell-microcode): Document.
	* cfglayout.c (locator_location): Export.
	* rtl.h (locator_location): Define prototype.
	* config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
	New predicate.
	* rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
	* config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
	(mwarn-cell-microcode): New option.
	* rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
	(rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
	cell and not already set.
	Turn off string instructions if not generating cell microcode.
	(rs6000_final_prescan_insn): New function that warns about microcoded
	instructions.
	* config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
	* config/rs6000/rs6000.md
	Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
	the instruction would have been microcoded on the Cell.  Set
	cell_micro to always on unnamed patterns for the string instructions.
	(cell_micro): Update definition, remove load/store conditional
	microcoded.
	(sign_extend:DI): Define new pattern for non microcoded version.
	(sign_extend:SI): Likewise.
	(compare (div:P)): Set cell_micro to not.
	(andsi3): Define as an expand.
	(andsi3_mc): New pattern.
	(andsi3_nomc): New pattern.
	(andsi3_internal0_nomc): New pattern.
	(andsi3_internal2): Rename to ...
	(andsi3_internal2_mc): this and enable iff generating microcode.
	(andsi3_internal3): Rename to ...
	(andsi3_internal3_mc): this and enable iff generating microcode.
	(andsi3_internal4): Enable iif generating microcode.
	(andsi3_internal5): Rename to ..
	(andsi3_internal5_mc): this and enable iff generating microcode.
	(andsi3_internal5_nomc): New pattern.
	(extzvdi_internal1): Enable iff generating microcode.
	(extzvdi_internal2): Likewise.
	(rotlsi3_internal7): Set cell_micro to always if non immediate form.
	(anddi3): Change to expand.
	(anddi3_mc): Rename from anddi3.
	(anddi3_no_mc): New pattern.
	(anddi3_internal2): Rename to ..
	(anddi3_internal2_mc): this and enable iff generating microcode.
	(anddi3_internal2_nomc): New pattern.
	(anddi3_internal3): Rename to ..
	(anddi3_internal3_mc): this and enable iff generating microcode.
	(anddi3_internal3_nomc): New pattern.
	(movti_string): Set cell_micro to always if TARGET_STRING.
	(stmsi8): Set cell_micro to always.
	(stmsi7): Likewise.
	(stmsi6): Likewise.
	(stmsi5): Likewise.
	(stmsi4): Likewise.
	(stmsi3): Likewise.
	(stmsi8_power): Likewise.
	(stmsi7_power): Likewise.
	(stmsi6_power): Likewise.
	(stmsi5_power): Likewise.
	(stmsi4_power): Likewise.
	(stmsi3_power): Likewise.
	(movsi_update2): Enable iff generating microcode.
	(movhi_update3): Likewise.
	(lmw): Set cell_micro to always.

2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
	* config/s390/s390.c (machine_function): Remove
	decomposed_literal_pool_addresses_ok_p.
	(s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
	the difference of two labels.
	(s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
	(s390_pool_offset): New function.
	(s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
	(s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.

2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>

	* doc/install.texi (powerpc-*-*): Require binutils 2.15.
	(powerpc*-*-linux-gnu*): Describe.
	* config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
	* config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
	config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
	config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
	config/rs6000/e500crtres32gpr.asm,
	config/rs6000/e500crtres64gpr.asm,
	config/rs6000/e500crtres64gprctr.asm,
	config/rs6000/e500crtrest32gpr.asm,
	config/rs6000/e500crtrest64gpr.asm,
	config/rs6000/e500crtresx32gpr.asm,
	config/rs6000/e500crtresx64gpr.asm,
	config/rs6000/e500crtsav32gpr.asm,
	config/rs6000/e500crtsav64gpr.asm,
	config/rs6000/e500crtsav64gprctr.asm,
	config/rs6000/e500crtsavg32gpr.asm,
	config/rs6000/e500crtsavg64gpr.asm,
	config/rs6000/e500crtsavg64gprctr.asm: Use it.
	* config/rs6000/crtsavres.asm: Really remove.

2008-10-13  Kai Tietz  <kai.tietz@onevision.com>

	Fix PR/25502
	* c-format.c (convert_format_name_to_system_name): Use
	TARGET_OVERRIDES_FORMAT_INIT.
	* config.gcc (extra_options): Add for mingw targets mingw.opt.
	* config/i386/mingw.opt: New.
	* config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
	* config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
	(ms_printf_length_specs): Removed const specifier.
	* doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
	* doc/invoke.texi (Wno-pedantic-ms-format): New.

2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
	* doc/install.texi: Bump recommended MPFR to 2.3.2.

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

	PR middle-end/37808
	* df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
	sure that ref has valid bb.

2008-10-12  Richard Henderson  <rth@redhat.com>

	PR middle-end/37447
	* Makefile.in (reload1.o): Depend on EMIT_RTL_H.
	* alias.c (value_addr_p, stack_addr_p): Remove.
	(nonoverlapping_memrefs_p): Remove IRA special case.
	* emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
	* emit-rtl.h (set_mem_attrs_for_spill): Declare.
	* reload1.c (alter_reg): Use it.

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

	* config/i386/driver-i386.c (detect_caches_cpuid2): Use array
	of registers instead of eax, ebx, ecx and edx.  Use for loop
	and check register for non-zero value before the call
	to decode_caches_intel.

2008-10-11  Kenneth Zadeck  <zadeck@naturalbridge.com>

	PR rtl-optimization/37448
	* df.h (df_ref_class): New enum.
	(DF_REF_TYPE_NAMES, df_ref_extract): Removed.
	(struct df_ref): Replaced with union df_ref_d.
	(df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
	New members of df_ref_d union.
	(DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
	DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
	DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
	DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
	DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
	DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
	(DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
	(df_scan_bb_info, df_bb_regno_first_def_find,
	df_bb_regno_last_def_find, df_find_def, df_find_use,
	df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
	debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
	df_ref_create, df_ref_remove, df_compute_accessed_bytes,
	df_get_artificial_defs, df_get_artificial_uses, union_defs)
	Replaced struct df_ref * with df_ref.
	* df-scan.c (df_collection_rec, df_null_ref_rec,
	df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
	df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
	df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
	df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
	df_reorganize_refs_by_reg_by_reg,
	df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
	df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
	df_sort_and_compress_refs, df_install_ref, df_install_refs,
	df_ref_record, df_get_conditional_uses, df_get_call_refs,
	df_bb_refs_record, df_exit_block_uses_collect,
	df_record_exit_block_uses, df_reg_chain_mark,
	df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
	df_ref * with df_ref.
	(df_ref_record, df_uses_record, df_ref_create_structure): Added
	df_ref_class parameter.
	(df_scan_problem_data): Added new pools for different types of refs.
	(df_scan_free_internal, df_scan_alloc, df_free_ref,
	df_ref_create_structure): Processed new ref pools.
	(df_scan_start_dump): Added counts of refs and insns.
	(df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
	df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
	df_entry_block_defs_collect, df_exit_block_uses_collect): Added
	code to pass df_ref_class down to ref creation functions.
	(df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
	df_reg_chain_mark): Use macros to hide references to df_refs.
	(df_ref_chain_change_bb): Removed.
	(df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
	(df_ref_equal_p, df_ref_compare, df_ref_create_structure):
	Enhanced to understand df_ref union structure.
	* fwprop.c (local_ref_killed_between_p, use_killed_between,
	all_uses_available_at, update_df, try_fwprop_subst,
	forward_propagate_subreg, forward_propagate_and_simplify,
	forward_propagate_into, fwprop, fwprop_addr): Replaced struct
	df_ref * with df_ref.
	(use_killed_between, all_uses_available_at): Use macros to hide
	references to df_refs.
	* regstat.c (regstat_bb_compute_ri,
	regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
	df_ref.
	* see.c (see_handle_relevant_defs, see_handle_relevant_uses,
	see_handle_relevant_refs, see_analyze_one_def,
	see_update_relevancy, see_propagate_extensions_to_uses): Replaced
	struct df_ref * with df_ref.
	* ra-conflict.c (record_one_conflict, clear_reg_in_live,
	global_conflicts): Replaced struct df_ref * with df_ref.
	* ddg.c (create_ddg_dep_from_intra_loop_link,
	add_cross_iteration_register_deps, build_inter_loop_deps):
	Replaced struct df_ref * with df_ref.
	(create_ddg_dep_from_intra_loop_link,
	add_cross_iteration_register_deps): Use macros to hide references
	to df_refs.
	* auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
	df_ref * with df_ref.
	* df-core.c (df_bb_regno_first_def_find,
	df_bb_regno_last_def_find, df_find_def, df_find_use,
	df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
	debug_df_ref): Replaced struct df_ref * with df_ref.
	(df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
	* cse.c (cse_extended_basic_block): Replaced struct df_ref * with
	df_ref.
	* web.c (union_defs, entry_register, replace_ref, web_main):
	Replaced struct df_ref * with df_ref.
	(union_defs, replace_ref): Use macros to hide references to df_refs.
	* global.c (compute_regs_asm_clobbered, build_insn_chain):
	Replaced struct df_ref * with df_ref.
	* ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
	* sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets):
	Replaced struct df_ref * with df_ref.
	* ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
	mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
	with df_ref.
	* local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
	* df-byte-scan.c (df_compute_accessed_bytes_extract,
	df_compute_accessed_bytes_strict_low_part,
	df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
	Replaced struct df_ref * with df_ref.
	(df_compute_accessed_bytes): Use macros to hide references to df_refs.
	* init-regs.c (initialize_uninitialized_regs): Replaced struct
	df_ref * with df_ref.
	* loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
	check_dependency, check_dependencies, record_uses): Replaced
	struct df_ref * with df_ref.
	(invariant_for_use, check_dependency): Use macros to hide
	references to df_refs.
	* loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
	get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
	iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
	(iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
	references to df_refs.
	* ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
	with df_ref.
	* combine.c (create_log_links): Replaced struct df_ref * with df_ref.
	* df-problems.c (df_rd_bb_local_compute_process_def,
	df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
	df_chain_unlink_1, df_chain_unlink, df_chain_copy,
	df_chain_remove_problem, df_chain_create_bb_process_use,
	df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
	df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
	df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
	df_byte_lr_simulate_artificial_refs_at_top,
	df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
	df_note_bb_compute, df_note_add_problem, df_simulate_defs,
	df_simulate_uses, df_simulate_artificial_refs_at_end,
	df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
	df_ref.
	(df_chain_dump): Use macros to hide references to df_refs.
	* config/mips/mips.c (r10k_simplify_address): Replaced struct
	df_ref * with df_ref.
	* dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
	mark_artificial_uses, mark_reg_dependencies,
	byte_dce_process_block): Replaced struct df_ref * with df_ref.

2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
	head comment.
	(array_ref_element_size): Likewise.
	(array_ref_low_bound): Likewise.
	(array_ref_up_bound): Likewise.
	* expr.c (contains_packed_reference): Likewise.
	(array_ref_element_size): Likewise.
	(array_ref_low_bound): Likewise.
	(array_ref_up_bound): Likewise.
	* tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
	with ARRAY_RANGE_REF.
	(idx_find_step): Likewise.
	(idx_record_use): Likewise.
	(strip_offset_1): Likewise.
	(idx_remove_ssa_names): Likewise.

2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
	    Andi Kleen  <ak@linux.intel.com>

	* config/i386/cpuid.h (__cpuid_count): New defines.
	* config/i386/driver-i386.c (struct cache_desc): New structure.
	(describe_cache): Use struct cache_desc to pass cache descriptions.
	(detect_l2_cache): Ditto. Rename from decode_l2_cache.
	(detect_caches_amd): Use struct cache_desc to describe caches.
	(decode_caches_intel): Use struct cache_desc to pass cache
	descriptions.  Update descriptions to match latest (rev -032,
	December 2007) CPUID documentation.  Do not check valid bit here.
	Check for Xeon MP value 0x49 problems.
	(detect_caches_cpuid2): New function, split from detect_caches_intel.
	Check valid bit before calling decode_caches_intel.  Detect number
	of times to repeat CPUID instruction.
	(detect_caches_cpuid4): New function.
	(detect_caches_intel): Depending on max_level, call
	detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
	only when other methods fail to provide valid L2 cache description.

2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/37608
	* pa.md (call, call_value): Generate an rtx for register r4 and pass
	it to PIC call patterns.
	(call_symref_pic): Revise pattern to expose PIC register save.  Remove
	code generation and attributes from pattern.  Change peephole2 to
	split for noreturn case.  Revise split pattern for non noreturn case.
	(call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
	call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
	* pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
	asserts.

2008-10-11  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
	(addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
	and fp_type.
	(divdf3): Reformat long line.

2008-10-11  Michael J. Eager  <eager@eagercon.com>

	* config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
	-mfpu options.
	(rs6000_handle_option): Process -mfpu options.
	* config/rs6000/rs6000.h (TARGET_XILINX_FPU): New.
	(enum fpu_type_t): New.
	* config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
	(addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
	fp_type.
	(floatsisf2): Remove TARGET_SINGLE_FPU condition.
	(floatdidf2): Add TARGET_SINGLE_FPU condition.
	* config/rs6000/rs6000.opt (-mfpu): New.
	(-mxilinx-fpu): New.
	* config/rs6000/sysv4.h (DRIVER_SELF_SPECS): New.
	* config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
	* config/rs6000/xfpu.md: New. Define Xilinx pipeline.
	* gcc/config.gcc: powerpc-xilinx-eabi target: New.
	* gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.

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

	PR target/35760
	* config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
	LO_SUM on Darwin if mode has just one unit.

2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR debug/37002
	* dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
	has been optimized out.

2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
	instead of PIC_DIRECT_ADDR_P.
	(SECONDARY_INPUT_RELOAD_CLASS): Likewise.
	(IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
	(IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
	(PIC_OFFSET_P): Rename to...
	(PCREL_SYMOFF_P): ...this.
	(PIC_DIRECT_ADDR_P): Delete.
	(MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
	PIC_OFFSET_P.
	(OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
	single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
	UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
	* config/sh/sh.c (print_operand): Remove CONST handling.
	(unspec_caller_rtx_p): Rewrite to use split_const and check
	the operands of UNSPEC bases.
	(fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
	with (unspec [A B] UNSPEC_SYMOFF).
	(nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
	UNSPEC_PCREL_SYMOFF.
	(sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
	* config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
	(UNSPEC_EXTRACT_U16): Likewise.
	(UNSPEC_SYMOFF): Likewise.
	(UNSPEC_PCREL_SYMOFF): Likewise.
	(movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
	of constants.
	(movsi_const_16bit): Likewise.
	(movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
	(GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
	with (unspec [A B] UNSPEC_PCREL_SYMOFF).
	(sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
	with (unspec [A B] UNSPEC_SYMOFF).
	(symPLT_label2reg): Replace (minus A (minus B pc)) with
	 (unspec [A B] PCREL_UNSPEC_SYMOFF).
	* config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
	(Csu): Likewise UNSPEC_EXTRACT_U16.
	(Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
	(Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.

2008-10-10  Stepan Kasal  <skasal@redhat.com>

	* gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
	for loop strip mining and loop blocking.

2008-10-10  Alexandre Oliva  <aoliva@redhat.com>

	* fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
	vary types depending on debug info.

2008-10-10  Alexandre Oliva  <aoliva@redhat.com>

	* c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
	before ensuring it's already computed.

2008-10-09  Jakub Jelinek  <jakub@redhat.com>

	* rtl.h (locator_eq): New decl.
	* cfglayout.c (locator_scope): New function.
	(insn_scope): Use it.
	(locator_eq): New function.
	(fixup_reorder_chain): Search for last insn in src bb
	that has locator set or first insn in dest bb.  Use
	locator_eq instead of == to compare locators.
	* cfgrtl.c (cfg_layout_merge_blocks): Likewise.
	* cfgcleanup.c (try_forward_edges): Use locator_eq instead of
	== to compare locators.

	* tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
	as used.
	* gimple-low.c (lower_function_body, lower_gimple_return,
	lower_builtin_setjmp): Set gimple_block on the newly created stmts.
	* tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
	goto_block on edges if goto_locus is known.

	PR middle-end/37774
	* tree.h (get_object_alignment): Declare.
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Call
	get_object_alignment if needed.
	* builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
	handling to ...
	(get_object_alignment): ... here.  New function.  Try harder to
	determine alignment from get_inner_reference returned offset.

2008-10-08  Jakub Jelinek  <jakub@redhat.com>

	* graphite.c (gloog): Don't call find_unreachable_blocks
	before delte_unreachable_blocks.

	* cfgexpand.c (expand_gimple_cond): Convert also goto_block and
	goto_locus of true_edge into RTL locator.

2008-10-08  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
	(*jcc_btdi_mask_rex64): Ditto.
	(*jcc_btsi): Ditto.
	(*jcc_btsi_mask): Ditto.
	(*jcc_btsi_1): Ditto.
	(*jcc_btsi_mask_1): Ditto.

2008-10-08  Paul Brook  <paul@codesourcery.com>

	* config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
	compatible profiler (__gnu_mcount_nc).
	(SUBTARGET_FRAME_POINTER_REQUIRED): Define.

2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (initial_ix86_tune_features): Add
	X86_TUNE_USE_VECTOR_FP_CONVERTS.
	* config/i386/i386.h (ix86_tune_indices): Likewise.
	(TARGET_USE_VECTOR_FP_CONVERTS): New.

	* config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
	instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
	for FP to FP splitters.

2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
	splitter.

2008-10-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/36635
	PR target/37290
	PR rtl-optimization/37341
	* cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
	to ORIG_BB, pass through ORIG_BB recursively.
	(cse_condition_code_reg): Adjust caller.

2008-10-08  Kai Tietz  <kai.tietz@onevision.com>

	* sdbout.c (sdbout_one_type): Treat the value type
	CONST_DECL for enumerals.

2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md: Remove trailing white spaces.

2008-10-07  Kenneth Zadeck  <zadeck@naturalbridge.com>

	PR rtl-optimization/37448
	* alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
	(stuct alloc_pool_descriptor) [created, allocated, current, peak]:
	Make unsigned long.
	(struct output_info) [count]: Renamed total_created and made
	unsigned long.
	(struct output_info) [size]: Renamed total_allocated and made
	unsigned long.
	(create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
	Properly keep track of desc->size.
	(print_statistics, dump_alloc_pool_statistics): Enhance the
	printing of statistics to print the number of elements and to use
	unsigned longs.

2008-10-07  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/37576
	* opts.h (CL_SAVE): Move up to flags range.
	(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
	CL_COMMON): Renumber.
	(CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
	* opts.c (common_handle_option): Revert last change.

2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-protos.h (ix86_schedule): New.

	* config/i386/i386.c (ix86_schedule): New.
	(override_options): Add schedule to processor_alias_table.  Set
	ix86_schedule from the schedule field in processor_alias_table.
	(ix86_function_specific_save): Save ix86_schedule.
	(ix86_function_specific_restore): Restore ix86_schedule.

	* config/i386/i386.md (cpu): Map to ix86_schedule instead of
	ix86_tune.  Add none and remove i386, i486, pentium4, nocona
	and generic32.

	* config/i386/i386.opt: Add schedule.

	* config/i386/ppro.md: Remove generic32.

2008-10-07  Simon Martin  <simartin@users.sourceforge.net>

	PR c/35437
	* expr.c (count_type_elements): Handle ERROR_MARK.

2008-10-07  Jakub Jelinek  <jakub@redhat.com>

	PR debug/29609
	PR debug/36690
	PR debug/37616
	* basic-block.h (struct edge_def): Add goto_block field.
	* cfglayout.c (fixup_reorder_chain): Ensure that there is at least
	one insn with locus corresponding to edge's goto_locus if !optimize.
	* profile.c (branch_prob): Copy edge's goto_block.
	* cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
	emitted jumps.
	(cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
	locator in between the merged basic blocks if !optimize and needed.
	* cfgexpand.c (expand_gimple_cond): Convert goto_block and
	goto_locus into RTL locator.  For unconditional jump use that
	locator for the jump insn.
	(expand_gimple_cond): Convert goto_block and goto_locus into
	RTL locator for all remaining edges.  For unconditional jump
	use that locator for the jump insn.
	* cfgcleanup.c (try_forward_edges): Avoid the optimization if
	there is more than one edge or insn locator along the forwarding
	edges and !optimize.  If there is just one, set e->goto_locus.
	* tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
	edge's goto_block.
	(move_block_to_fn): Adjust edge's goto_block.

2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/37731
	* expmed.c (expand_mult): Properly check DImode constant in
	CONST_DOUBLE.

2008-10-07  Jakub Jelinek  <jakub@redhat.com>

	PR debug/37738
	* dwarf2out.c (common_block_die_table): New variable.
	(common_block_die_table_hash, common_block_die_table_eq): New
	functions.
	(gen_variable_die): Look up a DW_TAG_common_block die for a particular
	COMMON block in the current scope rather than globally.  Optimize
	DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
	DW_OP_addr SYMBOL_REF+off.

2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
	Return true for non-addressable GIMPLE operands.

2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/24765
	* config/i386/i386.c (initial_ix86_tune_features): Remove
	X86_TUNE_USE_BIT_TEST.
	* config/i386/i386.h (ix86_tune_indices): Likewise.
	(TARGET_USE_BIT_TEST): Removed.

2008-10-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.

2008-10-06  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
	(mul<mode>3_mul3): ... into this new template.

2008-10-06  Aldy Hernandez  <aldyh@redhat.com>

	* gimplify.c (gimplify_arg): Add location argument.  Use it.
	(gimplify_call_expr): Pass location to gimplify_arg.
	(gimplify_modify_expr_to_memcpy): Same.
	(gimplify_modify_expr_to_memset): Same.

2008-10-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Update calls to build_unary_op and build_indirect_ref for location
	changes.

2008-10-06  Aldy Hernandez  <aldyh@redhat.com>

	build_modify_expr.
	* c-decl.c (finish_decl): Pass input_location to build_unary_op.
	* c-typeck.c (array_to_pointer_conversion): Pass location to
	build_unary_op.
	(function_to_pointer_conversion): Use error_at and warning_at.
	(build_indirect_ref): Same.
	(build_array_ref): Pass location to build_binary_op.
	(parser_build_unary_op): Do not set location after calling
	build_unary_op.
	(build_unary_op): Add location argument.  Use it throughout.  Set
	EXPR_LOCATION before returning new tree.
	(build_modify_expr): Same.
	(build_binary_op): Use location throughout.  Set EXPR_LOCATION before
	returning node.
	* c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
	build_indirect_ref, build_modify_expr.
	(c_finish_omp_for): Same.  Use error_at instead of error.
	* c-common.c (c_common_truthvalue_conversion): Pass location to
	build_unary_op.
	(warn_for_div_by_zero): Add location argument.
	* c-common.h: Add argument to build_modify_expr, build_indirect_ref,
	build_unary_op, warn_for_div_by_zero.
	* c-parser.c (c_parser_typeof_specifier): Use
	protected_set_expr_location.
	(c_parser_statement_after_labels): Same.
	(c_parser_condition): Same.
	(c_parser_expr_no_commas): Pass correct location to build_modify_expr.
	(c_parser_conditional_expression): Use protected_set_expr_location.
	(c_parser_unary_expression): Pass location to build_indirect_ref.
	(c_parser_postfix_expression_after_primary): Pass location to
	build_indirect_ref, build_unary_op.
	(c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.

2008-10-06  Joshua Kinard  <kumba@gentoo.org>

	* doc/invoke.texi: List r1x000 family under the -march MIPS option.
	* config/mips/mips.h (PROCESSOR_R10000): New processor_type.
	* config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
	r14000 and r16000.
	(mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
	(mips_issue_rate): Handle PROCESSOR_R10000.
	* config/mips/mips.md (cpu): Add r10000.
	Include r10000.md.
	* config/mips/10000.md: New file.

2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
	* config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
	* config/rs6000/rs6000.c (rs6000_find_base_term): New function.

2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/darwin-protos.h (machopic_function_base_name): Delete.
	(machopic_function_base_sym): Likewise.
	(machopic_gen_offset): Declare.
	* config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
	(ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
	* config/darwin.c (machopic_function_base_name): Delete.
	(machopic_function_base_sym): Likewise.
	(gen_pic_offset): Rename to...
	(machopic_gen_offset): ...this and remove the pic_base argument.
	Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
	is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
	crtl->uses_pic_offset_table.
	(machopic_indirect_data_reference): Use new machopic_gen_offset
	interface.
	(machopic_legitimize_pic_address): Likewise.
	(machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.

	* config/i386/darwin.h (GOT_SYMBOL_NAME): Use
	MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
	* config/i386/i386.c (output_set_got): Likewise.
	(darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
	instead of a MINUS.
	(legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
	(legitimate_address_p): Likewise.
	(output_pic_addr_const): Likewise.
	(output_addr_const_extra): Likewise.
	(ix86_delegitimize_address): Expect darwin_local_data_pic to
	match an UNSPEC rather than a MINUS.
	* config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
	(builtin_setjmp_receiver): Use machopic_gen_offset.
	* config/i386/predicates.md (pic_symbolic_operand): Handle
	UNSPEC_MACHOPIC_OFFSET.

	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
	Use machopic_gen_offset and machopic_operand_p.
	(rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
	(rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
	* config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
	(builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
	Set crtl->uses_pic_offset_table.

2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
	Declare.
	* config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
	* config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
	* config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
	(constant_pool_expr_p): Use split_const and check the base.
	(toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
	instead of a MINUS.
	(legitimate_constant_pool_address_p): Check toc_relative_p
	instead of constant_pool_expr_p.
	(print_operand_address): Always use output_addr_const for
	constant pool addresses.
	(rs6000_output_addr_const_extra): New function.
	(create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.

2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/37535

	* ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
	(mark_ref_live, mark_ref_dead): Use them.
	(def_conflicts_with_inputs_p): Remove.
	(mark_early_clobbers): New function.
	(process_bb_node_lives): Call preprocess_constraints and
	mark_early_clobbers.

	* doc/rtx.texi (clobber): Change how RA deals with clobbers.

2008-10-06  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
	lib with -mthread switch.

2008-10-05  Dodji Seketeli  <dodji@redhat.com>

	PR c++/37410
	* dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
	function in two, making it call a new and reusable
	dwarf2out_imported_module_or_decl() that takes the containing
	BLOCK of the declaration in argument.
	(dwarf2out_imported_module_or_decl_real): New function.
	(decls_for_scope, gen_decl_die, dwarf2out_decl): Take
	IMPORTED_DECL in account.
	* tree.def: Added IMPORTED_DECL node type.
	* tree.h: Added accessors for IMPORTED_DECL nodes.
	* tree.c (init_ttree): Initialise IMPORTED_DECL node type.

2008-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/gimple.texi: Fix some typos, wrap some long lines,
	fix some broken wraps with continuations.
	* tree-ssa-reassoc.c: Fix comment typos.

2008-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/37603
	* pa.c (legitimize_pic_address): Force function labels to memory in
	word mode.

2008-10-04  Anton Blanchard  <anton@samba.org>

	* config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
	(rs6000_split_atomic_op): Same.
	(rs6000_split_compare_and_swap): Same.
	(rs6000_split_compare_and_swapqhi): Same.

2008-10-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
	instead of pointer equality.
	(vn_nary_op_eq): Likewise.

2008-10-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
	condition.
	(fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
	TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".

2008-10-03  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/winnt.c (i386_pe_strip_name_encoding_full):
	Revert previous change.

2008-10-03  Tom Tromey  <tromey@redhat.com>

	* stringpool.c (ggc_alloc_string): Terminate string.

2008-10-03  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (gimplify_function_tree): For -finstrument-functions
	use gimple_bind_{,set_}block instead of gimple_{,set_}block.
	* gimple.h (gimple_bind_set_block): Allow second argument to be NULL.

	PR debug/37726
	* gimplify.c (declare_vars): Use gimple_bind_block instead of
	gimple_block.

2008-10-03  Pascal Obry  <obry@adacore.com>

	* gcov.c (create_file_names): Properly handle UNIX and DOS
	directory separators.
	(make_gcov_file_name): Likewise + convert the ':' DOS drive
	separator to '~' to ensure clean filenames on Windows.

2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/winnt.c (i386_pe_strip_name_encoding_full):
	Add a null terminator to the stripped name.

2008-10-02  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
	TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
	(function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
	TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
	(function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
	(rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
	TARGET_SINGLE_FLOAT.

2008-10-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.

2008-10-02  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37713
	* tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
	and VECTOR_TYPE recurse with useless_type_conversion_p which
	properly handles void pointer conversion.

2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>

	PR target/37528
	* config/i386/mingw32.h (LIBGCC_SPEC): Replace with ..
	(REAL_LIBGCC_SPEC): New.  Always include -lgcc.

2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
	ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
	they translate to non builtins.
	* config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
	opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
	__builtin_vec_promote, __builtin_vec_extract, and
	__builtin_vec_insert.
	* config/rs6000/rs6000.h (enum rs6000_builtins): Add
	ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
	ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
	* config/rs6000/altivec.h (vec_extract): Define
	(vec_insert): Define.
	(vec_splats): Define.
	(vec_promote): Define.

2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
	    Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
	    Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>

	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
	Altivec intrinsics.
	* config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
	prototype.  Add new parameter, blk.
	Use BLKmode for the MEM if blk is true.
	(altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
	ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
	ALTIVEC_BUILTIN_STVRXL.
	Update usage of altivec_expand_lv_builtin.
	Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
	ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
	(altivec_init_builtins): If compiling for the Cell, also define the
	cell VMX builtins.
	* config/rs6000/rs6000.h (rs6000_builtins): Define
	ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
	ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
	ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
	ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
	ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
	ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
	ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
	* config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
	UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
	UNSPEC_STVRX, and UNSPEC_STVRXL.
	(altivec_lvlx): New pattern.
	(altivec_lvlxl): New pattern.
	(altivec_lvrx): New pattern.
	(altivec_lvrxl): New pattern.
	(altivec_stvlx): New pattern.
	(altivec_stvlxl): New pattern.
	(altivec_stvrx): New pattern.
	(altivec_stvrxl): New pattern.
	* config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
	(vec_lvlxl): Likewise.
	(vec_lvrx): Define if PPU is defined.
	(vec_lvrxl): Likewise.
	(vec_stvlx): Define if PPU is defined.
	(vec_stvlxl): Likewise.
	(vec_stvrx): Define if PPU is defined.
	(vec_stvrxl): Likewise.

2008-10-01  Geert Bosch  <bosch@adacore.com>

	* tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.

2008-10-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37617
	* tree-ssa-pre.c (create_expression_by_pieces): During FRE
	do not add to the NEW_SETS.

2008-10-01  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37285
	* tree-vrp.c (execute_vrp): If we optimized away the default
	case make sure to promote the label that got in place of it
	to a default case label.

2008-10-01  Richard Henderson  <rth@redhat.com>

	PR tree-opt/35737
	* tree-complex.c (set_component_ssa_name): Don't optimize
	is_gimple_min_invariant values with ssa_names in abnormal phis.

2008-09-30  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/37662
	* tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
	commutative binary operation if they are in the wrong order and
	fold_build2 produces non-GIMPLE.

2008-09-30  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/37662
	PR tree-optimization/37663
	* tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
	get_value_range with non-SSA_NAME.  Don't assert operands have been
	folded, instead just bail out.

2008-09-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/rs6000/rs6000.md (fnmadds combiner): Revert typo.

2008-09-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37491
	* tree-vect-transform.c (vect_create_data_ref_ptr): Properly
	build restrict-qualified pointers.
	(vectorizable_store): Move alias check later.
	(vectorizable_load): Likewise.

2008-09-30  Paolo Bonzini  <bonzini@gnu.org>

	* c-common.c (empty_if_body_warning): Remove.
	* c-common.h (empty_if_body_warning): Remove.
	* c-parser.c (c_parser_if_body, c_parser_else_body): Implement
	here the -Wempty-body warning for `if' and `else' statements.
	* c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.

2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.opt: Add msse2avx.

	* config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
	* config/i386/linux64.h (ASM_SPEC): Likewise.

	* doc/invoke.texi: Document -msse2avx.

2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.

2008-09-29  Joseph Myers  <joseph@codesourcery.com>

	* ifcvt.c (noce_emit_store_flag): If using condition from original
	jump, reverse it if if_info->cond was reversed.

2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
	non-constant memory if it cannot be forced to constant memory.
	Overhaul surrounding code and factor out common condition.

2008-09-29  Jeff Law  <law@redhat.com>

	* reload1.c (alter_reg): Add missing curly braces.

2008-09-29  Michael J. Eager  <eager@eagercon.com>

	* config/rs6000/predicates.md (easy_fp_constant): Single FP consts
	are easy.
	* config/rs6000/rs6000.c (rs6000_override_options): Move
	rs6000_init_hard_regno_mode_ok after all options changed.
	Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
	(rs6000_handle_option): Process -msingle-float, -mdouble-float,
	-msimple-fpu flags.  Add warning messages if single FP not configured.
	(rs6000_file_start): Output gnu_attribute for single-float.
	(legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
	(rs6000_legitimize_address): Likewise.
	(rs6000_legitimize_reload_address): Likewise.
	(rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
	TARGET_SINGLE_FLOAT.
	(function_arg_advance): Likewise (partial conversion).
	(setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
	(rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
	TARGET_SINGLE_FLOAT.
	(rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
	(rs6000_emit_prologue): Likewise.
	(rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
	TARGET_SINGLE_FLOAT.
	(rs6000_libcall_value): Likewise.
	* config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
	(TARGET_DOUBLE_FLOAT): New default to 1
	(TARGET_SIMPLE_FPU): New default to 0
	(TARGET_SINGLE_FPU): New default to 0
	(TARGET_SINGLE_FLOAT_MODE): New.
	(TARGET_DOUBLE_FLOAT_MODE): New.
	* config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
	TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
	UNITS_PER_FP_WORD
	* config/rs6000/rs6000.md (define_mode_iterator): Condition on
	TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
	(extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
	copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
	nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
	muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
	movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
	floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
	*fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
	fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
	rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
	floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
	movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
	extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
	abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
	cmptf_internal1, *cmptf_internal2): Condition on
	TARGET_DOUBLE_FLOAT.
	(aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
	mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
	*fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
	btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
	floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
	*movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
	TARGET_SINGLE_FLOAT.
	(divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
	* config/rs6000/rs6000.opt (-msingle-float): New.
	(-mdouble-float): New.
	(-msimple-fpu): New.
	* doc/invoke.texi (RS/6000 and PowerPC Options): Add
	-msingle-float, -mdouble-float, -msimple-fpu options.
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
	_SOFT_DOUBLE for -msingle-float.
	* config.gcc: New config for target=powerpc-xilinx-eabi.

2008-09-29  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
	have exit and entry.
	(new_scop): Take entry and exit edge to define new SCoP.
	(sd_region_p): New structure used during SCoP detection.
	(move_scops): Delete.
	(move_sd_regions): New.
	(scopdet_info): Change the definition from edges back to basic_blocks.
	(scopdet_edge_info):  Work on basic_blocks and rename to
	scopdet_basic_block_info.
	(split_difficult_bb): At the moment removed. We should later
	add it at another place.
	(build_scops_1): Work on basic_blocks.
	(bb_in_sd_region): New.
	(find_single_entry_edge): New.
	(find_single_exit_edge): New.
	(create_single_entry_edge): New.
	(sd_region_without_exit): New.
	(create_single_exit_edge): New.
	(unmark_exit_edges): New.
	(mark_exit_edges): New.
	(create_sese_edges): New.
	(build_graphite_scops): New.
	(build_scops): Make SCoPs SESE.
	(limit_scops): Use the new functions.

2008-09-29  Hans-Peter Nilsson  <hp@axis.com>

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

2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR target/37640
	* config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
	address to a register before taking the lower part.

2008-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
	for SHmedia.

2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
	    Kaushal Kantawala  <kaushal_kantawala@playstation.sony.com>

	PR tree-opt/36891
	* tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
	the newly created variable.
	Create a VECTOR_CST of all 1s for vector types.

2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/36575
	* fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.

2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>

	* expmed.c (store_fixed_bit_field): Always use convert_to_mode in
	order to convert between modes.
	(extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.

2008-09-27  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
	if needed.

2008-09-26  Vladimir Makarov  <vmakarov@redhat.com>

	Revert:
	2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
	* ira-lives.c:...
	* doc/rtl.texi:...

2008-09-26  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
	ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
	them to yield false with MIPS16.

2008-09-26  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/37275
	* dwarf2out.c (tls_mem_loc_descriptor): New function.
	(mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
	mem_loc_descriptor failed.  Accept UNSPEC.
	(loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
	fail if one of the loc_descriptor calls for pieces failed.
	(loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
	as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
	if loc_descriptor_from_tree_1 on offset failed.

	PR middle-end/37576
	* opts.c (common_handle_option): Don't call print_specific_help with
	CL_SAVE as first argument.

2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
	    Steve Ellcey  <sje@cup.hp.com>

	* configure: Regenerate for new libtool.
	* aclocal.m4: Ditto.

2008-09-26  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
	alias set on MEM when saving stack pointer.
	* config/rs6000/rs6000.md (allocate_stack): Likewise

2008-09-26  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/37574
	* tree-vectorizer.c (vect_is_simple_use): Fix indentation.
	* tree-vect-transform.c (vect_get_constant_vectors): Use vectype
	instead of vector_type for constants. Take computation out of loop.
	(vect_get_vec_def_for_operand): Use only vectype for constant case,
	and use only vector_type for invariant case.
	(get_initial_def_for_reduction): Use vectype instead of vector_type.

2008-09-25  Jakub Jelinek  <jakub@redhat.com>

	PR c/37645
	* c-common.c (handle_weakref_attribute): Ignore the attribute unless
	the decl is a VAR_DECL or FUNCTION_DECL.

2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/37535
	* ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
	(mark_ref_live, mark_ref_dead): Use them.
	(def_conflicts_with_inputs_p): Remove.
	(mark_early_clobbers): New function.
	(process_bb_node_lives): Call preprocess_constraints and
	mark_early_clobbers.

	* doc/rtl.texi (clobber): Change how RA deals with clobbers.

2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/37448
	* ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
	(ira_compress_allocno_live_ranges): New prototype.

	* ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
	(coalesced_allocnos_living_at_program_points): New.
	(coalesced_allocnos_live_at_points_p,
	set_coalesced_allocnos_live_points): New functions.
	(coalesce_spill_slots): Rewrite.

	* ira-lives.c (remove_some_program_points_and_update_live_ranges,
	ira_compress_allocno_live_ranges): New functions.

	* ira-build.c (ira_flattening): Call
	ira_compress_allocno_live_ranges.
	(ira_build): Ditto.

2008-09-25  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md: Check cmp/branch fuse for cmp peephole
	optimization.

2008-09-25  Richard Sandiford  <rdsandiford@googlemail.com>

	* combine.c (make_compound_operation): Handle the 'E' format.
	(count_rtxs): Likewise.
	(update_table_tick): Likewise.
	(get_last_value_validate): Likewise.

2008-09-25  Eric Botcazou  <ebotcazou@adacore.com>

	* dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.

2008-09-25  Sergei Dyshel  <sergeid@il.ibm.com>

	* matrix-reorg.c (transform_allocation_sites): Initializers
	added to avoid the warning.

2008-09-25  Martin Jambor  <mjambor@suse.cz>

	* cgraph.c (free_nodes): New variable.
	(NEXT_FREE_NODE): New macro.
	(cgraph_create_node): Reuse nodes from the free list.  Do not
	update uid if doing so.
	(cgraph_remove_node): Add the node to the free list.

2008-09-25  Gerald Pfeifer  <gerald@pfeifer.com>

	* config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.

2008-09-24  Richard Henderson  <rth@redhat.com>

	* dwarf2.h (DW_OP_GNU_encoded_addr): New.
	* unwind-dw2.c (execute_stack_op): Handle it.

2008-09-24  David Edelsohn  <edelsohn@gnu.org>

	Revert:
	2008-09-24  Michael J. Eager  <eager@eagercon.com>

2008-09-24  Aldy Hernandez  <aldyh@redhat.com>

	* c-common.c (fname_decl): New location argument.
	* c-common.h (fname_decl): Same.
	* c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
	{warning,error}.
	(c_parser_typeof_specifier): Same.
	(c_parser_parms_list_declarator): Same.
	(c_parser_asm_string_literal): Same.
	(c_parser_compound_statement_nostart): Same.
	(c_parser_label): Same.
	(c_parser_do_statement): Same.
	(c_parser_asm_statement): Same.
	(c_parser_unary_expression): Same.
	(c_parser_sizeof_expression): Same.
	(c_parser_postfix_expression): Same.
	(c_parser_pragma): Same.
	(c_parser_omp_clause_collapse): Same.
	(c_parser_omp_clause_num_threads): Same.
	(c_parser_omp_clause_schedule): Same.
	(c_parser_omp_all_clauses): Same.
	(c_parser_omp_sections_scope): Same.
	(c_parser_omp_for_loop): Same.  Pass condition's location to
	c_objc_common_truthvalue_conversion.
	(c_parser_enum_specifier): Remove comment.

2008-09-24  Michael J. Eager  <eager@eagercon.com>

	* config/rs6000/predicates.md (easy_fp_constant): Single FP consts
	are easy.
	* config/rs6000/rs6000.c (rs6000_override_options): Move
	rs6000_init_hard_regno_mode_ok after all options changed.
	Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
	(rs6000_handle_option): Process -msingle-float, -mdouble-float,
	-msimple-fpu flags.  Add warning messages if single FP not configured.
	(rs6000_file_start): Output gnu_attribute for single-float.
	(legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
	(rs6000_legitimize_address): Likewise.
	(rs6000_legitimize_reload_address): Likewise.
	(rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
	TARGET_SINGLE_FLOAT.
	(function_arg_advance): Likewise.
	(function_arg): Likewise.
	(setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
	(rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
	TARGET_SINGLE_FLOAT.
	(rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
	(rs6000_emit_prologue): Likewise.
	(rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
	TARGET_SINGLE_FLOAT.
	(rs6000_libcall_value): Likewise.
	* config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
	(TARGET_DOUBLE_FLOAT): New default to 1
	(TARGET_SIMPLE_FPU): New default to 0
	(TARGET_SINGLE_FPU): New default to 0
	(TARGET_SINGLE_FLOAT_MODE): New.
	(TARGET_DOUBLE_FLOAT_MODE): New.
	* config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
	TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
	UNITS_PER_FP_WORD
	* config/rs6000/rs6000.md (define_mode_iterator): Condition on
	TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
	(extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
	copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
	nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
	muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
	movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
	floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
	*fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
	fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
	rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
	floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
	movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
	extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
	abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
	cmptf_internal1, *cmptf_internal2): Condition on
	TARGET_DOUBLE_FLOAT.
	(aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
	mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
	*fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
	btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
	floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
	*movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
	TARGET_SINGLE_FLOAT.
	(divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
	* config/rs6000/rs6000.opt (-msingle-float): New.
	(-mdouble-float): New.
	(-msimple-fpu): New.
	* doc/invoke.texi (RS/6000 and PowerPC Options): Add
	-msingle-float, -mdouble-float, -msimple-fpu options.
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
	_SOFT_DOUBLE for -msingle-float.
	* config.gcc: New config for target=powerpc-xilinx-eabi.

2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/constraints.md: New file.
	* config/sparc/sparc.md: Include it.
	* config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
	(sparc_extra_constraint_check): Delete.
	* config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
	(memory_ok_for_ldd): New predicate.
	(sparc_extra_constraint_check): Delete.
	* config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
	(CONST_OK_FOR_LETTER_P): Likewise.
	(CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
	(EXTRA_CONSTRAINT): Likewise.

2008-08-23  Steve Ellcey  <sje@cup.hp.com>

	* regrename.c (do_replace): Copy REG_POINTER value to new reg.

2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>

	* alias.c (find_base_value): Use FIND_BASE_TERM.
	* doc/tm.texi (FIND_BASE_TERM): Update documentation.

2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/i386/i386.c: Include cselib.h.
	(ix86_pic_register_p): New function.
	(ix86_delegitimize_address): Use it to check for the PIC register.

2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/tm.texi (FIND_BASE_TERM): Expand documentation.
	* config/i386/i386.c (ix86_find_base_term): Don't check for
	SYMBOL_REF and LABEL_REF.

2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/i386/i386.c (ix86_delegitimize_address): Wrap the
	constant PLUS in a CONST.

2008-09-23  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
	check for sibcall support for w64.

2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>

	* c-ppoutput.c (cb_used_define): Do nothing for a builtin node.

2008-09-23  Aldy Hernandez  <aldyh@redhat.com>

	* c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
	parser_build_binary_op.
	* c-decl.c (build_enumerator): Pass location to build_binary_op.
	* c-typeck.c (build_array_ref): Same.
	(parser_build_unary_op): New location argument.
	(pointer_diff): Pass location to build_binary_op,
	c_objc_common_truthvalue_conversion.
	(build_modify_expr): Same.
	(build_unary_op): New location argument.
	(build_binary_op): New location argument.
	(c_objc_common_truthvalue_conversion): Pass location to
	c_*common_truthvalue_conversion.
	* c-convert.c (convert): Same.
	* c-common.c (binary_op_error): New location argument.
	(pointer_int_sum): Pass location to build_binary_op.
	(c_common_truthvalue_conversion): New location argument.
	(warn_for_sign_compare): Same.
	* c-common.h: Add location argument to c_common_truthvalue_conversion,
	binary_op_error, build_binary_op, warn_for_sign_compare.
	* c-parser.c (c_parser_condition): Pass location to
	c_*common_truthvalue_conversion.
	(c_parser_conditional_expression): Save condition's location and pass
	it on down.
	(c_parser_binary_expression): Same, but for the binary operator's
	location.
	(c_parser_omp_for_loop): Pass location to
	c_objc_common_truthvalue_conversion.

2008-09-23  Martin Jambor  <mjambor@suse.cz>

	* cgraph.c (cgraph_free_edge): Use sizeof(*e).
	(cgraph_node_remove_callees): New temporary f.  Hold the next item
	in f when looping.
	(cgraph_node_remove_callers): Likewise.

	* ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
	(ipa_node_removal_hook): Likewise.

	* doc/gimple.texi (gimple_copy_call_skip_args): Changed to
	gimple_call_copy_skip_args and moved to the gimple_call section.
	* gimple.c (gimple_copy_call_skip_args): Renamed to
	gimple_call_copy_skip_args.  Changed al users.

2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-color.c (start_allocno_priorities): Rename to
	setup_allocno_priorities.  Use costs and
	ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
	range lengths.  Get rid off doubles.
	(ira_fast_allocations): Call start_allocno_priorities.

2008-09-22  David Daney  <ddaney@avtrex.com>

	PR target/37593
	* config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
	register if TARGET_LONG_CALLS.

2008-09-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37145
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
	value-numbering union accesses with their offset and size only.
	(visit_reference_op_load): Fix simplification of inserted conversions.
	* tree-ssa-pre.c (find_or_generate_expression): Do not
	recursively generate expressions if running FRE.

2008-09-22  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.h (ISA_HAS_BADDU): New macro.
	* config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
	New patterns.

2008-09-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37145
	* tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
	(phi_translate_1): Constant fold references.

2008-09-22  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/37482
	* tree-vectorizer.h (struct _slp_instance): Add new field.
	(SLP_INSTANCE_FIRST_LOAD_STMT): New.
	(get_earlier_stmt): New function.
	* tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
	function.
	(vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
	* tree-vect-transform.c (vect_finish_stmt_generation): Remove the
	asserts that GSI points to the scalar statement being vectorized.
	Set new statement location according to GSI.
	(vect_schedule_slp_instance): Use GSI of
	SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.

2008-09-21  Jan Hubicka  <jh@suse.cz>

	* ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
	(ipcp_insert_stage): Update dead_nodes bitmap.

2008-09-22  Danny Smith  <dannysmith@users.sourceforge.net>

	PR target/37528
	* config/i386/t-cygming (SHLIB_LC): Remove.
	(SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
	* config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.

2008-09-22  Hans-Peter Nilsson  <hp@axis.com>

	PR middle-end/37170
	PR middle-end/37280
	* final.c (mark_symbol_ref_as_used): New helper function.
	(output_operand): Instead of just looking inside MEMs for
	SYMBOL_REFs, use new helper function and for_each_rtx.
	* varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
	to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
	Make head comment more general.
	* config/darwin.c (machopic_output_indirection): Handle weak
	references here, like in assemble_external.

2008-09-21  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc-protos.h (gen_compare_operator): Declare.
	(sparc_emit_float_lib_cmp): Change return type.
	* config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
	(gen_compare_operator): New function.
	(sparc_emit_float_lib_cmp): Return the new operator to be used in
	the comparison sequence.  Minor tweaks.
	* config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
	that the final operator and the result of sparc_emit_float_lib_cmp
	match for software TFmode; use emit_insn in lieu of emit_jump_insn.
	(beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
	buneq, bunge, bunle, bltgt): Assert that the final operator and the
	result of sparc_emit_float_lib_cmp match for software TFmode.
	(movqicc, movhicc, movsicc, movdicc): Merge into...
	(mov<I:mode>cc): ...this.
	(movsfcc, movdfcc, movtfcc): Merge into...
	(mov<F:mode>cc): ...this.
	(movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
	into...
	(mov<I:mode>_cc_v9): ...this.
	(movdi_cc_sp64_trunc): Delete.
	(movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
	movdi_cc_reg_sp64): Merge into...
	(mov<I:mode>_cc_reg_sp64): ...this.
	(movsf_cc_sp64): Rename into...
	(movsf_cc_v9): ...this.
	(movdf_cc_sp64): Rename into...
	(movdf_cc_v9): ...this.
	(movtf_cc_hq_sp64): Rename into...
	(movtf_cc_hq_v9): ...this.
	(movtf_cc_sp64): Rename into...
	(movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.

2008-09-21  Diego Novillo  <dnovillo@google.com>

	* doc/gccint.texi: Include generic.texi and gimple.texi.
	Re-order index.
	* doc/tree-ssa.texi (GENERIC): Move to generic.texi.
	(GIMPLE): Move to gimple.texi.
	(Annotations): Remove references to to stmt_ann_t and
	ssa_name_ann_t.
	(SSA Operands): Rename from 'Statement Operands'.
	* doc/generic.texi: New.
	* doc/gimple.texi: New.
	* Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
	* Makefile.in (TEXI_GCCINT_FILES):
	* gimple.c (gimple_copy_call_skip_args): Rename from
	giple_copy_call_skip_args.  Update all users.
	* doc/gimple.texi (gimple_copy_call_skip_args): Document.

2008-09-21  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/37539
	* tree-vect-transform.c (vect_transform_strided_load): Save vector
	statement in related statement field only for the first load of the
	group of loads with the same data reference.

2008-09-20  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.h (TUNE_OCTEON): New macro.
	* config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
	(mips_multipass_dfa_lookahead): Return 2 for Octeon.
	* config/mips/octeon.md: New file.
	* config/mips/mips.md: Include octeon.md.  Restore
	semi-alphabetical order of include files.

2008-09-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/37571
	* config/i386/i386.md (*jcc_fused_1): Removed.
	(*jcc_fused_2): Likewise.
	(*jcc_fused_3): Likewise.
	(*jcc_fused_4): Likewise.

2008-09-20  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
	(IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
	* target.h (gcc_target): Add ira_cover_classes.
	* ira.c: Remove IRA_COVER_CLASSES guards.
	(setup_cover_and_important_classes): Use targetm.ira_cover_classes
	instead of IRA_COVER_CLASSES.
	(setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
	(setup_class_translate): Likewise.
	(setup_reg_class_intersect_union): Likewise.
	(find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
	test of targetm.ira_cover_classes.
	* opts.c (decode_options): Use targetm.ira_cover_classes instead
	of IRA_COVER_CLASSES.
	* target-def.h (TARGET_IRA_COVER_CLASSES): Define.
	(TARGET_INITIALIZER): Include it.
	* targhooks.h (default_ira_cover_classes): Declare.
	* targhooks.c (default_ira_cover_classes): New function.

2008-09-19  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.

2008-09-19  Ian Lance Taylor  <iant@google.com>

	* varasm.c (narrowing_initializer_constant_valid_p): Return
	NULL_TREE if ENDTYPE is not an integer.

2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR tree-opt/30930
	* tree-ssa.c (execute_update_addresses_taken): Also update
	DECL_GIMPLE_REG_P for vector and complex types.

2008-09-19  Andrew MacLeod  <amacleod@redhat.com>
	    Jan Hubicka  <jh@suse.cz>

	PR middle-end/37567
	* tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
	empty before freeing them.
	(find_replaceable_exprs): Move asserts to free_temp_expr_table.

2008-09-18  Bob Wilson  <bob.wilson@acm.org>

	* configure.ac: Add HAVE_AS_TLS check for Xtensa.
	* config/xtensa/predicates.md (tls_symbol_operand): New.
	* config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
	(TARGET_CANNOT_FORCE_MEM): Define.
	(xtensa_tls_symbol_p): New.
	(xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
	(xtensa_legitimate_address_p): Disallow constant pool TLS references.
	(xtensa_tls_module_base): New.
	(xtensa_call_tls_desc): New.
	(xtensa_legitimize_tls_address): New.
	(xtensa_legitimize_address): Handle TLS symbols.
	(xtensa_tls_referenced_p_1): New.
	(xtensa_tls_referenced_p): New.
	(xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
	UNSPEC_DTPOFF.
	(XTENSA_BUILTIN_THREAD_POINTER): New.
	(XTENSA_BUILTIN_SET_THREAD_POINTER): New.
	(xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
	builtin.  Add declarations for __builtin_thread_pointer and
	__builtin_set_thread_pointer.
	(xtensa_fold_builtin): Recognize new builtins.
	(xtensa_expand_builtin): Expand new builtins.
	* config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
	(TARGET_THREADPTR): Define.
	(HAVE_AS_TLS): Define default value.
	(LEGITIMATE_CONSTANT_P): Disallow TLS references.
	* config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
	(UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
	(UNSPECV_SET_TP): New.
	(sym_TPOFF, sym_DTPOFF): New.
	(load_tp, set_tp, tls_func, tls_arg, tls_call): New.
	* config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
	* configure: Regenerated.

2008-09-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/37394
	* config/ia64/ia64.c (ia64_optimization_options): Move
	checking and setting flag_schedule_insns_after_reload and
	ia64_flag_schedule_insns2 back to ...
	(ia64_override_options): Here.

2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR rtl-opt/37451
	* loop-doloop.c (doloop_modify): New argument zero_extend_p and
	zero extend count after the correction to it is done.
	(doloop_optimize): Update call to doloop_modify, don't zero extend
	count before call.

2008-09-18  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.

	* ipa-prop.c: Correct comments.
	* ipa-prop.h: Likewise.

2008-09-18  Jan Hubicka  <jh@suse.cz>

	PR middle-end/37448
	* ipa-reference.c (ipa_reference_local_vars_info_d,
	ipa_reference_global_vars_info_d,
	ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
	ipa_reference_vars_info_t): Move here from ipa-reference.h
	(node_duplication_hook_holder, node_removal_hook_holder): New.
	(get_reference_vars_info_from_cgraph): Rename to ...
	(get_reference_vars_info): ... this one, use cgraph uids.
	(get_local_reference_vars_info, get_global_reference_vars_info):
	Use cgraph instead of decl.
	(ipa_reference_get_read_local, ipa_reference_get_written_local):
	Remove.
	(ipa_reference_get_read_global, ipa_reference_get_not_read_global
	ipa_reference_get_written_global,
	ipa_reference_get_not_written_global): Use cgraph argument.
	(check_call): Simplify avail check.
	(scan_stmt_for_static_refs): Update.
	(propagate_bits): Update.
	(merge_callee_local_info): Remove.
	(init_function_info): Use cgraph nodes.
	(clean_function_local_data): Break out from ...
	(clean_function): ... here.
	(copy_local_bitmap, copy_global_bitmap): New functions.
	(duplicate_node_data, remove_node_data): New functions.
	(generate_summary): Register hooks; use visibility instead of
	master clones.
	(propafate): Use cgraph nodes; copy bitmap to each node in cycle.
	* ipa-reference.h (ipa_reference_local_vars_info_d,
	ipa_reference_global_vars_info_d,
	ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
	ipa_reference_vars_info_t): Move to ipa-reference.c
	(ipa_reference_get_read_local, ipa_reference_get_written_local):
	Remove.
	(ipa_reference_get_read_global, ipa_reference_get_written_global,
	ipa_reference_get_not_read_global,
	ipa_reference_get_not_written_global): Update prototype.
	* ipa-pure-const.c (funct_state_vec): Turn into VECtor.
	(init_state): Remove.
	(node_duplication_hook_holder, node_removal_hook_holder): New.
	(get_function_state, set_function_state): Use VECtor.
	(analyze_function): Check body availability.
	(add_new_function): Likewise.
	(duplicate_node_data, remove_node_data): New.
	(generate_summary): Register hooks; do not care about clones.
	(propafate): Do not care about clones; recursive functions are
	not looping.
	* ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
	* ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
	* edge_duplication_hook_holder, node_duplication_hook_holder): Make
	static.
	* tree-flow.h (function_ann_d): Remove reference_vars_info.
	* tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
	Update call of ipa-reference accesors.

2008-09-18  Simon Baldwin  <simonb@google.com>

	* c-opts.c (c_common_handle_option): Add handling for
	-Wbuiltin-macro-redefined command line option.
	* c.opt: Added builtin-macro-redefined option.
	* doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
	documentation.

2008-09-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37258
	* tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
	and signedness for integral types.
	(vn_phi_eq): Require compatible types.

2008-09-18  Jakub Jelinek  <jakub@redhat.com>

	PR debug/34037
	* gimplify.c (gimplify_type_sizes): When not optimizing, ensure
	TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
	VAR_DECL.
	* cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
	!DECL_IGNORED_P vars in local_decls list for instantiate_decls,
	ggc_free other TREE_LIST nodes from that chain.
	* function.c (instantiate_decls): Instantiate also DECL_RTL
	of vars in cfun->local_decls, free that list afterwards.

2008-09-18  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
	* config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.

2008-09-18  Andrew MacLeod  <amacleod@redhat.com>

	* tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
	* tree-flow-.h (struct immediate_use_iterator_d): Fix comment.

2008-09-18  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/37102
	* tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
	from a node. Check to see if another PHI is dead.
	(eliminate_useless_phis): Rename from eliminate_virtual_phis and
	remove real PHIs which have no uses.
	(rewrite_out_of_ssa): Call eliminate_useless_phis.

2008-09-18  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37284
	* tree-cfg.c (remove_useless_stmts_1): Remove
	GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.

2008-09-18  Nick Clifton  <nickc@redhat.com>

	* config/frv/frv.h (IRA_COVER_CLASSES): Define.
	(SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
	to frv_secondary_reload_class.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
	* config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
	(frv_secondary_reload_class): Omit unused parameter.
	(frv_secondary_reload): New function.  Handle the case when
	secondary_reload_class() is called before the reload_(in|out)
	_optabs have been initialised.
	* config/frv/frv-protos.h (frv_secondary_reload_class): Omit
	unused parameter.
	* config/frv/frv.md: Define an exclusion set between fr550_m0
	and fr550_f0.

2008-09-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37456
	* tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
	want to insert after ends a BB insert on the single fallthru
	outgoing edge.

2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>

	* doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
	Mention -march=z9-109, z9-ec and z10.

2008-09-18  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/37544
	* regrename.c (maybe_mode_change): Exit early when copy_mode
	is narrower than orig_mode and narrower than new_mode.

2008-09-18  Alexander Monakov  <amonakov@ispras.ru>

	PR middle-end/37499
	* sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.

	* sched-rgn.c (ref_counts): Remove.
	(insn_referenced): New static variable.
	(INSN_REF_COUNT): Remove.
	(sched_run_compute_dependencies): Use insn_referenced instead of
	INSN_REF_COUNT.
	(add_branch_dependences): Likewise.  Delete dead assignment.

2008-09-17  Adam Nemet  <anemet@caviumnetworks.com>

	* haifa-sched.c (dep_cost_1): Recognize the producer even if the
	consumer is an asm.  Add comment why this is important.
	(choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
	recog_memoized (insn) < 0" assert.  Put ENABLE_CHECKING around it.

2008-09-17  Joseph Myers  <joseph@codesourcery.com>

	* expr.c (emit_group_store): Do not shift before moving via a
	stack slot.

2008-09-17  Eric Botcazou  <ebotcazou@adacore.com>

	* varasm.c (initializer_constant_valid_p): Forbid view-conversions
	from aggregate to non-aggregate type if the bit pattern is not fully
	preserved afterwards.

2008-09-17  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
	(verify_gimple_assign): ... this.  Split into ...
	(verify_gimple_assign_unary): ... this,
	(verify_gimple_assign_binary): ... that,
	(verify_gimple_assign_single): ... and this.
	(verify_types_in_gimple_stmt): Call verify_gimple_assign.
	Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
	(verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
	(verify_types_in_gimple_reference): Be forgiving with
	VIEW_CONVERT_EXPRs.
	(verify_gimple_phi): Deal with virtual operands.

	* tree.def (PREDICT_EXPR): Change to tcc_expression.

2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* tree.c (get_callee_fndecl): Don't call the language hook.
	* langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
	* langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
	(LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.

2008-09-17  Jakub Jelinek  <jakub@redhat.com>

	* tree.c (protected_set_expr_location): Don't unnecessarily
	check for error_mark_node.

2008-09-17  Art Haas  <ahaas@impactweather.com>

	* ipa-reference.c (analyze_function): Declare step only if
	ENABLE_CHECKING is defined.

2008-09-17  Jan Hubicka  <jh@suse.cz>

	PR c++/18071
	* tree.h (DECL_INLINE): remove.
	(DECL_DECLARED_INLINE_P): Update docs.
	(DECL_NO_INLINE_WARNING_P): new.
	(tree_function_decl): Replace inline_flag by no_inline_warning_flag.
	* tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.

2008-09-17  Jakub Jelinek  <jakub@redhat.com>
	    Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR bootstrap/37441
	* dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
	false.

2008-09-17  Jan Hubicka  <jh@suse.cz>

	* ipa-reference.c (ipa_obstack): Remove.
	(local_info_obstack, global_info_obstack): New.
	(add_static_var): We now handle variables only.
	(mark_address_taken, mark_load, mark_store): New functions based on ...
	(check_operand): ... remove.
	(get_asm_stmt_operands): Rename to ...
	(check_asm_memory_clobber): ... this. Look only for memory clobber.
	(scan_stmt_for_static_refs): Rewrite.
	(scan_op_for_static_refs): Rename to ...
	(scan_initializer_for_static_refs): do not look for VAR_DECL
	initializers; stop recursion on types and decls.
	(ipa_init): Use proper obstacks.
	(analyze_variable): Use scan_initializer_for_static_refs.
	(init_function_info): Use local obstack.
	(analyze_function): Simplify.
	(add_new_function): We don't need visited_nodes obstack.
	(generate_summary): Use proper obstacks; cleanup after propagation.

2008-09-17  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37385
	PR tree-optimization/37491
	* alias.c (get_alias_set): Use the canonical type.
	* tree-vect-transform.c (vectorizable_store): Use the type of
	the lhs for the vector type.  Adjust checking.
	(vectorizable_load): Adjust checking.

2008-09-16  Jakub Jelinek  <jakub@redhat.com>
	    Adam Nemet  <anemet@caviumnetworks.com>

	PR rtl-optimization/37483
	* ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
	if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
	Rearrange code to better match the original comment.  Check
	t_unconditional first.  Improve comment.

2008-09-16  Jakub Jelinek  <jakub@redhat.com>

	PR c/37529
	* gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
	GOTO_DESTINATION failed, don't create GIMPLE_GOTO.

	PR c++/37530
	* gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
	GIMPLE_TRY if cleanup sequence is empty.

2008-09-16  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/37263
	* tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
	eliminate IV if the cost are the same.

2008-09-16  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37380
	* tree-sra.c (sra_build_assignment): Do not call the gimplifier
	if not necessary.

2008-09-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37508
	* tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.

2008-09-15  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.

2008-09-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
	use gen_floatdidf2 directly.
	(floatunssidf2): Likewise.
	(floatsidf_ppc64_mfpgpr): Remove.
	(floatsidf_ppc64): Remove.
	(floatunssidf_ppc64): Remove.

2008-09-15  Jakub Jelinek  <jakub@redhat.com>

	* ira-color.c (finish_cost_update): Free update_cost_queue_elems
	rather than update_cost_queue.

	* tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
	in every call starting with the second one, instead of only when
	alias_bitmap_obstack.elements != NULL.

	* tree-predcom.c (filter_suitable_components): Free all refs in
	act->refs vector before calling release_component.
	(add_ref_to_chain): Free ref if not adding it to chain->refs.

	* tree-data-ref.c (free_subscripts): Free all subscript objects.

	* tree-loop-linear.c (linear_transform_loops): Initialize
	lambda_obstack only after calling perfect_loop_nest_depth.
	Goto free_and_continue instead of just continue for later failures.

	PR middle-end/37479
	* doc/invoke.texi: Document -fno-dwarf2-cfi-asm.

	PR libmudflap/36397
	* tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.

2008-09-14  Andreas Schwab  <schwab@suse.de>

	* tree-call-cdce.c (check_target_format): Accept Motorola formats.

2008-09-14  Jan Hubicka  <jh@suse.cz>

	* invoke.texi (-fconserve-stack): Document.
	* opts.c (decode_options): Handle conserve_stack.
	* common.opt (fconvserve_stack): New.

2008-09-14  David Edelsohn  <edelsohn@gnu.org>

	* config.host: Add x-aix to host_xmake_file.
	* config/rs6000/t-aix52: Do not override LDFLAGS.
	* config/rs6000/x-aix: New file.

2008-09-14  Andy Hutchinson  <hutchinsonandy@aim.com>

	PR target/19636
	PR target/24894
	PR target/31644
	PR target/31786
	* config/avr/avr.c (legitimate_address_p): Fix problem where subreg
	is not recognized as a valid register usage. Allow REG_X to be used
	as a base pointer.
	* config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
	forces a reload when using a base register.

2008-09-14  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/cygming-crtend.c (register_frame_ctor): If
	DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
	directly with atexit.
	(deregister_frame_ctor): Rename to ...
	(deregister_frame_dtor): Use to call __gcc_deregister_frame
	if !DEFAULT_USE_CXA_ATEXIT.

2008-09-13  Jan Hubicka  <jh@suse.cz>

	* cgraph.c: Include value-prof.h
	* Makefile.in (cgraph.o): Add value-prof.h dependency.

2008-09-13  Jan Hubicka  <jh@suse.cz>

	PR middle-end/32581
	* tree-profile.c (add_abnormal_goto_call_edges): New function.
	(tree_gen_interval_profiler, tree_gen_pow2_profiler,
	tree_gen_one_value_profiler, tree_gen_average_profiler,
	tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.

2008-09-13  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
	too many bytes on misalligned blocks.

2008-09-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/cfg.texi: Fix some typos.
	* doc/extend.texi: Likewise.
	* doc/install.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/rtl.texi: Likewise.
	* doc/tree-ssa.texi: Likewise.

2008-09-13  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30141
	* tree-nested.c (finalize_nesting_tree_1): Generate valid
	gimple stores for memory rhs.

2008-09-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/37489
	* cse.c (fold_rtx): Don't return const_true_rtx for float
	compare if FLOAT_STORE_FLAG_VALUE is undefined.

2008-09-13  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/37392
	* tree-inline.c (remap_gimple_stmt): Do not remap return value.

2008-09-13  Martin Jambor  <mjambor@suse.cz>
	    Jan Hubicka  <jh@suse.cz>

	* cgraph.c (free_edges): New variable.
	(NEXT_FREE_EDGE): New macro.
	(cgraph_free_edge): New function.
	(cgraph_remove_edge): Call cgraph_remove_edge_1.
	(cgraph_node_remove_callees): Likewise.
	(cgraph_node_remove_callers): Likewise.
	(cgraph_create_edge): Reuse edges from the free list.  Do not
	update uid if doing so.
	(cgraph_remove_*_hook): Add free call.

2008-09-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira-color.c (conflict_allocno_vec): Delete.
	(update_cost_queue_elem): New structure.
	(update_cost_queue): New variable.
	(update_cost_queue_tail): Likewise.
	(update_cost_queue_elems): Likewise.
	(allocno_update_cost_check): Delete.
	(initiate_cost_update): Allocate update_cost_queue_elems
	instead of allocno_update_cost_check.
	(finish_cost_update): Update the free()s accordingly.
	(start_update_cost): New function.
	(queue_update_cost): Likewise.
	(get_next_update_cost): Likewise.
	(update_copy_costs_1): Inline into...
	(update_copy_costs): ...here.  Use a queue instead of recursive calls.
	Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
	once we've established they are equal.  Don't allocate update
	costs if there is nothing to add to them.
	(update_conflict_hard_regno_costs): Remove ALLOCNO and
	DIVISOR arguments.  Use a queue instead of recursive calls;
	process all the allocnos in the initial queue, rather than
	a single allocno.
	(assign_hard_reg): Use queue_update_cost instead of
	conflict_allocno_vec.  Queue coalesced allocnos instead
	of calling update_conflict_hard_regno_costs for each one.
	Just call update_conflict_hard_regno_costs once for the
	entire queue.
	(ira_color): Remove conflict_allocno_vec handling.

2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/37484
	* graphite.c (scop_record_loop): Use snprintf instead of sprintf.
	(save_var_name): Same.
	(initialize_cloog_names): Same.
	(initialize_cloog_names): Same.

2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (set_instantiated_value): Set
	instantiated_below.

2008-09-12  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-opt/37377

	* ira-build.c (common_loop_tree_node_dominator): Remove.
	(copy_live_ranges_to_removed_store_destinations): New function.
	(regno_top_level_allocno_map): Move to top level from ...
	(ira_flattening): ... here.  Use
	copy_live_ranges_to_removed_store_destinations.

	* ira-emit.c (generate_edge_moves): Fix a comment.

2008-09-12  Anatoly Sokolov  <aesok@post.ru>

	PR target/37466
	* config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
	scratch register after 'set' pattern.

2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
	information passed to mark_reg_pointer.
	* explow.c (force_reg): Likewise.

2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
	when building for the celledp architecture.

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

	* tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.

2008-09-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/37424
	* ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
	the regnos instead of the addresses.

2008-09-11  Janis Johnson  <janis187@us.ibm.com>

	* ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.

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

	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
	entering the weaker equivalence recording.

	* tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.

2008-09-11  Jeff Law  <law@redhat.com>

	* reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
	by assign_stack_local on the IRA path for stack slot sharing
	as well as the non-IRA path.

2008-09-11  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h: Fix whitespace issues.

2008-09-11  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (struct ipa_param_flags): Removed.
	(struct ipa_param_descriptor): New structure.
	(struct ipa_node_params): ipcp_lattices, param_decls and
	param_flags moved to ipa_param_description.
	(ipa_get_ith_param): Renamed to ipa_get_param, changed to access
	descriptors.  Renamed all users.
	(ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
	changed to access descriptors.  Renamed all users.
	(ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
	to access descriptors. Renamed all users.
	* ipa-cp.c (ipcp_init_cloned_node): Call
	ipa_initialize_node_params instead of ipa_count_formal_params and
	ipa_create_param_decls_array.
	(ipcp_analyze_node): Likewise.
	(ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
	descriptors.  Renamed all users.
	(ipcp_initialize_node_lattices): Remove allocation.
	* ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
	ipa_initialize_node_params instead of ipa_count_formal_params and
	ipa_create_param_decls_array.
	* ipa-prop.c (ipa_create_param_decls_array): Renamed to
	ipa_populate_param_decls, made static, added parameter info,
	renamed mt to node, removed allocation, changed to use
	descriptors.
	(ipa_count_formal_params): Made static, added parameter info,
	renamed mt to node.
	(ipa_initialize_node_params): New function.
	(ipa_check_stmt_modifications): Changed to use descriptors.
	(ipa_detect_param_modifications): Removed allocation, changed to
	use descriptors.
	(ipa_note_param_call): Changed to use descriptors.
	(ipa_analyze_params_uses): Removed allocation.
	(ipa_free_node_params_substructures): Changed to use descriptors.
	(ipa_edge_duplication_hook): Use the unused attribute.
	(ipa_node_duplication_hook): Use the unused attribute, changed to
	use descriptors, changed to duplicate descriptors.

	* ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
	changed all callers.  Call ipa_propagate_indirect_call_infos if doing
	indirect inlining.  Made static.
	(cgraph_decide_inlining): Freeing ipa-prop structures after inlining
	functions called only once.
	(cgraph_decide_recursive_inlining): Don't call
	ipa_propagate_indirect_call_infos, pass new_edges to
	cgraph_mark_inline_edge instead.
	(cgraph_decide_inlining_of_small_functions): Don't call
	ipa_propagate_indirect_call_infos, pass new_edges to
	cgraph_mark_inline_edge instead.
	(cgraph_decide_inlining): Don't call
	ipa_propagate_indirect_call_infos.
	* ipa-prop.c: Check that vectors are allocated.

	* ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
	iff a new cgraph edges have been created.
	(cgraph_decide_inlining): New variable redo_always_inline.
	Flattening and always_inlining loop until callgraph stabilizes.
	* ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
	true iff new cgraph edges have been created.
	(propagate_info_to_inlined_callees): Likewise.
	(ipa_propagate_indirect_call_infos): Likewise.

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

	* tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
	(set_prologue_iterations): Likewise.
	* tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
	Likewise.
	(vect_update_init_of_dr): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
	type verification.
	* fold-const.c (fold_unary): Do not generate calculations
	in sub-types.

2008-09-11  Paolo Bonzini  <bonzini@gnu.org>

	* dojump.c (do_jump) [BIT_AND_EXPR]: Move below.  Fall through to
	TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
	(do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.

	* tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
	a bool.
	* tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
	VRP's simplify_stmt_using_ranges.  Do simplify_stmt_using_ranges
	before finalizing the changes.
	* tree-vrp.c (extract_range_from_binary_expr): Add limited support
	for BIT_IOR_EXPR.
	(simplify_truth_ops_using_ranges): New.
	(simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
	simplify_cond_using_ranges, simplify_switch_using_ranges): Return
	whether a simplification was made.
	(simplify_stmt_using_ranges): Ditto, and accept a GSI.  For GS_ASSIGN,
	use a switch statement and also call simplify_truth_ops_using_ranges.

2008-09-11  Jan Hubicka  <jh@suse.cz>

	* ggc-common.c (loc_array): Make static.
	* dce.c (rest_of_handle_ud_dce): Free worklist.

2008-09-11  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_release_function_body): Plug memory leak on
	ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
	function so we are sure we do not dangle it forever.
	* function.c (outer_function_chain, find_function_data): Remove.
	(function_context_stack): New.
	(push_function_context, pop_function_context): Update.
	* function.h (struct function): Remove pointer outer.
	(outer_function_chain, find_function_data): Remove.
	* stmt.c (force_label_rtx): Remove dead call of find_function_data.

2008-09-11  Jan Hubicka  <jh@suse.cz>

	PR middle-end/37448
	* cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.

2008-09-11  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-pre.c (phi_translate_1): Fix memory leak

2008-09-11  Jan Hubicka  <jh@suse.cz>

	* tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
	(free_var_map_entry): New function.
	(redirect_edge_var_map_destroy): Use it.

2008-09-11  Jan Hubicka  <jh@suse.cz>

	PR middle-end/37448
	* tree-inline.c (add_lexical_block): Replace with ...
	(prepend_lexical_block): ... prepend at begginig.
	(remap_blocks): Use it and reverse later.
	(expand_call_inline): Use prepend_lexical_block.

2008-09-11  Jan Hubicka  <jh@suse.cz>

	* gimplify.c (pop_gimplify_context): Free bind_expr_stack.

2008-09-11  Jan Hubicka  <jh@suse.cz>

	* function.c (free_after_compilation): Call insn_locators_free.
	* cfglayout.c (insn_locators_free): New function.
	* rtl.h (insn_locators_free): Declare.

2008-09-11  Jan Hubicka  <jh@suse.cz>

	* ifcvt.c (check_cond_move_block): Make regs argument pointer to
	vector pointer.
	(cond_move_process_if_block): Update call.

2008-09-11  Jan Hubicka  <jh@suse.cz>

	* toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
	* vec.c: Include hashtab.h
	(vec_descriptor, ptr_hash_entry): New structures.
	(vec_desc_hash, vec_ptr_map): New static variables.
	(hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
	register_overhead, free_overhead, vec_heap_free): New functions.
	(vec_gc_o_reserve_1): ggc_free when resizing to 0.
	(vec_heap_o_reserve_1): free when resizing to 0; add statistics.
	(cmp_statistic, add_statistics, dump_vec_loc_statistics):
	New functions.

2008-09-11  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/37474
	* tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
	length of load permutation.

2008-09-11  Andreas Schwab  <schwab@suse.de>

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

2008-09-11  Jakub Jelinek  <jakub@redhat.com>

	PR target/37382
	* expmed.c (extract_low_bits): Avoid creating invalid subregs.
	* dse.c (find_shift_sequence): Use extract_low_bits instead of
	simplify_gen_subreg.

2008-09-11  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-transform.c (vectorizable_store): Use the rhs vector type
	for alias check.

2008-09-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/37338
	* gimplify.c (gimplify_body): Call default_rtl_profile.

	PR target/36904
	* config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
	instead of tok->val.node if not expanding to something else.  Handle
	intervening CPP_PADDING tokens.
	(altivec_categorize_keyword): Remove unneeded comparisons.

2008-09-10  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (phi_translate_1): Fix memory leak.

2008-09-10  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37432
	* tree-inline.c (insert_init_stmt): Make sure to not
	insert invalid gimple stores.

2008-09-10  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/37388
	* toplev.c (process_options): Fail and warn when graphite
	flags are used, but the compiler has not been configured
	with graphite libraries.
	* graphite.c (graphite_transform_loops): Remove printfs
	to dump_file for the case when graphite is not available.

2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/37434:
	* config/i386/i386.c (ix86_expand_vector_init_interleave): Force
	the even element into register.
	(ix86_expand_vector_init_general): Don't use
	ix86_expand_vector_init_interleave on V16QImode and V8HImode
	if we can't move from GPR to SSE register directly.

2008-09-10  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (workaround_speculation): Correct algorithm to
	not lose track of the number of NOPs needed.  Number of NOPs needed
	for sync vs. loads workaround was switched; corrected.  Run second
	pass for all workarounds.  No NOPs needed after call insns.  Change
	second pass to use find_next_insn_start and find_load helpers in order
	to properly detect parallel insns.
	* config/bfin/bfin.md (cbranch_with_nops): Increase length.

2008-09-10  Jan Hubicka  <jh@suse.cz>

	* value-prof.c (gimple_ic): Fix tuplification bug.
	* sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
	var warning.

2008-09-10  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/37353
	* tree-call-cdce.c (cond_dead_built_in_calls): Remove.
	(shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
	calls instead of cond_dead_built_in_calls.
	(tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
	initalize the vector only before adding first entry.  Use VEC_safe_push
	instead of VEC_quick_push.  Pass cond_dead_built_in_calls to
	shrink_wrap_conditional_dead_built_in_calls call.

2008-09-10  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/37385
	* tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
	argument, and use it as a vector type if not NULL.
	(vectorizable_store): Call vect_create_data_ref_ptr with the type of
	vectorized rhs.
	(vect_setup_realignment): Call vect_create_data_ref_ptr with
	additional argument.
	(vectorizable_load): Likewise.

2008-09-10  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.md (SWI32): New mode iterator.
	(jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
	of SWI.

2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/37435
	* caller-save.c (insert_restore, insert_save): Check the mode by
	reg_save_code.

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

	PR other/37265
	* dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
	splay tree lookup.
	(dw2_output_indirect_constant_1): Use unstripped name in symbol
	reference.

2008-09-09  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/invoke.texi (ARM Options): Correct errors in discussion
	of -mfloat-abi, -mhard-float, and -msoft-float.

2008-09-09  Jakub Jelinek  <jakub@redhat.com>
	    Jan Hubicka  <jh@suse.cz>

	PR middle-end/37356
	* tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
	calling gimple_regimplify_operands on it.  Iterate over all newly
	added statements, not just the last one.
	(insert_init_stmt): Insert stmt into seq first, then call
	gimple_regimplify_operands on it.  Don't create new gimplification
	context, nor find referenced vars.

2008-09-09  Jakub Jelinek  <jakub@redhat.com>

	PR other/37419
	* ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
	to pointer to vector pointer.
	* ipa-prop.c (ipa_propagate_indirect_call_infos,
	propagate_info_to_inlined_callees): Likewise.
	(update_call_notes_after_inlining): Likewise.  Push new indirect edge
	to *new_edges instead of new_edges.  Reread IPA_EDGE_REF after
	ipa_check_create_edge_args.
	* ipa-inline.c (cgraph_decide_recursive_inlining): Change last
	argument to pointer to vector pointer.
	(cgraph_decide_inlining_of_small_function): Adjust
	cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
	calls.

	PR target/37438
	* config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
	optimizing for size, not speed.

	PR rtl-optimization/37408
	* function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
	if parm is promoted.

2008-09-09  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/37375
	* tree-scalar-evolution.c (scev_info_str): Add field
	instantiated_below.
	(new_scev_info_str, eq_scev_info, find_var_scev_info,
	set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
	set_instantiated_value): Pass instantiated_below.
	(analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
	to above functions.
	(instantiate_scev_1, instantiate_scev): Pass a basic block above which
	the definitions are not instantiated.

	* tree-scalar-evolution.h (instantiate_scev): Update declaration.
	(block_before_loop): New.
	* tree-data-ref.c (dr_analyze_indices): Update uses of
	instantiate_scev.
	* graphite.c (block_before_scop): New.
	(loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
	basic block, not a loop for determining the parameters.
	(scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
	scop.
	(idx_record_params, find_params_in_bb, find_scop_parameters,
	build_loop_iteration_domains, add_conditions_to_domain): Update calls
	to instantiate_scev.

	* Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.

2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-opt/37333

	* ira-build.c (ira_create_allocno): Setup frequency to 0.

	* ira-color.c (update_conflict_hard_regno_costs): Remove assert.
	Check zero freq and increase if necessary.

2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-conflicts.c (process_regs_for_copy): Check that the hard
	regno is in the right range.  Add comments.

2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
	warnings.
	* mips-tfile.c (copy_object): Cast alloca result to int *.
	* mips-tdump.c (print_symbol): Cast xmalloc return values to
	proper types.
	Rename class to sclass.
	(read_tfile): Cast read_seek return values to proper types.
	Cast xcalloc return value to proper type.

2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
	* config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
	* config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.

2008-09-09  Jan Hubicka  <jh@suse.cz>

	* profile.c (is_edge_inconsistent): Add debug output; ignore
	negative count on fake edges.
	(is_inconsistent): Add debug output.

2008-09-09  Andrey Belevantsev  <abel@ispras.ru>

	* haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
	dump message.
	(choose_ready): When first insn is chosen from the ready list, also
	dump it.

2008-09-09  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/37360
	* haifa-sched.c (max_issue): Do not assert that we never issue more
	insns than issue_rate.  Add comment.

2008-09-09  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_types_in_gimple_op): Remove.
	(verify_types_in_gimple_call): Rename to ...
	(verify_gimple_call): ... this.  Enhance.
	(verify_types_in_gimple_cond): Remove.
	(verify_gimple_comparison): New function ...
	(verify_types_in_gimple_assign): ... split out from here.
	(verify_types_in_gimple_return): Rename to ...
	(verify_gimple_return): ... this.  Enhance.
	(verify_types_in_gimple_switch): Rename to ...
	(verify_gimple_switch): ... this.  Enhance.
	(verify_gimple_goto): New function.
	(verify_types_in_gimple_phi): Rename to ...
	(verify_gimple_phi): ... this.  Enhance.
	(verify_types_in_gimple_stmt): Adjust calls to helper functions.
	Fold in single-statement cases from verify_types_in_gimple_seq_2.
	(verify_types_in_gimple_seq_2): Remove cases handled in
	verify_types_in_gimple_stmt.

2008-09-09  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (n_regs_to_save): New static variable.
	(push_multiple_operation, pop_multiple_operation): Set it.
	(workaround_rts_anomaly): New function.
	(workaround_speculation): New function, broken out of bfin_reorg.
	(bfin_reorg): Call the new functions.

2008-09-09  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37354
	PR middle-end/30165
	* gimplify.c (gimplify_conversion): Change conversions of
	non-register type to VIEW_CONVERT_EXPRs.
	(gimplify_addr_expr): If we need to make the operand
	addressable make sure to use a properly initialized
	temporary for that so it gets a valid gimple store.

2008-09-09  Aldy Hernandez  <aldyh@redhat.com>

	* function.h (struct function): Add function_start_locus.
	* cfgexpand.c (gimple_expand_cfg): Use it.
	* c-parser.c (c_parser_declaration_or_fndef): Set it.

2008-09-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37433
	* tree-ssa-ccp.c (ccp_fold): Properly guard folding of
	function calls.

2008-09-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37387
	* tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
	and bits to a common type.

2008-09-09  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.md (return): Restore frame size restriction.

2008-09-09  Paolo Bonzini  <bonzini@gnu.org>

	* c-common.c (c_expand_decl): Remove.
	* c-common.h (anon_aggr_type_p): Remove prototype.
	(DECL_ANON_UNION_ELEMS): Remove.
	* c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
	* c-decl.c (anon_aggr_type_p): Remove.
	* langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
	(LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
	* langhooks.h (struct lang_hooks): Remove expand_decl.
	* langhooks.c (lhd_expand_decl): Remove.
	* stmt.c (expand_anon_union_decl): Remove.
	* tree.h (expand_anon_union_decl): Remove prototype.

2008-08-09  Andy Hutchinson  <hutchinsonandy@aim.com>

	PR target/36609
	* config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
	zero.
	* config/avr/avr.md  (QISI): Define mode iterator.
	(negated_tst<mode>): Redefine as split using mode macro.
	(reversed_tstqi): Define insn as reversed compare with zero.
	(reversed_tsthi): Ditto.
	(reversed_tstsi): Ditto.

2008-09-08  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/37393
	* tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
	call stmt by new_call, clear gimple_bb on stmt after gsi_replace.

	PR middle-end/37414
	* predict.c (optimize_function_for_size_p): Don't segfault if
	FUN is NULL.
	* fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
	tree_swap_operands_p): Don't test cfun != NULL before calling
	optimize_function_for_s*_p.

2008-09-08  Eric Botcazou  <ebotcazou@adacore.com>

	* ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
	end of the search.

2008-09-08  M R Swami Reddy  <MR.Swami.Reddy@nsc.com>

	* crx/crx.h (IRA_COVER_CLASSES): Define.

2008-09-08  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/37337
	* tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
	even when a stmt has been gimple_modified_p, but after fold_stmt is
	not any longer.  Remove unneeded may_have_exposed_new_symbols
	initializations.

2008-09-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37421
	* tree-ssa-sccvn.c (visit_copy): Make sure to fully
	valueize the RHS.

2008-09-08  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/37415
	* opts.c (common_handle_option): Handle OPT_ftree_store_ccp.

2008-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR driver/37409
	* pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
	* pa-hpux10.h (LINK_SPEC): Likewise.
	* pa-hpux11.h (LINK_SPEC): Likewise.

2008-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa32-regs.h (IRA_COVER_CLASSES): Define.
	* pa64-regs.h (IRA_COVER_CLASSES): Define.

2008-09-07  Helge Deller  <deller@gmx.de>

	* pa/linux-atomic.c: New file.
	* pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
	* pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.

2008-09-07  Richard Guenther  <rguenther@suse.de>
	    Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/36630
	* tree-vect-transform.c (vect_update_ivs_after_vectorizer):
	Call STRIP_NOPS before calling evolution_part_in_loop_num.

2008-09-07  Dorit Nuzman  <dorit@il.ibm.com>
	    Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/35642
	* config/rs6000/altivec.md (mulv8hi3): Implement.

2008-09-06  Jeff Law  <law@redhat.com>

	* h8300/h8300.h (IRA_COVER_CLASSES): Define.

2008-09-06  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/14703
	* tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
	declarations.
	* passes.c (init_optimization_passes): Recompute inline parameters.

2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_function_ok_for_sibcall): Check for
	DECL being null.

2008-09-06  Richard Sandiford  <rdsandiford@goolemail.com>
	    Peter Fuerst  <post@pfrst.de>

	* doc/invoke.texi: Document -mr10k-cache-barrier=.
	* doc/extend.texi: Document __builtin_mips_cache.
	* config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
	* config/mips/mips.opt (mr10k-cache-barrier=): New option.
	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
	__GCC_HAVE_BUILTIN_MIPS_CACHE.
	(TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
	* config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
	(set_push_mips_isas): New variable.
	(mips_r10k_cache_barrier): New variable.
	(cache): New availability predicate.
	(mips_builtins): Add an entry for __builtin_mips_cache.
	(mips_build_cvpointer_type): New function.
	(MIPS_ATYPE_CVPOINTER): New macro.
	(mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
	mode is VOIDmode.
	(r10k_simplified_address_p, r10k_simplify_address)
	(r10k_uncached_address_p, r10k_safe_address_p)
	(r10k_needs_protection_p_1, r10k_needs_protection_p_store)
	(r10k_needs_protection_p_call, r10k_needs_protection_p)
	(r10k_insert_cache_barriers): New functions.
	(mips_reorg_process_insns): Delete cache barriers after a
	branch-likely instruction.
	(mips_reorg): Call r10k_insert_cache_barriers.
	(mips_handle_option): Handle OPT_mr10k_cache_barrier_.
	* config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
	(UNSPEC_R10K_CACHE_BARRIER): Likewise.
	(mips_cache, r10k_cache_barrier): New define_insns.

2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
	* ira-color.c (setup_allocno_left_conflicts_num): Use
	hard_reg_set_equal_p instead of a comparison with
	ira_zero_hard_reg_set.
	* ira.c (setup_reg_subclasses): Likewise.
	(setup_cover_and_important_classes): Likewise.
	(setup_class_translate): Likewise.
	(setup_reg_class_intersect_union): Likewise.
	(ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
	(ira_init_once): Don't initialize them.

2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>

	* doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.

2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-color.c (ira_fast_allocation): Permit global allocno allocation.

2008-09-05  Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>

	Improved branch hints, safe hints, and scheduling.

	* haifa-sched.c (sched_emit_insn): Define.
	* sched-int.h (sched_emit_insn): Add prototype.
	* doc/invoke.texi (-mdual-nops, -mhint-max-nops,
	-mhint-max-distance -msafe-hints): Document.
	* config/spu/spu.c (spu_flag_var_tracking): New.
	(TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
	TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
	TARGET_ASM_FILE_START): Define.
	(TARGET_SCHED_ADJUST_PRIORITY): Remove.
	(STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
	(spu_emit_branch_hint): Add blocks argument.
	(insert_branch_hints, insert_nops): Remove.
	(pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
	uses_ls_unit, spu_sched_init_global, spu_sched_init,
	spu_sched_reorder, asm_file_start): New functions.
	(clock_var, spu_sched_length, pipe0_clock,
	pipe1_clock, prev_clock_var, prev_priority,
	spu_ls_first, prev_ls_clock): New static variables.
	* config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
	* config/spu.md (iprefetch): Add operand, make it clobber MEM.
	(nopn_nv): Add a non-volatile version of nop.
	* config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
	-mhint-max-distance, -msafe-hints): New options.

2008-09-05  Janis Johnson  <janis187@us.ibm.com>
	    Samuel Tardieu  <sam@rfc1149.net>

	* opts.c (decode_options): Combine nested if statements.

	PR target/37283
	* opts.c (decode_options): Handle more relationships among
	unit-at-a-time, toplevel-reorder, and section-anchors.

2008-09-05  David Daney  <ddaney@avtrex.com>

	* doc/install.texi (--enable-reduced-reflection): Document new option.

2008-09-05  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
	constantpool_mem_p.
	(constantpool_operand): New.
	(move_operand): Disallow sub-word modes for the constant pool.
	* config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
	(xtensa_secondary_reload_class): Replace with....
	(xtensa_secondary_reload): this function.  Remove SIGN_EXTEND check.
	Set icode for sub-word reloads from the constant pool.
	* config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
	* config/xtensa/xtensa.md (reload<mode>_literal): New.
	* config/xtensa/xtensa-protos.h: Update prototypes.

2008-09-05  Joseph Myers  <joseph@codesourcery.com>

	* config/mips/mips.h (enum reg_class): Add FRAME_REGS.
	(REG_CLASS_NAMES): Update.
	(REG_CLASS_CONTENTS): Update.
	* config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
	of ALL_REGS for regs 77 and 78.
	* function.c (instantiate_virtual_regs_in_insn): Assert that
	return value of simplify_gen_subreg is not NULL.

2008-09-05  Paolo Bonzini  <bonzini@gnu.org>

	* emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
	(gen_rtvec_v): Fix coding standards.

2008-09-04  Jan Hubicka  <jh@suse.cz>

	* i386.c (decide_alg): Be more conservative about optimizing for size.

2008-09-04  Ian Lance Taylor  <iant@google.com>

	* varasm.c (narrowing_initializer_constant_valid_p): New
	static function.
	(initializer_constant_valid_p): Call it.

2008-09-04  Jeff Law  <law@redhat.com>

	* fold-const.c (native_encode_real): Fix computation of WORDS.
	(native_interpret_real): Likewise.

2008-09-04  Janis Johnson  <janis187@us.ibm.com>

	* config/rs6000/t-rs6000: Remove target gt-rs6000.h.

2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-conflicts.c (process_regs_for_copy): Check insn to check
	that the cost is already taken into account in ira-costs.c

	* ira-int.h (ira_debug_copy, ira_debug_copies): New.

	* ira-build.c (print_copy, print_copies, ira_debug_copy,
	ira_debug_copies): New.
	(ira_bulid): Call print_copies.

	* doc/tm.texi (IRA_COVER_CLASSES): Fix the description.

2008-09-04  Samuel Tardieu  <sam@rfc1149.net>

	PR target/32783
	* config/rs6000/rs6000.c (optimization_options): Remove check of
	flag_toplevel_order.

2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
	* config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
	second operand is a reg_imm10_operand.
	* config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
	*sne_<GPR:mode><GPR2:mode>_sne): New patterns.
	(*seq_<GPR:mode><GPR2:mode>): Rename to
	*seq_zero_<GPR:mode><GPR2:mode>.  Don't match if
	ISA_HAS_SEQ_SNE.
	(*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
	*seq_zero_<GPR:mode><GPR2:mode>_mip16.  Don't match if
	ISA_HAS_SEQ_SNE.
	(*sne_<GPR:mode><GPR2:mode>): Rename to
	*sne_zero_<GPR:mode><GPR2:mode>.  Don't match if
	ISA_HAS_SEQ_SNE.

2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.h (ISA_HAS_EXTS): New macro.
	* config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
	combining an arithmetic right shift by more than 31 and a
	trunction.  Don't match for out-of-range shift amounts.  Set
	attribute mode to <MODE>.
	(*lshr32_trunc<mode>): Name the pattern combining a logical right
	shift by 32 and and a truncation.  Set attribute mode to <MODE>.
	(*<optab>_trunc<mode>_exts): New pattern for truncated right
	shifts by less than 32.
	(extv): Change predicate on first operand to accept registers.
	Change predicate of the other operands from immediate_operand to
	const_int_operand.  Expand exts when source is a register.
	(extzv): Change predicate of the constant operands from
	immediate_operand to const_int_operand.
	(extzv<mode>): Change predicate of the constant operands from
	immediate_operand to const_int_operand and no constraint. Also
	remove mode.
	(*extzv_trunc<mode>_exts): New pattern.

2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.h (ISA_HAS_CINS): New macro.
	* config/mips/mips-protos.h (mask_low_and_shift_p,
	mask_low_and_shift_len): Declare.
	* config/mips/mips.c (mask_low_and_shift_p,
	mask_low_and_shift_len): New functions.
	(mips_print_operand): Handle new operand prefix "m".
	* config/mips/mips.md (*cins<mode>): New pattern.

2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
	optimizing for size.

2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>

	* df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
	regardless of epilogue_completed.

2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/37359
	* ira-lives.c (process_bb_node_lives): Check setjmp.

2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>

	PR middle-end/37243
	* ira-build.c (form_loop_tree): Reverse BB walk.
	(create_bb_allocnos): Likewise.
	* ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
	(mark_reg_store): Rename to...
	(mark_ref_live): ...this and take a df_ref argument instead of
	note_stores arguments.  Assert that we have a register.
	(mark_reg_clobber): Delete.
	(def_conflicts_with_inputs_p): New function.
	(mark_reg_conflicts): Delete.
	(mark_reg_death): Rename to...
	(mark_ref_dead): ...this and take a df_ref argument instead of
	a register.  Assert that we have a register.
	(process_bb_node_lives): Hoist frequency calculation out of
	instruction walk.  Convert from a forwards scan to a backwards scan.
	Use DF_REF_USES and DF_REF_DEFS instead of register notes and
	note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
	(create_allocno_live_ranges): Don't create regs_set.

2008-09-04  Ian Lance Taylor  <iant@google.com>

	* rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
	or REG_LABEL_TARGET.
	* calls.c (emit_library_call_value_1): Use MEM_P rather than
	comparing MODE with MEM.
	* gimple.c (gimple_build_predict): Cast END_PREDICTORS before
	comparing with GF_PREDICT_TAKEN.
	(gimple_get_lhs): Change code to enum gimple_code.
	(gimple_set_lhs): Likewise.
	* ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
	* omp-low.c (find_omp_clause): Change kind parameter to enum
	omp_clause_code.
	* tree-flow.h (find_omp_clause): Update declaration.
	* regrename.c (clear_dead_regs): Change kind parameter to enum
	reg_note.
	* reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
	GET_MODE.
	* see.c (see_get_extension_data): Change return type to enum
	entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
	SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
	(see_gen_normalized_extension): Change extension_code parameter to
	enum entry_type.
	(see_seek_pre_extension_expr): Change extension_code to enum
	entry_type.
	(see_merge_one_def_extension): Likewise.
	(see_handle_relevant_defs): Likewise.
	(see_handle_relevant_uses): Likewise.
	(see_analyze_one_def): Likewise.
	* tree-cfg.c (need_fake_edge_p): Compare gimple code with
	GIMPLE_ASM rather than ASM_EXPR.
	* tree-ssa-alias.c (is_escape_site): Compare gimple code with
	GIMPLE_RETURN rather than RETURN_EXPR.
	* tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
	(evaluate_stmt): Likewise.
	* tree-vect-analyze.c (vect_analyze_operations): Change relevance
	to enum vect_relevant.
	(vect_mark_stmts_to_be_vectorized): Change assertion to not
	compare gimple codes with tree codes.

2008-09-04  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_size_rtx_costs): Call cost function.

2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
	pointer check lost in the recent no-unit-at-a-time patch.

2008-09-04  Jan Hubicka  <jh@suse.cz>

	PR middle-end/37343
	* tree-switch-conversion.c (check_final_bb): Accept only IP
	invariants.

2008-09-04  Jan Hubicka  <jh@suse.cz>

	* tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
	Break out from ...
	(vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
	using_ranges argument.
	(vrp_evaluate_conditional): Avoid bogus warning for type range.
	(vrp_visit_cond_stmt): Update call of
	vrp_evaluate_conditional_warnv_with_ops

2008-09-04  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/37345
	PR tree-optimization/37358
	PR tree-optimization/37357
	* tree.c (build_function_type_skip_args): Build distinct type copy;
	set TYPE_CONTEXT.
	(build_function_decl_skip_args): Set type of new decl not orig decl;
	clear DECL_VINDEX for methods turned into functions.

2008-09-04  Nick Clifton  <nickc@redhat.com>

	* configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
	alignment field, if it is supported.

2008-09-04  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/t-mingw32 (SHLIB_LC): Change order of import
	libraries.

2008-09-03  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (processor_target_table): Do not
	enable VMX for POWER6.

2008-09-03  Anton Blanchard  <anton@samba.org>

	* config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
	emit memory barrier before operation.

2008-09-03  John David Anglin  <dave.anglin@nrc.cnrc.gc.ca>

	PR testsuite/37325
	* config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
	default_elf_asm_output_external.

2008-09-03  Jeff Law  <law@redhat.com>

	* h8300.c (expand_a_shift): Avoid invalid RTL sharing.

2008-09-03  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
	memory barrier to below the test-and-set.
	(alpha_split_lock_test_and_set_12): Likewise.

2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-opt/37243

	* ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
	all_allocnos.

	* ira-color.c (print_loop_title): Use all_allocnos.
	(color_pass): Ditto.  Don't add border_allocnos.  Check that
	subloop allocno in the correspdoning bitmap all_allocnos.

	* ira-emit.c (change_loop): Use all_allocnos.

	* ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
	(ira_create_allocno): Set up all_allocnos bit for the created allocno.
	(create_cap_allocno): Remove setting mentioned_allocnos.
	(create_insn_allocnos): Ditto.
	(remove_unnecessary_allocnos): Use all_allocnos.
	(check_allocno_creation): Check that allocnos are in the
	corresponding bitmap all_allocnos.

2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-opt/37243

	* ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
	(process_regs_for_copy): Process subregs.  Refine check when cost
	is taken into account in ira-costs.c.
	(process_reg_shuffles): Use REG_SUBREG_P.
	(add_insn_allocno_copies): Ditto.  Ignore modes.

	* ira-color.c (conflict_allocno_vec): New.
	(COST_HOP_DIVISOR): New macro.
	(update_copy_costs_1): Use it.
	(update_conflict_hard_regno_costs): New function.
	(assign_hard_reg): Use it.
	(ira_color): Allocate and free conflict_allocno_vec.

2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-opt/37296

	* ira-int.h (ira_sort_insn_chain): Remove.

	* ira.c (basic_block_order_nums, chain_insn_order,
	chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
	(ira): Don't call ira_sort_insn_chain.

	* reload1.c (reload): Don't call ira_sort_insn_chain.

2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/37293
	* cgraphunit.c (update_call_expr): Remove eh regions from statements
	which become non throw.
	(cgraph_function_versioning): Also clear DECL_WEAK.  Call
	update_call_expr after updating the flags on the decl.

2008-09-03  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/37315
	* cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
	* cgraphunit.c (verify_cgraph_node): drop gimple_body check.
	(cgraph_analyze_functions): Use node->analyzed
	(cgraph_mark_functions_to_output): Likewise.
	(cgraph_expand_function): All functions can be released after
	expanding.
	(cgraph_optimize): Use gimple_has_body_p.
	* ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
	(cgraph_decide_inlining_incrementally): Likewise.
	(inline_transform): Inline transform.
	* tree-inline.c (initialize_cfun): Do now shallow copy structure;
	copy fields needed.
	(inlinable_function_p): Drop gimple_body check.
	(expand_call_inline): Use gimple_has_body_p.
	* gimple.c (gimple_has_body_p): New.
	* gimple.h (gimple_has_body_p): Add prototype.
	* tree-cfg.c (execute_build_cfg): Remove gimple_body.
	(dump_function_to_file): Use gimple_has_body_p check.

2008-09-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/37346
	* gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
	substatements.
	* tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.

2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>

	From Michael Frysinger  <michael.frysinger@analog.com>
	* config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
	bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
	for bf538.

2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>

	Add picoChip port.
	* doc/extend.texi: Document picoChip builtin functions.
	* doc/invoke.texi: Document picoChip options.
	* doc/contrib.texi: Add picoChip contribution.
	* doc/md.texi: Document picoChip constraints.
	* config.gcc: Add picochip-*-*.
	* config/picochip/: Add new port.

2008-09-03  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37328
	* tree-sra.c (sra_build_assignment): Gimplify properly.
	(generate_copy_inout): Take the correct stmt as definition,
	remove bogus assert.

2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
	attributes.

	From Michael Frysinger  <michael.frysinger@analog.com>
	* config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.

2008-09-03  Danny Smith  <dannysmith@usrs.sourceforge.net>

	* gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
	(__gthread_setspecific): Revert 2008-08-31 change to
	__GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API case.

2008-09-02  Aldy Hernandez  <aldyh@redhat.com>

	* diagnostic.c (error_at): New.
	* toplev.h (error_at): New prototype.
	* c-typeck.c (build_array_ref): Call error_at instead of error.
	Pass location to pedwarn.

2008-09-02  Adam Nemet  <anemet@caviumnetworks.com>

	* sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.

2008-09-02  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (tree_add_const_value_attribute): Only handle
	VAR_DECL and CONST_DECL.

2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
	(setup_incoming_varargs_64): Assume cum != NULL. Set/check
	ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
	ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
	Don't set ix86_save_varrargs_registers.
	(ix86_setup_incoming_varargs): Assume cum != NULL.
	(ix86_va_start): Check ix86_varargs_gpr_size and
	ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
	cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
	from frame pointer if ix86_varargs_gpr_size == 0.
	(ix86_compute_frame_layout): Updated.
	* config/i386/i386.h (ix86_save_varrargs_registers): Removed.
	(ix86_varargs_gpr_size): Define.
	(ix86_varargs_fpr_size): Likewise.
	(machine_function): Remove save_varrargs_registers.
	Add varargs_gpr_size and varargs_fpr_size.

2008-09-02  Jakub Jelinek  <jakub@redhat.com>

	* config/alpha/alpha.c (va_list_skip_additions,
	alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
	(alpha_gimplify_va_arg): Call unshare_expr on second use of
	offset_field.

	PR tree-optimization/36766
	* tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
	for already removed basic blocks.

	PR target/36332
	* real.c (real_maxval): Clear a lower bit to make real_maxval
	match get_max_float for IBM long double format.

2008-09-02  Andreas Schwab  <schwab@suse.de>

	* configure.ac: Use m4_quote to quote the expansion of m4_do.
	* configure: Regenerate.

2008-09-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
	SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
	checking for a non-VOID CONSTANT_P.

2008-09-02  Jan Hubicka  <jh@suse.cz>

	* predict.c (pass_strip_predict_hints): Avoid bugs dump file.
	* expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
	sdiv_pow2_cheap

2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>

	* expr.c (emit_group_store): Don't assert stack temp mode size.

2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>
	    Jan Sjodin  <jan.sjodin@amd.com>
	    Harsha Jagasia  <harsha.jagasia@amd.com>
	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
	    Konrad Trifunovic  <konrad.trifunovic@inria.fr>
	    Adrien Eliche  <aeliche@isty.uvsq.fr>

	Merge from graphite branch.
	* graphite.c: New.
	* graphite.h: New.
	* tree-loop-linear.c (perfect_loop_nest_depth): Export.
	* doc/invoke.texi (-floop-block, -floop-interchange,
	-floop-strip-mine): Document new flags.
	* tree-into-ssa.c (gimple_vec): Moved...
	* tree-loop-distribution.c (rdg_component): Moved...
	* cfgloopmanip.c: Include tree-flow.h.
	(update_dominators_in_loop): New.
	(create_empty_if_region_on_edge): New.
	(create_empty_loop_on_edge): New.
	(loopify): Use update_dominators_in_loop.
	* tree-pass.h (pass_graphite_transforms): Declared.
	* configure: Regenerate.
	* tree-phinodes.c (make_phi_node): Export.
	(add_phi_node_to_bb): New, split from create_phi_node.
	* tree-chrec.c (for_each_scev_op): New.
	* tree-chrec.h (for_each_scev_op): Declared.
	* tree-ssa-loop-ivopts.c (get_phi_with_result): New.
	(remove_statement): Call get_phi_with_result.
	* config.in (HAVE_cloog): Undef.
	* gdbinit.in (pgg): New.
	* timevar.def (TV_GRAPHITE_TRANSFORMS): New.
	* tree-ssa-loop.c (graphite_transforms): New.
	(gate_graphite_transforms): New.
	(pass_graphite_transforms): New.
	* configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
	HAVE_cloog): Defined.
	* tree-vectorizer.c (rename_variables_in_bb): Export.
	* tree-data-ref.c (dr_may_alias_p): Export.
	(stmt_simple_memref_p): New.
	(find_data_references_in_stmt): Export.
	(find_data_references_in_loop): Export.
	(create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
	(create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
	(create_rdg_vertices): Export.
	(build_empty_rdg): New.
	(build_rdg): Call build_empty_rdg.  Free dependence_relations.
	* tree-data-ref.h (rdg_component): ... here.
	(scop_p): New.
	(struct data_reference): Add a field scop.
	(DR_SCOP): New.
	(find_data_references_in_loop): Declared.
	(find_data_references_in_stmt): Declared.
	(create_rdg_vertices): Declared.
	(dr_may_alias_p): Declared.
	(stmt_simple_memref_p): Declared.
	(struct rdg_edge): Add a field ddr_p relation.
	(build_empty_rdg): Declared.
	* lambda.h (lambda_matrix): Declare a VEC of.
	(find_induction_var_from_exit_cond): Declared.
	(lambda_vector_compare): New.
	* common.opt (fgraphite, floop-strip-mine,
	floop-interchange, floop-block): New flags.
	* lambda-code.c (find_induction_var_from_exit_cond): Export.
	* cfgloop.c (is_loop_exit): New.
	* cfgloop.h (is_loop_exit): Declared.
	(create_empty_if_region_on_edge): Declared.
	(create_empty_loop_on_edge): Declared.
	* tree-flow.h (add_phi_node_to_bb): Declared.
	(make_phi_node): Declared.
	(rename_variables_in_bb): Declared.
	(perfect_loop_nest_depth): Declared.
	(graphite_transform_loops): Declared.
	* Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
	(graphite.o-warn): Add -Wno-error.
	(PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
	(LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
	(INCLUDES): Add PPLINC, CLOOGINC.
	(OBJS-common): Add graphite.o.
	(graphite.o): Add rule.
	* gimple.h (gimple_vec): ... here.
	* tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
	* passes.c (init_optimization_passes): Schedule
	pass_graphite_transforms.

2008-09-02  Samuel Tardieu  <sam@rfc1149.net>

	PR target/37283
	* opts.c (decode_options): Move processing of -fno-unit-at-a-time
	and -fno-toplevel-reorder after handle_options.

2008-09-02  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_tune_cortex_a9): Define.
	(arm_override_options): Set arm_tune_cortex_a9.
	(arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
	(arm_issue_rate): Handle cortexa9.
	* config/arm/arm.h (arm_tune_cortex_a9): Declare.
	* config/arm/arm-cores.def: Add cortex-a9.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm.md: Include cortex-a9.md.
	(generic_sched, generic_vfp): Add cortexa9.
	* config/arm/cortex-a9.md: New file.

2008-09-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37327
	* tree-vrp.c (register_new_assert_for): Make sure to not have
	TREE_OVERFLOW set on the bound.

2008-09-02  Alexander Monakov  <amonakov@ispras.ru>

	Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.

	* config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
	* config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
	spec_info->mask.

2008-09-02  Victor Kaplansky  <victork@il.ibm.com>

	* gcc/config/spu/spu.md (divdf3): Removed.

2008-09-02  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/37095
	* cgraph.c (cgraph_node): When creating new cgraph node after
	assembler_name_hash has been populated, record it in the hash
	table.

2008-09-01  Paul Brook  <paul@codesourcery.com>

	* doc/invoke.texi: Document -mword-relocations.
	* config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
	* config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
	* config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
	* config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
	(arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
	(arm_emit_movpair): New function.
	(arm_print_operand <c>): Handle sybolic addresses.
	* config/arm/arm.h (TARGET_USE_MOVT): Define.
	(TARGET_DEFAULT_WORD_RELOCATIONS): Define.
	* config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
	* config/arm/arm.opt: Add -mword-relocations.
	* config/arm/arm.md (movsi): Use arm_emit_movpair.
	(arm_movt, arm_movw): New.

2008-09-01  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_override_options): Set arm_abi earlier.
	Allow Interworking on ARMv4 EABI based targets.
	* config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
	(SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.

2008-09-01  Paul Brook  <paul@codesourcery.com>

	* config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
	optimized LT0 test.  Remove optimization for GT.

2008-09-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa64-hpux.h (LIB_SPEC): Link against librt when building static
	openmp applications.
	* pa-hpux11.h (LIB_SPEC): Likewise.

	* ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
	is defined.

2008-09-01  Jan Hubicka  <jh@suse.cz>

	* predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
	present, use only counts; when guessed use only frequencies.
	(estimate_bb_frequencies): Use function_frequency.
	* profile.c (compute_branch_probabilities): Exit early when
	profile reading failed. Set profile_status.
	(branch_prob): Do not set profile_status.

2008-09-01  Aldy Hernandez  <aldyh@redhat.com>

	* tree.c (protected_set_expr_location): New.
	* tree.h (protected_set_expr_location): New prototype.
	* c-tree.h (build_array_ref): Add argument.
	(parser_build_unary_op): Same.
	* c-typeck.c (build_indirect_ref): Handle new location argument.
	(build_array_ref): Same.
	(parser_build_unary_op): Same.
	* gimplify.c (gimplify_asm_expr): Set input_location before calling
	error.
	* c-omp.c (c_finish_omp_atomic): Pass location when calling
	build_indirect_ref.
	* c-common.c (finish_label_address_expr): Handle new location argument.
	* c-common.h (build_indirect_ref): Add argument.
	(finish_label_address_expr): Same.
	* c-parser.c (c_parser_unary_expression): Pass location to build
	functions.
	(c_parser_postfix_expression): Same.

2008-09-01  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md: Include cortex-r4f.md.
	(attr fpu): Update type list.
	(attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
	fconstd, fcmps and fcmpd.
	(attr tune_cortexr4): Define.
	(attr generic_sched, attr generic_vfp): Use tune_cortexr4.
	* config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
	fconsts, fconstd, fcmps and fcmpd.  Use them in insn patterns.
	* config/arm/arm.c (arm_issue_rate): Add cortexr4f.
	* config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
	* config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
	cortex_a8_vfp_farith: Ditto.
	* config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
	* config/arm/cortex-r4.md: Use tune_cortexr4.
	* config/arm/cortex-r4f.md: New file.

2008-09-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37305
	* tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
	the result of constant conversions.
	(fold_gimple_assign): Likewise.

2008-09-01  Andrey Belevantsev  <abel@ispras.ru>

	* sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
	#ifdef ENABLE_CHECKING.

2008-09-01  Andrey Belevantsev  <abel@ispras.ru>

	* sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
	* sched-int.h (print_insn, print_pattern, print_value): Declare also
	when !INSN_SCHEDULING.

2008-09-01  Andreas Schwab  <schwab@suse.de>

	* config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.

2008-09-01  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.

2008-09-01  Jan Hubicka  <jh@suse.cz>

	* config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.

	* expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
	Pass speed operand.
	* expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
	* gimplify.c (gimplify_init_constructor): Add speed operand.
	* tree-sra.c (decide_block_copy): Likewise.
	* tree-inline.c (estimate_move_cost): Likewise.
	* config/alpha/alpha.h (MOVE_RATIO): Update.
	* config/frv/frv.c (MOVE_RATIO): Update.
	* config/spu/spu.h (MOVE_RATIO): Update.
	* config/sparc/sparc.h (MOVE_RATIO): Update.
	* config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
	* config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
	* config/cris/cris.h (MOVE_RATIO): Update.
	* config/mn10300/mn10300.h (MOVE_RATIO): Update.
	* config/arm/arm.h (MOVE_RATIO): Update.
	* config/pa/pa.md: Update uses of MOVE_RATIO
	* config/pa/pa.h (MOVE_RATIO): Update.
	* config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
	CLEAR_RATIO, SET_RATIO): Update.
	* config/h8300/h8300.h (MOVE_RATIO): Update.
	* config/v850/v850.h (MOVE_RATIO): Update.
	* config/bfin/bfin.h (MOVE_RATIO): Update.

2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
	    Dmitry Melnik  <dm@ispras.ru>
	    Dmitry Zhurikhin  <zhur@ispras.ru>
	    Alexander Monakov  <amonakov@ispras.ru>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	* sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
	sel-sched-dump.c, sel-sched-ir.c: New files.
	* Makefile.in (OBJS-common): Add selective scheduling object files.
	(sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
	(SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
	(sched-vis.o): Add dependency on $(INSN_ATTR_H).
	* cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
	* cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
	(make_forwarder_block): Update loop latch if we have redirected
	the loop latch edge.
	* cfgloop.c (get_loop_body_in_custom_order): New function.
	* cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
	(CP_FALLTHRU_PREHEADERS): Likewise.
	(get_loop_body_in_custom_order): Declare.
	* cfgloopmanip.c (has_preds_from_loop): New.
	(create_preheader): Honor CP_FALLTHRU_PREHEADERS.
	Assert that the preheader edge will be fall thru when it is set.
	* common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
	fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
	fsel-sched-substitution, fselective-scheduling): New flags.
	* cse.c (hash_rtx_cb): New.
	(hash_rtx): Use it.
	* dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
	sel_sched_insn_cnt): New counters.
	* final.c (compute_alignments): Export.  Free dominance
	info after loop_optimizer_finalize.
	* genattr.c (main): Output maximal_insn_latency prototype.
	* genautomata.c (output_default_latencies): New.
	Factor its code from ...
	(output_internal_insn_latency_func): ... here.
	(output_internal_maximal_insn_latency_func): New.
	(output_maximal_insn_latency_func): New.
	* hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
	(struct hard_reg_set_iterator): New.
	(hard_reg_set_iter_init, hard_reg_set_iter_set,
	hard_reg_set_iter_next): New functions.
	(EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
	* lists.c (remove_free_INSN_LIST_node,
	remove_free_EXPR_LIST_node): New functions.
	* loop-init.c (loop_optimizer_init): When
	LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
	calling create_preheaders.
	(loop_optimizer_finalize): Do not verify flow info after reload.
	* recog.c (validate_replace_rtx_1): New parameter simplify.
	Default it to true.  Update all uses.  Factor out simplifying
	code to ...
	(simplify_while_replacing): ... this new function.
	(validate_replace_rtx_part,
	validate_replace_rtx_part_nosimplify): New.
	* recog.h (validate_replace_rtx_part,
	validate_replace_rtx_part_nosimplify): Declare.
	* rtl.c (rtx_equal_p_cb): New.
	(rtx_equal_p): Use it.
	* rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
	(remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
	debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
	* vecprim.h: Add a vector type for unsigned int.
	* haifa-sched.c: Include vecprim.h and cfgloop.h.
	(issue_rate, sched_verbose_param, note_list, dfa_state_size,
	ready_try, cycle_issued_insns, spec_info): Make global.
	(readyp): Initialize.
	(dfa_lookahead): New global variable.
	(old_max_uid, old_last_basic_block): Remove.
	(h_i_d): Make it a vector.
	(INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
	through HID macro.
	(after_recovery, adding_bb_to_current_region_p):
	New variables to handle correct insertion of the recovery code.
	(struct ready_list): Move declaration to sched-int.h.
	(rgn_n_insns): Removed.
	(rtx_vec_t): Move to sched-int.h.
	(find_insn_reg_weight): Remove.
	(find_insn_reg_weight1): Rename to find_insn_reg_weight.
	(haifa_init_h_i_d, haifa_finish_h_i_d):
	New functions to initialize / finalize haifa instruction data.
	(extend_h_i_d, init_h_i_d): Rewrite.
	(unlink_other_notes): Move logic to add_to_note_list.  Handle
	selective scheduler.
	(ready_lastpos, ready_element, ready_sort, reemit_notes,
	find_fallthru_edge): Make global, remove static prototypes.
	(max_issue): Make global.  Add privileged_n and state parameters.  Use
	them.
	(extend_global, extend_all): Removed.
	(init_before_recovery): Add new param.  Fix the handling of the case
	when we insert a recovery code before the EXIT which has a predecessor
	with a fallthrough edge to it.
	(create_recovery_block): Make global.  Rename to
	sched_create_recovery_block.  Update.
	(change_pattern): Rename to sched_change_pattern.  Make global.
	(speculate_insn): Rename to sched_speculate_insn.  Make global.
	Split haifa-specific functionality into ...
	(haifa_change_pattern): New static function.
	(sched_extend_bb): New static function.
	(sched_init_bbs): New function.
	(current_sched_info): Change type to struct haifa_sched_info.
	(insn_cost): Adjust for selective scheduling.
	(dep_cost_1): New function.  Move logic from ...
	(dep_cost): ... here.
	(dep_cost): Use dep_cost_1.
	(contributes_to_priority_p): Use sched_deps_info instead of
	current_sched_info.
	(priority): Adjust to work with selective scheduling.  Process the
	corner case when all dependencies don't contribute to priority.
	(rank_for_schedule): Use ds_weak instead of dep_weak.
	(advance_state): New function.  Move logic from ...
	(advance_one_cycle): ... here.
	(add_to_note_list, concat_note_lists): New functions.
	(rm_other_notes): Make static.  Adjust for selective scheduling.
	(remove_notes, restore_other_notes): New functions.
	(move_insn): Add two arguments.  Update assert.  Don't call
	reemit_notes.
	(choose_ready): Remove lookahead variable, use dfa_lookahead.
	Remove more_issue, max_points.  Move the code to initialize
	max_lookahead_tries to max_issue.
	(schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
	ready.  Adjust use of move_insn.  Call restore_other_notes.
	(luid): Remove.
	(sched_init, sched_finish): Move Haifa-specific initialization/
	finalization to ...
	(haifa_sched_init, haifa_sched_finish): ... respectively.
	New functions.
	(setup_sched_dump): New function.
	(haifa_init_only_bb): New static function.
	(haifa_speculate_insn): New static function.
	(try_ready): Use haifa_* instead of speculate_insn and change_pattern.
	(extend_ready, extend_all): Remove.
	(sched_extend_ready_list, sched_finish_ready_list): New functions.
	(create_check_block_twin, add_to_speculative_block): Use
	haifa_insns_init instead of extend_global.  Update to use new
	initialization functions.  Change parameter.  Factor out code from
	create_check_block_twin to ...
	(sched_create_recovery_edges) ... this new function.
	(add_block): Remove.
	(sched_scan_info): New.
	(extend_bb): Use sched_scan_info.
	(init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
	static functions for walking through scheduling region.
	(sched_luids): New vector variable to replace uid_to_luid.
	(luids_extend_insn): New function.
	(sched_max_luid): New variable.
	(luids_init_insn): New function.
	(sched_init_luids, sched_finish_luids): New functions.
	(insn_luid): New debug function.
	(sched_extend_target): New function.
	(haifa_init_insn): New static function.
	(sched_init_only_bb): New hook.
	(sched_split_block): New hook.
	(sched_split_block_1): New function.
	(sched_create_empty_bb): New hook.
	(sched_create_empty_bb_1): New function.
	(common_sched_info, ready): New global variables.
	(current_sched_info_var): Remove.
	(move_block_after_check): Use common_sched_info.
	(haifa_luid_for_non_insn): New static function.
	(init_before_recovery): Use haifa_init_only_bb instead of add_block.
	(increase_insn_priority): New.
	* modulo-sched.c (issue_rate): Remove static declaration.
	(sms_sched_info): Change type to haifa_sched_info.
	(sms_sched_deps_info, sms_common_sched_info): New variables.
	(setup_sched_infos): New.
	(sms_schedule): Initialize them.  Call haifa_sched_init/finish.
	Do not call regstat_free_calls_crossed.
	(sms_print_insn): Use const_rtx.
	* params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
	PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
	PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
	PARAM_SCHED_MEM_TRUE_DEP_COST): New.
	* sched-deps.c (sched_deps_info): New.  Update all relevant uses of
	current_sched_info to use it.
	(enum reg_pending_barrier_mode): Move to sched-int.h.
	(h_d_i_d): New variable. Initialize to NULL.
	({true, output, anti, spec, forward}_dependency_cache): Initialize
	to NULL.
	(estimate_dep_weak): Remove static declaration.
	(sched_has_condition_p): New function.  Adjust users of
	sched_get_condition to use it instead.
	(conditions_mutex_p): Add arguments indicating which conditions are
	reversed.  Use them.
	(sched_get_condition_with_rev): Rename from sched_get_condition.  Add
	argument to indicate whether returned condition is reversed.  Do not
	generate new rtx when condition should be reversed; indicate it by
	setting new argument instead.
	(add_dependence_list_and_free): Add deps parameter.
	Update all users.  Do not free dependence list when
	deps context is readonly.
	(add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
	contexts.
	(remove_from_dependence_list, remove_from_both_dependence_lists): New.
	(remove_from_deps): New. Use the above functions.
	(cur_insn, can_start_lhs_rhs_p): New static variables.
	(add_or_update_back_dep_1): Initialize present_dep_type.
	(haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
	haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
	haifa_note_dep): New functions implementing dependence hooks for
	the Haifa scheduler.
	(note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
	note_dep): New functions.
	(ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
	functions.
	(init_deps): Initialize last_reg_pending_barrier and deps->readonly.
	(free_deps): Initialize deps->reg_last.
	(sched_analyze_reg, sched_analyze_1, sched_analyze_2,
	sched_analyze_insn): Update to use dependency hooks infrastructure
	and readonly contexts.
	(deps_analyze_insn): New function.  Move part of logic from ...
	(sched_analyze): ... here.  Also move some logic to ...
	(deps_start_bb): ... here.  New function.
	(add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
	sel_sched_p.
	(sched_deps_init): New function.  Move code from ...
	(init_dependency_caches): ... here.  Remove.
	(init_deps_data_vector): New.
	(sched_deps_finish): New function.  Move code from ...
	(free_dependency_caches): ... here.  Remove.
	(init_deps_global, finish_deps_global): Adjust for use with
	selective scheduling.
	(get_dep_weak): Move logic to ...
	(get_dep_weak_1): New function.
	(ds_merge): Move logic to ...
	(ds_merge_1): New static function.
	(ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
	(ds_get_max_dep_weak): New function.
	* sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
	(n_insns): Rename to rgn_n_insns.
	(debug_ebb_dependencies): New function.
	(init_ready_list): Use it.
	(begin_schedule_ready): Use sched_init_only_bb.
	(ebb_print_insn): Indicate when an insn starts a new cycle.
	(contributes_to_priority, compute_jump_reg_dependencies,
	add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
	(add_block1): Remove to ebb_add_block.
	(ebb_sched_deps_info, ebb_common_sched_info): New variables.
	(schedule_ebb): Initialize them.  Use remove_notes instead of
	rm_other_notes.  Use haifa_local_init/finish.
	(schedule_ebbs): Use haifa_sched_init/finish.
	* sched-int.h: Include vecprim.h, remove rtl.h.
	(struct ready_list): Delete declaration.
	(sched_verbose_param, enum sched_pass_id_t,
	bb_vec_t, insn_vec_t, rtx_vec_t): New.
	(struct sched_scan_info_def): New structure.
	(sched_scan_info, sched_scan, sched_init_bbs,
	sched_init_luids, sched_finish_luids, sched_extend_target,
	haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
	(struct common_sched_info_def): New.
	(common_sched_info, haifa_common_sched_info,
	sched_emulate_haifa_p): Declare.
	(sel_sched_p): New.
	(sched_luids): Declare.
	(INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
	(sched_max_luid, insn_luid): Declare.
	(note_list, remove_notes, restore_other_notes, bb_note): Declare.
	(sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
	print_insn, print_pattern, print_value, haifa_classify_insn,
	sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
	setup_sched_dump, sched_init, sched_finish,
	sel_insn_is_speculation_check): Export.
	(struct ready_list): Move from haifa-sched.c.
	(ready_try, ready, max_issue): Export.
	(ebb_compute_jump_reg_dependencies, find_fallthru_edge,
	sched_init_only_bb, sched_split_block, sched_split_block_1,
	sched_create_empty_bb, sched_create_empty_bb_1,
	sched_create_recovery_block, sched_create_recovery_edges): Export.
	(enum reg_pending_barrier_mode): Export.
	(struct deps): New fields `last_reg_pending_barrier' and `readonly'.
	(deps_t): New.
	(struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
	print_insn field.  Move add_block and fix_recovery_cfg to
	common_sched_info_def.  Move compute_jump_reg_dependencies,
	use_cselib  ...
	(struct sched_deps_info_def): ... this new structure.
	(sched_deps_info): Declare.
	(struct spec_info_def): Remove weakness_cutoff, add
	data_weakness_cutoff and control_weakness_cutoff.
	(spec_info): Declare.
	(struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
	dep_count field.
	(struct haifa_insn_data): Rename to struct _haifa_insn_data.
	(haifa_insn_data_def, haifa_insn_data_t): New typedefs.
	(current_sched_info): Change type to struct haifa_sched_info.
	(haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
	(h_d_i_d): New variable.
	(HDID): New accessor macro.
	(h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
	(HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
	and HDID.
	(IS_SPECULATION_CHECK_P): Update for selective scheduler.
	(enum SCHED_FLAGS): Update for selective scheduler.
	(enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
	(init_dependency_caches, free_dependency_caches): Delete declarations.
	(deps_analyze_insn, remove_from_deps, get_dep_weak_1,
	estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
	ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
	sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
	haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
	ds_to_dt): Export.
	(rm_other_notes): Delete declaration.
	(schedule_block): Remove one argument.
	(cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
	ready_element, ready_lastpos, sched_extend_ready_list,
	sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
	concat_note_lists): Export.
	(struct region): Move from sched-rgn.h.
	(nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
	RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
	BLOCK_TO_BB, CONTAINING_RGN): Export.
	(ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
	(current_nr_blocks, current_blocks, target_bb): Likewise.
	(dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
	sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
	sched_rgn_local_init, extend_regions,
	rgn_make_new_region_out_of_new_block, compute_priorities,
	debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
	extend_rgns, deps_join rgn_setup_common_sched_info,
	rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
	dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
	(get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
	increase_insn_priority): Likewise.
	* sched-rgn.c: Include sel-sched.h.
	(ref_counts): New static variable.  Use it ...
	(INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
	(FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
	(sched_is_disabled_for_current_region_p): Delete static declaration.
	(struct region): Move to sched-int.h.
	(nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
	ebb_head): Define and initialize.
	(RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
	BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
	BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
	sched-int.h.
	(find_single_block_region): Add new argument to indicate that EBB
	regions should be constructed.
	(debug_live): Delete declaration.
	(current_nr_blocks, current_blocks, target_bb):
	Remove static qualifiers.
	(compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
	declaration.
	(init_regions): Delete declaration.
	(debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
	rgn_estimate_number_of_insns): New.
	(too_large): Use estimate_number_of_insns.
	(haifa_find_rgns): New. Move the code from ...
	(find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
	(free_trg_info): New.
	(compute_trg_info): Allocate candidate tables here instead of ...
	(init_ready_list): ... here.
	(rgn_print_insn): Use const_rtx.
	(contributes_to_priority, extend_regions): Delete static declaration.
	(add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
	(add_block1): Rename to rgn_add_block.
	(debug_rgn_dependencies): Delete static qualifier.
	(new_ready): Use sched_deps_info.  Simplify.
	(rgn_common_sched_info, rgn_const_sched_deps_info,
	rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
	New.
	(region_sched_info): Rename to rgn_const_sched_info.
	(deps_join): New, extracted from ...
	(propagate_deps): ... here.
	(compute_block_dependences, debug_dependencies): Update for selective
	scheduling.
	(free_rgn_deps, compute_priorities): New functions.
	(sched_rgn_init, sched_rgn_finish, rgn_setup_region,
	sched_rgn_compute_dependencies): New functions.
	(schedule_region): Use them.
	(sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
	rgn_setup_common_sched_info, rgn_setup_sched_infos):
	New functions.
	(schedule_insns): Call new functions that were split out.
	(rgn_make_new_region_out_of_new_block): New.
	(get_rgn_sched_max_insns_priority): New.
	(rest_of_handle_sched, rest_of_handle_sched2): Call selective
	scheduling when appropriate.
	* sched-vis.c: Include insn-attr.h.
	(print_value, print_pattern): Make global.
	(print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
	* target-def.h (TARGET_SCHED_ADJUST_COST_2,
	TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
	TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
	TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
	TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
	hooks.  Initialize them to 0.
	(TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
	* target.h (struct gcc_target): Add them.  Rename gen_check field to
	gen_spec_check.
	* flags.h (sel_sched_switch_set): Declare.
	* opts.c (sel_sched_switch_set): New variable.
	(decode_options): Unset flag_sel_sched_pipelining_outer_loops if
	pipelining is disabled from command line.
	(common_handle_option): Record whether selective scheduling is
	requested from command line.
	* doc/invoke.texi: Document new flags and parameters.
	* doc/tm.texi: Document new target hooks.
	* config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
	ia64_gen_check.
	(dfa_state_size): Do not declare locally.
	* config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
	* config/rs6000/rs6000.c (rs6000_init_sched_context,
	rs6000_alloc_sched_context, rs6000_set_sched_context,
	rs6000_free_sched_context): New functions.
	(struct _rs6000_sched_context): New.
	(rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
	scheduling.
	(rs6000_sched_finish): Do not run for selective scheduling.

2008-08-31  Jan Hubicka  <jh@suse.cz>

	* frv.c (frv_rtx_costs): Update forward declaration.
	* spu.c (spu_rtx_costs): Likewise.
	* pdp11.c: Include df.h
	(pdp11_output_function_epilogue): Use df_set_regs_ever_live.
	* m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
	(m68hc11_rtx_costs_1): Fix call of rtx_cost.
	* iq2000.c (iq2000_address_cost): Add speed argument.
	(iq2000_rtx_costs): Likewise.
	* mn10300.c (mn10300_address_cost_1): Remove speed argument;
	update call of mn10300_address_cost.
	* mcore.c: Include df.h
	(mcore_rtx_costs): Update prototype.
	* score3.c: Include df.h
	(score3_rtx_costs): Remove speed argument.
	* score7.c: Include df.h
	(score7_address_cost): Remove speed argument.
	* score-protos.h (score_address_cost): Update prototype.
	* score.c: Include df.h
	(score_rtx_costs): Update call of costs functions.
	* v850.c (v850_rtx_costs): Add bool argument.

2008-08-31  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.

2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

	* gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
	* config/i386/gthr-win32.c (__gthread_setspecific): Same.

2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

	* mkmap-flat.awk: Add option pe_dll.
	* config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
	* config/i386/t-cygwin (SHLIB_LC): Add.
	* config/i386/t-mingw32 (SHLIB_LC): Add.
	* config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
	(SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
	(LINK_SPEC): Support libgcc_s.
	(LIBGCC_SPEC): Support libgcc_s.
	(LIBGCC_SONAME): New.

2008-08-31  Jan Hubicka  <jh@suse.cz>

	* predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
	mistakely had old version of patch.

	* ipa-cp.c (ipcp_need_original_clone_p): Remove.
	(ipcp_estimate_growth): New.
	(ipcp_insert_stage): Use ipcp_estimate_growth.
	* profile.c (branch_prob): When reading failed, do not consider
	profile as read.

2008-08-31  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
	loop is optimized for speed.

2008-08-31  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37289
	* fold-const.c (fold_binary): Retain conversions in folding
	~A + 1 to -A.

2008-08-31  Jan Hubicka  <jh@suse.cz>

	* postreload-gcse.c (eliminate_partially_redundant_loads):
	Use optimize_bb_for_size_p.
	* predict.c (maybe_hot_frequency_p): Make inline.
	(maybe_hot_count_p): Break out from ...
	(maybe_hot_bb_p): ... this one.
	(maybe_hot_edge_p): Simplify.
	* basic-block.h (probably_cold_bb_p): Remove.

2008-08-31  Jakub Jelinek  <jakub@redhat.com>

	PR target/37168
	* config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
	prototype.
	* config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
	* config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
	Also split V4SFmode.
	* config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
	vector float modes.

2008-08-31  Jan Hubicka  <jh@suse.cz>

	* predict.c (PROB_VERY_LIKELY): Make small enough so things
	become cold.
	* predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.

2008-08-31  Jakub Jelinek  <jakub@redhat.com>

	PR debug/37287
	* dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
	add source coords.

	* dwarf2out.c (native_encode_initializer): Subtract min_index for
	non-range array index.  Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.

2008-08-31  Jan Hubicka  <jh@suse.cz>

	* sparc.h (BRANCH_COST): Fix macro definition.
	* avr.c (avr_operand_rtx_cost): Add speed argument.
	(avr_rtx_costs): Update calls of avr_operand_rtx_cost.

2008-08-31  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
	types instead of operands.  Re-instantiate verifying of
	binary expression operands.

2008-08-30  Jan Hubicka  <jh@suse.cz>

	* fwprop.c (should_replace_address): Add speed attribute.
	(PR_OPTIMIZE_FOR_SPEED): New flag.
	(propagate_rtx_1): Use it.
	(propagate_rtx): Set it.
	(try_fwprop_subst): Update call of rtx_costs.
	(forward_propagate_and_simplify): LIkewise.
	* hooks.c (hook_int_rtx_bool_0): New
	(hook_bool_rtx_int_int_intp_false): Replace by ...
	(hook_bool_rtx_int_int_intp_bool_false): .. thisone.
	* hooks.h (hook_int_rtx_bool_0): New
	(hook_bool_rtx_int_int_intp_false): Replace by ...
	(hook_bool_rtx_int_int_intp_bool_false): .. thisone.
	* optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
	(prepare_cmp_insn): UPdate call of rtx_cost.
	* postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
	(reload_cse_simplify_operands): Update call of rtx_cost.
	(reload_cse_move2add): call of rtx_cost.
	* target.h (struct gcc_target): Update rtx_costs and address_costs.
	* rtlanal.c (rtx_cost): Add speed argument.
	(address_cost): Add speed argument
	(default_address_cost): Likewise.
	(insn_rtx_cost): Likewise.
	* cfgloopanal.c (seq_cost): Add speed argument.
	(target_reg_cost, target_spill_cost): Turn to array.
	(init_set_costs): Update for speed.
	(estimate_reg_pressure_cost): Add speed argument.
	* auto-inc-dec.c (attempt_change): Update call of rtx_cost.
	* dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
	* tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
	(seq_cost): Add speed argument.
	(computation_cost): Add speed arugment.
	(add_cost, multiply_by_const, get_address_cost): add speed argument.
	(force_expr_to_var_cost): Update for profile info.
	(force_var_cost): Likewise.
	(split_address_cost): Likewise.
	(ptr_difference_cost): Likewise.
	(difference_cost): Likewise.
	(get_computation_cost_at): Likewise.
	(determine_iv_cost): Likewise.
	(ivopts_global_cost_for_size): Likewise.
	(rewrite_use_address): Likewise.
	(tree_ssa_iv_optimize_loop): Initialize speed field.
	* cse.c (optimize_this_for_speed_p): New static var.
	(notreg_cost): Update call of rtx_cost.
	(cse_extended_basic_block): set optimize_this_for_speed_p.
	* ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
	(noce_try_cmove_arith): Likewise.
	(noce_try_sign_mask): LIkewise.
	* expr.c (compress_float_constant): Update rtx_cost calls.
	* tree-ssa-address.c (most_expensive_mult_to_index): Add speed
	argument.
	(addr_to_parts): Likewise.
	(create_mem_ref): Likewise.
	* dse.c (find_shift_sequence): Add speed argument.
	(replace_read): Update call.
	* calls.c (precompute_register_parameters): Update call of rtx_cost.
	* expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
	* neg_cost, shift_cost, shiftadd_cost,
	shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
	mul_highpart_cost): Increase dimension.
	(init_expmed): Initialize for both size and speed.
	(expand_shift): Use profile.
	(synth_mult): Use profile.
	(choose_mult_variant): Use profile.
	(expand_mult): Use profile.
	(expand_mult_highpart_optab): Use profile.
	(expand_mult_highpart): Use profile.
	(expand_smod_pow2): Use profile.
	(expand_divmod): Use profile.
	* simplify-rtx.c (simplify_binary_operation_1): Update call of
	rtx_cost.
	* loop-invariant.c (create_new_invariant): Use profile.
	(gain_for_invariant): Add speed parameter.
	(best_gain_for_invariant): Likewise.
	(find_invariants_to_move): Likewise.
	(move_single_loop_invariants): Set it.
	* target-def.h (TARGET_RTX_COSTS): Use hook.
	* rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
	(optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
	* output.h (default_address_cost): Update prototype.
	* combine.c (optimize_this_for_speed_p): New static var.
	(combine_validate_cost): Update call of rtx_cost.
	(combine_instructions): Set optimize_this_for_speed_p.
	(expand_compound_operation): Update call of rtx_cost.
	(make_extraction):Update call of rtx_cost.
	(force_to_mode):Update call of rtx_cost.
	(distribute_and_simplify_rtx):Update call of rtx_cost.
	* cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
	(estimate_reg_pressure_cost): Update prototype.
	* tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
	* basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
	Remove.
	* config/alpha/alpha.c (alpha_rtx_costs): Update.
	(alpha_rtx_costs): Update.
	* config/frv/frv.c (frv_rtx_costs): Update.
	* config/s390/s390.c (s390_rtx_costs): Update.
	* config/m32c/m32c.c (m32c_memory_move_cost): Update.
	(m32c_rtx_costs): Update.
	* config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
	(spu_rtx_costs): Update.
	* config/sparc/sparc.c (sparc_rtx_costs): Update.
	* config/m32r/m32r.c (m32r_rtx_costs): Update.
	* config/i386/i386.c (:ix86_address_cost): Update.
	(ix86_rtx_costs): Update.
	* config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
	* config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
	* config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
	* config/crx/crx.c (crx_address_cost): Update.
	* config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
	* config/stormy16/stormy16.c
	(xstormy16_address_cost, xstormy16_rtx_costs): Update.
	* config/m68hc11/m68hc11.c
	(m68hc11_address_cost, m68hc11_rtx_costs): Update.
	* config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
	* config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
	Update.
	* config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
	Update
	* config/ia64/ia64.c (ia64_rtx_costs): Update.
	* config/m68k/m68k.c (m68k_rtx_costs): Update.
	* config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
	* config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
	* config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
	(mcore_rtx_costs): update.
	* config/score/score3.c (score3_rtx_costs): Update.
	* config/score/score7.c (score7_rtx_costs): Update.
	* config/score/score3.h (score3_rtx_costs):Update.
	* config/score/score7.h (score7_rtx_costs): Update.
	* config/score/score.c (score_rtx_costs): Update.
	* config/arm/arm.c (arm_address_cost): Update.
	(arm_rtx_costs_1): Update.
	(arm_rtx_costs_1): Update.
	(arm_size_rtx_costs): Update.
	(arm_size_rtx_costs): Update.
	(arm_size_rtx_costs): Update.
	(arm_xscale_rtx_costs): Update.
	(arm_thumb_address_cost): Update.
	* config/pa/pa.c (hppa_address_cost): Update.
	* config/mips/mips.c (mips_rtx_costs): Update.
	* config/vax/vax.c (vax_address_cost): Update.
	* config/h8300/h8300.c (h8300_shift_costs): Update.
	(h8300_rtx_costs): Update.
	* config/v850/v850.c (TARGET_ADDRESS_COST): Update.
	(v850_rtx_costs): Update.
	* config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
	* config/bfin/bfin.c
	(bfin_address_cost): Update.
	(bfin_rtx_costs): Update.
	* stmt.c (lshift_cheap_p): Update.

2008-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/36444
	* expmed.c (extract_bit_field_1): Check the mode size to make
	sure the vector modes have the same size.

2008-08-29  Michael Meissner  <gnu@the-meissners.org>

	* dojump.c (top level): Include basic-block.h to declare
	optimize_insn_for_speed_p

	* Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.

	* opts.h (CL_SAVE): New option class for marking options that are
	target specific options usable in the target attribute.
	(CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.

	* opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
	can easily find the target specific options that are safe to use
	in the attribute or pragma.

	* attribs.c (decl_attributes): Change #pragma GCC option to
	#pragma GCC target, and attribute((option(...))) to
	attribute((target(...))).

	* doc/extend.texi (target attribute): Change from option
	attribute.  Delete push/pop/reset.
	(#pragma GCC target): Change from #pragma GCC option.  Delete
	push/pop/reset.
	(#pragma GCC push_options): Document new pragma.
	(#pragma GCC pop_options): Document new pragma.
	(#pragma GCC reset_options): Document new pragma.

	* targhooks.c (default_target_option_valid_attribute_p): Add
	warning about port not supporting target attributes.
	(default_target_option_pragma_parse): New function, warn about
	#pragma GCC target not being supported.

	* targhooks.h (default_target_option_pragma_parse): Add
	declaration.

	* tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
	TI_CURRENT_OPTION_PRAGMA.
	(current_target_pragma): Rename from current_option_pragma.

	* target.h (struct target_option): Delete booleans for changing
	the optimization level on hot/cold functions.  Change signature of
	pragma_parse hook to take a second tree.

	* c-tree.h (c_builtin_function_ext_scope): Add declaration.

	* c-decl.c (c_builtin_function_ext_scope): New function, guarantee
	that the declaration is done at global scope.

	* langhooks.c (add_builtin_function_common): Move most of the code
	from add_builtin_function here, calling the hook passed in.
	(add_builtin_function): Call add_builtin_function_common with
	standard builtin hook.
	(add_builtin_function_ext_scope): New function to add builtins to
	global scope.

	* langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
	hook.
	(add_builtin_function_ext_scope): Add declaration.

	* c-pragma.c (handle_pragma_target): Rename from
	handle_pragma_option, #pragma GCC option is now #pragma GCC
	target.  Move warning about port not supporting target options to
	default pragma parse hook.  Remove push/pop/reset from this
	pragma.
	(handle_pragma_optimize): Remove push/pop/reset from this pragma.
	(option_stack): Delete static variable.
	(optimize_stack): Ditto.
	(optons_stack): New stack of saved target and optimization
	options.
	(handle_pragma_push_options): New function to handle pushing both
	target and optimization options.
	(handle_pragma_pop_options): New function to handle popping both
	target and optimization options.
	(handle_pragma_reset_options): New function to handle resetting
	both target and optimization options to their initial state.
	(init_pragma): Rename handle_pragma_option to
	handle_pragma_target.  Add support for push_options, pop_options,
	and reset_options pragmas.

	* target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
	default_target_option_pragma_parse.
	(TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
	default_target_option_valid_attribute_p.
	(TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
	(TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
	(TARGET_OPTION_HOOKS): Delete the fields for whether to change
	optimization level on hot/cold functions.

	* tree-inline.c (tree_can_inline_p): Disable suppressing inlining
	if the caller and callee have different optimization levels.

	* c-common.c (handle_target_attribute): Rename from
	handle_option_attribute, attribute((option(...))) is now
	attribute((target(...))).  Move warning if the port does not
	support target attributes to the default hook.
	(handle_hot_attribute): Delete code to change the optimization
	level of hot functions.
	(handle_cold_attribute): Ditto.

	* config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
	argument that is the binary tree options to use if there are no
	arguments.  Call ix86_valid_target_attribute_tree instead of
	ix86_valid_option_attribute_tree.
	(ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
	(ix86_register_pragmas): Use ix86_pragma_target_parse instead of
	ix86_pragma_option_parse.

	* config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
	Rename from ix86_valid_option_attribute_tree.

	* config/i386/i386.c (ix86_add_new_builtins): New function to add
	new builtins when the ISA changes.
	(ix86_valid_target_attribute_tree): Rename from
	ix86_valid_option_attribute_tree.  Change callers.  If the
	function specified optimization options, use those as the starting
	point before setting up the target attributes.  If the
	optimization options were changed in the course of setting the
	target attributes, record the new optimization options.
	(ix86_valid_target_attribute_tree_inner_p): Rename from
	ix86_valid_option_attribute_tree_inner_p.  Change callers.  Call
	ix86_add_new_builtins if the ISA changed.
	(ix86_valid_target_attribute_p): Rename from
	ix86_valid_option_attribute_p.  Change callers.
	(enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
	__builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
	as delayed builtin functions.
	(struct builtin_isa): New structure to record builtin functions
	that should be delayed until the ISA for that function is used.
	(ix86_builtins_isa): Change from int to struct to track builtin
	functions we want to declare at some point.
	(def_builtin): If the front end can delay defining the builtin
	functions, don't create builtins for ISAs not part of the default
	options.
	(def_builtin_const): Ditto.
	(bdesc_multi_arg): Declare __builtin_ia32_pcmov and
	__builtin_ia32_pcmov_v2di to be different builtin functions.
	(ix86_expand_builtin): Changes due to ix86_builtins_isa now being
	a structure instead of an int.
	(TARGET_OPTION_VALID_ATTRIBUTE_P): Use
	ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
	(TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
	(TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.

	* config/ia64/ia64.h
	(TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
	(TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.

	* langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
	hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
	(LANG_HOOKS_INITIALIZER): Add
	LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.

2008-08-30  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/37270
	* config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
	the reload address with the index register for SFmode
	access with a displacement.

2008-08-30  Jan Hubicka  <jh@suse.cz>

	* optabs.c (expand_abs_nojump): Update BRANCH_COST call.
	* fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
	* dojump.c (do_jump): Likewise.
	* ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
	(note-if_info): Add BRANCH_COST.
	(noce_try_store_flag_constants, noce_try_addcc,
	noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
	noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
	find_if_case_2): Use computed branch cost.
	* expr.h (BRANCH_COST): Update default.
	* predict.c (predictable_edge_p): New function.
	* expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
	Update BRANCH_COST call.
	* basic-block.h (predictable_edge_p): Declare.
	* config/alpha/alpha.h (BRANCH_COST): Update.
	* config/frv/frv.h (BRANCH_COST): Update.
	* config/s390/s390.h (BRANCH_COST): Update.
	* config/spu/spu.h (BRANCH_COST): Update.
	* config/sparc/sparc.h (BRANCH_COST): Update.
	* config/m32r/m32r.h (BRANCH_COST): Update.
	* config/i386/i386.h (BRANCH_COST): Update.
	* config/i386/i386.c (ix86_expand_int_movcc): Update use of
	BRANCH_COST.
	* config/sh/sh.h (BRANCH_COST): Update.
	* config/pdp11/pdp11.h (BRANCH_COST): Update.
	* config/avr/avr.h (BRANCH_COST): Update.
	* config/crx/crx.h (BRANCH_COST): Update.
	* config/xtensa/xtensa.h (BRANCH_COST): Update.
	* config/stormy16/stormy16.h (BRANCH_COST): Update.
	* config/m68hc11/m68hc11.h (BRANCH_COST): Update.
	* config/iq2000/iq2000.h (BRANCH_COST): Update.
	* config/ia64/ia64.h (BRANCH_COST): Update.
	* config/rs6000/rs6000.h (BRANCH_COST): Update.
	* config/arc/arc.h (BRANCH_COST): Update.
	* config/score/score.h (BRANCH_COST): Update.
	* config/arm/arm.h (BRANCH_COST): Update.
	* config/pa/pa.h (BRANCH_COST): Update.
	* config/mips/mips.h (BRANCH_COST): Update.
	* config/vax/vax.h (BRANCH_COST): Update.
	* config/h8300/h8300.h (BRANCH_COST): Update.
	* params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
	* doc/invoke.texi (predictable-branch-cost-outcome): Document.
	* doc/tm.texi (BRANCH_COST): Update.

2008-08-30  Samuel Tardieu  <sam@rfc1149.net>

	PR target/37283
	* config/arm/arm.c (arm_optimization_options): Set
	flag_section_anchors to 2 instead of 1 to distinguish it from
	-fsection-anchors given explicitely on the command line.

2008-08-30  Richard Sandiford  <rdsandiford@googlemail.com>

	* recog.c (split_insn): Consider attaching a REG_EQUAL note to the
	final insn of a split.

2008-08-30  Jan Hubicka  <jh@suse.cz>

	* postreload-gcse.c (gate_handle_gcse2): Disable for functions
	optimized for speed.
	* final.c (compute_alignments): Use optimize_bb_for_size_p.
	* tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
	* opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
	flag_gcse_after_reload_set): New static vars.
	(common_handle_option): Enable those flags for profile-use.
	(decode_options): Remove optimize_size flags that are handled
	on higher granuality.
	* tree-vectorizer.c (vectorize_loops): Use
	optimize_loop_nest_for_speed_p.
	* tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
	* tree-predcom.c (tree_predictive_commoning): Use
	optimize_loop_for_speed_p.
	* varasm.c (assemble_start_function): Use
	optimize_function_for_speed_p.
	* bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
	* predict.c (optimize_loop_for_speed_p): Fix walk.

2008-08-30  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (cgraph_estimate_growth): Discover self recursive
	functions.
	(cgraph_decide_inlining_of_small_function): Use edge->count to detect
	profile presence locally.

2008-08-29  Joseph Myers  <joseph@codesourcery.com>

	PR bootstrap/37086
	* tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
	versions before 4.0.

2008-08-29  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c (insert_init_stmt): Insert sequence even when
	not in SSA form.

2008-08-29  Jeff Law  <law@redhat.com>

	* mn10300.c (mn10300_secondary_reload_class): We need secondary
	reloads for AM33-2 if IN is a pseudo with an equivalent memory
	location and class is an FP register.

2008-08-29  Jan Hubicka  <jh@suse.cz>

	* see.c (see_merge_one_def_extension): Silence used uninitialized
	warning.
	* matrix-reorg.c (check_allocation_function): Likewise.
	* config/i386/driver-i386.c (detect_caches_amd): Likewise.

2008-08-29  Jakub Jelinek  <jakub@redhat.com>

	PR c/37261
	* fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
	compute new & and | in type rather than TREE_TYPE (arg0).

	* dwarf2out.c (fortran_common): Update comment.
	(gen_variable_die): Swap com_die and var_die variables in Fortran
	COMMON block handling code.

	* dwarf2out.c (descr_info_loc): Handle VAR_DECL.

	* dwarf2out.c (gen_const_die): New function.
	(size_of_die, value_format, output_die): Output larger
	dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
	(native_encode_initializer): New function.
	(tree_add_const_value_attribute): Call it.
	(gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().

	* dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
	DECL_BY_REFERENCE decls don't pass TREE_READONLY and
	TREE_THIS_VOLATILE to add_type_attribute.

	* dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
	types.
	(gen_array_type_die): Emit DW_TAG_string_type for Fortran character
	types.

	* dwarf2out.c (loc_by_reference): New function.
	(add_location_or_const_value_attribute): Use it.

	PR fortran/23057
	* dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
	as DW_TAG_variable children of DW_TAG_common_block rather than
	DW_TAG_member children.  Put DW_AT_external to individual
	DW_TAG_variable DIEs, not to DW_TAG_common_block.

	* dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
	loc_descriptor_from_tree_1.

	PR fortran/29635
	PR fortran/23057
	* debug.h (struct gcc_debug_hooks): Add NAME and CHILD
	arguments to imported_module_or_decl.
	(debug_nothing_tree_tree): Removed.
	(debug_nothing_tree_tree_tree_bool): New prototype.
	* debug.c (do_nothing_debug_hooks): Adjust.
	(debug_nothing_tree_tree): Removed.
	(debug_nothing_tree_tree_tree_bool): New function.
	* dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
	(gen_variable_die): Put all common vars for the
	same COMMON block under one DW_TAG_common_block.
	(declare_in_namespace): Return new context_die, for Fortran
	return the module DIE instead of adding extra declarations into
	the namespace.
	(gen_type_die_with_usage): Adjust declare_in_namespace caller.
	(gen_namespace_die): If is_fortran (), generate DW_TAG_module
	instead of DW_TAG_namespace.  If DECL_EXTERNAL is set, add
	DW_AT_declaration.
	(dwarf2out_global_decl): Don't skip Fortran global vars.
	(gen_decl_die): Likewise.  Adjust declare_in_namespace callers.
	(dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
	If NAME is non-NULL, add DW_AT_name.  If CHILD is non-NULL, put
	DW_TAG_imported_declaration as child of previous
	DW_TAG_imported_module.
	* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
	* sdbout.c (sdb_debug_hooks): Likewise.
	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.

2008-08-29  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_remove_node): Do not remove nested nodes.

	* cgraph.h (cgraph_maybe_hot_edge_p): Declare.
	* ipa-cp.c (n_cloning_candidates): New static variable.
	(ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
	(ipcp_print_all_lattices): Improve debug output.
	(ipcp_cloning_candidate_p): New function.
	(ipcp_initialize_node_lattices): Use it.
	(ipcp_init_stage): Do only analyzis here; prettier debug output.
	(ipcp_propagate_stage): Prettier debug output.
	(ipcp_iterate_stage): Initialize latices here; prettier debug output.
	(ipcp_print_all_structures): Remove.
	(ipcp_need_redirect_p): Test !n_cloning_candidates.
	(ipcp_insert_stage): Prettier debug output; call
	cgraph_remove_unreachable_nodes before propagating.
	(pass_ipa_cp): Schedule function removal pass.
	* ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
	debug output.
	(cgraph_maybe_hot_edge_p): Move to ...
	* predict.c (cgraph_maybe_hot_edge_p) ... here.
	* opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
	(common_handle_option): Set them; enable ipa-cp when profiling.
	* ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
	(ipa_print_all_jump_functions): Likewise.
	(ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
	(ipa_print_node_params, ipa_print_all_params): New.
	* ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
	ipa_print_all_param_flags): Remove.
	(ipa_print_node_params, ipa_print_all_params): New.

2008-08-29  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
	change from 2008-04-03.
	* config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.

2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-opt/37251
	* ira-color.c (push_allocnos_to_stack): Truncate
	removed_splay_allocno_vec.

2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-opt/37243
	* ira-color (ira_fast_allocation): Don't assign hard registers to
	global allocnos.

2008-08-29  Jan Hubicka  <jh@suse.cz>

	PR middle-end/37278
	* predict.c (optimize_loop_nest_for_speed_p): Do not ICE
	for cold internal loops.

2008-08-29  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (create_variable_info_for): Do not
	create fields for heap vars or vars with a noalias state.
	For NO_ALIAS_ANYTHING variables add a self-constraint, not one
	from ESCAPED.

2008-08-29  Richard Guenther  <rguenther@suse.de>

	* common.opt (ftree-store-ccp): Mark as preserved for
	backward compatibility.
	* doc/invoke.texi (-ftree-store-ccp): Remove documentation.
	* tree-pass.h (pass_store_ccp): Remove.
	* tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
	(first_vdef): Remove declaration.
	(get_value_loaded_by): Likewise.
	* tree-ssa-ccp.c (do_store_ccp): Remove.
	(get_default_value): Simplify as do_store_ccp is always false
	now.  Do not initialize mem_ref.
	(set_value_varying): Likewise.
	(canonicalize_float_value): Likewise.
	(set_lattice_value): Likewise.
	(likely_value): Likewise.
	(surely_varying_stmt_p): Likewise.
	(ccp_initialize): Likewise.
	(ccp_lattice_meet): Likewise.
	(ccp_visit_phi_node): Likewise.
	(ccp_fold): Likewise.
	(evaluate_stmt): Likewise.
	(visit_assignment): Likewise.
	(ccp_visit_stmt): Likewise.
	(execute_ssa_ccp): Fold into ...
	(do_ssa_ccp): ... this.
	(do_ssa_store_ccp): Remove.
	(gate_store_ccp): Likewise.
	(pass_store_ccp): Likewise.
	* tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
	initialize mem_ref.
	* tree-ssa-propagate.c (first_vdef): Remove.
	(get_value_loaded_by): Likewise.
	(replace_vuses_in): Likewise.
	(substitute_and_fold): Do not call replace_vuses_in.
	* opts.c (decode_options): Do not set flag_tree_store_ccp.

2008-08-29  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37236
	* tree-ssa-structalias.c (intra_create_variable_infos): Mark
	PARAM_NOALIAS tags with is_heapvar.
	* tree-ssa-operands.c (access_can_touch_variable): Offset
	based tests do not apply for heapvars.  Fix offset test.

2008-08-29  Jan Hubicka  <jh@suse.cz>

	* doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
	(-fipa-cp-clone): Enabled by default at -O3.
	* opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
	make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.

2008-08-29  Jan Hubicka  <jh@suse.cz>

	* tree.c (build_function_type_skip_args,
	build_function_decl_skip_args): New functions.
	* tree.h (build_function_type_skip_args,
	build_function_decl_skip_args): Declare.
	* gimple.c (giple_copy_call_skip_args): New function.
	(giple_copy_call_skip_args): Declare.

	* cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
	* ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
	(ipcp_node_modifiable_p): ... this one; use
	tree_versionable_function_p.
	(ipcp_create_replace_map): Improve debug output.
	(ipcp_need_redirect_p): Return false when not clonning.
	(ipcp_update_callgraph): Skip args.
	(ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
	skip args.
	* cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
	(save_inline_function_body): Update call of tree_function_versioning.
	* ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
	* tree-inline.c (copy_arguments_for_versioning): Add skip_args
	argument.
	(tree_function_versioning): Likewise.
	* tree-inline.h (tree_function_versioning): Update prototype.

2008-08-29  Jan Hubicka  <jh@suse.cz>

	* loop-unswitch.c (unswitch_single_loop): Use
	optimize_loop_for_speed_p.
	* tree-ssa-threadupdate.c (mark_threaded_blocks):
	Use optimize_function_for_size_p.
	* tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
	* postreload-gcse.c (eliminate_partially_redundant_load):
	Use optimize_bb_for_size_p.
	* value-prof.c (gimple_divmod_fixed_value_transform,
	gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
	gimple_stringops_transform): Use optimize_bb_for_size_p.
	* ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
	* final.c (compute_alignments): Use optimize_function_for_size_p.
	* builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
	(fold_builtin_strcpy, fold_builtin_fputs): Use
	optimize_function_for_size_p.
	* fold-const.c (tree_swap_operands_p): Use
	optimize_function_for_size_p.
	* recog.c (relax_delay_slots): Likewise.
	* tree-ssa-math-opts.c (replace_reciprocal):
	Use optimize_bb_for_speed_p.
	(execute_cse_reciprocals): Use optimize_bb_for_size_p.
	* ipa-inline.c (cgraph_decide_recursive_inlining): Use
	optimize_function_for_size_p.
	(cgraph_decide_inlining_of_small_function): Use
	optimize_function_for_size_p.
	* global.c (find_reg): Use optimize_function_for_size_p.
	* opts.c (decode_options): Do not clear flag_tree_ch,
	flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
	flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
	work it out from profile.
	* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
	optimize_loop_for_speed_p.
	* predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
	Constify argument.
	(optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
	* tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
	* tree-eh.c (decide_copy_try_finally): Use
	optimize_function_for_size_p.
	* local-alloc.c (block_alloc): Pass BB pointer.
	(find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
	* gcse.c (gcse_main): Use optimize_function_for_size_p.
	* loop-unroll.c (decide_unrolling_and_peeling):
	Use optimize_loop_for_size_p.
	(decide_peel_completely): Likewise.
	* tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
	optimize_loop_for_size_p.
	(vect_enhance_data_refs_alignment): Likewise.
	* tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
	(coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
	Update call.
	* cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
	(try_crossjump_bb): Use optimize_bb_for_size_p.
	* tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
	optimize_loop_for_speed_p.
	* bb-reorder.c (find_traces_1_round): Likewise.
	(copy_bb): Use optimize_bb_for_speed_p.
	(duplicate_computed_gotos): Likewise.
	* basic-block.h (optimize_loop_nest_for_size_p,
	optimize_loop_nest_for_speed_p): New.
	* stmt.c (expand_case): Use optimize_insn_for_size_p.

2008-08-29  Tristan Gingold  <gingold@adacore.com>

	* gcov.c (main): Call expandargv.

2008-08-29  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
	is not cold.
	* predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
	Constify arguments.
	(optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
	* basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
	Constify.
	(optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.

2008-08-29  Jan Hubicka  <jh@suse.cz>

	* tree-pass.h (pass_strip_predict_hints): Declare.
	* predict.c (strip_builtin_expect): Rename to ...
	(strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
	(tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
	(tree_estimate_probability): Do not strip builtin_expect.
	(pass_strip_predict_hints): New pass.
	* tree-inline.c (expand_call_inline): When inlining cold function,
	predict it as unlikely.
	* passes.c (init_optimization_passes): Add pass_strip_predict_hints.

2008-08-29  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37207
	* tree-vrp.c (extract_range_from_binary_expr): Also try
	to constant fold if only one of the operands is a constant.

2008-08-29  Nick Clifton  <nickc@redhat.com>

	* config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
	the same way as SYMBOL_REFs.

2008-08-28  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.

2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.h (ISA_HAS_BBIT): New macro.
	* config/mips/mips.md (branch_likely): Remove const.  Fix
	comment formatting.
	(define_delay for type "branch"): Change to only apply for branch
	with likely variant.
	(define_delay for type "branch" and "branch_likely" no).  New delay
	definition.
	(equality_op): New code iterator.
	(bbv, bbinv): New code attributes.
	(*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
	patterns.

2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
	    Andrew Pinski  <pinskia@gcc.gnu.org>

	PR 18050
	* c-common.c (verify_tree): Fix handling of ADDR_EXPR.

2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>

	* gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
	rule that a symbolic constant must be defined and >= 0 for the
	corresponding facility to be present at compile-time.
	* gthr-posix.c: Likewise.

2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.h (ISA_HAS_DMUL3): New macro.
	* config/mips/mips.md (D): New mode attribute.
	(mulsi3, muldi3): Merge it into ...
	(mul<mode>3): ... new template.  Use _mul3 ending for 3-op patterns.
	(muldi3_mul3): New pattern.
	(mulsi3_mult3): Rename to mulsi3_mul3.

2008-08-28  Jan Hubicka  <jh@suse.cz>

	* expmed.c (store_bit_field_1): Be prepared for movstrict expander
	to fail.
	* predict.c (always_optimize_for_size_p): Rename to ...
	(optimize_function_for_size): ... this one; make extern.
	(optimize_function_for_speed_p): New.
	(optimize_bb_for_size_p, optimize_bb_for_size_p,
	optimize_edge_for_size_p,optimize_edge_for_size_p,
	optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
	* basic-block.h (optimize_function_for_size_p,
	optimize_function_for_speed_p): Declare.
	* i386.md (optimize_size checks): Replace them by appropriate
	predicate.
	(standard_80387_constant_p, ix86_compute_frame_layout,
	ix86_expand_epilogue, ix86_decompose_address,
	print_operand, emit_i387_cw_initialization,
	inline_memory_move_cost, ix86_pad_returns,
	ix86_reorg): Replace optimize_size checks.

2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (simplify_subreg_regno): Declare.
	* rtlanal.c (simplify_subreg_regno): New function, split out from...
	* simplify-rtx.c (simplify_subreg): ...here.
	* reload.c (find_reloads): Use simplify_subreg_regno instead of
	subreg_offset_representable_p.

2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/30949
	* c-typeck.c (convert_for_assignment): Give a note describing what
	was passed and what was expected.

2008-08-28  Joey Ye  <joey.ye@intel.com>

	* doc/extend.texi: Document AVX built-in functions.
	* doc/invoke.texi: Document -mavx.

2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
	    Joey Ye  <joey.ye@intel.com>
	    Xuepeng Guo  <xuepeng.guo@intel.com>

	* config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.

	* config/i386/cpuid.h (bit_FMA): New.
	(bit_XSAVE): Likewise.
	(bit_OSXSAVE): Likewise.
	(bit_AVX): Likewise.

	* config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
	define.  Use ASM_OUTPUT_AVX_PREFIX.

	* config/i386/gmmintrin.h: New.

	* config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
	(OPTION_MASK_ISA_AVX_SET): New.
	(OPTION_MASK_ISA_FMA_SET): Likewise.
	(OPTION_MASK_ISA_AVX_UNSET): Likewise.
	(OPTION_MASK_ISA_FMA_SET): Likewise.
	(OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
	(ix86_handle_option): Handle OPT_mavx and OPT_mfma.
	(pta_flags): Add PTA_AVX and PTA_FMA.
	(override_options): Handle PTA_AVX and PTA_FMA.
	(init_cumulative_args): Handle warn_avx.
	(classify_argument): Return 0 for COImode and OImode.  Return
	1 and X86_64_AVX_CLASS for 256bit vector types.
	(examine_argument): Handle X86_64_AVX_CLASS.
	(construct_container): Likewise.
	(function_arg_advance_32): Pass OImode and 256bit vector types
	in AVX register.
	(function_arg_advance_64): Take a new argument to indicate if a
	parameter is named.  Handle 256bit vector types.  Return
	immediately for unnamed 256bit vector mode parameters.
	(function_arg_advance): Updated.
	(function_arg_32): Add comments for TImode.  Handle OImode
	and 256bit vector types.
	(function_arg_64): Take a new argument to indicate if a
	parameter is named.  Handle 256bit vector types.  Return NULL
	for unnamed 256bit vector mode parameters.
	(function_arg): Updated.
	(setup_incoming_varargs_64): Support
	AVX encoding for *sse_prologue_save_insn.
	(ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
	(standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
	enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
	enabled, otherwise return -3.
	(standard_sse_constant_opcode): Handle AVX and 256bit vector
	modes.
	(print_reg): Support AVX registers.  Handle 'x' and 't'.
	Handle 'd' to duplicate the operand.
	(print_operand): Likewise.  Also support AVX vector compare
	instructions.
	(output_387_binary_op): Support AVX.
	(output_fp_compare): Likewise.
	(ix86_expand_vector_move_misalign): Likewise.
	(ix86_attr_length_vex_default): New.
	(ix86_builtins): Add IX86_BUILTIN_ADDPD256,
	IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
	IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
	IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
	IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
	IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
	IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
	IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
	IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
	IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
	IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
	IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
	IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
	IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
	IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
	IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
	IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
	IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
	IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
	IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
	IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
	IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
	IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
	IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
	IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
	IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
	IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
	IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
	IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
	IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
	IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
	IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
	IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
	IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
	IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
	IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
	IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
	IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
	IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
	IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
	IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
	IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
	IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
	IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
	IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
	IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
	IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
	IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
	IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
	IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
	IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
	IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
	IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
	IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
	IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
	IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
	IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
	IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
	IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
	IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
	IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
	IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
	IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
	IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
	and IX86_BUILTIN_MOVMSKPS256,
	(ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
	V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
	V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
	V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
	V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
	VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
	VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
	VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
	(ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
	INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
	INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
	INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
	V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
	V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
	V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
	V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
	V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
	V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
	V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
	V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
	V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
	V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
	V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
	V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
	V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
	V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
	(bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
	IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
	IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
	IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
	IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
	IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
	IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
	IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
	IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
	IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
	IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
	IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
	(ix86_builtins): Add IX86_BUILTIN_ADDPD256,
	IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
	IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
	IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
	IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
	IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
	IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
	IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
	IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
	IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
	IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
	IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
	IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
	IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
	IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
	IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
	IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
	IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
	IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
	IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
	IX86_BUILTIN_CMPPS,
	IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
	IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
	IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
	IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
	IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
	IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
	IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
	IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
	IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
	IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
	IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
	IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
	IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
	IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
	IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
	IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
	IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
	IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
	IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
	IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
	IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
	IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
	IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
	IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
	IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
	IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
	IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
	IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
	IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
	IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
	IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
	IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
	IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
	IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
	IX86_BUILTIN_MOVMSKPS256.
	(ix86_init_mmx_sse_builtins): Support AVX builtins.
	(ix86_expand_args_builtin): Likewise.
	(ix86_expand_special_args_builtin): Likewise.
	(ix86_hard_regno_mode_ok): Handle AVX modes.
	(ix86_expand_vector_init_duplicate): Likewise.
	(ix86_expand_vector_init_one_nonzero): Likewise.
	(ix86_expand_vector_init_one_var): Likewise.
	(ix86_expand_vector_init_concat): Likewise.
	(ix86_expand_vector_init_general): Likewise.
	(ix86_expand_vector_set): Likewise.
	(ix86_vector_mode_supported_p): Likewise.
	(x86_extended_reg_mentioned_p): Check INSN_P before using
	PATTERN.

	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
	OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.

	* config/i386/i386.h (TARGET_AVX): New.
	(TARGET_FMA): Likewise.
	(TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
	(BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
	(VALID_AVX256_REG_MODE): New.
	(AVX256_VEC_FLOAT_MODE_P): Likewise.
	(AVX_FLOAT_MODE_P): Likewise.
	(AVX128_VEC_FLOAT_MODE_P): Likewise.
	(AVX256_VEC_FLOAT_MODE_P): Likewise.
	(AVX_VEC_FLOAT_MODE_P): Likewise.
	(ASM_OUTPUT_AVX_PREFIX): Likewise.
	(ASM_OUTPUT_OPCODE): Likewise.
	(UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
	support.
	(SSE_REG_MODE_P): Allow 256bit vector modes.
	(ix86_args): Add a warn_avx field.

	* config/i386/i386.md (UNSPEC_PCMP): New.
	(UNSPEC_VPERMIL): Likewise.
	(UNSPEC_VPERMIL2): Likewise.
	(UNSPEC_VPERMIL2F128): Likewise.
	(UNSPEC_MASKLOAD): Likewise.
	(UNSPEC_MASKSTORE): Likewise.
	(UNSPEC_CAST): Likewise.
	(UNSPEC_VTESTP): Likewise.
	(UNSPECV_VZEROALL): Likewise.
	(UNSPECV_VZEROUPPER): Likewise.
	(XMM0_REG): Likewise.
	(XMM1_REG): Likewise.
	(XMM2_REG): Likewise.
	(XMM3_REG): Likewise.
	(XMM4_REG): Likewise.
	(XMM5_REG): Likewise.
	(XMM6_REG): Likewise.
	(XMM8_REG): Likewise.
	(XMM9_REG): Likewise.
	(XMM10_REG): Likewise.
	(XMM11_REG): Likewise.
	(XMM12_REG): Likewise.
	(XMM13_REG): Likewise.
	(XMM14_REG): Likewise.
	(XMM15_REG): Likewise.
	(prefix): Likewise.
	(prefix_vex_imm8): Likewise.
	(prefix_vex_w): Likewise.
	(length_vex): Likewise.
	(maxmin): Likewise.
	(movoi): Likewise.
	(*avx_ashlti3): Likewise.
	(*avx_lshrti3): Likewise.
	(*avx_setcc<mode>): Likewise.
	(*fop_<mode>_comm_mixed_avx): Likewise.
	(*fop_<mode>_comm_avx): Likewise.
	(*fop_<mode>_1_mixed_avx): Likewise.
	(*fop_<mode>_1_avx): Likewise.
	(*avx_<code><mode>3): Likewise.
	(*avx_ieee_smin<mode>3): Likewise.
	(*avx_ieee_smax<mode>3): Likewise.
	(mode): Add OI, V8SF and V4DF.
	(length): Support VEX prefix.
	(*cmpfp_i_mixed): Set prefix attribute.
	(*cmpfp_i_sse): Likewise.
	(*cmpfp_iu_mixed): Likewise.
	(*cmpfp_iu_sse): Likewise.
	(*movsi_1): Support AVX.
	(*movdi_2): Likewise.
	(*movdi_1_rex64): Likewise.
	(*movti_internal): Likewise.
	(*movti_rex64): Likewise.
	(*movsf_1): Likewise.
	(*movdf_nointeger): Likewise.
	(*movdf_integer_rex64): Likewise.
	(*movtf_internal): Likewise.
	(zero_extendsidi2_32): Likewise.
	(zero_extendsidi2_rex64): Likewise.
	(*extendsfdf2_mixed): Likewise.
	(*extendsfdf2_sse): Likewise.
	(*truncdfsf_fast_mixed): Likewise.
	(*truncdfsf_fast_sse): Likewise.
	(*truncdfsf_mixed): Likewise.
	(fix_trunc<mode>di_sse): Likewise.
	(fix_trunc<mode>si_sse): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
	(*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
	(*rcpsf2_sse): Likewise.
	(*rsqrtsf2_sse): Likewise.
	(*sqrt<mode>2_sse): Likewise.
	(sse4_1_round<mode>2): Likewise.
	(*sse_prologue_save_insn): Disallow REX prefix for AVX.
	Support AVX.  Set length attribute properly for AVX.

	* config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
	(VECTOR_MODES (FLOAT, 32)): Likewise.
	(VECTOR_MODE (INT, DI, 8)): Likewise.
	(VECTOR_MODE (INT, HI, 32)): Likewise.
	(VECTOR_MODE (INT, QI, 64)): Likewise.
	(VECTOR_MODE (FLOAT, DF, 8)): Likewise.
	(VECTOR_MODE (FLOAT, SF, 16)): Likewise.
	(VECTOR_MODE (INT, DI, 4)): Removed.
	(VECTOR_MODE (INT, SI, 8)): Likewise.
	(VECTOR_MODE (INT, HI, 16)): Likewise.
	(VECTOR_MODE (INT, QI, 32)): Likewise.
	(VECTOR_MODE (FLOAT, SF, 8)): Likewise.
	(INT_MODE (OI, 32)): Likewise.

	* config/i386/i386.opt (mavx): New.
	(mfma): Likewise.

	* config/i386/i386-protos.h (ix86_attr_length_vex_default): New.

	* config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
	(*mov<mode>_internal_avx): New.
	(*movv2sf_internal_rex64_avx): Likewise.
	(*movv2sf_internal_avx): Likewise.

	* config/i386/predicates.md (const_4_to_5_operand): New.
	(const_6_to_7_operand): Likewise.
	(const_8_to_11_operand): Likewise.
	(const_12_to_15_operand): Likewise.
	(avx_comparison_float_operator): Likewise.

	* config/i386/sse.md (AVX256MODEI): New.
	(AVX256MODE): Likewise.
	(AVXMODEQI): Likewise.
	(AVXMODE): Likewise.
	(AVX256MODEF2P): Likewise.
	(AVX256MODE2P): Likewise.
	(AVX256MODE4P): Likewise.
	(AVX256MODE8P): Likewise.
	(AVXMODEF2P): Likewise.
	(AVXMODEF4P): Likewise.
	(AVXMODEDCVTDQ2PS): Likewise.
	(AVXMODEDCVTPS2DQ): Likewise.
	(avxvecmode): Likewise.
	(avxvecpsmode): Likewise.
	(avxhalfvecmode): Likewise.
	(avxscalarmode): Likewise.
	(avxcvtvecmode): Likewise.
	(avxpermvecmode): Likewise.
	(avxmodesuffixf2c): Likewise.
	(avxmodesuffixp): Likewise.
	(avxmodesuffixs): Likewise.
	(avxmodesuffix): Likewise.
	(vpermilbits): Likewise.
	(pinsrbits): Likewise.
	(mov<mode>): Likewise.
	(*mov<mode>_internal): Likewise.
	(push<mode>1): Likewise.
	(movmisalign<mode>): Likewise.
	(avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
	(avx_movdqu<avxmodesuffix>): Likewise.
	(avx_lddqu<avxmodesuffix>): Likewise.
	(<plusminus_insn><mode>3): Likewise.
	(*avx_<plusminus_insn><mode>3): Likewise.
	(*avx_vm<plusminus_insn><mode>3): Likewise.
	(mul<mode>3): Likewise.
	(*avx_mul<mode>3): Likewise.
	(*avx_vmmul<mode>3): Likewise.
	(divv8sf3): Likewise.
	(divv4df3): Likewise.
	(avx_div<mode>3): Likewise.
	(*avx_div<mode>3): Likewise.
	(*avx_vmdiv<mode>3): Likewise.
	(avx_rcpv8sf2): Likewise.
	(*avx_vmrcpv4sf2): Likewise.
	(sqrtv8sf2): Likewise.
	(avx_sqrtv8sf2): Likewise.
	(*avx_vmsqrt<mode>2): Likewise.
	(rsqrtv8sf2): Likewise.
	(avx_rsqrtv8sf2): Likewise.
	(*avx_vmrsqrtv4sf2): Likewise.
	(<code><mode>3): Likewise.
	(*avx_<code><mode>3_finite): Likewise.
	(*avx_<code><mode>3): Likewise.
	(*avx_vm<code><mode>3): Likewise.
	(*avx_ieee_smin<mode>3): Likewise.
	(*avx_ieee_smax<mode>3): Likewise.
	(avx_addsubv8sf3): Likewise.
	(avx_addsubv4df3): Likewise.
	(*avx_addsubv4sf3): Likewise.
	(*avx_addsubv2df3): Likewise.
	(avx_h<plusminus_insn>v4df3): Likewise.
	(avx_h<plusminus_insn>v8sf3): Likewise.
	(*avx_h<plusminus_insn>v4sf3): Likewise.
	(*avx_h<plusminus_insn>v2df3): Likewise.
	(avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
	(avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
	(*avx_maskcmp<mode>3): Likewise.
	(avx_nand<mode>3): Likewise.
	(*avx_<code><mode>3): Likewise.
	(*avx_nand<mode>3): Likewise.
	(*avx_<code><mode>3): Likewise.
	(*avx_cvtsi2ss): Likewise.
	(*avx_cvtsi2ssq): Likewise.
	(*avx_cvtsi2sd): Likewise.
	(*avx_cvtsi2sdq): Likewise.
	(*avx_cvtsd2ss): Likewise.
	(avx_cvtss2sd): Likewise.
	(avx_cvtdq2ps<avxmodesuffix>): Likewise.
	(avx_cvtps2dq<avxmodesuffix>): Likewise.
	(avx_cvttps2dq<avxmodesuffix>): Likewise.
	(*avx_cvtsi2sd): Likewise.
	(*avx_cvtsi2sdq): Likewise.
	(avx_cvtdq2pd256): Likewise.
	(avx_cvtpd2dq256): Likewise.
	(avx_cvttpd2dq256): Likewise.
	(*avx_cvtsd2ss): Likewise.
	(*avx_cvtss2sd): Likewise.
	(avx_cvtpd2ps256): Likewise.
	(avx_cvtps2pd256): Likewise.
	(*avx_movhlps): Likewise.
	(*avx_movlhps): Likewise.
	(avx_unpckhps256): Likewise.
	(*avx_unpckhps): Likewise.
	(avx_unpcklps256): Likewise.
	(*avx_unpcklps): Likewise.
	(avx_movshdup256): Likewise.
	(avx_movsldup256): Likewise.
	(avx_shufps256): Likewise.
	(avx_shufps256_1): Likewise.
	(*avx_shufps_<mode>): Likewise.
	(*avx_loadhps): Likewise.
	(*avx_storelps): Likewise.
	(*avx_loadlps): Likewise.
	(*avx_movss): Likewise.
	(*vec_dupv4sf_avx): Likewise.
	(*vec_concatv2sf_avx): Likewise.
	(*vec_concatv4sf_avx): Likewise.
	(*vec_setv4sf_0_avx): Likewise.
	(*vec_setv4sf_avx): Likewise.
	(*avx_insertps): Likewise.
	(avx_vextractf128<mode>): Likewise.
	(vec_extract_lo_<mode>): Likewise.
	(vec_extract_hi_<mode>): Likewise.
	(vec_extract_lo_<mode>): Likewise.
	(vec_extract_hi_<mode>): Likewise.
	(vec_extract_lo_v16hi): Likewise.
	(vec_extract_hi_v16hi): Likewise.
	(vec_extract_lo_v32qi): Likewise.
	(vec_extract_hi_v32qi): Likewise.
	(avx_unpckhpd256): Likewise.
	(*avx_unpckhpd): Likewise.
	(avx_movddup256): Likewise.
	(*avx_movddup): Likewise.
	(avx_unpcklpd256): Likewise.
	(*avx_unpcklpd): Likewise.
	(avx_shufpd256): Likewise.
	(avx_shufpd256_1): Likewise.
	(*avx_punpckhqdq): Likewise.
	(*avx_punpcklqdq): Likewise.
	(*avx_shufpd_<mode>): Likewise.
	(*avx_storehpd): Likewise.
	(*avx_loadhpd): Likewise.
	(*avx_loadlpd): Likewise.
	(*avx_movsd): Likewise.
	(*vec_concatv2df_avx): Likewise.
	(*avx_<plusminus_insn><mode>3): Likewise.
	(*avx_<plusminus_insn><mode>3): Likewise.
	(*avx_mulv8hi3): Likewise.
	(*avxv8hi3_highpart): Likewise.
	(*avx_umulv8hi3_highpart): Likewise.
	(*avx_umulv2siv2di3): Likewise.
	(*avx_mulv2siv2di3): Likewise.
	(*avx_pmaddwd): Likewise.
	(*avx_mulv4si3): Likewise.
	(*avx_ashr<mode>3): Likewise.
	(*avx_lshr<mode>3): Likewise.
	(*avx_ashl<mode>3): Likewise.
	(*avx_<code><mode>3): Likewise.
	(*avx_eq<mode>3): Likewise.
	(*avx_gt<mode>3): Likewise.
	(*avx_nand<mode>3): Likewise.
	(*avx_nand<mode>3): Likewise.
	(*avx_<code><mode>3): Likewise.
	(*avx_<code><mode>3): Likewise.
	(*avx_packsswb): Likewise.
	(*avx_packssdw): Likewise.
	(*avx_packuswb): Likewise.
	(*avx_punpckhbw): Likewise.
	(*avx_punpcklbw): Likewise.
	(*avx_punpckhwd): Likewise.
	(*avx_punpcklwd): Likewise.
	(*avx_punpckhdq): Likewise.
	(*avx_punpckldq): Likewise.
	(*avx_pinsr<avxmodesuffixs>): Likewise.
	(*avx_pinsrq): Likewise.
	(*avx_loadld): Likewise.
	(*vec_extractv2di_1_rex64_avx): Likewise.
	(*vec_extractv2di_1_avx): Likewise.
	(*vec_dupv2di_avx): Likewise.
	(*vec_concatv2si_avx): Likewise.
	(*vec_concatv4si_1_avx): Likewise.
	(*vec_concatv2di_avx): Likewise.
	(*vec_concatv2di_rex64_avx): Likewise.
	(*avx_uavgv16qi3): Likewise.
	(*avx_uavgv8hi3): Likewise.
	(*avx_psadbw): Likewise.
	(avx_movmskp<avxmodesuffixf2c>256): Likewise.
	(*avx_phaddwv8hi3): Likewise.
	(*avx_phadddv4si3): Likewise.
	(*avx_phaddswv8hi3): Likewise.
	(*avx_phsubwv8hi3): Likewise.
	(*avx_phsubdv4si3): Likewise.
	(*avx_phsubswv8hi3): Likewise.
	(*avx_pmaddubsw128): Likewise.
	(*avx_pmulhrswv8hi3): Likewise.
	(*avx_pshufbv16qi3): Likewise.
	(*avx_psign<mode>3): Likewise.
	(*avx_palignrti): Likewise.
	(avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
	(avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
	(avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
	(*avx_mpsadbw): Likewise.
	(*avx_packusdw): Likewise.
	(*avx_pblendvb): Likewise.
	(*avx_pblendw): Likewise.
	(avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
	(avx_ptest256): Likewise.
	(avx_roundp<avxmodesuffixf2c>256): Likewise.
	(*avx_rounds<ssemodesuffixf2c>): Likewise.
	(*avx_aesenc): Likewise.
	(*avx_aesenclast): Likewise.
	(*avx_aesdec): Likewise.
	(*avx_aesdeclast): Likewise.
	(avx_vzeroupper): Likewise.
	(avx_vzeroupper_rex64): Likewise.
	(avx_vpermil<mode>): Likewise.
	(avx_vpermilvar<mode>3): Likewise.
	(avx_vpermil2<mode>3): Likewise.
	(avx_vperm2f128<mode>3): Likewise.
	(avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
	(avx_vbroadcastss256): Likewise.
	(avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
	(avx_vinsertf128<mode>): Likewise.
	(vec_set_lo_<mode>): Likewise.
	(vec_set_hi_<mode>): Likewise.
	(vec_set_lo_<mode>): Likewise.
	(vec_set_hi_<mode>): Likewise.
	(vec_set_lo_v16hi): Likewise.
	(vec_set_hi_v16hi): Likewise.
	(vec_set_lo_v32qi): Likewise.
	(vec_set_hi_v32qi): Likewise.
	(avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
	(avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
	(avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
	(avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
	(vec_init<mode>): Likewise.
	(*vec_concat<mode>_avx): Likewise.
	(blendbits): Support V8SF and V4DF.
	(sse2_movq128): Support AVX.
	(<sse>_movnt<mode>): Likewise.
	(sse2_movntv2di): Likewise.
	(sse_rcpv4sf2): Likewise.
	(sse_sqrtv4sf2): Likewise.
	(sse_rsqrtv4sf2): Likewise.
	(<sse>_comi): Likewise.
	(<sse>_ucomi): Likewise.
	(sse_cvtss2si): Likewise.
	(sse_cvtss2si_2): Likewise.
	(sse_cvtss2siq): Likewise.
	(sse_cvtss2siq_2): Likewise.
	(sse_cvttss2si): Likewise.
	(sse_cvttss2siq): Likewise.
	(sse2_cvtsd2si): Likewise.
	(sse2_cvtsd2si_2): Likewise.
	(sse2_cvtsd2siq): Likewise.
	(sse2_cvtsd2siq_2): Likewise.
	(sse2_cvttsd2si): Likewise.
	(sse2_cvttsd2siq): Likewise.
	(sse2_cvtdq2pd): Likewise.
	(*sse2_cvtpd2dq): Likewise.
	(*sse2_cvttpd2dq): Likewise.
	(*sse2_cvtpd2ps): Likewise.
	(sse2_cvtps2pd): Likewise.
	(sse3_movshdup): Likewise.
	(sse3_movsldup): Likewise.
	(sse_storehps): Likewise.
	(*sse4_1_extractps): Likewise.
	(sse2_storelpd): Likewise.
	(vec_dupv2df_sse3): Likewise.
	(*vec_concatv2df_sse3): Likewise.
	(*sse4_1_pextrb): Likewise.
	(*sse4_1_pextrb_memory): Likewise.
	(*sse2_pextrw): Likewise.
	(*sse4_1_pextrw_memory): Likewise.
	(*sse4_1_pextrd): Likewise.
	(*sse4_1_pextrq): Likewise.
	(sse2_pshufd_1): Likewise.
	(sse2_pshuflw_1): Likewise.
	(sse2_pshufhw_1): Likewise.
	(*sse2_storeq_rex64): Likewise.
	(*vec_dupv4si): Likewise.
	(<sse>_movmskp<ssemodesuffixf2c>): Likewise.
	(sse2_pmovmskb): Likewise.
	(*sse2_maskmovdqu): Likewise.
	(*sse2_maskmovdqu_rex64): Likewise.
	(sse_ldmxcsr): Likewise.
	(sse_stmxcsr): Likewise.
	(abs<mode>2): Likewise.
	(sse4_1_movntdqa): 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_ptest): Likewise.
	(sse4_1_roundp<ssemodesuffixf2c>): Likewise.
	(sse4_2_pcmpestri): Likewise.
	(sse4_2_pcmpestrm): Likewise.
	(sse4_2_pcmpistri): Likewise.
	(sse4_2_pcmpistrm): Likewise.
	(aesimc): Likewise.
	(aeskeygenassist): Likewise.

2008-08-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (vzeroall_operation): New.

	* config/i386/sse.md (avx_vzeroall): New.
	(*avx_vzeroall): Likewise.

2008-08-28  Paul Brook  <paul@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>
	    Richard Earnshaw  <richard.earnshaw@arm.com>

	* config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
	(TARGET_MIN_ANCHOR_OFFSET): New.
	(arm_override_options): Set correct anchor ranges for Thumb-1
	and Thumb-2 if required.
	(legitimize_pic_address): Handle case involving a TLS symbol
	reference with an addend.
	(arm_optimization_options): Enable section anchors at -O1 and
	above.
	* config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
	* config/arm/arm-protos.h (arm_optimization_options): New.

2008-08-28  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
	* config/stormy16/stormy16.md (zero_extendqihi2): Fix length
	attribute.

	* config/v850/v850.h (IRA_COVER_CLASSES): Define.
	* config/v850/v850.md (return): Remove frame size restriction.

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

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

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

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

2008-08-28  Paul Brook  <paul@codesourcery.com>

	* config/arm/vfp11.md: Update license notice.
	* config/arm/cortex-r4.md: Ditto.

2008-08-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37207
	* tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
	tuplification bug.

2008-08-28  Dodji Seketeli  <dodji@redhat.com>

	PR c++/36741
	* tree.c (int_fits_type_p): Don't forget unsigned integers
	  of type sizetype which higher end word equals -1.

2008-08-28  Ira Rosen  <irar@il.ibm.com>

	* target.h (struct vectorize): Add new target builtin.
	* tree-vectorizer.c (destroy_loop_vec_info): Call
	vect_free_slp_instance instead of vect_free_slp_node.
	* tree-vectorizer.h (enum slp_load_perm_type): New.
	(struct _slp_instance): Add new fields.
	(SLP_INSTANCE_LOAD_PERMUTATION): New.
	(SLP_INSTANCE_LOADS): New.
	(vect_free_slp_tree): Remove.
	(vect_free_slp_instance): Declare.
	(SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
	(vectorizable_load): Add argument.
	(vect_transform_slp_perm_load): New.
	* tree-vect-analyze.c (vect_analyze_operations): Add an argument to
	vectorizable_load.
	(vect_get_place_in_interleaving_chain): New function.
	(vect_free_slp_tree): Make static.
	(vect_free_slp_instance): New function.
	(vect_build_slp_tree): Add new arguments. Allow load permutations and
	collect the load location in the interleaving chain.
	(vect_supported_slp_permutation_p): New function.
	(vect_supported_load_permutation_p): Likewise.
	(vect_analyze_slp_instance): In case of loads permutation, call
	vect_supported_load_permutation_p to check that the permutation is
	supported.
	* target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
	* tree-vect-transform.c (vect_transform_stmt): Add new argument.
	(vect_create_mask_and_perm): New function.
	(vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
	(vectorizable_load): Add an argument. Don't keep the created vectors
	statements in the node if permutation is required. Call
	vect_transform_slp_perm_load to generate the permutation.
	(vect_transform_stmt): Add new argument. Call vectorizable_load with
	additional argument.
	(vect_schedule_slp_instance): In case of loads permutation, allocate
	vectorized statements structure for all the related SLP nodes. Call
	vect_transform_stmt with addditional argument.
	(vect_transform_loop): Call vect_transform_stmt with correct arguments.
	* config/spu/spu.c (spu_builtin_vec_perm): New.
	(TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
	* config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
	* config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
	(TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.

2008-08-28  Chris Fairles  <chris.fairles@gmail.com>

	* gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
	__gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
	__gthread_cond_signal, __gthread_cond_timedwait,
	__gthread_cond_timedwait_recursive): New functions.
	* gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
	Likewise.
	* gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
	thread interfaces.

2008-08-28  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37005
	* fold-const.c (maybe_canonicalize_comparison_1): Require
	undefined overflow only for canonicalizing A +- CST cmp CST.
	Make sure to not generate new constants that are not inside
	their TYPE_MIN/MAX_VALUE range.
	(maybe_canonicalize_comparison): Remove undefined overflow
	checking from here.
	(fold_binary): Remove now duplicate folding.

2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>

	* c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
	use not updated in the last change.

2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
	(IRA_COVER_CLASSES): Add FPUL_REGS.

2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 37217
	* c-common.c (conversion_warning): Check for null operands.

2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/31673
	* c-decl.c (check_for_loop_decls): Improve error message. Give
	hint.

2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/37186
	* c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
	(convert_for_assignment): Pass corrent OPT_W* parameter to
	WARN_FOR_ASSIGNMENT.

2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/35321
	* c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.

2008-08-27  Paul Brook  <paul@codesourcery.com>

	* config.gcc: Loosen checks for arm uclinux eabi targets.

2008-08-27  Paul Brook  <paul@codesourcery.com>

	* config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
	_clzsi2.
	* config/arm/t-linux (LIB1ASMFUNCS): Ditto.

2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>

	* c-common.c (do_switch_warnings): Look through the CONST_DECLs in
	the enumerators of an ENUMERAL_TYPE.
	* dbxout.c (dbxout_type): Ditto.

2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR rtl-opt/37219
	* fwprop.c (fwprop): Check that the loop_father is the outer loop.
	(fwprop_addr): Check that the loop_father is not the outer loop.

2008-08-26  Paul Brook  <paul@codesourcery.com>

	* config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
	Remove documentation entry for fmul type.
	Use fmuls to annotate single-precision multiplication patterns,
	fmuld to annotate double-precision multiplication patterns,
	fmacs to annotate single-precision multiply-accumulate patterns
	and fmacd to annotate double-precision multiply-accumulate patterns.
	* config/arm/vfp11.md: Update reservations accordingly.
	* config/arm/arm.md: Note that certain values of the "type"
	attribute are documented in vfp.md.
	* config/arm/arm1020e.md: Remove out of date duplicate comment.
	(v10_cvt): Use new fmul types.

2008-08-26  Paul Brook  <paul@codesourcery.com>

	* config/arm/vfp.md: Move pipeline description for VFP11 to...
	* config/arm/vfp11.md: ...here.  New.
	* config/arm/arm.md: Include vfp11.md.

2008-08-26  Hans-Peter Nilsson  <hp@axis.com>

	* opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
	parameter to inform call.

2008-08-26  Jeff Law  <law@redhat.com>

	* mn10300.md (movqi, movhi): Split i->d*a case into two cases to
	avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
	preferred class when copying a constant into a partial word register.

2008-08-26  Ben Elliston  <bje@au.ibm.com>

	* rtlanal.c: Fix uses of "it's" with "its" where appropriate.
	* cp/typeck.c: Likewise.
	* cp/tree.c: Likewise.
	* gimple-low.c: Likewise.
	* jump.c: Likewise.

2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>

	* ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
	ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.

	* doc/passes.texi: Describe IRA.

	* doc/tm.texi (IRA_COVER_CLASSES,
	IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.

	* doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
	(-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
	-fira-propagate-cost, -fno-ira-share-save-slots,
	-fno-ira-share-spill-slots, -fira-verbose): Describe new options.

	* flags.h (ira_algorithm): New enumeration.
	(flag_ira_algorithm, flag_ira_verbose): New external variable
	declarations.

	* postreload.c (gate_handle_postreload): Don't do post reload
	optimizations unless the reload is completed.

	* reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
	IRA.

	* tree-pass.h (pass_ira): New external variable declaration.

	* reload.h: Add 2008 to the Copyright.

	* cfgloopanal.c: Include params.h.
	(estimate_reg_pressure_cost): Decrease cost for IRA optimization
	mode.

	* params.h (IRA_MAX_LOOPS_NUM): New macro.

	* toplev.c (ira.h): New include.
	(flag_ira_algorithm, flag_ira_verbose): New external variables.
	(backend_init_target): Call ira_init.
	(backend_init): Call ira_init_once.
	(finalize): Call finish_ira_once.

	* toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
	flag_ira_share_save_slots, flag_ira_share_spill_slots): New
	external variables.

	* regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
	may_move_out_cost): New external variable declarations.
	(move_table): New typedef.

	* caller-save.c: Include headers output.h and ira.h.
	(no_caller_save_reg_set): New global variable.
	(save_slots_num, save_slots): New variables.
	(reg_save_code, reg_restore_code, add_stored_regs): Add
	prototypes.
	(init_caller_save): Set up no_caller_save_reg_set.
	(init_save_areas): Reset save_slots_num.
	(saved_hard_reg): New structure.
	(hard_reg_map, saved_regs_num, all_saved_regs): New variables.
	(initiate_saved_hard_regs, new_saved_hard_reg,
	finish_saved_hard_regs, saved_hard_reg_compare_func): New
	functions.
	(setup_save_areas): Add code for sharing stack slots.
	(all_blocks): New variable.
	(save_call_clobbered_regs): Process pseudo-register too.
	(mark_set_regs): Process pseudo-register too.
	(insert_one_insn): Put the insn after bb note in a empty basic
	block.  Add insn check.

	* global.c (eliminable_regset): Make it external.
	(mark_elimination): Use DF_LR_IN for IRA.
	(pseudo_for_reload_consideration_p): New.
	(build_insn_chain): Make it external.  Don't ignore spilled
	pseudos for IRA.  Use pseudo_for_reload_consideration_p.
	(gate_handle_global_alloc): New function.
	(pass_global_alloc): Add the gate function.

	* opts.c (decode_options): Set up flag_ira.  Print the warning for
	-fira.
	(common_handle_option): Process -fira-algorithm and -fira-verbose.

	* timevar.def (TV_IRA, TV_RELOAD): New passes.

	* regmove.c (regmove_optimize): Don't do replacement of output for
	IRA.

	* hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
	New external variable declarations.

	* local-alloc.c (update_equiv_regs): Make it external.  Return
	true if jump label rebuilding should be done.  Rescan new_insn for
	notes.
	(gate_handle_local_alloc): New function.
	(pass_local_alloc): Add the gate function.

	* alias.c (value_addr_p, stack_addr_p): New functions.
	(nonoverlapping_memrefs_p): Use them for IRA.

	* common.opt (fira, fira-algorithm, fira-coalesce,
	fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
	fira-verbose): New options.

	* regclass.c (reg_class_subclasses, contains_reg_of_mode,
	move_cost, may_move_in_cost, may_move_out_cost): Make the
	variables external.
	(move_table): Remove typedef.
	(init_move_cost): Make it external.
	(allocate_reg_info, resize_reg_info, setup_reg_classes): New
	functions.

	* rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
	setup_reg_classes): New function prototypes.
	(eliminable_regset): New external variable declaration.
	(build_insn_chain, update_equiv_regs): New function prototypes.

	* Makefile.in (IRA_INT_H): New definition.
	(OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
	ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
	(reload1.o, toplev.o): Add dependence on ira.h.
	(cfgloopanal.o): Add PARAMS_H.
	(caller-save.o): Add dependence on output.h and ira.h.
	(ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
	ira-emit.o, ira-lives.o): New entries.

	* passes.c (pass_ira): New pass.

	* params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.

	* reload1.c (ira.h): Include the header.
	(changed_allocation_pseudos): New bitmap.
	(init_reload): Initiate the bitmap.
	(compute_use_by_pseudos): Permits spilled registers in FROM.
	(temp_pseudo_reg_arr): New variable.
	(reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
	IRA.  Call alter_reg with the additional parameter.  Don't clear
	spilled_pseudos for IRA.  Restore original insn chain for IRA.
	Clear changed_allocation_pseudos at the end of reload.
	(calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
	(hard_regno_to_pseudo_regno): New variable.
	(count_pseudo): Check spilled pseudos.  Set up
	hard_regno_to_pseudo_regno.
	(count_spilled_pseudo): Check spilled pseudos. Update
	hard_regno_to_pseudo_regno.
	(find_reg): Use better_spill_reload_regno_p.  Check
	hard_regno_to_pseudo_regno.
	(alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
	code for IRA.
	(eliminate_regs_1): Use additional parameter for alter_reg.
	(finish_spills): Set up pseudo_previous_regs only for spilled
	pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
	more arguments.  Don't clear live_throughout and dead_or_set for
	spilled pseudos.  Use additional parameter for alter_reg.  Call
	mark_allocation_change.  Set up changed_allocation_pseudos.
	Remove sanity check.
	(emit_input_reload_insns, delete_output_reload): Use additional
	parameter for alter_reg.  Call mark_allocation_change.
	(substitute, gen_reload_chain_without_interm_reg_p): New
	functions.
	(reloads_conflict): Use gen_reload_chain_without_interm_reg_p.

	* testsuite/gcc.dg/20080410-1.c: New file.

	* config/s390/s390.h (IRA_COVER_CLASSES,
	IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.

	* config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.

	* config/i386/i386.h (IRA_COVER_CLASSES): Ditto.

	* config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.

	* config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.

	* config/arm/arm.h (IRA_COVER_CLASSES): Ditto.

	* config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.

	2008-08-24  Jeff Law  <law@redhat.com>
	* ira.c (setup_reg_class_intersect_union): Prefer smallest class
	when ignoring unavailable registers.

	2008-08-24  Jeff Law  <law@redhat.com>
	* ira-color.c (coalesced_pseudo_reg_slot_compare): Check
	FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
	* ira.c (setup_eliminable_regset): Check stack_realign_needed.
	* config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.

	2008-06-03  Steve Chamberlain  <steve.chamberlain@gmail.com>
	* ira-build.c (allocno_range_compare_func): Stabilize sort.

	2008-05-29  Andy Hutchinson  <hutchinsonandy@aim.com>
	* config/avr/avr.h (IRA_COVER_CLASSES): New macro.
	* reload1.c (find_reg): Process registers in register allocation order.

	2008-05-10  Richard Sandiford  <rsandifo@nildram.co.uk>
	* toplev.c (backend_init_target): Move ira_init call from
	here...
	(lang_dependent_init_target): ...to here.

	2008-05-10  Richard Sandiford  <rsandifo@nildram.co.uk>
	* ira.c (setup_class_subset_and_memory_move_costs): Don't
	calculate memory move costs for NO_REGS.

	2008-05-05  Kaz Kojima  <kkojima@gcc.gnu.org>
	* ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
	STACK_REGS is defined.

	2008-04-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
	* config/spu/spu.h (IRA_COVER_CLASSES): New macro.

	2008-04-04  Bernd Schmidt  <bernd.schmidt@analog.com>
	* config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.

	2008-04-04  Kaz Kojima  <kkojima@gcc.gnu.org>
	* config/sh/sh.h (IRA_COVER_CLASSES): Define.
	* config/sh/sh.md (movsicc_true+3): Check if emit returns a
	barrier.

2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
	    Dorit Nuzman  <dorit@il.ibm.com>

	* gcc/config/spu/spu.md (vec_extract_evenv4si,
	vec_extract_evenv4sf, vec_extract_evenv8hi,
	vec_extract_evenv16qi, vec_extract_oddv4si,
	vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
	vec_interleave_highv4sf, vec_interleave_lowv4sf,
	vec_interleave_highv4si, vec_interleave_lowv4si,
	vec_interleave_highv8hi, vec_interleave_lowv8hi,
	vec_interleave_highv16qi, vec_interleave_lowv16qi,
	vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S

2008-08-25  Janis Johnson  <janis187@us.ibm.com>

	PR target/36756
	* config/rs6000/rs6000.c (optimization_options): Don't default to
	section anchors without toplevel reorder.

2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
	(mfc_end_critical_section): Likewise.

2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
	all type qualifiers from element type to vector type.

2008-08-25  David Daney  <ddaney@avtrex.com>

	* config/mips/mips.md (immediate_insn): Move up in file, fix
	comment typo, reformat.
	(fetchop_bit, atomic_hiqi_op memory_barrier,
	sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
	sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
	sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
	sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
	sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
	sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
	sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
	sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
	sync_old_nand<mode>, sync_new_nand<mode>,
	sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
	test_and_set_12): Moved to sync.md.
	(sync.md): Include.
	* config/mips/sync.md: New file.

2008-08-25  Richard Henderson  <rth@redhat.com>

	* dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
	(regsave): Likewise.
	(lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
	(output_cfi_directive): Likewise.
	(div_data_align): New.
	(output_cfi): Use it.

2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>

	* config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
	* config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
	(TARGET_OCTEON): New macro.
	(TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
	(MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
	(ISA_HAS_POP): New macro.
	* config/mips/driver-native.c (host_detect_local_cpu): Handle
	Octeon.
	* config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
	Handle Octeon.
	* config/mips/mips.md (cpu): Add octeon.
	(type): Add pop attribute value.
	(popcount<mode>2): New pattern.
	* doc/invoke.texi (-march=@var{arch}): Add octeon.

2008-08-24  Jan Hubicka  <jh@suse.cz>

	* doc/invoke.texi (-fipa-cp-clone): New option.
	(-fipa-cp): Update docs.
	(--param ipcp-unit-growth):New.
	* ipa-cp.c: Include fibheap.h, params.h
	(ipcp_initialize_node_lattices): When not cloning, all externally
	visible functions are bottom.
	(ipcp_need_redirect_p): Accept clones.
	(ipcp_insert_stage): Use cost driven heuristics.
	(max_count, dead_nodes): New static vars.
	(ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
	ipcp_const_param_count): New functions.
	* common.opt (ipa-cp-clone): New command line option.
	* params.def (ipcp-unit-growth): New.

2008-08-24  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c (tree_function_versioning): Look harder
	for referenced vars.

2008-08-24  Razya Ladelsky  <razya@il.ibm.com>

	PR tree-optimization/37185
	* matrix-reorg.c (transform_access_sites): Update changed stmt.

2008-08-23  Jan Hubicka  <jh@suse.cz>

	* ipa-cp.c (ipcp_analyze_node): New function.
	(ipcp_update_cloned_node): Use it.
	(ipcp_init_stage): Likewise.
	* ipa-inline.c (function_insertion_hook_holder): New static var.
	(analyze_function): Break out from ....
	(inline_generate_summary): Here; register insertion hook.
	(cgraph_decide_inlining): Remove hook.
	(add_new_function): New function.

2008-08-23  Jan Hubicka  <jh@suse.cz>

	* opts.c (decode_options): Revert accidental change enabling ipa-cp.

2008-08-23  Jan Hubicka  <jh@suse.cz>

	* ipa-cp.c (constant_val_insert): Remove.
	(ipcp_propagate_one_const): Remove.
	(ipcp_create_replace_map): Always insert replacements to the map.
	(ipcp_insert_stage): Do not try to insert statements by hand.
	* tree-inline.c (insert_init_stmt): Break out from ...
	(setup_one_parameter): ... here; allow NULL BB pointer.
	(tree_function_versioning): Use setup_one_parameter to process
	replacement map.

2008-08-23  Jan Hubicka  <jh@suse.cz>

	* tree.c (decl_address_ip_invariant_p): New function.
	* tree.h (decl_address_ip_invariant_p): Declare.
	* gimple.c (strip_invariant_refs): Break out from ...
	(is_gimple_invariant_address): ... here
	(is_gimple_ip_invariant_address): New function.
	(is_gimple_ip_invariant): New function.
	* gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
	Declare.

	* ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
	(ipcp_lat_is_insertable): All constants are insertable.
	(ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
	IPA_CONST_VALUE_REF.
	(ipcp_initialize_node_lattices): Propagate all types of operands.
	(build_const_val): Do not handle IPA_CONST_VALUE_REF.
	(ipcp_create_replace_map): Reformat.
	(ipcp_need_redirect_p): Simplify.
	(ipcp_insert_stage): Check that argument is used before clonning.
	* ipa-prop.c (ipa_print_node_jump_functions): Do not handle
	IPA_CONST_REF.
	(compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
	(determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
	(update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
	* ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
	(jump_func_type): Remove IPA_CONST_VALUE_REF.
	* tree-inline.c (tree_function_versioning): Add variables referenced
	by replacing trees.

2008-08-23  Jan Hubicka  <jh@suse.cz>

	PR target/37094
	* i386.c (standard_80387_constant_p): Use optimize_size.

2008-08-23  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/37161
	* tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
	* tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
	(vect_determine_vectorization_factor): Move the scalar type
	retrieval to vect_get_smallest_scalar_type.
	(vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
	scalar type. Remove redundant computation.
	* tree-vect-transform.c (vect_get_constant_vectors): Add argument.
	(vect_get_slp_defs): Take the type of RHS into account if
	necessary by calling vect_get_smallest_scalar_type. Call
	vect_get_constant_vectors with additional argument.

2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 35648
	* doc/invoke.texi (Wwrite-strings): Clarify description.

2008-08-23  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/37174
	* tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
	def stmt is a part of the loop before accessing its stmt_vec_info.

2008-08-22  Anatoly Sokolov  <aesok@post.ru>

	PR target/11259
	* config/avr/avr.md (UNSPEC_SWAP): New constants.
	(*swap): New insn pattern.
	(*ashlqi3): Rename from ashlqi3 insn pattern.
	(ashlqi3): New expanders.
	(*lshrqi3): Rename from lshrqi3 insn pattern.
	(lshrqi3): New expanders.
	(ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
	lshrqi3_const5, lshrqi3_const6): New splitters.
	(andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
	lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
	peephole2 patterns.

2008-08-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37078
	* tree-vrp.c (extract_range_from_unary_expr): Avoid generating
	[+INF, +INF] ranges.

2008-08-22  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37143
	* tree-vect-transform.c (vect_create_cond_for_align_checks): Build
	a conversion statement instead of a copy.

2008-08-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/37184
	* config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
	CCCmode, CCOmode and CCSmode destination modes.

	PR target/37191
	* config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
	from different units in a single alternative.
	(*vec_extractv2sf_1): Ditto.
	(*vec_extractv2si_0): Ditto.
	(*vec_extractv2si_1): Ditto.
	* config/i386/sse.md (sse2_storehpd): Ditto.
	(sse2_storelpd): Ditto.
	(sse2_loadhpd): Ditto.
	(sse2_loadlpd): Ditto.

	PR target/37197
	* config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
	(popcountsi2): Ditto.
	(clzdi2_abm): Ditto.
	(popcountdi2): Ditto.
	(clzhi2_abm): Ditto.
	(popcounthi2): Ditto.

2008-08-22  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36548
	PR middle-end/37125
	* fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
	if the multiplication does not overflow.

2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>

	* c-ppoutput.c (init_pp_output): Initialize src_line to 1.

2008-08-21  Richard Henderson  <rth@redhat.com>

	* configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
	spurrious comma from test.
	* configure: Rebuild.

2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 30457
	* builtins.c (fold_builtin_next_arg): Add warning about undefined
	behaviour.

2008-08-21  Aldy Hernandez  <aldyh@redhat.com>

	* c-tree.h (grokfield): New argument.
	* c-decl.c (grokfield): Handle new location argument.
	* c-parser.c (c_parser_struct_declaration): Pass location to grokfield.

2008-08-21  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.

2008-08-21  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (first_cgraph_function_insertion_hook): New variable.
	(cgraph_add_function_insertion_hook,
	cgraph_remove_function_insertion_hook,
	cgraph_call_function_insertion_hooks): New functions.
	* cgraph.h (cgraph_add_function_insertion_hook,
	cgraph_remove_function_insertion_hook,
	cgraph_call_function_insertion_hooks): Declare.
	* ipa-reference.c (function_insertion_hook_holder): New variable.
	(check_operand, look_for_address_of): When checking late, do not care
	about module bitmaps.
	(add_new_function): New function.
	(generate_summary): Register hooks; zero module bitmaps.
	(propagate): Unregister hooks.
	* ipa-pure-const.c (function_insertion_hook_holder): New variable.
	(add_new_function): New function.
	(generate_summary): Register hook.
	(propagate): Remove hook.

	* ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.

	* tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
	* ipa-cp.c (ipcp_update_cloned_node): New function.
	(build_const_val): Handle functions correctly; bring type logic
	into sync with tree-inline.c
	(ipcp_init_stage):  Take care of computing stuff needed by
	indirect inlining; update clones.
	(ipcp_generate_summary): Break out of ipcp_driver.
	(ipcp_driver): Do only execution and transformation.
	(pass_ipa_cp): Make IPA_PASS.
	* tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
	offset to address.
	* ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
	ipcp, some info is already available.
	* ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
	* tree-inline.c (remap_ssa_name): Unshare expression.

2008-08-21  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
	a PHI ask VN if it is already available.
	* tree-ssa-sccvn.h (vn_phi_lookup): Declare.
	* tree-ssa-sccvn.c (vn_phi_lookup): Export.

2008-08-21  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36817
	* tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
	makes sure to produce a result of the correct type.

2008-08-21  Jan Hubicka  <jh@suse.cz>
	Backport from LTO branch:

	2008-05-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
		    Jan Hubicka  <jh@suse.cz>

	* ipa-pure-const.c
	(init_state, finish_state, set_function_state, generate_summary):
	New functions.
	(scan_stmt): Renamed from scan_function.  Changed to keep state in
	local static vars rather than cgraph aux field.
	(propagate): Renamed from static_execute. Changed to keep state in
	local static vars rather than cgraph aux field.
	(pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
	* tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.

	2008-07-15  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
	* ipa-reference.c (init_function_info, generate_summary,
	propagate): New functions.
	(analyze_function):  Call init_function_info.
	(static_execute): Stripped into generate_summary and propagate.
	(pass_ipa_reference): Made into ipa_opt_pass.

2008-08-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37181
	* tree-vrp.c (extract_range_from_binary_expr): Check for NULL
	folding result.
	(extract_range_from_unary_expr): Likewise.

2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* diagnostic.c (pedwarn_at): Rename as pedwarn.
	(pedwarn): Delete.
	* toplev.h (pedwarn_at): Likewise.
	* builtins.c: Update all calls to pedwarn.
	* c-lex.c: Likewise.
	* toplev.c: Likewise.
	* c-tree.h: Likewise.
	* c-decl.c: Likewise.
	* c-errors.c: Likewise.
	* c-typeck.c: Likewise.
	* c-common.c: Likewise.
	* c-parser.c: Likewise.

2008-08-20  Joseph Myers  <joseph@codesourcery.com>

	PR target/31070
	* config/sparc/sparc.c (function_arg_slotno): Handle structure
	with MODE_VECTOR_INT mode.

2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR middle-end/179
	* tree-ssa.c (warn_uninit): Do not warn for variables that can be
	initialized outside the current module.
	(warn_uninitialized_var): Ignore left-hand side when walking the
	trees. Ignore address expressions. Examine VUSE operands in gimple
	statements with a variable declaration on the right-hand side.

2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>

	PR bootstrap/37155
	* rtlanal.c (subreg_offset_representable_p): Revert last change.

2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 35701
	* c-common.c (conversion_warning): Do not warn if applying bit-and
	operator to unsigned constant that fits in the target type.

2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/35602
	* c-common.c (conversion_warning): Do not warn for artificial
	expressions.

2008-08-20  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (op_with_constant_singleton_value_range): New function.
	(extract_range_from_binary_expr): Fall back to constant propagation.
	(extract_range_from_unary_expr): Likewise.

2008-08-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
	with TREE_THIS_VOLATILE on shared nodes.
	(fold_stmt_r): Likewise.

2008-08-20  Jakub Jelinek  <jakub@redhat.com>

	PR c/37171
	* c-parser.c (c_parser_attributes): For keywords use canonical
	spelling for attr_name.

2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* value-prof.c (check_counter): Revert wrong call to error.

2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* profile.c: Update calls to inform.
	* value-prof.c: Update calls to inform.

2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* diagnostic.c (inform): Add an explicit location_t parameter.
	* toplev.h (inform): Update declaration.
	* builtins.c: Update all calls to inform.
	* c-common.c: Likewise.
	* c-decl.c: Likewise.
	* c-opts.c: Likewise.
	* c-pch.c: Likewise.
	* c-pragma.c: Likewise.
	* c-typeck.c: Likewise.
	* coverage.c: Likewise.
	* opts.c: Likewise.
	* toplev.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-ssa.c: Likewise.

2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/37169
	* config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
	V2DI mode, for SSE4.1, use movq instead of vector set if the
	second element is zero and inter-unit moves are OK.

2008-08-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
	properly handle conversion/copy chains after tuplification.

2008-08-20  Richard Guenther  <rguenther@suse.de>

	* passes.c (init_optimization_passes): Move the second
	forwprop pass before alias computation.  Remove the second
	DCE pass.  Remove the first dominator and phi copy/const
	prop passes.

2008-08-20  Nick Clifton  <nickc@redhat.com>

	* configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
	support of this feature.  Do not assume that a sufficiently new
	assembler will support the feature regardless of the target type.
	(HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
	* configure: Regenerate.

2008-08-20  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (found_in_subgraph): Remove.
	(live): New global static.
	(live_on_edge): New function.
	(blocks_visited): Remove.
	(register_edge_assert_for_2): Use live_on_edge.
	(find_conditional_asserts): Remove code dealing with
	found_in_subgraph.  Do not walk the CFG.
	(find_switch_asserts): Likewise.
	(find_assert_locations_1): Renamed from find_assert_locations.
	Move finding assert locations for conditional and switch
	statements first.  Update live bitmap.  Do not walk the CFG.
	(find_assert_locations): New function.
	(insert_range_assertions): Remove entry of CFG walk.
	Adjust call to find_assert_locations.
	* tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
	that only can appear because of fake exit edges but assert we
	never try to insert on those.
	(fini_pre): Do not remove fake exit edges here...
	(execute_pre): ...but here, before committing edge inserts.

2008-08-19  Richard Guenther  <rguenther@suse.de>

	* passes.c (init_optimization_passes): Exchange store-ccp
	with a ccp pass.

2008-08-19  Rafael Espíndola  <espindola@google.com>

	* varasm.c (weak_decls): Move earlier in the file.
	(assemble_external): Add weak decls to the weak_decls list.
	(declare_weak): Don't add decls to the weak_decls list.

2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/37157
	* config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
	before (sse2_shufpd_<mode>).

2008-08-19  Jakub Jelinek  <jakub@redhat.com>

	PR debug/37156
	* pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
	* tree.c (block_nonartificial_location): Likewise.

2008-08-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/35972
	PR tree-optimization/23094
	* tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
	parameter.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
	handle MISALIGNED_INDIRECT_REF.
	(get_ref_from_reference_ops): New helper.
	(vn_reference_lookup_pieces): Walk the use-def chain using the
	alias-oracle if requested.
	* tree-ssa-pre.c (phi_translate_1): Do reference lookup with
	walking the use-def chain.
	(compute_avail): But not here.
	(create_component_ref_by_pieces_1): Properly handle
	MISALIGNED_INDIRECT_REF.
	(do_regular_insertion): Handle fully redundant
	expressions after PHI-translation also for SSA_NAME values, not
	only constants.  Correctly use edoubleprime for that.

2008-08-19  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.c (supportable_widening_operation): Support
	multi-step conversion, return the number of steps in such conversion
	and the required intermediate types.
	(supportable_narrowing_operation): Likewise.
	* tree-vectorizer.h (vect_pow2): New function.
	(supportable_widening_operation): Change argument types.
	(supportable_narrowing_operation): Likewise.
	(vectorizable_type_promotion): Add an argument.
	(vectorizable_type_demotion): Likewise.
	* tree-vect-analyze.c (vect_analyze_operations): Call
	vectorizable_type_promotion and vectorizable_type_demotion with
	additional argument.
	(vect_get_and_check_slp_defs): Detect patterns.
	(vect_build_slp_tree): Add an argument, don't fail in case of multiple
	types.
	(vect_analyze_slp_instance): Don't fail in case of multiple types.
	Call vect_build_slp_tree with correct arguments. Calculate unrolling
	factor according to the smallest type in the loop.
	(vect_detect_hybrid_slp_stmts): Include statements from patterns.
	* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
	supportable_widening_operation with correct arguments.
	* tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
	operands lists according to the number of vector statements in left
	or right node, if exists.
	(vect_gen_widened_results_half): Remove unused argument.
	(vectorizable_conversion): Call supportable_widening_operation,
	supportable_narrowing_operation, and vect_gen_widened_results_half
	with correct arguments.
	(vectorizable_assignment): Change documentation, support multiple
	types in SLP.
	(vectorizable_operation): Likewise.
	(vect_get_loop_based_defs): New function.
	(vect_create_vectorized_demotion_stmts): Likewise.
	(vectorizable_type_demotion): Support loop-aware SLP and general
	multi-step conversion. Call vect_get_loop_based_defs and
	vect_create_vectorized_demotion_stmts for transformation.
	(vect_create_vectorized_promotion_stmts): New function.
	(vectorizable_type_promotion): Support loop-aware SLP and general
	multi-step conversion. Call vect_create_vectorized_promotion_stmts
	for transformation.
	(vectorizable_store): Change documentation, support multiple
	types in SLP.
	(vectorizable_load): Likewise.
	(vect_transform_stmt): Pass SLP_NODE to
	vectorizable_type_promotion and vectorizable_type_demotion.
	(vect_schedule_slp_instance): Move here the calculation of number
	of vectorized statements for each node from...
	(vect_schedule_slp): ... here.
	(vect_transform_loop): Call vect_schedule_slp without the last
	argument.

2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>

	PR bootstrap/37152
	* tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
	to == in assert statement.
	(vectorizable_reduction): Fix typo.

2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/37153
	* value-prof.c (check_counter): Dereference pointer to overall
	count when printing it.

2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>

	* profile.h: Really add it.

2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>

	* mcf.c: Really add it.

2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
	    Vinodha Ramasamy  <vinodha@google.com>

	* cgraph.c (cgraph_edge): Handle inconsistent counts when setting
	count_scale.
	* value-prof.c (check_counter): Fix the counter if
	flag_profile_correction is true.
	(tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
	tree_mod_subtract_transform):
	Follow check_counter parameter change.
	* common.opt (fprofile-correction): New option.
	* mcf.c: New file.
	* profile.h: Likewise.
	* profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
	(sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
	is_inconsistent, set_bb_counts, read_profile_edge_counts): New
	functions.
	(compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
	flag_profile_correction is set.

2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.

2008-08-18  Tomas Bily  <tbily@suse.cz>

	* tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
	* tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
	CONVERT_EXPR_P.
	* tree-data-ref.c (split_constant_offset_1): Likewise.
	* tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
	* tree-sra.c (sra_walk_expr): Likewise.
	* matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
	* tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
	* gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
	* tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
	Likewise.
	* gimple.c (gimple_assign_unary_nop_p): Likewise.
	* tree-vect-transform.c (vectorizable_type_demotion)
	(vectorizable_type_promotion): Likewise.
	* tree-inline.c (expand_call_inline):
	* tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
	(forward_propagate_addr_expr_1, forward_propagate_comparison)
	(tree_ssa_forward_propagate_single_use_vars): Likewise.
	* expr.c (expand_expr_real_1): Likewise.
	* tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
	(gimple_assign_unary_useless_conversion_p): Likewise.
	* tree-stdarg.c (execute_optimize_stdarg): Likewise.
	* tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
	* fold-const.c (fold_unary): Likewise.
	* tree.h (CONVERT_EXPR_P): Likewise.
	* tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
	* tree-ssa-loop-im.c (rewrite_bittest): Likewise.
	* tree-vrp.c:
	(register_edge_assert_for_2, extract_range_from_unary_expr)
	(register_edge_assert_for_1): Likewise.

2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
	dconst_third_ptr, dconst_sqrt2_ptr): Declare.
	(enum real_value_const): Delete.
	(get_real_const): Delete.
	* real.c (get_real_const): Delete.
	(dconst_e_ptr): Define.
	(dconst_third_ptr): Define.
	(dconst_sqrt2_ptr): Define.
	* builtins.c: Update all callers.

2008-08-18  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-reassoc.c (reassociate_bb): Properly reset the
	statement iterator after statement removal.

2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>

	* config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
	(detect_processor_freebsd): Likewise.
	(host_detect_local_cpu): Call newly added functions for FreeBSD.

2008-08-18  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_types_in_gimple_assign): Verify copies
	and loads have the correct types.

2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR cpp/7263
	* c-opts.c (cpp_opts): Remove static.
	* c-parser.c (cpp_opts): Declare it extern.
	(disable_extension_diagnostics): Handle cpp options.
	(enable_extension_diagnostics): Likewise.

2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* diagnostics.c (permerror_at): Rename as permerror.
	(permerror): Delete.
	* toplev.h: Likewise.

2008-08-18  Richard Guenther  <rguenther@suse.de>

	* passes.c (init_optimization_passes): Remove cleanup_cfg1,
	sdse1 and addressables2 passes.  Replace dce1 with cddce1.
	Move call_cdce before build_alias.  Move copyrename2,
	cunrolli and ccp2 beafore build_alias.  Re-add addressable2
	right after final inlining.
	* tree-cfg.c (build_gimple_cfg): Do not dump function here.
	(pass_build_cfg): But instead via TODO_dump_func.

2008-08-18  Richard Guenther  <rguenther@suse.de>

	* tree-sra.c (generate_element_init_1): Deal with NULL constructor
	element index.
	(scalarize_init): If we failed to generate some initializers
	do not generate zeros for not instantiated members.  Instead
	rely on the copy out.
	* tree-ssa-operands.c (get_addr_dereference_operands): Warn
	about missing flow-sensitive alias info only if we have
	aliases computed.

2008-08-17  Nick Clifton  <nickc@redhat.com>

	* doc/extend.texi (Function Attributes): Fix typo in description
	if hot function attribute.

2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/install.texi (--with-mips-plt): Document.
	* doc/invoke.texi (-mplt, -mno-plt): Document.
	* config.gcc (mips*-*-*): Add mips-plt to supported_defaults
	and handle ${with_mips_plt}.
	* config/mips/mips.opt (mplt): New option.
	* config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
	(TARGET_ABICALLS_PIC2): Likewise.
	(TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
	(OPTION_DEFAULT_SPECS): Add a mips-plt entry.
	(ASM_SPEC): Use !mabi=* instead of !mabi*.
	(MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
	to decide whether to output ".option picX" directives.
	* config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
	Pass -call_nonpic rather than -KPIC for -mplt.
	(BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
	on the command line.  Also remove it when -mabi=64 is used without
	-msym32.
	* config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
	* config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
	TARGET_ABICALLS_PIC0.
	(mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
	TARGET_ABICALLS.
	(mips16_build_function_stub): Only output ".option pic" directives
	and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
	(mips16_build_call_stub): Fix comment and remove redundant
	".set at"/"set .noat" directives.
	(mips_function_rodata_section): Use the default behaviour for
	TARGET_ABSOLUTE_ABICALLS.
	(mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
	(mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
	(mips_restore_gp): Do nothing if the current function doesn't use
	a global pointer.
	(mips_expand_prologue): Only save $gp if the current function uses it.
	Use a normal move for TARGET_ABICALLS_PIC0.
	(mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.

2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
	of function when handling GLOBAL_POINTER_REGNUM.

2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/20548
	* common.opt (-fstack-check): Do not declare the variable here.
	(-fstack-check=): New option variant.
	* doc/invoke.texi (Code Gen Options): Document it.
	* expr.h (STACK_OLD_CHECK_PROTECT): New macro.
	(STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
	(STACK_CHECK_STATIC_BUILTIN): New macro.
	* doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
	* opts.c: Include expr.h.
	(common_handle_option) <OPT_fold_stack_check_>: New case.
	<OPT_fstack_check>: Likewise.
	* calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
	consistently in the test for variable-sized types.  Adjust for
	new behaviour of flag_stack_check.
	* explow.c: Include except.h.
	(allocate_dynamic_stack_space): Do not take into account
	STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
	* function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
	for variable-sized parameters.  Treat all parameters whose size is
	greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
	stack checking is enabled.
	* gimplify.c (gimplify_decl_expr): Treat non-static objects whose
	size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
	if generic stack checking is enabled.
	(expand_function_end): Adjust for new behaviour of flag_stack_check.
	* reload1.c (reload): Likewise.
	* stmt.c (expand_decl): Assert that all automatic variables have
	fixed size at this point and remove dead code.
	* flags.h (stack_check_type): New enumeration type.
	(flag_stack_check): Declare.
	* toplev.c (flag_stack_check): New global variable.
	* Makefile.in (opts.o): Add dependency on EXPR_H.
	(explow.o): Add dependency on except.h.

2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>

	* config/avr/avr.c (avr_override_options): Reduce value of
	PARAM_INLINE_CALL_COST.

2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
	to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
	lieu of TYPE_MODE (type) throughout.

2008-08-15  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.c (add_minipool_backward_ref): Check for
	8-byte-aligned entries in second case of forcing insertion after a
	particular entry.  Change third case to avoid inserting
	non-8-byte-aligned entries before 8-byte-aligned ones.

2008-08-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
	strip components for unknown size accesses.

2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* config/s390/2097.md New file.
	* config/s390/s390.md ("z10prop" attribute): Define none,
	z10_super, z10_super_E1, z10_super_A1, z10_super_c,
	z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
	z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
	possible values and apply them to insns as appropriate.
	("type" attribute): Removed itof and added ftrunctf,ftruncdf,
	ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
	fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
	fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
	("bfp" mode attribute): Removed.  Every occurence replaced
	with <mode>.
	* config/s390/s390.c (struct "z10_cost"): Updated entries.
	* config/s390/2084.md (insn_reservation "x_itof"): Updated
	type attribute.

2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/28152
	* c-parser.c (c_lex_one_token): Do not store the canonical spelling
	for keywords.

2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
	additional argument. Support reduction when duplication is needed due
	to data-types of different sizes in the loop.
	(get_initial_def_for_induction): Fix printout.
	(vect_get_vec_def_for_stmt_copy): Support case where the
	vec_stmt_for_operand is a phi node.
	(vectorizable_reduction): Support reduction when duplication is needed
	due to data-types of different sizes in the loop.
	(vectorizable_call): Remove restriction to not vectorize in case we
	have data-types of different sizes in the loop.
	(vectorizable_conversion): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_type_demotion): Likewise.
	(vectorizable_type_promotion): Likewise.
	(vectorizable_induction): Add restriction to not vectorize in case
	we have data-types of different sizes in the loop.

2008-08-14  Christophe Saout  <christophe@saout.de>
	    Uros Bizjak  <ubizjak@gmail.com>

	PR target/37101
	* config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
	(*vec_concatv2di_rex64_sse4_1): Ditto.
	(*vec_concatv2di_rex64_sse): Ditto.

2008-08-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/37103
	* fold-const.c (fold_widened_comparison): Do not allow
	sign changes that change the result even if shorter type
	is wider than arg1_unw's type.

2008-08-13  Kazu Hirata  <kazu@codesourcery.com>

	* gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
	Skip if the multilib testing specifies -march that does not
	agree with the one specified in the testcase.

2008-08-13  Joseph Myers  <joseph@codesourcery.com>

	* config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
	zero extend SImode values being converted to TFmode before passing
	to libcalls.

2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
	__PPU__ when targeting the Cell/B.E. PPU processor.

2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple.h (gimple_call_set_chain): Accept SSA variables.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
	Rematerialize the static chain, if any.
	* tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
	static chain.

2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf2out.c (dwarf_stack_op_name): Remove prototype.
	(new_loc_descr): Likewise.
	(add_loc_descr): Likewise.
	(size_of_loc_descr): Likewise.
	(size_of_locs): Likewise.
	(output_loc_operands): Likewise.
	(output_loc_sequence): Likewise.
	(new_reg_loc_descr): New.
	(build_cfa_loc): Use it.
	(build_cfa_aligned_loc): Likewise.
	(one_reg_loc_descriptor): Likewise.
	(based_loc_descr): Likewise.

2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 30551
	* doc/invoke.texi (Wmain): Update.
	* c-decl.c (start_decl): warn_main is only 0 or 1.
	(start_function): Likewise. Fix formatting.
	(finish_function): Delete redundant warning.
	* c.opt (Wmain): Add Var(warn_main) and Init(-1).
	* c-opts (c_common_handle_option): -Wall only has effect if
	warn_main is uninitialized. OPT_Wmain is automatically
	handled. -pedantic also enables Wmain.
	(c_common_post_options): Handle all logic for Wmain here.
	* c-common.c (warn_main): Delete.
	(check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
	* c-common.h (warn_main): Delete.

2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/36701
	* expr.c (emit_group_store): Allocate stack temp with the
	largest alignment when copying from register to stack.

2008-08-13  Richard Guenther  <rguenther@suse.de>

	* tree.h (maybe_fold_offset_to_address): Declare.
	* tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
	(ccp_fold): Handle pointer conversions the same as fold_stmt.
	Likewise for POINTER_PLUS_EXPR.
	(maybe_fold_offset_to_reference): Enable disabled code.
	(maybe_fold_offset_to_address): New function.
	(fold_stmt_r): Use it.
	(fold_gimple_assign): Likewise.
	* gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
	(gimplify_expr): Likewise.

2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* toplev.h (pedwarn_at): Fix declaration.

2008-08-13  Joseph Myers  <joseph@codesourcery.com>

	* config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
	LINK_SPEC): Use %R in -Y P argument.

2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/15236
	* diagnostic.c (pedwarn_at): New.
	* toplev.h (pedwarn_at): Declare.
	* c-tree.h (build_enumerator): Update declaration.
	* c-decl.c (finish_enum): Update comment.
	(build_enumerator): Take a location parameter. Give a pedwarn but do
	not perform any conversion.
	* c-parser.c (c_parser_enum_specifier): Set correct location for
	enumerator.

2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 35635
	* c-common.c (conversion_warning): Use a switch. Ignore boolean
	expressions except for conversions to signed:1 bitfields. Handle
	COND_EXPR with constant operands.

2008-08-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/15255
	* tree-ssa-reassoc.c (linearize_expr_tree): Declare.
	(struct oecount_s): New struct and VEC types.
	(cvec): New global.
	(oecount_hash): New function.
	(oecount_eq): Likewise.
	(oecount_cmp): Likewise.
	(zero_one_operation): New function.
	(build_and_add_sum): Likewise.
	(undistribute_ops_list): Perform un-distribution of multiplication
	and division on the chain of summands.
	(should_break_up_subtract): Also break up subtracts for factors.
	(reassociate_bb): Delete dead visited statements.
	Call undistribute_ops_list.  Re-sort and optimize if it did something.
	* passes.c (init_optimization_passes): Move DSE before
	reassociation.
	* tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
	PHI nodes.

2008-08-12  Janis Johnson  <janis187@us.ibm.com>

	* doc/invoke.texi (-fipa-pta): Say the option is experimental.

	* doc/invoke.texi: Revert unintended checkin.

2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>

	PR libgomp/26165
	* gcc.c (include_spec_function): Tweak call to find_a_file.

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

	PR middle-end/37014
	* expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
	and TRUTH_ORIF_EXPR.
	* dojump.c (do_jump): Likewise.

	PR tree-optimization/37084
	* tree-inline.c (copy_bb): Call gimple_regimplify_operands
	if id->regimplify, don't assume stmt is a cast assignment.

2008-08-12  Anatoly Sokolov  <aesok@post.ru>

	* final.c (final_scan_insn): Use app_enable/app_disable functions.

2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR bootstrap/37097
	* builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
	by last change.

2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* defaults.h (TARGET_FLOAT_FORMAT): Remove.
	(UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.

	* config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
	* config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
	* config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
	* config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
	* config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.

	* doc/tm.texi (Storage Layout): Remove documentation for
	TARGET_FLOAT_FORMAT.

	* simplify-rtx.c (simplify_binary_operation_1): Replace
	TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.

2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* real.h (struct real_format): New member has_sign_dependent_rounding.
	* real.c (ieee_single_format, mips_single_format, motorola_single_format,
	spu_single_format, ieee_double_format, mips_double_format,
	motorola_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): Initialize it.
	* config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.

	* defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
	MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
	* config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
	MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
	(ROUND_TOWARDS_ZERO): Likewise.

	* real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
	(FLOAT_MODE_FORMAT): New macro.
	(REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
	(MODE_COMPOSITE_P): ... this new macro.
	(MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
	MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
	* machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.

	* flags.h: Include "real.h".

	* fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
	REAL_MODE_FORMAT_COMPOSITE_P.
	* simplify-rtx.c (simplify_const_binary_operation): Likewise.

	* doc/tm.texi (Storage Layout): Remove documentation of
	MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
	MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
	ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
	they only apply to libgcc2.a.

2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/float_disf.c: New file.
	* config/spu/float_unsdisf.c: New file.
	* config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
	(LIB2FUNCS_EXCLUDE): Define.

2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
	    Trevor Smigiel  <trevor_smigiel@playstation.sony.com>

	* real.h (struct real_format): New member round_towards_zero.
	* real.c (round_for_format): Respect fmt->round_towards_zero.
	(ieee_single_format, mips_single_format, motorola_single_format,
	spu_single_format, ieee_double_format, mips_double_format,
	motorola_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): Initialize it.
	* config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.

	* builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
	real_format to choose rounding mode when calling MPFR functions.
	(do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
	(do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.

	* real.h (real_to_decimal_for_mode): Add prototype.
	* real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
	Respect target rounding mode when generating decimal representation.
	(real_to_decimal): New stub for backwards compatibility.
	* c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
	real_to_decimal_for_mode instead of real_to_decimal.

	* config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.

2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
	    Trevor Smigiel  <trevor_smigiel@playstation.sony.com>

	* real.c (spu_single_format): New variable.
	* real.h (spu_single_format): Declare.

	* config/spu/spu.c (spu_override_options): Install SFmode format.
	(spu_split_immediate): Use integer mode to operate on pieces of
	floating-point values in all cases.

	* config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
	("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
	("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.

2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.

2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.

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

	PR c++/36688
	* gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
	on the VAR_DECL instead of TYPE_READONLY on its type.

2008-08-12  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.c: Depend on langhooks.h.
	(supportable_widening_operation): Add two arguments. Support double
	type conversions.
	(supportable_narrowing_operation): Likewise.
	* tree-vectorizer.h (supportable_widening_operation): Add two
	arguments.
	(supportable_narrowing_operation): Likewise.
	* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
	supportable_widening_operation with correct arguments.
	* tree-vect-transform.c (vectorizable_conversion): Likewise.
	(vectorizable_type_demotion): Support double type conversions.
	(vectorizable_type_promotion): Likewise.
	* Makefile.in (tree-vectorizer.o): Depend on langhooks.h.

2008-08-11  Michael Matz  <matz@suse.de>

	* i386/i386.c (override_options): Move initialisation from
	flag_schedule_insns_after_reload to here from ...
	(optimization_options): ... here.

2008-08-11  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/36998
	* dwarf2out.c (compute_barrier_args_size_1,
	compute_barrier_args_size): Temporarily remove assertions.

2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR middle-end/20644
	* tree-ssa.c (struct walk_data): Add new flag
	warn_possibly_uninitialized.
	(warn_uninitialized_var): Use it.
	(warn_uninitialized_vars): New.
	(execute_early_warn_uninitialized): Call it.
	(execute_late_warn_uninitialized): Likewise.

2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/36238
	* reload1.c (gen_reload): Guard calls to get_secondary_mem
	for memory subregs.

2008-08-09  Jan Hubicka  <jh@suse.cz>

	PR target/37055
	* optabs.c (maybe_emit_unop_insn): Remove produced code if
	expansion failed.
	(expand_fix): Be prepared for expansion to fail.
	(expand_sfix_optab): Remove instructions if expansion failed.

2008-08-09  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
	avr31 architecture.
	* config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
	mips/t-libgcc-mips16 to tmake_file.
	* config/mips/mips-protos.h (mips_call_type): New enum.
	(mips_pic_base_register, mips_got_load): Declare.
	(mips_restore_gp): Take an rtx argument.
	(mips_use_pic_fn_addr_reg_p): Declare.
	(mips_expand_call): Replace the sibcall_p argument with
	a mips_call_type argument.  Add a lazy_p parameter.
	(mips_split_call): Declare.
	* config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
	(MIPS16_PIC_TEMP): Likewise.
	(reg_class): Delete M16_NA_REGS.
	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
	(SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
	(mips_split_hi_p): Declare.
	* config/mips/mips.c (mips_split_hi_p): New array.
	(mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
	(mips_got_symbol_type_p): New function.
	(mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
	(mips16_stub_function_p): New function.
	(mips16_local_function_p): Likewise.
	(mips_use_pic_fn_addr_reg_p): Likewise.
	(mips_cannot_force_const_mem): Return false for HIGHs.
	Extend CONST_INT and symbolic handling to MIPS16, using
	mips_symbol_insns to check that the base symbol type is a
	legitimate constant.  Reject GOT-based constants if
	TARGET_MIPS16_PCREL_LOADS.
	(mips_const_insns): Check targetm.cannot_force_const_mem when
	decomposing a symbolic base and a large offset.
	(mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
	When calling a function that needs $25 from MIPS16 code,
	move the target address into $25 separately and add a USE
	to the call insn.
	(mips16_gp_pseudo_reg): Insert the initializer immediately
	before the first real insn.
	(mips_pic_base_register, mips_got_load): New functions.
	(mips_split_symbol): Generalize the name of the LO_SUM_OUT
	parameter to LOW_OUT.  Say that it can be any valid SET_SRC
	when splitting a load-address operation.  Split SYMBOL_GOT_DISP
	constants and highs of SYMBOL_GOT_PAGE_OFST constants.
	(mips_call_tls_get_addr): Update the call to mips_expand_call,
	also passing NULL_RTX rather than const0_rtx as the aux argument.
	(mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
	instead of TARGET_EXPLICIT_RELOCS.
	(mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
	(mips_load_call_address): Replace the sibcall_p argument with
	a mips_call_type argument.  Use mips_got_load.
	(mips16_local_alias): New structure.
	(mips16_local_aliases): New variable.
	(mips16_local_aliases_hash): New function.
	(mips16_local_aliases_eq): Likewise.
	(mips16_local_alias): Likewise.
	(mips16_stub_function): Likewise.
	(mips16_build_function_stub): Create a local alias for the target
	function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
	.cpload directive and an R_MIPS_NONE relocation for the target
	function, then load the alias rather than the function itself.
	Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
	(mips16_copy_fpr_return_value): Use mips16_stub_function and
	mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
	(mips16_build_call_stub): Replace the FN parameter with an
	FN_PTR parameter.  Force the address into a register if it
	isn't a call_insn_operand; don't rely on the caller to do this.
	If a call to a locally-defined and locally-binding MIPS16
	function must be made indirectly, redirect the call to the
	function's local alias.  Use mips16_stub_function_p,
	mips16_stub_function, mips_expand_call and use_reg.
	Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
	Use explicit %hi and %lo accesses where possible.
	Use MIPS_CALL to generate the correct code form of a
	jal instruction.  Add clobbers of $18 instead of uses.
	Update the call to mips_emit_call_insn.
	(mips_expand_call): Replace the SIBCALL_P argument with a
	mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
	Take a LAZY_P parameter.  Call mips16_build_call_stub first,
	allowing it to modify the call address.  Update the calls to
	mips_load_call_address and mips_emit_call_insn.
	(mips_split_call): New function.
	(mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
	!TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
	SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
	(mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
	(mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
	if TARGET_MIPS16.
	(mips_cprestore_slot): New function.
	(mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
	and use mips_cprestore_slot.
	(mips_output_function_prologue): Handle TARGET_MIPS16 for
	LOADGP_OLDABI.
	(mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
	then use a copygp_mips16 instruction to set up $28.
	(mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
	(mips16_lay_out_constants): Call split_all_insns_noflow.
	(mips_reorg_process_insns): Explicitly set all_noreorder_p to
	false if TARGET_MIPS16.
	(mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
	(mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
	mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
	(mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
	MIPS16 code.  Allow MIPS16 o32 PIC.
	(mips_override_options): Allow MIPS16 o32 PIC.
	* config/mips/mips.md: Lower CONST_GP_P moves into register moves
	after reload if TARGET_USE_GOT.
	(UNSPEC_COPYGP): New constant.
	(length): Use a default length of 8 for MIPS16 GOT loads.
	(*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
	(*got_page<mode>): Check mips_split_hi_p.
	(*got_disp<mode>, *got_page<mode>): Use mips_got_load.
	(unspec_got<mode>, unspec_call<mode>): New expanders.
	(load_got<mode>, load_call<mode>): Remove the length attributes.
	Use a got attribute instead of a type attribute.
	(copygp_mips16): New insn.
	(restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
	(load_call<mode>): Use a "d" constraint instead of an "r" constraint.
	(sibcall, sibcall_value, call, call_value): Update the calls
	to mips_expand_call.
	(call_internal, call_value_internal): Use mips_split_call.
	(call_value_multiple_internal): Likewise.
	(call_split): Move after call_internal (the insn it is split from).
	(call_internal_direct, call_value_internal_direct): Turn into
	define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
	(call_direct_split, call_value_direct_split): New patterns.
	* config/mips/constraints.md (c): Handle TARGET_MIPS16 first
	and use M16_REGS instead of M16_NA_REGS.
	* config/mips/predicates.md (const_call_insn_operand): Replace
	the TARGET_ABSOLUTE_ABICALLS-based check with a more general
	mips_use_pic_fn_addr_reg_p check.
	(move_operand): Reject HIGHs if mips_split_hi_p.
	* config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
	(__mips16_floatunsisf): Inline __mips16_floatsisf.
	(CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
	* config/mips/libgcc-mips16.ver: New file.
	* config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
	$(srcdir)/config/mips/libgcc-mips16.ver.

2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_unspec_address_offset): Move earlier
	in file.
	(mips_unspec_address, mips_unspec_offset_high): Likewise.
	(mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
	(mips16_cfun_returns_in_fpr_p): Likewise.

2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
	* config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
	rather than 4 to PC.

2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
	(FUNCTION_PROFILER): Save the static chain pointer into $2
	beforehand and restore it aftewards.
	(TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
	address directly into $25 and call the function through $25;
	do not clobber $3.  Pad the DImode version to cover the space
	left by the deleted $25 <- $3 move.
	(TRAMPOLINE_SIZE): Adjust the size of the SImode version after
	the removal of the $25 <- $3 move.
	(INITIALIZE_TRAMPOLINE): Update offsets accordingly.
	* config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.

2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
	* config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
	(ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
	* config/mips/mips.c (mips_start_function_definition): New function.
	(mips_end_function_definition): Likewise.
	(mips_output_function_prologue): Use mips_start_function_definition.
	(mips_output_function_epilogue): Use mips_end_function_definition.
	(build_mips16_function_stub): Use mips_start_function_definition
	and mips_end_function_definition.
	(build_mips16_call_stub): Likewise.

2008-08-09  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
	* gimple.h (gimple_call_fn): Adjust comment.
	(gimple_call_set_fndecl): New function.
	(gimple_call_fndecl): Adjust for GIMPLE_CALL no
	longer having bare FUNCTION_DECL operand.
	(gimple_call_return_type): Likewise.
	* tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.

	* value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
	(gimple_mod_pow2): Likewise.
	(gimple_mod_subtract): Likewise.
	(gimple_ic): Likewise.
	(gimple_stringop_fixed_value): Likewise.
	(gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
	longer having bare FUNCTION_DECL operand.
	* ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
	* omp-low.c (optimize_omp_library_calls): Likewise.
	* cgraphunit.c (update_call_expr): Likewise.
	* tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
	(execute_convert_to_rsqrt): Likewise.
	* cfgexpand.c (gimple_to_tree): Simplify.
	(release_stmt_tree): Fix for GIMPLE_CALL no longer having
	bare FUNCTION_DECL operand.
	* tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
	(convert_gimple_call): Use gimple_call_fndecl.
	* c-common.c (c_warn_unused_result): Likewise.

2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/17880
	* c-typeck.c (digest_init): Call verify_sequence_points from here.
	(c_finish_return): Likewise.
	(c_start_case): Likewise.
	* c-common.c (warn_for_collisions_1): Use explicit location in warning.
	* c-parser.c (c_parser_condition): New. Call
	verify_sequence_points.
	(c_parser_paren_condition): Call c_parser_condition.
	(c_parser_for_statement): Call c_parser_condition.

2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 36901
	* diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
	* diagnostic.c (pedantic_warning_kind, permissive_error_kind):
	Moved from diagnostic.h
	(diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
	DK_PERMERROR.
	(emit_diagnostic): New.
	(warning0, pedwarn0): Delete.
	(warning, warning_at, pedwarn, permerror): Return bool.
	* diagnostic.h (pedantic_warning_kind, permissive_error_kind):
	Moved to diagnostic.c.
	(struct diagnostic_context): Use correct type for
	classify_diagnostic.
	(diagnostic_report_diagnostic): Update declaration.
	(emit_diagnostic): Declare.
	* errors.c (warning): Return bool.
	* errors.h (warning): Update declaration.
	* toplev.h (warning0, pedwarn0): Delete.
	(warning, warning_at, pedwarn, permerror): Return bool.
	* c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
	* c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
	inform. Update all calls.
	(diagnose_mismatched_decls): Check return value of warning/pedwarn
	before giving informative note.
	(implicit_decl_warning): Likewise.
	* c-typeck.c (build_function_call): Likewise.
	* tree-sssa.c (warn_uninit): Likewise.
	* builtins.c (gimplify_va_arg_expr): Likewise.

2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 7651
	* doc/invoke.texi (-Wextra): Move warning from here...
	(-Wuninitialized): ... to here.

2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 28875
	* flags.h (set_Wunused): Delete
	* toplev.c (process_options): Handle Wunused flags here.
	* opts.c (maybe_warn_unused_parameter): Delete.
	(common_handle_option): Replace set_Wunused by warn_unused.
	(set_Wextra): Do not handle Wunused-parameter here.
	(set_Wunused): Delete.
	* c-opts.c (c_common_handle_option): Replace set_Wunused by
	warn_unused.
	* common.opt (Wunused): Add Var and Init.
	(Wunused-function): Likewise.
	(Wunused-label): Likewise.
	(Wunused-parameter): Likewise.
	(Wunused-value): Likewise.
	(Wunused-variable): Likewise.

2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>

	* doc/invoke.texi: Add cpu_type power7.
	* config.in (HAVE_AS_VSX): New.
	* config.gcc: Add cpu_type power7.
	* configure.ac (HAVE_AS_VSX): Check for assembler support of the
	VSX instructions.
	* configure: Regenerate.
	* config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
	power5.
	* config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
	(ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
	(EXTRA_SPECS): Add asm_cpu_power7 spec string.

2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-vect-transform.c (vectorizable_conversion): Pass the integral
	type to vectorize.builtin_conversion.
	(vectorizable_conversion): Likewise.
	* config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
	integral type as input.
	* config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
	FIX_TRUNC_EXPR.
	(rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
	and ALTIVEC_BUILTIN_VCTSXS.
	(rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
	formatting.

2008-08-08  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (likely_value): Calls are not all varying.
	(surely_varying_stmt_p): Calls are varying only if they are
	non-builtin and not indirect or have no result.
	(ccp_fold): Re-instantiate code before the tuples merge.

2008-08-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37056
	* gimple.h (gimple_assign_rhs_class): New helper function.
	* tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
	unary operations properly.

2008-08-07  Jan Hubicka  <jh@suse.cz>

	* i386.h (ix86_size_cost): Declare.
	(ix86_cur_cost): New function macro.
	* i386.md (peepholes expanding size and splitters): Predicate by
	optimize_insn_for_speed_p.
	(peepholes reduce size and splitters): Predicate by
	optimize_insn_for_size_p.
	* i386.c (ix86_size_cost): Rename from ...
	(size_cost): This one.
	(override_options): Update.
	(decide_alg): Likewise.
	(ix86_expand_clear): Use RTL profile.
	(ix86_pad_returns): Use RTL profile.

2008-08-07  Jan Hubicka  <jh@suse.cz>

	* recog.c (split_all_insns): Set RTL profile
	(peephole2_optimize): Likewise.
	* function.c (thread_prologue_and_epilogue_insns): Likewise.
	* combine.c (combine_instructions): Likewise.

2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-common.c (c_common_reswords): Also warn about keyword "bool".

2008-08-07  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
	value in a6 after the set_frame_ptr insn.

2008-08-07  Richard Henderson  <rth@redhat.com>

	PR debug/37033
	* gcc.c (cpp_options): Pass along -g*.

2008-08-07  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.c (output_move_neon): Update comment describing
	big-endian vector layout.
	(arm_assemble_integer): Do not handle big-endian NEON vectors
	specially.
	* config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
	neon_vget_lane<mode>_sext_internal,
	neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
	element indices for big-endian.

2008-08-07  Richard Henderson  <rth@redhat.com>

	* configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
	* configure, config.in: Rebuild.
	* debug.h (dwarf2out_do_cfi_asm): Declare.
	* c-cppbuiltin.c (c_cpp_builtins): Use it.
	* dwarf2out.c (dwarf2out_do_cfi_asm): New.
	(dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
	dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.

2008-08-07  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
	movv2si_internal): Combine into mov<mode>_internal.
	(movv2si_internal_2): Remove.

2008-08-07  Jan Hubicka  <jh@suse.cz>

	PR target/37048
	* i386.md (single stringop patterns): Enable unconditionally.

2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/36992
	* config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.

	* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
	(bdesc_args): Add IX86_BUILTIN_MOVQ128.

	* config/i386/sse.md (sse2_movq128): New.

	* doc/extend.texi: Document __builtin_ia32_movq128.

2008-08-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37042
	* tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
	pointers can access anything.

2008-08-06  Jan Hubicka  <jh@suse.cz>

	* optabs.c (emit_unop_insn): Break out to ...
	(maybe_emit_unop_insn): ... this one.
	(expand_sfix_optab): Use maybe variant.
	* optabs.h (maybe_emit_unop_insn): Declare.

	* i386.md (mov0 patterns): Enable by default.
	(FP conversion expanders): Disable expansion of code expanding
	sequences when instruction should be optimized for size.
	(single strinop patterns): Enable when optimizing for size.
	(string expanders): Disable expanding of code expanding sequences
	when optimizning instruction for size.
	* i386.c (ix86_expand_vector_move_misalign): Do code size optimization
	per BB basis.
	(ix86_fp_comparison_sahf_cost): Likewise.
	(ix86_expand_branch): Likewise.
	(ix86_expand_ashl_const): Likewise.
	(ix86_split_ashl): Likewise.
	(ix86_expand_strlen): Likewise.
	(ix86_emit_fp_unordered_jump): Likewie.

2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-common.c: Fix typo.
	(c_common_reswords): Activate more C++ keyword warnings.

	* matrix-reorg.c (compute_offset): Avoid C++ keywords.

2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 26785
	* diagnostic.c (permerror_at): New.
	* toplev.h (permerror_at): Declare.

2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
	    Ira Rosen  <irar@il.ibm.com>

	* tree-vect-transform.c (vect_model_simple_cost): Return
	immediately if stmt is pure SLP.
	(vect_model_store_cost): Ditto.
	(vect_model_load_cost): Ditto.
	(vectorizable_store): Remove PURE_SLP check before call
	to vect_model_store_cost.
	(vect_model_store_cost): When checking whether stmt describe
	strided access, add a check that it is not slp_node.

2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 8715
	* c-common.c (warn_for_sign_compare): New. Handle separately the
	case that 'constant' is zero.
	* c-typeck.c (build_binary_op): Move code to c-common.c

2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/alpha/alpha.c (alpha_preferred_reload_class,
	alpha_secondary_reload, alpha_emit_set_const_1, function_value,
	alpha_output_mi_thunk_osf): Avoid C++ keywords.
	* config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
	* config/arm/arm.md: Likewise.
	* config/avr/avr-protos.h (preferred_reload_class,
	test_hard_reg_class, avr_simplify_comparison_p,
	out_shift_with_cnt, class_max_nregs): Likewise.
	* config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
	output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
	preferred_reload_class, test_hard_reg_class): Likewise.
	* config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
	bfin_memory_move_cost, bfin_secondary_reload,
	bfin_output_mi_thunk): Likewise.
	* config/crx/crx.c (crx_secondary_reload_class,
	crx_memory_move_cost): Likewise.
	* config/frv/frv-protos.h (frv_secondary_reload_class,
	frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
	* config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
	frv_secondary_reload_class, frv_class_likely_spilled_p,
	frv_class_max_nregs): Likewise.
	* config/h8300/h8300.c (h8300_classify_operand,
	h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
	Likewise.
	* config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
	* config/ia64/ia64.c (ia64_preferred_reload_class,
	ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
	* config/iq2000/iq2000.c (gen_int_relational): Likewise.
	* config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
	Likewise.
	* config/m68hc11/m68hc11.c (preferred_reload_class,
	m68hc11_memory_move_cost): Likewise.
	* config/mcore/mcore.c (mcore_secondary_reload_class,
	mcore_reload_class): Likewise.
	* config/mips/mips.c (mips_hard_regno_mode_ok_p,
	mips_class_max_nregs, mips_cannot_change_mode_class,
	mips_preferred_reload_class, mips_secondary_reload_class,
	mips_output_mi_thunk): Likewise.
	* config/mmix/mmix.c (mmix_preferred_reload_class,
	mmix_preferred_output_reload_class, mmix_secondary_reload_class):
	Likewise.
	* config/mn10300/mn10300.c (mn10300_secondary_reload_class):
	Likewise.
	* config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
	pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
	* config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
	* config/rs6000/rs6000.c (paired_expand_vector_init,
	rs6000_secondary_reload_class, rs6000_output_mi_thunk,
	compare_section_name, rs6000_memory_move_cost): Likewise.
	* config/s390/s390.c (s390_emit_compare_and_swap,
	s390_preferred_reload_class, s390_secondary_reload,
	legitimize_pic_address, legitimize_tls_address,
	legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
	s390_class_max_nregs): Likewise.
	* config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
	* config/s390/s390.md: Likewise.
	* config/score/score-protos.h (score_secondary_reload_class,
	score_preferred_reload_class): Likewise.
	* config/score/score.c (score_preferred_reload_class,
	score_secondary_reload_class): Likewise.
	* config/score/score3.c (score3_output_mi_thunk,
	score3_preferred_reload_class, score3_secondary_reload_class,
	score3_hard_regno_mode_ok): Likewise.
	* config/score/score3.h (score3_preferred_reload_class,
	score3_secondary_reload_class): Likewise.
	* config/score/score7.c (score7_output_mi_thunk,
	score7_preferred_reload_class, score7_secondary_reload_class,
	score7_hard_regno_mode_ok): Likewise.
	* config/score/score7.h (score7_preferred_reload_class,
	score7_secondary_reload_class): Likewise.
	* config/sh/sh.c (prepare_move_operands, output_far_jump,
	output_branchy_insn, add_constant, gen_block_redirect,
	sh_insn_length_adjustment, sh_cannot_change_mode_class,
	sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
	* config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
	xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
	xstormy16_preferred_reload_class): Likewise.
	* config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
	xtensa_expand_atomic, override_options,
	xtensa_preferred_reload_class, xtensa_secondary_reload_class):
	Likewise.
	* reorg.c (try_merge_delay_insns): Likewise.
	* tree.c (merge_dllimport_decl_attributes): Likewise.

	* config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.

2008-08-06  Michael Matz  <matz@suse.de>

	* Makefile.in (write_entries_to_file): Quote words.
	* gengtype.c (read_input_line): Skip over leading white-space.

2008-08-06  Marc Gauthier  <marc@tensilica.com>

	* config.gcc: Match more processor names for Xtensa.
	* configure.ac: Likewise.
	* doc/install.texi (Specific): Likewise.
	* configure: Regenerate.

2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
	* calls.c (avoid_likely_spilled_reg): Likewise.
	* cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
	* cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
	* config/i386/i386.c (ix86_expand_special_args_builtin,
	ix86_secondary_reload): Likewise.
	* except.c (struct eh_region, gen_eh_region_catch,
	remove_unreachable_regions, duplicate_eh_regions,
	assign_filter_values, build_post_landing_pads,
	sjlj_find_directly_reachable_regions, remove_eh_handler,
	reachable_next_level, foreach_reachable_handler,
	can_throw_internal_1, can_throw_external_1,
	collect_one_action_chain): Likewise.
	* expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
	* fold-const.c (twoval_comparison_p, eval_subst): Likewise.
	* function.c (update_temp_slot_address, instantiate_new_reg,
	instantiate_virtual_regs_in_rtx,
	instantiate_virtual_regs_in_insn): Likewise.
	* gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
	* gimplify.c (gimplify_call_expr, gimplify_init_constructor,
	gimplify_cleanup_point_expr): Likewise.
	* ipa-cp.c (ipcp_lattice_changed): Likewise.
	* passes.c (next_pass_1): Likewise.
	* print-tree.c (print_node_brief, print_node): Likewise.
	* profile.c (branch_prob): Likewise.
	* tree-dump.c (dump_register): Likewise.
	* tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
	Likewise.
	* tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
	copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
	copy_edges_for_bb, copy_cfg_body, copy_tree_r,
	copy_arguments_for_versioning, copy_static_chain): Likewise.
	* tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
	add_new_name_mapping, register_new_name_mapping): Likewise.
	* tree-mudflap.c (mf_xform_derefs): Likewise.
	* tree-predcom.c (struct chain, dump_chain, replace_ref_with,
	get_init_expr, combine_chains): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* tree-ssa-structalias.c (create_variable_info_for): Likewise.
	* tree-vrp.c (simplify_cond_using_ranges): Likewise.
	* tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
	* value-prof.c (gimple_duplicate_stmt_histograms): Likewise.

2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/37010
	* calls.c (expand_call): Use the biggest preferred stack
	boundary.

2008-08-06  Michael Matz  <matz@suse.de>

	PR target/36613
	* reload.c (push_reload): Merge in,out,in_reg,out_reg members
	for reused reload, instead of overwriting them.

2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/37009
	* cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
	for incoming stack boundary.

	* function.c (assign_parm_find_entry_rtl): Update
	parm_stack_boundary.

	* function.h (rtl_data): Add parm_stack_boundary.

	* config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
	parm_stack_boundary for incoming stack boundary.

2008-08-06  Joseph Myers  <joseph@codesourcery.com>

	* jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
	for unrepresentable subregs or treat them as equal to other regs
	or subregs with the same register number.

2008-08-06  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/35432
	* gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
	if want_value.

2008-08-06  Jan Hubicka  <jh@suse.cz>

	* predict.c (maybe_hot_frequency_p): When profile is absent, all
	frequencies might be hot.

2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>

	* reload.c (find_reloads): Force constants into literal pool
	also if they are wrapped in a SUBREG.

2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR target/35659
	* haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
	* sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
	Don't allow predicated instructions for data speculation.
	* sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
	declaration.

2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* haifa-sched.c (extend_global): Split to extend_global_data and
	extend_region_data.  Update all uses.
	(extend_all): Rename to extend_block_data.

2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* sched-rgn.c (new_ready): Check if instruction can be
	speculatively scheduled before attempting speculation.
	(debug_rgn_dependencies): Remove wrongful assert.

2008-08-05  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.

2008-08-05  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
	(xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
	va_size, and type_size.

2008-08-04  Jason Merrill  <jason@redhat.com>

	PR c++/37016
	* tree-ssa.c (useless_type_conversion_p_1): Call langhook
	if TYPE_STRUCTURAL_EQUALITY_P is true for both types.

2008-08-05  Richard Henderson  <rth@redhat.com>

	* configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
	* configure: Rebuild.

2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR tree-opt/37024
	* tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
	instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
	is a conversion.

2008-08-05  Richard Henderson  <rth@redhat.com>

	* Makefile.in (c-cppbuiltin.o): Depend on debug.h.
	* c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
	* doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
	* common.opt (fdwarf2-cfi-asm): New.
	* configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
	* config.in, configure: Rebuild.
	* dwarf2asm.c (dw2_asm_output_data_raw): New.
	(dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
	New.
	(dw2_force_const_mem): Externalize.
	* dwarf2asm.h: Update.
	* dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
	generate a real label.
	(output_cfi_directive): New.
	(add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
	(output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
	(dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
	and .cfi_lsda.
	(dwarf2out_end_epilogue): Emit .cfi_endproc.
	(output_loc_operands_raw, output_loc_sequence_raw): New.
	(output_cfa_loc_raw): New.

2008-08-05  Paul Brook  <paul@codesourcery.com>

	* doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
	* config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
	(fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
	(arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
	* config/arm/arm.h (TARGET_VFPD32): Define.
	(TARGET_VFP3): Use TARGET_VFPD32.
	(fputype): Add FPUTYPE_VFP3D16.
	(LAST_VFP_REGNUM): Use TARGET_VFPD32.
	* config/arm/constraints.md ("w"): Use TARGET_VFPD32.
	* config/arm/arm-cores.def: Add cortex-r4f.
	* config/arm/arm-tune.md: Regenerate.

2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
	Reword some comments throughout the file.

	(MFC_MIN_DMA_LIST_ELEMENTS): New define.
	(MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
	(MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
	MFC_MIN_DMA_LIST_ELEMENTS.
	(MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
	MFC_MAX_DMA_LIST_ELEMENTS.

	(MFC_START_ENABLE): Remove PPU-only define.
	(MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
	(MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.

	(MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
	(MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
	(MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
	(MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
	(MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
	(MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
	(MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.

	(MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
	(MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
	(mfc_sdcrt, mfc_sdcrtst): Likewise.
	(mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.

	(spu_read_machine_status): Fix typo.

2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
	SUBREG of multi-word hard register.
	* config/spu/spu.c (valid_subreg): Likewise.
	(adjust_operand): Handle SUBREGs of multi-word hard registers.

2008-08-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
	the candidate with the stripped base if that base is different
	from the original base even for offset zero.

2008-08-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36691
	* tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
	check for no_overflow.

2008-08-04  Richard Guenther  <rguenther@suse.de>

	* tree-vect-transform.c (vectorizable_call): Fix tuplification.

2008-08-04  Paul Brook  <paul@codesourcery.com>

	* cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
	(arm_order_regs_for_local_alloc): New function.
	* config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
	prototype.
	* config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.

2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/37012
	* config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
	instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
	(ix86_expand_epilogue): Likewise.

2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
	in comments.

2008-08-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
	to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
	(*movv2sf_internal_rex64): Ditto.

2008-08-03  Jan Hubicka  <jh@suse.cz>

	* optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
	expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
	* expmed.c (expand_smod_pow2): Likewise.

2008-08-03  Uros Bizjak  <ubizjak@gmail.com>

	PR target/36992
	* config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
	alternative 0 of operand 1.
	(*vec_concatv2di_rex64_sse): Ditto.
	(*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
	of operand 1.
	(*sse2_storeq_rex64): Penalize allocation of "r" registers.
	* config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
	of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
	(*movv2sf_internal_rex64): Ditto.

2008-08-02  Richard Guenther  <rguenther@suse.de>

	PR target/35252
	* config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
	(ssedoublesizemode): New mode attribute.
	(sse_shufps): Call gen_sse_shufps_v4sf.
	(sse_shufps_1): Macroize.
	(sse2_shufpd): Call gen_Sse_shufpd_v2df.
	(sse2_shufpd_1): Macroize.
	(vec_extract_odd, vec_extract_even): New expanders.
	(vec_interleave_highv4sf, vec_interleave_lowv4sf,
	vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
	* i386.c (ix86_expand_vector_init_one_nonzero): Call
	gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
	(ix86_expand_vector_set): Likewise.
	(ix86_expand_reduc_v4sf): Likewise.

2008-08-01  Doug Kwan  <dougkwan@google.com>

	* matrix-reorg.c: Re-enable all code.
	(struct malloc_call_data): Change CALL_STMT to gimple type.
	(collect_data_for_malloc_call): Tuplify.
	(struct access_site_info): Change STMT to gimple type.
	(struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
	and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
	(struct free_info): Change STMT to gimple type.
	(struct matrix_access_phi_node):  Change PHI to gimple type.
	(get_inner_of_cast_expr): Remove.
	(may_flatten_matrices_1): Tuplify.
	(may_flatten_matrices): Ditto.
	(mark_min_matrix_escape_level): Ditto.
	(ssa_accessed_in_tree): Refactor statement RHS related code into ...
	(ssa_accessed_in_call_rhs): New
	(ssa_accessed_in_assign_rhs): New
	(record_access_alloc_site_info): Tuplify.
	(add_allocation_site): Ditto.
	(analyze_matrix_allocation_site): Ditto.
	(analyze_transpose): Ditto.
	(get_index_from_offset): Ditto.
	(update_type_size): Ditto.
	(analyze_accesses_for_call_expr): Tuplify and renamed into ...
	(analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
	(analyze_accesses_for_phi_node): Tuplify.
	(analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
	(analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
	(analyze_matrix_accesses): Tuplify.
	(check_var_data): New call-back type for check_var_notmodified_p.
	(check_var_notmodified_p): Tuplify and use call-back struct to
	return statement found.
	(can_calculate_expr_before_stmt): Factor out statement related code
	into ...
	(can_calculate_stmt_before_stmt): New.
	(check_allocation_function): Tuplify.
	(find_sites_in_func): Ditto.
	(record_all_accesses_in_func): Ditto.
	(transform_access_sites): Ditto.
	(transform_allocation_sites): Ditto.
	(matrix_reorg): Re-enable.
	(gate_matrix_reorg): Re-enable.

2008-08-01  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
	for labels for which it hasn't been set yet.  If it has been set,
	stop walking insns and continue with next worklist item.
	(dwarf2out_stack_adjust): Don't call compute_barrier_args_size
	if the only BARRIER is at the very end of a function.

2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>

	* cfgexpand.c (expand_stack_alignment): Assert that
	stack_realign_drap and drap_rtx must match.

	* function.c (instantiate_new_reg): If DRAP is used to realign
	stack, replace virtual_incoming_args_rtx with internal arg
	pointer.

2008-08-01  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
	loop information only if we initialized it.
	(execute_pre): Call fini_pre with in_fre.
	* tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
	if we do not unroll because we hit max-completely-peeled-insns.
	Use our estimation for consistency, do allow shrinking.

2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
	with MIN_STACK_BOUNDARY.
	(ix86_update_stack_boundary): Likewise.
	(ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
	STACK_BOUNDARY.

	* config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
	(MIN_STACK_BOUNDARY): This.

2008-08-01  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36997
	* gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.

2008-08-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36988
	* tree-ssa-ccp.c (ccp_fold): Conversions of constants only
	do not matter if that doesn't change volatile qualification.

2008-08-01  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Do not generate libada-mk.  Do not subst
	host_cc_for_libada.
	* libada-mk.in: Remove.
	* Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
	* configure: Regenerate.

2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>

	* tree-pass.h: Added comment about not dumping passes with name
	starting with star in struct opt_pass.
	* passes.c (register_dump_files_1): Don't do dump for a pass with
	name starting with star.
	* doc/passes.texi (Pass manager): Mention pass names and special
	meaning of star prefix to avoid dump.

2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>

	* config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
	to MIPS64r2.
	* config/mips/mips.h (GENERATE_MIPS16E): Update comment.
	(ISA_MIPS64R2): New macro.
	(TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
	(ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
	ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
	ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
	ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
	ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
	ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
	(MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
	(TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
	Move up to keep list alphabetically sorted.
	(TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
	* config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
	processor.
	* doc/invoke.texi (MIPS Options): Add -mips64r2.
	(-march=@var{arch}): Add mips64r2.

2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.

2008-07-31  Steve Ellcey  <sje@cup.hp.com>

	* expr.c (expand_assignment): Check for complete type.

2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>

	PR debug/36977
	* cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.

	* dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
	for stack alignment.

	* function.h (rtl_data): Add stack_realign_tried.  Update comments.

2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_canonical_va_list_type): Remove.
	(TARGET_CANONICAL_VA_LIST_TYPE): Remove.

2008-07-31  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/36419
	* dwarf2out.c (barrier_args_size): New variable.
	(compute_barrier_args_size, compute_barrier_args_size_1): New
	functions.
	(dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
	if not called yet in the current function, use barrier_args_size
	array to find the new args_size value.
	(dwarf2out_frame_debug): Free and clear barrier_args_size.

2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>

	PR debug/36980
	* dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
	rule 19.

2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>

	PR debug/36976
	* dwarf2out.c (dwarf2out_args_size_adjust): New.
	(dwarf2out_stack_adjust): Use it.
	(dwarf2out_frame_debug_expr): Likewise.

2008-07-31  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36978
	* tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
	the generated condition.

2008-07-31  Richard Guenther  <rguenther@suse.de>

	* passes.c (init_optimization_passes): Always call
	pass_early_warn_uninitialized.
	* opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
	* doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
	* doc/passes.texi (Warn for uninitialized variables): Adjust.

2008-07-31  Jakub Jelinek  <jakub@redhat.com>

	PR c/36970
	* builtins.c (maybe_emit_free_warning): New function.
	(expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
	maybe_emit_free_warning for BUILT_IN_FREE.

	PR debug/36278
	* dwarf2out.c (get_context_die): New function.
	(force_decl_die, force_type_die): Use it.
	(dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
	returns NULL, force generation of DW_TAG_typedef and put that into
	DW_AT_import.

	PR preprocessor/36649
	* c-pch.c (c_common_read_pch): Save and restore
	line_table->trace_includes across PCH restore.

2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/36554
	* dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.

2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>

	PR 36974
	* final.c (call_from_call_insn): Handle COND_EXEC.

2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>

	* builtins.c (std_gimplify_va_arg_expr): Replace
	PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
	* config/i386/i386.c (ix86_gimplify_va_arg): Likewise.

2008-07-30  Joey Ye  <joey.ye@intel.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* builtins.c (expand_builtin_setjmp_receiver): Replace
	virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
	(expand_builtin_apply_args_1): Likewise.
	(expand_builtin_longjmp): Need DRAP for stack alignment.
	(expand_builtin_apply): Likewise.

	* caller-save.c (setup_save_areas): Call assign_stack_local_1
	instead of assign_stack_local to allow alignment reduction.

	* calls.c (emit_call_1): Need DRAP for stack alignment if
	return pops.
	(expand_call): Replace virtual_incoming_args_rtx with
	crtl->args.internal_arg_pointer.
	* stmt.c (expand_nl_goto_receiver): Likewise.

	* cfgexpand.c (get_decl_align_unit): Estimate stack variable
	alignment and store to stack_alignment_estimated and
	max_used_stack_slot_alignment.
	(expand_one_var): Likewise.
	(expand_stack_alignment): New function.
	(tree_expand_cfg): Initialize max_used_stack_slot_alignment
	and stack_alignment_estimated fields in rtl_data.  Call
	expand_stack_alignment at end.

	* defaults.h (INCOMING_STACK_BOUNDARY): New.
	(MAX_STACK_ALIGNMENT): Likewise.
	(MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
	(SUPPORTS_STACK_ALIGNMENT): Likewise.

	* emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
	stack alignment when generating virtual registers.

	* function.c (assign_stack_local): Renamed to ...
	(assign_stack_local_1): This.  Add a parameter to indicate
	if it is OK to reduce alignment.
	(assign_stack_local): Use it.
	(instantiate_new_reg): Instantiate virtual incoming args rtx
	to vDRAP if stack realignment and DRAP is needed.
	(assign_parms): Collect parameter/return type alignment and
	contribute to stack_alignment_estimated.
	(locate_and_pad_parm): Likewise.
	(get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
	with crtl->args.internal_arg_pointer.

	* function.h (rtl_data): Add new field drap_reg,
	max_used_stack_slot_alignment, stack_alignment_estimated,
	stack_realign_needed, need_drap, stack_realign_processed and
	stack_realign_finalized.
	(stack_realign_fp): New macro.
	(stack_realign_drap): Likewise.

	* global.c (compute_regsets): Frame pointer is needed when
	stack is realigned.  Can eliminate frame pointer when stack is
	realigned and dynamic realigned argument pointer isn't used.

	* reload1.c (update_eliminables):  Frame pointer is needed
	when stack is realigned.
	(init_elim_table): Can eliminate frame pointer when stack is
	realigned and dynamic realigned argument pointer isn't used.

	* rtl.h (assign_stack_local_1): Declare new funtion.

	* target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
	(TARGET_GET_DRAP_RTX): Likewise.
	(TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
	TARGET_GET_DRAP_RTX.

	* target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.

	* tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
	STACK_BOUNDARY with MAX_STACK_ALIGNMENT.

2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
	vdrap_reg, stack_realign and drap_reg_saved.
	(add_cfi): Don't allow redefining CFA when DRAP is used.
	(reg_save): Handle stack alignment.
	(dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
	alignment.  Don't generate DWARF information for (set fp sp)
	when DRAP is used.
	(dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
	to INVALID_REGNUM.
	(int_loc_descriptor): Move prototype forward.  Also define if
	DWARF2_UNWIND_INFO is true.
	(output_cfa_loc): Handle DW_CFA_expression.
	(build_cfa_aligned_loc): New.
	(based_loc_descr): Update assert for stack realign.  For local
	variables, use sp+offset when stack is aligned without drap and
	fp+offset when stack is aligned with drap.  For arguments, use
	cfa+offset when drap is used to align stack.

2008-07-30  Joey Ye  <joey.ye@intel.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_force_align_arg_pointer_string):
	Break long line.
	(ix86_gen_andsp): New.
	(ix86_user_incoming_stack_boundary): Likewise.
	(ix86_default_incoming_stack_boundary): Likewise.
	(ix86_incoming_stack_boundary): Likewise.
	(ix86_can_eliminate): Likewise.
	(find_drap_reg): Likewise.
	(ix86_update_stack_boundary): Likewise.
	(ix86_get_drap_rtx): Likewise.
	(ix86_finalize_stack_realign_flags): Likewise.
	(TARGET_UPDATE_STACK_BOUNDARY): Likewise.
	(TARGET_GET_DRAP_RTX): Likewise.
	(override_options): Overide option value for new options.
	(ix86_function_ok_for_sibcall): Remove check for
	force_align_arg_pointer.
	(ix86_handle_cconv_attribute): Likewise.
	(ix86_function_regparm): Likewise.
	(setup_incoming_varargs_64): Don't set stack_alignment_needed here.
	(ix86_va_start): Replace virtual_incoming_args_rtx with
	crtl->args.internal_arg_pointer.
	(ix86_select_alt_pic_regnum): Check DRAP register.
	(ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
	(ix86_compute_frame_layout): Compute frame layout wrt stack
	realignment.
	(ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
	(ix86_expand_prologue): Decide if stack realignment is needed
	and generate prologue code accordingly.
	(ix86_expand_epilogue): Generate epilogue code wrt stack
	realignment is really needed or not.

	* config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
	(ABI_STACK_BOUNDARY): Likewise.
	(PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
	(STACK_REALIGN_DEFAULT): Likewise.
	(INCOMING_STACK_BOUNDARY): Likewise.
	(MAX_STACK_ALIGNMENT): Likewise.
	(ix86_incoming_stack_boundary): Likewise.
	(FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
	(REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
	(CAN_ELIMINATE): Defined with ix86_can_eliminate.
	(machine_function): Remove force_align_arg_pointer.

	* config/i386/i386.md (BX_REG): New.
	(R13_REG): Likewise.

	* config/i386/i386.opt (mforce_drap): New.
	(mincoming-stack-boundary): Likewise.
	(mstackrealign): Add Init(-1).

	* config/i386/i386-protos.h (ix86_can_eliminate): New

2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/extend.texi: Update force_align_arg_pointer.

	* doc/invoke.texi: Document -mincoming-stack-boundary.  Update
	-mstackrealign.

	* doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
	(INCOMING_STACK_BOUNDARY): Likewise.
	(TARGET_UPDATE_STACK_BOUNDARY): New target hook.
	(TARGET_GET_DRAP_RTX): Likewise.

2008-07-30  Andreas Schwab  <schwab@suse.de>

	PR rtl-optimization/36929
	* dse.c (replace_inc_dec): Use emit_insn_before instead of
	add_insn_before and fix argument order.
	(replace_inc_dec_mem): Handle NULL rtx.

2008-07-30  Andrew Jenner  <andrew@codesourcery.com>

	* config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
	function.
	(arm_compute_initial_elimination_offset): Use it.
	(arm_compute_save_reg_mask): Include static chain save slot when
	calculating alignment.
	(arm_get_frame_offsets): Ditto.
	(thumb1_compute_save_reg_mask): Ensure we have a low register saved
	that we can use to decrement the stack when the stack decrement
	could be too big for an immediate value in a single insn.
	(thumb1_expand_prologue): Avoid using r12 for stack decrement.

2008-07-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36967
	* tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
	Release defs of statements we remove.

2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>

	* config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
	instead of NULL_RTVEC.

2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>

	PR target/35866

	* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
	vector modes.

2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>

	* final.c (call_from_call_insn): New.
	(final_scan_insn): Call assemble_external on FUNCTION_DECLs.

2008-07-30  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Substitute ADA_CFLAGS.
	* configure: Regenerate.
	* config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
	* Makefile.in: Remove mention of X_* variables.
	* config/pa/x-ada-hpux10: Remove.
	* config/pa/x-ada: Remove.

	* doc/fragments.texi: Update.

2008-07-30  Olivier Hainque  <hainque@adacore.com>

	* config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
	* config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
	__dso_handle explicitly here.

2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 34389
	* c-typeck.c (build_binary_op): Encapsulate code into...
	* c-common.c (shorten_binary_op): ...this new function.
	(conversion_warning): Use the new function. Handle non-negative
	constant in bitwise-and.
	* c-common.h (shorten_binary_op): Declare.

2008-07-30  Olivier Hainque  <hainque@adacore.com>

	* scan.c (make_sstring_space): Add explicit conversions of
	allocator's return value.
	* fix-header.c (recognized_function): Likewise.

2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/cpp.texi: Update to GFDL 1.2.
	* doc/gcc.texi: Do not list GPL as Invariant Section.
	* doc/gccint.texi: Likewise.  Update copyright years.
	* doc/install.texi: Update copyright years.

2008-07-30  Alan Modra  <amodra@bigpond.net.au>

	PR target/36955
	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
	a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.

2008-07-29  Jan Hubicka  <jh@suse.cz>

	* c-decl.c (merge_decls): Do not handle DECL_INLINE.
	(grokdeclarator): Likewise.
	* langhooks.c (lhd_warn_unused_global_decl): Use
	DECL_DECLARED_INLINE_P.
	* print-tree.c (print_node): Remove DECL_INLINE check.

2008-07-29  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36945
	* tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
	Record invariant addresses un-decomposed.
	(copy_reference_ops_from_call): Record reference call
	arguments properly.  Simplify.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): New
	helper split out from ...
	(create_component_ref_by_pieces): ... here.  Simplify.
	Prepare for recursive invocation for call arguments.
	(create_expression_by_pieces): Adjust call to
	create_component_ref_by_pieces.
	(compute_avail): Process operand 2 of reference ops.

2008-07-29  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.

2008-07-29  Jakub Jelinek  <jakub@redhat.com>

	* c-format.c (check_format_types): Revert unwanted checkin.

2008-07-29  Jan Hubicka  <jh@suse.cz>

	* flags.h (flag_really_no_inline): Remove.
	* cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
	* toplev.c (flag_really_no_inline): Remove.
	* c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
	* ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
	(cgraph_decide_inlining_incrementally): Likewise.
	(compute_inline_parameters): Likewise.
	* opts.c (decode_options): Simplify.
	* c-opts.c (c_common_post_options): Do not set flag_no_inline.
	* common.opt (finline): Initialize to 1.
	* tree-inline.c (inlinable_function_p): Check flag_no_inline.

2008-07-29  Jan Hubicka  <jh@suse.cz>

	* predict.c (always_optimize_for_size_p): New function.
	(optimize_bb_for_size_p, optimize_bb_for_speed_p,
	optimize_edge_for_size_p, optimize_edge_for_speed_p,
	optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
	functions.
	(rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
	* function.c (prepare_function_start): Set default profile.
	* function.h (rtl_data): Add maybe_hot_insn_p.
	* cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
	(construct_exit_block): Likewise.
	(tree_expand_cfg): Likewise.
	* basic-block.h
	(optimize_bb_for_size_p, optimize_bb_for_speed_p,
	optimize_edge_for_size_p, optimize_edge_for_speed_p,
	optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
	(rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
	Declare.

2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 34985
	* c-decl.c (merge_decls): Merge USED flags.

2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
	valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
	next_stack, lab_false and lab_over trees.

2008-07-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36957
	* tree-flow.h (tree_ssa_useless_type_conversion): Remove.
	(useless_type_conversion_p): Remove.
	(types_compatible_p): Remove.
	* gimple.h (tree_ssa_useless_type_conversion): Declare.
	(useless_type_conversion_p): Declare.
	(types_compatible_p): Declare.
	(gimple_expr_type): Return the base type only if it is
	trivially convertible to the subtype.

2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>

	* configure.ac: Use the m4_do macro to concatenate the warnings into
	one string in ACX_PROG_CC_WARNING_OPTS,
	ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
	ACX_PROG_CC_WARNINGS_ARE_ERRORS.
	* configure: Regenerate.

2008-07-28  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
	(insert_fake_stores): Remove.
	(realify_fake_stores): Likewise.
	(execute_pre): Remove dead code.
	* tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
	(find_func_aliases): Deal with it here instead.
	Re-enable gcc_unreachable call.

2008-07-28  Richard Guenther  <rguenther@suse.de>

	Merge from gimple-tuples-branch.

	* ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
	* gimple.def: New file.
	* gsstruct.def: Likewise.
	* gimple-iterator.c: Likewise.
	* gimple-pretty-print.c: Likewise.
	* tree-gimple.c: Removed.  Merged into ...
	* gimple.c: ... here.  New file.
	* tree-gimple.h: Removed.  Merged into ...
	* gimple.h: ... here.  New file.

	* Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
	* configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
	--enable-checking=gimple flag.
	* config.in: Likewise.
	* configure: Regenerated.

	* tree-ssa-operands.h: Tuplified.
	* tree-vrp.c: Likewise.
	* tree-loop-linear.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-complex.c: Likewise.
	* cgraphbuild.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tracer.c: Likewise.
	* gengtype.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-ssa-loop-unswitch.c: Likewise.
	* cgraph.c: Likewise.
	* cgraph.h: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* value-prof.c: Likewise.
	* tree-ssa-loop-ch.c: Likewise.
	* tree-tailcall.c: Likewise.
	* value-prof.h: Likewise.
	* tree.c: Likewise.
	* tree.h: Likewise.
	* tree-pass.h: Likewise.
	* ipa-cp.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-scalar-evolution.h: Likewise.
	* target.h: Likewise.
	* lambda-mat.c: Likewise.
	* tree-phinodes.c: Likewise.
	* diagnostic.h: Likewise.
	* builtins.c: Likewise.
	* tree-ssa-alias-warnings.c: Likewise.
	* cfghooks.c: Likewise.
	* fold-const.c: Likewise.
	* cfghooks.h: Likewise.
	* omp-low.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* ipa-reference.c: Likewise.
	* tree-ssa-uncprop.c: Likewise.
	* toplev.c: Likewise.
	* tree-gimple.c: Likewise.
	* tree-gimple.h: Likewise.
	* tree-chrec.c: Likewise.
	* tree-chrec.h: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-sccvn.h: Likewise.
	* cgraphunit.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-nomudflap.c: Likewise.
	* tree-call-cdce.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* c-format.c: Likewise.
	* tree-stdarg.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-nrv.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* ipa-utils.c: Likewise.
	* tree-ssa-propagate.h: Likewise.
	* tree-ssa-alias.c: Likewise.
	* gimple-low.c: Likewise.
	* tree-ssa-sink.c: Likewise.
	* ipa-inline.c: Likewise.
	* c-semantics.c: Likewise.
	* dwarf2out.c: Likewise.
	* expr.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* predict.c: Likewise.
	* tree-ssa-loop.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* matrix-reorg.c: Likewise.
	* c-decl.c: Likewise.
	* tree-eh.c: Likewise.
	* c-pretty-print.c: Likewise.
	* lambda-trans.c: Likewise.
	* function.c: Likewise.
	* langhooks.c: Likewise.
	* ebitmap.h: Likewise.
	* tree-vectorizer.c: Likewise.
	* function.h: Likewise.
	* langhooks.h: Likewise.
	* tree-vectorizer.h: Likewise.
	* ipa-type-escape.c: Likewise.
	* ipa-type-escape.h: Likewise.
	* domwalk.c: Likewise.
	* tree-if-conv.c: Likewise.
	* profile.c: Likewise.
	* domwalk.h: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-data-ref.h: Likewise.
	* tree-flow-inline.h: Likewise.
	* tree-affine.c: Likewise.
	* tree-vect-analyze.c: Likewise.
	* c-typeck.c: Likewise.
	* gimplify.c: Likewise.
	* coretypes.h: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* calls.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree.def: Likewise.
	* tree-dfa.c: Likewise.
	* except.c: Likewise.
	* except.h: Likewise.
	* cfgexpand.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-live.h: Likewise.
	* tree-predcom.c: Likewise.
	* lambda.h: Likewise.
	* tree-mudflap.c: Likewise.
	* ipa-prop.c: Likewise.
	* print-tree.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* ipa-prop.h: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* ggc-page.c: Likewise.
	* c-omp.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-ssa-ter.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-ssa.c: Likewise.
	* lambda-code.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-inline.h: Likewise.
	* tree-iterator.c: Likewise.
	* tree-optimize.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-vect-transform.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* cfgloop.c: Likewise.
	* system.h: Likewise.
	* tree-profile.c: Likewise.
	* cfgloop.h: Likewise.
	* c-gimplify.c: Likewise.
	* c-common.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-flow.h: Likewise.
	* c-common.h: Likewise.
	* basic-block.h: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-ssa-structalias.h: Likewise.
	* tree-cfg.c: Likewise.
	* passes.c: Likewise.
	* ipa-struct-reorg.c: Likewise.
	* ipa-struct-reorg.h: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* cfgrtl.c: Likewise.
	* varpool.c: Likewise.
	* stmt.c: Likewise.
	* tree-ssanames.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* langhooks-def.h: Likewise.
	* tree-ssa-operands.c: Likewise.
	* config/alpha/alpha.c: Likewise.
	* config/frv/frv.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/m32c/m32c.c: Likewise.
	* config/m32c/m32c-protos.h: Likewise.
	* config/spu/spu.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/mips/mips.c: Likewise.

2008-07-28  Simon Baldwin  <simonb@google.com>

	* c-pragma.c (handle_pragma_message): New function.
	(init_pragma): Register handle_pragma_message.
	* doc/extend.texi (Diagnostic Pragmas): Added #pragma message
	documentation.

2008-07-27  Victor Kaplansky  <victork@il.ibm.com>

	PR tree-optimization/35252
	* tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
	REALPART_EXPR to be considered as same load operation.

2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/36830
	* tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
	(expressions_equal_p): Return false if only one operand is null.

2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
	version requirements.

2008-07-26  Olivier Hainque  <hainque@adacore.com>

	* collect2.c (symkind): New enum.  Symbol kinds we care about.
	(is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
	code and head comment accordingly.
	(scan_prog_file): Use symkind names instead of bare integers.

2008-07-25  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
	DECL_INLINE.
	* cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
	(cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
	* dojump.c (clear_pending_stack_adjust): Likewise.
	* print-tree.c (print_node): Ignore DECL_INLINE.
	* tree-inline.c (inlinable_function_p): Likewise.

2008-07-25  Michael Meissner  <gnu@the-meissners.org>

	* doc/extend.texi (hot attribute): Document that the hot attribute
	turns on -O3 for some ports.
	(cold attribute): Document that the cold attribute turns on -Os
	for some ports

	* doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
	reflect function specific option support.

	* target.h (struct target_option_hooks): Add fields to say whether
	the cold attribute implies -Os and the hot attribute implies -O3.

	* target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
	By default, do not turn on -Os for cold functions.
	(TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
	not turn on -O3 for hot functions.

	* c-common.c (handle_hot_attribute): Use target hook to determine
	if hot functions should enable -O3.
	(handle_cold_attribute): Use target hook to determine if cold
	functions should enable -Os.

	* config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
	(override_options): Move disable scheduling to
	optimization_options.
	(optimization_options): Disable scheduling here, not
	override_options.
	(TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
	(TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.

	* config/ia64/ia64.c (ia64_override_options): Move setting
	scheduling flags to ia64_optimization_options.
	(ia64_optimization_options): Disable scheduling options here, and
	not in ia64_override_options.
	(TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
	(TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.

2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/36936
	* config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.

2008-07-25  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/36926
	* ipa-prop.c (ipa_analyze_call_uses): Call
	ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.

2008-07-25  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
	movv2si_internal): Add mem = reg alternative.

2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>

	PR bootstrap/36918
	* config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
	DEFAULT_PCC_STRUCT_RETURN to 127.

2008-07-24  Jan Hubicka  <jh@suse.cz>

	* cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
	(build_cgraph_edges): Likewise.
	* cgraph.c (cgraph_node): Do not update assembler hash.
	(cgraph_remove_node): Drop non-unit-at-a-time code.
	* tree-pass.h (pass_O0_always_inline): Remove.
	* ipa-reference.c (gate_reference): Remove unit-at-a-time check.
	* toplev.c (process_options): Flag unit-at-a-time does not imply
	no section anchors.
	* cgraphunit.c: Update comments.
	(decide_is_function_needed): Drop non-unit-at-a-time mode.
	(cgraph_assemble_pending_functions): Remove.
	(cgraph_reset_node): Drop non-unit-at-a-time code.
	(cgraph_finalize_function): Likewise.
	(cgraph_analyze_function): Likewise.
	(cgraph_finalize_compilation_unit): Likewise.
	(cgraph_expand_function): Likewise.
	(cgraph_optimize): Likesise.
	(save_inline_function_body): Likewise.
	* ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
	* tree-ssa-alias.c (maybe_be_aliased): Likewise.
	* ipa-inline.c: Update comments.
	(enum inlining_mode): remove INLINE_SPEED.
	(cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
	(cgraph_mark_inline_edge): Likewise.
	(try_inline): Likewise.
	(cgraph_decide_inlining_incrementally): Likewise.
	(cgraph_gate_inlining): Remove.
	(cgraph_early_inlining): Remove flag_unit_at_a_time checks.
	(cgraph_gate_early_inlining): Likewise.
	(gate_inline_passes): Remove.
	(pass_inline_parameters, pass_ipa_inline): Remove gates.
	(cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
	pass_O0_always_inline): Remove.
	* c-pch.c (c_pch_matching): Remove -funit-at-a-time.
	* dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
	* opts.c (no_unit_at_a_time_default): Remove.
	(decode_options): Remove flag_unit_at_a_time reset and warning.
	* opts.h (no_unit_at_a_time_default): Remove.
	* c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
	early in GNU dialect.
	(merge_decls): Update comment; drop unit-at-a-time check.
	(finish_decl): Likewise.
	(grok_declaration): Remove flag_inline_trees code.
	(finish_functions): Return on function returning non-void on all
	statics.
	* ipa-tye-escape.c (gate_type_escape_vars): Remove.
	* cfgexpand.c (expand_one_static_var): Remove.
	(expand_one_var): Remove expand_one_static_var call.
	(expand_used_vars_for_block): Remove flag_unit_a_time check.
	* c-opts.c (c_common_post_options): Remove flag_inline_trees code
	and flag_unit_at_a-time compatibility checks.
	* varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
	* tree-inline.c (flag_inline_trees): Remove.
	(inlinable_function_p): Don't check it.
	(expand_call_inline): Remove non-unit-at-a-time code.
	* tree-inline.h (flag_inline_trees): Remove.
	* tree-optimize.c (execute_early_local_optimizations): Remove
	unit-at-a-time checks.
	(tree_rest_of_compilation): Likewise.
	* combine.c (setup_incoming_promotions): Likewise.
	* tree-profile.c (tree_gen_ic_func_profiler): Likewise.
	* tree-ssa-structalias.c (delete_points_to_sets): Likewise.
	* passes.c (pass_inline_parameters): Update comments; remove
	O0_alwaysinline pass.
	(execute_one_ipa_transform_pass): Do not reset in_gimple_form.
	(execute_one_pass): Likewise.
	* i386.c (ix86_function_regparm): Remove unit-at-a-time check.
	(ix86_function_sseregparm): Likewise.
	* arm.c (arm_function_in_section_p): Likewise.
	* bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
	* varpool.c: Update comments.
	(decide_is_variable_needed): Remove unit-at-a-time checks.
	(varpool_finalize_decl): Likewise.

2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
	to 2 instead of -1.
	(OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.

2008-07-24  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
	imp symbol extension.

	2008-07-23  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (infer_value_range): Ignore asm statements when
	looking for memory accesses for -fdelete-null-pointer-checks.

2008-07-24  Ben Elliston  <bje@au.ibm.com>

	* config/spu/spu-c.c (__vector_keyword): New variable.
	(vector_keyword): Likewise.
	(spu_categorize_keyword): New function.
	(spu_macro_to_expand): Likewise.
	(spu_cpu_cpp_builtins): Enable context-sensitive macros if not
	compiling an ISO C dialect.

2008-07-24  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/rs6000-c.c: Move GTY(()) markers to match
	conventional usage.

2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

	* configure: Regenerate.
	* configure.ac: Require texinfo 4.7.
	* doc/install.texi: Document texinfo 4.7 requirement.

2008-07-23  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
	rather than for DECL_SAVED_TREE.
	* ipa-prop.c: Include diagnostic.h.
	(ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
	thoroughly.
	(ipa_detect_param_modifications): Function rewritten from scratch.
	(ipa_compute_jump_functions): Changed accesses to modification flags.
	(ipa_free_node_params_substructures): Update flags destruction.
	(ipa_node_duplication_hook): Update flags duplication.
	(ipa_print_all_params_modified): Updated flag access.
	* ipa-prop.h (struct ipa_param_flags): New structure.
	(struct ipa_node_params): New field modification_analysis_done,
	modified_flags changed into param_flags.
	(ipa_is_ith_param_modified): Changed to use new flags.
	* Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.

	* ipa-prop.c (ipa_print_all_jump_functions): Moved here from
	ipa-cp.c and split into two functions.
	(ipa_print_node_jump_functions): New function.
	(compute_scalar_jump_functions): New function.
	(type_like_member_ptr_p): New function.
	(compute_pass_through_member_ptrs): New function.
	(fill_member_ptr_cst_jump_function): New function.
	(determine_cst_member_ptr): New function.
	(compute_cst_member_ptr_arguments): New function.
	(ipa_compute_jump_functions): Complete rewrite.
	* ipa-prop.h (enum jump_func_type): Make explicit that we depend
	on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
	(struct ipa_member_ptr_cst): New structure.
	(union jump_func_value): New field member_cst.
	* ipa-cp.c (ipcp_lat_is_insertable): New function.
	(ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
	jump function types.
	(ipcp_print_all_lattices): Slight fprintf rearrangement.
	(ipcp_print_all_structures): Call ipa_print_all_jump_functions
	instead of ipcp_print_all_jump_functions.
	(ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
	only for replacable scalars.

	* doc/invoke.texi (Optimize options): Add description of
	-findirect-inlining.
	* common.opt (flag_indirect_inlining): New flag.
	* opts.c (decode_options): Set flag_indirect_inlining when
	optimize >= 3.

	* ipa-inline.c: Include ipa-prop.h.
	(inline_indirect_intraprocedural_analysis): New function.
	(inline_generate_summary): Allocate parameter and argument info
	structures, call inline_indirect_intraprocedural_analysis on each
	node when doing indirect inlining and deallocate indirect inlining
	data structures in the end.
	* ipa-prop.c (ipa_create_param_decls_array): Return if already done.
	(free_all_ipa_structures_after_iinln): New function.
	(free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
	done.
	* Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.

	* cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
	(build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
	of computing the frequency separately.
	(rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
	of computing the frequency separately.
	* ipa-cp.c (ipcp_print_all_structures): Replace a call to
	ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
	* ipa-prop.c (ipa_get_member_ptr_load_param): New function.
	(ipa_get_stmt_member_ptr_load_param): New function.
	(ipa_is_ssa_with_stmt_def): New function.
	(ipa_note_param_call): New function.
	(ipa_analyze_call_uses): New function.
	(ipa_analyze_stmt_uses): New function.
	(ipa_analyze_params_uses): New function.
	(ipa_free_node_params_substructures): Also free the param_calls linked
	list.
	(ipa_node_duplication_hook): Also duplicate the param_calls
	linked list.
	(ipa_print_node_param_flags): New function.
	(ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
	(ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
	* ipa-prop.h (struct ipa_param_flags): New field called.
	(struct ipa_param_call_note): New structure.
	(struct ipa_node_params): New fields param_calls and
	uses_analysis_done.
	(ipa_is_ith_param_called): New function.
	* ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
	ipa_analyze_params_uses and dump parameter flags.

	* ipa-inline.c (cgraph_decide_recursive_inlining): Call
	ipa_propagate_indirect_call_infos if performing indirect inlining,
	pass a new parameter new_edges to it.
	(add_new_edges_to_heap): New fucntion.
	(cgraph_decide_inlining_of_small_functions): New vector
	new_indirect_edges for newly found indirect edges , call
	ipa_propagate_indirect_call_infos after inlining.
	(cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
	inlining if performing indirect inlining.  Call
	free_all_ipa_structures_after_iinln when doing so too.
	(inline_generate_summary): Do not call
	free_all_ipa_structures_after_iinln here.
	* ipa-prop.c (update_jump_functions_after_inlining): New function.
	(print_edge_addition_message): New function.
	(update_call_notes_after_inlining): New function.
	(propagate_info_to_inlined_callees): New function.
	(ipa_propagate_indirect_call_infos): New function.
	* ipa-prop.h: Include cgraph.h
	(struct ipa_param_call_note): Fields reordered, new field processed.
	* cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
	flag indirect_call.
	* cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
	rediscovered call statements.
	* cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
	(dump_cgraph_node): Dump also the indirect_call flag.
	(cgraph_clone_edge): Copy also the indirect_call flag.
	* tree-inline.c (copy_bb): Do not check for fndecls from call
	expressions, check for edge availability when moving clones.
	(get_indirect_callee_fndecl): New function.
	(expand_call_inline): If callee declaration is not apprent from
	the statement, try calling get_indirect_callee_fndecl.  Do not
	issue warnings or call sorry when not inlinings an indirect edge.
	* Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.

	* ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
	bit more frandly to matching.
	* testsuite/g++.dg/ipa/iinline-1.C: New testcase.
	* testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
	* testsuite/gcc.dg/ipa/modif-1.c: New testcase.

2008-07-23  Michael Meissner  <gnu@the-meissners.org>

	PR 36907
	* opth-gen.awk: Suppress function specific features when building
	target libraries.
	* optc-gen.awk: Ditto.

2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 35058
	* diagnostic.c (pedwarn): Add opt parameter.
	(pedwarn0): New.
	* c-tree.h (pedwarn_init): Add opt parameter.
	(pedwarn_c90): Likewise.
	(pedwarn_c99): Likewise.
	* c-errors.c (pedwarn_c99): Likewise.
	(pedwarn_c90): Likewise.
	* toplev.h (pedwarn): Update declaration.
	(pedwarn0): Declare.
	* c-lex.c: All calls to pedwarn changed.
	* builtins.c: All calls to pedwarn changed.
	* toplev.c: All calls to pedwarn changed.
	* c-decl.c: All calls to pedwarn changed.
	* c-typeck.c: All calls to pedwarn changed.
	* c-common.c: All calls to pedwarn changed.
	* c-parser.c: All calls to pedwarn changed.

2008-07-23  Michael Meissner  <gnu@the-meissners.org>
	    Karthik Kumar  <karthikkumar@gmail.com>

	* attribs.c (file scope): Include c-common.h.
	(decl_attributes): Add support for #pragma GCC optimize and
	#pragma GCC option.

	* targhooks.c (default_can_inline_p): New function that is the
	default for the TARGET_CAN_INLINE_P target hook.

	* targhooks.h (default_can_inline_p): Add declaration.

	* tree.c (cl_optimization_node): New static tree for building
	OPTIMIZATION_NODE tree.
	(cl_target_option_node): New static tree for building
	TARGET_OPTION_NODE tree.
	(cl_option_hash_table): New hash table for hashing
	OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
	(cl_option_hash_hash): New function to provide the hash value for
	OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
	(cl_option_hash_eq): New function to provide an equality test for
	OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
	(tree_code_size): Add support for OPTIMIZATION_NODE and
	TARGET_OPTION_NODE trees.
	(tree_code_structure): Add support for OPTIMIZATION_NODE and
	TARGET_OPTION_NODE trees.
	(build_optimization_node): Build a tree that has all of the
	current optimization options.
	(build_target_option_node): Build a tree that has the target
	options that might be changed on a per function basis.

	* tree.h (file scope): Include options.h.
	(DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
	(DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
	(TREE_OPTIMIZATION): Ditto.
	(TREE_TARGET_SPECIFIC): Ditto.
	(struct tree_function_decl): Add fields for remembering the
	current optimization options and target specific options.
	(struct tree_optimization_option): New tree variant that remembers
	the optimization options.
	(struct tree_target_option): New tree variant that remembers the
	target specific flags that might change for compiling a particular
	function.
	(union tree_node): Include tree_optimization_option and
	tree_target_option fields.
	(enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
	TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
	TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
	TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
	TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
	optimization and target options.
	(optimization_default_node): New macro to refer to global_trees
	field.
	(optimization_current_node): Ditto.
	(optimization_cold_node): Ditto.
	(optimization_hot_node): Ditto.
	(target_option_default_node): Ditto.
	(target_option_current_node): Ditto.
	(current_option_pragma): Ditto.
	(current_optimize_pragma): Ditto.

	* target.h (struct gcc_target): Add valid_option_attribute_p,
	target_option_save, target_option_restore, target_option_print,
	target_option_pragma_parse, and can_inline_p hooks.

	* toplev.h (parse_optimize_options): Add declaration.
	(fast_math_flags_struct_set_p): Ditto.

	* c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
	adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
	optimize is used.

	* ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
	tree_can_inline_p hook to see if one function can inline another.
	(cgraph_decide_inlining): Ditto.
	(cgraph_decide_inlining_incrementally): Ditto.

	* opts.c (decode_options): Add support for running multiple times
	to allow functions with different target or optimization options
	than was specified on the command line.
	(fast_math_flags_struct_set_p): New function that is similar to
	fast_math_flags_set_p, except it uses the values in the
	cl_optimization structure instead of global variables.

	* optc-gen.awk: Add support for TargetSave to allow a back end to
	declare new fields that need to be saved when using function
	specific options.  Include flags.h and target.h in the options.c
	source.  Add support for Save to indicate which options can be set
	for individual functions.  Generate cl_optimize_save,
	cl_optimize_restore, cl_optimize_print, cl_target_option_save,
	cl_target_option_restore, cl_target_option_print functions to
	allow functions to use different optimization or target options.

	* opt-functions.awk (var_type_struct): Return the type used for
	storing the field in a structure.

	* opth-gen.awk: Add support for TargetSave to allow a back end to
	declare new fields that need to be saved when using function
	specific options.  Add support for Save to indicate which options
	can be set for individual functions.  Only generate one extern for
	Mask fields.  Generate cl_optimization and cl_target_option
	structures to remember optimization and target options.

	* treestruct.def (TS_OPTIMIZATION): Add support for garbage
	collecting new tree nodes.
	(TS_TARGET_OPTION): Ditto.

	* c-decl.c (merge_decls): Merge function specific target and
	optimization options.

	* function.c (invoke_set_current_function_hook): If the function
	uses different optimization options, change the global variables
	to reflect this.

	* coretypes.h (struct cl_optimization): Add forward reference.
	(struct cl_target_option): Ditto.

	* c-pragma.c (option_stack): New static vector to remember the
	current #pragma GCC option stack.
	(handle_pragma_option): New function to support #pragma GCC option
	to change target options.
	(optimize_stack): New static vector to remember the current
	#pragma GCC optimize stack.
	(handle_pragma_optimize): New function to support #pragma GCC
	optimize to change optimization options.
	(init_pragma): Add support for #pragma GCC optimize and #pragma
	GCC option.

	* tree.def (OPTIMIZATION_NODE): New tree code for remembering
	optimization options.
	(TARGET_OPTION_NODE): New tree code for remembering certain target
	options.

	* print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
	TARGET_OPTION_NODE trees.

	* common.opt (-O): Add Optimization flag.
	(-Os): Ditto.
	(-fmath-errno): Ditto.
	(-falign-functions): Add UInteger flag to make sure flag gets full
	int in cl_optimization structure.
	(-falign-jumps): Ditto.
	(-falign-labels): Ditto.
	(-falign-loops): Ditto.
	(-fsched-stalled-insns): Ditto.
	(-fsched-stalled-insns-dep): Ditto.

	* target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
	definition.
	(TARGET_OPTION_SAVE): Ditto.
	(TARGET_OPTION_RESTORE): Ditto.
	(TARGET_OPTION_PRINT): Ditto.
	(TARGET_OPTION_PRAGMA_PARSE): Ditto.
	(TARGET_CAN_INLINE_P): Ditto.
	(TARGET_INITIALIZER): Add new hooks.

	* tree-inline.c (tree_can_inline_p): New function to determine
	whether one function can inline another.  Check if the functions
	use compatible optimization options, and also call the backend
	can_inline_p hook.

	* tree-inline.h (tree_can_inline_p): Add declaration.

	* c-common.c (c_common_attribute): Add support for option and
	optimize attributes.
	(handle_option_attribute): Add support for the option attribute to
	allow the user to specify different target options for compiling a
	specific function.
	(handle_optimize_attribute): Add support for the optimize
	attribute to allow the user to specify different optimization
	options for compiling a specific function.
	(handle_hot_attribute): Turn on -O3 optimization for this one
	function if it isn't the default optimization level.
	(handle_cold_attribute): Turn on -Os optimization for this one
	function if it insn't the default optimization.
	(const_char_p): New const char * typedef.
	(optimize_args): New static vector to remember the optimization
	arguments.
	(parse_optimize_options): New function to set up the optimization
	arguments from either the optimize attribute or #pragma GCC optimize.

	* c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
	(builtin_define_std): Ditto.

	* config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
	Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
	(x86_64-*-*): Ditto.

	* Makefile.in (TREE_H): Add options.h.
	(options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.

	* doc/extend.texi (option attribute): Document new attribute.
	(optimize attribute): Ditto.
	(hot attribute): Document hot attribute sets -O3.
	(cold attribute): Document cold attribute sets -Os.
	(#pragma GCC option): Document new pragma.
	(#pragma GCC optimize): Ditto.

	* doc/options.texi (TargetSave): Document TargetSave syntax.
	(UInteger): Document UInteger must be used for certain flags.
	(Save): Document Save option to create target specific options
	that can be saved/restored on a function specific context.

	* doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
	(DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.

	* doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
	(TARGET_OPTION_SAVE): Ditto.
	(TARGET_OPTION_RESTORE): Ditto.
	(TARGET_OPTION_PRINT): Ditto.
	(TARGET_OPTION_PRAGMA_PARSE): Ditto.
	(TARGET_CAN_INLINE_P): Ditto.

	* doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
	-mfpmath=sse,387.
	(-mfpmath=both): Ditto.

2008-07-23  Michael Meissner  <gnu@the-meissners.org>
	    Karthik Kumar  <karthikkumar@gmail.com>

	* config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
	(TARGET_POPCNT): Ditto.
	(TARGET_SAHF): Ditto.
	(TARGET_AES): Ditto.
	(TARGET_PCLMUL): Ditto.
	(TARGET_CMPXCHG16B): Ditto.
	(TARGET_RECIP): Move switch into target_flags.
	(TARGET_FUSED_MADD): Ditto.
	(ix86_arch_features): Make an unsigned char type.
	(ix86_tune_features): Ditto.
	(OVERRIDE_OPTIONS): Add bool argument to override_options call.
	(TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
	(REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.

	* config/i386/i386.opt (arch): New TargetSave field to define
	fields that need to be saved for function specific option support.
	(tune): Ditto.
	(fpmath): Ditto.
	(branch_cost): Ditto.
	(ix86_isa_flags_explicit): Ditto.
	(tune_defaulted): Ditto.
	(arch_specified): Ditto.
	(-m128-long-double): Add Save flag to save option for target
	specific option support.
	(-m80387): Ditto.
	(-maccumulate-outgoing-args): Ditto.
	(-malign-double): Ditto.
	(-malign-stringops): Ditto.
	(-mfancy-math-387): Ditto.
	(-mhard-float): Ditto.
	(-mieee-fp): Ditto.
	(-minline-all-stringops): Ditto.
	(-minline-stringops-dynamically): Ditto.
	(-mms-bitfields): Ditto.
	(-mno-align-stringops): Ditto.
	(-mno-fancy-math-387): Ditto.
	(-mno-push-args): Ditto.
	(-mno-red-zone): Ditto.
	(-mpush-args): Ditto.
	(-mred-zone): Ditto.
	(-mrtd): Ditto.
	(-msseregparm): Ditto.
	(-mstack-arg-probe): Ditto.
	(-m32): Ditto.
	(-m64): Ditto.
	(-mmmx): Ditto.
	(-m3dnow): Ditto.
	(-m3dnowa): Ditto.
	(-msse): Ditto.
	(-msse2): Ditto.
	(-msse3): Ditto.
	(-msse4.1): Ditto.
	(-msse4.2): Ditto.
	(-msse4): Ditto.
	(-mno-sse4): Ditto.
	(-msse4a): Ditto.
	(-msse5): Ditto.
	(-mrecip): Move flag into target_flags.
	(-mcld): Ditto.
	(-mno-fused-madd): Ditto.
	(-mfused-madd): Ditto.
	(-mabm): Move flag into ix86_isa_flags.
	(-mcx16): Ditto.
	(-mpopcnt): Ditto.
	(-msahf): Ditto.
	(-maes): Ditto.
	(-mpclmul): Ditto.

	* config/i386/i386-c.c: New file for #pragma support.
	(ix86_target_macros_internal): New function to #define or #undef
	target macros based when the user uses the #pragma GCC option to
	change target options.
	(ix86_pragma_option_parse): New function to add #pragma GCC option
	support.
	(ix86_target_macros): Move defining the target macros here from
	TARGET_CPU_CPP_BUILTINS in i386.h.
	(ix86_register_pragmas): Register the #pragma GCC option hook.  If
	defined, initialize any subtarget #pragmas.

	* config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
	REGISTER_TARGET_PRAGMAS.

	* config/i386/t-i386: New file for x86 dependencies.
	(i386.o): Make dependencies mirror the include files used.
	(i386-c.o): New file, add dependencies.

	* config/i386/i386-protos.h (override_options): Add bool argument.
	(ix86_valid_option_attribute_tree): Add declaration.
	(ix86_target_macros): Ditto.
	(ix86_register_macros): Ditto.

	* config/i386/i386.c (ix86_tune_features): Move initialization of
	the target masks to initial_ix86_tune_features to allow functions
	to have different target options.  Make type unsigned char,
	instead of unsigned int.
	(initial_ix86_tune_features): New static vector to hold processor
	masks for the tune variables.
	(ix86_arch_features): Move initialization of the target masks to
	initial_ix86_arch_features to allow functions to have different
	target options.  Make type unsigned char, instead of unsigned int.
	(initial_ix86_arch_features): New static vector to hold processor
	masks for the arch variables.
	(enum ix86_function_specific_strings): New enum to describe the
	string options used for attribute((option(...))).
	(ix86_target_string): New function to return a string that
	describes the target options.
	(ix86_debug_options): New function to print the current options in
	the debugger.
	(ix86_function_specific_save): New function hook to save the
	function specific global variables in the cl_target_option structure.
	(ix86_function_specific_restore): New function hook to restore the
	function specific variables from the cl_target_option structure to
	the global variables.
	(ix86_function_specific_print): New function hook to print the
	target specific options in the cl_target_option structure.
	(ix86_valid_option_attribute_p): New function hook to validate
	attribute((option(...))) arguments.
	(ix86_valid_option_attribute_tree): New function that is common
	code between attribute((option(...))) and #pragma GCC option
	support that parses the options and returns a tree holding the options.
	(ix86_valid_option_attribute_inner_p): New helper function for
	ix86_valid_option_attribute_tree.
	(ix86_can_inline_p): New function hook to decide if one function
	can inline another on a target specific basis.
	(ix86_set_current_function); New function hook to switch target
	options if the user used attribute((option(...))) or #pragma GCC
	option.
	(ix86_tune_defaulted): Move to static file scope from
	override_options.
	(ix86_arch_specified): Ditto.
	(OPTION_MASK_ISA_AES_SET): New macro for moving switches into
	ix86_isa_flags.
	(OPTION_MASK_ISA_PCLMUL_SET): Ditto.
	(OPTION_MASK_ISA_ABM_SET): Ditto.
	(OPTION_MASK_ISA_POPCNT_SET): Ditto.
	(OPTION_MASK_ISA_CX16_SET): Ditto.
	(OPTION_MASK_ISA_SAHF_SET): Ditto.
	(OPTION_MASK_ISA_AES_UNSET): Ditto.
	(OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
	(OPTION_MASK_ISA_ABM_UNSET): Ditto.
	(OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
	(OPTION_MASK_ISA_CX16_UNSET): Ditto.
	(OPTION_MASK_ISA_SAHF_UNSET): Ditto.
	(struct ptt): Move to static file scope from override_options.
	(processor_target_table): Ditto.
	(cpu_names): Ditto.
	(ix86_handle_option): Add support for options that are now isa options.
	(override_options): Add support for declaring functions that
	support different target options than were specified on the
	command line.  Move struct ptt, processor_target_table, cpu_names,
	ix86_tune_defaulted, ix86_arch_specified to static file scope.
	Add bool argument.  Fix up error messages so the appropriate error
	is given for either command line or attribute.
	(ix86_previous_fndecl): New static to remember previous function
	declaration to see if we need to change target options.
	(ix86_builtins_isa): New array to record the ISA of each builtin
	function.
	(def_builtin): Always create the builtin function, even if the
	current ISA doesn't support it.
	(ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
	tests for those builtins.
	(ix86_init_builtins): Remove TARGET_MMX test for calling
	ix86_init_mmx_sse_builtins.
	(ix86_expand_builtin): If the current ISA doesn't support a given
	builtin, signal an error.
	(TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
	(TARGET_SET_CURRENT_FUNCTION): Ditto.
	(TARGET_OPTION_SAVE): Ditto.
	(TARGET_OPTION_RESTORE): Ditto.
	(TARGET_OPTION_PRINT): Ditto.
	(TARGET_CAN_INLINE_P): Ditto.

2008-07-22  Rafael Ávila de Espíndola  <espindola@google.com>

	* c-typeck.c (build_external_ref): Don't call assemble_external.
	* final.c (output_operand): Call assemble_external.

2008-07-21  DJ Delorie  <dj@redhat.com>

	* config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
	(TARGET_HARD_REGNO_SCRATCH_OK): Define.

2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.md ("div<mode>3"): Convert into expander, move
	original insn and splitter contents into ...
	("*div<mode>3_fast"): ... this new pattern.  Enable only if
	flag_unsafe_math_optimizations.  Add dummy scratch register.
	("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
	!flag_unsafe_math_optimizations.  Returns number with next
	highest magnitude if this is still less or equal to the true
	quotient in magnitude.

2008-07-21  Rafael Ávila de Espíndola  <espindola@google.com>

	* Makefile.in: Replace toplev.h with TOPLEV_H.
	* c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
	* c-lex.c (fe_file_change): Don't set in_system_header.
	* c-parser.c (c_token): Remove in_system_header.
	(c_lex_one_token): Don't set in_system_header.
	(c_parser_set_source_position_from_token): Don't set in_system_header.
	* diagnostic.c (diagnostic_report_diagnostic): Use location from
	diagnostic_info.
	(warning_at): New.
	* diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
	* flags.h (in_system_header): Remove.
	* function.c (saved_in_system_header): Remove.
	(push_cfun): Don't set in_system_header.
	(pop_cfun): Don't set in_system_header.
	(push_struct_function): Don't set in_system_header.
	* input.h (expanded_location): Add sysp.
	(in_system_header_at): New.
	(in_system_header): New.
	* toplev.c (in_system_header): Remove.
	* toplev.h: Include input.h
	(warning_at): New.
	* tree-cfg.c (execute_warn_function_return): Call warning_at.
	* tree-ssa.c (warn_uninit): Call warning_at.
	(warn_uninitialized_var): Update calls to warn_uninit.
	(warn_uninitialized_phi): Update calls to warn_uninit.
	* tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
	(expand_location): Initialize xloc.sysp.
	* tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
	(tree_decl_with_vis): Remove in_system_header_flag.

2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>

	PR target/36822
	* recog.c (asm_operand_ok): Change the order of the extra
	memory constraint checks.

2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR tree-opt/36879
	* tree-switch-conversion.c (build_one_array): Call
	varpool_mark_needed_node and varpool_finalize_decl
	instead of assemble_variable.

2008-07-19  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_add_new_function): Do early local passes.
	* tree-nrv.c (gate_pass_return_slot): New gate.
	(pass_nrv): Add the gate.
	* tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
	functions.
	(coalesce_ssa_name): Coalesce SSA names.
	* tree-ssa-live.c (remove_unused_locals): Be more conservative when
	not optimizing so unused user vars remains visible.
	* common.opt (flag_tree_ter): Always enable by default.
	* tree-ssa-ter.c: Include flags.h
	(is_replaceable_p): Check that locations match; when aliasing
	is missing be conservative about loads.
	* tree-optimize.c (gate_init_datastructures): Remove.
	(pass_init_datastructures): New.
	* passes.c: Reorder passes so we always go into SSA.

2008-07-19  Jan Hubicka  <jh@suse.cz>

	* doc/extend.texi (flatten attribute): Remove note about
	unit-at-a-time.
	* doc/invoke.texi (--combine): Likewise.
	(-finline-functions-called-once): Update levels when enabled.
	(-funit-at-a-time): Document new behaviour.
	(-ftoplevel-reorder): Document that it is enabled -O0 and imply
	-fno-section-anchors when disabled explicitly.
	(inline params): They are not ignored now.
	(precompiled headers): Remove unit-at-a-time as being incompatible.
	* opts.c (decode_options): Handle unit-at-a-time as alias;
	imply -fno-section-anchors when toplevel reorder is disabled
	explicitly.
	* common.opt (ftoplevel-reorder): Set default value to 2.
	(funit-at-a-time): Set default value to 1.
	* config/rs6000/rs6000.c (optimization_options): Set section anchors
	to 2.

2008-07-19  Jan Hubicka  <jh@suse.cz>

	* builtins.c (expand_builtin_int_roundingfn,
	expand_builtin_int_roundingfn_2): Do not take subtarget argument;
	it is not useful.

2008-07-19  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/36864
	* tree-ssa-sccvn.h (get_constant_value_id): Declare.
	* tree-ssa-sccvn.c (get_constant_value_id): New function.
	* tree-ssa-pre.c (get_expr_value_id): For newly created
	constant value-ids make sure to add the expression to its
	expression-set.

2008-07-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/36877
	* omp-low.c (expand_omp_atomic_fetch_op): Make sure the
	return value of the builtin is ignored.

2008-07-19  Olivier Hainque  <hainque@adacore.com>

	* doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
	bits, a C conformant malloc implementation has to provide.
	* defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.

2008-07-19  Joseph Myers  <joseph@codesourcery.com>

	PR target/36780
	PR target/36827
	* reload.c (find_reloads_subreg_address): Only reload address if
	reloaded == 0, not for reloaded != 1.

	Revert:
	2008-07-16  Joseph Myers  <joseph@codesourcery.com>
	* config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
	(m32c_legitimate_address_p): Handle "++rii" addresses created by
	m32c_legitimize_reload_address.

	2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
	* config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
	(plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.

2008-07-19  Olivier Hainque  <hainque@adacore.com>

	* dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
	argument, saying whether nested array are to be collapsed
	into a single array type DIE with multiple subscripts.
	(gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
	issues, centralize the nested array types collapsing control and
	disable the transformation for Ada.

2008-07-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/36786
	* config/i386/i386.md (x86_64_shift_adj_1): Rename from
	x86_64_shift_adj.
	(x86_64_shift_adj_2): New expander.
	(x86_64_shift_adj_3): Ditto.
	* config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
	to split TImode operands.
	(ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
	(ix86_split_lshr): Ditto.

2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>

	* c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
	and __CHAR32_TYPE__.
	* c-typeck.c (digest_init): Support char16_t and char32_t.
	(set_nonincremental_init_from_string): Idem.

2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/36859
	* builtins.c (std_gimplify_va_arg_expr): Limit alignment to
	PREFERRED_STACK_BOUNDARY.
	* config/i386/i386.c (ix86_gimplify_va_arg): Likewise.

2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/36858
	* function.c (locate_and_pad_parm): Cap boundary earlier.

2008-07-17  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
	no-op for targets which don't use DLLs.

2008-07-17  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_print_all_lattices): New variable info, check
	that nodes are relevant by examining the node->analyzed flag.
	(ipcp_init_stage): Check which nodes are relevant, assert that the
	relevant ones are also required.
	(ipcp_propagate_stage): Check on the side arrays are properly
	allocated.
	(ipcp_print_all_jump_functions): Make sure not to touch any node
	that is not analyzed or an edge that does not have a corresponding
	entry in the on-the-side vectors.
	(ipcp_function_scale_print): Likewise.
	(ipcp_update_callgraph): Check that the node is relevant.
	(ipcp_insert_stage): Check that the node is relevant.  Check there is
	an info for every node and edge.
	* ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
	(ipa_print_all_tree_maps): Likewise and a new variable info.
	(ipa_print_all_params_modified): Likewise.
	* ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.

2008-07-17  Roman Zippel  <zippel@linux-m68k.org>

	PR target/25343
	* config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.

2008-07-17  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/36753
	* fwprop.c (use_killed_between): Don't shortcut
	single-definition global registers.

2008-07-16  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (varpool_empty_needed_queue): Declare.
	* cgraphunit.c (output_in_order): Mark all variables as needed;
	empty the queue.
	* varpool.c (varpool_assemble_node): Update debug queue.
	(varpool_assemble_pending_decls): Don't do it here.
	(varpool_empty_needed_queue):  New function.

2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* recog.c (peephole2_optimize): Fix formatting.

2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-pch.c (get_ident): Avoid C++ keywords.
	* combine-stack-adj.c (single_set_for_csa): Likewise.
	* final.c (asm_insn_count, final_scan_insn, alter_subreg,
	output_asm_insn): Likewise.
	* reload.c (push_secondary_reload, find_reusable_reload,
	push_reload, combine_reloads, find_reloads,
	debug_reload_to_stream): Likewise.
	* reload.h (struct reload): Likewise.
	* reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
	allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
	emit_output_reload_insns): Likewise.
	* targhooks.c (default_secondary_reload): Likewise.
	* varasm.c (section_entry_eq, object_block_entry_eq): Likewise.

2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* recog.c (validate_change_1, validate_change,
	validate_unshare_change, validate_replace_rtx_1, struct
	funny_match, constrain_operands, peephole2_optimize): Avoid C++
	keywords.
	* reload.c (push_secondary_reload, secondary_reload_class,
	scratch_reload_class, find_valid_class, find_reusable_reload,
	push_reload, find_dummy_reload, find_reloads_address_1,
	find_reloads_address_part, find_equiv_reg): Likewise.
	* reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
	choose_reload_regs): Likewise.
	* rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
	Likewise.
	* rtlhooks.c (gen_lowpart_if_possible): Likewise.
	* sched-ebb.c (add_deps_for_risky_insns): Likewise.
	* sched-rgn.c (concat_INSN_LIST): Likewise.
	* stor-layout.c (mode_for_size, mode_for_size_tree,
	smallest_mode_for_size): Likewise.

2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* cfg.c (dump_reg_info): Avoid C++ keywords.
	* dwarf2asm.c (dw2_force_const_mem,
	dw2_asm_output_encoded_addr_rtx): Likewise.
	* except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
	* expmed.c (expand_shift): Likewise.
	* global.c (find_reg): Likewise.
	* graph.c (draw_edge): Likewise.
	* local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
	* optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
	widen_clz, widen_bswap, expand_parity, expand_unop,
	emit_cmp_and_jump_insn_1): Likewise.
	* postreload.c (reload_cse_simplify_operands): Likewise.
	* ra.h (add_neighbor): Likewise.
	* reg-stack.c (remove_regno_note, change_stack): Likewise.
	* regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
	record_reg_classes, copy_cost, record_address_regs,
	invalid_mode_change_p): Likewise.
	* regrename.c (regrename_optimize, scan_rtx_reg,
	dump_def_use_chain, find_oldest_value_reg,
	replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.

2008-07-16  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (processor_target_table): Remove duplicate
	MASK_POWERPC64 for power4 in previous commit.

2008-07-16  Olivier Hainque  <hainque@adacore.com>

	* collect2.c (scan_prog_file, COFF version): Use CONST_CAST
	instead of bare conversion to cast const-ness away.

2008-07-16  Anatoly Sokolov  <aesok@post.ru>

	* config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
	XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
	* config/xtensa/xtensa.c (xtensa_function_value): New function.
	(TARGET_FUNCTION_VALUE): Define.

2008-07-16  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (processor_target_table): Add
	MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.

2008-07-16  Joseph Myers  <joseph@codesourcery.com>

	PR target/36827
	* config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
	(m32c_legitimate_address_p): Handle "++rii" addresses created by
	m32c_legitimize_reload_address.

2008-07-16  Rafael Ávila de Espíndola  <espindola@google.com>

	* c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
	DECL_IN_SYSTEM_HEADER in sync.

2008-07-15  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
	* tree-ssa-pre.c (pre_expr_eq): Ditto
	(get_constant_for_value_id): Take a type as an argument.
	(fully_constant_expression): Pass in type.
	(find_or_generate_expression): Short circuit constant case.
	(create_expression_by_pieces): Remove special casing of
	pointer_plus.
	(do_regular_insertion): Short circuit constant case.
	(do_partial_partial_insertion): Ditto.

2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/36782
	* config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.

2008-07-15  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/libgcc-xtensa.ver: New file.
	* config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.

2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* df-problems.c (df_set_note): Avoid C++ keywords.
	* df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
	* dse.c (record_store, remove_useless_values): Likewise.
	* emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
	gen_reg_rtx_offset, operand_subword, change_address_1,
	change_address, adjust_address_1, offset_address,
	widen_memory_access, emit_copy_of_insn_after): Likewise.
	* explow.c (round_push, allocate_dynamic_stack_space): Likewise.
	* fwprop.c (should_replace_address, propagate_rtx_1,
	propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
	Likewise.
	* gcse.c (cprop_jump, find_implicit_sets, bypass_block,
	gcse_emit_move_after, update_ld_motion_stores): Likewise.
	* lcm.c (compute_insert_delete, pre_edge_lcm,
	compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
	* lower-subreg.c (resolve_reg_notes): Likewise.
	* mode-switching.c (optimize_mode_switching): Likewise.

2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* bt-load.c (add_btr_def, migrate_btr_def,
	branch_target_load_optimize): Avoid C++ keywords.
	* caller-save.c (insert_restore, insert_save, insert_one_insn):
	Likewise.
	* combine.c (subst, simplify_set, make_extraction,
	make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
	* cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
	fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.

2008-07-15  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36369
	* c-common.c (strict_aliasing_warning): Do not warn for
	TYPE_REF_CAN_ALIAS_ALL pointers.
	(c_common_get_alias_set): may_alias types are not special.
	* tree.c (build_pointer_type_for_mode): Look up the may_alias
	attribute and set can_ref_all accordingly.
	(build_reference_type_for_mode): Likewise.
	* doc/extend.texi (may_alias): Clarify.

2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/36780
	* config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
	(plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.

2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR target/31568
	* config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
	gcc_assert, instead call output_operand_lossage.

2008-07-15  Kai Tietz  <kai.tietz@onevision.com>

	* builtins.c (std_canonical_va_list): Treat structure based
	va_list types.

2008-07-15  Ben Elliston  <bje@au.ibm.com>

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.

2008-07-14  Rafael Ávila de Espíndola  <espindola@google.com>

	* c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
	is set.

2008-07-14  Jan Hubicka  <jh@suse.cz>

	* i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
	* sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
	fix predicates and constraints.
	* i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
	* i386-protos.h (ix86_sse5_valid_op_p): Update declaration.

2008-07-14  Doug Kwan  <dougkwan@google.com>

	* config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
	additional option file arm/eabi.opt.
	* config/arm/eabi.h (File): New configuration file for EABI targets.
	* config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
	SUBSUBTARGET_EXTRA_SPECS.
	(SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
	* config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
	from STARTFILE_SPEC so that it can be referenced in an override.
	(STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
	(UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
	can be referenced in an override.
	(ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
	* config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
	so that it can be referenced in an override.
	(LINK_SPEC): Use BPABI_LINK_SPEC.
	* config/arm/eabi.opt (File): New.

2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in (TARGET_DEF_H): Add targhooks.h.
	(FIXED_VALUE_H): New variable.
	(RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
	input.h, fixed-value.h.
	(TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
	(BASIC_BLOCK_H): Use $(BITMAP_H).
	(FUNCTION_H): Add varray.h.
	(IPA_REFERENCE_H): Use $(BITMAP_H).
	(CGRAPH_H): Add $(BASIC_BLOCK_H).
	(DF_H): Use $(BITMAP_H).
	(GGC_H): Add statistics.h.
	(INSN_ADDR_H): New.
	(INSN_ATTR_H): Use it.
	(SYSTEM_H): Add safe-ctype.h, filenames.h.
	(INPUT_H): New.
	(SYMTAB_H): Add $(OBSTACK_H).
	(CPP_INTERNAL_H): New.
	(TREE_DUMP_H): Add tree-pass.h.
	(TREE_FLOW_H): Use $(BITMAP_H)
	(PRETTY_PRINT_H): Use $(INPUT_H).
	(EBITMAP_H): Rename from typo-ed EBIMAP_H.
	(GSTAB_H): New.
	(BITMAP_H): New.
	(many object files): Fix lots of header dependencies throughout.

2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in (write_entries_to_file, write_entries_to_file_split):
	New macros.
	(s-gtyp-input): Use them to write tmp-gi.list.
	(echo_to_gi.list): Remove.

2008-07-14  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (pre_info): Remove.
	(switch_to_PRE_table): Likewise.
	(free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
	(set_hashtable_value_ids): Do not create value-ids for the
	optimistic tables.
	(run_scc_vn): Remove double test.  Remove bogus special-case
	in value-number printing.
	* tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
	* tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
	SSA_NAME_VALUE.
	* tree-flow-inline.h (get_value_handle): Remove.
	* tree-flow.h (get_value_handle): Remove.

2008-07-14  Martin Jambor  <mjambor@suse.cz>

	* tree-switch-conversion.c (gen_inbound_check): Make sure the type
	in which we generate arithmetics is not a subrange.

2008-07-14  Martin Jambor  <mjambor@suse.cz>

	* Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.

2008-07-14  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.

2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>

	PR target/36745
	* config/s390/s390.c (s390_secondary_reload): Add a secondary
	reload for symbol refs moved to r0 with -fPIC.
	(legitimize_pic_address): Use the target register as temporary
	reg if possible.
	(emit_symbolic_move): Adjust comment.
	* config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
	New expanders.

2008-07-14  Ben Elliston  <bje@au.ibm.com>

	* c-common.h (C_CPP_HASHNODE): New macro.
	* coretypes.h (struct cpp_token): Forward declare.
	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
	the context-sensitive keyword method.
	* config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
	__pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
	expand_bool_pixel): New.
	(altivec_categorize_keyword): New function.
	(init_vector_keywords): New function.
	(rs6000_macro_to_expand): Likewise.
	(rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
	compiling an ISO C dialect.

2008-07-13  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
	(create_expression_by_pieces): Fix typo.
	(do_regular_insertion): Use debug counter here too.

2008-07-14  Hans-Peter Nilsson  <hp@axis.com>

	PR target/35492.
	* config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
	CONST_OK_FOR_LETTER_P.  All port-local users changed.
	(CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
	implement Kp matching power-of-two.
	(CONSTRAINT_LEN): Define to match.
	* config/cris/cris.md: Replace all use of constraint K with Kc.
	("*btst*): Use Kp for operand 0 of last alternative.

2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR testsuite/36440
	* tree-call-cdce.c (check_target_format): Accept MIPS single, double
	and quad formats.

2008-07-13  Jan Hubicka  <jh@suse.cz>

	* tree.c (decl_assembler_name_equal): Expect assembler name of decl
	to be mangled too.

2008-07-13  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36811
	* langhooks.c (lhd_print_error_function): Deal with recursive
	BLOCK trees.

2008-07-12  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (assembler_name_hash): New static var.
	(hash_node_by_assembler_name, eq_assembler_name): New.
	(cgraph_node_for_asm): Use hashtable.
	(cgraph_remove_node): Maintain hashtable.
	(change_decl_assembler_name): Sanity check that names are not changing
	after aliasing was processed.
	* cgraph.h (varpoon_node): Add next GGC marker.
	* tree.c (decl_assembler_name_equal): Constify.
	(decl_assembler_name_hash): New.
	* tree.h (decl_assembler_name_equal): Constify.
	(decl_assembler_name_hash): Update.

2008-07-12  David Daney  <ddaney@avtrex.com>

	* config/mips/driver-native.c (host_detect_local_cpu): Handle
	sb1 and r5000 cpus.

2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/md.texi: Document the MIPS "v" constraint.
	* config/mips/mips.h (reg_class): Revert last change.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	* config/mips/mips.c (mips_regno_to_class): Likewise.
	* config/mips/constraints.md (v): Likewise, but add documentation.
	Add a comment to say that this constraint should not be used in
	gcc code.

2008-07-11  DJ Delorie  <dj@redhat.com>

	* config/h8300/h8300.md (length): Fix branch offset limit.

2008-07-11  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
	* config/avr/avr.c (avr_peep2_scratch_safe): Remove.
	(avr_hard_regno_scratch_ok): New function.
	(TARGET_HARD_REGNO_SCRATCH_OK): Define.
	* config/avr/avr.md (all peepholes that request a scratch register):
	Remove avr_peep2_scratch_safe use.

2008-07-11  Tom Tromey  <tromey@redhat.com>
	    Ian Lance Taylor  <iant@google.com>

	* c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
	(struct c_common_resword): Define.
	(D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
	(D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
	(c_common_reswords, num_c_common_reswords): Declare.
	* c-common.c (c_common_reswords): New global const array.
	(num_c_common_reswords): New const int.
	* c-parser.c (struct resword, reswords): Don't define.
	(D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
	(c_parse_init): Clarify mask code.  Use c_common_reswords rather
	than reswords.  If warning about C++ keywords, give them a special
	RID code.
	(c_lex_one_token): Warn about C++ keywords.  Call
	objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
	(c_parser_external_declaration): Look for RID_xxx rather than
	RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
	(c_parser_statement_after_labels): Likewise.
	(c_parser_objc_class_instance_variables): Likewise.
	(c_parser_objc_class_declaration): Likewise.
	(c_parser_objc_try_catch_statement): Likewise.
	* c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
	(declspecs_add_type): Likewise.

2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>

	* ggc-page.c (alloc_page):
	Substituting xmalloc, xcalloc with
	XNEWVEC and XCNEWVAR macros which add the
	needed casts.

2008-07-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36765
	* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
	aliases from HEAP vars to SMTs.

2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
	* configure.ac (loose_warn): Move -Wc++-compat from here...
	(strict_warn): ...to here.
	* configure: Regenerate.

2008-07-10  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
	i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
	m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
	rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
	excluding more specific h8300-*-* and sh-*-* targets.

2008-07-10  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
	(eliminate): Ditto.
	(execute_pre): Call loop_optimizer_finalize in early exit.

2008-07-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/36790
	* omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
	uids in the bitmap, not just VAR_DECL uids.

	PR rtl-optimization/36419
	* combine-stack-adj.c (adjust_frame_related_expr): New function.
	(combine_stack_adjustments_for_block): Call it if needed.  Delete
	correct insn.
	* dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
	DW_CFA_GNU_args_size if CSA pass merged some adjustments into
	prologue sp adjustment.

2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>

	PR other/28322
	* opts.c (print_ignored_options): Report postponed diagnostics for
	unknown -Wno-* options as warnings, not errors.
	(postpone_unknown_option_error): Renamed to...
	(postpone_unknown_option_warning): ... this.

2008-07-09  Doug Kwan  <dougkwan@google.com>

	Revert:
	2008-07-08  Doug Kwan  <dougkwan@google.com>

	* config/arm/arm.opt (mandroid): New option.
	* config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
	(LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
	(CC1_SPEC): Same.
	(CC1PLUS_SPEC): Same.
	(LIB_SPEC): Same.
	(STARTFILE_SPEC): Same.
	(ENDFILE_SPEC): Same.
	(TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
	used.

2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/35802
	* config/mips/mips.h (reg_class): Remove V1_REG.
	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
	* config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
	instead of V1_REGS.
	(mips_get_tp): New function.
	(mips_legitimize_tls_address): Use it.
	* config/mips/constraints.md (v): Delete.
	* config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
	(tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
	After reload, split into a move and ...
	(*tls_get_tp_<mode>_split): ...this new instruction.

2008-07-09  David Daney  <ddaney@avtrex.com>

	* config/mips/driver-native.c: Include coretypes.h and tm.h.

2008-07-09  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
	(push_gimplify_context): Don't allocate temp_htab nor c itself here.
	Add c argument.
	(pop_gimplify_context): Check c->temp_htab instead of optimize whether
	htab_delete should be called.  Don't free c.
	(lookup_tmp_var): Create temp_htab lazily.
	(gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
	gimplify_body, force_gimple_operand): Adjust push_gimplify_context
	callers.
	* omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
	lower_omp_ordered, lower_omp_critical, lower_omp_for,
	create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
	* tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
	* tree-sra.c (generate_element_init): Likewise.
	* tree-mudflap.c (execute_mudflap_function_ops,
	execute_mudflap_function_decls): Likewise.
	* tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
	* tree-gimple.h (struct gimplify_ctx): New type.
	(push_gimplify_context): Adjust prototype.

2008-07-09  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (phi_translate_1): Update placement of
	add_to_value calls.

2008-07-09  Anatoly Sokolov  <aesok@post.ru>

	* target.h (struct gcc_target): Add hard_regno_scratch_ok field.
	* target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
	(TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
	* targhooks.c (default_hard_regno_scratch_ok): New function.
	* targhooks.h (default_hard_regno_scratch_ok): Declare function.
	* doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
	* recog.c:  Include "target.h".
	(peep2_find_free_register): Add check for global regs. Add target
	specific check.
	* Makefile.in (recog.o): Depend on target.h.

2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_canonical_va_list_type): New.
	(TARGET_CANONICAL_VA_LIST_TYPE): Define.

2008-07-09  Raksit Ashok  <raksit@google.com>

	* doc/invoke.texi (Option Summary): Mention new option
	-Wdisallowed-function-list=...
	(Warning Options): Document -Wdisallowed-function-list=...
	* common.opt (Wdisallowed-function-list=): New flag.
	* flags.h (warn_disallowed_functions): External definition of new
	boolean warning flag.
	(warn_if_disallowed_function_p): Declare new function.
	* opts.c (warning_disallowed_functions): New static variable.
	(warn_disallowed_functions): New boolean warning flag.
	(warn_if_disallowed_function_p): New function.
	(add_comma_separated_to_vector): Rename
	add_instrument_functions_exclude_list to this.
	(common_handle_option): Handle new option. Rename calls to
	add_instrument_functions_exclude_list into calls to
	add_comma_separated_to_vector.
	* c-parser.c (c_parser_postfix_expression_after_primary): New warning
	based on flag warn_disallowed_functions.

2008-07-09  Christian Bruel  <christian.bruel@st.com>

	* final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
	 instead of get_attr_length.

2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
	keywords.
	* genemit.c (gen_insn): Likewise.
	* gengtype.c (note_def_vec): Likewise.
	* gengtype.h (note_def_vec): Likewise.
	* genoutput.c (struct data, output_insn_data, process_template,
	gen_expand, gen_split, note_constraint): Likewise.
	* genrecog.c (new_decision, add_to_sequence, factor_tests,
	make_insn_sequence): Likewise.
	* gensupport.c (record_insn_name): Likewise.

2008-07-08  Doug Kwan  <dougkwan@google.com>

	* config/arm/arm.opt (mandroid): New option.
	* config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
	(LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
	(CC1_SPEC): Same.
	(CC1PLUS_SPEC): Same.
	(LIB_SPEC): Same.
	(STARTFILE_SPEC): Same.
	(ENDFILE_SPEC): Same.
	(TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
	used.

2008-07-08  Raksit Ashok  <raksit@google.com>

	* expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
	(set_storage_via_setmem): Fix expected_align parameter.
	* doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
	missing from the list.
	* doc/md.texi (movmem): Explicitly state that expected alignment is
	to be expressed in bytes.
	(setmem): Explicitly state that expected alignment is to be expressed
	in bytes.

2008-07-08  Joseph Myers  <joseph@codesourcery.com>

	* reload.c (find_reloads_subreg_address): Do not require validity
	of address in original mode before reloading address.

2008-07-07  Tianwei Sheng  <tianweis@google.com>

	* df-core.c (df_remove_problem): Adjust the access to avoid out of
	bounds array access.

2008-07-08  Jakub Jelinek  <jakub@redhat.com>

	* tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.

2008-07-05  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/23455
	Fix PR tree-optimization/35286
	Fix PR tree-optimization/35287
	* Makefile.in (OBJS-common): Remove tree-vn.o.
	(tree-vn.o): Remove.
	* dbgcnt.def: Add treepre_insert debug counter.
	* gcc/tree-flow.h (add_to_value): Updated for other changes.
	(debug_value_expressions): Ditto.
	(print_value_expressions): Ditto.
	* tree-pretty-print.c (dump_generic_node): Updated for
	VALUE_HANDLE removal.
	* tree-ssa-dom.c (record_equality): Ditto.
	(cprop_operand): Ditto.
	(lookup_avail_expr): Ditto.
	* tree-ssa-threadedge.c
	(record_temporary_equivalences_from_stmts_at_dest): Ditto.
	(simplify_control_stmt_condition): Ditto.
	* tree.c (tree_code_size): Ditto.
	(tree_node_structure): Ditto.
	(iterative_hash_expr): Ditto.
	* tree.def: Ditto.
	* tree.h (VALUE_HANDLE_ID): Ditto.
	(VALUE_HANDLE_EXPR_SET): Ditto.
	(struct tree_value_handle): Ditto.
	(union tree_node): Ditto.
	* treestruct.def: Ditto.
	* tree-vn.c: Removed.
	* tree-ssa-pre.c: Rewritten entirely.
	* tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
	(constant_value_ids): Ditto.
	(vn_nary_op_t): Moved to header.
	(vn_phi_t): Ditto.
	(vn_reference_op_t): Ditto
	(vn_reference_t): Ditto.
	(next_value_id): New variable.
	(VN_INFO): Add an assert.
	(vn_constant_eq): New function.
	(vn_constant_hash): Ditto.
	(get_or_alloc_constant_value_id): Ditto.
	(value_id_constant_p): Ditto.
	(vn_reference_compute_hash): De-staticify.
	(copy_reference_ops_from_ref): Don't use get_callee_fndecl.
	Disable some code with a FIXME.  Remove VALUE_HANDLE use.
	(valueize_refs): Update opcode if it changes from ssa name to constant.
	(vn_reference_lookup_1): Add new argument.
	(vn_reference_lookup):  Ditto.
	(vn_reference_lookup_pieces): New function.
	(vn_reference_insert): Add return type. Modify to deal with value ids.
	(vn_reference_insert_pieces):  New function.
	(vn_nary_op_compute_hash): De-staticify.
	(vn_nary_op_eq): Ditto.
	(vn_nary_op_lookup_pieces): New function.
	(vn_nary_op_lookup): Add new argument.
	(vn_nary_op_insert_pieces): New function.
	(vn_nary_op_insert): Add return type. Modify to deal with value ids.
	(vn_phi_insert): Ditto.
	(visit_unary_op): Update for callee changes.
	(visit_binary_op): Ditto.
	(visit_reference_op_load): Ditto.
	(visit_reference_op_store): Ditto.
	(init_scc_vn): Init next_value_id, constant_to_value_id and
	constant_value_ids.
	(free_scc_vn): Free them.
	(set_hashtable_value_ids): New function.
	(run_scc_vn): Use it.
	(get_max_value_id): New function.
	(get_next_value_id): Ditto.
	(expressions_equal_p): Moved from tree-vn.c
	(sort_vuses): Ditto.
	(sort_vuses_heap): Ditto.
	* tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
	above).
	* tree.c (iterative_hash_hashval_t): Made non-static
	* tree.h (iterative_hash_hashval_t): Declare it.

2008-07-08  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
	instead of ipa_create_node_params.
	(ipcp_driver): Allocate infos with ipa_check_create_node_params and
	ipa_check_create_edge_args, free them with
	free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.

	* ipa-prop.c: Include flags.h and tree-inline.h.
	(ipa_node_params_vector): New variable.
	(ipa_edge_args_vector): New variable.
	(edge_removal_hook_holder): New variable.
	(node_removal_hook_holder): New variable.
	(edge_duplication_hook_holder): New variable.
	(node_duplication_hook_holder): New variable.
	(ipa_detect_param_modifications): Check for presence of modified flags.
	(ipa_compute_jump_functions): Check for presence of jump functions.
	(ipa_free_edge_args_substructures): New function.
	(ipa_create_node_params): Removed.
	(ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
	(ipa_free_node_params_substructures): New function.
	(ipa_free_all_node_params): Changed to deallocate the on-the-side
	vector.
	(ipa_edge_removal_hook): New function.
	(ipa_node_removal_hook): New function.
	(duplicate_array): New function.
	(ipa_edge_duplication_hook): New function.
	(ipa_node_duplication_hook): New function.
	(ipa_register_cgraph_hooks): New function.
	(ipa_unregister_cgraph_hooks): New function.
	(free_all_ipa_structures_after_ipa_cp): New function.

	* ipa-prop.h: Include vec.h.
	(ipa_node_params_t): New typedef with vector types for it.
	(ipa_edge_args_t):  New typedef with vector types for it.
	(IPA_NODE_REF): Changed to access an on-the-side vector.
	(IPA_EDGE_REF): Changed to access an on-the-side vector.
	(ipa_check_create_node_params): New function.
	(ipa_check_create_edge_args): New function.

	* Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
	all users.

2008-07-07  Tom Tromey  <tromey@redhat.com>

	* configure, config.in: Rebuilt.
	* configure.ac: Don't check for scandir or alphasort.

2008-07-07  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.c (arm_init_neon_builtins): Register built-in
	types immediately after creating them.

2008-07-07  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.

2008-07-07  Fernando Pereira  <fernando@cs.ucla.edu>

	* tree-ssa-structalias.c (compute_points_to_sets): Add call to
	dump_constraint_graph.
	(dump_constraint_edge): New function.
	(dump_constraint_graph): New function.
	(debug_constraint_graph): New function.
	(dump_constraint): Removed useless comparison.
	* tree-ssa-structalias.h (dump_constraint_edge): Declare.
	(dump_constraint_graph): Declare.
	(debug_constraint_graph): Declare.
	* tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.

2008-07-07  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.c (is_va_list_char_pointer): New.
	(ix86_va_start): Replace compare with ms_va_list_type_node
	by is_va_list_char_pointer.
	(ix86_gimplify_va_arg): Likewise.

2008-07-07  Martin Jambor  <mjambor@suse.cz>

	* cgraph.c (cgraph_edge_max_uid): New variable.
	(struct cgraph_edge_hook_list): New type.
	(struct cgraph_node_hook_list): New type.
	(struct cgraph_2edge_hook_list): New type.
	(struct cgraph_2node_hook_list): New type.
	(first_cgraph_edge_removal_hook): New variable.
	(first_cgraph_node_removal_hook): New variable.
	(first_cgraph_edge_duplicated_hook): New variable.
	(first_cgraph_node_duplicated_hook): New variable.
	(cgraph_add_edge_removal_hook): New function.
	(cgraph_remove_edge_removal_hook): New function.
	(cgraph_call_edge_removal_hooks):  New function.
	(cgraph_add_node_removal_hook):  New function.
	(cgraph_remove_node_removal_hook):  New function.
	(cgraph_call_node_removal_hooks):  New function.
	(cgraph_add_edge_duplication_hook):  New function.
	(cgraph_remove_edge_duplication_hook):  New function.
	(cgraph_call_edge_duplication_hooks):  New function.
	(cgraph_add_node_duplication_hook):  New function.
	(cgraph_remove_node_duplication_hook):  New function.
	(cgraph_call_node_duplication_hooks):  New function.
	(cgraph_create_edge): Assign to edge uid.
	(cgraph_remove_edge): Call edge removal hooks.
	(cgraph_node_remove_callees): Call edge removal hooks.
	(cgraph_node_remove_callers): Call edge removal hooks.
	(cgraph_remove_node): Call node removal hooks.
	(cgraph_clone_edge): Call edge duplication hooks.
	(cgraph_clone_node): Call node duplication hooks.

	* cgraph.h (cgraph_edge): New field uid.
	(cgraph_edge_hook): New type.
	(cgraph_node_hook): New type.
	(cgraph_2edge_hook): New type.
	(cgraph_2node_hook): New type.

2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>

	* config.in: Regenerate.

2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>

	* gcc.c (print_sysroot): New.
	(option_map, display_help, process_command): Handle the
	-print-sysroot option.
	(main): Print the sysroot if requested.
	* doc/invoke.texi (Debugging Options): Document -print-sysroot.

2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR target/34780
	* unwind-pe.h (size_of_encoded_value): add attribute unused.

2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>

	* function.c (assign_parm_remove_parallels): Check mode of entry_parm.
	(assign_parm_setup_block_p): Also check mode of entry_parm.

2008-07-07  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.h (set_used_smts): Remove.
	* tree-ssa-structalias.c (used_smts): Likewise.
	(set_used_smts): Likewise.
	* tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
	call to set_used_smts.

2008-07-07  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
	(new_var_info): Set it to false.
	(solution_set_add): Correctly handle pointers outside a var and
	inside a field.
	(type_safe): Treat variables with is_full_var properly.
	(do_sd_constraint): Likewise.
	(do_ds_constraint): Likewise.
	(process_constraint): Remove zeroing offset for !use_field_sensitive.
	(get_constraint_for_ptr_offset): New function.
	(get_constraint_for_component_ref): For addresses at least include
	the last field of the variable.  Handle is_full_vars properly.
	(get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
	(handle_ptr_arith): Remove.
	(find_func_aliases): Simplify assignment handling.
	(create_function_info_for): For parameter and result varinfos set
	is_full_var flag.
	(create_variable_info_for): Set is_full_var flag whenever we
	just created a single varinfo for a decl.
	(init_alias_vars): Initialize use_field_sensitive from
	max-fields-for-field-sensitive parameter.

2008-07-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36713
	* tree-flow-inline.h (is_call_used): New function.
	* tree-nrv.c (dest_safe_for_nrv_p): Use it.
	* tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
	* tree-outof-ssa.c (create_temp): Set call-used flag if required.

2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.

2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>

	* config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.

2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
	to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
	tmake_file.
	* config/m68k/t-linux: New.
	* doc/install.texi: Document m68k-*-linux is now multilibbed by
	default.

2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
	* config/m68k/m68k-devices.def: Remove multilibs that only differ
	by MAC/EMAC.

2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* gcc.c (execute): Fix -Wc++-compat warning.

2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/36720
	* config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
	constant for little endian.

2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
	mips_base_mips16 instead of TARGET_MIPS16.
	(mips_base_mips16): Declare.
	* config/mips/mips.c (mips_base_mips16): Make global.
	(was_mips16_p): Remove GTY marker.
	(was_mips16_pch_p): New variable.
	(mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
	(mips_override_options): Force to non-MIPS16 mode initially.
	Do not complain about MIPS16 PIC incompatibilities here.
	Only allow -mgpopt if -mexplicit-relocs is in force for
	non-MIPS16 code.

2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>

	* configure.ac: Check for caddr_t, define to char * if not defined.
	* configure: Regenerate.
	* ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
	(mmap_gt_pch_use_address): Likewise.
	* config/host-solaris.c (sol_gt_pch_use_address): Likewise.

2008-07-06  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (struct variable_info): Remove has_union.
	(new_var_info): Deal with it.
	(solution_set_add): Likewise.
	(bitpos_of_field): Make signed, fix.
	(struct fieldoff): Remove type and decl fields.  Make size field
	unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
	flags.
	(fieldoff_compare): Deal with it.
	(push_fields_onto_fieldstack): Remove has_union argument, glob
	adjacent non-pointer fields together.
	(create_function_info_for): Do not set has_union.
	(create_variable_info_for): Simplify.

2008-07-06  Kai Tietz  <kai.tietz@onevision.com>

	* config.gcc (extra_headers): Add cross-stdarg.h for target
	x86_64-*-* and i?86-*-*.
	* config/i386/cross-stdarg.h: New.
	* builtins.c (std_fn_abi_va_list): New.
	(std_canonical_va_list_type): New.
	(stabilize_va_list): Replace va_list_type_node use by
	mtarget.canonical_va_list_type.
	(gimplify_va_arg_expr): Likewise.
	(expand_builtin_va_copy): Replace va_list_type_node use by
	mtarget.fn_abi_va_list.
	* tree-sra.c (is_va_list_type): New helper.
	(decl_can_be_decomposed_p): Replace
	va_list_type_node use by is_va_list_type.
	* tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
	* tree-stdarg.c (execute_optimize_stdarg): Likewise.
	* c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
	* config/i386/i386-protos.h (ix86_get_valist_type): New.
	(ix86_enum_va_list): New.
	* config/i386/i386.c (sysv_va_list_type_node): New.
	(ms_va_list_type_node): New.
	(ix86_function_type_abi): Remove sorry.
	(ix86_build_builtin_va_list_abi): New.
	(ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
	for 64-bit targets.
	(ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
	(ix86_init_builtins_va_builtins_abi): New.
	(ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
	for 64-bit targets.
	(ix86_handle_abi_attribute): New.
	(attribute_spec): Add sysv_abi and ms_abi.
	(ix86_fn_abi_va_list): New.
	(ix86_canonical_va_list_type): New.
	(ix86_enum_va_list): New.
	(TARGET_FN_ABI_VA_LIST): New.
	(TARGET_CANONICAL_VA_LIST_TYPE): New.
	* config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
	* doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
	(TARGET_CANONICAL_VA_LIST_TYPE): New.
	(TARGET_ENUM_VA_LIST): New.
	* expr.h (std_fn_abi_va_list): New.
	(std_canonical_va_list_type): New.
	* target-def.h (TARGET_FN_ABI_VA_LIST): New.
	(TARGET_CANONICAL_VA_LIST_TYPE): New.
	(TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
	TARGET_CANONICAL_VA_LIST_TYPE.
	* target.h (struct gcc_target): Add fn_abi_va_list hook
	and canonical_va_list_type hook.

2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
	integral and pointer types.

2008-07-04  Roger Sayle  <roger@eyesopen.com>

	* config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
	the "void*" result of xmalloc to "char*" to fix bootstrap breakage.

2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/36684
	* config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.

2008-07-04  Jakub Jelinek  <jakub@redhat.com>

	* tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
	build_gimple_modify_stmt.
	(build_arrays, gen_inbound_check): Likewise.  Force RHS to be
	gimple operand.  Use fold_build* instead of build*.

2008-07-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
	(do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
	properly to compute the reachability set if we do field-sensitive PTA.
	* invoke.texi (max-fields-for-field-sensitive): Document default.
	* opts.c (decode_options): Set max-fields-for-field-sensitive to
	100 for optimize >= 2.

2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ggc-zone.c (lookup_page_table_if_allocated,
	set_page_table_entry, zone_find_object_size, alloc_small_page,
	alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
	new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
	-Wc++-compat and/or -Wcast-qual warnings.

2008-07-04  Alan Modra  <amodra@bigpond.net.au>

	PR target/36634
	* config/rs6000/rs6000.md (call, call_value): Don't arrange for
	pic_offset_table_rtx to be marked as used here.
	(call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
	TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
	(call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
	(sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
	!TARGET_SECURE_PLT.

2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alloc-pool.c (hash_descriptor, eq_descriptor,
	alloc_pool_descriptor): Fix -Wc++-compat warnings.
	* bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
	Likewise.
	* ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
	loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
	final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
	* varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
	Likewise.

2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-flow.h (loop_only_exit_p): Declare.
	* tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
	* tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
	the number of iterations if it is constant.  Otherwise, if this is the
	only possible exit of the loop, use the conservative estimate on the
	number of iterations of the entire loop if available.

2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>

	* Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
	* libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
	Add synchronization functions.
	* config/sync.c: New file.
	* config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
	(LIBGCC_SYNC_CFLAGS): Likewise.

2008-07-03  Uros Bizjak  <ubizjak@gmail.com>

	PR target/36710
	* config/i386/i386.md (mode): Add TF to "mode" attribute.
	(*pushtf_sse): New insn pattern.
	(pushtf splitters): New splitters.

2008-07-03  Michael Meissner  <gnu@the-meissners.org>

	PR middle-end/35736
	* predict.c (build_predict_expr): Use void_type_node for the tree
	type, instead of NULL_TREE.

2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (contains_aligned_value_p): Return true
	for TCmode.
	(ix86_data_alignment): Align TCmode to 128bits.
	(ix86_local_alignment): Likewise.

2008-07-03  Andrew Haley  <aph@redhat.com>

	PR bootstrap/33304
	* vec.h (VEC_TA): New.
	(DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
	DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
	* c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
	(C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
	(C_COMMON_FIXED_TYPES): Remove first arg.
	(C_COMMON_FIXED_MODE_TYPES): Likewise.
	* tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
	MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
	not to use empty macro arguments.

2008-07-02  Joseph Myers  <joseph@codesourcery.com>

	* config/alpha/vms_tramp.asm, config/arm/crti.asm,
	config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
	config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
	config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
	config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
	config/i386/sol2-gc1.asm, config/ia64/crti.asm,
	config/ia64/crtn.asm, config/m68hc11/larith.asm,
	config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
	config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
	config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
	config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
	config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
	config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
	config/rs6000/e500crtres64gpr.asm,
	config/rs6000/e500crtres64gprctr.asm,
	config/rs6000/e500crtrest32gpr.asm,
	config/rs6000/e500crtrest64gpr.asm,
	config/rs6000/e500crtresx32gpr.asm,
	config/rs6000/e500crtresx64gpr.asm,
	config/rs6000/e500crtsav32gpr.asm,
	config/rs6000/e500crtsav64gpr.asm,
	config/rs6000/e500crtsav64gprctr.asm,
	config/rs6000/e500crtsavg32gpr.asm,
	config/rs6000/e500crtsavg64gpr.asm,
	config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
	config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
	config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
	config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
	config/sparc/sol2-cn.asm: Remove .file directives.

2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* resource.c (mark_referenced_resources): Look inside
	UNSPEC_VOLATILEs and ASM_INPUTs.

2008-07-02  Ian Lance Taylor  <iant@google.com>

	* rtlanal.c (add_reg_note): New function.
	* rtl.h (add_reg_note): Declare.
	* auto-inc-dec.c (attempt_change): Use add_reg_note.
	* bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
	* builtins.c (expand_builtin_longjmp): Likewise.
	(expand_builtin_nonlocal_goto): Likewise.
	* calls.c (emit_call_1, expand_call): Likewise.
	* cfgexpand.c (add_reg_br_prob_note): Likewise.
	* cfglayout.c (fixup_reorder_chain): Likewise.
	* cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
	(commit_one_edge_insertion): Likewise.
	* combine.c (move_deaths, distribute_notes): Likewise.
	* df-problems.c (df_set_note): Likewise.
	* emit-rtl.c (link_cc0_insns, try_split): Likewise.
	(set_unique_reg_note): Likewise.
	(emit_copy_of_insn_after): Likewise.
	* expr.c (expand_expr_real): Likewise.
	* gcse.c (add_label_notes): Likewise.
	* haifa-sched.c (create_check_block_twin): Likewise.
	* jump.c (mark_jump_label_1): Likewise.
	* loop-doloop.c (add_test, doloop_modify): Likewise.
	* loop-unswitch.c (compare_and_jump_seq): Likewise.
	* lower-subreg.c (move_eh_region_note): Likewise.
	* optabs.c (emit_libcall_block): Likewise.
	* predict.c (predict_insn): Likewise.
	(combine_predictions_for_insn): Likewise.
	* recog.c (peephole2_optimize): Likewise.
	* regmove.c (try_auto_increment): Likewise.
	* reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
	* reload.c (find_reloads): Likewise.
	* reload1.c (fixup_eh_region_note): Likewise.
	(reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
	* reorg.c (delete_prior_computation): Likewise.
	(delete_computation, dbr_schedule): Likewise.
	* config/pa/pa.c (legitimize_pic_address): Likewise.
	* config/sh/sh.c (sh_reorg): Likewise.

2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/36669
	* config/libgcc-glibc.ver: Add %exclude.
	* config/m32r/libgcc-glibc.ver: Likwise.
	* config/s390/libgcc-glibc.ver: Likwise.
	* config/sh/libgcc-glibc.ver: Likwise.
	* config/sparc/libgcc-sparc-glibc.ver: Likwise.

	* config/i386/libgcc-glibc.ver: New.

	* config/i386/libgcc-x86_64-glibc.ver: Removed.

2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
	from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
	i[34567]86-*-linux*, x86_64-*-linux*.  Add
	i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
	i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
	x86_64-*-linux*.  Add i386/t-linux to tmake_file for
	i[34567]86-*-linux*, x86_64-*-linux*.

	* libgcc-std.ver: Add empty GCC_4.4.0.

	* mkmap-symver.awk: Support multiple versions per symbol.

	* config/i386/i386.c (ix86_init_builtins): Always define
	__builtin_fabsq and __builtin_copysignq with fallbacks.
	(ix86_expand_builtin): Emit normal call for __builtin_fabsq
	and __builtin_copysignq if SSE2 isn't available.

	* config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
	(LIBGCC2_TF_CEXT): Likwise.
	(TF_SIZE): Likwise.

	* config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.

	* config/i386/sfp-machine.h: Moved to libgcc.

	* config/i386/sfp-machine.h: New.
	* config/i386/t-linux: Likwise.

	* config/i386/t-darwin: Remove softfp_wrap_start and
	softfp_wrap_end.
	* config/i386/t-darwin64: Likewise.

	* config/i386/t-fprules-softfp64: Renamed to ...
	* config/i386/t-fprules-softfp: This.

	* config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
	and softfp_wrap_end.

2008-07-02  Jason Merrill  <jason@redhat.com>

	* tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.

	* tree.c (ctor_to_list): New fn.
	* tree.h: Declare it.
	(CONSTRUCTOR_ELT): New macro.
	(CONSTRUCTOR_NELTS): New macro.

2008-07-02  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (struct variable_info): Reorder
	to fill padding on 64bit hosts.  Make collapsed_to an int.
	(get_varinfo_fc): Deal with that.
	(new_var_info): Likewise.
	(collapse_rest_of_var): Likewise.

2008-07-02  Joshua Sumali  <jsumali@redhat.com>

	* doc/install.texi (--enable-java-home): Document.
	(--enable-aot-compile-rpm): Likewise.
	(--with-arch-directory): Likewise.
	(--with-os-directory): Likewise.
	(--with-origin-name): Likewise.
	(--with-arch-suffix): Likewise.
	(--with-jvm-root-dir): Likewise.
	(--with-jvm-jar-dir): Likewise.
	(--with-python-dir): Likewise.

2008-07-02  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (can_propagate_from): Exclude loads
	from decls explicitly.  Merge operand checking from tuples.

2008-07-02  Martin Jambor  <mjambor@suse.cz>

	* tree-switch-conversion.c: Included timevar.h which I forgot before.

2008-07-02  Martin Jambor  <mjambor@suse.cz>

	* tree-switch-conversion.c: Included timevar.h
	(pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).

	* timevar.def: Added TV_TREE_SWITCH_CONVERSION.

2008-07-02  Martin Jambor  <mjambor@suse.cz>

	* tree-switch-conversion.c: Corrected various comments and
	whitespace issues
	(build_constructors): Fixed minor formatting mistakes.

	* invoke.texi (Optimize Options): Corrected the
	switch-conversion-max-branch-ratio parameter.

2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>

	* final.c (asm_insn_count): Return zero for an empty asm body.

2008-07-02  Richard Guenther  <rguenther@suse.de>

	* bitmap.h (bitmap_set_bit): Return bool.
	(bitmap_clear_bit): Likewise.
	* bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
	write to the bitmap if it would.
	(bitmap_clear_bit): Likewise.
	* tree-ssa-structalias.c (add_implicit_graph_edge): Use
	bitmap_set_bit return value.
	(add_pred_graph_edge): Likewise.
	(add_graph_edge): Likewise.
	(do_sd_constraint): Likewise.
	(do_ds_constraint): Likewise.

2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
	Fix -Wc++-compat and/or -Wcast-qual warnings.
	* config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
	gen_regparm_prefix): Likewise.
	* vmsdbgout.c (write_modbeg, lookup_filename,
	vmsdbgout_source_line, vmsdbgout_init): Likewise.

2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
	defaults.h definition apply.

2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* function.c (assign_parm_remove_parallels): New.
	(assign_parm_setup_block_p): Do not return true for non-BLKmode
	PARALLELs.
	(assign_parm_setup_block): Do not handle them.
	(assign_parm_setup_reg, assign_parm_setup_stack): Call
	assign_parm_remove_parallels.

2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>

	* c-typeck.c (convert_for_assignment): Use
	vector_targets_convertible_p.
	* c-common.c (vector_targets_convertible_p): New.
	* c-common.h (vector_targets_convertible_p): New prototype.
	* config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
	opaque_p_V2SI_type_node.

2008-07-01  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
	RFmode constants.

2008-07-01  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
	TFmode constants via two element DImode vector for hosts with
	HOST_BITS_PER_WIDE_INT < 64.
	(ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
	also for HOST_BITS_PER_WIDE_INT < 64.

2008-07-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36666
	* tree-ssa-structalias.c (get_constraint_for_1): Declare.
	(get_constraint_exp_from_ssa_var): Split into ...
	(get_constraint_exp_for_temp): ... this ...
	(get_constraint_for_ssa_var): ... and that.
	Return constraint expressions for all touched sub-fields
	if the results address is not taken.
	(process_constraint): Remove assertion that aggregate
	assignments do not happen at this place.
	(get_constraint_for_component_ref): Add address_p argument.
	Return constraint expressions for all touched sub-fields
	if the results address is not taken.
	(do_deref): Use get_constraint_exp_for_temp.
	(get_constraint_for_1): Rename from ...
	(get_constraint_for): ... this.  Add the old function as wrapper.
	(do_structure_copy): Use get_constraint_for_1.

2008-07-01  Martin Jambor  <mjambor@suse.cz>

	* Makefile.in (tree-switch-conversion.o): Add.
	(OBJS-common): Add tree-swtch-conversion.o.
	* passes.c (init_optimization_passes): Add pass_convert_switch.
	* tree-pass.h (pass_convert_switch): Add.
	* tree-switch-conversion.c: New file.
	* gcc.dg/tree-ssa/cswtch.c: New testcase.
	* common.opt (ftree-cswtch): New option.
	* params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
	* params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
	* opts.c (decode_options): Set flag_tree_switch_conversion when
	optimization level is >= 2.
	* doc/invoke.texi (Optimize Options): Added description of
	-ftree-swtch-conversion and switch-conversion-max-branch-ratio.

2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/darwin-driver.c (darwin_default_min_version): Fix
	-Wc++-compat warnings.

2008-06-30  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
	of operand 0.

2008-06-30  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* ifcvt.c (cond_move_process_if_block): Free vectors on false return.

2008-06-30  Kenneth Zadeck  <zadeck@naturalbridge.com>

	PR rtl-optimization/34744
	* df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
	(df_scan_free_internal): Free data structures not
	allocated in storage pools.
	(df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
	(df_refs_add_to_chains): Use df_scan_free_ref_vec and
	df_scan_free_mws_vec.
	* dse.c (dse_step6): Free offset_map_p and offset_map_n
	unconditionally.

2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (contains_aligned_value_p): Return true
	for __float128.
	(ix86_function_arg_boundary): Return its natural boundary
	for __float128.
	(return_in_memory_32): Don't check TDmode.
	(ix86_split_to_parts): Support splitting into 4 parts and
	support TFmode for 32bit target.
	(ix86_split_long_move): Support splitting into 4 parts.
	(bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
	for SSE2.
	(ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
	(ix86_init_builtins): Here.
	(ix86_scalar_mode_supported_p): Always return true for TFmode.
	(ix86_c_mode_for_suffix): Always return TFmode and XFmode for
	'q' and 'w', respectively.

	* config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
	TARGET_64BIT.
	(movtf_internal): Likewise.
	(<code>tf2): Likewise.
	(*absnegtf2_sse): Likewise.
	(copysign<mode>3): Likewise.
	(copysign<mode>3_const): Likewise.
	(copysign<mode>3_var): Likewise.
	(define_split UNSPEC_COPYSIGN): Likewise.
	* config/i386/sse.md (*nandtf3): Likewise.
	(<code>tf3): Likewise.
	(*<code>tf3): Likewise.

2008-06-30  Joey Ye  <joey.ye@intel.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* global.c (compute_regsets): Set frame_pointer_needed here.
	* reload1.c (init_elim_table): Don't set frame_pointer_needed here.

2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

	* doc/install.texi (specific): Expand Windows build notes.

2008-06-30  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/36648
	* tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
	number of prolog iterations by step. Fix the comment.

2008-06-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36671
	* tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
	handle calls from ECF_MALLOC functions.
	(handle_pure_call): ECF_MALLOC functions do not return
	call-used memory.
	(find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.

2008-06-29  Andreas Schwab  <schwab@suse.de>

	* config/m68k/m68k.c (print_operand): Always print a float
	constant in hex.
	* config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
	(ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
	Remove macros.

	* config/rs6000/x-linux64: Remove never used file.

2008-06-29  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.h (compute_points_to_sets): Adjust
	prototype.
	(struct alias_info): Move ...
	* tree-ssa-alias.c: ... here.
	(update_alias_info): Declare.
	(compute_may_aliases): Call it.
	(update_alias_info): New function.
	* tree-ssa-structalias.c (update_alias_info): Move ...
	* tree-ssa-alias.c (update_alias_info_1): ... here.
	* tree-ssa-structalias.c (process_constraint_1): Remove
	unused from_call argument.  Rename to ...
	(process_constraint): ... this.  Delete old wrapper.
	(make_constraint_to): Adjust callers.
	(handle_const_call): Likewise.
	(handle_pure_call): Likewise.
	(init_base_vars): Likewise.
	(handle_lhs_call): Likewise.  Remove unnecessary constraint.
	(find_func_aliases): We don't need structure copies for
	complex types.
	(make_constraint_from_anything): Remove.
	(create_variable_info_for): For globals make constraints
	from escaped, not from anything.
	(compute_points_to_sets): Do not call update_alias_info.
	(ipa_pta_execute): Use make_constraint_from.

2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
	(bitmap.o-warn, dominance.o-warn): New.
	* configure.ac (cxx_compat_warn): Delete.
	(loose_warn): Add -Wcast-qual and -Wc++-compat.
	* system.h: Remove #pragma diagnostic for -Wcast-qual and
	-Wc++-compat.
	* configure: Regenerate.

	* optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
	warnings.

2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
	* df-scan.c (df_notes_rescan): Likewise.
	* ggc-page.c (set_page_table_entry): Likewise.
	* intl.c (gcc_gettext_width): Likewise.
	* varasm.c (get_unnamed_section, get_noswitch_section,
	get_section): Likewise.

2008-06-28  Andrew Jenner  <andrew@codesourcery.com>

	* regrename.c (build_def_use): Don't copy RTX.

2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>

	* doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
	(Type Attributes): Fix nesting of @table and @subsection.  Adjust
	punctuation.  Use @ref instead of @xref.
	(Function Names): Remove stray @display/@end display.
	(C++ Attributes): Use @ref instead of @xref.
	(Deprecated Features): Fix punctuation around @xref.
	(Backwards Compatibility): Likewise.
	* doc/rtl.texi (Incdec): Remove stray @table/@end table.

2008-06-28  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
	constants for E500 double.

2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* doc/rtl.texi (const_vector): Document const_fixed as legitimate
	element type of const_vector.

2008-06-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
	Remove FLAGS_REG clobber from expander pattern.
	(subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
	(anddi3, andsi3, andhi3, andqi3): Ditto.
	(iordi3, iorsi3, iorhi3, iorqi3): Ditto.
	(xordi3, xorsi3, xorhi3, xorqi3): Ditto.
	(negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
	(ashlsi3, ashlhi3, ashlqi3): Ditto.
	(ashrsi3, ashrhi3, ashrqi3): Ditto.
	(lshrsi3, lshrhi3, lshrqi3): Ditto.
	(rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
	(rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.

2008-06-28  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (callused_id, var_callused,
	callused_tree): Add.
	(handle_pure_call): New function.
	(find_func_aliases): Call it.
	(find_what_p_points_to): Handle the call-used set.
	(clobber_what_escaped): Likewise.
	(compute_call_used_vars): New function.
	(init_base_vars): Init the call-used variable.
	(do_sd_constraint): Do not propagate the solution from CALLUSED
	but use CALLUSED as a placeholder.
	(solve_graph): Likewise.
	* tree-flow-inline.h (gimple_call_used_vars): New function.
	* tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
	(compute_call_used_vars): Declare.
	* tree-ssa-alias.c (set_initial_properties): Call
	compute_call_used_vars.
	(reset_alias_info): Clear call-used variables.
	(add_call_clobber_ops): Assert we are not called for const/pure
	functions.  Remove handling of them.
	(add_call_read_ops): Handle pure functions by adding the
	call-used set of variables as VUSEs.
	* tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
	(delete_tree_ssa): Free it.
	* tree-dfa.c (remove_referenced_var): Clear the var from the
	call-used bitmap.

2008-06-28  Kai Tietz  <kai.tietz@onevision.com>

	* tree.c (build_varargs_function_type_list): New.
	(build_function_type_list_1): New.
	(build_function_type_list): Use build_function_type_list_1.
	* tree.h (build_varargs_function_type_list): New.

2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR target/34856
	* config/spu/spu.c (spu_builtin_splats): Do not generate
	invalid CONST_VECTOR expressions.
	(spu_expand_vector_init): Likewise.

2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>

	* optabs.c (libfunc_decls): New variable.
	(libfunc_decl_hash, libfunc_decl_eq): New functions.
	(init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
	for the same function twice.

2008-06-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
	ix86_expand_binary_operator directly.
	(*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
	for operand 2.
	(*ashrti3_1): Ditto.
	(*lshrti3_1): Ditto.
	(*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
	(ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
	using only one splitter.  Conditionaly execute splitter before or
	after peephole2 pass.
	(ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
	(x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
	Use only one alternative in asm template.
	(x86_64_shld): Compress operand 2 constraints. Use only one alternative
	in asm template.
	(*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
	"J" operand constraint for operand 2.
	(*ashldi3_cconly_rex64): Ditto.
	(*ashrdi3_cmp_rex64): Ditto.
	(*ashrdi3_cconly_rex64): Ditto.
	(*lshrdi3_cmp_rex64): Ditto.
	(*lshrdi3_cconly_rex64): Ditto.
	* config/i386/predicates.md (const_1_to_63_operand): New predicate.
	* config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
	(split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
	gen_x86_shrd_1.

2008-06-27  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (omp_is_private): Don't return true if decl is not
	already private on #pragma omp for or #pragma omp parallel for.

	PR debug/36617
	* tree-cfg.c (struct move_stmt_d): Replace block field with
	orig_block and new_block fields.
	(move_stmt_r): Only set TREE_BLOCK to p->new_block if
	if it used to be NULL, p->orig_block or if p->orig_block is NULL.
	(move_block_to_fn): Replace vars_map and new_label_map arguments
	with struct move_stmt_d pointer.
	(replace_block_vars_by_duplicates): New function.
	(move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
	move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
	all subblocks of ORIG_BLOCK to the new function.  Call
	replace_block_vars_by_duplicates.
	* tree-flow.h (move_sese_region_to_fn): Adjust prototype.
	* omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
	BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
	Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
	(expand_omp): Temporarily set input_location to the location of
	region's controlling stmt.
	(lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
	BIND_EXPR, push ctx->block_vars and gimplification vars into
	the BIND_EXPR and its block's BLOCK_VARS instead of directly
	into dest function.
	(lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
	there are any BLOCK_VARS.
	(lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
	OMP_PARALLEL or OMP_TASK stmt.
	(lower_omp): Save and restore input_location around the lower_omp_1
	call.

2008-06-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36400
	PR tree-optimization/36373
	PR tree-optimization/36344
	* tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
	var_nonlocal, nonlocal_tree, nonlocal_id): New globals
	(update_alias_info): Remove call clobbering code.
	(make_constraint_to): New helper function.
	(make_escape_constraint): Likewise.
	(handle_rhs_call): Use it on all pointer containing arguments.
	Also mark the static chain escaped.
	(handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
	instead of ANYTHING.
	(make_constraint_from): New helper split out from ...
	(make_constraint_from_anything): ... here.
	(find_func_aliases): Add constraints for escape sites.
	(intra_create_variable_infos): Make constraints from NONLOCAL
	for parameters.
	(find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
	as ANYTHING.
	(clobber_what_p_points_to): Remove.
	(clobber_what_escaped): New function.
	(init_base_vars): Init NONLOCAL and ESCAPED.
	(do_sd_constraint): Do not propagate the solution from ESCAPED
	but use ESCAPED as a placeholder.
	(solve_graph): Likewise.
	* tree-flow.h (clobber_what_p_points_to): Remove.
	(clobber_what_escaped): Declare.
	* tree-ssa-alias.c (set_initial_properties): Call it.
	Remove code clobbering escaped pointers.

2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>

	* function.c (allocate_struct_function): Only allocate a unique
	funcdef_no if the decl is nonzero.

2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips-protos.h (mips_split_const_insns): Declare.
	* config/mips/mips.c (mips_split_const_insns): New function.
	* config/mips/mips.md (move_type): New attribute.
	(mode): Move attribute definition earlier in file.  Add "TI" and "TF".
	(dword_mode): New attribute.
	(type): Avoid long line.  Map "move_type"s to "type"s,
	choosing "multi" for doubleword moves if appropriate.
	Swap MTC/MFC comments to match their declaration order.
	(extended_mips16): Default to "yes" if "move_type" is "sll0",
	"type" is "branch" or "jal" is "direct".
	(length): Handle "extended_mips16" first.  Make the default
	"0" for "ghost" instructions.  Set the length from "move_type".
	(truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
	of "type", with "sll0" for the register alternative.  Remove the
	"extended_mips16" attribute.
	(zero_extendsidi2, *clear_upper32): Use "move_type" instead
	of "type", with "shift_shift" for the register alternative.
	Remove the "length" attribute.
	(*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
	(*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
	of "type", with "andi" for the register alternative.
	(*zero_extendqihi2): Likewise.
	(*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
	of "andi" instead of a "type" of "arith".
	(*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
	instead of "type".
	(*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
	(mov_<store>r, *mov<mode>_ra): Likewise.
	(extendsidi2): Use "move_type" instead of "type", with "move"
	for the register alternative.
	(*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
	of "type", with "signext" for the register alternative.
	(*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
	(*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
	(fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
	(fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
	(floatdisf2, *branch_equality<mode>_mips16): Likewise.
	(unnamed branch insn): Likewise.
	(*movdi_gp32_fp64): Fold into...
	(*movdi_32bit): ...here.
	(*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
	(*movdf_hardfloat): ...this new pattern.
	(*movdf_softfloat): Remove redundant FPR alternatives.
	(*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
	(*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
	(*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
	the "move" attribute.
	(*movdi_32bit): Use "move_type" instead of "type" and remove the
	"length" attribute.  Use "fpload" and "fpstore" instead of "load"
	and "store" for COP loads and stores.
	(*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
	(*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
	(*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
	(*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
	(*movtf_mips16, *movv2sf): Likewise.
	(mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
	(load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
	(mfhc1<mode>): Use "move_type" instead of "move".
	(*low<mode>_mips16): Use "extended_mips16" instead of "length".
	(loadgp_blockage): Remove the "length" attribute.
	(blockage, set_got_version, update_got_version): Likewise.
	(call_internal): Remove the "extended_mips16" attribute.
	(call_value_internal, call_value_multiple_internal): Likewise.
	* config/mips/loongson.md (mov<mode>_internal): Use "move_type"
	instead of "move".
	* config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
	the "length" attribute.

2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
	-Wcast-qual warnings.
	* c-pragma.c (dpm_eq, handle_pragma_push_macro,
	handle_pragma_pop_macro): Likewise.
	* collect2.c (resolve_lib_name): Likewise.
	* config/arc/arc.c (arc_init): Likewise.
	* config/arm/arm.c (neon_builtin_compare,
	locate_neon_builtin_icode): Likewise.
	* config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
	* config/bfin/bfin.c (bfin_init_machine_status,
	bfin_optimize_loop): Likewise.
	* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
	* config/cris/cris.c (cris_init_expanders): Likewise.
	* config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
	* config/darwin.c (machopic_indirection_eq,
	machopic_indirection_name, machopic_output_indirection): Likewise.
	* config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
	frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
	frv_optimize_membar): Likewise.
	* config/i386/cygwin.h (mingw_scan,
	GCC_DRIVER_HOST_INITIALIZATION): Likewise.
	* config/i386/cygwin1.c (mingw_scan): Likewise.
	* config/i386/i386.c (machopic_output_stub): Likewise.
	* config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
	i386_pe_unique_section): Likewise.
	* config/ia64/ia64.c (ia64_init_machine_status,
	ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
	Likewise.
	* config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
	* config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
	* config/m68k/m68k.c (m68k_handle_option,
	m68k_sched_md_init_global): Likewise.
	* config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
	mcore_unique_section): Likewise.
	* config/mips/mips.c (mips_block_move_straight,
	mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
	Likewise.
	* config/mmix/mmix.c (mmix_init_machine_status,
	mmix_encode_section_info): Likewise.
	* config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
	* config/rs6000/rs6000.c (rs6000_init_machine_status,
	print_operand_address, output_toc, redefine_groups,
	rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
	* config/s390/s390.c (s390_init_machine_status): Likewise.
	* config/score/score.c (score_block_move_straight,
	score_block_move_loop_body): Likewise.
	* config/sparc/sparc.c (sparc_init_machine_status): Likewise.
	* config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
	* emit-rtl.c (find_auto_inc): Likewise.
	* gcc.c (translate_options, process_command): Likewise.
	* reorg.c (dbr_schedule): Likewise.
	* sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
	* xcoffout.c (xcoffout_declare_function): Likewise.

2008-06-27  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
	ipa-pta working again.

2008-06-27  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/t-aix52: Append large data option to LDFLAGS for
	genautomata.

2008-06-27  Edmar Wienskoski  <edmar@freescale.com>

	* config.gcc (powerpc*-*-*): Add new core e500mc.
	* config/rs6000/e500mc.md: New file.
	* config/rs6000/rs6000.c (processor_costs): Add new costs for
	e500mc.
	(rs6000_override_options): Add e500mc case to
	processor_target_table. Altivec and Spe options not allowed
	with e500mc. Add isel instruction to e500mc by
	default. Initialize rs6000_cost for e500mc.
	(rs6000_issue_rate): Set issue rate for e500mc.
	* config/rs6000/rs6000.h (processor_type): Add
	PROCESSOR_PPCE500MC.
	(ASM_CPU_SPEC): Add e500mc.
	Set TARGET_ISEL to rs6000_isel.
	* config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
	(CHECK_E500_OPTIONS): Remove TARGET_ISEL.
	* config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
	Include e500mc.md.
	* doc/invoke.texi: Add e500mc to list of cpus.

2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	PR c/34867
	* c-lex.c (lex_charconst): Initialize unsignedp.

2008-06-27  Olivier Hainque  <hainque@adacore.com>

	* gimplify.c (gimplify_modify_expr_to_memset): Assert our
	documented assumptions.

2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf2out.c: Remove trailing white spaces.  Break long line
	in comments.

2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>

	* libfuncs.h (LTI_synchronize): New libfunc_index.
	(synchronize_libfunc): Declare.
	* builtins.c (expand_builtin_synchronize): Consider using
	synchronize_libfunc before falling back on an asm blockage.
	* config/mips/mips.c: Include libfuncs.h
	(mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.

2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
	parameter.  Copy stack_reg to r11 where appropriate.
	(no_global_regs_above): Add gpr parameter.
	(rs6000_stack_info): Only add padding for SPE save area if we
	are saving SPE GPRs and CR.
	(saveres_routine_syms): New variable.
	(FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
	Define.
	(rs6000_savres_routine_sym): New function.
	(rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
	split out of...
	(rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
	rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
	Tweak FPR out-of-line saving.
	(rs6000_make_savres_rtx): New function.
	(rs6000_use_multiple_p): New function.
	(rs6000_savres_strategy): New function.
	(rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
	out-of-line if appropriate.
	* config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
	if we are optimizing for size.
	(GP_SAVE_INLINE): Define.
	(SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
	* config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
	* config/rs6000/aix.h (GP_SAVE_INLINE): Define.
	* config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
	(*save_fpregs_<mode>): Add use of r11.
	(*restore_gpregs_<mode>): New insn.
	(*return_and_restore_gpregs_<mode>): New insn.
	(*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
	use r11.
	* config/rs6000/spe.md (*save_gpregs_spe): New insn.
	(*restore_gpregs_spe): New insn.
	(*return_and_restore_gpregs_spe): New insn.
	* config/rs6000/predicates.md (save_world_operation): Fix check.

2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>

	* tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
	this point, so assert that.

2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>

	* cfganal.c: Include vec.h and vecprim.h.
	(compute_idf): Import from...
	* tree-into-ssa (compute_idf): ...here.
	* basic-block.h (compute_idf): Export.

2008-06-26  Joseph Myers  <joseph@codesourcery.com>

	* c-decl.c (merge_decls): Use !current_function_decl to check for
	extern declaration of C99 inline function being at file scope.

2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>

	* config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.

2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alias.c (record_alias_subset, init_alias_analysis): Fix
	-Wc++-compat and/or -Wcast-qual warnings.
	* attribs.c (lookup_attribute_spec): Likewise.
	* bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
	copy_bb, connect_traces,
	find_rarely_executed_basic_blocks_and_cr): Likewise.
	* bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
	note_btr_set, migrate_btr_defs): Likewise.
	* builtins.c (result_vector, expand_builtin_memcpy,
	expand_builtin_mempcpy_args, expand_builtin_strncpy,
	builtin_memset_read_str, expand_builtin_printf,
	fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
	Likewise.
	* caller-save.c (mark_set_regs): Likewise.
	* calls.c (expand_call, emit_library_call_value_1): Likewise.
	* cgraph.c (cgraph_edge): Likewise.
	* combine.c (likely_spilled_retval_1): Likewise.
	* coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
	htab_counts_entry_del, get_coverage_counts): Likewise.
	* cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
	new_cselib_val): Likewise.
	* dbgcnt.c (dbg_cnt_process_opt): Likewise.
	* dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
	Likewise.
	* df-core.c (df_compact_blocks): Likewise.
	* df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
	* df-scan.c (df_grow_reg_info, df_ref_create,
	df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
	df_ref_compare, df_ref_create_structure, df_bb_refs_record,
	df_record_entry_block_defs, df_record_exit_block_uses,
	df_bb_verify): Likewise.
	* df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
	DF_REF_EXTRACT_MODE_CONST): New.
	* dominance.c (get_immediate_dominator, get_dominated_by,
	nearest_common_dominator, root_of_dom_tree,
	iterate_fix_dominators, first_dom_son, next_dom_son): Fix
	-Wc++-compat and/or -Wcast-qual warnings.
	* dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
	record_store, replace_read, check_mem_read_rtx, scan_insn,
	dse_step1, dse_record_singleton_alias_set): Likewise.
	* dwarf2asm.c (dw2_force_const_mem): Likewise.

2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
	dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
	lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
	assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
	build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
	add_ranges_num, add_ranges_by_labels, file_info_cmp,
	file_name_acquire, output_file_names, add_const_value_attribute,
	premark_used_types_helper, file_table_eq, file_table_hash,
	lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
	dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
	-Wcast-qual warnings.
	* ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
	ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
	* emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
	gen_reg_rtx, start_sequence, init_emit): Likewise.
	* et-forest.c (et_new_occ, et_new_tree): Likewise.
	* except.c (init_eh_for_function, gen_eh_region,
	remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
	arh_to_landing_pad, arh_to_label, add_action_record,
	add_call_site, switch_to_exception_section): Likewise.
	* expmed.c (synth_mult): Likewise.
	* expr.c (gen_group_rtx, emit_group_load, emit_group_store,
	store_expr): Likewise.
	* final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
	Likewise.
	* function.c (assign_stack_temp_for_type,
	allocate_struct_function, match_asm_constraints_1): Likewise.
	* gcov-io.c (gcov_allocate): Likewise.
	* gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
	GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
	(gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
	record_one_set, insert_expr_in_table, insert_set_in_table,
	dump_hash_table, compute_hash_table_work, alloc_hash_table,
	pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
	reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
	-Wcast-qual warnings.

2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
	-Wcast-qual warnings.
	* gcc.c (process_command): Likewise.
	* genattrtab.c (oballoc): Use XOBNEW.
	(oballocvec): Define.
	(attr_hash_add_rtx, attr_hash_add_string, attr_string,
	get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
	gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
	-Wc++-compat and/or -Wcast-qual warnings.
	* genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
	XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
	(gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
	gen_presence_absence_set, gen_automaton, gen_regexp_el,
	gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
	gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
	add_excls, process_presence_absence_names,
	process_presence_absence_patterns, add_presence_absence,
	process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
	get_free_state, add_arc, get_free_automata_list_el,
	form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
	transform_3, cache_presence, create_ainsns, create_automata,
	create_state_ainsn_table, dfa_insn_code_enlarge,
	output_trans_func, output_min_issue_delay_func,
	output_dead_lock_func, output_reset_func,
	output_get_cpu_unit_code_func, output_dfa_start_func,
	expand_automata): Likewise.
	* genextract.c (gen_insn): Likewise.
	* gengtype-lex.l: Likewise.
	* gengtype.c (read_input_list, adjust_field_type,
	process_gc_options): Likewise.
	* genoutput.c (note_constraint): Likewise.
	* genpreds.c (mangle, add_constraint): Likewise.
	* genrecog.c (process_define_predicate, new_decision,
	add_to_sequence): Likewise.
	* gensupport.c (record_insn_name): Likewise.

2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/i386/driver-i386.c (detect_caches_amd,
	detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
	and/or -Wcast-qual warnings.
	*ggc-common.c (ggc_mark_roots, gt_pch_note_object,
	gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
	gt_pch_save): Likewise.
	* ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
	gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
	* global.c (compute_regsets): Likewise.
	* graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
	finish_graph_dump_file): Likewise.
	* haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
	unlink_bb_notes): Likewise.
	* integrate.c (get_hard_reg_initial_val): Likewise.
	* ipa-prop.c (ipa_push_func_to_list): Likewise.
	* ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
	* local-alloc.c (update_equiv_regs): Likewise.
	* loop-invariant.c (check_invariant_table_size,
	hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
	Likewise.
	* loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
	altered_reg_used, mark_altered): Likewise.
	* loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
	insert_var_expansion_initialization,
	combine_var_copies_in_loop_exit, apply_opt_in_copies,
	release_var_copies): Likewise.
	* matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
	analyze_matrix_decl, add_allocation_site, analyze_transpose,
	analyze_accesses_for_phi_node, check_var_notmodified_p,
	check_allocation_function, find_sites_in_func,
	record_all_accesses_in_func, transform_access_sites,
	transform_allocation_sites): Likewise.
	* omp-low.c (new_omp_region, create_omp_child_function_name,
	check_omp_nesting_restrictions, check_combined_parallel,
	lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
	* optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
	gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
	gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
	Likewise.
	* opts-common.c (prune_options): Likewise.
	* opts.c (add_input_filename, print_filtered_help,
	get_option_state): Likewise.
	* params.c (add_params): Likewise.
	* passes.c (set_pass_for_id, next_pass_1,
	do_per_function_toporder, pass_fini_dump_file): Likewise.
	* postreload.c (reload_cse_simplify_operands): Likewise.
	* predict.c (tree_predicted_by_p, tree_predict_edge,
	clear_bb_predictions, combine_predictions_for_bb): Likewise.

2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
	warnings.
	* recog.c (check_asm_operands, validate_change_1): Likewise.
	* reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
	subst_asm_stack_regs): Likewise.
	* regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
	cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
	* regmove.c (reg_is_remote_constant_p): Likewise.
	* regrename.c (regrename_optimize, scan_rtx_reg,
	kill_clobbered_value, kill_set_value, kill_autoinc_value):
	Likewise.
	* regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
	regstat_compute_calls_crossed): Likewise.
	* reload1.c (init_reload, new_insn_chain,
	has_nonexceptional_receiver, reload, copy_reloads,
	calculate_needs_all_insns, init_elim_table): Likewise.
	* rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
	* rtl.c (shallow_copy_rtx_stat): Likewise.
	* rtlanal.c (parms_set): Likewise.
	* sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
	sbitmap_resize, sbitmap_vector_alloc): Likewise.
	* sched-ebb.c (earliest_block_with_similiar_load,
	add_deps_for_risky_insns): Likewise.
	* sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
	schedule_region): Likewise.
	* see.c (eq_descriptor_pre_extension,
	hash_descriptor_pre_extension, hash_del_pre_extension,
	eq_descriptor_properties, hash_descriptor_properties,
	hash_del_properties, see_seek_pre_extension_expr,
	see_initialize_data_structures, see_print_register_properties,
	see_print_pre_extension_expr, see_delete_merged_def_extension,
	see_delete_unmerged_def_extension, see_emit_use_extension,
	see_pre_delete_extension, see_map_extension, see_commit_changes,
	see_analyze_merged_def_local_prop,
	see_analyze_merged_def_local_prop,
	see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
	see_set_prop_merged_def, see_set_prop_unmerged_def,
	see_set_prop_unmerged_use, see_print_one_extension,
	see_merge_one_use_extension, see_merge_one_def_extension,
	see_store_reference_and_extension, see_update_uses_relevancy,
	see_update_defs_relevancy): Likewise.
	* statistics.c (hash_statistics_hash, hash_statistics_eq,
	hash_statistics_free, curr_statistics_hash): Likewise.
	* stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
	expand_asm_operands, expand_return, case_bit_test_cmp,
	expand_case): Likewise.
	* stor-layout.c (start_record_layout): Likewise.
	* stringpool.c (ggc_alloc_string, gt_pch_n_S,
	gt_pch_save_stringpool): Likewise.
	* tree-data-ref.c (hash_stmt_vertex_info,
	have_similar_memory_accesses_1, ref_base_address_1): Likewise.
	* tree-ssa-phiopt.c (name_to_bb_hash): Likewise.

2008-06-25  Uros Bizjak  <ubizjak@gmail.com>

	PR target/36627
	* config/i386/i386.md: Change constraints of HImode and QImode
	immediate operands from "i" to "n".  Change SImode "ni" constraint to
	"i" and SImode "rmi" constraint to "g".  Remove all constraints
	from const0_operand and const1_operand predicated operands.
	(i): Change QImode and HImode attribute from "i" to "n".
	(*subqi_2): Change HImode operands to QImode.
	(*subqi_3): Ditto.

2008-06-25  Olivier Hainque  <hainque@adacore.com>

	* Makefile.in (GTFILES_H): Use | instead of ; as separator in
	sed substitutions.

2008-06-25  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (fieldoff_compare): Make sure to
	not overflow the result type.

2008-06-25  Richard Guenther  <rguenther@suse.de>

	* tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
	(vn_lookup): Likewise.

2008-06-25  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/35518
	* fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
	* tree-sra.c (instantiate_element): Use fold_build3 to build
	BIT_FIELD_REFs.
	(try_instantiate_multiple_fields): Likewise.

2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/rs6000/rs6000.md: Change all string instruction's clobber to
	be early clobbers.

2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
	use_backchain_to_restore_sp to true
	if the offset of the link register save area would go over the 32k - 1
	offset limit of the load
	instructions.

2008-06-25  Hans-Peter Nilsson  <hp@axis.com>

	* doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
	anchor for the type-punning blurb.  Cross-reference "Structures
	unions enumerations and bit-fields implementation".  Provide a
	cast-through-pointer example.  Make final sentence self-contained.
	* doc/implement-c.texi (Structures unions enumerations and
	bit-fields implementation): Cross-reference the type-punning blurb
	in the -fstrict-aliasing documentation.

2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/36594
	* builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
	the memory instead of the memory itself for the save area.

2008-06-24  Olivier Hainque  <hainque@adacore.com>
	    Nicolas Roche  <roche@adacore.com>

	* gengtype.c (srcdir_len): size_t instead of int.
	(get_file_realbasename): New function.  For F a filename, the real
	basename of F, with all the path components stripped.
	(get_file_srcdir_relative_path): New function.  For F a filename, the
	relative path to F from $(srcdir).
	(get_file_basename): Rewrite using get_file_srcdir_relative_path and
	get_file_realbasename.  Adjust the head comment.
	(get_prefix_langdir_index): New function. For F a filename, return the
	lang_dir_names[] relative index of the language directory that is
	a prefix in F.
	(get_file_langdir): For F a filename, return the name of the language
	directory where F is located.
	(get_file_gtfilename): New function. The gt- output file name for an
	input filename F.
	(get_output_file_with_visibility): Replace in-line computations with
	uses of get_file_gtfilename and get_prefix_langdir_index.
	* Makefile.in (GTFILES_H): Adjust to match what gengtype generates.

2008-06-24  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/36504
	* tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
	references without base address.

2008-06-23  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/36584
	* calls.c (expand_call): Increase alignment for recursive functions.

2008-06-23  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
	(TARGET_FUNCTION_VALUE): New define.
	* config/avr/avr-protos.h (avr_function_value): Remove declaration.
	* config/avr/avr.h (FUNCTION_VALUE): Remove.

2008-06-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (fmodxf3): Change sequence of move instructions.
	(fmod<mode>3): Ditto.
	(remainderxf3): Ditto.
	(remainder<mode>3): Ditto.

2008-06-23  Jakub Jelinek  <jakub@redhat.com>

	PR target/36533
	* emit-rtl.c (set_reg_attrs_from_value): Do nothing if
	REG is a hard register.

	PR tree-optimization/36508
	* tree-ssa-pre.c (compute_antic): Allow num_iterations up to
	499, don't check it at all in release compilers.

2008-06-23  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
	together with SSE_TARGET_MATH to disable insn pattern.
	(*fop_<MODEF:mode>_2_i387): Ditto.
	(*fop_<MODEF:mode>_3_i387): Ditto.

2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>

	* config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.

2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	PR middle-end/34906
	* gimplify.c (gimplify_asm_expr): Check the return code of
	parse_output_constraint call, set function return and is_inout
	value if it failed.

2008-06-22  Ian Lance Taylor  <iant@google.com>

	* c-lex.c (narrowest_unsigned_type): Change itk to int.
	(narrowest_signed_type): Likewise.
	* c-typeck.c (c_common_type): Change local variable mclass to enum
	mode_class, twice.
	(parser_build_binary_op): Compare the TREE_CODE_CLASS with
	tcc_comparison, not the tree code itself.
	* c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
	(c_expand_expr): Cast modifier to enum expand_modifier.
	* c-common.h (C_RID_CODE): Add casts.
	(C_SET_RID_CODE): Define.
	* c-parser.c (c_parse_init): Use C_SET_RID_CODE.
	(c_lex_one_token): Add cast to avoid warning.
	(c_parser_objc_type_name): Rename local typename to type_name.
	(check_no_duplicate_clause): Change code parameter to enum
	omp_clause_code.
	(c_parser_omp_var_list_parens): Change kind parameter to enum
	omp_clause_code.
	(c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
	c_parser_omp_list_var_parens.
	(c_parser_omp_threadprivate): Likewise.
	* cp/lex.c (init_reswords): Use C_SET_RID_CODE.
	* cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
	* c-format.c (NO_FMT): Define.
	(printf_length_specs): Use NO_FMT.
	(asm_fprintf_length_specs): Likewise.
	(gcc_diag_length_specs): Likewise.
	(scanf_length_specs): Likewise.
	(strfmon_length_specs): Likewise.
	(gcc_gfc_length_specs): Likewise.
	(printf_flag_specs): Change 0 to STD_C89.
	(asm_fprintf_flag_specs): Likewise.
	(gcc_diag_flag_specs): Likewise.
	(gcc_cxxdiag_flag_specs): Likewise.
	(scanf_flag_specs): Likewise.
	(strftime_flag_specs): Likewise.
	(strfmon_flag_specs): Likewise.
	(print_char_table): Likewise.
	(asm_fprintf_char_table): Likewise.
	(gcc_diag_char_table): Likewise.
	(gcc_tdiag_char_table): Likewise.
	(gcc_cdiag_char_table): Likewise.
	(gcc_cxxdiag_char_table): Likewise.
	(gcc_gfc_char_table): Likewise.
	(scan_char_table): Likewise.
	(time_char_table): Likewis.
	(monetary_char_table): Likewise.
	* c-format.h (BADLEN): Likewise.

2008-06-21  Ian Lance Taylor  <iant@google.com>

	* tree.h (enum tree_code): Include all-tree.def, not tree.def.
	Define END_OF_BASE_TREE_CODES around inclusion.
	* tree.c (tree_code_type): New global array.
	(tree_code_length, tree_code_name): Likewise.
	* Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
	$(lang_tree_files).
	(all-tree.def, s-alltree): New targets.
	(gencheck.h, s-gencheck): Remove.
	(tree.o): Depend upon all-tree.def.
	(build/gencheck.o): Remove gencheck.h dependency.
	(mostlyclean): Don't remove gencheck.h.
	* c-common.h (enum c_tree_code): Remove.
	* c-lang.c (tree_code_type): Remove.
	(tree_code_length, tree_code_name): Remove.
	* gencheck.c (tree_codes): Include all-tree.def, rather than
	tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
	after it is used.
	* tree-browser.c (tb_tree_codes): Include all-tree.def, rather
	than tree.def.
	* cp/cp-tree.h (enum cplus_tree_code): Remove.
	(operator_name_info): Size to MAX_TREE_CODES.
	(assignment_operator_name_info): Likewise.
	* cp/cp-lang.c (tree_code_type): Remove.
	(tree_code_length, tree_code_name): Remove.
	* cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
	(assignment_operator_name_info): Likewise.
	* cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
	MAX_TREE_CODES.
	* cp/mangle.c (write_expression): Likewise.
	* cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
	* fortran/f95-lang.c (tree_code_type): Remove.
	(tree_code_length, tree_code_name): Remove.
	* java/java-tree.h (enum java_tree_code): Remove.
	* java/lang.c (tree_code_type): Remove.
	(tree_code_length, tree_code_name): Remove.
	* java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
	* objc/objc-act.h (enum objc_tree_code): Remove.
	* objc/objc-lang.c (tree_code_type): Remove.
	(tree_code_length, tree_code_name): Remove.
	* objcp/objcp-lang.c (tree_code_type): Remove.
	(tree_code_length, tree_code_name): Remove.
	* ada/ada-tree.h (enum gnat_tree_code): Remove.
	* ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
	* ada/misc.c (tree_code_type): Remove.
	(tree_code_length, tree_code_name): Remove.

2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>

	* tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
	the grand_bitmap_obstack.

2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ggc.h (GGC_RESIZEVAR): New, reorder macros.
	* tracer.c (tail_duplicate): Fix for -Wc++-compat.
	* tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
	* tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
	move_stmt_r, new_label_mapper): Likewise.
	* tree-complex.c (cvc_lookup): Likewise.
	* tree-dfa.c (create_function_ann): Likewise.
	* tree-dump.c (dump_register): Likewise.
	* tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
	find_phi_replacement_condition): Likewise.
	* tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
	tree_function_versioning): Likewise.
	* tree-into-ssa.c (cmp_dfsnum): Likewise.
	* tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
	* tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
	get_nonlocal_debug_decl, convert_nonlocal_reference,
	convert_nonlocal_omp_clauses, get_local_debug_decl,
	convert_local_reference, convert_local_omp_clauses,
	convert_nl_goto_reference, convert_nl_goto_receiver,
	convert_tramp_reference, convert_call_expr): Likewise.
	* tree-outof-ssa.c (contains_tree_r): Likewise.
	* tree-parloops.c (reduction_phi, initialize_reductions,
	eliminate_local_variables_1, add_field_for_reduction,
	add_field_for_name, create_phi_for_local_result,
	create_call_for_reduction_1, create_loads_for_reductions,
	create_stores_for_reduction, create_loads_and_stores_for_name):
	Likewise.
	* tree-phinodes.c (allocate_phi_node): Likewise.
	* tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
	* tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
	* tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
	* tree-ssa-coalesce.c (compare_pairs): Likewise.
	* tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
	memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
	record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
	* tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
	* tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
	vn_nary_op_insert): Likewise.
	* tree-ssa.c (redirect_edge_var_map_add,
	redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
	* tree-vectorizer.c (vectorize_loops): Likewise.
	* tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
	build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
	tree_cons_stat, build1_stat, build_variant_type_copy,
	decl_init_priority_lookup, decl_fini_priority_lookup,
	decl_priority_info, decl_restrict_base_lookup,
	decl_restrict_base_insert, decl_debug_expr_lookup,
	decl_debug_expr_insert, decl_value_expr_lookup,
	decl_value_expr_insert, type_hash_eq, type_hash_lookup,
	type_hash_add, get_file_function_name, tree_check_failed,
	tree_not_check_failed, tree_range_check_failed,
	omp_clause_range_check_failed, build_omp_clause,
	build_vl_exp_stat): Likewise.
	* value-prof.c (gimple_histogram_value,
	gimple_duplicate_stmt_histograms): Likewise.
	* var-tracking.c (attrs_list_insert, attrs_list_copy,
	unshare_variable, variable_union_info_cmp_pos, variable_union,
	dataflow_set_different_1, dataflow_set_different_2,
	vt_find_locations, variable_was_changed, set_variable_part,
	emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
	* varasm.c (prefix_name, emutls_decl, section_entry_eq,
	section_entry_hash, object_block_entry_eq,
	object_block_entry_hash, create_block_symbol,
	initialize_cold_section_name, default_function_rodata_section,
	strip_reg_name, set_user_assembler_name, const_desc_eq,
	build_constant_desc, output_constant_def, lookup_constant_def,
	const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
	create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
	default_internal_label): Likewise.
	* varray.c (varray_init, varray_grow): Likewise.
	* vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.

2008-06-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*jcc_fused_1): Handle all valid compare
	operators for "test" insn.  Macroize insn using SWI mode macro.
	(*jcc_fused_2): Ditto.
	(*jcc_fused_3): Macroize insn using SWI mode macro.
	(*jcc_fused_4): Ditto.

2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>

	* tree-ssa-pre.c: Fix typo in comment.
	(init_antic, fini_antic): Add explicit funtions for
	initializing and deinitializing ANTIC and AVAIL sets.
	(create_expression_by_pieces): Fix typo in comment.
	Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
	(execute_pre): Eventually dump details about ANTIC_IN.

2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* collect2.c (main, add_to_list): Fix for -Wc++-compat.
	* gcc.c (translate_options, init_spec, store_arg, read_specs,
	add_to_obstack, file_at_path, find_a_file, execute,
	add_preprocessor_option, add_assembler_option, add_linker_option,
	process_command, insert_wrapper, do_option_spec, do_self_spec,
	spec_path, do_spec_1, is_directory, main, used_arg,
	getenv_spec_function): Likewise.
	* tlink.c (symbol_hash_lookup, file_hash_lookup,
	demangled_hash_lookup, symbol_push, file_push, frob_extension):
	Likewise.

2008-06-19  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* doc/rtl.texi: Updated subreg section.

2008-06-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/36523
	* cgraphunit.c (cgraph_process_new_functions): Don't clear
	node->needed and node->reachable.
	* cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
	* omp-low.c (delete_omp_context): Call finalize_task_copyfn.
	(expand_task_call): Don't call expand_task_copyfn.
	(expand_task_copyfn): Renamed to...
	(finalize_task_copyfn): ... this.

2008-06-19  Jan Hubicka  <jh@suse.cz>

	* builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
	clobbering framepointer.

2008-06-19  Jan Hubicka  <jh@suse.cz>

	* tree-optimize.c (execute_early_local_optimizations): Set
	cgraph_state only at first invocation.

2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* system.h (-Wc++-compat): Activate as a warning, no an error.

2008-06-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
	instead of "#" in insn asm template.
	(*jcc_fused_2): Ditto.

2008-06-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (ix86_tune_indices)
	[X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
	(TARGET_FUSE_CMP_AND_BRANCH): New define.
	* config/i386/i386.md (*jcc_fused_1): New insn pattern
	(*jcc_fused_2): Ditto.
	* config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
	X86_TUNE_FUSE_CMP_AND_BRANCH targets.
	(print operand): Handle 'E' and 'e' code.

2008-06-19  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (avr_mcu_t): Add attiny13a.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>

	* cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
	node->decl.
	(cgraph_expand_function): Use local copy of decl.
	(cgraph_expand_all_functions): Remove redundant initialization of
	order_pos.
	(cgraph_optimize): Reword internal_error message.

2008-06-19  Chung-Lin Tang  <ctang@marvell.com>

	* arm-protos.h (arm_return_in_memory): Remove public
	arm_return_in_memory() prototype.
	* arm.c (arm_return_in_memory): Add static prototype, add target
	hook macro, change definition and comments.
	* arm.h (TARGET_RETURN_IN_MEMORY): Remove.

2008-06-19  Ben Elliston  <bje@au.ibm.com>

	* dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
	real.c: Remove references to IEEE 754R.
	* doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
	* doc/libgcc.texi (Decimal float library routines): Likewise.

2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* targhooks.h (struct gcc_target): New member unwind_word_mode.
	(default_unwind_word_mode): Add prototype.
	* targhooks.c (default_unwind_word_mode): New function.
	(default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
	instead of word_mode.
	* target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
	(TARGET_INITIALIZER): Use it.

	* c-common.c (handle_mode_attribute): Support "unwind_word"
	mode attribute.
	* unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.

	* except.c (init_eh): Use targetm.unwind_word_mode () instead of
	word_mode to access SjLj_Function_Context member "data".
	(sjlj_emit_dispatch_table): Likewise.  Also, perform type
	conversion from targetm.eh_return_filter_mode () to
	targetm.unwind_word_mode () if they differ.

	* builtin-types.def (BT_UNWINDWORD): New primitive type.
	(BT_FN_UNWINDWORD_PTR): New function type.
	(BT_FN_WORD_PTR): Remove.
	* builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
	* except.c (expand_builtin_extend_pointer): Convert pointer to
	targetm.unwind_word_mode () instead of word_mode.

	* config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
	* config/spu/spu.c (spu_eh_return_filter_mode): Remove.
	(spu_unwind_word_mode): New function.
	(TARGET_EH_RETURN_FILTER_MODE): Do not define.
	(TARGET_UNWIND_WORD_MODE): Define.
	* config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.

2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (reg_align): Remove.
	(regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
	(spu_split_load): Use regno_aligned_for_load instead of reg_align.
	(spu_split_store): Likewise.

2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>

	* gcc/tree-vn.c: Fix typo in comment.

2008-06-18  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (cgraph_optimize): Output debug info when doing
	toplevel reorder too.

2008-06-18  Jan Hubicka  <jh@suse.cz>

	* c-opts.c (c_common_post_options): PCH is not compatible with
	no-unit-at-a-time.
	* opts.c (handle_options): Enable unit-at-a-time at O0 along with
	-fno-toplevel-reorder by default now.

2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR documentation/30739
	* doc/install.texi (Prerequisites): Document dependency on awk.

2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
	    Ian Lance Taylor  <iant@google.com>

	PR rtl-optimization/35604
	* jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
	only want to change jump destinations, not eventual label comparisons.

2008-06-16  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (cgraph_expand_pending_functions): Give up at
	syntax errors.
	(cgraph_analyze_function): Likewise.

2008-06-16  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (cgraph_mark_if_needed): New function.
	* cgraphunit.c (cgraph_mark_if_needed): New function.
	* c-decl.c (duplicate_decl): Use it.

2008-06-16  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_add_new_function): When in expansion state, do
	lowering.

2008-06-16  Jan Hubicka  <jh@suse.cz>

	* tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.

2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
	    Kazu Hirata  <kazu@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com

	* config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
	* config.host: Use driver-native.o and mips/x-native for mips*-linux*.
	* config/mips/linux.h (host_detect_local_cpu): Declare, add to
	EXTRA_SPEC_FUNCTIONS.
	(MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
	(DRIVER_SELF_SPECS): Adjust.
	* config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
	* config/mips/st.h, config/mips/t-st: New.
	* config/mips/driver-native.c, config/mips/x-native: New.
	* doc/invoke.texi (MIPS): Document 'native' value for -march and
	-mtune options.

2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
	from it.
	(ISA_HAS_FP_CONDMOVE): New macro.
	(ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
	(ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
	(ISA_HAS_NMADD3_NMSUB3): New macro.
	* config/mips/mips.c (mips_rtx_costs): Update.
	* config/mips/mips.md (MOVECC): Don't use FP conditional moves when
	compiling for ST Loongson 2E/2F.
	(madd<mode>): Rename to madd4<mode>.  Update.
	(madd3<mode>): New pattern.
	(msub<mode>): Rename to msub4<mode>.  Update.
	(msub3<mode>): New pattern.
	(nmadd<mode>): Rename to nmadd4<mode>.  Update.
	(nmadd3<mode>): New pattern.
	(nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
	(nmadd3<mode>_fastmath): New pattern.
	(nmsub<mode>): Rename to nmsub4<mode>.  Update.
	(nmsub3<mode>): New pattern.
	(nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
	(nmsub3<mode>_fastmath): New pattern.
	(mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.

2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>

	* df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
	(DF_REF_INSN_INFO): New.
	(DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
	(DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
	with a NULL DF_REF_INSN_INFO.
	(DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
	DF_INSN_SET.
	(DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
	DF_INSN_INFO_EQ_USES): New.
	(DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
	DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
	DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
	* df-core.c: Update comment for above changes.
	(df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
	DF_INSN_UID_* macros.
	(df_ref_debug): Check for NULL DF_REF_INSN_INFO.
	* df-scan.c (df_ref_record): Take a df_insn_info instead of an
	insn rtx.  Update all callers.
	(df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
	df_ref_create_structure, df_insn_refs_collect): Likewise.
	(df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
	* df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
	(df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
	macros to access the insn refs.
	(df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
	* fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
	(all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
	for accessing the refs.
	(try_fwprop_subst): Likewise.
	* ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
	* web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
	for accessing the refs.
	* loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
	(check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
	to look at the insn refs.
	(record_uses): Likewise.
	* dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
	function anymore.
	(mark_artificial_uses): Don't mark_insn for artificial refs.
	(mark_reg_rependencies): Likewise.

	* doc/rtl.texi: Remove documentation of ADDRESSOF.

2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>

	* config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>

	* config/avr/avr.c (avr_mcu_t): Add attiny167.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
	* gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.

2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>

	* config/avr/avr.c (avr_mcu_t): Add atmega32u4.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>

	* tree-ssa-sccvn.c: Fix format of comments.

2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>

	* cgraph.c: Remove unneeded forward declarations of eq_node()
	and hash_node().

2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>

	* see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
	REG_RETVAL notes.
	(see_update_relevancy): Likewise.
	* fwprop.c (try_fwprop_subst): Likewise.
	* rtlanal.c (noop_move_p): Likewise.
	* builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
	notes to non-existing libcall blocks.
	* cse.c (cse_insn): Change prototype.  Don't update libcall notes.
	Remove orig_set.
	(cse_extended_basic_block): Don't track libcall and no-conflict notes.
	(dead_libcall_p): Remove.
	(delete_trivially_dead_insns): Don't use it.
	* web.c (union_defs): Remove comment about keeping nops.
	* gcse.c (hash_scan_insn): Don't take libcall pointers.
	(compute_hash_table_work): Don't track libcall notes.
	(do_local_cprop): Don't take libcall pointers.  Don't update
	libcall notes.
	(adjust_libcall_notes): Deleted.
	(local_cprop_pass): Remove stack for nested libcalls (which shouldn't
	ever have existed in the first place).
	(replace_store_insn): Don't try to remove libcall notes.
	* lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
	(resolve_reg_notes): Don't call them.
	(resolve_simple_move): Likewise.
	(decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
	Don't remove REG_RETVAL notes.
	* emit-rtl.c (try_split): Don't update libcall notes.
	(emit_copy_of_insn_after): Dito.
	* cselib.c (cselib_current_insn_in_libcall): Remove.
	(cselib_process_insn): Don't set/clear it.
	(new_elt_loc_list): Don't record it.
	(cselib_init): Don't initialize it.
	* cselib.c (struct elt_loc_list): Remove in_libcall field.
	* loop-invariant.c (find_invariant_insn): Don't look for libcall
	notes.
	* sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
	(sched_analyze): Don't set up deps->libcall_block_tail_insn.
	(init_deps): Don't initialize it.
	* sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
	* combine.c (delete_noop_moves): Don't update libcall notes.
	(can_combine_p): Remove now pointless #if 0 block.
	(try_combine): Remove another obsolete #if 0 block.
	(distribute_notes): Don't distribute libcall notes.
	* reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
	* dce.c (libcall_dead_p): Remove.
	(delete_unmarked_insns): Don't handle libcall blocks.
	(preserve_libcall_for_dce): Remove.
	(prescan_insns_for_dce): Don't special-case libcall block insns.
	* reload1 (reload): Don't handle libcall notes.
	* doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
	documentation.

2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>

	* config/avr/avr.c (avr_mcu_t): Add atmega32c1.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>

	* config/avr/avr.c (avr_mcu_t): Add atmega32m1.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).

2008-06-16  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/36493
	* tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
	the arguments list. Use VECTYPE to create vector pointer.
	(vectorizable_store): Fail if accesses through a pointer to vectype
	do not alias the original memory reference operands.
	Call vect_create_data_ref_ptr without the removed argument.
	(vectorizable_load): Likewise.
	(vect_setup_realignment): Call vect_create_data_ref_ptr without the
	removed argument.

2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>

	PR target/36336
	* config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
	reg_equiv_constant.

2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/mips/loongson2ef.md: New file.
	* config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
	(UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
	(UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
	(UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
	(define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
	and loongson_2f.
	(loongson2ef.md): New include.
	* config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
	(add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
	(loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
	(loongson_gt_<mode>, loongson_extract_halfword)
	(loongson_insert_halfword_0, loongson_insert_halfword_2)
	(loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
	(umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
	(umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
	(loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
	(loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
	(loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
	(sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
	(vec_interleave_low<mode>): Define type attribute.
	* config/mips/mips.c (mips_ls2): New static variable.
	(mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
	(mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
	(sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
	Implement target scheduling hooks.
	(mips_multipass_dfa_lookahead): Update to handle tuning for
	Loongson 2E/2F.
	(mips_sched_init): Initialize data for Loongson scheduling.
	(mips_ls2_variable_issue): New static function.
	(mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
	Add sanity check.
	(TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
	(TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
	* config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
	(ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
	Handle ST Loongson 2E/2F cores.
	(CPU_UNITS_QUERY): Define macro to enable querying of DFA units.

2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* omp-low.c (extract_omp_for_data): Fix comment typo.
	* c.opt: Fix typo.

2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/sourcebuild.texi (Config Fragments): Remove obsolete
	FIXME note about gcc/config.guess.
	* doc/options.texi (Option file format): Remove non-ASCII bytes.
	* doc/cpp.texi: Expand TABs, drop indentation outside examples.
	* doc/cppopts.texi: Likewise.
	* doc/extend.texi: Likewise.
	* doc/gcc.texi: Likewise.
	* doc/gccint.texi: Likewise.
	* doc/gcov.texi: Likewise.
	* doc/gty.texi: Likewise.
	* doc/hostconfig.texi: Likewise.
	* doc/install.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/loop.texi: Likewise.
	* doc/makefile.texi: Likewise.
	* doc/md.texi: Likewise.
	* doc/passes.texi: Likewise.
	* doc/tm.texi: Likewise.
	* doc/tree-ssa.texi: Likewise.
	* doc/trouble.texi: Likewise.

2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
	* config/mips/mips-protos.h (mips_expand_vector_init): New.
	* config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
	builtins.
	* config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
	(mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
	(mips_vector_mode_supported_p): Add V2SImode, V4HImode and
	V8QImode cases.
	(LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
	(CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
	(CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
	(CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
	(CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
	(CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
	(CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
	(CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
	(CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
	(CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
	(CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
	(CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
	(CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
	(CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
	(CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
	(CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
	(mips_builtins): Add Loongson builtins.
	(mips_loongson_2ef_bdesc): New.
	(mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
	(mips_builtin_vector_type): Handle unsigned versions of vector modes.
	(MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
	(MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
	New.
	(mips_expand_vector_init): New.
	* config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
	(TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
	if appropriate.
	* config/mips/mips.md: Add unspec numbers for Loongson
	builtins.  Include loongson.md.
	(MOVE64): Include Loongson vector modes.
	(SPLITF): Include Loongson vector modes.
	(HALFMODE): Handle Loongson vector modes.
	* config/mips/loongson.md: New.
	* config/mips/loongson.h: New.
	* config.gcc: Add loongson.h header for mips*-*-* targets.
	* doc/extend.texi (MIPS Loongson Built-in Functions): New.

2008-06-14  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
	h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
	i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
	iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
	m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
	m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
	mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
	mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
	mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
	mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
	powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
	sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
	sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
	sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
	sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
	v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
	Remove use_fixproto=yes.
	(ia64*-*-hpux*): Remove comment about using fixproto.
	(m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.

2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac: Update gthr-default.h lazily, to avoid unneeded
	library rebuilds.
	* configure: Regenerate.

2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/36520
	* builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
	before evaluating it.

2008-06-13  Jakub Jelinek  <jakub@redhat.com>

	PR c/36507
	* c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
	nested inline functions.
	(start_decl, start_function): Don't invert DECL_EXTERNAL
	for nested inline functions.

2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
	splits that must be made for correctness.

2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
	(AVAIL_NON_MIPS16): Likewise.
	(mips_builtin_description): Replace target_flags with a predicate.
	(paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
	(dspr2_32): New availability predicates.
	(MIPS_BUILTIN): New macro.
	(DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
	(CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
	(DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
	Replace the TARGET_FLAGS parameters with AVAIL parameters.
	(mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
	(mips_dsp_32only_bdesc): Merge into...
	(mips_builtins): ...this new array.
	(mips_bdesc_map, mips_bdesc_arrays): Delete.
	(mips_init_builtins): Update after above changes.
	(mips_expand_builtin_1): Merge into...
	(mips_expand_builtin): ...here and update after above changes.

2008-06-12  Paul Brook  <paul@codesourcery.com>

	* longlong.h (__arm__): Define count_leading_zeros.
	* config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
	(clzsi2, clzdi2): New functions.
	* config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
	* config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
	* config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
	* config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
	* config/arm/t-pe (LIB1ASMFUNCS): Ditto.
	* config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
	* config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
	* config/arm/t-linux (LIB1ASMFUNCS): Ditto.
	* config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
	* config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.

2008-06-12  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.c (m68k_tune_flags): New.
	(override_options): Compute m68k_tune_flags.
	(MULL_COST, MULW_COST): Update for various variants of CFV2.
	* config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.

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

	PR middle-end/36506
	* omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.

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

	* tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
	TREE_THIS_VOLATILE on INDIRECT_REF nodes.

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

	* expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
	(get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.

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

	PR middle-end/36506
	* omp-low.c (expand_omp_sections): Handle #pragma omp sections with
	reductions.

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

	PR tree-optimization/36345
	* tree-flow.h (struct ptr_info_def): Align escape_mask,
	add memory_tag_needed flag.
	(may_alias_p): Declare.
	* tree-ssa-alias.c (may_alias_p): Export.
	(set_initial_properties): Use memory_tag_needed flag.
	(update_reference_counts): Likewise.
	(reset_alias_info): Reset memory_tag_needed flag.
	(create_name_tags): Check memory_tag_needed flag.
	(dump_points_to_info_for): Dump it.
	* tree-ssa-structalias.c (struct variable_info): Remove
	directly_dereferenced flag.
	(new_var_info): Do not initialize it.
	(process_constraint_1): Do not set it.
	(update_alias_info): Set is_dereferenced flag.
	(set_uids_in_ptset): Use may_alias_p.
	(set_used_smts): Check memory_tag_needed flag.
	(find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
	* tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
	memory_tag_needed flag.
	* tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
	from broken design.

2008-06-12  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.c (ix86_compute_frame_layout): Disable
	red zone for w64 abi.
	(ix86_expand_prologue): Likewise.
	(ix86_force_to_memory): Likewise.
	(ix86_free_from_memory): Likewise.

2008-06-11  Edmar Wienskoski  <edmar@freescale.com>

	PR target/36425
	* config/rs6000/rs6000.c (rs6000_override_options): Set
	rs6000_isel conditionally to the absence of comand line override.
	* config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
	Remove duplicate rs6000_isel setting.
	* config/rs6000/eabispe.h: Ditto.

2008-06-11  Richard Guenther  <rguenther@suse.de>

	* alias.c (get_alias_set): Use the element alias-set for arrays.
	(record_component_aliases): For arrays and vectors do nothing.
	* c-common.c (strict_aliasing_warning): Handle the cases
	of alias set zero explicitly.
	* Makefile.in (dfp.o-warn): Add -Wno-error.

2008-06-11  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
	tune_32 tune_64.
	(i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
	tune_32 tune_64 to supported_defaults.  Allow values not
	supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
	x86_64.  Do not override cpu_32 or cpu_64 values from target name.
	(i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
	with_cpu_64 to generic for 64-bit-supporting configurations, not
	with_cpu.  Remove FIXMEs.
	* doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
	--with-arch-64, --with-tune-32, --with-tune-64): Document.
	* config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
	(OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
	arch_32 and arch_64.

2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>

	* builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
	Use DECL_SIZE_UNIT to retrieve the size of the field.

2008-06-11  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/arm.c (arm_init_neon_builtins): Move initialization
	with function calls after declarations.  Lay out
	neon_float_type_node before further use.

2008-06-11  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (may_point_to_global_var): Declare.
	* tree-ssa-alias.c (may_point_to_global_var): New function.
	* tree-ssa-sink.c (is_hidden_global_store): Use it.

2008-06-10  Kazu Hirata  <kazu@codesourcery.com>

	* configure.ac: Teach that fido supports .debug_line.
	* configure: Regenerate.

2008-06-10  Tom Tromey  <tromey@redhat.com>

	* c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
	debug hook.

2008-06-10  Joseph Myers  <joseph@codesourcery.com>

	* dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
	(encode_decimal64, decode_decimal64, encode_decimal128,
	decode_decimal128): Reverse order of 32-bit parts of value if host
	and target endianness differ.

2008-06-10  Vinodha Ramasamy  <vinodha@google.com>

	* value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
	Avoid division by 0.
	(tree_mod_pow2_value_transform): Likewise.
	(tree_ic_transform): Likewise.
	(tree_stringops_transform): Likewise.
	(tree_mod_subtract_transform): Likewise.
	* tree-inline-c (copy_bb): Corrected int type to gcov_type.
	(copy_edges_for_bb): Likewise.
	(initialize_cfun): Likewise.

2008-06-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
	nonmemory_operand. Add "N" operand constraint.
	(*btsi): Ditto.
	(*jcc_btdi_mask_rex64): New instruction and split pattern.
	(*jcc_btsi_mask): Ditto.
	(*jcc_btsi_mask_1): Ditto.

2008-06-10  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/rs6000.c (build_opaque_vector_type): Set
	TYPE_CANONICAL for copied element type.

2008-06-10  Uros Bizjak  <ubizjak@gmail.com>

	PR target/36473
	* config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
	Add m_CORE2 and m_GENERIC.
	* config/i386/predicates.md (bt_comparison_operator): New predicate.
	* config/i386/i386.md (*btdi_rex64): New instruction pattern.
	(*btsi): Ditto.
	(*jcc_btdi_rex64): New instruction and split pattern.
	(*jcc_btsi): Ditto.
	(*jcc_btsi_1): Ditto.
	(*btsq): Fix Intel asm dialect operand order.
	(*btrq): Ditto.
	(*btcq): Ditto.

2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>

	PR middle-end/36447
	* simplify-rtx.c (simplify_subreg): Add check for shift count
	greater than size.

2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>

	* doc/md.texi: Synchronize with later constraints.md change.
	* longlong.h (umul_ppmm): Replace the MIPS asm implementation
	with a C implementation.
	* config/mips/mips.c (mips_legitimize_move): Remove MFHI and
	MFLO handling.
	(mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
	(mips_split_doubleword_move): Use special MTHI and MFHI instructions
	when moving to and from MD_REGNUM.
	(mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
	Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
	Handle byte and halfword moves.
	(mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
	separately.
	* config/mips/constraints.md (h): Turn into NO_REGS.
	(l, x): Update documentation.
	* config/mips/mips.md (UNSPEC_MFHILO): Delete.
	(UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
	(UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
	(HILO): New mode iterator.
	(MOVE128): Add TI.
	(any_div): New code iterator.
	(u): Extend code attribute to div and udiv.
	(*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
	d_operand in the splitters.  Remove redundant CONST_INT checks.
	(mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
	(*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
	(*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
	accordingly, using normal moves instead of unspecs to move LO into
	a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
	(<u>mulsidi3): Handle expansion in C code.
	(<u>mulsidi3_32bit_internal): Rename to...
	(<u>mulsidi3_32bit): ...this.
	(<u>mulsidi3_32bit_r4000): Fix insn separator.
	(*<u>mulsidi3_64bit): Rename to...
	(<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
	into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
	to set LO and HI to the multiplication result.  Use a normal move
	for MFLO and an unspec for MFHI.
	(*<u>mulsidi3_64bit_parts): Replace with...
	(<u>mulsidi3_64bit_hilo): ...this new instruction.
	(<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
	(<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
	and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
	instead of HI.  Split the instruction into a separate multiplication
	and MFHI if !TARGET_FIX_R4000.
	(<su>muldi3_highpart): Likewise.
	(<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
	and the "=h" clobber.
	(*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
	(<u>mulditi3): New expander.
	(<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
	(madsi): Remove "=h" clobber.
	(divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
	Force the modulus result to be a GPR and split the instruction into
	a division followed by an MFHI after reload.
	(<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
	(*lea_high64): Use d_operand in the define_peephole2.  Likewise
	the MIPS16 HIGH define_split.
	(*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
	of acc<->gpr moves to "multi".
	(*movdi_64bit): Replace the single "x" alternative with
	alternatives for moving into and out of "a".
	(*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
	(*movsi_internal): Extend the "d<-A" alternative to "d<-a".
	(*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
	Use d_operand in the splitters.  Remove redundant CONST_INT checks.
	(*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
	(movti): New expander.
	(*movti, *movti_mips16): New insns.
	(mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
	(mfhi<GPR:mode>_<HILO:mode>): New pattern.
	(mthi<GPR:mode>_<HILO:mode>): Likewise.
	* config/mips/predicates.md (fpr_operand): Delete.
	(d_operand): New predicate.

2008-06-09  Michael Meissner  <michael.meissner@amd.com>

	* config.gcc (i[34567]86-*-*): Put test in quotes to prevent
	failure on some Bourne shells.
	(x86_64-*-*): Ditto.

2008-06-09  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.

2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/install.texi (*-*-solaris2*): Remove obsolete contents.
	(sparc-sun-solaris2*): Likewise.

2008-06-09  Arnaud Charlet  <charlet@adacore.com

	* doc/install.texi: Update requirements to build the Ada compiler.

2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>

	* df-scan.c (struct df_scan_problem_data): Remove the
	mw_link_pool alloc pool.
	(df_scan_free_internal): Don't free it.
	(df_scan_alloc): Don't allocate it.
	* df.h (struct df_link): Update comment.

2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>

	* except.h: Correct checks for when SJLJ exceptions must be used.

2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* doc/invoke.texi (Wenum-compare): Mention that it is enabled by
	default.

2008-06-08  Joseph Myers  <joseph@codesourcery.com>

	PR tree-optimization/36218
	* configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
	configure for the build system.
	(BUILD_LDFLAGS): Define.
	* configure: Regenerate.
	* Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.

2008-07-08  Anatoly Sokolov  <aesok@post.ru>

	PR target/36424
	* config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
	* config/avr/avr.c (avr_hard_regno_rename_ok): New function.
	* config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.

2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.

2008-06-07  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (Obsolete configurations): Remove list of
	configurations.
	(Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
	*-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
	targets matched by those patterns.
	(strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
	m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
	alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
	arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
	hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
	i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
	i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
	i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
	i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
	mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
	powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
	powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
	strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
	vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
	i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
	Make code for Solaris 7 and greater unconditional for Solaris.
	(ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
	Remove --with-* handling.
	* config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
	(LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
	ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
	LINK_OS_WINDISS_SPEC): Remove.
	* config/rs6000/sysv4.opt (mwindiss): Remove.
	* configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
	* configure: Regenerate.
	* doc/cpp.texi: Don't mention BeOS.
	* doc/extend.texi (interrupt): Don't mention MS1.
	* doc/install.texi (i386-@var{any}-sysv, m68k-bull-sysv,
	m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
	alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
	i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
	powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
	Remove.
	* doc/invoke.texi (MT Options): Remove.
	(-mwindiss): Remove.
	(CRIS Options): Remove cris-axis-aout references.
	(HPPA Options): Don't mention hppa1.1-*-pro.
	* doc/md.texi (MorphoTech family): Remove.
	* libgcc2.c: Don't handle UWIN.
	* config/alpha/t-unicosmk: Remove.
	* config/alpha/unicosmk.h: Remove.
	* config/arm/kaos-arm.h: Remove.
	* config/arm/kaos-strongarm.h: Remove.
	* config/arm/strongarm-coff.h: Remove.
	* config/arm/strongarm-elf.h: Remove.
	* config/arm/strongarm-pe.h: Remove.
	* config/arm/t-strongarm-pe: Remove.
	* config/arm/t-xscale-coff: Remove.
	* config/arm/t-xscale-elf: Remove.
	* config/arm/xscale-coff.h: Remove.
	* config/arm/xscale-elf.h: Remove.
	* config/chorus.h: Remove.
	* config/cris/aout.h: Remove.
	* config/cris/aout.opt: Remove.
	* config/cris/t-aout: Remove.
	* config/i386/beos-elf.h: Remove.
	* config/i386/kaos-i386.h: Remove.
	* config/i386/ptx4-i.h: Remove.
	* config/i386/sco5.h: Remove.
	* config/i386/sco5.opt: Remove.
	* config/i386/sysv4-cpp.h: Remove.
	* config/i386/sysv5.h: Remove.
	* config/i386/t-beos: Remove.
	* config/i386/t-sco5: Remove.
	* config/i386/t-uwin: Remove.
	* config/i386/uwin.asm: Remove.
	* config/i386/uwin.h: Remove.
	* config/kaos.h: Remove.
	* config/mips/windiss.h: Remove.
	* config/mt: Remove directory.
	* config/pa/pa-osf.h: Remove.
	* config/pa/pa-pro-end.h: Remove.
	* config/pa/t-pro: Remove.
	* config/ptx4.h: Remove.
	* config/rs6000/beos.h: Remove.
	* config/rs6000/kaos-ppc.h: Remove.
	* config/rs6000/t-beos: Remove.
	* config/rs6000/windiss.h: Remove.
	* config/sh/kaos-sh.h: Remove.
	* config/sol2-6.h: Remove.
	* config/sparc/sol26-sld.h: Remove.
	* config/sparc/sysv4-only.h: Remove.
	* config/vax/bsd.h: Remove.
	* config/vax/t-memfuncs: Remove.
	* config/vax/ultrix.h: Remove.
	* config/vax/vaxv.h: Remove.
	* config/windiss.h: Remove.

2008-06-06  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/36438
	* cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
	for vector shifts with constant scalar shift operands.

2008-06-06  Sandip Matte  <sandip@rmicorp.com>

	* doc/invoke.texi: Document -march=xlr.
	* config/mips/xlr.md: New file.
	* config/mips/mips.md: Include it.
	(cpu): Add "xlr".
	* config/mips/mips.h (PROCESSOR_XLR): New processor_type.
	* config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
	(mips_rtx_cost_data): Likewise.

2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
	PRE_INC and PRE_DEC cases.

2008-06-06  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/36419
	* except.c (expand_resx_expr): Call do_pending_stack_adjust () before
	the emitting jump insn.

	PR target/36362
	* gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
	is not bool, boolify the whole *expr_p and convert to the desired type.

2008-06-06  Jakub Jelinek  <jakub@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
	* langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
	Add omp_private_outer_ref hook, add another argument to
	omp_clause_default_ctor hook.
	* langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
	(LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
	(LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
	hook_tree_tree_tree_tree_null.
	(LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
	LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
	* hooks.c (hook_tree_tree_tree_tree_null): New function.
	* hooks.h (hook_tree_tree_tree_tree_null): New prototype.
	* tree.def (OMP_TASK): New tree code.
	* tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
	OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
	OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
	OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
	OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
	OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
	OMP_CLAUSE_COLLAPSE_EXPR): Define.
	(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
	(OMP_DIRECTIVE_P): Add OMP_TASK.
	(OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
	(OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
	* tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
	and OMP_CLAUSE_UNTIED entries.
	(omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
	num_ops to 2.
	(walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
	Walk OMP_CLAUSE_LASTPRIVATE_STMT.
	* tree-pretty-print.c (dump_omp_clause): Handle
	OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
	OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
	(dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
	* c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
	warning about unsigned iterators.  Change decl/init/cond/incr
	arguments to TREE_VECs, check arguments for all collapsed loops.
	(c_finish_omp_taskwait): New function.
	(c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
	ws_clauses.
	* c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
	default_function_array_conversion on init.  Add par_clauses argument.
	If decl is present in parallel's lastprivate clause, change it to
	shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
	Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
	collapse count in clauses.
	(c_parser_omp_for, c_parser_omp_parallel): Adjust
	c_parser_omp_for_loop callers.
	(OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
	(c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
	(c_parser_omp_clause_name): Handle collapse and untied clauses.
	(c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
	functions.
	(c_parser_omp_clause_schedule): Handle schedule(auto).
	Include correct location in the error message.
	(c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
	and PRAGMA_OMP_CLAUSE_UNTIED.
	(OMP_TASK_CLAUSE_MASK): Define.
	(c_parser_omp_task, c_parser_omp_taskwait): New functions.
	(c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
	* tree-nested.c (convert_nonlocal_omp_clauses,
	convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
	OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
	OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
	Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
	OMP_CLAUSE_DECL.
	(conver_nonlocal_reference, convert_local_reference,
	convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
	OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
	(walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
	* tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
	* c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
	* c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
	(PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
	* c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
	(c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
	OMP_CLAUSE_UNTIED.
	* c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
	* c-common.h (c_finish_omp_taskwait): New prototype.
	* gimple-low.c (lower_stmt): Handle OMP_TASK.
	* tree-parloops.c (create_parallel_loop): Create 1 entry
	vectors for OMP_FOR_{INIT,COND,INCR}.
	* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
	(make_edges): Handle OMP_TASK.
	* tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
	loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
	* tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
	* builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
	BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
	BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
	* omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
	BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
	BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
	BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
	BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
	BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
	BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
	* gimplify.c (gimplify_omp_for): Allow pointer type for decl,
	handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
	original iterator is present in lastprivate clause or if
	collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
	OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
	(gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
	(enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
	(omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
	if it is set, lookup var in outer contexts too.  Handle
	OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
	to be implicitly determined firstprivate for task regions.
	(gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
	if it is set, lookup var in outer contexts too.  Set
	OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
	Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
	OMP_CLAUSE_UNTIED.  Take region_type as last argument
	instead of in_parallel and in_combined_parallel.
	(gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
	Adjust callers.
	(gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
	GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
	(new_omp_context): Set default_kind to
	OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
	(omp_region_type): New enum.
	(struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
	fields, add region_type.
	(new_omp_context): Take region_type as argument instead of is_parallel
	and is_combined_parallel.
	(gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
	omp_is_private, omp_check_private): Adjust ctx->is_parallel and
	ctx->is_combined_parallel checks.
	(gimplify_omp_task): New function.
	(gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
	OMP_CLAUSE_UNTIED.
	* omp-low.c (extract_omp_for_data): Use schedule(static)
	for schedule(auto).  Handle pointer and unsigned iterators.
	Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
	Add loops argument.  Extract data for collapsed OMP_FOR loops.
	(expand_parallel_call): Assert sched_kind isn't auto,
	map runtime schedule to index 3.
	(struct omp_for_data_loop): New type.
	(struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
	Add loop, loops, collapse and iter_type fields.
	(workshare_safe_to_combine_p): Disallow combined for if
	iter_type is unsigned long long.  Don't combine collapse > 1 loops
	unless all bounds and steps are constant.  Adjust extract_omp_for_data
	caller.
	(expand_omp_for_generic): Handle pointer, unsigned and long long
	iterators.  Handle collapsed OMP_FOR loops.  Adjust
	for struct omp_for_data changes.  If libgomp function doesn't return
	boolean_type_node, add comparison of the return value with 0.
	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
	pointer, unsigned and long long iterators.  Adjust for struct
	omp_for_data changes.
	(expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
	to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
	unsigned long long.  Allocate loops array, pass it to
	extract_omp_for_data.  For collapse > 1 loops use always
	expand_omp_for_generic.
	(omp_context): Add sfield_map and srecord_type fields.
	(is_task_ctx, lookup_sfield): New functions.
	(use_pointer_for_field): Use is_task_ctx helper.  Change first
	argument's type from const_tree to tree.  Clarify comment.
	In OMP_TASK disallow copy-in/out sharing.
	(build_sender_ref): Call lookup_sfield instead of lookup_field.
	(install_var_field): Add mask argument.  Populate both record_type
	and srecord_type if needed.
	(delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
	in srecord_type.
	(fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
	and DECL_FIELD_OFFSET.
	(scan_sharing_clauses): Adjust install_var_field callers.  For
	firstprivate clauses on explicit tasks allocate the var by value in
	record_type unconditionally, rather than by reference.
	Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
	Use is_taskreg_ctx instead of is_parallel_ctx.
	Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
	(create_omp_child_function_name): Add task_copy argument, use
	*_omp_cpyfn* names if it is true.
	(create_omp_child_function): Add task_copy argument, if true create
	*_omp_cpyfn* helper function.
	(scan_omp_parallel): Adjust create_omp_child_function callers.
	Rename parallel_nesting_level to taskreg_nesting_level.
	(scan_omp_task): New function.
	(lower_rec_input_clauses): Don't run constructors for firstprivate
	explicit task vars which are initialized by *_omp_cpyfn*.
	Pass outer var ref to omp_clause_default_ctor hook if
	OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
	Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
	OMP_CLAUSE_REDUCTION_INIT.
	(lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
	avoid duplicate setting of fields.  Handle
	OMP_CLAUSE_PRIVATE_OUTER_REF.
	(lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
	copy-out if TREE_READONLY, only copy-in.
	(expand_task_copyfn): New function.
	(expand_task_call): New function.
	(struct omp_taskcopy_context): New type.
	(task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
	New functions.
	(lower_omp_parallel): Rename to...
	(lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
	Call create_task_copyfn if srecord_type is needed.  Adjust
	sender_decl type.
	(task_shared_vars): New variable.
	(check_omp_nesting_restrictions): Warn if work-sharing,
	barrier, master or ordered region is closely nested inside OMP_TASK.
	Add warnings for barrier if closely nested inside of work-sharing,
	ordered, or master region.
	(scan_omp_1): Call check_omp_nesting_restrictions even for
	GOMP_barrier calls.  Rename parallel_nesting_level to
	taskreg_nesting_level.  Handle OMP_TASK.
	(lower_lastprivate_clauses): Even if some lastprivate is found on a
	work-sharing construct, continue looking for them on parent parallel
	construct.
	(lower_omp_for_lastprivate): Add lastprivate clauses
	to the beginning of dlist rather than end.  Adjust for struct
	omp_for_data changes.
	(lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
	not after it.  Handle collapsed OMP_FOR loops, adjust for
	OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
	(get_ws_args_for): Adjust extract_omp_for_data caller.
	(scan_omp_for): Handle collapsed OMP_FOR
	loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
	(lower_omp_single_simple): If libgomp function doesn't return
	boolean_type_node, add comparison of the return value with 0.
	(diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
	loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
	(parallel_nesting_level): Rename to...
	(taskreg_nesting_level): ... this.
	(is_taskreg_ctx): New function.
	(build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
	of is_parallel_ctx.
	(execute_lower_omp): Rename parallel_nesting_level to
	taskreg_nesting_level.
	(expand_omp_parallel): Rename to...
	(expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
	Call omp_task_call for OMP_TASK regions.
	(expand_omp): Adjust caller, handle OMP_TASK.
	(lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.

	* bitmap.c (bitmap_default_obstack_depth): New variable.
	(bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
	if argument is NULL and bitmap_default_obstack is already initialized.
	* ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
	at the end.
	* matrix-reorg.c (matrix_reorg): Likewise.

2008-06-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*indirect_jump): Macroize using P
	mode iterator.  Remove !TARGET_64BIT from insn constraints.
	(*tablejump_1): Ditto.
	(*indirect_jump_rex64): Remove insn pattern.
	(*tablejump_1_rex64): Ditto.
	(eh_return_<mode>): Macroize using P mode iterator from eh_return_di
	and eh_return_si insn patterns.

2008-06-06  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (merge_smts_into): Remove.
	(find_what_p_points_to): Do not bother to compute the
	points-to set for pt_anything pointers.
	* tree-ssa-operands.c (get_addr_dereference_operands): No NMT
	for pt_anything pointers is ok.

2008-06-06  Jan Hubicka  <jh@suse.cz>

	* passes.c (execute_ipa_pass_list): Do not regenerate summaries.

2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* cgraph.c: Fix typos in comments.
	(cgraph_availability_names): Fix string typo.
	* fold-const.c: Fix typos in comments.
	(fold_binary): Fix typo in warning.
	* genautomata.c: Fix typos in comments.
	(check_presence_pattern_sets): Fix typo in local variable.
	(output_description): Fix typo in output.
	* ggc-zone.c (ggc_pch_finish): Fix typo in error message.
	* hwint.h: Likewise.
	* matrix-reorg.c (check_allocation_function): Likewise.
	* omega.c (smooth_weird_equations): Likewise.
	* auto-inc-dec.c: Fix typos in comments.
	* bb-reorder.c: Likewise.
	* builtins.c: Likewise.
	* c-common.c: Likewise.
	* c-cppbuiltin.c: Likewise.
	* c-parser.c: Likewise.
	* c-pretty-print.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfgexpand.c: Likewise.
	* cfghooks.c: Likewise.
	* cfglayout.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cgraphunit.c: Likewise.
	* coverage.c: Likewise.
	* dbxout.c: Likewise.
	* df-byte-scan.c: Likewise.
	* df-core.c: Likewise.
	* df-problems.c: Likewise.
	* df-scan.c: Likewise.
	* dfp.c: Likewise.
	* dominance.c: Likewise.
	* domwalk.c: Likewise.
	* dse.c: Likewise.
	* dwarf2out.c: Likewise.
	* emit-rtl.c: Likewise.
	* et-forest.c: Likewise.
	* function.c: Likewise.
	* function.h: Likewise.
	* gcc.c: Likewise.
	* gcov-io.c: Likewise.
	* gcov.c: Likewise.
	* gcse.c: Likewise.
	* genattrtab.c: Likewise.
	* ggc-page.c: Likewise.
	* gimplify.c: Likewise.
	* gthr-lynx.h: Likewise.
	* haifa-sched.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-prop.h: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-struct-reorg.c: Likewise.
	* ipa-struct-reorg.h: Likewise.
	* ipa-type-escape.c: Likewise.
	* ipa.c: Likewise.
	* loop-doloop.c: Likewise.
	* mips-tfile.c: Likewise.
	* mkmap-flat.awk: Likewise.
	* mkmap-symver.awk: Likewise.
	* modulo-sched.c: Likewise.
	* omp-low.c: Likewise.
	* optabs.c: Likewise.
	* optabs.h: Likewise.
	* opts.c: Likewise.
	* passes.c: Likewise.
	* postreload-gcse.c: Likewise.
	* postreload.c: Likewise.
	* predict.c: Likewise.
	* pretty-print.h: Likewise.
	* profile.c: Likewise.
	* protoize.c: Likewise.
	* ra-conflict.c: Likewise.
	* real.c: Likewise.
	* recog.c: Likewise.
	* regclass.c: Likewise.
	* regs.h: Likewise.
	* reload.c: Likewise.
	* rtl-error.c: Likewise.
	* rtlanal.c: Likewise.
	* scan.h: Likewise.
	* sched-rgn.c: Likewise.
	* see.c: Likewise.
	* stmt.c: Likewise.
	* target.h: Likewise.
	* tree-dfa.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-flow-inline.h: Likewise.
	* tree-inline.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-pass.h: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-alias-warnings.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-live.h: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-ter.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-vect-analyze.c: Likewise.
	* tree-vect-transform.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vn.c: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.
	* tree.def: Likewise.
	* tree.h: Likewise.
	* unwind-dw2-fde.c: Likewise.
	* unwind.inc: Likewise.
	* value-prof.c: Likewise.
	* vmsdbgout.c: Likewise.

2008-06-05  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
	always place FP constants in the TOC for TARGET_POWERPC64.
	* config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.

2008-06-05  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
	* config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
	enable for TARGET_E500_DOUBLE.
	(*movdd_softfloat32): Also enable for !TARGET_FPRS.
	* config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
	floating-point modes like integer modes for E500 double.
	(rs6000_legitimate_offset_address_p): Likewise.
	(rs6000_legitimize_address): Likewise.  Do not allow REG+REG
	addressing for DDmode for E500 double.
	(rs6000_hard_regno_nregs): Do not treat decimal floating-point
	modes as using 64-bits of registers for E500 double.
	(spe_build_register_parallel): Do not handle DDmode or TDmode.
	(rs6000_spe_function_arg): Do not handle DDmode or TDmode
	specially for E500 double.
	(function_arg): Do not call rs6000_spe_function_arg for DDmode or
	TDmode for E500 double.
	(rs6000_gimplify_va_arg): Only handle SDmode in registers
	specially if TARGET_HARD_FLOAT && TARGET_FPRS.
	(rs6000_split_multireg_move): Do not handle TDmode specially for
	E500 double.
	(spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
	using 64-bit registers for E500 double.
	(emit_frame_save): Do not handle DDmode specially for E500 double.
	(gen_frame_mem_offset): Likewise.
	(rs6000_function_value): Do not call spe_build_register_parallel
	for DDmode or TDmode.
	(rs6000_libcall_value): Likewise.
	* config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
	DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
	for E500 double.

2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
	in comments.

2008-06-04  Junjie Gu  <jgu@tensilica.com>

	* config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
	comparison for frame pointers.

2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>

	PR target/27386
	* config/avr/avr.h (PUSH_ROUNDING): Remove.

2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>

	PR target/30243
	* builtins.c (expand_builtin_signbit): Don't take lowpart when
	register is already smaller or equal to required mode.

2008-06-04  Xinliang David Li  <davidxl@google.com>

	* tree-call-cdce.c: New file.
	(cond_dead_built_in_calls): New static variable.
	(input_domain): New struct.
	(check_pow): New function.
	(check_builtin_call): Ditto.
	(check_target_format): Ditto.
	(is_call_dce_candidate): Ditto.
	(gen_one_condition): Ditto.
	(gen_conditions_for_domain): Ditto.
	(get_domain): Ditto.
	(gen_conditions_for_pow_cst_base): Ditto.
	(gen_conditions_for_pow_int_base): Ditto.
	(gen_conditions_for_pow): Ditto.
	(get_no_error_domain): Ditto.
	(gen_shrink_wrap_conditions): Ditto.
	(shrink_wrap_one_built_in_call): Ditto.
	(shink_wrap_conditional_dead_built_in_calls): Ditto.
	(tree_call_cdce): Ditto.
	(gate_call_cdce): Ditto.
	(pass_call_cdce): New gimple pass.
	* passes.c (init_optimization_passes): New pass.
	* tree-pass.h: New pass declaration.
	* opts.c (decode_options): New flag setting.
	* common.opt: Add -ftree-builtin-call-dce flag.
	* Makefile.in: Add new source file.
	* tempvar.def: New tv_id.
	* doc/invoke.texi (-ftree-builtin-call-dce): New flag.

2008-06-04  Richard Guenther  <rguenther@suse.de>

	* tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
	(is_call_clobbered): Always check var_ann->call_clobbered.
	(mark_call_clobbered): Always set var_ann->call_clobbered.
	(clear_call_clobbered): Always clear var_ann->call_clobbered.
	* tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
	(reset_alias_info): Clear call clobbering info on MTAGs and
	globals as well.
	(set_pt_anything): Set pt_global_mem.
	(create_tag_raw): Adjust comment.
	(may_be_aliased): Do not check TREE_PUBLIC on MTAGs.

2008-06-04  Joseph Myers  <joseph@codesourcery.com>
	    Maxim Kuvyrkov  <maxim@codesourcery.com>

	* config/m68k/m68k.opt (mxgot): New option.
	* config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
	(m68k_output_addr_const_extra): New.
	* config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
	* config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
	* config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
	* doc/invoke.texi (M680x0 Options): Document -mxgot.

2008-06-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
	negative or non-representable offsets.

2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_gen_leave): New.
	(ix86_gen_pop1): Likewise.
	(ix86_gen_add3): Likewise.
	(ix86_gen_sub3): Likewise.
	(ix86_gen_sub3_carry): Likewise.
	(ix86_gen_one_cmpl2): Likewise.
	(ix86_gen_monitor): Likewise.
	(override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
	ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
	ix86_gen_one_cmpl2 and ix86_gen_monitor.
	(ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
	(output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
	mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
	(ix86_expand_epilogue): Updated.
	(print_operand): Handle integer register operand for 'z'.
	(ix86_expand_strlensi_unroll_1): Likewise.
	(ix86_expand_strlen): Likewise.
	(ix86_expand_builtin): Likewise.
	(x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
	mov{q}/mov{l} and add{q}/add{l}.

2008-06-03  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.md (P): New mode iterator.
	(SFmode push_operand splitter): Macroize DImode and SImode pushes
	using P mode iterator.
	(DFmode push_operand splitter): Ditto.
	(XFmode push_operand splitter): Ditto.
	(DFmode float_extend SFmode push_operand splitter): Ditto.
	(XFmode float_extend SFmode push_operand splitter): Do not generate
	SImode pushes for 64bit target.  Macroize Dimode and SImode
	pushes using P mode iterator.
	(XFmode float_extend DFmode push_operand splitter): Ditto.

2008-06-03  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
	* config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
	* config/i386/i386.c (ix86_reg_parm_stack_space): Changed
	return type to int.
	(ix86_call_abi_override): Remove check for call_used_regs.

2008-06-03  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (find_func_aliases): Add constraints
	for the lhs of calls if the return type contains pointers.

2008-06-03  Kai Tietz  <kai.tietz@onevision.com>

	* doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
	* doc/extend.texi (ms_abi,sysv_abi): New attribute description.
	* function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
	* config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
	of cfun and DEFAULT_ABI to deceide abi mode.
	(DEFAULT_ABI): New.
	(REG_PARM_STACK_SPACE): Removed.
	(OUTGOING_REG_PARM_STACK_SPACE): Removed.
	(STACK_BOUNDARY): Use default target to deceide stack boundary.
	* config/i386/i386-protos.h (ix86_cfun_abi): New.
	(ix86_function_abi): Likewise.
	(ix86_function_type_abi): Likewise.
	(ix86_call_abi_override): Likewise.
	* confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
	specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
	* config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
	(X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
	specific defines.
	(ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
	(ix86_function_regparm): Handle user calling abi.
	(ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
	by DEFAULT_ABI versus SYSV_ABI check.
	(ix86_reg_parm_stack_space): New.
	(ix86_function_type_abi): New.
	(ix86_call_abi_override): New.
	(ix86_function_abi): New.
	(ix86_cfun_abi): New.
	(init_cumulative_args): Call abi specific initialization.
	(function_arg_advance): Remove TARGET_64BIT_MS_ABI.
	(function_arg_64): Extend SSE_REGPARM_MAX check.
	(function_arg (): Remove TARGET_64BIT_MS_ABI.
	(ix86_pass_by_reference): Likewise.
	(ix86_function_value_regno_p): Likewise.
	(function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
	(ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
	(return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
	(ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
	(setup_incoming_varargs_64): Adjust regparm for call abi.
	(ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
	(ix86_va_start): Likewise.
	(ix86_gimplify_va_arg): Likewise.
	(ix86_expand_prologue): Likewise.
	(output_pic_addr_const): Likewise.
	(ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
	(x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
	(x86_output_mi_thunk): Likewise.
	(x86_function_profiler): Likewise.
	* config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
	(SYSV_ABI, MS_ABI): New constants.
	(DEFAULT_ABI): New.
	(init_regs): Add prototype of function in regclass.c file.
	(OVERRIDE_ABI_FORMAT): New.
	(CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
	(REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
	(OUTGOING_REG_PARM_STACK_SPACE): New.
	(ix86_reg_parm_stack_space): New prototype.
	(CUMULATIVE_ARGS): Add call_abi member.
	(X86_64_REGPARM_MAX): New.
	(X86_64_SSE_REGPARM_MAX): New.
	(X64_REGPARM_MAX): New.
	(X64_SSE_REGPARM_MAX): New.
	(X86_32_REGPARM_MAX): New.
	(X86_32_SSE_REGPARM_MAX): New.
	(REGPARM_MAX): Updated.
	(SSE_REGPARM_MAX): Updated.
	(machine_function): Add call_abi member.
	* config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
	TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.

2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>

	PR target/34879
	* config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
	(avr_builtin_setjmp_frame_value): New function.
	* config/avr/avr.md (nonlocal_goto_receiver): Define.
	(nonlocal_goto): Define.

2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_emit_loadgp): Return early if
	there is nothing do to, otherwise emit a blockage if
	!TARGET_EXPLICIT_RELOCS || crtl->profile.
	* config/mips/mips.md (loadgp_blockage): Use SI rather than DI.

2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure.ac: Drop unneeded backslash ending up in config.in.
	* acinclude.m4: Likewise.
	* config.in: Regenerate.

2008-05-26  Jan Hubicka  <jh@suse.cz>

	* predict.c (maybe_hot_frequency_p): Break out of...
	(maybe_hot_bb_p): ... here.
	(maybe_hot_edge_p): New.
	* tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
	* basic-block.h (maybe_hot_edge_p): Declare.

2008-05-31  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
	(*cmpfp_<mode>_cc): Ditto.
	(*fp_jcc_8<mode>_387): Ditto.
	(*fop_<MODEF:mode>_2_i387): Ditto.
	(*fop_<MODEF:mode>_3_i387): Ditto.
	(*fop_xf_2_i387): Ditto.
	(*fop_xf_3_i387): Ditto.

2008-06-02  Tomas Bily  <tbily@suse.cz>

	* tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.

2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips.c (mips_valid_offset_p): New function.
	(mips_valid_lo_sum_p): Likewise.
	(mips_classify_address): Use them.
	(mips_force_address): New function.
	(mips_legitimize_address): Use it.
	* config/mips/mips.md (MOVE128): New mode iterator.
	(movtf): Require TARGET_64BIT.  Remove empty strings.
	(*movtf_internal): Rename to...
	(*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
	of "R" and use {,fp}{load,store} attributes instead of "multi".
	Use a separate define_split.
	(*movtf_mips16): New pattern.

2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips-protos.h (mips_expand_before_return): Declare.
	* config/mips/mips.c (mips_expand_before_return): New function.
	(mips_expand_epilogue): Call it.
	* config/mips/mips.md (return): Turn into a define_expand.
	(*return): New insn.

2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>

	* rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
	* emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
	functions.  Do not emit uses and clobbers of CONCATs; individually
	use and clobber their operands.
	* builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
	gen_clobber, emit_use and gen_use.
	(expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
	(expand_builtin_return): Likewise.
	* cfgbuild.c (count_basic_blocks): Likewise.
	* cfgrtl.c (rtl_flow_call_edges_add): Likewise.
	* explow.c (emit_stack_restore): Likewise.
	* expmed.c (extract_bit_field_1): Likewise.
	* expr.c (convert_move, emit_move_complex_parts): Likewise.
	(emit_move_multi_word, store_constructor): Likewise.
	* function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
	(thread_prologue_and_epilogue_insns): Likewise.
	* lower-subreg.c (resolve_simple_move): Likewise.
	* optabs.c (widen_operand, expand_binop): Likewise.
	(expand_doubleword_bswap, emit_no_conflict_block): Likewise.
	* reload.c (find_reloads): Likewise.
	* reload1.c (eliminate_regs_in_insn): Likewise.
	* stmt.c (expand_nl_goto_receiver): Likewise.
	* config/alpha/alpha.md (builtin_longjmp): Likewise.
	* config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
	* config/arm/arm.c (arm_load_pic_register): Likewise.
	(thumb1_expand_epilogue, thumb_set_return_address): Likewise.
	* config/arm/arm.md (untyped_return): Likewise.
	* config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
	* config/avr/avr.c (expand_prologue): Likewise.
	* config/bfin/bfin.c (do_unlink): Likewise.
	* config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
	* config/cris/cris.c (cris_expand_prologue): Likewise.
	* config/darwin.c (machopic_indirect_data_reference): Likewise.
	(machopic_legitimize_pic_address): Likewise.
	* config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
	(frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
	* config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
	(ix86_expand_convert_uns_didf_sse): Likewise.
	(ix86_expand_vector_init_general): Likewise.
	* config/ia64/ia64.md (eh_epilogue): Likewise.
	* config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
	* config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
	* config/m32r/m32r.c (m32r_reload_lr): Likewise.
	(config/iq2000/iq2000.c): Likewise.
	* config/mips/mips.md (fixuns_truncdfsi2): Likewise.
	(fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
	(builtin_longjmp): Likewise.
	* config/mn10300/mn10300.md (call, call_value): Likewise.
	* config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
	* config/pdp11/pdp11.md (abshi2): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
	* config/s390/s390.c (s390_emit_prologue): Likewise.
	* config/s390/s390.md (movmem_long, setmem_long): Likewise.
	(cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
	(builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
	* config/sh/sh.c (prepare_move_operands): Likewise.
	(output_stack_adjust, sh_expand_epilogue): Likewise.
	(sh_set_return_address, sh_expand_t_scc): Likewise.
	* config/sparc/sparc.c (load_pic_register): Likewise.
	* config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
	* config/spu/spu.c (spu_expand_epilogue): Likewise.
	* config/v850/v850.c (expand_epilogue): Likewise.

2008-05-31  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
	(UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
	(movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
	* config/avr/avr.c (expand_prologue, expand_epilogue): Use
	movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
	stack pointer register.
	(output_movhi): Remove code for interrupt specific writing to the
	stack pointer register.

2008-05-31  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34244
	* fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
	(tree_expr_nonzero_warnv_p): Likewise.
	* tree-vrp.c (vrp_expr_computes_nonnegative): Call
	ssa_name_nonnegative_p.
	(vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
	(extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
	not tree_expr_nonzero_warnv_p.

	PR tree-optimization/36262
	Revert
	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.

2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
	__WORKAROUND_RETS when appropriate.

2008-05-31  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
	*fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
	mode iterator.
	(*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
	*fop_df_comm_sse insn patterns using MODEF mode iterator.
	(*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
	*fop_df_comm_i387 insn patterns using MODEF mode iterator.
	(*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
	*fop_df_1_mixed insn patterns using MODEF mode iterator.
	(*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
	*fop_df_1_sse insn patterns using MODEF mode iterator.
	(*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
	*fop_df_1_i387 insn patterns using MODEF mode iterator.
	(*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
	*fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
	(*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
	*fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
	(*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
	(*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
	(*fop_xf_4_i387): Use <MODE> for mode attribute.
	(*fop_xf_5_i387): Ditto.
	(*fop_xf_6_i387): Ditto.

2008-05-30  Richard Guenther  <rguenther@suse.de>

	* builtins.c (build_string_literal): Avoid generating
	a non-gimple_val result.

2008-05-30  DJ Delorie  <dj@redhat.com>

	* exec-tool.in: Use an environment variable (private) instead of a
	file (shared) as a semaphore, so as to not break parallel builds.

2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>

	* optabs.c (maybe_encapsulate_block): Remove.
	(emit_libcall_block): Adjust accordingly.
	* optabs.h (maybe_encapsulate_block): Remove prototype.

	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
	Don't use maybe_encapsulate_block.

2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_legitimize_address,
	rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
	rtx is a SYMBOL_REF before calling get_pool_constant.

2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.

2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>

	* incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
	rather than OS names to choose INO_T_EQ definition.
	(DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
	(add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.

2008-05-29  Daniel Franke  <franke.daniel@gmail.com>

	PR target/36348
	* config/darwin-f.c: New.
	* config/t-darwin: Added rule to build darwin-f.o.
	* config.gcc: Defined new variable, fortran_target_objs.
	(*-*-darwin*): Set fortran_target_objs.
	* Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
	* configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
	* configure: Regenerated.

2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/35771
	* config/i386/i386.c (ix86_function_arg_boundary): Convert to
	canonical type if needed.

2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-nested.c (check_for_nested_with_variably_modified): Fix typo.

2008-05-29  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36343
	PR tree-optimization/36346
	PR tree-optimization/36347
	* tree-flow.h (clobber_what_p_points_to): Declare.
	* tree-ssa-structalias.c (set_uids_in_ptset): Whether the
	pointed-to variable is dereferenced is irrelevant to whether
	the pointer can access the pointed-to variable.
	(clobber_what_p_points_to): New function.
	* tree-ssa-alias.c (set_initial_properties): Use it.
	* tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
	call clobber check for NMTs.

2008-05-28  Seongbae Park  <seongbae.park@gmail.com>

	* value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
	for printing gcov_type.

2008-05-28  Seongbae Park  <seongbae.park@gmail.com>

	* tree-ssa-propagate.c (set_rhs): Preserve the histogram
	and the eh region information.
	* value-prof.c (gimple_move_stmt_histograms): New function.
	* value-prof.h (gimple_move_stmt_histograms): New function declaration.

2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>

	* config/pa/pa.md: Remove extern frame_pointer_needed declaration.

2008-05-28  Seongbae Park  <seongbae.park@gmail.com>

	* value-prof.c (tree_ic_transform): Print counts.
	* tree-profile.c (tree_gen_ic_func_profiler):
	Clear __gcov_indreict_call_callee variable to avoid misattribution
	of the profile.

2008-05-28  Rafael Espíndola  <espindola@google.com>

	* see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
	invalid sharing.

2008-05-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36339
	* tree-ssa-alias.c (set_initial_properties): Move pt_anything
	and clobbering code out of the loop.

2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
	letters defined.

	* config/s390/s390.c (s390_compare_and_branch_condition_mask,
	s390_contiguous_bitmask_p, s390_symref_operand_p,
	s390_check_symref_alignment, s390_reload_larl_operand,
	s390_reload_symref_address): New functions.
	(s390_branch_condition_mnemonic): Support compare and branch
	instructions.
	(s390_mem_constraint): Avoid symrefs to accepted by the 'T'
	and 'W' constraints.
	(s390_secondary_reload): Add secondary reloads for unaligned
	symbol refs or symbol refs to floating point or QI/TI mode
	integer values.
	(legitimate_address_p): Accept symbol references as addresses.
	(s390_expand_insv): Use rotate and insert selected bits
	instruction for insv when building for z10.
	(print_operand_address): Handle symbol ref addresses.
	(print_operand): Output modifier 'c' added for signed byte values.
	(s390_encode_section_info): Mark symbol refs with
	SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.

	* config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
	(length attribute): RRF, RRR have 4 byte length.
	(FPALL, INTALL): New mode iterators added.
	(*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
	*cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
	*movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
	*extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
	*zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
	*add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
	*add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
	*mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
	instructions.
	(*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
	*cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
	*cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
	reload<INTALL:mode><P:mode>_toreg_z10,
	reload<FPALL:mode><P:mode>_tomem_z10,
	reload<FPALL:mode><P:mode>_toreg_z10,
	reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
	*insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
	*zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
	*cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
	definition.
	(movmem, clrmem, cmpmem): New splitters added.

	* config/s390/predicates.md (larl_operand): Use
	SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
	SYMBOL_REF_ALIGN1_P.
	(s390_signed_integer_comparison,
	s390_unsigned_integer_comparison): New predicates.

	* config/s390/s390-protos.h (s390_check_symref_alignment,
	s390_contiguous_bitmask_p, s390_reload_larl_operand,
	s390_reload_symref_address,
	s390_compare_and_branch_condition_mask): Prototypes added.

	* config/s390/s390.h (TARGET_MEM_CONSTRAINT,
	SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
	SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.

2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (z10_cost): New cost function for z10.
	(s390_handle_arch_option, override_options): Support -march=z10 switch.
	(s390_issue_rate): Adjust issue rate for z10.
	* config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
	(processor_flags): Add PF_Z10.
	(TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
	* config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
	* gcc/config.gcc: Add z10.

2008-05-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36291
	* tree-flow. h (struct gimple_df): Remove var_anns member.
	* tree-flow-inline.h (gimple_var_anns): Remove.
	(var_ann): Simplify.
	* tree-dfa.c (create_var_ann): Simplify.
	(remove_referenced_var): Clear alias info from var_anns of globals.
	* tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
	(delete_tree_ssa): Clear alias info from var_anns of globals.
	Do not free var_anns.
	(var_ann_eq): Remove.
	(var_ann_hash): Likewise.

2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>

	* config/mips/mips.c (mips_cpu_info_table): Add loongson2e
	and loongson2f entries.
	(mips_rtx_cost_data): Add entries for Loongson-2E/2F.
	* config/mips/mips.h (processor_type): Add Loongson-2E
	and Loongson-2F entries.
	(TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
	(MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
	* config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
	* doc/invoke.texi (MIPS Options): Document loongson2e
	and loongson2f processor names.

2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/35767
	PR target/35771
	* config/i386/i386.c (ix86_function_arg_boundary): Use
	alignment of canonical type.
	(ix86_expand_vector_move): Check unaligned memory access for
	all SSE modes.

2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf2out.c (current_fde): Change return type to dw_fde_ref.
	Moved to the front of file.

2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf2out.c (current_fde): New.
	(add_cfi): Use it.
	(lookup_cfa:): Likewise.
	(dwarf2out_end_epilogue): Likewise.
	(dwarf2out_note_section_used): Likewise.

2008-05-27  Michael Matz  <matz@suse.de>

	PR c++/27975
	* c.opt (Wenum-compare): New warning option.
	* doc/invoke.texi  (Warning Options): Document -Wenum-compare.

2008-05-27  Michael Matz  <matz@suse.de>

	PR middle-end/36326
	* tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
	non-BLKmode types.
	* tree-tailcall.c (find_tail_calls): Don't mark calls storing
	into memory as tail calls.

2008-05-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36339
	* tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
	pointers cause all addressable variables to be call clobbered.

2008-05-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36245
	* tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.

2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md: Replace all occurences of the 'm'
	constraint with 'RT'.

2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("cpu_facility", "enabled"): Attribute
	definitions added.
	("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
	"*movdi_64".
	("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
	("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
	("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".

2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>

	* reload.c (find_reloads): Skip alternatives according to the
	"enabled" attribute. Constify the constraint variable.
	* recog.c (get_attr_enabled): Add default implementation.
	(extract_insn): Set the alternative_enabled_p array
	in the recog_data struct.
	(preprocess_constraints, constrain_operands): Skip
	alternatives according to the "enabled" attribute
	* recog.h (struct recog_data): New field alternative_enabled_p.
	(skip_alternative): New inline function.
	* regclass.c (record_operand_costs): Check the "enabled" attribute.
	(record_reg_classes): Skip alternative according to the
	"enabled" attribute.

	* doc/md.texi: Add documention for the "enabled" attribute.

2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>

	* defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
	* postreload.c (reload_cse_simplify_operands): Replace 'm'
	constraint with TARGET_MEM_CONSTRAINT.
	* recog.c (asm_operand_ok, preprocess_constraints,
	constrain_operands): Likewise.
	* regclass.c (record_reg_classes): Likewise.
	* reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
	* reload1.c (maybe_fix_stack_asms): Likewise.
	* stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
	* recog.h: Adjust comment.
	* genpreds.c (generic_constraint_letters): Remove 'm' constraint.
	* genoutput.c (note_constraint): Don't emit error for 'm' constraint.
	* doc/md.texi: Add a note to description of 'm' constraint.
	* doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.

2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
	that the bitfield is of integral type before testing its precision.

2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
	    Sa Liu  <saliu@de.ibm.com>

	* config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
	__modti3, __udivti3, __umodti3 and __udivmodti4.
	* config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
	that implement TImode mul and div functions.
	* config/spu/multi3.c: New. Implement __multi3.
	* config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
	* testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
	functions on SPU.

2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
	new tls_gd_* and tls_ld_* insns instead of an insn sequence.
	* config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
	tls_sysv_suffix): New mode and mode attribute iterators.
	(tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
	(lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
	(tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
	tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
	tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
	iterators.

2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>

	PR tree-optimization/36329
	* tree.h (CALL_CANNOT_INLINE_P): Add access check.
	* tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
	* cgraphbuild.c (initialize_inline_failed): Use the latter
	macro in lieu of the former.
	* ipa-inline.c (cgraph_mark_inline): Likewise.
	(cgraph_decide_inlining_of_small_function): Likewise.
	(cgraph_decide_inlining): Likewise.
	(cgraph_decide_inlining_incrementally): Likewise.

2008-05-26  Tristan Gingold  <gingold@adacore.com>
	    Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
	instead of pm_lo8/pm_hi8 to makes this call working on avr6.
	* config/avr/avr.c (expand_prologue): Tune "call_prologue"
	optimization for 'avr6' architecture.

2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>

	PR target/34932
	* config/avr/avr.md (*addhi3_zero_extend2): Remove.

2008-05-26  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (expr_has_constants): Declare.
	(visit_reference_op_load): Initialize VN_INFO->has_constants properly.

2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/36253
	* caller-save.c (insert_restore): Verify alignment of spill space.
	(insert_save): Likewise.
	* cfgexpand.c (LOCAL_ALIGNMENT): Removed.
	* defaults.h (LOCAL_ALIGNMENT): New. Provide default.
	(STACK_SLOT_ALIGNMENT): Likewise.
	* function.c (LOCAL_ALIGNMENT): Removed.
	(get_stack_local_alignment): New.
	(assign_stack_local): Use it.  Set alignment on stack slot.
	(assign_stack_temp_for_type): Use get_stack_local_alignment.
	* config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
	(STACK_SLOT_ALIGNMENT): New.
	* config/i386/i386.c (ix86_local_alignment): Handle caller-save
	stack slot in XFmode.

	* doc/tm.texi (STACK_SLOT_ALIGNMENT): New.

2008-05-26  Kai Tietz  <kai.tietz@onevision.com>

	PR/36321
	* config/i386/i386.md (allocate_stack_worker_64): Make sure
	argument operand in rax isn't removed.

2008-05-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36300
	* fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
	not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.

2008-05-26  Daniel Franke  <franke.daniel@gmail.com>

	PR bootstrap/36331
	* c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.

2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>

	* config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
	* config/t-darwin: Use "incpath.h" instead of "c-incpath.h".

2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
	build a trampoline if we don't want one.
	* varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
	return zero for nested functions if we don't want a trampoline.

2008-05-26  Daniel Franke  <franke.daniel@gmail.com>

	* doc/invoke.texi: Added f77, f77-cpp-input to list of file types.

2008-05-26  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/18428
	* c.opt: Removed undocumented option '-lang-fortran'.
	* c-common.h: Removed global variable 'lang_fortran'.
	* c-opts.c (c_common_handle_option): Removed code to handle
	option '-lang-fortran'. Updated includes.
	* c-cppbuiltin.c (c_cpp_builtins): Removed conditional
	definition of '__GFORTRAN__'.
	(define__GNUC__): Reimplemented to use BASEVER and
	cpp_define_formatted.
	(builtin_define_with_value_n): Removed.
	* c-incpath.h: Renamed to ...
	* incpath.h: ... this.
	* c-incpath.c: Renamed to ...
	* incpath.c: ... this. Updated includes.
	* fix-header.c: Updated includes.
	* Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
	(c-cppbuiltin.o): Added dependency on and definition of BASEVER.
	(OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.

2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h: Update the table of flags used on tree nodes.
	(TREE_NO_TRAMPOLINE): New accessor for static_flag.
	(SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
	(FORCED_LABEL): Add access check.
	(CALL_EXPR_RETURN_SLOT_OPT): Likewise.
	(ASM_INPUT_P): Likewise.
	(ASM_VOLATILE_P): Likewise.
	(EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
	(OMP_SECTION_LAST): Access private_flag directly.
	(OMP_RETURN_NOWAIT): Likewise.
	(OMP_PARALLEL_COMBINED): Likewise.
	(OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
	(OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
	* tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
	deprecated_flag directly.

2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>

	* final.c (frame_pointer_needed): Removed.
	* flags.h (frame_pointer_needed): Likewise.

	* function.h (rtl_data): Add frame_pointer_needed.
	(frame_pointer_needed): New.

2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>

	* config.gcc (sh2[lbe]*-*-linux*): Allow target.

2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>

	* gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
	SRC is a REG.

2008-05-25  Alan Modra  <amodra@bigpond.net.au>

	* c-common.c (strip_array_types): Move function to..
	* tree.c: ..here.
	(get_inner_array_type): Delete.
	* c-common.h (strip_array_types): Move declaration to..
	* tree.h: ..here.
	(get_inner_array_type): Delete.
	* config/i386/i386.c (x86_field_alignment): Use strip_array_types.
	* config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
	* config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
	* config/pa/pa.c (emit_move_sequence): Likewise.

2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (*sse_prologue_save_insn): Set length
	attribute to 34.

2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>

	* function.c: Include target hook for nonlocal_goto frame value.

2008-05-24  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
	variable can be only accessed through a pointer or a union.

2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
	* doc/extend.texi: Likewise.

2008-05-23  DJ Delorie  <dj@redhat.com>

	* config/m32c/jump.md (untyped_call): Add.

	* config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
	for A24 to PSImode.
	(m32c_address_cost): Detail costs for indirect offsets.

2008-05-23  Rafael Espíndola  <espindola@google.com>

	* see.c (see_get_extension_data): Don't use SUBREG_REG to test
	if a node is a SUBREG.
	(see_analyze_one_def): Don't use SUBREG_REG to test if a node
	is a SUBREG.

2008-05-23  Paul Brook  <paul@codesourcery.com>
	    Carlos O'Donell  <carlos@codesourcery.com>

	* doc/extend.texi: Clarify use of __attribute__((naked)).
	* doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
	* target.h (gcc_target): Add allocate_stack_slots_for_args.
	* function.c (use_register_for_decl): Use
	targetm.calls.allocate_stack_slots_for_args.
	* target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
	* config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
	(TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.

2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.

2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>

	* config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
	PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
	is only rounded once.

2008-05-23  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.

2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/36079
	* configure.ac: Handle --enable-cld.
	* configure: Regenerated.
	* config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
	* config/i386/i386.h (struct machine_function): Add needs_cld field.
	(ix86_current_function_needs_cld): New define.
	* config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
	(cld): New isns pattern.
	(strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
	cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
	* config/i386/i386.opt (mcld): New option.
	* config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
	TARGET_CLD and ix86_current_function_needs_cld.
	(override_options): Use -mcld by default for 32-bit code if
	USE_IX86_CLD.

	* doc/install.texi (Options specification): Document --enable-cld.
	* doc/invoke.texi (Machine Dependent Options)
	[i386 and x86-64 Options]: Add -mcld option.
	(Intel 386 and AMD x86-64 Options): Document -mcld option.

2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
	* config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
	(return_in_memory_64): Likewise.
	(return_in_memory_ms_64): Likewise.

2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
	* builtins.c (fold_builtin_fpclassify): New.
	(fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
	* builtins.def (BUILT_IN_FPCLASSIFY): New.
	* c-common.c (handle_type_generic_attribute): Adjust to accept
	fixed arguments before an elipsis.
	(check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
	* doc/extend.texi: Document __builtin_fpclassify.

2008-05-22  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (gate_expand_omp_ssa): Remove.
	(pass_expand_omp_ssa): Remove.
	(gate_expand_omp): Do not check for flag_openmp_ssa.
	* common.opt (-fopenmp-ssa): Remove.
	* passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.

2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.opt (mfixed-range): New option.
	* config/sh/sh-protos.h (sh_fix_range): Declare.
	* config/sh/sh.c (sh_fix_range): New function.
	* config/sh/sh.h (sh_fixed_range_str): Declare.
	(OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
	is not empty.
	* doc/invoke.texi (SH Options): Document -mfixed-range.

2008-05-22  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
	it before the redeclaration.

2008-05-22  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (get_sequence_length): Add new function.
	(expand_prologue, expand_epilogue): Remove duplicate code.

2008-05-22  Rafael Espíndola  <espindola@google.com>

	* see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
	sharing.

2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>

	* defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
	* doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.

	* tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
	UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
	(vect_update_misalignment_for_peel): Likewise.
	(vector_alignment_reachable_p): Likewise.
	* tree-vect-transform.c (vectorizable_load): Likewise.
	* tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
	(get_vectype_for_scalar_type): Pass mode of scalar_type
	to UNITS_PER_SIMD_WORD.

	* config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
	* config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
	* config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
	* config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
	* config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.

2008-05-22  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/36293
	* tree-vect-transform.c (vect_transform_strided_load): Don't check
	if the first load must be skipped because of a gap.

2008-05-22  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
	more cases of offset disambiguation that is possible if
	strict-aliasing rules apply.
	* tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
	for basic offset and type-based disambiguation.

2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_vector_init_one_var): Use
	ix86_expand_vector_set on V16QImode for SSE4.1.

2008-05-21  Tom Tromey  <tromey@redhat.com>

	* c.opt (Wimport): Mark as undocumented.
	* doc/invoke.texi (Option Summary): Don't mention -Wimport or
	-Wno-import.
	(Warning Options): Likewise.
	* doc/cppopts.texi: Don't mention -Wimport.

2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/36287
	PR tree-optimization/36286
	* lambda-code.c (build_access_matrix): Do not use the loop->num
	for computing the number of induction variables: use the loop depth
	instead.

2008-05-21  Kai Tietz  <kai.tietz@onevision.com>

	PR/36280
	* config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
	option -f(no-)leading-underscore.

2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_vector_init_general): Use
	GET_MODE_NUNITS (mode).

2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>

	* doc/invoke.texi: Add cpu_type's 464 and 464fp.
	(-mmulhw): Add 464 to description.
	(-mdlmzb): Likewise.
	* config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
	* config/rs6000/rs6000.c (processor_target_table): Add 464 and
	464fp entries.
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
	* config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
	* config/rs6000/rs6000.md: Update comments for 464.

2008-05-21  Janis Johnson  <janis187@us.ibm.com>

	* doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.

2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (vec_extractv4sf): Removed.
	(vec_extractv2df): Likewise.
	(vec_extractv2di): Likewise.
	(vec_extractv4si): Likewise.
	(vec_extractv8hi): Likewise.
	(vec_extractv16qi): Likewise.
	(vec_extract<mode>): New.

2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (vec_setv4sf): Removed.
	(vec_setv2df): Likewise.
	(vec_setv2di): Likewise.
	(vec_setv4si): Likewise.
	(vec_setv8hi): Likewise.
	(vec_setv16qi): Likewise.
	(vec_set<mode>): New.

2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_vector_init_general): Remove
	goto for vec_concat and vec_interleave.

2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (vec_initv4sf): Removed.
	(vec_initv2df): Likewise.
	(vec_initv2di): Likewise.
	(vec_initv4si): Likewise.
	(vec_initv8hi): Likewise.
	(vec_initv16qi): Likewise.
	(vec_init<mode>): New.

2008-05-21  Joseph Myers  <joseph@codesourcery.com>

	* collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.

2008-05-21  Tom Tromey  <tromey@redhat.com>

	* ggc-zone.c (lookup_page_table_if_allocated): New function.
	(zone_find_object_offset): Likewise.
	(gt_ggc_m_S): Likewise.
	(highest_bit): Likewise.
	* ggc-page.c (gt_ggc_m_S): New function.
	* stringpool.c (string_stack): Remove.
	(init_stringpool): Update.
	(ggc_alloc_string): Use ggc_alloc.
	(maybe_delete_ident): New function.
	(ggc_purge_stringpool): Likewise.
	(gt_ggc_m_S): Remove.
	* ggc-common.c (ggc_protect_identifiers): New global.
	(ggc_mark_roots): Call ggc_purge_stringpool.  Use
	ggc_protect_identifiers.
	* ggc.h (ggc_protect_identifiers): Declare.
	(gt_ggc_m_S): Update.
	(ggc_purge_stringpool): Declare.
	* toplev.c (compile_file): Set and reset ggc_protect_identifiers.
	* gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
	special case.
	(write_root): Cast gt_ggc_m_S to gt_pointer_walker.

2008-05-21  David S. Miller  <davem@davemloft.net>

	* config.gcc (sparc-*-linux*): Always include sparc/t-linux in
	tmake_file.

2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
	once finished.

2008-05-20  David Daney  <ddaney@avtrex.com>

	* config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
	UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
	(UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
	UNSPEC_UPDATE_GOT_VERSION): Renumber.
	(optab, insn): Add 'plus' and 'minus' to define_code_attr.
	(atomic_hiqi_op): New define_code_iterator.
	(sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
	mips_expand_compare_and_swap_12.
	(compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
	MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
	(sync_<optab><mode>, sync_old_<optab><mode>,
	sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
	sync_new_nand<mode>): New define_expands for HI and QI mode operands.
	(sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
	sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
	(sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
	(test_and_set_12): New insn.
	(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>):  Add early
	clobber to operand 0 for SI and DI mode insns.
	* config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
	mips_gen_fn_4): New typedefs.
	(mips_gen_fn_ptrs): Define new union type.
	(mips_expand_compare_and_swap_12): Remove declaration.
	(mips_expand_atomic_qihi): Declare function.
	* config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
	(mips_expand_atomic_qihi): ... this.  Use new generator function
	parameter.
	* config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
	(MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
	(MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
	MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
	MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
	MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
	MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
	MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
	MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
	MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
	New macros.

2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
	the missing break.

2008-05-20  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.h (machine_function): Add 'is_OS_main' field.
	* config/avr/avr.c (avr_OS_main_function_p): Add new function.
	(avr_attribute_table): Add 'OS_main' function attribute.
	(avr_regs_to_save, expand_prologue, expand_epilogue): Handle
	functions with 'OS_main' attribute.

2008-05-20  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/35204
	* tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
	helper, split out from ...
	(DFS): ... here.  Make the DFS walk non-recursive.

2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	PR tree-optimization/36181
	* tree-parloops.c (loop_has_vector_phi_nodes): New.
	(parallelize_loops): Don't parallelize when the loop has vector
	phi nodes.

2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* tree-loop-linear.c (gather_interchange_stats): Look in the access
	matrix, and never look at the tree representation of the memory
	accesses.
	(linear_transform_loops): Computes parameters and access matrices.
	* tree-data-ref.c (compute_data_dependences_for_loop): Returns false
	when fails.
	(access_matrix_get_index_for_parameter): New.
	* tree-data-ref.h (struct access_matrix): New.
	(AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
	AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
	AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
	am_vector_index_for_loop): New.
	(struct data_reference): Add field access_matrix.
	(DR_ACCESS_MATRIX): New.
	(compute_data_dependences_for_loop): Update declaration.
	(lambda_collect_parameters, lambda_compute_access_matrices): Declared.
	* lambda.h (lambda_vector_vec_p): Declared.
	* lambda-code.c: Depend on pointer-set.h.
	(lambda_collect_parameters_from_af, lambda_collect_parameters,
	av_for_af_base, av_for_af, build_access_matrix,
	lambda_compute_access_matrices): New.
	* Makefile.in (lambda-code.o): Depend on pointer-set.h.

2008-05-20  Joseph Myers  <joseph@codesourcery.com>

	* doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
	$SOURCEDIR/include.

2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/36206
	* tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
	FOLD_CONVERSIONS.
	(instantiate_scev_1): Rename flags to fold_conversions.
	Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
	outeside instantiation_loop.
	* tree-chrec.h (evolution_function_is_affine_in_loop): New.
	(evolution_function_is_affine_or_constant_p): Removed.
	* tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
	instantiate_scev.
	(analyze_siv_subscript): Pass in the loop nest number.
	Call evolution_function_is_affine_in_loop instead of
	evolution_function_is_affine_p.
	(analyze_overlapping_iterations): Pass in the loop nest number.

2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/36206
	* tree-chrec.h (chrec_fold_op): New.
	* tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
	and other trees.

2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>

	* c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
	(DIRS_EQ): New.
	(remove_duplicates): Do not set inode on non-inode systems.
	Use DIRS_EQ.

2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>

	* config.gcc (tm_file): Update comments about relative pathnames.

2008-05-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
	* tree-ssa-sccvn.c (process_scc): Likewise.
	* tree-ssa-sink.c (execute_sink_code): Likewise.
	* tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
	* tree-vrp.c (process_assert_insertions): Likewise.
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
	(perform_tree_ssa_dce): Likewise.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
	(dump_dominator_optimization_stats): Likewise.
	* tree-vectorizer.c (vectorize_loops): Likewise.

2008-05-20  Richard Guenther  <rguenther@suse.de>

	* tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.

2008-05-20  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386-protos.h (ix86_return_in_memory): Removed.
	(ix86_i386elf_return_in_memory): Likewise.
	(ix86_i386interix_return_in_memory): Likewise.
	* config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
	(SUBTARGET_RETURN_IN_MEMORY): New.
	* config/i386/i386elf.h: Likewise.
	* config/i386/ptx4-i.h: Likewise.
	* config/i386/sol2-10.h: Likewise.
	* config/i386/sysv4.h: Likewise.
	* config/i386/vx-common.h: Likewise.
	* config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
	* config/i386/i386.c (ix86_return_in_memory): Made static and
	make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
	(ix86_i386elf_return_in_memory): Removed.
	(ix86_i386interix_return_in_memory): Removed.
	(TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
	* target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.

2008-05-20  Alexandre Oliva  <aoliva@redhat.com>

	* cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.

2008-05-19  Xinliang David Li  <davidxl@google.com>

	* tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
	* opts.c: Ditto.
	* common.opt: Ditto.
	* doc/invoke.texi: Ditto.

2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
	(substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.

2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_vector_init_concat): Change
	sizes of operand array from 8/4 to 4/2.
	(ix86_expand_vector_init_general): Change size of operand array
	from 32 to 16.  Remove op0, op1 and half_mode.

2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_vector_init_concat): New.
	(ix86_expand_vector_init_interleave): Likewise.
	(ix86_expand_vector_init_general): Use them.  Assert
	word_mode == SImode when n_words == 4.

2008-05-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_secondary_reload): New static function.
	(TARGET_SECONDARY_RELOAD): New define.
	* config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
	* config/i386/i386.md (reload_outqi): Remove.

2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR middle-end/35509
	* builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
	Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
	(mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
	(fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
	(fold_builtin_1): Likewise.
	* builtins.def (BUILT_IN_ISINF_SIGN): New.
	c-common.c (check_builtin_function_arguments): Handle
	BUILT_IN_ISINF_SIGN.
	* doc/extend.texi: Document __builtin_isinf_sign.
	* fold-const.c (operand_equal_p): Handle COND_EXPR.

2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
	EH cleanup at the end of the pass, search for those that have been
	turned into forwarder blocks and do the cleanup on their successor.

2008-05-18  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_expr): Allow conversions from
	pointers to sizetype and vice versa.

2008-05-18  Xinliang David Li   <davidxl@google.com>

	* gcc/tree-ssa-dce.c: Coding style fix.
	(check_pow): Documentation comment.
	(check_log): Documenation comment. Coding style fix.
	(is_unnecessary_except_errno_call): Ditto.
	(gen_conditions_for_pow): Ditto.
	(gen_conditions_for_log): Ditto.
	(gen_shrink_wrap_conditions): Ditto.
	(shrink_wrap_one_built_in_calls): Ditto.
	* gcc/doc/invoke.texi: Better documentation string.
	* ChangeLog: Fix wrong change log entries from
	May 17 checkin on function call DCE.

2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.

2008-05-17  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
	* df-problems.c (simulation routines): Fixed block comment to
	properly say how to add forwards scanning functions.

2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-inline.c (setup_one_parameter): Remove dead code.

2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
	a BIT_AND_EXPR only for an INTEGER_TYPE.

2008-05-17  Xinliang David Li   <davidxl@google.com>

	* gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
	(check_pow, check_log, is_unnecessary_except_errno_call): New
	functions to check for eliminating math functions that are pure
	except for setting errno.
	(gen_conditions_for_pow, gen_conditionas_for_log): New functions to
	general condition expressions for shrink-wrapping pow/log calls.
	(gen_shrink_wrap_conditions): Ditto.
	(shrink_wrap_one_built_in_call): Ditto.
	(shrink_wrap_conditional_dead_built_in_calls): Ditto.
	(mark_operand_necessary): If debugging, output if OP is necessary.
	(eliminate_unnecessary_stmts): Eliminate pow, log calls that are
	unnecessary.
	* gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
	opt level >= 2.
	* gcc/common.opt: New user flag -ftree-builtin-dce.
	* gcc/doc/invoke.texi (-ftree-builtin-dce): New option.

2008-05-16  David S. Miller  <davem@davemloft.net>

	* config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
	* config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.

2008-05-16  Uros Bizjak  <ubizjak@gmail.com>

	PR target/36246
	* config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.

2008-05-16  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* ifcvt.c (dead_or_predicable): Rename
	df_simulate_one_insn_backwards to df_simulate_one_insn.
	* recog.c (peephole2_optimize): Ditto.
	* rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
	Ditto.
	* df.h: Rename df_simulate_one_insn_backwards to
	df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
	* df-problems.c (df_simulate_artificial_refs_at_top) Reversed
	scanning of defs and uses.
	(df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
	(df_simulate_one_insn_forwards): Removed.

2008-05-16  Doug Kwan  <dougkwan@google.com>

	* real.c (real_to_decimal, real_to_hexadecimal): Distinguish
	QNaN & SNaN.
	(real_from_string): Handle NaNs and Inf as approriate.

2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>

	* doc/gty.texi (Source Files Containing Type Information): Note
	that headers should appear first in the gtfiles list.

2008-05-16  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* tree.def (COND_EXEC): Properly documented this code.

2008-05-16  Diego Novillo  <dnovillo@google.com>

	* dwarf2asm.c (dw2_assemble_integer): Clarify comment.
	* tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
	the new field.

2008-05-16  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* tree-ssa-dse (max_stmt_uid): Removed.
	(get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
	tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
	* tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
	* function.h (cfun.last_stmt_uid): New field.
	* tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
	gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
	New functions.
	* tree-dfa.c (renumber_gimple_stmt_uids): New function.
	(create_stmt_ann): Initialize the ann->uid field.
	* tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
	with new calls.
	* tree-flow.h (renumber_gimple_stmt_uids): New function.

2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>

	* tree-flow.h (init_empty_tree_cfg_for_function): Declare.
	* tree-cfg.c (init_empty_tree_cfg_for_function): Define.
	(init_empty_tree_cfg): Call it.

2008-05-16  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
	Update all users.

2008-05-16  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* doc/invoke.text (-fdump-tree-*-verbose): New option.
	* tree-dump.c (dump_options): New verbose option.
	* tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
	Add verbose dump.
	* tree-pass.h (TDF_VERBOSE): New dump flag.
	* print-tree.c (print_node): Added code to be able to print PHI_NODES.
	(tree-flow.h): Added include.
	* Makefile.in (print-tree.o):  Added TREE_FLOW_H.

2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.

	From Jie Zhang  <jie.zhang@analog.com>
	* config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
	MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
	mcpu=bf561-none and mcpu=bf561-0.2.
	* config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
	MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
	* config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
	MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
	* config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
	* config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
	(LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
	option.
	* config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
	(cputype_selected): Remove.
	(bfin_handle_option): Don't use cputype_selected.
	(override_options): When no mcpu option, enable all workarounds.
	Don't use bfin_workarounds.
	* config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
	processor type.
	(DEFAULT_CPU_TYPE): Don't define.

2008-05-16  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
	on deletion of the last stmt.

2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_vector_init_general): Optimize
	V8HImode for SSE2 and V16QImode for SSE4.1.

2008-05-15  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* cgraph.h (compute_inline_parameters): Made public.
	* tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
	variable_generate_summary, function_write_summary,
	variable_write_summary, variable_read_summary.  Added generate_summary,
	write_summary, read_summary.
	* cgraphunit.c (cgraph_process_new_functions): Changed call from
	pass_ipa_inline.function_generate_summary, to
	compute_inline_parameters.
	* ipa-inline.c (compute_inline_parameters): Made public and added
	node parameter.
	(compute_inline_parameters_for_current): New function.
	(pass_inline_param): Now calls compute_inline_parameters_for_current.
	(inline_generate_summary): Removed parameter and made to loop over
	all cgraph nodes.
	(pass_ipa_inline): Updated for new IPA_PASS structure.
	* passes.c (execute_ipa_summary_passes): Now is called once per
	pass rather than once per node*pass.

2008-05-15  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
	avr_have_mul_p, avr_asm_only_p): Remove variables.
	(avr_override_options): Remove initialization of removed variables.
	(avr_file_start):  Convert removed variables to fields of
	'struct base_arch_s *avr_current_arch'.
	* config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
	(AVR_HAVE_MUL): (Ditto.).
	(AVR_HAVE_MOVW): (Ditto.).
	(AVR_HAVE_LPMX): (Ditto.).
	(avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
	avr_asm_only_p): Remove declaration.

2008-05-15  Diego Novillo  <dnovillo@google.com>

	* config/arm/arm.c (arm_return_in_memory): Fix return type.
	* config/arm/arm-protos.h (arm_return_in_memory): Likewise.

2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>

	PR middle-end/36194
	* combine.c (check_conversion): Rename back to check_promoted_subreg.
	Don't call record_truncated_value from here.
	(record_truncated_value): Turn it into a for_each_rtx callback.
	(record_truncated_values): New function.
	(combine_instructions): Call note_uses with record_truncated_values.
	Change name of check_conversion to check_promoted_subreg.

2008-05-15  Janis Johnson  <janis187@us.ibm.com>

	* doc/sourcebuild.texi: Document support for torture tests.

2008-05-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
	to alternative 4 of operand 2.

2008-05-15  Richard Guenther  <rguenther@suse.de>

	* tree-pass.h (current_pass): Declare.
	(get_pass_for_id): Likewise.
	* passes.c (passes_by_id, passes_by_id_size): New globals.
	(set_pass_for_id): New function.
	(get_pass_for_id): Likewise.
	(register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
	(execute_function_todo): Flush per function statistics.
	* toplev.c (compile_file): Init statistics.
	(general_init): Do early statistics initialization.
	(finalize): Finish statistics.
	* statistics.h (statistics_early_init): Declare.
	(statistics_init): Likewise.
	(statistics_fini): Likewise.
	(statistics_fini_pass): Likewise.
	(statistics_counter_event): Likewise.
	(statistics_histogram_event): Likewise.
	* statistics.c: New file.
	* Makefile.in (OBJS-common): Add statistics.o.
	(statistics.o): Add dependencies.
	* doc/invoke.texi (-fdump-statistics): Document.

	* tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
	(insert): Likewise.
	(execute_pre): Use statistics_counter_event.
	* tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
	(substitute_and_fold): Increment it.  Use statistics_counter_event.

2008-05-15  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html

	* treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
	* tree-ssa-alias.c (new_type_alias): Remove references to
	sub-variables from comment.
	* tree-ssa-operands.c (swap_tree_operands): Likewise.

2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
	attribute to 1 only for insertps alternative.

2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.md (loadbytes): New pattern.
	* config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
	(bfin_init_builtins): Initialize it.
	(bdesc_1arg): Add it.

2008-05-15  Sa Liu  <saliu@de.ibm.com>

	* testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
	* testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
	* testsuite/lib/target-supports.exp: Add
	check_effective_target_fortran_integer_16.

2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
	* config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
	* config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
	(TARGET_RETURN_IN_MEMORY): Define.

2008-05-15  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36244
	* tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
	* tree-flow-inline.h (unmodifiable_var_p): Memory tags never
	represent unmodifiable vars.

2008-05-15  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (refs_may_alias_p): Allow all kinds of
	INDIRECT_REF and TARGET_MEM_REF.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
	TARGET_MEM_REF.

2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
	(*vec_concatv2si_sse4_1): Use vector_move_operand predicate
	for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
	insn alternatives.  Add missing alternatives.
	(*vec_concatv2di_rex64_sse4_1): Likewise.
	(*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
	(*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
	Require TARGET_SSE.

2008-05-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36009
	PR tree-optimization/36204
	* tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
	(determine_invariantness_stmt): Record the loop a store is
	always executed in.
	* Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
	dependency.

2008-05-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34330
	* tree-ssa-alias.c (get_smt_for): Only assert that accesses
	through the pointer will alias the SMT.

2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>

	* config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.

2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.

2008-05-14  Michael Meissner  <michael.meissner@amd.com>
	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
	OTI_vrotl, OTI_vrotr to support vector/vector shifts.
	(vashl_optab): New optab for vector/vector shifts.
	(vashr_optab): Ditto.
	(vlshr_optab): Ditto.
	(vrotl_optab): Ditto.
	(vrotr_optab): Ditto.
	(optab_subtype): New enum for optab_for_tree_code call.
	(optab_for_tree_code): Add enum optab_subtype argument.

	* optabs.c (optab_for_tree_code): Take an additional argument to
	distinguish between a vector shift by a scalar and vector shift by
	a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
	shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
	vector shift by a vector.
	(expand_widen_pattern_expr): Pass additional argument to
	optab_for_tree_code.

	* genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
	vrotl_optab, vrotr_optab.

	* expr.c (expand_expr_real_1): Update calls to
	optab_for_tree_code to distinguish between vector shifted by a
	scalar and vector shifted by a vector.
	* tree-vectorizer.c (supportable_widening_operation): Ditto.
	(supportable_narrowing_operation): Ditto.
	* tree-vect-analyze.c (vect_build_slp_tree): Ditto.
	* tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
	* tree-vect-transform.c (vect_model_reduction_cost): Ditto.
	(vect_create_epilog_for_reduction): Ditto.
	(vectorizable_reduction): Ditto.
	(vectorizable_operation): Ditto.
	(vect_strided_store_supported): Ditto.
	(vect_strided_load_supported): Ditto.
	* tree-vect-generic.c (expand_vector_operations_1): Ditto.
	* expmed.c (expand_shift): Ditto.

	* doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
	scalar type.
	(ashr@var{m}3): Ditto.
	(vashl@var{m}3): Document new vector/vector shift standard name.
	(vashr@var{m}3): Ditto.
	(vlshr@var{m}3): Ditto.
	(vrotl@var{m}3): Ditto.
	(vrotr@var{m}3): Ditto.

	* config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
	(PPERM_INVERT): Ditto.
	(PPERM_REVERSE): Ditto.
	(PPERM_REV_INV): Ditto.
	(PPERM_ZERO): Ditto.
	(PPERM_ONES): Ditto.
	(PPERM_SIGN): Ditto.
	(PPERM_INV_SIGN): Ditto.
	(PPERM_SRC1): Ditto.
	(PPERM_SRC2): Ditto.

	* config/i386/sse.md (mulv2di3): Add SSE5 support.
	(sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
	allows a memory operand to be the value being added, and split it
	to improve vectorization.
	(sse5_pmacsdqh_mem): Ditto.
	(sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
	(sse5_mulv2div2di3_high): Ditto.
	(vec_pack_trunc_v8hi): Add SSE5 pperm support.
	(vec_pack_trunc_v4si): Ditto.
	(vec_pack_trunc_v2di): Ditto.
	(sse5_pcmov_<mode>): Remove code that tried to use use
	andps/andnps instead of pcmov.
	(vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
	pmacsdqh instructions.
	(vec_widen_smult_lo_v4si): Ditto.

	* config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
	(PPERM_INVERT): Ditto.
	(PPERM_REVERSE): Ditto.
	(PPERM_REV_INV): Ditto.
	(PPERM_ZERO): Ditto.
	(PPERM_ONES): Ditto.
	(PPERM_SIGN): Ditto.
	(PPERM_INV_SIGN): Ditto.
	(PPERM_SRC1): Ditto.
	(PPERM_SRC2): Ditto.
	(ix86_expand_sse_movcc): Move the SSE5 test after the if
	true/false tests.
	(ix86_expand_int_vcond): If SSE5 generate all possible integer
	comparisons.
	(ix86_sse5_valid_op_p): Allow num_memory to be negative, which
	says ignore whether the last reference is a memory operand.

2008-05-14  Michael Meissner  <michael.meissner@amd.com>
	    Paolo Bonzini <bonzini at gnu dot org>

	* config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
	shift patterns.

	* config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
	(vlshr<mode>3): Rename from vlshr<mode>3.
	(vashr<mode>3): Rename from vashr<mode>3.
	(mulv4sf3): Change the names of vector shift patterns.
	(mulv4si3): Ditto.
	(negv4sf2): Ditt.

	* config/spu/spu.c (spu_initialize_trampoline): Rename vector
	shift insns.

	* config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
	(SI_SHLHI): Ditto.
	(SI_SHL): Ditto.
	(SI_SHLI): Ditto.
	(SI_ROTH): Ditto.
	(SI_ROTHI): Ditto.
	(SI_ROT): Ditto.
	(SI_ROTI): Ditto.
	(SPU_RL_0): Ditto.
	(SPU_RL_1): Ditto.
	(SPU_RL_2): Ditto.
	(SPU_RL_3): Ditto.
	(SPU_RL_4): Ditto.
	(SPU_RL_5): Ditto.
	(SPU_RL_6): Ditto.
	(SPU_RL_7): Ditto.
	(SPU_SL_0): Ditto.
	(SPU_SL_1): Ditto.
	(SPU_SL_2): Ditto.
	(SPU_SL_3): Ditto.
	(SPU_SL_4): Ditto.
	(SPU_SL_5): Ditto.
	(SPU_SL_6): Ditto.
	(SPU_SL_7): Ditto.

	* config/spu/spu.md (v): New iterator macro to add v for vector types.
	(floatunssidf2_internal): Change vector/vector shift names.
	(floatunsdidf2_internal): Ditto.
	(mulv8hi3): Ditto.
	(ashrdi3): Ditto.
	(ashrti3): Ditto.
	(cgt_df): Ditto.
	(cgt_v2df): Ditto.
	(dftsv): Ditto.
	(vashl<mode>3): Rename from ashl<mode>3.
	(vashr<mode>3): Rename from ashr<mode>3.
	(vlshr<mode>3): Rename from lshr<mode>3.
	(vrotl<mode>3): Rename from rotl<mode>3.

2008-05-14  Michael Meissner  <michael.meissner@amd.com>

	PR target/36224
	* config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
	multiply gives the wrong value when doing widening multiplies.
	(vec_widen_smult_lo_v4si): Ditto.

2008-05-14  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
	LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
	emit_library_call_value.
	* builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
	* tree.h (ECF_LIBCALL_BLOCK): Removed.
	* calls.c (initialize_argument_information, precompute_arguments,
	expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
	(precompute_arguments): Removed flags parameter.
	* rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.

2008-05-14  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
	Make sure to register the store if the use is a PHI_NODE.

2008-05-14  Olivier Hainque  <hainque@adacore.com>

	* expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
	memory if the component is to be referenced in BLKmode according
	to get_inner_reference.

2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>

	* calls.c (emit_library_call_value_1): Restore code clearing
	ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.

2008-05-14  Olivier Hainque  <hainque@adacore.com>
	    Nicolas Roche  <roche@adacore.com>

	* configure.ac: Add support for a "gcc_subdir" variable in
	config-lang.in, to denote a subdirectory where the language/GCC
	integration files are to be found.
	* configure: Regenerate.

2008-05-14  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/36098
	* tree-vect-analyze.c (vect_analyze_group_access): Set the gap
	value for the first load in the group in case of a gap.
	(vect_build_slp_tree): Check that there are no gaps in loads.

2008-05-14  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
	* optabs.c (expand_binop, expand_absneg_bit, expand_unop,
	expand_copysign_bit): Change call to emit_no_conflict_block to
	emit_insn and remove unneeded code to construct extra args.
	(emit_no_conflict_block): Removed.
	* optabls.h (emit_no_conflict_block): Removed.
	* cse.c (cse_extended_basic_block): Remove search for
	REG_NO_CONFLICT note.
	* global.c: Removed incorrect comment added in revision 117.
	* expr.c (convert_move): Change call to emit_no_conflict_block to
	emit_insn.
	* recog.c: Change comments so that they do not mention
	REG_NO_CONFLICT.
	* local_alloc.c (combine_regs): Removed last parameter.
	(no_conflict_p): Removed.
	(block_alloc): Removed note, no_conflict_combined_regno and set
	local vars. Removed all code to process REG_NO_CONFLICT blocks.
	(combine_regs): Removed already_dead and code to look for
	REG_NO_CONFLICT notes.
	* lower_subreg (remove_retval_note): Removed code to look for
	REG_NO_CONFLICT block.
	(resolve_reg_notes): Removed REG_NO_CONFLICT case.
	(resolve_clobber): Remove code to process libcalls that have
	REG_NO_CONFLICT notes.
	* loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
	case.
	* combine.c (can_combine_p, distribute_notes):  Removed
	REG_NO_CONFLICT case.
	* config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
	to emit_insns.
	* config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
	* config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
	Ditto.
	* reg-notes.def (NO_CONFLICT): Removed.

2008-05-14  David S. Miller  <davem@davemloft.net>

	* config/sparc/sparc.c (sparc_profile_hook): If
	NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
	* config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
	* config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.

2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>

	* cse.c (cse_cc_succs): Invoke delete_insn_and_edges.

2008-05-13  Uros Bizjak  <ubizjak@gmail.com>

	PR target/36222
	* config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
	and op1 expansion before vector concat to have less live pseudos.

2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
	ix86_expand_vector_set if supported.

2008-05-13  Diego Novillo  <dnovillo@google.com>
	    Kenneth Zadeck  <zadeck@naturalbridge.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html

	* tree.h (init_phinodes, fini_phinodes, release_phi_node,
	phinodes_print_statistics, init_ssanames, fini_ssanames,
	make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
	release_ssa_name, release_defs, replace_ssa_name_symbol,
	ssanames_print_statistics): Move ...
	* tree-flow.h: ... here.
	* tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
	Use FN instead of cfun.
	(make_ssa_name_fn): Rename from make_ssa_name.
	(pass_release_ssa_names): Add TODO_dump_func to finish flags.
	* tree-flow-inline.h (make_ssa_name): Move from
	tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
	* omp-low.c (expand_omp_parallel):
	* tree-flow-inline.h (redirect_edge_var_map_result):
	* tree-ssa.c (init_tree_ssa): Add argument FN.
	Use it instead of cfun.  Update all users.

2008-05-13  Tom Tromey  <tromey@redhat.com>

	PR preprocessor/22168:
	* doc/cpp.texi (Top): Update menu.
	(Alternatives to Wrapper #ifndef): New node.
	(Other Directives): Document deprecation.
	(Obsolete Features): Remove menu.
	(Assertions): Merge node into Obsolete Features.
	(Obsolete once-only headers): Move earlier; rename to Alternatives
	to Wrapper #ifndef.
	* doc/cppopts.texi: Update.
	* c.opt (Wdeprecated): Enable for C and ObjC.
	* doc/invoke.texi (Option Summary): Move -Wno-deprecated.
	(C++ Dialect Options): Move -Wno-deprecated from here to...
	(Warning Options): ... here.

2008-05-13  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36227
	* fold-const.c (fold_sign_changed_comparison): Do not allow
	changes in pointer-ness.

2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/24713
	* config/sh/sh.c (sh_expand_prologue): Don't clear
	RTX_FRAME_RELATED_P for push insns.

2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>

	* config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.

2008-05-12  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.h (machine_function): Add 'is_leaf' field.
	* config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
	Use 'machine->is_leaf' instead of 'leaf_func_p'.

2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (*sse_concatv4sf): Renamed to ...
	(*vec_concatv4sf_sse): This.
	(*sse2_concatv2si): Renamed to ...
	(*vec_concatv2si_sse2): This.
	(*sse1_concatv2si): Renamed to ...
	(*vec_concatv2si_sse): This.
	(*vec_concatv2di_rex): Renamed to ...
	(*vec_concatv2di_rex64): This.
	(*vec_concatv2si_sse4_1): New.
	(*vec_concatv2di_rex64_sse4_1): Likewise.

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

	PR rtl-optimization/36111
	* recog.c (validate_replace_rtx_1): Unshare new RTL expression
	that was created for swappable operands.

2008-05-12  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/36001
	* Makefile.in: Substitute GNATMAKE and GNATBIND.
	* configure.ac: Add call to ACX_PROG_GNAT.

2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>

	* optc-gen.awk: Fix comment typo.

2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

	* pretty-print.c (pp_integer_with_precision): Use
	HOST_LONG_LONG_FORMAT.

2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.

2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (bdesc_ptest): Removed.
	(ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
	(bdesc_args): Add __builtin_ia32_ptestz128,
	__builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
	(ix86_init_mmx_sse_builtins): Updated.
	(ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
	(ix86_expand_builtin): Updated.

2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>

	* tree-cfg.c (valid_fixed_convert_types_p): New function.
	(verify_gimple_expr): Handle FIXED_CONVERT_EXPR.

2008-05-10  Uros Bizjak  <ubizjak@gmail.com>

	* value-prof.c (interesting_stringop_to_profile): Do not
	return early for BUILT_IN_MEMPCPY.

2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>

	* calls.c (expand_call): Don't use callgraph to increase
	preferred_stack_boundary.

	* cgraph.h (cgraph_rtl_info): Use unsigned on
	preferred_incoming_stack_boundary.

	* final.c (rest_of_clean_state): Use unsigned on
	preferred_stack_boundary.

2008-05-09  Tom Tromey  <tromey@redhat.com>

	PR preprocessor/22231:
	* c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
	proceeding.

2008-05-09  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/36129
	* tree-ssa-ccp.c: Include value-prof.h.
	(execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
	built-in function was folded to a constant.
	* Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h

2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c: Document instantiate_scev.
	(instantiate_parameters_1): Renamed instantiate_scev_1.
	Don't use the same loop for instantiation_loop and evolution_loop.
	(instantiate_scev): New.
	(instantiate_parameters): Moved...
	(resolve_mixers): Update call to instantiate_scev_1 to pass the
	same loop twice.  Maintains the semantics for this function.
	* tree-scalar-evolution.h (instantiate_scev): Declare.
	(instantiate_parameters): ...here.  Now static inline.
	* tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
	instead of resolve_mixers.

2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* rtl-factoring.c (collect_pattern_seqs): Fix typo.

2008-05-09  Tomas Bily  <tbily@suse.cz>

	* config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
	* tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
	* tree-ssa-structalias.c (get_constraint_for): Likewise.
	* c-common.c (c_common_truthvalue_conversion): Likewise.
	* tree-object-size.c (compute_object_offset): Likewise.
	* tree-inline.c (estimate_num_insns_1): Likewise.
	* varasm.c (const_hash_1, compare_constant, copy_constant)
	(compute_reloc_for_constant, output_addressed_constants)
	(initializer_constant_valid_p): Likewise.
	* c-omp.c (check_omp_for_incr_expr): Likewise.
	* gimplify.c (gimplify_expr): Likewise.
	* c-typeck.c (c_finish_return): Likewise.
	* tree-vectorizer.c (supportable_widening_operation)
	(supportable_narrowing_operation): Likewise.
	* c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
	* matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
	* expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
	* dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
	(descr_info_loc): Likewise.
	* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
	* fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
	(fold_unary): Likewise.
	* builtins.c (get_pointer_alignment): Likewise.
	* tree-scalar-evolution.c (interpret_rhs_modify_stmt)
	(instantiate_parameters_1): Likewise.
	* tree.c (expr_align, stabilize_reference): Likewise.
	* tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
	* tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
	* convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
	* tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
	* config/alpha/alpha.c (va_list_skip_additions): Likewise.
	* c-common.c (c_alignof_expr, check_function_arguments_recurse):
	Likewise.
	* tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
	* varasm.c (initializer_constant_valid_p, output_constant): Likewise.
	* tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
	(forward_propagate_addr_expr_1, forward_propagate_addr_expr)
	(forward_propagate_comparison)
	(tree_ssa_forward_propagate_single_use_vars): Likewise.
	* cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
	* emit-rtl.c (component_ref_for_mem_expr)
	(set_mem_attributes_minus_bitpos): Likewise.
	* tree-ssa-phiopt.c (conditional_replacement): Likewise.
	* gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
	Likewise.
	* c-typeck.c (default_function_array_conversion, build_indirect_ref)
	(build_function_call, pointer_diff, build_compound_expr)
	(c_finish_return): Likewise.
	* tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
	* matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
	Likewise.
	* tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
	* expr.c (is_aligning_offset): Likewise.
	* tree-ssa-alias.c (is_escape_site): Likewise.
	* tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
	(check_all_va_list_escapes): Likewise.
	* tree-ssa-loop-ivopts.c (determine_base_object)
	(determine_common_wider_type): Likewise.
	* dojump.c (do_jump): Likewise.
	* tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
	* tree-gimple.c (is_gimple_cast): Likewise.
	* fold-const.c (decode_field_reference)
	(fold_sign_changed_comparison, fold_unary, fold_comparison)
	(fold_binary): Likewise.
	* tree-ssa-alias-warnings.c (find_alias_site_helper)
	(already_warned_in_frontend_p): Likewise.
	* builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
	* tree.c (really_constant_p, get_unwidened): Likewise.
	* tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
	* tree-ssa-loop-im.c (rewrite_bittest): Likewise.
	* tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
	Likewise.
	* tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
	CONVERT_EXPR_P.
	(CONVERT_EXPR_P): Define.
	(CASE_CONVERT): Define.

2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>

	PR middle-end/36117
	* dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
	(delete_unmarked_insns): When deleting a call, call
	delete_unreachable_blocks.
	* rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
	RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.

2008-05-08  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi (-fdump-tree-salias): Remove documentation.
	(-ftree-salias): Likewise.
	(salias-max-implicit-fields): Remove param documentation.
	(salias-max-array-elements): Likewise.
	* tree-pass.h (pass_create_structure_vars): Remove.
	* params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
	(SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
	* tree-ssa-alias.c (create_structure_vars): Remove.
	(gate_structure_vars): Likewise.
	(pass_create_structure_vars): Likewise.
	(gate_build_alias): Likewise.
	(pass_build_alias): Adjust to run always and dump the function.
	* common.opt (ftree-salias): Hide.
	* passes.c (init_optimization_passes): Remove
	pass_create_structure_vars, adjust comment.
	* params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
	(PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
	* opts.c (decode_options): Do not set flag_tree_salias.
	(common_handle_option): Add OPT_ftree_salias to the backward
	compatibility section.

2008-05-08  Richard Guenther  <rguenther@suse.de>

	* tree-flow-inline.h (var_can_have_subvars): Move ...
	* tree-ssa-structalias.c (var_can_have_subvars): ... here.
	* tree-flow.h (var_can_have_subvars): Remove.
	(push_fields_onto_fieldstack): Remove.
	(sort_fieldstack): Likewise.
	(struct fieldoff): Move ...
	* tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
	alias_set and base_for_components fields.
	(sort_fieldstack): Make static.
	(push_fields_onto_fieldstack): Likewise.  Remove code that
	handles anything but RECORD_TYPEs.  Remove alias_set and
	base_for_components handling.
	(create_variable_info_for): Adjust.

2008-05-08  Seongbae Park  <seongbae.park@gmail.com>

	* common.opt (Wframe-larger-than=): Shorten the help message
	to one line.
	* doc/invoke.texi (Wframe-larger-than=): Add more description.

2008-05-08  Rafael Espíndola  <espindola@google.com>

	* tree-complex.c (expand_complex_div_wide): Don't create CONDs that
	trap.
	* tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
	trap and that both operands are gimple values.
	(canonicalize_cond_expr_cond): Use is_gimple_condexpr.
	* gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
	is a fp operation.

2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>

	* read-rtl.c (join_c_conditions): Return the first string if the
	two strings are equal.

2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>

	* gensupport.h (pred_data): Add a "num_codes" field.
	(add_predicate_code): Declare.
	* gensupport.c (add_predicate_code): New function.
	(std_pred_table): Add an "allows_const_p" field.
	(std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
	Remove the (incomplete) list of such codes from the codes field.
	(init_predicate_table): Use add_predicate_code.  Add all
	RTX_CONST_OBJs if allows_const_p is true.
	* genrecog.c (process_define_predicate): Use add_predicate_code.

2008-05-08  David Daney  <ddaney@avtrex.com>
	    Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
	special case of constant zero operands.
	* config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
	old and	new values.  Special case constant zero values.
	* config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
	fails.
	(MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
	(MIPS_COMPARE_AND_SWAP_12_0): New macro.

2008-05-08  Paolo Bonzini  <bonzini@gnu.org>

	PR target/36090
	* simplify-rtx.c (simplify_plus_minus): Create CONST of
	similar RTX_CONST_OBJ before CONST_INT.

2008-05-08  Steve Ellcey  <sje@cup.hp.com>

	* stmt.c (expand_stack_restore): Change sa mode if needed.

2008-05-08  Richard Guenther  <rguenther@suse.de>

	* config/i386/i386-protos.h (ix86_return_in_memory): Adjust
	return type to bool.
	(ix86_sol10_return_in_memory): Likewise.
	(ix86_i386elf_return_in_memory): Likewise.
	(ix86_i386interix_return_in_memory): Likewise.
	* config/i386/i386.c (ix86_return_in_memory): Likewise.
	(ix86_sol10_return_in_memory): Likewise.
	(ix86_i386elf_return_in_memory): Likewise.
	(ix86_i386interix_return_in_memory): Likewise.

2008-05-08  Kai Tietz  <kai.tietz@onevision.com>

	PR bootstrap/36180
	* calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
	fndecl argument.
	(emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
	* target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
	declared in front.

2008-05-08  Richard Guenther  <rguenther@suse.de>

	* tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
	* tree-data-ref.h (struct dr_alias): Remove subvars field.
	(DR_SUBVARS): Remove.
	* tree-dfa.c (dump_subvars_for): Remove.
	(debug_subvars_for): Likewise.
	(dump_variable): Do not dump subvars.
	(remove_referenced_var): Do not remove subvars.
	* tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
	(lookup_subvars_for_var): Remove.
	(get_subvars_for_var): Likewise.
	(get_subvars_at): Likewise.
	(get_first_overlapping_subvar): Likewise.
	(overlap_subvar): Likewise.
	* tree-flow.h (subvar_t): Remove.
	(struct var_ann_d): Remove subvars field.
	* tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
	argument.  Remove special handling of SFTs.
	(compute_tag_properties): Likewise.
	(set_initial_properties): Likewise.
	(compute_call_clobbered): Likewise.
	(count_mem_refs): Likewise.
	(compute_memory_partitions): Likewise.
	(compute_flow_insensitive_aliasing): Likewise.
	(setup_pointers_and_addressables): Likewise.
	(new_type_alias): Likewise.
	(struct used_part): Remove.
	(used_portions): Likewise.
	(struct used_part_map): Likewise.
	(used_part_map_eq): Likewise.
	(used_part_map_hash): Likewise.
	(free_used_part_map): Likewise.
	(up_lookup): Likewise.
	(up_insert): Likewise.
	(get_or_create_used_part_for): Likewise.
	(create_sft): Likewise.
	(create_overlap_variables_for): Likewise.
	(find_used_portions): Likewise.
	(create_structure_vars): Likewise.
	* tree.def (STRUCT_FIELD_TAG): Remove.
	* tree.h (MTAG_P): Adjust.
	(struct tree_memory_tag): Remove base_for_components and
	unpartitionable flags.
	(struct tree_struct_field_tag): Remove.
	(SFT_PARENT_VAR): Likewise.
	(SFT_OFFSET): Likewise.
	(SFT_SIZE): Likewise.
	(SFT_NONADDRESSABLE_P): Likewise.
	(SFT_ALIAS_SET): Likewise.
	(SFT_UNPARTITIONABLE_P): Likewise.
	(SFT_BASE_FOR_COMPONENTS_P): Likewise.
	(union tree_node): Remove sft field.
	* alias.c (get_alias_set): Remove special handling of SFTs.
	* print-tree.c (print_node): Remove handling of SFTs.
	* tree-dump.c (dequeue_and_dump): Likewise.
	* tree-into-ssa.c (mark_sym_for_renaming): Likewise.
	* tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
	* tree-predcom.c (set_alias_info): Do not set subvars.
	* tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
	* tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
	* tree-ssa-operands.c (access_can_touch_variable): Likewise.
	(add_vars_for_offset): Remove.
	(add_virtual_operand): Remove special handling of SFTs.
	(add_call_clobber_ops): Likewise.
	(add_call_read_ops): Likewise.
	(get_asm_expr_operands): Likewise.
	(get_modify_stmt_operands): Likewise.
	(get_expr_operands): Likewise.
	(add_to_addressable_set): Likewise.
	* tree-ssa.c (verify_ssa_name): Do not handle SFTs.
	* tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
	* tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
	* tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
	(tree_code_size): Remove STRUCT_FIELD_TAG handling.
	(tree_node_structure): Likewise.
	* tree-ssa-structalias.c (set_uids_in_ptset): Remove special
	handling of SFTs.
	(find_what_p_points_to): Likewise.

2008-05-08  Sa Liu  <saliu@de.ibm.com>

	* config/spu/spu.md: Fixed subti3 pattern.

2008-05-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36154
	* tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
	sure to create a representative for trailing arrays for PTA.

2008-05-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36172
	* fold-const.c (operand_equal_p): Two objects which types
	differ in pointerness are not equal.

2008-05-08  Kai Tietz  <kai.tietz@onevision.com>

	* calls.c (compute_argument_block_size): Add argument tree fndecl.
	(OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
	(emit_library_call_value_1): Add new variable fndecl initialized by
	NULL_TREE. It should be the decl type of orgfun, but this information
	seems not to be available here, so it uses the default calling abi.
	* config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
	* config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
	by TARGET_RETURN_IN_MEMORY.
	* config/i386/i386-interix.h: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i386/i386elf.h: Likewise.
	* config/i386/ptx4-i.h: Likewise.
	* config/i386/sol2-10.h: Likewise.
	* config/i386/sysv4.h: Likewise.
	* config/i386/vx-common.h: Likewise.
	* config/cris/cris.h: Removed #if 0 clause.
	* config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
	* config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
	argument.
	(ix86_sol10_return_in_memory): Likewise.
	(ix86_i386elf_return_in_memory): New.
	(ix86_i386interix_return_in_memory): New.
	* config/mt/mt-protos.h (mt_return_in_memory): New.
	* config/mt/mt.c: Likewise.
	* config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
	(RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
	* config/bfin/bfin.h: Likewise.
	* config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
	argument.
	* config/bfin/bfin.c: Likewise.
	* config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
	* config/alpha/unicosmk.h: Likewise.
	* config/i386/cygming.h: Likewise.
	* config/iq2000/iq2000.h: Likewise.
	* config/mips/mips.h: Likewise.
	* config/mn10300/mn10300.h: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/score/score.h: Likewise.
	* config/spu/spu.h: Likewise.
	* config/v850/v850.h: Likewise.
	* defaults.h: Likewise.
	* doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
	* expr.c (emit_block_move): Adjust use of
	OUTGOING_REG_PARM_STACK_SPACE.
	* function.c (STACK_DYNAMIC_OFFSET): Adjust use of
	OUTGOING_REG_PARM_STACK_SPACE.
	* targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.

2008-05-08  Jakub Jelinek  <jakub@redhat.com>

	* tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
	on OMP_RETURN for OMP_FOR.

	PR debug/35896
	* dwarf2out.c (dw_expand_expr, common_check): Removed.
	(fortran_common): New function.
	(gen_variable_die): Call fortran_common instead of common_check,
	adjust for it returning tree instead of rtx.  Formatting.

2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>

	PR rtl/7335
	PR rtl/33826
	* see.c (see_copy_insn): Copy new pure const attributes for new call.
	* c-decl.c (merge_decls): Ditto.
	* postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
	to RTL_CONST_OR_PURE_CALL_P.
	* tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
	Initialized DECL_LOOPING_CONST_PURE.
	(process_call_operands): Set tree_side_effects properly.
	* tree.h (TREE_READONLY_DECL_P): Removed.
	(DECL_IS_PURE): Renamed to DECL_PURE_P.
	(DECL_LOOPING_OR_CONST_P): New macro.
	(struct tree_function_decl): Added looping_const_or_pure_p.
	(ECF_*) Renumbered.
	(ECF_LOOPING_OR_CONST_P): New macro.
	* rtlanal.c (pure_const_p): Removed.
	* builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
	* reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
	to RTL_CONST_CALL_P.
	* ipa-pure-const.c (pure_const_state_e): Added looping field.
	(check_decl, check_tree, check_call, scan_function): Initialize
	looping.
	(analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
	(static_execute): Set looping true for recursive functions.
	Undo setting state to IPA_NEITHER for recursive functions.
	* cse.c (cse_insn):
	* ifcvt.c (noce_can_store_speculate_p): Changed
	CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
	RTL_CONST_OR_PURE_CALL_P.
	* dse.c (scan_insn): Ditto.
	* local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
	* gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
	RTL_CONST_OR_PURE_CALL_P.
	(store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
	pure_call_p to RTL_CONST_CALL_P.
	* gimplify.c (gimplify_call_expr): Clear side effects for
	non-looping pure and constant calls.
	* calls.c (emit_call_1): Set rtl flags from ecf flags.
	(flags_from_decl_or_type): Set ecf flags from decl flags.
	(initialize_argument_information): Turn off
	ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
	Change const to pure if callee_copies is true rather than just
	turning off const.
	(expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
	way of marking pure calls.
	(emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
	Remove hack that was supposed to fix pr7335 and remove old
	way of marking pure calls.
	* emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
	RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
	* cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
	RTL_CONST_OR_PURE_CALL_P.
	* tree-ssa-pre.c (can_value_number_call): Fixed spacing.
	* loop-invariant.c (find_exits, find_invariant_bb): Changed
	CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
	* sched-deps.c (schedule_analyze): Ditto.
	* rtl.h (struct rtx_def): Use call field, unchanging field, and
	return_val field of calls to represent pure and const function info.
	(CONST_OR_PURE_CALL_P): Deleted macro.
	(RTL_CONST_CALL_P, RTL_PURE_CALL_P,
	RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
	* tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
	TREE_READONLY.
	* tree-optimize.c (execute_fixup_cfg): Added test for
	ECF_LOOPING_CONST_OR_PURE.
	* c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
	DECL_PURE_P.
	* tree-cfg.c (update_call_expr_flags): Do not clear tree side
	effects for looping pure or const calls.
	(verify_gimple_expr): Added verification code.
	* config/alpha/alpha.c (alpha_legitimize_address,
	alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
	RTL_CONST_CALL_P.
	* config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
	* config/mips/mips.c (mips_call_tls_get_addr): Ditto.
	* cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
	RTL_CONST_OR_PURE_CALL_P.
	* dce.c (deletable_insn_p): Allow non looping, non sibling, pure
	and const calls to be deleted.

2008-05-07  Uros Bizjak  <ubizjak@gmail.com>

	PR target/35714
	* config/i386/mmx.md (mmx_subv2sf3): New expander.
	(*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
	(*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
	(mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
	to handle nonimmediate operands.
	(*mmx_paddwd): Rename from mmx_paddwd insn pattern.
	(mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
	to handle nonimmediate operands.
	(*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
	(mmx_pmulhrwv4hi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
	(sse2_umulv1siv1di3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
	(mmx_eq<mode>3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
	(mmx_uavgv8qi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
	(mmx_uavgv4hi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.

	* config/i386/sse.md
	(sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
	to handle nonimmediate operands.
	(sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
	to handle nonimmediate operands.
	(sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
	to handle nonimmediate operands.
	(sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
	to handle nonimmediate operands.
	(sse2_unpckhpd_exp): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(sse2_unpcklpd_exp): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
	to handle nonimmediate operands.
	(sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
	to handle nonimmediate operands.
	(*sse2_<plusminus_insn><mode>3): Rename from
	sse2_<plusminus_insn><mode>3 insn pattern.
	(sse2_<plusminus_insn><mode>3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
	(sse2_umulv2siv2di3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
	(sse4_1_mulv2siv2di3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
	(sse2_pmaddwd): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
	(sse2_eq<mode>3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
	(sse4_1_eqv2di3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
	(sse2_uavgv16qi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
	(sse2_uavgv16qi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
	(sse2_uavgv8hi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
	(ssse3_pmulhrswv8hi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
	(ssse3_pmulhrswv4hi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.

	(<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
	(<sse>_vmmul<mode>3): Ditto.
	(divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
	(divv2df3): Ditto.
	(ssse3_pmaddubsw128): Use register_operand for operand 1.
	(ssse3_pmaddubsw): Ditto.

	* config/i386/i386.c (struct_builtin_description)
	[IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
	[IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
	[IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
	[IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
	[IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
	[IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
	[IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
	[IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
	(ix86_fixup_binary_operands): Assert that src1
	and src2 must have the same mode when swapped.
	(ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
	and ix86_binary_operator_ok.  Do not force operands in registers
	when optimizing.

2008-05-07  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (dump_cgraph_node): Update.
	* cgraph.h (cgraph_local_info): Break out inline summary.
	* cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
	hook.
	* ipa-inline (inline_summary): New accestor function.
	(cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
	cgraph_decide_inlining, compute_inline_parameters): Update.
	* ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.

2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>

	Cleanup ColdFire scheduling support and add V4 pipeline model.

	* config/m68k/m68k.md (UNSPEC_TIE): New constant.
	(define_attr cpu): Add cfv4 value.
	(define_attr type, define_attr type1): Merge into a single 'type'
	attribute.  Update all uses.
	(define_attr opx_type, define_attr opy_type, define_attr opx_access):
	Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
	Update all uses.
	(define_attr opx_mem, define_attr opy_mem): Remove.
	(define_attr op_mem): Clean up, update comment.
	(define_attr size): Use specific values instead of general int.
	(define_attr guess, define_attr split): Remove.  Update all uses.
	(movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
	tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
	movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
	zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
	68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
	floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
	fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
	adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
	add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
	add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
	sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
	sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
	mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
	umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
	mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
	div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
	one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
	bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
	beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
	bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
	symbolic_call_value_jsr, symbolic_call_value_bsr, link):
	Update or set attributes.
	(stack_tie): New fake instruction.

	* config/m68k/m68k.h (TUNE_CFV4): New macro.
	(m68k_sched_attr_size): Update declaration.
	(m68k_sched_attr_type2): Remove.
	(m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
	Declare new bypass predicates.

	* config/m68k/m68k.c (m68k_sched_issue_rate,
	m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
	implementations.
	(TARGET_SCHED_ISSUE_RATE,
	TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
	(override_options): Handle scheduling for ColdFire V4 core.
	(m68k_expand_prologue): Emit stack_tie.
	(enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
	'OP_TYPE_FPN'.  Update all uses.
	(sched_guess_p): Remove.
	(sched_address_type): Handle symbolic addresses.
	(sched_get_operand): New static function.
	(sched_operand_type): Merge into sched_attr_op_type.
	(sched_attr_op_type): Handle FP registers, handle quick constants,
	update.
	(m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
	(m68k_sched_attr_size): Update.  Move logic to ...
	(sched_get_attr_size_int): New static function.
	(sched_get_opxy_mem_type): New static function.
	(m68k_sched_attr_op_mem): Update.
	(m68k_sched_attr_type2): Remove.
	(sched_cfv4_bypass_data): New static variable.
	(m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
	(m68k_sched_issue_rate): Implement scheduler hook.
	(struct _sched_ib: enabled_p): New field.
	(m68k_sched_variable_issue): Update.  Handle V4.
	(SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
	sched_dump_class_func_t, sched_dump_split_class,
	sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
	sched_dump_dfa_class, m68k_sched_dump): Remove.
	(m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
	hook.
	(m68k_sched_init_global): Remove statisctics dumping, introduce
	sanity check that all instructions have pipeline reservations.  Handle
	ColdFire V4 core.
	(m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
	Handle ColdFire V4 core.
	(sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
	New static functions.
	(m68k_sched_address_bypass_p): New bypass predicate.
	(sched_get_indexed_address_scale): New static function.
	(m68k_sched_indexed_address_bypass_p): New bypass predicate.

	* cf.md: Update comments.
	(define_attr type2): Remove.  Use 'type' attribute instead.
	Update all uses.
	(cf_ib): Rename to cfv123_ib.  Update all uses.
	(cf_oep): Rename to cfv123_oep.  Update all uses.
	(cf_chr): Rename to cfv123_chr.  Update all uses.
	(cf_mem): Rename to cfv123_mem.  Update all uses.
	(cf_mac): Move to more appropriate place.
	(cfv123_guess): New automaton and cpu_unit.
	(cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
	Update uses of 'size' attribute.  Handle before reload scheduling.
	(cfv123_guess): New dummy reservation for unhandled instructions.
	(cfv4_*): Pipeline description of ColdFire V4 core.
	(ignore): New reservation to handle 'ignore' type.

2008-05-07  Ian Lance Taylor  <iant@google.com>

	PR middle-end/36013
	* gimplify.c (find_single_pointer_decl_1): Don't look through
	indirections.
	(find_single_pointer_decl): Adjust comments.

2008-05-07  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/36137
	* fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
	STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.

	PR middle-end/36106
	* omp-low.c (expand_omp_atomic_pipeline): Load value using the
	integral type rather than floating point, then VIEW_CONVERT_EXPR
	to the floating point type.

2008-05-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
	TFmode op0 to register.

2008-05-07  Alan Modra  <amodra@bigpond.net.au>

	* c-decl.c (grokdeclarator): Comment typo.

2008-05-06  Aldy Hernandez  <aldyh@redhat.com>

	* tree-flow.h: Remove prototype for computed_goto_p.
	* tree-cfg.c (computed_goto_p): Make static.

2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/35657
	* config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
	(contains_aligned_value_p): This.  Handle _Decimal128.
	(ix86_function_arg_boundary): Only align _Decimal128 to its
	natural boundary and handle it properly.

2008-05-06  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
	(ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
	(ipcp_method_set_orig_node): Removed.
	(ipcp_cval_get_cvalue_type): Removed.
	(ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
	(ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
	(ipcp_cval_set_cvalue_type): Removed.
	(ipcp_cval_get_cvalue): Removed.
	(ipcp_cval_set_cvalue): Removed.
	(ipcp_type_is_const): Renamed to ipcp_lat_is_const.
	(ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
	(ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
	(ipcp_cval_meet): Renamed to ipa_lattice_meet
	(ipcp_cval_changed): Changed to use ipcp_lat_is_const
	(ipcp_method_cval): Renamed to ipcp_get_ith_lattice
	(ipcp_get_ith_lattice): Changed parameters.
	(ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
	(ipcp_lattice_from_jfunc): Changed parameters.
	(ipcp_redirect): Local lattice pointer instead of lattice type variable.
	(ipcp_method_cval_print): Added temporary variable info.
	(ipcp_redirect): Removed already unused local variable caller.
	(ipcp_redirect): New temporary variable orig_callee_info
	(ipcp_redirect): Removed newly unused local variable callee.
	(ipcp_redirect): Removed (a bit confusing) local variable type.
	(ipcp_insert_stage): Added local variable info.
	(ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
	renamed too
	(ipcp_formal_create): Removed.
	(ipcp_method_cval_set): Removed.
	(ipcp_propagate_stage): Renamed lattice variables.
	(ipcp_method_cval_set_cvalue_type): Removed.
	(ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
	(ipcp_print_all_lattices): Changed printed strings to refer to
	lattices rather than cvals.
	(ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
	(ipcp_propagate_const): Changed formal parameters.
	(build_const_val): Changed formal parameters.
	(ipcp_insert_stage): Removed useless variable cvalue
	(build_const_val): Changed formal parameters.
	(ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
	(ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
	(ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
	(ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
	(ipcp_print_func_profile_counts): Changed string from "method" to
	"function"
	(ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
	(ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
	(ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
	(ipcp_structures_print): Renamed to ipcp_print_all_structures
	(ipcp_profile_print): Renamed to ipcp_print_profile_data
	(ipcp_lat_is_const): Changed parameters and made inline.
	(ipcp_replace_map_create): Renamed to ipcp_create_replace_map
	(ipcp_redirect): Renamed to ipcp_need_redirect_p
	(ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
	the predicate condition directly
	(ipcp_propagate_stage): Added local variable args. Removed local
	variable callee.  (Both are mere code simplifications.)
	(ipcp_method_dont_insert_const): Renamed to
	ipcp_node_not_modifiable_p.
	(ipcp_node_not_modifiable_p): Made inline.
	(ipcp_cloned_create): Renamed to ipcp_init_cloned_node
	(ipcp_propagate_const): Renamed to ipcp_propagate_one_const
	(ipcp_print_all_lattices): Removed variable cvalue
	(ipcp_method_scale_print): Renamed to ipcp_function_scale_print
	Updated comments.

2008-05-06  Olivier Hainque  <hainque@adacore.com>

	* tree-sra.c (try_instantiate_multiple_fields): Early return
	if field has POINTER_TYPE.

2008-05-06  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
	by using 'q' specifier for instruction.
	(ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.

2008-05-06  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
	Change mode of zero_extract from QImode to HImode.
	(sign bit tests peepholes): (Ditto.).

2008-05-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/mmx.md: Remove double backslashes from asm templates.
	(*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
	(mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
	to handle nonimmediate operands.
	(*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
	(mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
	to handle nonimmediate operands.
	(*mmx_<code>v2sf3_finite): New insn pattern.
	(*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
	(mmx_<code>v2sf3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(mmx_<plusminus_insn><mode>3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*mmx_<plusminus_insn><mode>3): New insn pattern.
	(mmx_add<mode>3): Removed.
	(mmx_ssadd<mode>3): Ditto.
	(mmx_usadd<mode>3): Ditto.
	(mmx_sub<mode>3): Ditto.
	(mmx_sssub<mode>3): Ditto.
	(mmx_ussub<mode>3): Ditto.
	(*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
	(mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
	to handle nonimmediate operands.
	(*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
	insn pattern.
	(mmx_smulv4hi3_highpart): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
	insn pattern.
	(mmx_umulv4hi3_highpart): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
	(mmx_<code>v4hi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
	(mmx_<code>v8qi3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
	(*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
	(mmx_<code><mode>3): New expander.  Use
	ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.

2008-05-05  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/36118
	* passes.c (pass_init_dump_file): Fix dump header.

2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/36141
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
	VCE for function decls.

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

	* config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.

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

	* config/i386/i386.md (sat_plusminus): New.
	(plusminus_insn): Likewise.
	(plusminus_mnemonic): Likewise.
	(addsub): Removed.
	(comm): Add ss_plus, us_plus, ss_minus and us_minus.
	(*<addsub><mode>3_cc_overflow): Renamed to ...
	(*<plusminus_insn><mode>3_cc_overflow): This.
	(*<addsub>si3_zext_cc_overflow): Renamed to ...
	(*<plusminus_insn>si3_zext_cc_overflow): This.

	* config/i386/sse.md (<addsub><mode>3): Renamed to ...
	(<plusminus_insn><mode>3): This.
	(*<addsub><mode>3): Renamed to ...
	(*<plusminus_insn><mode>3): This.
	(<sse>_vm<addsub><mode>3): Renamed to ...
	(<sse>_vm<plusminus_insn><mode>3): This.
	(sse3_h<addsub>v4sf3): Renamed to ...
	(sse3_h<plusminus_insn>v4sf3): This.
	(sse3_h<addsub>v2df3): Renamed to ...
	(sse3_h<plusminus_insn>v2df3): This.
	(<plusminus_insn><mode>3): New.
	(*<plusminus_insn><mode>3): Likewise.
	(sse2_<plusminus_insn><mode>3): Likewise.
	(add<mode>): Removed.
	(*add<mode>3): Likewise.
	(sse2_ssadd<mode>3): Likewise.
	(sse2_usadd<mode>3): Likewise.
	(sub<mode>3): Likewise.
	(*sub<mode>3): Likewise.
	(sse2_sssub<mode>3): Likewise.
	(sse2_ussub<mode>3): Likewise.

2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>

	* gthr-single.h: Add in required interface elements as per gthr.h.
	Add stub types for __gthread_key_t, __gthread_once_t. Add defines
	for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
	Generalize UNUSED macro.
	(__gthread_once): Add.
	(__gthread_key_create): Add.
	(__gthread_key_delete): Add.
	(__gthread_getspecific): Add.
	(__gthread_setspecific): Add.

2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>

	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
	the same size types for the indirect reference on the rhs, then
	create a VCE.

2008-05-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md
	(*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
	one insn template instead of template series.
	(*xordi_1_rex64): Ditto.
	(*xordi_2_rex64): Ditto.

2008-05-05  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/36119
	* tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
	in case of SLP.

2008-06-04  Jan Hubicka  <jh@suse.cz>

	tree-optimization/36100
	* tree-pass.h (pass_O0_always_inline): Declare.
	* ipa-inline.c (inline_transform): Remove dead code.
	(cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
	pass_O0_always_inline): New.
	* passes.c (init_optimization_passes): Add pass_O0_always_inline.

2008-05-04  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
	mnemonic in this_param move for TARGET_64BIT.

2008-05-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
	(*strmovsi_rex_1): Ditto.
	(*strsetsi_1): Ditto.
	(*strsetsi_rex_1): Ditto.

	(add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
	adddicc expanders using SWI mode iterator.

2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/36121
	* config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
	argument handling.

2008-05-04  David S. Miller  <davem@davemloft.net>

	* config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
	(sparc*-*-linux*): Use linux.h in tm_file.
	(sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
	compiler defaulting to 32-bit.
	(sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
	no longer needed.
	* config/sparc/linux.h: Remove definitions now obtained
	properly from linux.h
	* config/sparc/linux64.h: Likewise.
	(ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
	don't want this setting for 32-bit builds in a biarch compiler.
	* doc/install.texi: Add sparc-linux to list of targets
	supporting --enable-targets=all.

2008-05-03  Andrew Pinski  <pinskia@gmail.com>

	* Makefile.in (tree-ssa-phiprop.o): Fix dependencies.

2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
	after V4SI_FTYPE_V8HI.
	(ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
	case V4SI_FTYPE_V2DF.

2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* doc/invoke.texi (max-flow-memory-locations): Removed.
	* params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.

2008-05-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34973
	* opts.c (set_Wstrict_aliasing): Handle the turn-off case.

2008-05-02  David S. Miller  <davem@davemloft.net>

	* config.gcc (need_64bit_hwint): Document libcpp dependency.

2008-05-02  Simon Baldwin  <simonb@google.com>

	PR bootstrap/36108
	* c-common.h (warn_array_subscript_range): Removed.
	* c-common.c (warn_array_subscript_range): Ditto.
	* tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
	* c-typeck.c (build_array_ref): Remove warn_array_subscript_range.

2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_special_builtin_type): New.
	(bdesc_special_args): Likewise.
	(ix86_expand_special_args_builtin): Likewise.
	(ix86_init_mmx_sse_builtins): Updated.
	(ix86_expand_builtin): Updated.
	(ix86_expand_store_builtin): Removed.
	(ix86_expand_unop_builtin): Likewise.

	* config/i386/mm3dnow.h (__v2sf): Moved to ...
	* config/i386/mmintrin.h (__v2sf): Here.

	* config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
	const __v2sf.
	(_mm_loadl_pi): Likewise.
	(_mm_storeh_pi): Replace __v2si with __v2sf.
	(_mm_storel_pi): Likewise.

	* doc/extend.texi: Correct __builtin_ia32_loadhps,
	__builtin_ia32_loadlps, __builtin_ia32_storehps,
	__builtin_ia32_storelps, __builtin_ia32_loadhpd and
	__builtin_ia32_loadlpd.

2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
	V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
	(bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
	(ix86_init_mmx_sse_builtins): Updated.
	(ix86_expand_args_builtin): Likewise.
	(ix86_expand_builtin): Likewise.
	(ix86_expand_unop1_builtin): Renamed to ...
	(ix86_expand_unop_vec_merge_builtin): This.

2008-05-01  Jan Hubicka  <jh@suse.cz>

	PR bootstrap/36100
	* ipa-inline.c (inline_generate_summary): Make static.
	(inline_transform): Do not call inlining at -O0; make static.
	* passes.c (execute_todo): Add sanity check.
	(execute_one_ipa_transform_pass): Execute proper flags.

2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
	(DECL_NONADDRESSABLE_P): Likewise.
	* alias.c (record_component_aliases): Fix comment.

2008-05-01  Simon Baldwin  <simonb@google.com>

	* c-common.h (warn_array_subscript_range): New function.
	* c-common.c (warn_array_subscript_range): Ditto.
	* tree-vrp.c (check_array_ref): Corrected code to agree with
	comment, ignoring only arrays of size 0 or size 1.
	* c-typeck.c (build_array_ref): Call warn_array_subscript_range.

2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_builtin_type): Replace
	DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
	(bdesc_args): Updated.
	(ix86_init_mmx_sse_builtins): Likewise.
	(ix86_expand_args_builtin): Likewise.

	* config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
	with __v1di.

	* doc/extend.texi: Correct __builtin_ia32_palignr.

2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/36095
	* config/i386/i386.c (bdesc_crc32): Removed.
	(ix86_expand_crc32): Likewise.
	(ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
	V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
	V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
	UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
	UINT_FTYPE_UINT_UCHAR.
	(bdesc_args): Updated. Add crc32 builtins.
	(ix86_init_mmx_sse_builtins): Updated.
	(ix86_expand_args_builtin): Updated to support subreg.

	* doc/extend.texi: Correct __builtin_ia32_crc32di.

2008-05-01  Jan Hubicka  <jh@suse.cz>

	* tree-pass.h (opt_pass): Add IPA_PASS.
	(varpool_node, cgraph_node): Forward declare.
	(ipa_opt_pass): Define.
	(pass_ipa_inline): Turn into ipa_opt_pass.
	(pass_apply_inline): Remove.
	* ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
	(apply_inline): Turn into ....
	(inline_transform): ... this one.
	(inline_generate_summary): New function.
	(pass_apply_inline): Remove.
	* function.h (ipa_opt_pass): Forward declare structure; typedef;
	vector.
	(struct function): Add ipa_transforms_to_apply.
	* passes.c (register_one_dump_file): Work on IPA_PASS.
	(init_optimization_passes): Remove pass_inline_parameters and
	pass_apply_inline.
	(pass_init_dump_file, pass_fini_dump_file): Break out from ....
	(execute_one_pass) ... here; apply transforms when possible.
	(add_ipa_transform_pass, execute_ipa_summary_asses,
	execute_one_ipa_transform_pass): New.
	(execute_ipa_pass_list): Update for IPA_PASS type.

2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_builtin_type): Add
	V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
	V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
	(bdesc_args): Add SSE4a builtins.
	(ix86_init_mmx_sse_builtins): Updated.
	(ix86_expand_args_builtin): Likewise.
	(ix86_expand_builtin): Likewise.

2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_builtin_type): Add
	V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
	V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
	V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
	V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
	V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
	V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
	V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
	V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
	and DI_FTYPE_DI_DI_INT.
	(bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
	(ix86_init_mmx_sse_builtins): Updated.
	(ix86_expand_args_builtin): Likewise.
	(ix86_expand_builtin): Likewise.
	(ix86_expand_binop_imm_builtin): Removed.

	* doc/extend.texi: Correct __builtin_ia32_palignr128.

2008-04-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/32921
	* tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.

2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/arm/arm.c (arm_unwind_emit): Use
	crtl->all_throwers_are_sibcalls instead of
	cfun->all_throwers_are_sibcalls.
	(arm_output_fn_unwind): Likewise.
	* config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
	instead of cfun->uses_pic_offset_table.
	(frv_expand_prologue): Likewise.
	(frv_frame_pointer_required): Likewise.
	(frv_expand_fdpic_call): Likewise.
	(frv_emit_movsi): Likewise.
	* config/iq2000/iq2000.c (iq2000_expand_prologue): Use
	cfun->returns_pcc_struct instead of
	current_function_returns_pcc_struct.
	* config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
	instead of cfun->calls_eh_return.
	(m32c_pushm_popm): Likewise.
	* config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
	"extern" declaration.

2008-04-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/21636
	* tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
	constant address.
	(evaluate_stmt): Print the likely value.
	(ccp_visit_stmt): Avoid excessive vertical spacing.

2008-04-30  Rafael Espíndola  <espindola@google.com>

	* builtins.c (fold_call_expr): Return realret.
	* tree-ssa-threadedge.c
	(record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
	__builtin_object_size.

2008-04-30  Seongbae Park  <seongbae.park@gmail.com>

	* gcc.c (wrapper_string): New variable.
	(insert_wrapper): New function.
	(execute): New option -wrapper.
	* doc/invoke.texi (Overall Options): New driver option -wrapper.

2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
	config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
	config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
	from...
	* config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
	* config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
	config/rs6000/e500crtres64gprctr.asm,
	config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
	config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
	config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
	config/rs6000/e500crtsav64gprctr.asm,
	config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
	config/rs6000/e500crtsavg64gprctr.asm: New files.
	* config/rs6000/t-ppccomm: Add build rules for new files.
	(LIB2FUNCS_STATIC_EXTRA): Add new files.
	* config/rs6000/t-netbsd: Add build rules for new files.
	(LIB2FUNCS_STATIC_EXTRA): New variable.
	* config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
	(CRTSAVRES_DEFAULT_SPEC): Likewise.
	* config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.

2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_builtin_type): Add
	FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
	V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
	V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
	V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
	V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
	V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
	V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
	V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
	V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
	V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
	V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
	V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
	V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
	V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
	V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
	V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
	V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
	V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
	V1DI_FTYPE_V2SI_V2SI.
	(bdesc_2arg): Moved to ...
	(bdesc_args): Here.
	(ix86_init_mmx_sse_builtins): Updated.
	(ix86_expand_args_builtin): Updated.  Take a pointer
	to const struct builtin_description.  Handle comparison
	builtin functions.
	(ix86_expand_sse_compare): Take a new argument for swapping operands.
	(ix86_expand_builtin): Updated.

	* config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
	(ssse3_pmaddubsw128): This.
	(ssse3_pmaddubswv4hi3): Renamed to ...
	(ssse3_pmaddubsw): This.

	* doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
	(__builtin_ia32_packssdw128): Likewise.
	(__builtin_ia32_packuswb128): Likewise.
	(__builtin_ia32_pmaddubsw): Likewise.
	(__builtin_ia32_pmaddubsw128): Likewise.

2008-04-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/14847
	* tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
	(recognize_bits_test): Use it.
	(recognize_single_bit_test): Likewise.

2008-04-30  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
	instead of setting number of formal parameters to zero.
	(ipcp_init_stage): Do not set the number of actual parameters to zero
	either.
	(ipcp_propagate_stage): Explicitly skipping all calls to nodes
	which are called with variable number of arguments.
	(ipcp_insert_stage): Explicitely skipping all nodes which are
	called with variable number of arguments.
	(ipcp_callsite_param_print): Skipps callsites to nodes with varaible
	number of parameters.

	* ipa-prop.h (struct ipa_node_params): Added flag
	called_with_var_arguments
	(ipa_set_param_count): Added.  Changed sole setter to use it.
	(ipa_get_param_count): Added.  All readers of param_count
	converted to use it instead.
	(ipa_set_called_with_variable_arg): Added.
	(ipa_is_called_with_var_arguments): Added.
	(ipa_get_ith_param): Added.  All readers of param_decls converted
	to use it instead.
	(ipa_set_cs_argument_count): Added, sole writer to argument_count
	changed to use it.
	(ipa_get_cs_argument_count): Added, all readers of argument_count
	changed to cal it.
	(ipa_get_ith_jump_func): Added. Accessors of jump values changed
	to use it.

	* ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
	(struct ipcp_lattice): Renamed cval_type to type
	(struct ipa_node_params): ipcp_cval renamed to ipcp_lattices

	* ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
	(ipcp_cval_set_cvalue): Changed type of parameter value to tree
	(ipcp_insert_stage): Changed the type of variable cvalue to tree
	(ipcp_replace_map_create): Changed the type of parameter cvalue to tree
	(build_const_val): Changed the type of parameter cvalue to tree
	(ipcp_propagate_const): Changed the type of parameter cvalue to tree
	(ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type

	* ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
	constant

	* ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
	(ipa_methodlist_not_empty): Removed, the sole user now checks directly
	(ipa_add_method): Renamed to ipa_push_func_to_list
	(ipa_remove_method): Renamed to ipa_pop_func_from_list
	(ipa_callsite_param_count): Removed.
	(ipa_callsite_param_count_set): Removed.
	(ipa_callsite_param): Removed.
	(ipa_callsite_callee): Removed.
	(ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
	(ipa_callsite_compute_count): Renamed to ipa_count_arguments
	(ipa_method_formal_count): Removed.
	(ipa_method_formal_count_set): Removed.
	(ipa_method_get_tree): Removed.
	(ipa_method_tree_map_create): Removed.
	(ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
	(ipa_create_param_decls_array): Creates the array itself
	(ipa_create_param_decls_array): Temporary variable info instead of
	a few dereferences.
	(ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
	(ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
	(get_type): Removed.
	(ipa_jf_get_info_type): Removed.
	(ipa_node_create): Renamed to ipa_create_node_params
	(ipa_free): Renamed to ipa_free_all_node_params
	(ipa_nodes_create): Renamed to ipa_create_all_node_params
	(ipa_edges_create): Renamed to ipa_create_all_edge_args
	(ipa_edges_free): Renamed to ipa_free_all_edge_args
	(ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
	(ipa_free_all_node_params): Deallocation to jump_functions moved to
	ipa_free_all_edge_args
	(ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
	(ipa_method_modify_print): Renamed to ipa_print_all_params_modified
	(ipa_create_methodlist_node): Removed.
	(ipa_methodlist_method): Removed.
	(ipa_methodlist_method_set): Removed.
	(ipa_methodlist_next_method): Removed.
	(ipa_methodlist_next_method_set): Removed.
	(ipa_method_is_modified): Removed.
	(ipa_method_modify_create): Removed.
	(ipa_method_modify_init): Temporary variable info instead of a few
	dereferences.
	(ipa_detect_param_modifications): Temporary variable info instead of
	a few dereferences.
	(ipa_compute_jump_functions): Temporary variable info instead of
	a few dereferences.
	(ipa_method_modify_set): Removed.
	(ipa_method_tree_map): Renamed to ipa_get_param_decl_index
	(ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
	than craph_node as the first parameter.
	(ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
	(ipa_method_modify_init): Removed.
	(ipa_compute_jump_functions): Added a temp variable instead of
	repeatadly dereferencing the cgraph_edge.aux pointer
	(ipa_callsite_param_set_type): Removed.
	(ipa_compute_jump_functions): i renamed to index and moved to
	an inner block
	(ipa_callsite_param_set_info_type_formal): Removed.
	(ipa_callsite_param_set_info_type): Removed.
	(ipa_callsite_param_map_create): Removed.
	(ipa_callsite_tree): Removed.
	(ipa_callsite_caller): Removed.
	(ipa_pop_func_from_list): return_method removed to return_func

	* ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
	prefixed all values with IPA_. Changed all users.
	(enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
	CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
	and FORMAL_IPATYPE IPA_PASS_THROUGH.
	(union parameter_info): Renamed to jump_func_value.
	(union jump_func_value): Renamed value to constant
	(struct ipa_jump_func): Renamed info_type to value
	(struct ipa_node): Renamed to ipa_node_params
	(struct ipa_node_params): Renamed ipa_arg_num to param_count
	(struct ipa_node_params): Renamed ipa_param_tree to param_decls
	(struct ipa_node_params): Renamed ipa_mod to modified_flags
	(struct ipa_edge): Renamed to ipa_edge_args
	(struct ipa_edge_args): Renamed ipa_param_num to argument_count
	(struct ipa_edge_args): Renamed ipa_param_map to jump_functions
	(struct ipa_methodlist): Renamed to ipa_func_list
	(struct ipa_func_list): method_p renamed to node, next_method
	renamed to next
	(ipa_methodlist_p): Removed, switched all users to struct pointer
	(IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX

2008-04-30  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
	(rs6000_emit_epilogue): Use backchain to restore only when we
	have a large frame.  Make use of frame pointer to restore if we
	have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.

2008-04-29  Paolo Bonzini  <bonzini@gnu.org>

	* config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
	Add mode to zero_extract.
	(sign bit tests peepholes): (Ditto.).

2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_builtins): Replace Prescott New
	Instructions in comments with SSE3.
	(ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
	INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
	INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
	V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
	V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
	V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
	V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
	V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
	V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
	V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
	V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
	V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
	(bdesc_sse_args): Renamed to ...
	(bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
	IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
	IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
	IX86_BUILTIN_FABSQ.
	(bdesc_1arg): Moved to ...
	(bdesc_args): Here.
	(ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
	Instructions in comments with SSE3.
	(ix86_expand_sse_operands_builtin): Renamed to ...
	(ix86_expand_args_builtin): This.  Updated.
	(ix86_expand_unop1_builtin): Update comments.
	(ix86_expand_builtin): Updated.

2008-04-29  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36078
	* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
	Update virtual SSA form after cleaning up the CFG.

2008-04-29  Richard Guenther  <rguenther@suse.de>

	PR middle-end/15255
	* fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.

2008-04-29  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
	(compute_may_aliases): Do not call finalize_ref_all_pointers.
	(compute_flow_insensitive_aliasing): Do not treat
	PTR_IS_REF_ALL pointers special.
	(get_smt_for): Likewise.
	(may_alias_p): Re-structure.
	(is_escape_site): A ref-all pointer conversion is not an escape site.
	* tree-ssa-structalias.c (find_what_p_points_to): Do not treat
	PTR_IS_REF_ALL pointers special.
	* tree-ssa-structalias.h (struct alias_info): Remove
	ref_all_symbol_mem_tag field.
	(PTR_IS_REF_ALL): Remove.

2008-04-29  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36077
	* fold-const.c (extract_muldiv_1): In combining division constants
	make sure to never overflow.

2008-04-29  Nick Clifton  <nickc@redhat.com>

	* doc/tm.texi (RETURN_ADDR_RTX): Fix typo.

2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/35169
	* optc-gen.awk: Work around HP-UX/IA awk bug.

2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/cygming-crtend.c (register_frame_ctor): Revert my
	2008-04-25 commit.

2008-04-28  Uros Bizjak  <ubizjak@gmail.com>

	PR target/36073
	* config/i386/i386.md
	(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
	Change operand 1 predicate to nonimmediate_operand.

2008-04-28  Jakub Jelinek  <jakub@redhat.com>

	PR debug/36060
	* dwarf2out.c (struct die_struct): Mark as chain_circular through
	die_sub field.
	* gengtype.c (walk_type, write_func_for_structure): Handle
	chain_circular.
	* doc/gty.texi: Document chain_circular.

2008-04-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36066
	* tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
	SCEV and loop.

2008-04-28  Uros Bizjak  <ubizjak@gmail.com>

	PR target/36064
	* config/i386/i386.md
	(floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
	Use match_scratch instead of match_operand for operands 3 and 4.

2008-04-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/18754
	PR tree-optimization/34223
	* tree-pass.h (pass_complete_unrolli): Declare.
	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
	loop size before and after unconditionally of UL_NO_GROWTH in effect.
	Rewrite loop into loop closed SSA form if it is not already.
	(tree_unroll_loops_completely): Re-structure to iterate over
	innermost loops with intermediate CFG cleanups.
	Unroll outermost loops only if requested or the code does not grow
	doing so.
	* tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
	loops are available.
	(tree_vectorize): Instead do so here.
	(tree_complete_unroll): Also unroll outermost loops.
	(tree_complete_unroll_inner): New function.
	(gate_tree_complete_unroll_inner): Likewise.
	(pass_complete_unrolli): New pass.
	* tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
	uses outside of the loop.
	(tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
	form if it is available.
	* tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
	* passes.c (init_optimization_passes): Schedule complete inner
	loop unrolling pass before the first CCP pass after final inlining.

2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>

	* targhooks.h (default_emutls_var_fields,
	default_emutls_var_init): Declare.
	* tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
	* target.h (struct gcc_target): Add struct emutls member.
	* target-def.h (TARGET_EMUTLS_GET_ADDRESS,
	TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
	TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
	TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
	TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
	TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
	(TARGET_INITIALIZER): Add TARGET_EMUTLS.
	* builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
	BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
	* dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
	emit debug information.
	* coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
	* varasm.c: Include targhooks.h.
	(emutls_object_section, emutls_tmpl_section): New.
	(EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
	(EMUTLS_SEPARATOR): New.
	(prefix_name): New.
	(get_emutls_object_name): New.
	(default_emutls_var_fields): New, broken out of ...
	(get_emutls_object_type): ... here.  Adjust to use target hooks.
	(get_emutls_init_templ_addr): Adjust to use target hooks.
	(emutls_decl): Adjust to use target hooks.
	(emutls_finish): Likewise.
	(default_emutls_var_init): New, broken out of ...
	(assemble_variable): ... here.  Adjust to use target hooks.
	* output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
	SECCAT_EMUTLS_TMPL.
	* c-common.c (handle_section_attribute): Prevent overriding
	sections for emulated tls with special sections.
	* config/i386/i386.c (x86_64_elf_select_section): Add
	SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
	(x86_64_elf_unique_section): Likewise.
	* config/vxworks.c: Include tree.h.
	(vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
	(vxworks_override_options): Set TLS scheme.
	* doc/tm.texi (Emulated TLS): New node.

2008-04-26  Simon Baldwin  <simonb@google.com>

	PR c/35652
	* builtins.c (c_strlen): Suppressed multiple warnings that can occur
	with propagated string constants.

2008-04-26  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
	constraint for operand 2 when operand 0 is memory operand.
	(fix_truncdi_i387_with_temp): Use 'X' constraint for operand 4 when
	operand 0 is memory operand.
	(fix_trunc<mode>_i387_with_temp): Ditto.
	(*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
	operand 2 when operand 1 is memory operand.
	(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
	(*floatsi<mode>2_vector_sse_with_temp): Ditto.
	(*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
	(*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
	(floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
	operands 2,3 and 4 when operand 1 is memory operand.
	(fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
	is memory operand.
	(fistdi2_floor_with_temp): Ditto.
	(fist<mode>2_floor_with_temp): Ditto.
	(fistdi2_ceil_with_temp): Ditto.
	(fist<mode>2_ceil_with_temp): Ditto.
	(*truncdfsf_fast_mixed): Merge alternatives 0 and 1.

2008-04-26  David Daney  <ddaney@avtrex.com>

	* config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
	unspec_volitile.
	(UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
	UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
	UNSPEC_UPDATE_GOT_VERSION): Renumber.
	(sync_compare_and_swap<mode>): New expand for QI and HI modes.
	(compare_and_swap_12): New insn.
	* config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
	* config/mips/mips.c (mips_force_binary): New function.
	(mips_emit_int_order_test, mips_expand_synci_loop): Use it.
	(mips_expand_compare_and_swap_12): New function.
	* config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.

2008-04-25  Jan Hubicka  <jh@suse.cz>

	PR testsuite/35843
	* cfgexpand.c (pass_expand): Turn into RTL pass.
	* passes.c (execute_one_pass): Do pass typechecking after execution.
	* tree-pass.h (pass_expand): Turn into RTL pass.

	* function.h (struct rtl_data): Move here fields
	accesses_prior_frames, calls_eh_return, saves_all_registers,
	has_nonlocal_goto, has_asm_statement, is_thunk,
	all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
	uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
	arg_pointer_save_area_init from struct function; turn into bool.
	(struct function): Move
	calls_eh_return, saves_all_registers, has_nonlocal_goto,
	has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
	profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
	tail_call_emit, arg_pointer_save_area_init
	into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
	(current_function_returns_struct, current_function_returns_pcc_struct,
	current_function_calls_setjmp, current_function_calls_alloca,
	current_function_accesses_prior_frames,
	current_function_calls_eh_return, current_function_is_thunk,
	current_function_stdarg, current_function_profile,
	current_function_limit_stack, current_function_uses_pic_offset_table,
	current_function_uses_const_pool, current_function_has_nonlocal_label,
	current_function_saves_all_registers,
	current_function_has_nonlocal_goto,
	current_function_has_asm_statement): Remove accesor macros.
	* ra-conflict.c (global_conflicts): Update.
	* tree-tailcall.c (suitable_for_tail_opt_p): Update.
	(suitable_for_tail_call_opt_p): Update.
	* builtins.c (expand_builtin_return_addr): Update.
	(expand_builtin_setjmp_setup): Update.
	(expand_builtin_nonlocal_goto): Update.
	* final.c (final_start_function): Update.
	(profile_function): Update.
	(leaf_function_p): Update.
	(only_leaf_regs_used): Update.
	* df-scan.c (df_get_exit_block_use_set): Update.
	* dojump.c (clear_pending_stack_adjust): Update.
	* tree-stdarg.c (gate_optimize_stdarg): Update.
	* gimple-low.c (lower_function_body): Update.
	* global.c (compute_regsets): Update.
	(global_alloc): Update.
	* dwarf2out.c (dwarf2out_begin_prologue): Update.
	* expr.c (expand_assignment): Update.
	* dse.c (dse_step0): Update.
	(dse_step1): Update.
	* c-decl.c (store_parm_decls): Update.
	* local-alloc.c (combine_regs): Update.
	(find_free_reg): Update.
	* function.c (assign_parms_augmented_arg_list): Update.
	(assign_parm_find_data_types): Update.
	(assign_parms): Update.
	(allocate_struct_function): Update.
	(expand_function_start): Update.
	(expand_function_end): Update.
	(get_arg_pointer_save_area): Update.
	(thread_prologue_and_epilogue_insns): Update.
	(rest_of_match_asm_constraints): Update.
	* stor-layout.c (variable_size): Update.
	* gcse.c (gcse_main): Update.
	(bypass_jumps): Update.
	* gimplify.c (gimplify_function_tree): Update.
	* calls.c (emit_call_1): Update.
	(expand_call): Update.
	* bt-load.c (compute_defs_uses_and_gen): Update.
	* except.c (sjlj_assign_call_site_values): Update.
	(sjlj_emit_function_enter): Update.
	(can_throw_external): Update.
	(set_nothrow_function_flags): Update.
	(expand_builtin_unwind_init): Update.
	(expand_eh_return): Update.
	(convert_to_eh_region_ranges): Update.
	(output_function_exception_table): Update.
	* emit-rtl.c (gen_tmp_stack_mem): Update.
	* cfgexpand.c (expand_used_vars): Update.
	(tree_expand_cfg): Update.
	* cfgcleanup.c (rest_of_handle_jump): Update.
	* explow.c (allocate_dynamic_stack_space): Update.
	* varasm.c (assemble_start_function): Update.
	(force_const_mem): Update.
	(mark_constant_pool): Update.
	* tree-optimize.c (tree_rest_of_compilation): Update.
	* stack-ptr-mod.c (notice_stack_pointer_modification): Update.
	* tree-cfg.c (notice_special_calls): Update.
	(is_ctrl_altering_stmt): Update.
	(tree_can_make_abnormal_goto): Update.
	(tree_purge_dead_abnormal_call_edges): Update.
	* config/alpha/predicates.md: Update.
	* config/alpha/alpha.c (alpha_sa_mask): Update.
	(alpha_sa_size): Update.
	(alpha_does_function_need_gp): Update.
	(alpha_expand_prologue): Update.
	(alpha_start_function): Update.
	(alpha_output_function_end_prologue): Update.
	(alpha_expand_epilogue): Update.
	* config/frv/frv.c (frv_stack_info): Update.
	(frv_expand_epilogue): Update.
	* config/s390/s390.c (s390_regs_ever_clobbered): Update.
	(s390_register_info): Update.
	(s390_frame_info): Update.
	(s390_init_frame_layout): Update.
	(s390_can_eliminate): Update.
	(save_gprs): Update.
	* config/spu/spu.c (spu_split_immediate): Update.
	(need_to_save_reg): Update.
	(spu_expand_prologue): Update.
	(spu_expand_epilogue): Update.
	* config/sparc/sparc.md: Update.
	* config/sparc/sparc.c (eligible_for_return_delay): Update.
	(sparc_tls_got): Update.
	(legitimize_pic_address): Update.
	(sparc_emit_call_insn): Update.
	(sparc_expand_prologue): Update.
	(output_return): Update.
	(print_operand): Update.
	(sparc_function_ok_for_sibcall): Update.
	* config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
	* config/m32r/m32r.md: Update.
	* config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
	(m32r_compute_frame_size): Update.
	(m32r_expand_prologue): Update.
	(m32r_expand_epilogue): Update.
	(m32r_legitimize_pic_address): Update.
	* config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
	* config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
	* config/i386/i386.c (ix86_frame_pointer_required): Update.
	(gen_push): Update.
	(ix86_save_reg): Update.
	(ix86_compute_frame_layout): Update.
	(ix86_expand_prologue): Update.
	(ix86_expand_epilogue): Update.
	* config/sh/sh.c (output_stack_adjust): Update.
	(calc_live_regs): Update.
	(sh5_schedule_saves): Update.
	(sh_expand_prologue): Update.
	(sh_expand_epilogue): Update.
	(sh_setup_incoming_varargs): Update.
	(sh_allocate_initial_value): Update.
	(sh_get_pr_initial_val): Update.
	* config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
	* config/sh/sh.md (label:): Update.
	* config/avr/avr.c (out_movhi_mr_r): Update.
	* config/crx/crx.h (enum): Update.
	* config/xtensa/xtensa.h (along): Update.
	* config/stormy16/stormy16.c Update.
	(xstormy16_compute_stack_layout): Update.
	* config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
	(fr30_expand_prologue): Update.
	* config/cris/cris.c (cris_conditional_register_usage): Update.
	(cris_reg_saved_in_regsave_area): Update.
	(cris_initial_frame_pointer_offset): Update.
	(cris_simple_epilogue): Update.
	(cris_expand_prologue): Update.
	(cris_expand_epilogue): Update.
	(cris_expand_pic_call_address): Update.
	(cris_asm_output_symbol_ref): Update.
	(cris_asm_output_label_ref): Update.
	* config/cris/cris.md Update.
	* config/iq2000/iq2000.c (compute_frame_size): Update.
	(iq2000_expand_epilogue): Update.
	* config/mt/mt.h (save_direction): Update.
	* config/mn10300/mn10300.c (mn10300_function_value): Update.
	* config/ia64/ia64.c (ia64_compute_frame_size): Update.
	(ia64_secondary_reload_class): Update.
	* config/m68k/m68k.c (m68k_save_reg): Update.
	(m68k_expand_prologue): Update.
	(m68k_expand_epilogue): Update.
	(legitimize_pic_address): Update.
	* config/rs6000/rs6000.c (rs6000_got_register): Update.
	(first_reg_to_save): Update.
	(first_altivec_reg_to_save): Update.
	(compute_vrsave_mask): Update.
	(compute_save_world_info): Update.
	(rs6000_stack_info): Update.
	(spe_func_has_64bit_regs_p): Update.
	(rs6000_ra_ever_killed): Update.
	(rs6000_emit_eh_reg_restore): Update.
	(rs6000_emit_allocate_stack): Update.
	(rs6000_emit_prologue): Update.
	(rs6000_emit_epilogue): Update.
	(rs6000_output_function_epilogue): Update.
	(output_profile_hook): Update.
	(rs6000_elf_declare_function_name): Update.
	* config/rs6000/rs6000.h (rs6000_args): Update.
	* config/rs6000/rs6000.md: Update.
	* config/mcore/mcore.c (mcore_expand_prolog): Update.
	* config/arc/arc.c (arc_output_function_epilogue): Update.
	* config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
	* config/darwin.c (machopic_function_base_name): Update.
	* config/score/score3.c (score3_compute_frame_size): Update.
	(rpush): Update.
	(rpop): Update.
	(score3_epilogue): Update.
	* config/score/score7.c (score7_compute_frame_size): Update.
	(score7_prologue): Update.
	(score7_epilogue): Update.
	* config/score/score.h (FRAME_POINTER_REQUIRED): Update.
	* config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
	* config/arm/arm.c (use_return_insn): Update.
	(require_pic_register): Update.
	(arm_load_pic_register): Update.
	(arm_compute_save_reg0_reg12_mask): Update.
	(arm_compute_save_reg_mask): Update.
	(thumb1_compute_save_reg_mask): Update.
	(output_return_instruction): Update.
	(arm_output_function_prologue): Update.
	(arm_output_epilogue): Update.
	(arm_get_frame_offsets): Update.
	(arm_expand_prologue): Update.
	(thumb_pushpop): Update.
	(thumb_exit): Update.
	(thumb1_expand_prologue): Update.
	(thumb1_expand_epilogue): Update.
	(arm_unwind_emit): Update.
	(arm_output_fn_unwind): Update.
	* config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
	* config/arm/arm.md: Update.
	* config/pa/pa.md: Update.
	* config/pa/pa.c (legitimize_pic_address): Update.
	(compute_frame_size): Update.
	(hppa_expand_prologue): Update.
	(hppa_expand_epilogue): Update.
	(borx_reg_operand): Update.
	* config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
	(HARD_REGNO_RENAME_OK): Update.
	* config/mips/mips.c (mips_global_pointer): Update.
	(mips_save_reg_p): Update.
	(mips_compute_frame_info): Update.
	(mips_frame_pointer_required): Update.
	(mips_expand_prologue): Update.
	(mips_expand_epilogue): Update.
	(mips_can_use_return_insn): Update.
	(mips_reorg_process_insns): Update.
	* config/v850/v850.c (compute_register_save_size): Update.
	* config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
	* config/mmix/mmix.c (along): Update.
	(mmix_expand_epilogue): Update.
	* config/bfin/bfin.c (legitimize_pic_address): Update.
	(must_save_p): Update.
	(stack_frame_needed_p): Update.
	(add_to_reg): Update.
	(bfin_expand_prologue): Update.
	* stmt.c (expand_asm_operands): Update.
	* reload1.c (reload): Update.
	(init_elim_table): Update.

2008-04-25  Bob Wilson  <bob.wilson@acm.org>

	* optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.

2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
	(*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
	(mov<mode>): Removed.
	(*movv4sf_internal): Likewise.
	(*movv2df_internal): Likewise.

2008-04-25  Pompapathi V Gadad  <Pompapathi.V.Gadad@nsc.com>

	* config.gcc (crx-*-elf): Remove deprecation.

2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/cygming-crtend.c (register_frame_ctor): Register
	__gcc_deregister_frame with atexit.
	(deregister_frame_dtor): Remove.

2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* config/rs6000/rs6000.opt (mspe): Remove Var property.
	(misel): Likewise.
	* config/rs6000/rs6000.h (rs6000_spe): Declare.
	(rs6000_isel): Likewise.
	* config/rs6000/rs6000.c (rs6000_spe): New variable.
	(rs6000_isel): New variable.
	(rs6000_handle_option): Handle OPT_mspe and OPT_misel.

2008-04-24  Jakub Jelinek  <jakub@redhat.com>

	PR c++/35758
	* c-common.c (handle_vector_size_attribute): Call
	lang_hooks.types.reconstruct_complex_type instead of
	reconstruct_complex_type.
	* config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
	* config/spu/spu.c (spu_handle_vector_attribute): Likewise.
	* langhooks.h (struct lang_hooks_for_types): Add
	reconstruct_complex_type hook.
	* langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.

2008-04-24  Richard Guenther  <rguenther@suse.de>

	* c-common.h (check_builtin_function_arguments): Declare.
	* c-common.c (validate_nargs): New function.
	(check_builtin_function_arguments): Likewise.
	* c-typeck.c (build_function_call): Call
	check_builtin_function_arguments.
	* builtins.c (fold_builtin_classify): Remove error reporting code.
	(fold_builtin_unordered_cmp): Likewise.
	(fold_builtin_1): Likewise.
	(fold_builtin_n): Likewise.

2008-04-24  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/36008
	* fold-const.c (try_move_mult_to_index): If s == NULL, divide
	the original op1, rather than delta by step.

2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* tree-parloops.c (take_address_of, eliminate_local_variables_1,
	eliminate_local_variables_stmt, eliminate_local_variables,
	separate_decls_in_loop_name, separate_decls_in_loop_stmt,
	separate_decls_in_loop, gen_parallel_loop): Make them work on a region
	of code delimited by two edges in the CFG.
	(separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
	(separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
	(separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
	the case of parallelisation of reductions.
	(expr_invariant_in_region_p): New.

	* tree-flow.h (gather_blocks_in_sese_region): Declared.
	* tree-cfg.c (gather_blocks_in_sese_region): Extern.

2008-04-24  Ira Rosen  <irar@il.ibm.com>
	    Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36034
	* tree-vect-analyze.c (vect_analyze_group_access): SLP is
	incapable of dealing with loads with gaps.

2008-04-24  Rafael Espíndola  <espindola@google.com>

	* tree-flow.h (vrp_evaluate_conditional): Change signature.
	* tree-ssa-propagate.c (fold_predicate_in): Update call to
	vrp_evaluate_conditional.
	* tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
	(vrp_evaluate_conditional): Split the cond argument.
	(vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
	(simplify_stmt_for_jump_threading): Update call to
	vrp_evaluate_conditional.

2008-04-24  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/35982
	* tree-vect-analyze.c (vect_check_interleaving): Check that the
	interleaved data-refs are of the same type.

2008-04-24  Danny Smith  <dannysmith@users.net>

	* c-format.c (check_format_info_main): Use strncmp rather than a
	magic prefix to handle multichar length specs.
	* config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
	Don't prefix "I64" and "I32" with '\0'.

2008-04-24  Jakub Jelinek  <jakub@redhat.com>

	PR target/36015
	* config/i386/i386.c (init_cumulative_args): Don't pass anything
	in registers for -m32 only if stdarg_p (fntype).

2008-04-24  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/36006
	* expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
	temp to op0 in order to avoid invalid rtx sharing.

2008-04-23  Paolo Bonzini  <bonzini@gnu.org>

	* tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
	check TREE_INVARIANT.
	* tree-gimple.c (is_gimple_address): New.
	(is_gimple_invariant_address): Simplify using decl_address_invariant_p.
	* tree-gimple.h (is_gimple_address): New.
	* tree.h (decl_address_invariant_p): New.
	* tree.c (make_node_stat): Don't set TREE_INVARIANT.
	(build_string): Likewise.
	(decl_address_invariant_p): New, from is_gimple_invariant_address.
	(tree_invariant_p_1): Likewise.
	(save_expr): Use it.
	(tree_invariant_p): New.
	(skip_simple_arithmetic): Use it.
	(stabilize_reference_1): Use it.
	(recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
	simplify.
	(build1_stat): Drop code to compute TREE_INVARIANT.
	(build2_stat): Drop code to compute TREE_INVARIANT.
	(build3_stat): Drop code to compute TREE_INVARIANT.
	(build4_stat): Drop code to compute TREE_INVARIANT.
	(build5_stat): Drop code to compute TREE_INVARIANT.
	(build7_stat): Drop code to compute TREE_INVARIANT.
	(merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
	* tree.h (struct tree_base): Remove invariant_flag.
	(TREE_INVARIANT): Remove.
	* builtins.c (build_string_literal): Don't set TREE_INVARIANT.
	(fold_builtin_expect): Check TREE_CONSTANT.
	* tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
	* c-tree.h (c_expr_to_decl): Drop third parameter.
	* c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
	(build_c_cast): Don't set TREE_INVARIANT.
	(pop_init_level): Don't set TREE_INVARIANT.
	(c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
	* gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
	TREE_CONSTANT.
	(gimplify_init_constructor): Don't set TREE_INVARIANT.
	(gimplify_addr_expr): Adjust comment.
	* tree-mudflap.c (mf_build_string):
	* print-tree.c (print_node): Don't print TREE_INVARIANT.
	* tree-nested.c (convert_nonlocal_reference): Adjust comment.
	* c-common.c (fix_string_type): Don't set TREE_INVARIANT.
	* langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
	* langhooks.c (lhd_expr_to_decl): Drop third parameter.
	* langhooks.h (struct lang_hooks): Drop third parameter from
	expr_to_decl.

2008-04-23  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/27799
	PR tree-optimization/32921
	PR tree-optimization/32624
	* tree-ssa-structalias.c (merge_smts_into): Only merge the
	SMTs aliases and the tag itself into the solution.
	* tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
	merge the points-to solution back into the SMT aliases.
	(may_alias_p): Use alias_set_subset_of instead of
	aliases_conflict_p.  A pointer which points to
	memory with alias set zero may access any variable.

2008-04-23  Richard Guenther  <rguenther@suse.de>

	* alias.c (alias_set_subset_of): Correctly handle asking
	if zero is a subset of an alias set with zero child.
	* tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
	(compute_flow_insensitive_aliasing): Correctly walk all
	pointers.  Do not unnecessarily union sets.

2008-04-23  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36021
	* c-common.c (handle_alloc_size_attribute): Use type_num_arguments.

2008-04-22  Tomas Bily  <tbily@suse.cz>

	* tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
	unreachable case.
	* tree-vrp.c (extract_range_from_unary_expr): Removed unused
	NON_LVALUE_EXPR.
	* tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
	* tree-ssa-structalias.c (get_constraint_for): Likewise.
	* tree-inline.c (estimate_num_insns_1): Likewise.
	* varasm.c (const_hash_1, compare_constant, copy_constant)
	(compute_reloc_for_constant, output_addressed_constants): Likewise.
	* emit-rtl.c (component_ref_for_mem_expr)
	(set_mem_attributes_minus_bitpos): Likewise.
	* expr.c (highest_pow2_factor, expand_expr_real_1)
	(is_aligning_offset): Likewise.
	* dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
	* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
	* dojump.c (do_jump): Likewise.
	* builtins.c (get_pointer_alignment, get_memory_rtx)
	(integer_valued_real_p, fold_builtin_next_arg): Likewise.
	* tree-scalar-evolution.c (instantiate_parameters_1): Likewise.

2008-04-23  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/36017
	* builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
	expanding the library call.

2008-04-22  Ian Lance Taylor  <iant@google.com>

	* fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
	than size_in_bytes.

2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
	of LR/CTR moves for Power6.

2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>

	PR middle-end/36003
	* passes.c (init_optimization_passes): Remove
	pass_fast_rtl_byte_dce.

2008-04-22  Uros Bizjak  <ubizjak@gmail.com>

	PR target/29096
	* config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
	builtin functions to generate faster code.
	(_mm_cvtpu16_ps): Ditto.
	(_mm_cvtpi32x2_ps): Ditto.

2008-04-22  Nick Clifton  <nickc@redhat.com>

	* common.opt (ftree-loop-distribution): Add Optimization
	attribute.

	* config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
	(frv_expand_builtin_va_start): Likewise.

	* config/arm/arm.c (thumb_find_work_register): Fix location of
	argument register count.

2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>

	Support scheduling for ColdFire V1 and V3 microarchitecture.
	Improve scheduling of multiplication instructions.

	* config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
	(mac): New instruction attribute.
	* config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
	(m68k_sched_mac): New variable.
	(m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
	Handle cfv1 and cfv3.
	(max_insn_size): New static variable.
	(struct _sched_ib): New type.
	(sched_ib): New static variable.
	(sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
	to fields of 'struct _sched_ib sched_ib'.  Update all uses.
	(m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
	Update.
	(m68k_sched_md_init_global, m68k_sched_md_finish_global,
	m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
	new variables.  Update.
	(m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
	Add modeling of cfv3 instruction buffer.  Update.
	* config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
	* config/m68k/m68k.h (TUNE_CFV3): New macro.
	* config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
	(cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
	a particular reservation applies to.
	(type2): Reorganize attribute values.  Rename alu to alu_reg,
	alu_l to alu, move_l to omove.  Join move to alu.  Split mul
	to mul_l and mul_w.
	(cf_ib_*): Simplify description of instruction buffer.
	(cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
	(cf_mem): Split into cf_mem1 and cf_mem2.
	(cf_v2_move_??): Rename to cfv12_alu_??.
	(cf_v2_move_l_??): Rename to cfv12_omove_??.
	(cf_v2_mul_??): Remove reservations.
	(cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
	cfv12_emac_??, cfv12_emac_w_i0): New reservations.
	(cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
	appropriate place.
	(cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
	cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
	cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
	cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
	cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
	cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
	(cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
	expansions of the above reservations for instructions of sizes
	1, 2 and 3 words.

2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.

2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>

	* coverage.c: Include tree-pass.h.
	(coverage_counter_alloc): Print da_file_name to the dump file.

2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* sbitmap.c (sbitmap_range_empty_p): New function.
	* sbitmap.h (sbitmap_range_empty_p): New function.
	* bitmap.h: Now includes obstack.h.

2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
	    Kenneth Zadeck  <zadeck@naturalbridge.com>

	* dbgcnt.def (ra_byte_scan): Added.
	* dbgcnt.c (dbg_cnt): Added code to print message to dump_file
	when the last hit happens for a counter.
	* timevar.def (TV_DF_BYTE_LR): New variable.
	* tree-pass.h (pass_fast_rtl_byte_dce): New pass.
	* passes.c (pass_fast_rtl_byte_dce): New pass.
	* fwprop.c (update_df): Added mode to call df_ref_create.
	Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
	DF_REF_EXTRACT_OFFSET.
	* df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
	DF_BYTE_LR_OUT, df_byte_lr): New macro.
	(df_mm): New enum.
	(df_ref_extract): Added mode field.
	(DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
	DF_REF_EXTRACT_OFFSET.
	(DF_REF_EXTRACT_MODE): New macro.
	(df_byte_lr_bb_info): New structure.
	(df_print_byte_regset, df_compute_accessed_bytes,
	df_byte_lr_add_problem, df_byte_lr_get_regno_start,
	df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
	df_byte_lr_simulate_uses,
	df_byte_lr_simulate_artificial_refs_at_top,
	df_byte_lr_simulate_artificial_refs_at_end,
	df_compute_accessed_bytes): New function.
	(df_ref_create): Add parameter.
	(df_byte_lr_get_bb_info): New inline function.
	* df-scan.c (df_ref_record, df_uses_record,
	df_ref_create_structure): Added mode parameter.
	(df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
	df_defs_record, df_uses_record, df_get_conditional_uses,
	df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
	df_entry_block_defs_collect, df_exit_block_uses_collect):
	Added mode parameter to calls to df_ref_record, df_uses_record,
	df_ref_create_structure.
	(df_ref_equal_p, df_ref_compare): Added test for modes.
	(df_ref_create_structure): Added code to set mode.  Renamed
	DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
	DF_REF_EXTRACT_OFFSET.
	* df-core.c (df_print_byte_regset): New function.
	* df-byte-scan.c: New file.
	* df-problems.c (df_rd_transfer_function): Removed unnecessary
	calls to BITMAP_FREE.
	(df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
	(df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
	df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
	df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
	df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
	df_byte_lr_local_compute, df_byte_lr_init,
	df_byte_lr_confluence_0, df_byte_lr_confluence_n,
	df_byte_lr_transfer_function, df_byte_lr_free,
	df_byte_lr_top_dump, df_byte_lr_bottom_dump,
	df_byte_lr_add_problem, df_byte_lr_simulate_defs,
	df_byte_lr_simulate_uses,
	df_byte_lr_simulate_artificial_refs_at_top,
	df_byte_lr_simulate_artificial_refs_at_end): New function.
	* dce.c (byte_dce_process_block): New function.
	(dce_process_block): au is now passed in rather than computed
	locally.  Changed loops that look at artificial defs to not look
	for conditional or partial ones, because there never are any.
	(fast_dce): Now is able to drive byte_dce_process_block or
	dce_process_block depending on the kind of dce being done.
	(rest_of_handle_fast_dce): Add parameter to fast_dce.
	(rest_of_handle_fast_byte_dce): New function.
	(rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
	* Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.

2008-04-21  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/35019
	* gcc.h: Added fortran options that take arguments to
	DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
	macros.

2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
	scalarization if on the LHS and not a full access.

2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.

2008-04-18  Rafael Espíndola  <espindola@google.com>

	* tree-vrp.c (find_case_label_index): Fix the binary search.
	(find_case_label_range): New.
	(vrp_visit_switch_stmt): Use find_case_label_range.
	(simplify_switch_using_ranges): Use find_case_label_range.

2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
	using the is_gimple_lvalue predicate instead of is_gimple_min_lval.

2008-04-18  Tom Tromey  <tromey@redhat.com>

	PR libcpp/15500:
	* doc/cpp.texi (Implementation-defined behavior): Mention
	-finput-charset.

2008-04-18  Ian Lance Taylor  <iant@google.com>

	* fold-const.c (pointer_may_wrap_p): New static function.
	(fold_comparison): Add another test for pointer overflow.  Use
	pointer_may_wrap_p to disable some false positives.

2008-04-18  Kris Van Hees  <kris.van.hees@oracle.com>

	* c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
	(fname_as_string): Match updated cpp_interpret_string prototype.
	(fix_string_type): Support char16_t* and char32_t*.
	(c_common_nodes_and_builtins): Add char16_t and char32_t (and
	derivative) nodes.  Register as builtin if C++0x.
	(c_parse_error): Support CPP_CHAR{16,32}.
	* c-common.h (RID_CHAR16, RID_CHAR32): New elements.
	(enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
	CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
	CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
	CTI_CHAR32_ARRAY_TYPE>: New elements.
	(char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
	char32_type_node, signed_char32_type_node, char16_array_type_node,
	char32_array_type_node): New defines.
	* c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
	(c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
	(lex_string): Support CPP_STRING{16,32}, match updated
	cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
	(lex_charconst): Support CPP_CHAR{16,32}.
	* c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
	and CPP_STRING{16,32}.

2008-04-18  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/35457
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2008-04-18  Jan Hubicka  <jh@suse.cz>

	* except.c (dw2_size_of_call_site_table,
	sjlj_size_of_call_site_table): Use vector API for call_site_record.

	* cgraphbuild.c (build_cgraph_edges): Update.
	* tree-pass.h: Update comment.
	* final.c (leaf_function_p): Update.
	(leaf_renumber_regs): Update.
	(rest_of_clean_state): Update.
	* omp-low.c (expand_omp_parallel): Update.
	* ipa-reference.c (analyze_function): Update.
	* reorg.c (find_end_label): Update.
	(optimize_skip): Update.
	(fill_simple_delay_slots): Update.
	(fill_simple_delay_slots): Update.
	(make_return_insns): Update.
	(dbr_schedule): Update.
	* gimple-low.c (record_vars_into): Update.
	* cfgbuild.c (make_edges): Update.
	* function.c (assign_stack_local): Update.
	(assign_parm_adjust_stack_rtl): Update.
	(locate_and_pad_parm): Update.
	(allocate_struct_function): Do not initialize stack_alignment_needed
	and preferred_stack_boundary here.
	(stack_protect_prologue): Update.
	(stack_protect_epilogue): Update.
	(expand_function_start): Initialize stack_alignment_needed,
	preferred_stack_boundary and max_jumptable_ents.
	(expand_function_end): Update.
	(free_after_compilation): Do not NULLify epilogue_delay_list.
	* function.h (struct rtl_data): Add stack_protect_guard,
	stack_alignment_needed,
	preferred_stack_boundary, epilogue_delay_list.
	(struct function): Remove value_histograms, stack_alignment_needed,
	preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
	last_label_uid,
	unexpanded_var_list, stack_protect_guard.
	(current_function_epilogue_delay_list): Remove.
	* ipa-type-escape.c (analyze_function): Update.
	* gimplify.c (pop_gimplify_context): Update comment.
	* calls.c (expand_call): Update.
	(emit_library_call_value_1): Update.
	* except.c (set_nothrow_function_flags): Update.
	* cfgexpand.c (get_decl_align_unit): Update.
	(create_stack_guard): Update.
	(estimated_stack_frame_size): Update.
	(expand_used_vars): Update.
	(tree_expand_cfg): Free histogram earliers, init expansion variables.
	* explow.c (allocate_dynamic_stack_space): Update.
	* tree-ssa-live.c (remove_unused_locals): Update.
	* varasm.c (mark_constant_pool): Update.
	* tree-inline.c (remap_decls): Update.
	(initialize_cfun): Update.
	(declare_return_variable): Update.
	(inline_forbidden_p): Update.
	(expand_call_inline): Update.
	(declare_inline_vars): Update.
	(tree_function_versioning): Update.
	* tree-flow.h (value_histograms): New.
	(VALUE_HISTOGRAMS): New macro.
	* basic-block.h (control_flow_graph): Add max_jumptable_ents,
	last_label_uid.
	* tree-cfg.c (set_bb_for_stmt): Update.
	(replace_by_duplicate_decl): Update.
	(move_block_to_fn): Update.
	(new_label_mapper): Update.
	(dump_function_to_file): Update.
	* ipa-struct-reorg.c (build_data_structure): Update.
	* cfgrtl.c (print_rtl_with_bb): Update.
	* reload1.c (reload): Update.
	(reload): Update.
	* config/i386/i386.c (setup_incoming_varargs_64,
	ix86_compute_frame_layout): Update.
	* config/arc/arc.c (arc_output_function_epilogue): Update.

2008-04-18  Marius Strobl  <marius@FreeBSD.org>

	* gthr-posix.h (__gthread_active_p): Use the Solaris implementation
	for FreeBSD as well.
	* gthr-posix95.h: Likewise.

2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR rtl-optimization/35838
	* dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
	out the byte offset of the first subreg.

2008-04-17  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
	to split_ti instead of three separate calls with single member arrays.
	(subti3 splitter): Ditto.
	(adddi3 splitter): Ditto with split_di.
	(subdi3 splitter): Ditto.
	(negti2 splitter): Pass arrays of 2 operands to split_ti instead of
	two separate calls with single member arrays.  Swap match_dup
	operands 1 and 2 to better fit into the array.
	(negdi2 splitter): Ditto with split_di.
	(movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
	two separate calls with single member arrays.  Swap match_dup operands
	6 and 7 to better fit into the array.

2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (sse_builtin_type): New.
	(bdesc_sse_args): Likewise.
	(bdesc_sse_3arg): Removed.
	(bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
	(bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
	IX86_BUILTIN_ROUNDPS.
	(ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
	bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
	IX86_BUILTIN_ROUNDPS.
	(ix86_expand_sse_4_operands_builtin): Removed.
	(ix86_expand_sse_operands_builtin): New.
	(ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
	and CODE_FOR_sse4_1_roundps.
	(ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
	Handle bdesc_sse_args.  Remove bdesc_sse_3arg.

2008-04-17  Alan Modra  <amodra@bigpond.net.au>

	PR target/35907
	* config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
	regs before frame pop when needed.  If use_backchain_to_restore_sp
	then load backchain into a temp reg to restore vr and vrsave.  Add
	code to restore vr after frame pop if possible.

2008-04-17  Richard Guenther  <rguenther@suse.de>

	* tree-vn.c (expressions_equal_p): Do not check type
	equality or compatibility before calling operand_equal_p.
	* fold-const.c (operand_equal_p): Check equivalence of
	integer constants before bailing out due to signedness or
	precision differences.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
	spurious differences in type qualification.  Ignore types
	for COMPONENT_REFs at all.

2008-04-17  Christian Bruel  <christian.bruel@st.com>

	* config/sh/sh.c (expand_cbranchdi4): Use original operands for
	msw_skip comparison.

2008-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR c/35739
	* tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
	reg type.

	PR tree-optimization/35899
	* tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
	rather than TREE_OPERAND.

2008-04-16  Uros Bizjak  <ubizjak@gmail.com>

	PR target/35944
	* config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
	temporary registers.  Change operand predicate to general_operand.
	(remainderxf3): Ditto.

2008-04-16  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
	* tree-affine.c (aff_combination_expand): Look through some
	conversions.

2008-04-15  Doug Kwan  <dougkwan@google.com>

	* dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
	for hex printing.
	* tree-pretty-print.c (dump_generic_node): Ditto.
	* final.c (output_addr_const): Ditto.
	* dwarf2out.c (output_cfi): Ditto.
	* c-pretty-print.c (pp_c_integer_constant): Ditto.
	* print-rtl.c (print_rtx): Ditto.
	* print-tree.c (print_node_brief, print_node): Ditto.
	* c-common.c (match_case_to_enum_1): Ditto.
	* sched-vis.c (print_value): Ditto.
	* config/i386/i386.c (print_operand): Cast to long unsigned int
	for hex printing.

2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
	* libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
	MS Windows VirtualProtect function.

2008-04-15  Jan Hubicka  <jh@suse.cz>

	* gengtype.c (write_root): Param_is argument is OK.
	* expr.c (expand_expr_real_1): Update call of get_exception_*.
	* function.h: Include varray.h
	(rtl_eh): New stucture based on except.c one.
	(call_site_record): New forward declaration and vector type.
	* calls.c (emit_call_1): Do not call
	note_current_region_may_contain_throw.
	* except.c (eh_status): Remove cur_region, try_region since they are
	unused.
	Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
	exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
	sjlj_fc, sjlj_exit_after to rth_eh in function.h.
	Remove call_site_data_used, call_site_data_size.
	Turn call_site_record into vector in function.h.
	(note_current_region_may_contain_throw): Remove.
	(get_exception_pointer, get_exception_filter): Do not take struct
	function argument; update.
	(add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
	add_ttypes_entry, add_ehspec_entry, assign_filter_values,
	build_post_landing_pads, dw2_build_landing_pads,
	sjlj_assign_call_site_values, sjlj_mark_call_sites,
	sjlj_emit_function_enter, sjlj_emit_function_enter,
	sjlj_emit_function_exit, sjlj_emit_dispatch_table,
	sjlj_build_landing_pads, finish_eh_generation,
	remove_exception_handler_label, remove_eh_handler,
	maybe_remove_eh_handler, add_reachable_handler,
	reachable_handlers, expand_builtin_eh_return, expand_eh_return,
	add_action_record, collect_one_action_chain, add_call_site,
	convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
	sjlj_output_call_site_table, output_function_exception_table,
	* except.h (note_current_region_may_contain_throw): Remove
	(get_exception_pointer, get_exception_filter): Do not take struct
	function argument.
	* Makefile.in (GTFILES): Put varargs before struct function.

2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
	punt for STRING_CST.
	(get_constraint_for): Deal with STRING_CST here instead.

2008-04-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-propagate.c (substitute_and_fold): Substitute
	statements in a basic-block with a backward walk.  Do not
	substitute into dead statements but instead remove those.

2008-04-15  Richard Guenther  <rguenther@suse.de>

	* params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
	to zero, thus disable creation of SFTs.

2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-predcom.c (suitable_reference_p): Return false if the
	reference can throw.

2008-04-15  Jakub Jelinek  <jakub@redhat.com>

	PR c/35751
	* c-decl.c (finish_decl): If extern or static var has variable
	size, set TREE_TYPE (decl) to error_mark_node.

2008-04-15  Rafael Espíndola  <espindola@google.com>

	* fold-const.c (tree_call_nonnegative_warnv_p): Remove local
	variable arg1.

2008-04-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
	* tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
	(visit_reference_op_load): Do walk vuse-vdef chains on
	vn_reference_lookup.
	(visit_reference_op_store): But do not here.
	* tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
	vn_reference_lookup.
	(vn_lookup_with_vuses): But do so here.

2008-04-14  Ian Lance Taylor  <iant@google.com>

	* fold-const.c (fold_overflow_warning): Remove assertion.

2008-04-15  Ben Elliston  <bje@au.ibm.com>

	* config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
	temp1 local variables.

2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>

	PR target/35661
	* config/i386/winnt.c (i386_pe_section_type_flags): Mark
	".text.unlikely" section as executable.

2008-04-14  James E. Wilson  <wilson@tuliptree.org>

	* config/ia64/ia64.c (rtx_needs_barrier): Handle
	UNSPEC_FR_SQRT_RECIP_APPROX_RES.
	* config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
	(divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
	divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
	divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
	divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.

2008-04-14  Ian Lance Taylor  <iant@google.com>

	* flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
	* fold-const.c (fold_comparison): If appropriate, test
	POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
	(fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
	reassociating a pointer type.
	* doc/invoke.texi (Optimize Options): Document that
	-fstrict-overflow applies to pointer wraparound.

2008-04-13  Jan Hubicka  <jh@suse.cz>

	* m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.

2008-04-12  Andrew Pinski  <pinskia@gmail.com>

	* config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
	we are going to "save the world".

2008-04-13  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
	("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
	operand 0 constraint, not "=".

2008-04-11  James E. Wilson  <wilson@tuliptree.org>

	* system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.

2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>

	* dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
	of size of positions_needed * CHAR_BIT.

2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/35897
	* dse.c (store_info): Change positions_needed to unsigned
	HOST_WIDE_INT.
	(lowpart_bitmask): New.
	(record_store): Cast to unsigned HOST_WIDE_INT for
	positions_needed.  Assert width <= size of positions_needed *
	CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
	(check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
	lowpart_bitmask to set mask.

2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/constraints.md: New file.
	* config/bfin/bfin.md: Include it.
	(adddi3): Use satisfies_constraint functions instead of the old macros.
	* config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
	CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
	CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
	CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
	CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
	CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
	EXTRA_CONSTRAINT): Delete.
	* config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
	reg_or_neg7bit_operand): Use satisfies_constraint functions instead
	of the old macros.
	* config/bfin/bfin.c: Include "tm-constrs.h".
	(bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
	Use satisfies_constraint functions instead of the old macros.
	* doc/md.texi (Blackfin Constraints): Update file name reference.

2008-04-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/35869
	* tree-vrp.c (execute_vrp): Move switch statement update after
	jump threading.  Schedule another cfg cleanup run.

2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>

	PR c/35744
	* attribs.c (decl_attributes): Return early on errorneous node.

2008-04-10  Oleg Ryjkov  <olegr@google.com>

	* tree.h (struct tree_base): Added a new flag default_def_flag.
	(SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.

2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.

2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/35768
	* pa.md: Define mode iterator P.  Define mode attribute dwc.
	(dcacheflush): Update pattern to use iterator P and attribute dwc.
	(icacheflush): Likewise.
	* pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
	!TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.

2008-04-11  Ben Elliston  <bje@au.ibm.com>

	* config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.

2008-04-10  Rafael Espíndola  <espindola@google.com>

	* tree-vrp.c (extract_range_from_binary_expr): Don't handle
	TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
	(extract_range_from_expr): The same.

2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.md (GPR2): New mode iterator.
	(seq): Add comment.
	(*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
	*sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
	*slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
	Rewrite these to take two modes, the mode of comparison and the
	mode of the destination.
	* config/mips/mips.c (mips_expand_scc): Instead of having
	paradoxical subreg as destination, expand "narrowing" scc if mode
	of comparison is SI and target is requested in DI mode.
	(mips_emit_int_order_test): Update comment.  Make mode of
	comparison match CMP0 rather than TARGET.  When creating inverse
	target use mode of TARGET.

2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>

	* gcov-dump.c (tag_summary): Only print summaries for the first
	GCOV_COUNTERS_SUMMABLE counters.

2008-04-10  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (absneg): New code iterator.
	(absnegprefix): New code attribute.
	(<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
	patterns using absneg code iterator.
	(<code>tf2): Macroize expander from abstf2 and negtf2 patterns
	using absneg code iterator.
	(*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
	*neg<mode>2 patterns using absneg code iterator.
	(*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
	*negextendsfdf2 patterns using absneg code iterator.
	(*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
	*negextendsfxf2 patterns using absneg code iterator.
	(*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
	*negextendsfdf2 patterns using absneg code iterator.
	* config/i386/sse.md (<code><mode>2): Macroize expander from
	abs<mode>2 and neg<mode>2 patterns using absneg code iterator.

2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.h: Remove the remains of the recent search
	& replace action of current_function_outgoing_args_size.

2008-04-10  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/35821
	* tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
	NEW_STMT_LIST is not NULL.

2008-04-09  David Edelsohn  <edelsohn@gnu.org>

	PR libstdc++/35597
	* toplev.c (process_options): Remove -ffunction-sections debugging
	warning.

2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>

	PR middle-end/PR28690
	* explow.c (break_out_memory_refs): Use simplify_gen_binary rather
	than gen_rtx_fmt_ee to perform more canonicalizations.

2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR driver/35665
	* collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".

2008-04-09  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_stmt): Print complete bogus stmt.
	(dump_function_to_file): Dump function arguments with types.

2008-04-08  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_widened_comparison): Do not allow
	sign-changes that change the result.

2008-04-08  Janis Johnson  <janis187@us.ibm.com>

	PR target/35839
	* config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
	kinds of indirect references.

2008-04-08  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
	GNU Fortran language string.

2008-04-08  Rafael Espíndola  <espindola@google.com>

	* fold-canst.c (tree_call_nonnegative_warnv_p): New.
	(tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
	* tree.h (tree_call_nonnegative_warnv_p): New.

2008-04-08  Jan Hubicka  <jh@suse.cz>

	* function.c (free_after_compilation): Clear out regno_reg_rtx
	pointer.

2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>

	Revert
	2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>

	PR middle-end/PR28690
	* rtlanal.c (commutative_operand_precedence): Give SYMBOL_REF's the
	same precedence as REG_POINTER and MEM_POINTER operands.

2008-04-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/35834
	* tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
	for adding index to base.

2008-04-08  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
	(MINGW_ENABLE_EXECUTE_STACK): New.
	(IN_LIBGCC2): For libgcc include windows.h file for
	function declarations.

2008-04-08  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
	and tem2 if tem1 is not a REG or MULT.

2008-04-08  Jan Hubicka  <jh@suse.cz>

	* function.h (incomming_args): Break out of struct function.
	(function_subsections): Break out of struct function.
	(rtl_data): Add args, subsections fields. Break out outgoing_args_size,
	return_rtx and hard_reg_initial_vals from struct function.
	Kill inl_max_label_num.
	(current_function_pops_args, current_function_args_info,
	current_function_args_size, current_function_args_size,
	current_function_pretend_args_size,
	current_function_outgoing_args_size,
	current_function_internal_arg_pointer, current_function_return_rtx):
	Kill compatibility accestor macros.
	* builtins.c (expand_builtin_apply_args_1): Update.
	(expand_builtin_next_arg): Update.
	* df-scan.c (df_get_call_refs): Update.
	* dbxout.c (dbxout_function_end): Update.
	* dwarf2out.c (dwarf2out_switch_text_section): Update.
	(output_line_info): Update.
	(secname_for_decl): Update.
	(dwarf2out_var_location): Update.
	* function.c (free_after_compilation): Update.
	(assign_parm_find_stack_rtl): Update.
	(assign_parms): Update.
	(expand_dummy_function_end): Update.
	(expand_function_end): Update.
	* calls.c (mem_overlaps_already_clobbered_arg_p): Update.
	(expand_call): Update.
	(emit_library_call_value_1): Update.
	(store_one_arg): Update.
	* varasm.c (initialize_cold_section_name): Update.
	(unlikely_text_section): Update.
	(unlikely_text_section_p): Update.
	(assemble_start_function): Update.
	(assemble_end_function): Update.
	(default_section_type_flags): Update.
	(switch_to_section): Update.
	* integrate.c (set_decl_abstract_flags): Update.
	(get_hard_reg_initial_val): Update.
	(has_hard_reg_initial_val): Update.
	(allocate_initial_values): Update.
	* resource.c (init_resource_info): Update.
	* config/alpha/alpha.c (NUM_ARGS): Update.
	(direct_return): Update.
	(alpha_va_start): Update.
	(alpha_sa_size): Update.
	(alpha_initial_elimination_offset): Update.
	(alpha_expand_prologue): Update.
	(alpha_start_function): Update.
	(alpha_expand_epilogue): Update.
	(unicosmk_initial_elimination_offset):
	* config/alpha/alpha.md (call expander): Update.
	* config/s390/s390.c (s390_register_info): Update.
	(s390_register_info): Update.
	(s390_frame_info): Update.
	(s390_initial_elimination_offset): Update.
	(s390_build_builtin_va_list): Update.
	(s390_va_start): Update.
	* config/spu/spu.c (direct_return): Update.
	(spu_expand_prologue): Update.
	(spu_initial_elimination_offset): Update.
	(spu_build_builtin_va_list): Update.
	(spu_va_start): Update.
	* config/sparc/sparc.c (sparc_init_modes): Update.
	(sparc_compute_frame_size): Update.
	(function_value): Update.
	* config/m32r/m32r.c (m32r_compute_frame_size): Update.
	* config/i386/i386.md (return expander): Update.
	* config/i386/i386.c (ix86_va_start): Update.
	(ix86_can_use_return_insn_p): Update.
	(ix86_compute_frame_layout): Update.
	(ix86_expand_epilogue): Update.
	* config/sh/sh.c (output_stack_adjust): Update.
	(calc_live_regs): Update.
	(sh_expand_prologue): Update.
	(sh_builtin_saveregs): Update.
	(sh_va_start): Update.
	(initial_elimination_offset): Update.
	(sh_allocate_initial_value): Update.
	(sh_function_ok_for_sibcall): Update.
	(sh_get_pr_initial_val): Update.
	* config/sh/sh.md (return expander): Update.
	* config/avr/avr.c (frame_pointer_required_p): UPdate.
	* config/crx/crx.c (crx_compute_frame): UPdate.
	(crx_initial_elimination_offset): UPdate.
	* config/xtensa/xtensa.c (compute_frame_size): Update
	(xtensa_builtin_saveregs): Update.
	(xtensa_va_start): Update.
	(order_regs_for_local_alloc): Update.
	* config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
	(xstormy16_expand_builtin_va_start): Update.
	* config/fr30/fr30.c (fr30_compute_frame_size): Update.
	* config/m68hc11/m68hc11.md (return expanders): Update.
	* config/m68hc11/m68hc11.c (expand_prologue): Update.
	(expand_epilogue): Update.
	* config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
	(cris_simple_epilogue): Update.
	(cris_expand_prologue): Update.
	(cris_expand_epilogue): Update.
	* config/iq2000/iq2000.c (iq2000_va_start): Update.
	(compute_frame_size): Update.
	* config/mt/mt.c (mt_compute_frame_size): Update.
	* config/mn10300/mn10300.c (expand_prologue): Update.
	(expand_epilogue): Update.
	(initial_offset): Update.
	(mn10300_builtin_saveregs):
	* config/mn10300/mn10300.md (return expander): Update.
	* config/ia64/ia64.c (ia64_compute_frame_size): Update.
	(ia64_initial_elimination_offset): Update.
	(ia64_initial_elimination_offset): Update.
	(ia64_expand_prologue): Update.
	* config/m68k/m68k.md (return expander): Update.
	* config/rs6000/rs6000.c (rs6000_va_start): Update.
	(rs6000_stack_info): Update.
	* config/mcore/mcore.c (layout_mcore_frame): Update.
	(mcore_expand_prolog): Update.
	* config/arc/arc.c (arc_compute_frame_size): Update.
	* config/score/score3.c (score3_compute_frame_size): Update.
	* config/score/score7.c (score7_compute_frame_size): Update.
	* config/arm/arm.c (use_return_insn): Update.
	(thumb_find_work_register): Update.
	(arm_compute_save_reg_mask): Update.
	(arm_output_function_prologue): Update.
	(arm_output_epilogue): Update.
	(arm_size_return_regs): Update.
	(arm_get_frame_offsets): Update.
	(arm_expand_prologue): Update.
	(thumb_exit): Update.
	(thumb_unexpanded_epilogue): Update.
	(thumb1_output_function_prologue): Update.
	* config/pa/pa.md (return expander): Update.
	* config/pa/pa.c (compute_frame_size): Update.
	(hppa_builtin_saveregs): Update.
	* config/mips/mips.c (mips_va_start): Update.
	(mips16_build_function_stub): Update.
	(mips_compute_frame_info): Update.
	(mips_restore_gp): Update.
	(mips_output_function_prologue): Update.
	(mips_expand_prologue): Update.
	* config/v850/v850.c (compute_frame_size): Update.
	(expand_prologue): * config/mmix/mmix.c (along): update.
	(mmix_initial_elimination_offset): update.
	(mmix_reorg): update.
	(mmix_use_simple_return): update.
	(mmix_expand_prologue): update.
	(mmix_expand_epilogue): Update.
	* config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
	(emit_link_insn): Update.

2008-04-08  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
	__AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
	instructions.
	* config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
	atmega103 device.

2008-04-07  Jan Hubicka  <jh@suse.cz>

	* function.h (rtl): Rename to x_rtl.
	(crtl): New define.
	(return_label, naked_return_label, stack_slot_list, parm_birth_insn,
	frame_offset, stack_check_probe_note, arg_pointer_save_area,
	used_temp_slots avail_temp_slots, temp_slot_level,
	nonlocal_goto_handler_labels): Update accesstors.
	(rtl): New global variable.
	(struct function): Move some fileds to rtl_data.
	(get_arg_pointer_save_area): Update prototype.
	* builtins.c (expand_builtin_setjmp_receiver): Update call of
	get_arg_pointer_save_area.
	* expr.c (init_expr): Update
	* function.c (get_frame_size): Update
	(assign_stack_local): Update
	(expand_function_end): Update.
	(get_art_pointer_save_area): Update
	* function.h
	* emit-rtl.c (rtl): Declare.
	(regno_reg_rtx): Declare.
	(first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
	Update.
	(gen_reg_rtx): Update.
	* varasm.c (n_deferred_constatns): Update accestor.
	(init_varasm_status): Do not allocate varasm_status.
	(force_const_mem, get_pool_size, output_constant_pool): Update.
	* stmt.c (force_label_rtx): Do not use x_ prefixes.
	(expand_nl_goto_receiver): Update get_arg_pointer_save_area.
	* m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
	* sparc/sparc.h (INIT_EXPANDERS): Update.
	* ia64/ia64.h (INIT_EXPANDERS): Update.

2008-04-07  James E. Wilson  <wilson@tuliptree.org>

	* reload.c (push_secondary_reload): Add missing break to for loop.

2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>

	PR middle-end/PR28690
	* rtlanal.c: Update copyright years.
	(commutative_operand_precedence): Give SYMBOL_REF's the same precedence
	as REG_POINTER and MEM_POINTER operands.
	* emit-rtl.c (gen_reg_rtx_and_attrs): New function.
	(set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
	* rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
	* gcse.c: Update copyright years.
	(pre_delete): Call gen_reg_rtx_and_attrs.
	(hoist_code): Likewise.
	(build_store_vectors): Likewise.
	(delete_store): Likewise.
	* loop-invariant.c (move_invariant_reg): Likewise.
	Update copyright years.

2008-04-07  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
	control string instead of quoted.

2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* doc/rtl.texi: Rewrite of subreg section.

2008-04-07  Kai Tietz  <kai.tietz@onevision.com>

	PR/35842
	* config/i386/i386.c (legitimize_pic_address): Add treating
	of dllimport SYM_REF's.
	(legitimize_dllimport_symbol): Add prototype.

2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
	reference in constructor with non self-referential type.

2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>

	Removal of Return with Depressed Stack Pointer support
	* tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
	(ECF_SP_DEPRESSED): Likewise.
	(ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
	* calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
	(flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
	(expand_call): Do not test ECF_SP_DEPRESSED.
	* dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
	* function.c (keep_stack_depressed): Delete.
	(handle_epilogue_set): Likewise.
	(update_epilogue_consts): Likewise.
	(emit_equiv_load): Likewise.
	(thread_prologue_and_epilogue_insns): Remove support for Return with
	Depressed Stack Pointer.
	* print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.

2008-04-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/35400
	* tree-vrp.c (vrp_evaluate_conditional): Only query value-range
	information from SSA_NAMEs.

2008-04-06  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.h (avr_mega_p): Remove declaration.
	(AVR_MEGA): Remove macro.
	* config/avr/avr.c (avr_mega_p): Remove variable.
	(avr_override_options): Remove inicializion of avr_mega_p.
	Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
	(print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
	(avr_jump_mode): (Ditto.).
	(avr_output_progmem_section_asm_op): (Ditto.).
	(avr_asm_init_sections): (Ditto.).
	(avr_asm_init_sections): (Ditto.).
	(avr_rtx_costs): (Ditto.).
	* config/avr/avr.md: (Ditto.).
	* config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
	'__AVR_MEGA__'.

2008-04-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/35842
	* tree-ssa-address.c (fixed_address_object_p): Adjust to match
	is_gimple_invariant_address.

2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* gcc.c (default_compilers): Sync Fortran extensions list with
	that in fortran/lang-specs.h.
	* doc/invoke.texi: Likewise.
	* dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
	* dwarf2out.c (gen_compile_unit_die): Likewise.

2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>

	* gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.

2008-04-05  Uros Bizjak  <ubizjak@gmail.com>

	PR target/12329
	* config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
	attribute is used for nested functions.

2008-04-05  Jan Hubicka  <jh@suse.cz>

	* emit-rtl.c (init_emit): xcalloc regno_pointer_align.

	* tree-dump.c (dump_enable_all): Remove prototype; do not accept
	letter argument.
	(dump_files): Update.
	(enable_rtl_dump_file): Do not accept letter argument.
	* tree-pass.h (dump_file_info): Remove letter argument.
	* toplev.c (decode_d_option): Update -da handling.
	* toplev.h (enable_rtl_dump_file): Update prototype.
	* passes.c (register_one_dump_file): Do not accept IPA argument; work
	it out based on pass type.
	(register_dump_files_1): Likewise.
	(init_optimization_passes): Update register_one_dump_file calls.
	(execute_one_pass): Sanity check that IPA passes are called at IPA
	level and RTL passes at RTL level.
	(execute_pass_list): IPA pass can not be after or subpass of
	GIMPLE/RTL pass.
	(execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
	disallov RTL subpasses of IPA subpasses.

2008-04-05  Ben Elliston  <bje@au.ibm.com>

	* tree-cfg.c (need_fake_edge_p): Return false for calls to
	builtins that return exactly once and do not throw. Cache call to
	call_expr_flags.

2008-04-04  Andy Hutchinson  <hutchinsonandy@aim.com>

	PR rtl-optimization/34916
	PR middle-end/35519
	* combine.c (create_log_links): Do not create duplicate LOG_LINKS
	between instruction pairs.

2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>

	* doc/invoke.texi: Document -mbitops for SH.
	* config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
	* config/sh/predicates.md (bitwise_memory_operand): New	predicate.
	* config/sh/sh.c (print_operand): Add %t operand code.
	* config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
	* config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
	(extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
	(extendqihi2): Likewise.
	(movqi_i): Likewise.
	(insv): Use bset, bclr and bst instructions for SH2A if	possible.
	(extv): Use bld instruction for SH2A if possible.
	(extzv): Likewise.
	(bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
	bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
	bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
	(bset.b, bclr.b): Define peepholes.
	* config/sh/sh.opt (mbitops): New option.

2008-04-04  Janis Johnson  <janis187@us.ibm.com>

	PR target/35620
	* config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
	and view convert expression.

2008-04-04  Jakub Jelinek  <jakub@redhat.com>

	PR target/35364
	* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.

2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.

	* config/i386/cpuid.h (bit_AES): New.
	(bit_PCLMUL): Likewise.

	* config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
	(override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
	SSE2 if AES or PCLMUL is enabled.
	(ix86_builtins): Add IX86_BUILTIN_AESENC128,
	IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
	IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
	IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
	(bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
	(bdesc_2arg): Add IX86_BUILTIN_AESENC128,
	IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
	IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
	(bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
	(ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
	__builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
	__builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
	__builtin_ia32_aeskeygenassist128 and
	__builtin_ia32_pclmulqdq128.
	* config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
	(ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
	IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.

	* config/i386/i386.h (TARGET_AES): New.
	(TARGET_PCLMUL): Likewise.
	(TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.

	* config/i386/i386.md (UNSPEC_AESENC): New.
	(UNSPEC_AESENCLAST): Likewise.
	(UNSPEC_AESDEC): Likewise.
	(UNSPEC_AESDECLAST): Likewise.
	(UNSPEC_AESIMC): Likewise.
	(UNSPEC_AESKEYGENASSIST): Likewise.
	(UNSPEC_PCLMUL): Likewise.

	* config/i386/i386.opt (maes): New.
	(mpclmul): Likewise.

	* config/i386/sse.md (aesenc): New pattern.
	(aesenclast): Likewise.
	(aesdec): Likewise.
	(aesdeclast): Likewise.
	(aesimc): Likewise.
	(aeskeygenassist): Likewise.
	(pclmulqdq): Likewise.

	* config/i386/wmmintrin.h: New.

	* doc/extend.texi: Document AES and PCLMUL built-in function.

	* doc/invoke.texi: Document -maes and -mpclmul.

2008-04-04  Paolo Bonzini  <bonzini@gnu.org>

	* function.c (free_after_parsing): Replace with
	cxx_push_function_context from C++ front-end.
	(allocate_struct_function): Don't call langhook.
	* langhooks.h (struct lang_hooks_for_functions): Delete.
	(struct lang_hooks): Add back missing_noreturn_ok_p here, delete
	member "function".
	* langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
	(LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
	LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
	LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
	(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
	remove LANG_HOOKS_FUNCTION_INITIALIZER.
	* tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.

	* c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
	Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.

2008-04-04  Jakub Jelinek  <jakub@redhat.com>

	PR c/35440
	* c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
	for all types.

2008-04-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/35823
	* fold-const.c (optimize_minmax_comparison): Use the correct
	type for the constant in the simplified comparison.

2008-04-04  Zuxy Meng  <zuxy.meng@gmail.com>

	* config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
	Pass L2 size as "--param l2-cache-size" to the compiler.
	(decode_l2_cache): New function to decode L2 cache parameters using
	0x8000006 extended cpuid function.
	(detect_caches_amd): Determine parameters of L2 cache using
	decode_l2_caches function.
	(decode_caches_intel): Decode L2 cache parameters.
	(detect_caches_intel): Determine L2 cache parameters using
	decode_caches_intel and decode_l2_caches functions.

2008-04-03  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
	secondary input reload for subword loads from the constant pool.

2008-04-03  Janis Johnson  <janis187@us.ibm.com>

	PR target/35713
	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
	  constants of the appropriate size for runtime calculations.

	PR c/35712
	* dfp.c (decimal_from_decnumber): Retain trailing zeroes for
	  decimal-float literal constant zero.

2008-04-03  Jakub Jelinek  <jakub@redhat.com>

	PR c/35738
	* c-parser.c (c_parser_omp_atomic): Call
	default_function_array_conversion on the RHS.

	PR middle-end/35818
	* omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
	call is_variable_sized if decl has incomplete type.

2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-protos.h (ix86_aligned_p): Removed.

2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>

	* config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
	iterators.
	(u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
	(sgt<u>): Merge sgt and sgtu into new expander.
	(sgt, sgtu): Remove expanders.
	(*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
	(*sgt_<mode>, *sgtu_<mode>): Remove patterns.
	(*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
	*sgtu_<mode>_mips16 into new pattern.
	(*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
	(sge<u>): Merge sge and sgeu into new expander.
	(sge, sgeu): Remove expanders.
	(*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
	new pattern.
	(*sge_<mode>, second *sge_<mode>): Remove patterns.
	(slt<u>): Merge slt and sltu into new expander.
	(slt, sltu): Remove expanders.
	(*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
	(*slt_<mode>, *sltu_<mode>): Remove patterns.
	(*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
	*sltu_<mode>_mips16 into new pattern.
	(*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
	(sle<u>): Merge sle and sleu into new expander.
	(sle, sleu): Remove expanders.
	(*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
	(*sle_<mode>, *sleu_<mode>): Remove patterns.
	(*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
	*sleu_<mode>_mips16 into new pattern.
	(*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.

2008-04-03  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/35795
	* alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
	* sparc/sparc.c (sparc_output_mi_thunk): Likewise.
	* ia64/ia64.c (ia64_output_mi_thunk): Likewise.
	* m68k/m68k.c (m68k_output_mi_thunk): Likewise.
	* score/score3.c (score3_output_mi_thunk): Likewise.
	* score/score7.c (score7_output_mi_thunk): Likewise.
	* mips/mips.c (mips_output_mi_thunk): Likewise.

2008-04-03  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (extract_range_from_unary_expr): Handle all
	conversions.  Simplify code.

2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_output_mi_thunk): Free cfun.

2008-04-03  Tom Tromey  <tromey@redhat.com>
	    Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
	* config/bfin/t-bfin-linux (generated_files): Add
	linux-sysroot-suffix.h.
	* doc/install.texi (Prerequisites): Require make 3.80.
	* doc/sourcebuild.texi (Front End Directory): Document new
	variable.
	* Makefile.in (generated_files): New variable.
	(ALL_HOST_OBJS): New variable.
	($(ALL_HOST_OBJS)): New target.

2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

	* tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
	(remap_block): Call id->transform_lang_insert_block instead
	of langhook.
	(optimize_inline_calls, unsave_expr_now, tree_function_versioning):
	Set id.transform_lang_insert_block to NULL.
	(clone_body): Move to cp/optimize.c
	* tree-inline.h (struct copy_body_data): Change
	transform_lang_insert_block to function pointer.
	(copy_generic_body, copy_decl_no_change): Export.
	* langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
	* langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
	(LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.

	* c-tree.h (insert_block): Kill.
	* c-decl.c (insert_block): Kill.

2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

	* c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
	LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
	* c-tree.h (c_push_function_context, c_pop_function_context): Remove
	argument.
	* c-decl.c (c_push_function_context, c_pop_function_context): Remove
	argument, call {push,pop}_function_context from here.
	* c-parser.c: Use c_{push,pop}_function_context.

	* function.c (push_function_context_to): Move meat ...
	(push_function_context): ... here.  Simplify.
	* function.c (pop_function_context_from): Move meat ...
	(pop_function_context): ... here.  Simplify.
	* langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
	leave_nested).
	* langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
	LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
	(LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
	* tree.h (push_function_context_to, pop_function_context_from): Remove.

2008-04-03  Ben Elliston  <bje@au.ibm.com>

	* expmed.c (extract_force_align_mem_bit_field): Remove.

2008-04-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/35800
	* expr.h (try_casesi): Adjust prototype.
	* expr.c (try_casesi): Take fallback label as extra parameter.
	Use that for gen_casesi if default_label is NULL.
	* stmt.c (expand_case): Pass fallback label to try_casesi,
	make sure to fill gaps with a fallback label if default_label
	is not present.

2008-04-03  Dominique d'Humières  <dominiq@lps.ens.fr>

	PR target/35801
	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.

2008-04-03  Ben Elliston  <bje@au.ibm.com>

	* expmed.c (extract_split_bit_field): Remove if (0) code.
	* tree-ssa-structalias.c (do_sd_constraint): Likewise.
	(do_ds_constraint): Likewise.

2008-04-02  Joseph Myers  <joseph@codesourcery.com>

	* doc/cppopts.texi (-dU): Document.
	* c-common.h (flag_dump_macros): Update comment.
	* c-opts.c (handle_OPT_d): Handle -dU.
	* c-ppoutput.c (macro_queue, define_queue, undef_queue,
	dump_queued_macros, cb_used_define, cb_used_undef): New.
	(init_pp_output): Handle -dU.
	(cb_line_change): Call dump_queued_macros.
	* toplev.c (decode_d_option): Accept -dU as preprocessor option.

2008-04-02  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/predicates.md (io_address_operand): New predicate.
	* config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
	* config/avr/avr.c (avr_io_address_p): Remove function.
	(out_movqi_r_mr): Use 'io_address_operand' predicate instead of
	'avr_io_address_p' function.
	(out_movhi_r_mr): (Ditto.).
	(out_movqi_mr_r): (Ditto.).
	(out_movhi_mr_r): (Ditto.).
	(avr_address_cost): (Ditto.).

2008-04-02  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
	Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
	in 32bit mode when XMM registers are available to avoid store
	forwarding stalls.
	(floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
	corresponding post-reload splitters.

2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
	and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
	__builtin_ia32_roundss.
	(ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
	__builtin_ia32_shufpd, __builtin_ia32_roundsd and
	__builtin_ia32_roundss.
	(ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
	IX86_BUILTIN_SHUFPD here.

2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (plogic): New.
	(plogicprefix): Likewise.

	* config/i386/mmx.md (mmx_<code><mode>3): New.
	(mmx_and<mode>3): Removed.
	(mmx_ior<mode>3): Likewise.
	(mmx_xor<mode>3): Likewise.

	* config/i386/sse.md (<code><mode>3): New.
	(*<code><mode>3): Likewise.
	(*<code><mode>3): Likewise.
	(<code><mode>3): Likewise.
	(*sse_<code><mode>3): Likewise.
	(*sse2_<code><mode>3): Likewise.
	(<code>tf3): Likewise.
	(*<code>tf3): Likewise.
	(and<mode>3): Likewise.
	(*and<mode>3): Likewise.
	(ior<mode>3): Removed.
	(*ior<mode>3): Likewise.
	(xor<mode>3): Likewise.
	(*xor<mode>3): Likewise.
	(*and<mode>3): Likewise.
	(*ior<mode>3): Likewise.
	(*xor<mode>3): Likewise.
	(and<mode>3): Likewise.
	(*sse_and<mode>3): Likewise.
	(*sse2_and<mode>3): Likewise.
	(andtf3): Likewise.
	(*andtf3): Likewise.
	(ior<mode>3): Likewise.
	(*sse_ior<mode>3): Likewise.
	(*sse2_ior<mode>3): Likewise.
	(iortf3): Likewise.
	(*iortf3): Likewise.
	(xor<mode>3): Likewise.
	(*sse_xor<mode>3): Likewise.
	(*sse2_xor<mode>3): Likewise.
	(xortf3): Likewise.
	(*xortf3): Likewise.

2008-04-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/14495
	PR tree-optimization/34793
	* tree-vrp.c (struct switch_update): New structure.
	(to_remove_edges, to_update_switch_stmts): New VECs.
	(simplify_switch_using_ranges): New function.  Remove not taken
	case labels and edges.
	(simplify_stmt_using_ranges): Call it.
	(identify_jump_threads): Mark edges we have queued for removal
	so we don't thread them.
	(execute_vrp): Remove edges queued for removal, update SWITCH_STMT
	case label vector.
	* tree-cfg.c (group_case_labels): Deal with missing default label.
	(tree_verify_flow_info): Allow missing default label.
	* stmt.c (emit_case_bit_tests): Deal with NULL default_label.
	(emit_case_nodes): Likewise.
	(expand_case): Do not rely on the default label to be present.
	* expr.c (try_casesi): Deal with NULL default_label.
	(do_tablejump): Likewise.

2008-04-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/14495
	* tree-vrp.c (vrp_visit_cond_stmt): Do not handle
	SWITCH_EXPR here ...
	(vrp_visit_switch_stmt): ... but here (new function).
	(find_case_label_index): New helper function.
	(vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.

2008-04-02  Paolo Bonzini  <bonzini@gnu.org>

	* fwprop.c: Fix ISO-C99ism.

2008-04-02  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/35752
	* Makefile.in (objdir): Set it here.
	* configure.ac: Not here.  Find dynamic linker characteristics.
	* exec-tool.in: Use them.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2008-04-02  Paolo Bonzini  <bonzini@gnu.org>

	* expr.c (expand_var): Delete it.
	* expr.h (expand_var): Delete prototype.
	* function.c (expand_function_start): Use expand_decl instead.
	* cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
	langhook.

2008-04-02  Andy Hutchinson  <hutchinsonamdy@aim.com>

	PR rtl-optimization/35542
	* fwprop.c (forward_propagate_and_simplify): Replace
	loc_reg_mentioned_in_p with reg_mentioned_p.

2008-04-02  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/35281
	* fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
	(propagate_rtx_1): Handle PR_HANDLE_MEM.
	(propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
	(varying_mem_p): Move above propagate_rtx.
	(all_uses_available_at): Do not check MEMs.

2008-04-02  Rafael Espíndola  <espindola@google.com>

	* tree-vrp.c (extract_code_and_val_from_cond): Remove.
	(register_edge_assert_for_2): Split the cond argument.
	(register_edge_assert_for_1): Adjust for the change in
	register_edge_assert_for_2.
	(register_edge_assert_for): Split the cond argument.
	(find_switch_asserts): Adjust for the change in
	register_edge_assert_for.

2008-04-02  Kai Tietz  <kai.tietz@onevision.com>

	* config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
	* config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
	offsets for 64-bit mingw.
	* config/i386/i386.c (ix86_pass_by_reference): Correct calling
	abi for x86_64-pc-mingw.

2008-04-02  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (extract_range_from_assert): Make sure to not
	produce range min/max with TREE_OVERFOW set.
	If merging a anti-range and a range keep the anti-range if
	the range covers all values of the type.
	(register_edge_assert_for_2): Only allow sign-changing
	conversions in detecting canonical range checks.  Also
	register an assert for the unsigned name if useful.

	PR tree-optimization/35787
	* tree-vrp.c (vrp_val_max): New function.
	(vrp_val_min): Likewise.
	(vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
	(vrp_val_is_min): Likewise.
	(supports_overflow_infinity): Use vrp_val_{min,max}.
	(negative_overflow_infinity): Likewise.
	(positive_overflow_infinity): Likewise.
	(is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
	(is_positive_overflow_infinity): Likewise.
	(is_overflow_infinity): Likewise.
	(avoid_overflow_infinity): Use vrp_val_{min,max} and
	vrp_val_is_{min,max}.
	(set_and_canonicalize_value_range): Canonicalize anti-ranges
	to ranges if possible.  Avoid empty ranges.

2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/35705
	* fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
	the expression is a function address.

2008-04-01  George Helffrich  <george@gcc.gnu.org>

	PR fortran/35154, fortran/23057
	* dbxout.c: Emit .stabs debug info for Fortran COMMON block
	variables as base symbol name + offset using N_BCOMM/N_ECOMM.
	(is_fortran, dbxout_common_name, dbxout_common_check): New functions.
	(dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
	in common.
	(dbxout_syms): Check for COMMON-based symbol and wrap in
	N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
	in bracket for efficiency.

	* dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
	using DW_TAG_common_block + member offset.
	(add_pubname_string): New function.
	(dw_expand_expr): New function to find block name and offset for
	COMMON var.
	(common_check): New function to check whether symbol in Fortran COMMON.
	(gen_variable_die): If COMMON, use DW_TAG_common_block.

2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>

	PR c/35436
	* c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.

2008-04-02  Ben Elliston  <bje@au.ibm.com>

	* config/v850/v850.md (casesi): Remove if (0) code.
	* config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
	* config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.

2008-04-01  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (rex64suffix): New mode attribute.
	(floathi<mode>2): Disable expander for SSE math.
	(*floathi<mode>2_1): New insn insn_and_split pattern.
	(*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
	corresponding post-reload splitters.
	(*floathi<mode>2_i387): New macroized insn pattern.
	(float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
	(*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
	insn_and_split pattern.
	(*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
	New macroized instruction patterns and corresponding post-reload
	splitters.
	(*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
	and corresponding post-reload splitters.
	(*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
	New macroized instruction patterns.
	(*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
	macroized instruction patterns and corresponding post-reload splitters.
	(*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
	corresponding post-reload splitters.
	(*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
	New macroized instruction patterns.
	(*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
	corresponding post-reload splitters.
	(*floatsi<mode>2_i387): New macroized instruction patterns.

2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (smaxmin): New.
	(umaxmin): Likewise.
	(maxminiprefix): Likewise.
	(maxminfprefix): Likewise.
	(<code><mode>3): Likewise.
	(smin<mode>3): Removed.
	(smax<mode>3): Likewise.

	* config/i386/mmx.md (mmx_<code>v2sf3): New.
	(mmx_<code>v4hi3): Likewise.
	(mmx_<code>v8qi3): Likewise.
	(mmx_smaxv2sf3): Removed.
	(mmx_sminv2sf3): Likewise.
	(mmx_umaxv8qi3): Likewise.
	(mmx_smaxv4hi3): Likewise.
	(mmx_uminv8qi3): Likewise.
	(mmx_sminv4hi3): Likewise.

	* config/i386/sse.md (<addsub><mode>3): New.
	(*<addsub><mode>3): Likewise.
	(<sse>_vm<addsub><mode>3): Likewise.
	(<maxmin><mode>3): Likewise.
	(*<maxmin><mode>3_finite): Likewise.
	(*<maxmin><mode>3): Likewise.
	(<sse>_vm<maxmin><mode>3): Likewise.
	(sse3_h<addsub>v4sf3): Likewise.
	(sse3_h<addsub>v2df3): Likewise.
	(<maxmin>v16qi3): Likewise.
	(*<maxmin>v16qi3): Likewise.
	(<maxmin>v8hi3): Likewise.
	(*<maxmin>v8hi3): Likewise.
	(*sse4_1_<maxmin><mode>3): Likewise.
	(*sse4_1_<maxmin><mode>3): Likewise.
	(add<mode>3): Removed.
	(*add<mode>3): Likewise.
	(<sse>_vmadd<mode>3): Likewise.
	(sub<mode>3): Likewise.
	(*sub<mode>3): Likewise.
	(<sse>_vmsub<mode>3): Likewise.
	(smin<mode>3): Likewise.
	(*smin<mode>3_finite): Likewise.
	(*smin<mode>3): Likewise.
	(<sse>_vmsmin<mode>3): Likewise.
	(smax<mode>3): Likewise.
	(*smax<mode>3_finite): Likewise.
	(*smax<mode>3): Likewise.
	(<sse>_vmsmax<mode>3): Likewise.
	(sse3_haddv4sf3): Likewise.
	(sse3_haddv2df3): Likewise.
	(sse3_hsubv4sf3): Likewise.
	(sse3_hsubv2df3): Likewise.
	(umaxv16qi3): Likewise.
	(*umaxv16qi3): Likewise.
	(smaxv8hi3): Likewise.
	(*smaxv8hi3): Likewise.
	(*sse4_1_smax<mode>3): Likewise.
	(*sse4_1_umax<mode>3): Likewise.
	(uminv16qi3): Likewise.
	(*uminv16qi3): Likewise.
	(sminv8hi3): Likewise.
	(*sminv8hi3): Likewise.
	(*sse4_1_smin<mode>3): Likewise.
	(*sse4_1_umin<mode>3): Likewise.

2008-04-01  Rafael Espíndola  <espindola@google.com>

	* tree-cfg.c (verify_expr): remove in_phi.
	(verify_stmt): Don't call walk_tree with verify_expr. Use
	is_gimple_min_invariant instead of is_gimple_val.

2008-04-01  Joseph Myers  <joseph@codesourcery.com>

	* doc/include/gpl_v3.texi: Update for manpage generation.
	* doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
	gpl.texi.
	* doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
	* Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
	gpl_v3.texi instead of gpl.texi.
	(gpl.pod): New.

2008-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR pch/13675
	* c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).

2008-04-01  Rafael Espíndola  <espindola@google.com>

	* tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
	(extract_code_and_val_from_cond): Use
	extract_code_and_val_from_cond_with_ops.

2008-04-01  Jan Hubicka  <jh@suse.cz>

	* function.c (free_after_compilation): Free epilogue_delay_list.
	(prepare_function_start): Assert that previous compilation was freed.

2008-04-01  Jan Hubicka  <jh@suse.cz>
	    Jim Wilson  <wilson@tuliptree.org>
	    Andreas Tobler  <andreast@gcc.gnu.org>

	PR middle-end/35781
	* m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
	rtl.emit instead cfun->emit.
	* sparc/sparc.h (INIT_EXPANDERS): Likewise.
	* ia64/ia64.h (INIT_EXPANDERS): Likewise.

2008-04-01  Ben Elliston  <bje@au.ibm.com>

	* doc/c-tree.texi (Function Basics): Fix grammatical error.

2008-03-31  Seongbae Park  <seongbae.park@gmail.com>

	* common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
	New options
	(fprofile-use): Add var flag_profile_use
	* coverage.c (coverage_begin_output): Do not open a gcno file for
	output only if -ftest-coverage is set.
	Do not add getpwd() to gcda file path.
	(build_gcov_info): Check the new flag
	flag_profile_datafile_relative_path.
	(coverage_init): Use profile_data_prefix.
	Read profile counter only if flag_profile_use is set.
	* opts.c (common_handle_option): New option fprofile-use=,
	fprofile-dir=, fprofile-generate=.
	* toplev.c (profile_data_prefix): New variable definition.
	* toplev.h (profile_data_prefix): New declaration.
	* doc/invoke.tex (Option Summary, Optimization Options):
	Add new options.

2008-03-31  James E. Wilson  <wilson@tuliptree.org>

	* varasm.c (output_constant_pool_1): In LABEL_REF check,
	use tmp consistently.

	PR target/35695
	* config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
	* config/ia64/ia64.c (rtx_needs_barrier): Handle
	UNSPEC_FR_RECIP_APPROX_RES.
	* config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.

2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>

	PR c/35750
	* c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.

2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/30186
	* fold-const.c (fold_indirect_ref_1): Support accessing non first
	element of the vector via a pointer.

2008-03-31  Ian Lance Taylor  <iant@google.com>

	* tlink.c (scan_linker_output): Look for symbol name in single quotes.

2008-03-31  Jan Hubicka  <jh@suse.cz>

	* builtins.c (expand_builtin_setjmp_receiver): Update call of
	get_arg_pointer_save_area.
	* expr.c (init_expr): Just clear out rtl.expr.
	* function.c (free_after_compilation): Clear out whole RTL structure.
	(get_func_frame_size): Merge into ...
	(get_frame_size): ... this one.
	(assign_stack_local_1): Merge into ...
	(assign_stack_local): ... this one.
	(expand_function_end): Update call of get_arg_pointer_save_area.
	(get_art_pointer_save_area): Remove cfun argument.
	* function.h (emit_status): regno_pointer_align does not need length
	attribute. Move x_regno_reg_rtx to ...
	(regno_reg_rtx): ... new global array.
	(reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
	(pending_stack_adjust, inhibit_defer_pop, saveregs_value,
	apply_args_value, forced_labels, stack_pointer_delta):
	Update accestors.
	(struct varasm_status): Move here from varasm.c
	(struct rtl_data): New. Move here some fields from struct function.
	(return_label, naked_return_label, stack_slot_list, parm_birth_insn,
	frame_offset, stack_check_probe_note, arg_pointer_save_area,
	used_temp_slots avail_temp_slots, temp_slot_level,
	nonlocal_goto_handler_labels): Update accesstors.
	(rtl): New global variable.
	(struct function): Move some fileds to rtl_data.
	(get_arg_pointer_save_area): Update prototype.
	* emit-rtl.c (rtl): Declare.
	(regno_reg_rtx): Declare.
	(first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
	Update.
	(gen_reg_rtx): Update.
	(init_virtual_regs): Do not tate emit_status argument.
	(init_emit): Do not allocate emit.
	* varasm.c (varasm_statuc): Move to function.h.
	(n_deferred_constatns): Update accestor.
	(init_varasm_status): Do not allocate varasm_status.
	(force_const_mem, get_pool_size, output_constant_pool): Update.
	* stmt.c (force_label_rtx): Do not use x_ prefixes.
	(expand_nl_goto_receiver): Update get_arg_pointer_save_area.

2008-03-31  Zdenek Dvorak  <ook@ucw.cz>

	PR rtl-optimization/35729
	* loop-invariant.c (check_maybe_invariant): Disallow volatile memory
	references.

2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/32000
	* config/i386/i386.md (*movti_internal): Emit unaligned SSE
	load/store if memory is unaligned.
	(*movti_rex64): Likewise.

	* config/i386/predicates.md (misaligned_operand): New.

2008-03-31  Andrew Pinski  <pinskia@gmail.com>

	PR tree-opt/35431
	* tree-ssa-phiopt.c (conditional_replacement): Return early for
	complex types.

2008-03-31  Jan Beulich  <jbeulich@novell.com>

	* config/ia64/constraints.md: Add 'j' constraint.
	* config/ia64/ia64.md (movsi_internal): Add addp4 case.
	(movdi_internal): Likewise.

2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>

	PR c/35748
	* c-typeck.c (build_c_cast): Skip invalid fields in unions.

2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/35757
	* config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
	proper error message for the third argument on blendpd and
	blendps.

	* config/i386/sse.md (blendbits): New.
	(sse4_1_blendp<ssemodesuffixf2c>): Use it.

2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>

	* fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.

2008-03-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/31023
	* fold-const.c (fold_sign_changed_comparison): Do leave
	conversions to base-types alone.

2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
	the link register if one altivec register is be saved.

2008-03-30  Ben Elliston  <bje@au.ibm.com>

	* final.c (final_scan_insn): Remove if (0) code.

2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>

	* c-parser.c (c_parser_next_token_is_keyword): Simplify.

2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
	of V4SFmode to ix86_binary_operator_ok.

2008-03-28  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (override_options): Initialize
	ix86_veclib_handler to ix86_veclibabi_svml when
	-mveclibabi=svml is used.
	(ix86_veclibabi_svml): New function for SVML ABI style
	vectorization support.
	* doc/invoke.texi (-mveclibabi) [svml]: Document new target option.

2008-03-28  Rafael Espíndola  <espindola@google.com>

	* fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
	(tree_binary_nonnegative_warnv_p): Make it public.
	(tree_single_nonnegative_warnv_p): Make it public.
	(tree_invalid_nonnegative_warnv_p): Make it public.
	(tree_unary_nonzero_warnv_p): Make it public.
	(tree_binary_nonzero_warnv_p): Make it public
	(tree_single_nonzero_warnv_p): Make it public.
	* tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
	(extract_range_from_binary_expr): Split the expr argument.
	(extract_range_from_unary_expr): Split the expr argument.
	(extract_range_from_comparison): Split the expr argument.
	(extract_range_from_expr): Use the new aux functions.
	(vrp_evaluate_conditional_warnv): Use
	vrp_evaluate_conditional_warnv_with_ops.
	* tree.h (tree_unary_nonzero_warnv_p): Declare.
	(tree_binary_nonzero_warnv_p): Declare.
	(tree_single_nonzero_warnv_p): Declare.
	(tree_expr_nonzero_warnv_p): Declare.
	(tree_unary_nonnegative_warnv_p): Declare.
	(tree_binary_nonnegative_warnv_p): Declare.
	(tree_single_nonnegative_warnv_p): Declare.
	(tree_invalid_nonnegative_warnv_p): Declare.

2008-03-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/30317
	PR tree-optimization/30911
	PR tree-optimization/34793
	* tree-vrp.c (set_and_canonicalize_value_range): New function.
	(struct assert_locus_d): New member EXPR.
	(register_new_assert_for): Add EXPR parameter to support
	ASSERT_EXPR <name, expr OP limit>.
	(register_edge_assert_for_1): Adjust callers.
	(find_assert_locations): Likewise.
	(process_assert_insertions_for): Build condition from expression.
	(extract_range_from_assert): Handle ASSERT_EXPRs
	of the form ASSERT_EXPR <name, expr OP limit>.
	(register_edge_assert_for_2): New helper registering
	asserts for comparisons.  Recognize range tests of the form
	(unsigned)i - CST1 OP CST2.
	(register_edge_assert_for_1): Use it.
	(register_edge_assert_for): Likewise.
	(needs_overflow_infinity): Integer sub-types
	do not need overflow infinities.
	(vrp_val_is_max): The extreme values of integer sub-types
	are those of the base type.
	(vrp_val_is_min): Likewise.
	* tree.def (ASSERT_EXPR): Document extra allowed conditional
	expressions.

2008-03-28  Nick Clifton  <nickc@redhat.com>

	PR target/31110
	* config/mn10300/mn10300.c (mn10300_secondary_reload_class):
	Return GENERAL_REGS for stack adjustment reloads.

2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR target/31334
	* config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
	const_vector when all the vectors are constant.

2008-03-27  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (gen_float_relational): Handle unordered
	comparisons.
	* config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
	(any_scc_sf): Add uneq, unlt, unle and unordered operators.
	(scc_sf): New.
	(s<code>_sf): Use new scc_sf attribute for opcode names.

2008-03-27  Tom Tromey  <tromey@redhat.com>

	* doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
	configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
	config/spu/t-spu-elf, config/i386/t-interix,
	config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
	config/i386/x-darwin, config/i386/x-mingw32,
	config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
	config/sh/t-sh, config/sh/t-symbian, config/x-linux,
	config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
	config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
	config/rs6000/x-rs6000, config/rs6000/x-darwin64,
	config/rs6000/x-darwin, config/rs6000/t-rs6000,
	config/score/t-score-elf, config/arm/t-strongarm-pe,
	config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
	config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
	Revert automatic dependency patch.

2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/35657
	* config/i386/i386.c (ix86_function_arg_boundary): Align
	decimal floating point to its natural boundary.

2008-03-27  Richard Guenther  <rguenther@suse.de>

	PR middle-end/35716
	* fold-const.c (fold_comparison): Restrict distinct decl
	comparison folding to VAR_DECLs and PARM_DECLs.  Do not
	solely rely on operand_equal_p.

2008-03-27  Richard Guenther  <rguenther@suse.de>

	PR c/32511
	* c-common.c (handle_weak_attribute): Reject combination of
	weak and inline.

2008-03-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/32810
	* tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
	conversions from DECL_INITIAL.
	(fold_const_aggregate_ref): Likewise from constructor elements.

2008-03-27  Zdenek Dvorak  <ook@ucw.cz>

	* tree-affine.h (aff_combination_expand): Declare.
	(get_inner_reference_aff): Likewise.
	* tree-affine.c	(aff_combination_expand): Split out from
	tree_to_aff_combination_expand.
	(get_inner_reference_aff): New function.
	* tree-parloops.c (loop_parallel_p): Free vectorizer info.
	* tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
	(struct lim_aux_data): sm_done field removed.
	(mem_ref_loc_p, mem_ref_locs_p): New types.
	(struct mem_ref): Added id, stored, accesses_in_loop,
	indep_loop, dep_loop, indep_ref, dep_ref fields.
	Removed is_stored, locs and next fields.
	(memory_accesses): New variable.
	(movement_possibility): Do not allow moving statements
	that store to memory.
	(outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
	New functions.
	(determine_max_movement): For statements with memory references,
	find the outermost loop in that the reference is independent.
	(move_computations_stmt): Mark the virtual operands for renaming.
	(memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
	gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
	vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
	add_vop_ref_mapping, create_vop_ref_mapping_loop,
	create_vop_ref_mapping, analyze_memory_references,
	cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
	get_all_locs_in_loop, ref_always_accessed_p,
	refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
	ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
	store_motion_loop, store_motion): New functions.
	(struct vop_to_refs_elt): New type.
	(record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
	memref_hash, memref_eq, hoist_memory_references): Rewritten.
	(schedule_sm): Replaced by...
	(execute_sm): ... this.
	(determine_lsm_ref, hoist_memory_references,
	loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
	find_more_ref_vops, free_mem_ref, free_mem_refs,
	determine_lsm_loop, determine_lsm): Removed.
	(tree_ssa_lim_finalize): Free data structures used by store motion.
	(tree_ssa_lim): Call analyze_memory_references.  Use
	store_motion instead of determine_lsm.

2008-03-27  Paolo Bonzini  <bonzini@gnu.org>

	* config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
	rename tmake_file to m68hc11/t-m68hc11.
	(mcore): Set inhibit_libc to true.
	* config.host (alpha*-dec-*vms*): Set extra_programs.
	(interix3*): Don't use host_xmake_file.
	* configure.ac: Let config.gcc override inhibit_libc.
	* configure: Regenerate.

	* config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
	* config/t-openbsd-thread: Remove commented out lines.

	* config/x-interix: Remove.

	* config/m68hc11/t-m68hc11-gas: Rename to...
	* config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.

	* config/mcore/t-mcore: Remove T_CFLAGS.
	* config/mcore/t-mcore-pe: Likewise.

2008-03-27  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Replace custom __GNU_SOURCE test with
	AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config.in: Regenerate.

2008-03-27  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (target.h): Include.
	(fold_comparison): Fold comparison of addresses of decls
	that bind locally or of constants.  Consolidate address folding code.
	* tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
	results from fold_binary_to_constant.
	(compare_values_warnv): Likewise.

2008-03-27  Andrew Pinski  <pinskia@gmail.com>

	PR middle-end/35429
	* fold-const.c (fold_truthop): Check for integeral types when folding
	a == 0 && b == 0 and a != 0 || b != 0 .

2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.

2008-03-26  Andreas Schwab  <schwab@suse.de>

	* doc/invoke.texi: Fix use of @item vs. @itemx.

2008-03-26  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (build/gensupport.o, build/print-rtl.o,
	build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
	build/genattrtab.o, build/genautomata.o, build/gencheck.o,
	build/gencodes.o, build/genconditions.o, build/genconfig.o,
	build/genconstants.o, build/genemit.o, build/genextract.o,
	build/genflags.o, build/genmddeps.o, build/genopinit.o,
	build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
	options.h.

2008-03-26  Richard Guenther  <rguenther@suse.de>

	Revert
	2008-03-26  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (target.h): Include.
	(fold_comparison): Fold comparison of addresses of two decls
	that bind locally.  Consolidate address folding code.

2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (expand_builtin_pow, fold_builtin_cabs,
	fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
	fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
	dconstsqrt2, dconstthird, dconste and/or dconst10.
	* config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
	* emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
	dconstsqrt2, dconste): Delete.
	(init_emit_once): Likewise.  Simplify initializing dconstm1.
	Constify variable.
	* real.c (get_real_const): New.
	* real.h (dconst3, dconst10, dconstm2, dconstthird,
	dconstsqrt2, dconste): Delete.
	(real_value_const, get_real_const): New.

2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.

	* config/i386/i386.c (ix86_function_arg_boundary): Check
	BIGGEST_ALIGNMENT instead of 128.
	(setup_incoming_varargs_64): Likewise.

2008-03-26  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (DEPFILES): Add missing '/'.

2008-03-26  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (target.h): Include.
	(fold_comparison): Fold comparison of addresses of two decls
	that bind locally.  Consolidate address folding code.

2008-03-26  Nick Clifton  <nickc@redhat.com>

	PR target/31232
	* config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
	not allow INT+INT as a legitimate addressing mode.

2008-03-26  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (widen_bitfield): Remove declaration.
	* tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
	(widen_bitfield): Remove function.
	* tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
	code.

2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR target/31558
	* config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
	error_mark_node's.

2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR rtl-optimization/35232
	* reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
	(forget_old_reloads_1, forget_marked_reloads): Don't clear
	reg_reloaded_call_part_clobbered here.
	(reload_regs_reach_end_p): New function.
	(reload_reg_rtx_for_input): New variable.
	(reload_reg_rtx_for_output): Likewise.
	(emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
	when reassigning a pseudo register.  Load reloadreg from
	reload_reg_rtx_for_input, moving the mode and register
	calculation to...
	(do_input_reload): ...here.  Use the mode-adjusted reg_rtx
	instead of the original when deciding whether an input reload
	would be a no-op or whether an output reload can be deleted.
	(emit_output_reload_insns): Use the mode-adjusted reg_rtx
	when setting up new_spill_reg_store.  Load it from
	reload_reg_rtx_for_output, moving the mode and register
	calculation to...
	(do_output_reload): ...here.  Use the mode-adjusted reg_rtx
	instead of the original when deciding whether an output reload
	would be a no-op.  Do the same when modifying insn notes.
	Use rtx_equal_p instead of == to compare the registers.
	(inherit_piecemeal_p): Take a mode and two register numbers
	as argument.
	(emit_reload_insns): Clear new_spill_reg_store for every hard
	register in the reload register.  Remove spill registers
	from reg_reloaded_valid before considering whether to record
	inheritance information for them.  Use reload_reg_rtx_for_output
	instead of reg_rtx when recording output reloads.  Use
	reload_reg_rtx_for_input instead of reg_rtx when recording
	input reloads.  Set or clear reg_reloaded_call_part_clobbered
	at the same time as setting reg_reloaded_valid.
	(delete_output_reload): Add a new_reload_reg parameter and use it
	instead of rld[j].reg_rtx.
	(emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
	calls accordingly.

2008-03-25  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (build/gensupport.o): Depend on insn-modes.h.
	(build/genattr.o): Likewise.
	(build/genattrtab.o): Likewise.
	(build/gencodes.o): Likewise.
	(build/genconfig.o): Likewise.
	(build/genconstants.o): Likewise.
	(build/genemit.o): Likewise.
	(build/genextract.o): Likewise.
	(build/genflags.o): Likewise.

2008-03-25  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
	instead of size_int for integer types.
	(xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
	to match type of MINUS_EXPR.

2008-03-25  Tom Tromey  <tromey@redhat.com>

	* configure: Rebuilt.
	* configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
	Makefile.

2008-03-25  Tom Tromey  <tromey@redhat.com>

	* config/x-solaris (host-solaris.o): Update.
	* config/x-linux (host-linux.o): Update.
	* config/x-hpux (host-hpux.o): Update.
	* config/x-darwin (host-darwin.o): Update.
	* config/v850/t-v850e (v850-c.o): Update.
	* config/v850/t-v850 (v850-c.o): Update.
	* config/t-vxworks (vxworks.o): Update.
	* config/t-sol2 (sol2-c.o, sol2.o): Update.
	* config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
	* config/spu/t-spu-elf (spu-c.o): Update.
	(spu.o): Remove.
	* config/sh/t-symbian (sh-c.o): Update.
	(symbian.o): Update.
	* config/sh/t-sh (sh-c.o): Update.
	* config/score/t-score-elf (score7.o, score3.o): Update.
	* config/rs6000/x-rs6000 (driver-rs6000.o): Update.
	* config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
	* config/rs6000/x-darwin (host-ppc-darwin.o): Update.
	* config/rs6000/t-rs6000 (rs6000-c.o): Update.
	(rs6000.o): Remove.
	* config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
	* config/m32c/t-m32c (m32c-pragma.o): Update.
	* config/ia64/t-ia64 (ia64-c.o): Update.
	* config/i386/x-mingw32 (host-mingw32.o): Update.
	* config/i386/x-i386 (driver-i386.o): Update.
	* config/i386/x-darwin (host-i386-darwin.o): Update.
	* config/i386/x-cygwin (host-cygwin.o): Update.
	* config/i386/t-nwld (nwld.o): Update.
	* config/i386/t-netware (netware.o): Update.
	* config/i386/t-interix (winnt.o): Update.
	* config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
	* config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
	msformat-c.o): Update.
	* config/bfin/t-bfin-linux (generated_files): Add
	linux-sysroot-suffix.h.
	* config/arm/t-wince-pe (pe.o): Update.
	* config/arm/t-strongarm-pe (pe.o): Update.
	* config/arm/t-pe (pe.o): Update.
	* config/arm/t-arm (arm-c.o): Update.
	* doc/install.texi (Prerequisites): Require make 3.80.
	* Makefile.in: Remove .o targets.
	(CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
	(OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
	(simple_generated_h, simple_generated_c): Move earlier.
	(generated_files): New variable.
	(TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
	TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
	BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
	ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
	REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
	CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
	CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
	INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
	PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
	TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
	DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
	VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
	(.c.o): Remove.
	(COMPILE.base, COMPILE): New variables.
	(%.o): New pattern rule.
	(ALL_HOST_OBJS): New variable.
	(xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
	(dummy-checksum.o, cc1-checksum.o): Remove.
	(DRIVER_SHLIB): New variable.
	(DRIVER_DEFINES): Use it.
	(gencondmd.c): Move out of build/.
	(s-conditions): Update.
	(BUILDCOMPILE.base, BUILDCOMPILE): New variables.
	(ALL_BUILD_OBJS): Likewise.
	(build/%.o): Use BUILDCOMPILE.
	(build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
	build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
	build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
	build/gencheck.o, build/gencodes.o, build/genconditions.o,
	build/genconfig.o, build/genconstants.o, build/genemit.o,
	build/genextract.o, build/genflags.o, build/genmddeps.o,
	build/genopinit.o, build/genoutput.o, build/genpeep.o,
	build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
	build/gen-protos.o, build/scan.o, build/fix-header.o,
	build/scan-decls.o): Simplify.
	(collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
	cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
	prefix.o, toplev.o): Reduce to variable setting.
	(libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
	($(out_object_file), gcc-options.o): New targets.
	($(ALL_HOST_OBJS)): New target.  Include dependency files.
	* configure: Rebuilt.
	* configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
	* doc/sourcebuild.texi (Front End Directory): Document new variable.

2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>

	* c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
	complain when we hit an error, return ERROR_MARK_NODE.

2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>

	* config/sh/constraints.md (Pso, Psz): New constraints.
	* config/sh/sh.c (print_operand): Add %V and %W operand codes.
	* config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.

2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>

	* config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
	* config/sh/sh.md (xorsi3_movrt, movrt): New insns.

2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>

	* config/sh/sh.md (prefetch): Add condition for SH2A target.
	(prefetch_sh2a): New.

2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
	    Naveen.H.S  <naveen.hs@kpitcummins.com>

	* config/sh/constraints.md (I28): New constraint.
	* config/sh/sh.c (broken_move): Add support for movi20s.
	* config/sh/sh.md (movsi_ie): Add the alternative for movi20s.

2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
	    Jayant Sonar  <Jayant.sonar@kpitcummins.com>
	    Naveen.H.S  <naveen.hs@kpitcummins.com>

	* config/sh/sh.c (SH_ATTRIBUTES): Define.
	(SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
	(print_operand): Handle resbank in %@ operand code.
	(sh_encode_section_info): New.
	(push_regs): Add conditions for resbank.
	(sh_expand_epilogue): Likewise.
	(sh_insert_attributes): Likewise.
	(sh_attribute_table): Likewise.
	(sh_handle_resbank_handler_attribute): New.
	(sh2a_handle_function_vector_handler_attribute): New.
	(sh2a_is_function_vector_call): New.
	(sh2a_get_function_vector_number): New.
	(sh2a_function_vector_p): New.
	(sh_cfun_resbank_handler_p): New.
	* config/sh/sh.md (calli): Emit jsr/n if possible.
	(calli_tbr_rel): New.
	(calli_pcrel): Emit jsr/n if possible.
	(return_i): Emit rts/n if possible.
	(call_valuei_tbr_rel): New.
	(call_valuei_pcrel): Add condition for SH2A target.
	(call_value): Likewise.
	* config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
	(sh2a_get_function_vector_number): Likewise.
	(sh2a_is_function_vector_call): Likewise.
	* doc/extend.texi: Document TBR relative addressing of SH2A.
	(resbank): Add description for SH2A.

2008-03-24  Richard Guenther  <rguenther@suse.de>

	PR c/22371
	* gimplify.c (gimplify_modify_expr): For frontend type-correct
	pointer assignments change conversions according to middle-end rules.
	(gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
	* configure.ac: Include type checking in yes.
	* configure: Regenerate.

2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* diagnostic.c (diagnostic_count_diagnostic): Delete.
	(diagnostic_report_diagnostic): Update. Handle ICEs here.

2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>

	* gthr-vxworks.h (UNUSED): Define.

2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.

2008-03-23  Zuxy Meng  <zuxy.meng@gmail.com>

	* doc/extend.texi (Function Attributes): Add missing comma in the
	example of the "alloc_size" attribute.

2008-03-23  Uros Bizjak  <ubizjak@gmail.com>

	Revert:
	2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-modes.def: Use 4 byte alignment on DI for
	32bit host.

	2008-03-19  Uros Bizjak  <ubizjak@gmail.com>

	PR target/35496
	* stor-layout.c (update_alignment_for_field): Set minimum alignment
	of the underlying type of a MS bitfield layout to the natural
	alignment of the type.

	2008-03-22  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (assign_386_stack_local): Align DImode slots
	to their natural alignment to avoid store forwarding stalls.

2008-03-22  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (verify_expr): Recurse again for invariant addresses.
	For PHI nodes verify the address is invariant.
	* tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
	(get_symbol_constant_value): Use is_gimple_min_invariant.
	(maybe_fold_stmt_indirect): Likewise.

2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR rtl-optimization/33927
	* Makefile.in (dse.o): Depend on $(TM_P_H).
	* expr.h (extract_low_bits): Declare.
	* expmed.c (extract_low_bits): New function.
	* rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
	* dse.c: Include tm_p.h.
	(find_shift_sequence): Remove the read_reg argument and return the
	read value.  Emit the instructions instead of returning them.
	Iterate on new_mode rather than calculating it each time.
	Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
	source to NEW_MODE and extract_low_bits to convert the shifted
	value to READ_MODE.
	(replace_read): Allow the load and store to have different mode
	classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
	or extraction instructions before trying the replacement.  Update
	dump-file code accordingly, avoiding use of REGNO (store_info->rhs).

2008-03-22  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (assign_386_stack_local): Align DImode slots
	to their natural alignment to avoid store forwarding stalls.

2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR target/27946
	* config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
	encouraging but not allowing gprs for input;
	change the input constraint to !f#r.
	(fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
	gprs for output;
	change the output constraint to !f#r.

2008-03-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/13958
	* config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
	corresponding post-reload splitters.
	("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
	when x87 FP math is selected.
	* config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
	New function prototype.
	* config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
	unreachable function to ease macroization of insn patterns.

2008-03-21  Martin Jambor  <mjambor@suse.cz>

	* tree-data-ref.c (dump_data_dependence_relation): Avoid data
	reference dumps if ddr is NULL or dependence is unknown.

2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
	unsigned extension into account.
	(ATOMIC_COMPARE_AND_SWAP): Likewise.
	(ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
	Do computations on a scratch register.

2008-03-21  Richard Guenther  <rguenther@suse.de>

	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
	Use is_gimple_min_invariant instead of TREE_INVARIANT.
	* tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
	* tree-ssa-dom.c (record_equality): Likewise.
	* tree-inline.c (copy_body_r): Likewise.
	* tree-ssa-pre.c (make_values_for_stmt): Remove test for
	TREE_INVARIANT.

2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (split_branches): Pass zero to	redirect_jump
	as 'delete_unused' argument.

2008-03-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
	special casing of constant qualifiers.
	* tree-ssa.c (useless_type_conversion_p_1): Instead do not
	care about them in general.
	* tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
	regardless of their type.
	(fold_stmt_r): Forcefully fold *& if we end up with that.

2008-03-20  Paul Brook  <paul@codesourcery.com>

	* config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
	* config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
	linker flags.
	* config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
	definition.
	(LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
	* config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.

2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>

	* common.opt (Wmudflap): New option.
	* tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
	(mx_register_decls): Likewise.
	(mudflap_finish_file): Likewise.
	* doc/invoke.texi: Document -Wno-mudflap.

2008-03-20  Kai Tietz  <kai.tietz@onevision.com>

	* c-format.c (replace_format_name_to_system_name): New.
	(cmp_attribs): New.
	(convert_format_name_to_system_name): New.
	(decode_format_attr): Add use of convert_format_name_to_system_name.
	(format_types_orig): Add gnu_ prefix to names.
	(check_format_info_main): Special treating of \0 escaped names for
	supporting multi-character format specifiers as I32, I64.
	(TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
	(gnu_target_overrides_format_attributes): New.
	* c-format.h: Add structure target_ovr_attr to hold
	system specific formatter names.
	* config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
	msformat-c.o file to c_target_objs and cxx_target_objs.
	* config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
	(TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
	(TARGET_N_FORMAT_TYPES): New.
	* config/i386/msformat-c.c: New.
	* config/i386/t-cygming: Add build rule for msformat-c.o.
	* doc/extend.texi: Add new format names gnu_* and ms_* and
	further details.
	* doc/tm.texi (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.

2008-03-20  Ira Rosen  <irar@il.ibm.com>

	* doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
	optimizations turned on under -O3.
	(ftree-vectorize): Add that the flag is turned on with -O3.

2008-03-20  Ben Elliston  <bje@au.ibm.com>

	* regmove.c (try_auto_increment): Fix spelling error in comment.
	* final.c (final_scan_insn): Likewise.

2008-03-20  Uros Bizjak  <ubizjak@gmail.com>

	PR target/14552
	* config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
	allocator preferences for "y" and "r" class registers.
	("*mov<mode>_internal"): Ditto.
	("*movv2sf_internal_rex64"): Ditto.
	("*movv2sf_internal"): Ditto.

2008-03-19  Michael Matz  <matz@suse.de>

	PR middle-end/35616
	* calls.c (expand_call): Check overlap of arguments with call
	address for sibcalls.

2008-03-19  Uros Bizjak  <ubizjak@gmail.com>

	PR target/35496
	* stor-layout.c (update_alignment_for_field): Set minimum alignment
	of the underlying type of a MS bitfield layout to the natural
	alignment of the type.

2008-03-19  Jan Hubicka  <jh@suse.cz>

	PR other/35094
	* toplev.c (decode_d_option): Handle all CPP flags.
	* tree-vrp.c: Update tree_pass descriptors.
	* regrename.c: Update tree_pass descriptors.
	* fwprop.c: Update tree_pass descriptors.
	* doc/invoke.texi: Remove documentation of dropped -d? flags.
	* tree-into-ssa.c: Update tree_pass descriptors.
	* tree-dump.c: Update tree_pass descriptors.
	* tree-complex.c: Update tree_pass descriptors.
	* tree-dump.h: Update tree_pass descriptors.
	* see.c: Update tree_pass descriptors.
	* cgraphbuild.c: Update tree_pass descriptors.
	* tracer.c: Update tree_pass descriptors.
	* tree-loop-distribution.c: Update tree_pass descriptors.
	* cgraph.c: Update tree_pass descriptors.
	* postreload-gcse.c: Update tree_pass descriptors.
	* postreload.c: Update tree_pass descriptors.
	* tree-ssa-loop-ch.c: Update tree_pass descriptors.
	* tree-tailcall.c: Update tree_pass descriptors.
	* tree-pass.h (tree_opt_pass): Rename to ...
	(opt_pass) ... this one; add "type" field and remove letter field.
	(gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
	(execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
	all_lowering_passes): Update declaration.
	* ipa-cp.c: Update tree_pass descriptors.
	* final.c: Update tree_pass descriptors.
	* omp-low.c: Update tree_pass descriptors.
	* tree-ssa-dse.c: Update tree_pass descriptors.
	* ipa-reference.c: Update tree_pass descriptors.
	* tree-ssa-uncprop.c: Update tree_pass descriptors.
	* auto-inc-dec.c: Update tree_pass descriptors.
	* reorg.c: Update tree_pass descriptors.
	* cgraphunit.c: Update tree_pass descriptors.
	* tree-ssa-copyrename.c: Update tree_pass descriptors.
	* tree-ssa-ccp.c: Update tree_pass descriptors.
	* df-core.c: Update tree_pass descriptors.
	* mode-switching.c: Update tree_pass descriptors.
	* tree-nomudflap.c: Update tree_pass descriptors.
	* modulo-sched.c: Update tree_pass descriptors.
	* ipa-pure-const.c: Update tree_pass descriptors.
	* cse.c: Update tree_pass descriptors.
	* web.c: Update tree_pass descriptors.
	* tree-stdarg.c: Update tree_pass descriptors.
	* tree-ssa-math-opts.c: Update tree_pass descriptors.
	* tree-ssa-dom.c: Update tree_pass descriptors.
	* tree-nrv.c: Update tree_pass descriptors.
	* tree-ssa-alias.c: Update tree_pass descriptors.
	* loop-init.c: Update tree_pass descriptors.
	* gimple-low.c: Update tree_pass descriptors.
	* ipa-inline.c: Update tree_pass descriptors.
	* tree-ssa-sink.c: Update tree_pass descriptors.
	* global.c: Update tree_pass descriptors.
	* ifcvt.c: Update tree_pass descriptors.
	* jump.c: Update tree_pass descriptors.
	* predict.c: Update tree_pass descriptors.
	* tree-ssa-loop.c: Update tree_pass descriptors.
	* recog.c: Update tree_pass descriptors.
	* dse.c: Update tree_pass descriptors.
	* tree-ssa-ifcombine.c: Update tree_pass descriptors.
	* tree-eh.c: Update tree_pass descriptors.
	* regmove.c: Update tree_pass descriptors.
	* local-alloc.c
	* function.c: Update tree_pass descriptors.
	* tree-vectorizer.c: Update tree_pass descriptors.
	* gcse.c: Update tree_pass descriptors.
	* ipa-type-escape.c: Update tree_pass descriptors.
	* tree-if-conv.c: Update tree_pass descriptors.
	* init-regs.c: Update tree_pass descriptors.
	* ipa.c: Update tree_pass descriptors.
	* tree-ssa-phiopt.c: Update tree_pass descriptors.
	* rtl-factoring.c: Update tree_pass descriptors.
	* lower-subreg.c: Update tree_pass descriptors.
	* bt-load.c: Update tree_pass descriptors.
	* tree-dfa.c: Update tree_pass descriptors.
	* except.c: Update tree_pass descriptors.
	* emit-rtl.c: Update tree_pass descriptors.
	* cfgexpand.c: Update tree_pass descriptors.
	* tree-cfgcleanup.c: Update tree_pass descriptors.
	* cfgcleanup.c: Update tree_pass descriptors.
	* tree-ssa-pre.c: Update tree_pass descriptors.
	* tree-sra.c: Update tree_pass descriptors.
	* tree-mudflap.c: Update tree_pass descriptors.
	* tree-ssa-copy.c: Update tree_pass descriptors.
	* cfglayout.c: Update tree_pass descriptors.
	* tree-ssa-forwprop.c: Update tree_pass descriptors.
	* tree-ssa-dce.c: Update tree_pass descriptors.
	* tree-ssa.c: Update tree_pass descriptors.
	* regclass.c: Update tree_pass descriptors.
	* integrate.c: Update tree_pass descriptors.
	* tree-optimize.c: Update tree_pass descriptors.
	* tree-ssa-phiprop.c: Update tree_pass descriptors.
	* tree-object-size.c: Update tree_pass descriptors.
	* combine.c: Update tree_pass descriptors.
	* tree-outof-ssa.c: Update tree_pass descriptors.
	* bb-reorder.c: Update tree_pass descriptors.
	* stack-ptr-mod.c: Update tree_pass descriptors.
	* var-tracking.c: Update tree_pass descriptors.
	* tree-profile.c: Update tree_pass descriptors.
	* tree-vect-generic.c: Update tree_pass descriptors.
	* reg-stack.c: Update tree_pass descriptors.
	* sched-rgn.c: Update tree_pass descriptors.
	* tree-ssa-structalias.c: Update tree_pass descriptors.
	* tree-cfg.c: Update tree_pass descriptors.
	* passes.c (current_pass): Update declaration.
	(finish_optimization_passes): Update.
	(all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
	(register_one_dump_file, register_dump_files_1, next_pass_1):
	Update arguments.
	(init_optimization_passes): Update handling of new types.
	(execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
	* ipa-struct-reorg.c: Update tree_pass descriptors.
	* tree-ssa-reassoc.c: Update tree_pass descriptors.
	* combine-stack-adj.c: Update tree_pass descriptors.
	* cfgrtl.c: Update tree_pass descriptors.
	* dce.c: Update tree_pass descriptors.
	* tree-ssanames.c: Update tree_pass descriptors.

2008-03-19  Richard Guenther  <rguenther@suse.de>

	PR middle-end/35609
	* tree-ssa.c (walk_data): New structure.
	(warn_uninitialized_var): If not always_executed warn with "maybe"
	instead of "is".
	(execute_early_warn_uninitialized): Compute post-dominators.
	Initialize always_executed before processing each basic block.

2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>

	PR target/35504
	* config/i386/i386.c (x86_this_parameter): Calculate correct location
	of "this" pointer when "regparm = N" or "fastcall" is in effect.

2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/include/texinfo.tex: Update to version 2008-03-17.10.

2008-03-18  Paolo Bonzini  <bonzini@gnu.org>

	* expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
	is true.
	(expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
	(expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
	is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
	target after ignore has been set, and move there also the commputation
	of subtarget and original_target.
	* langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
	(LANG_HOOKS_INITIALIZER): Remove it.
	* langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.

2008-03-18  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
	found an expression with constants, note that in the VN for the lhs.
	* tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
	fold them to constants if possible.  Run cleanup_cfg if done so.
	(execute_pre): Return todo.
	(do_pre): Likewise.
	(execute_fre): Likewise.
	* tree-ssa-forwprop.c (can_propagate_from): Allow propagation
	of constants.
	(get_prop_source_stmt): Look through pointer conversions.

2008-03-18  Jan Hubicka  <jh@suse.cz>

	* tree-pretty-print.c: Include predict.h.
	(dump_generic_node): Dump predictor.
	* tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
	* tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
	* gimple-low.c (lower_stmt): Likewise.
	* expr.c (expand_expr_real): Likewise.
	* predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
	them.
	(build_predict_expr, build_predict_expr): New.
	* predict.h (predictor_name, build_predict_expr): Update.
	* c-typeck.c (c_finish_bc_stmt): Add prediction.
	* gimplify.c (gimplify_expr): Add PREDICT_EXPR.
	* predict.def (PRED_CONTINUE): Update hitrate.
	* tree.def (PREDICT_EXPR): Define.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
	do not handle BIND_EXPR.
	* tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
	* tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
	* tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
	operands.

2008-03-18  Michael Matz  <matz@suse.de>

	* gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.

2008-03-18  Richard Guenther  <rguenther@suse.de>

	* tree-gimple.h (is_gimple_invariant_address): Declare.
	(is_gimple_constant): Likewise.
	* tree-gimple.c (is_gimple_constant): New function.
	(is_gimple_invariant_address): Likewise.
	(is_gimple_min_invariant): Implement in terms of is_gimple_constant
	and is_gimple_invariant_address.
	* tree-ssa-loop-niter.c (expand_simple_operations): Revert
	previous change.
	* tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
	an addressable base.

2008-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/35611
	* gimplify.c (gimplify_expr): Gimplify second operand of
	OMP_ATOMIC_LOAD.

2008-03-17  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/19637
	* fold-const.c (fold_unary): Remove restrictions of removing
	intermediate pointer-conversions (P2)(P1)P0.
	* tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
	conversion to void pointer.
	(get_maxval_strlen): Handle addresses of the form &(*p)[0].

2008-03-16  James E. Wilson  <wilson@tuliptree.org>

	PR debug/31510
	* dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
	emulated thread local variables.

2008-03-16  Richard Guenther  <rguenther@suse.de>

	PR middle-end/35607
	* tree-ssa-loop-niter.c (expand_simple_operations): Do not
	expand TREE_INVARIANT operations that are not gimple invariant.

2008-03-16  Hans-Peter Nilsson  <hp@axis.com>

	* doc/extend.texi (Alignment): Say that the ABI controls
	the __alignof__ for non-strict-alignment targets rather
	than being a recommendation.

2008-03-15  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
	annotations.
	(arm_output_fn_unwind): Mark functions that can not be unwound.

2008-03-15  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
	extension instructions.

2008-03-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (ccp_fold): Also read from constant values
	and fold constant aggregate refs.
	(fold_const_aggregate_ref): Handle string constants
	and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
	(evaluate_stmt): Simplify now that ccp_fold folds constant
	aggregate refs.

2008-03-15  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
	(extzv): Use gen_extzv_t2.
	(insv_t2, insv_zero, extv, extzv_t2): New patterns.

2008-03-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (get_symbol_constant_value): Export.
	(fold_const_aggregate_ref): Likewise.
	(get_value): Return NULL if we don't have any values.
	(ccp_finalize): Set const_val to NULL after freeing it.
	* tree-flow.h (get_symbol_constant_value): Declare.
	(fold_const_aggregate_ref): Likewise.
	* tree-ssa-sccvn.c (try_to_simplify): Use them.

2008-03-15  Richard Guenther  <rguenther@suse.de>

	PR middle-end/35593
	* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
	to not produce negative array indices if not allowed.  Add
	parameter to indicate that.
	(maybe_fold_offset_to_component_ref): Allow negative array
	indices only for the first member of a structure.
	(maybe_fold_offset_to_reference): Allow negative array indices.
	(maybe_fold_stmt_addition): Likewise.

2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
	    Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (avr_arch_types): Add avr6 entry.
	(avr_arch): Add ARCH_AVR6.
	(avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
	(initial_elimination_offset): Initialize and use 'avr_pc_size'
	instead of fixed value 2.
	(print_operand_address): Use gs() asm specifier instead of pm().
	(avr_assemble_integer): (Ditto.).
	(avr_output_addr_vec_elt): (Ditto.).
	(print_operand): Handle "!" code.
	* config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
	__AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
	(AVR_HAVE_EIJMP_EICALL): Define.
	(AVR_3_BYTE_PC): Redefine.
	(AVR_2_BYTE_PC): (Ditto.).
	(PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
	(LINK_SPEC): Add atmega2560 and atmega2561.
	(CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
	(crtm2561.o).
	* config/avr/avr.md (call_insn): Use eicall instead of icall
	for 3 byte PC devices.
	(call_value_insn): (Ditto.).
	(*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
	(indirect_jump): Use only for for 2 byte PC devices.
	(*tablejump): (Ditto.).
	(*indirect_jump_avr6): Add insn.
	(*tablejump_rjmp): Don't use for 3 byte PC devices.
	* config/avr/libgcc.S (__prologue_saves__): Use eijmp
	instead of ijmp for 3 byte PC devices.
	(__tablejump2__): (Ditto.).
	* config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
	(MULITLIB_DIRNAMES): (Ditto.).
	(MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.

2008-03-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
	"sse2_umulsidi3".  Use V1DI mode for operand 0.
	("mmx_psadbw"): Use V1DI mode for operand 0.
	* config/i386/i386-modes.def (V1SI): New vector mode.
	* config/i386/i386.c (struct builtin_description)
	[IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
	(v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
	(v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
	(ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
	v1di_ftype_v8qi_v8qi type.
	[__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.

	* doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
	__builtin_ia32_pmuludq]: Fix the mode of return value.

2008-03-15  Richard Guenther  <rguenther@suse.de>

	PR middle-end/35595
	* tree-ssa-pre.c (bitmap_find_leader): Handle expression
	being a PHI_NODE.

2008-03-14  Bob Wilson  <bob.wilson@acm.org>

	* doc/invoke.texi (Option Summary, Xtensa Options): Document
	-mserialize-volatile and -mno-serialize-volatile Xtensa options.
	* config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
	unless TARGET_SERIALIZE_VOLATILE is enabled.
	* config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
	* config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
	* config/xtensa/xtensa.opt (mserialize_volatile): New option.

2008-03-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34172
	* tree-flow.h (refs_may_alias_p): Declare.
	(get_single_def_stmt): Likewise.
	(get_single_def_stmt_from_phi): Likewise.
	(get_single_def_stmt_with_phi): Likewise.
	* tree-dfa.c (refs_may_alias_p): New function.
	(get_single_def_stmt): Likewise.
	(get_single_def_stmt_from_phi): Likewise.
	(get_single_def_stmt_with_phi): Likewise.
	* tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
	(vn_reference_lookup_1): New helper function.
	(vn_reference_lookup): Walk the virtual use-def chain to
	continue searching for a match if the def does not alias the
	reference we are looking for.

2008-03-14  David Edelsohn  <edelsohn@gnu.org>

	* doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
	archive and Perzl.  Update The Written Word listing.

2008-03-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34043
	PR tree-optimization/33989
	* tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
	when doing FRE.
	(bitmap_find_leader): Use extra argument to verify dominance
	relationship inside a basic-block.
	(can_PRE_operation): Add VIEW_CONVERT_EXPR.
	(find_leader_in_sets): Adjust.
	(create_component_ref_by_pieces): Take extra argument for
	dominance check, handle lookup failures.
	(find_or_generate_expression): Likewise.
	(create_expression_by_pieces): Likewise.
	(insert_into_preds_of_block): Adjust.
	(create_value_expr_from): If asked for, verify all operands
	are in the blocks AVAIL_OUT set.
	(make_values_for_stmt): Check for SSA_NAMEs that are life
	over an abnormal edge.
	(compute_avail): Remove such check.
	(do_SCCVN_insertion): New function.
	(eliminate): If we do not find a leader suitable for replacement
	insert a replacement expression from SCCVN if available.
	* tree-ssa-sccvn.h (run_scc_vn): Update prototype.
	(struct vn_ssa_aux): Add needs_insertion flag.
	* tree-ssa-sccvn.c (may_insert): New global flag.
	(copy_reference_ops_from_ref): Value-number union member access
	based on its size, not type and member if insertion is allowed.
	(visit_reference_op_load): For a weak match from union type
	punning lookup a view-converted value and insert a SSA_NAME
	for that value if that is not found.
	(visit_use): Make dumps shorter.  Do not disallow value numbering
	SSA_NAMEs that are life over an abnormal edge to constants.
	(free_scc_vn): Release inserted SSA_NAMEs.
	(run_scc_vn): New flag to specify whether insertion is allowed.
	Process SSA_NAMEs in forward order.
	* tree-ssa-loop-im.c (for_each_index): Handle invariant
	ADDR_EXPRs inside VIEW_CONVERT_EXPR.
	* fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
	pointer type to/from integral types that do not change the
	precision to regular conversions.

2008-03-13  Uros Bizjak  <ubizjak@gmail.com>

	* doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
	__builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
	__builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
	__builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
	input arguments and the mode of return value.  Built-in functions
	that operate on whole 64-bit MMX register now use V1DI mode.

2008-03-13  Alon Dayan  <alond@il.ibm.com>
	    Olga Golovanevsky  <olga@il.ibm.com>

	PR tree-optimization/35041
	* ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
	to locate the right position in a statement.

2008-03-13  Uros Bizjak  <ubizjak@gmail.com>

	PR target/34000
	PR target/35553
	* config/i386/xmmintrin.h:  Change all static inline functions to
	extern inline and add __gnu_inline__ attribute.
	* config/i386/bmintrin.h: Ditto.
	* config/i386/smmintrin.h: Ditto.
	* config/i386/tmmintrin.h: Ditto.
	* config/i386/mmintrin-common.h: Ditto.
	* config/i386/ammintrin.h: Ditto.
	* config/i386/emmintrin.h: Ditto.
	* config/i386/pmmintrin.h: Ditto.
	* config/i386/mmintrin.h: Ditto.
	* config/i386/mm3dnow.h: Ditto.

2008-03-13  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/35185
	* omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
	(lower_omp_2): New function.
	(lower_omp_1, lower_omp): Rewritten.

2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>

	PR 35054
	* doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
	with the phrase "Microsoft Windows compilers".
	(Push/Pop Macro Pragmas): New subsection. Document
	#pragma push_macro and pragma pop_macro.

2008-03-12  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (output_move_double): Prefer LDRD to LDM.

2008-03-12  Paul Brook  <paul@codesourcery.com>

	* config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
	(thumb2_alusi3_short): Exclude PLUS and MINUS.
	(thumb2_addsi_shortim): Rename ...
	(thumb2_addsi_short): ... to this.  Allow register operands.
	(thumb2_subsi_short): New pattern.
	(thumb2_one_cmplsi2_short,
	thumb2_negsi2_short): New patterns and peepholes.

2008-03-12  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.

2008-03-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (int_cond): New code iterator.
	(fp_cond): Ditto.
	("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
	sge, sgeu, sle and sleu expanders usign int_cond code iterator.
	("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
	sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
	("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
	bge, bgeu, ble and bleu expanders usign int_cond code iterator.
	("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
	bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.

2008-03-12  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
	instead of {arm,thumb}_compute_save_reg_mask.
	(output_return_instruction): Ditto.
	(thumb_unexpanded_epilogue): Ditto.
	(thumb1_expand_prologue): Ditto.
	(thumb1_output_function_prologue): Ditto.
	(arm_set_return_address): Ditto.
	(thumb_set_return_address): Ditto.
	(arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
	regs to achieve stack alignment.
	(thumb1_compute_save_reg_mask): Fix compiler warning.
	(arm_output_epilogue): Use offsets->saved_regs_mask.
	Adjust stack pointer by poping call clobered registers.
	(arm_expand_prologue): Use offsets->saved_regs_mask.
	Adjust stack pointer by pushing extra registers.
	* config/arm.h (arm_stack_offsets): Add saved_regs_mask.

2008-03-12  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-opt/35422
	* fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
	conversion to the operands of a multiplication.

2008-03-12  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
	(tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
	* timevar.def (TV_TREE_PHIPROP): Add.
	* tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
	pass description.  Use TV_TREE_PHIPROP.
	* tree-ssa-forwprop.c: Remove phiprop code.

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

	PR middle-end/35549
	* omp-low.c (maybe_lookup_decl): Constify first argument.
	(use_pointer_for_field): Change last argument from bool to
	omp_context *.  Disallow shared copy-in/out in nested
	parallel if decl is shared in outer parallel too.
	(build_outer_var_ref, scan_sharing_clauses,
	lower_rec_input_clauses, lower_copyprivate_clauses,
	lower_send_clauses, lower_send_shared_vars): Adjust callers.

2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
	    Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.c (free_stmt_vec_info): New function.
	(destroy_loop_vec_info): Move code to free_stmt_vec_info().
	Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
	* tree-vectorizer.h (free_stmt_vec_info): Declare.
	* tree-vect-transform.c (vectorizable_conversion): Free
	vec_oprnds0 if it was allocated.
	(vect_permute_store_chain): Remove unused VECs.
	(vectorizable_store): Free VECs that are allocated in the..
	function.
	(vect_transform_strided_load, vectorizable_load): Likewise.
	(vect_remove_stores): Simplify the code.
	(vect_transform_loop): Move code to vect_remove_stores().
	Call vect_remove_stores() and free_stmt_vec_info().

2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
	TARGET_HPUX.  Revise comment.
	(TARGET_LONG_PIC_PCREL_CALL): Revise comment.
	* pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
	Use sr4 variant of `be' instruction when not generating PIC code.
	(attr_length_call): Adjust for above change.

2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* ipa-reference.c (static_execute): Remove module_statics_const and
	associated setting code.

2008-03-11  Uros Bizjak  <ubizjak@gmail.com>

	PR target/35540
	* config/i386/i386.md (paritysi2, paritydi2): Use register_operand
	predicate for operand 1.
	(paritysi2_cmp): Use register_operand predicate for operand 2.
	Use earlyclobber modifier for operand 1.  Remove support for
	memory operands.
	(paritydi2_cmp): Use register_operand predicate for operand 3.
	Use earlyclobber modifier for operand 1.  Remove support for
	memory operands.

2008-03-11  Paul Brook  <paul@codesourcery.com>
	    Vladimir Prus  <vladimir@codesourcery.com>

	* config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
	(arm_compute_save_reg0_reg12_mask): Always
	check if register 11 must be saved.  Always safe hard frame pointer
	when frame_pointer_needeed.
	(arm_compute_save_reg_mask): Save IP and PC
	only with apcs frames.
	(arm_output_epilogue): Adjust Thumb2 codepath to
	be also invoked and work for ARM non-apcs frames.
	(arm_expand_prologue): Don't bother saving IP
	for non-apcs frame, since it's not clobbered by
	prologue code.  Implement non-apcs frame
	layout.

2008-03-11  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/35281
	* expr.c (convert_move): Use a new pseudo for the intermediate
	from_mode->word_mode result.

2008-03-11  Paolo Bonzini  <bonzini@gnu.org>

	* langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
	* langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
	* toplev.c (compile_file): Don't call it.

2008-03-11  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/35526
	* expr.c (store_expr): Call emit_block_move if the mode
	of "temp" RTX is BLKmode.

2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
	    Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/31358
	* tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
	the step with a NULL_TREE.
	* tree-ssa-loop-ivopts.c (find_bivs): Convert the step
	to sizetype if type is a pointer type.
	(add_candidate_1): Don't convert the base and step to
	the generic type if the orginal type is a pointer type.
	(add_iv_value_candidates): Use sizetype for the step
	if type is a pointer type.
	(cand_value_at): Likewise.
	* tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
	for pointer types.
	* tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
	Don't convert the tem affine to the type.
	(add_elt_to_tree): Use sizetype for the step if a pointer.
	Use POINTER_PLUS_EXPR for pointers.
	(aff_combination_to_tree): Use sizetype for the step if a
	pointer.

2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>

	* config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
	Remove commutativity hint.

2008-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR c/35438
	PR c/35439
	* c-parser.c (c_parser_omp_threadprivate): Don't add vars with
	errorneous type.  Check that v is a VAR_DECL.

	PR middle-end/35099
	* tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.

2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR tree-optimization/35494
	* tree-ssa-ccp.c (get_symbol_constant_value): Check if value
	may be overriden at link and run time.

2008-03-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34677
	* tree-ssa-pre.c (modify_expr_node_pool): Remove.
	(poolify_tree): Likewise.
	(modify_expr_template): Likewise.
	(poolify_modify_stmt): Likewise.
	(insert_fake_stores): Handle all component-ref style stores
	in addition to INDIRECT_REF.  Also handle complex types.
	Do not poolify the inserted load.
	(realify_fake_stores): Do not rebuild the tree but only
	make it a SSA_NAME copy.
	(init_pre): Remove initialzation of modify_expr_template.
	Do not allocate modify_expr_node_pool.
	(fini_pre): Do not free modify_expr_node_pool.

2008-03-10  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
	to avoid conflicts.

2008-03-10  Paul Brook  <paul@codesourcery.com>
	    Mark Shinwell  <shinwell@codesourcery.com>

	* config/arm/cortex-r4.md: New.
	* config/arm/thumb2.md (divsi3, udivsi3): Annotate with
	insn attributes.
	* config/arm/arm.md: Include cortex-r4.md.
	(insn): Add smmls, sdiv and udiv values.
	(generic_sched): Don't use generic scheduling for Cortex-R4.
	(arm_issue_rate): New function.
	(TARGET_SCHED_ISSUE_RATE): Define.

2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/invoke.texi (-ftree-loop-distribution): Add an example.

2008-03-10  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (get_sccvn_value): Simplify.
	(compute_avail): Do not add stmt uses to AVAIL_OUT.

2008-03-10  Paolo Bonzini  <bonzini@gnu.org>

	* langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
	Set default to true.

2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* c.opt (Wsynth): Deprecate.
	* doc/invoke.texi (Option Summary, Warning Options): Document
	-Wno-format-contains-nul.

2008-03-09  Uros Bizjak  <ubizjak@gmail.com>

	PR target/35496
	* config/i386/i386.c (ix86_constant_alignment): Compute alignment using
	ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.

2008-03-09  Ira Rosen  <irar@il.ibm.com>

	* config/rs6000/rs6000.c (builtin_description): Rename vector
	left shift operations.
	* config/rs6000/altivec.md (UNSPEC_VSL): Remove.
	(altivec_vsl<VI_char>): Rename to ...
	(ashl<mode>3): ... new name.
	(mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
	gen_ashlv4si3.
	(absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.

2008-03-08  Richard Guenther  <rguenther@suse.de>

	* coverage.h (tree_coverage_counter_addr): Declare.
	* coverage.c (tree_coverage_counter_addr): New function.
	* tree-profile.c (tree_gen_edge_profiler): Unshare counter
	before using again.
	(tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
	(tree_gen_one_value_profiler): Likewise.
	(tree_gen_ic_profiler): Likewise.
	(tree_gen_average_profiler): Likewise.
	(tree_gen_ior_profiler): Likewise.

2008-03-08  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
	(vn_binary_op_insert): Likewise.
	(vn_unary_op_lookup): Likewise.
	(vn_unary_op_insert): Likewise.
	(vn_nary_op_lookup): Declare.
	(vn_nary_op_insert): Likewise.
	* tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
	and binary hashes, use a single obstack for unary_op_pool
	and binary_op_pool.
	(struct vn_binary_op_s, struct vn_unary_op_s): Replace with
	a single struct vn_nary_op_s.  Store tree code length and
	a variable number of operands.
	(struct vn_reference_op_struct): Remove unused op2.
	(vn_reference_op_eq): Do not compare op2.
	(vn_reference_op_compute_hash): Do not compute hash of op2.
	(vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
	(vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
	with vn_nary_op_compute_hash.
	(vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
	(vn_unary_op_lookup, vn_binary_op_lookup): Replace with
	vn_nary_op_lookup.
	(vn_unary_op_insert, vn_binary_op_insert): Replace with
	vn_nary_op_insert.
	(visit_unary_op): Call nary functions.
	(visit_binary_op): Likewise.
	(process_scc): Adjust for struct vn_tables_s changes.
	(allocate_vn_table): Likewise.
	(free_vn_table): Likewise.
	* tree-vn.c (vn_add): Call nary functions.
	(vn_lookup): Likewise.

2008-03-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/35498
	* config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
	wdst back after sync_compare_and_swapqhi_internal.

2008-03-08  Uros Bizjak  <ubizjak@gmail.com>

	PR target/22152
	* config/i386/i386-modes.def (V1DI): New vector mode.
	* config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
	* config/i386/mmx.md (MMXMODEI8): New mode iterator.
	(MMXMODE248): Ditto.
	(MMXMODE): Add V1DI mode.
	(mmxvecsize): Change DI mode to V1DI mode.
	("mov<mode>): Use MMXMODEI8 mode iterator.
	("*mov<mode>_internal_rex64"): Ditto.
	("*mov<mode>_internal"): Ditto.
	("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
	("mmx_sub<mode>3"): Ditto.
	("mmx_adddi3"): Remove insn pattern.
	("mmx_subdi3"): Ditto.
	("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
	("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
	("mmx_ashl<mode>3"): Ditto.
	("mmx_lshrdi3"): Remove insn pattern.
	("mmx_ashldi3"): Ditto.
	* config/i386/i386.c (classify_argument): Handle V1DImode.
	(function_arg_advance_32): Ditto.
	(function_arg_32): Ditto.
	(struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
	mmx_addv1di3 insn pattern.
	[IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
	[IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
	IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
	IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
	Remove definitions of built-in functions.
	(V1DI_type_node): New node.
	(v1di_ftype_v1di_int): Ditto.
	(v1di_ftype_v1di_v1di): Ditto.
	(v2si_ftype_v2si_si): Ditto.
	(v4hi_ftype_v4hi_di): Remove node.
	(v2si_ftype_v2si_di): Ditto.
	(ix86_init_mmx_sse_builtins): Handle V1DImode.
	(__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
	Redefine builtins using def_builtin_const with *_ftype_*_int node.
	(__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
	Add new builtins using def_builtin_const.
	(ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
	IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
	IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
	* config/i386/mmintrin.h (__v1di): New typedef.
	(_mm_add_si64): Cast arguments to __v1di type.
	(_mm_sub_si64): Ditto.
	(_mm_sll_pi16): Cast __count to __v4hi type.
	(_mm_sll_pi32): Cast __count to __v2si type.
	(_mm_sll_si64): Cast arguments to __v1di type.
	(_mm_srl_pi16): Cast __count to __v4hi type.
	(_mm_srl_pi32): Cast __count to __v2si type.
	(_mm_srl_si64): Cast arguments to __v1di type.
	(_mm_sra_pi16): Cast __count to __v4hi type.
	(_mm_sra_pi32): Cast __count to __v2si type.
	(_mm_slli_pi16): Use __builtin_ia32_psllwi.
	(_mm_slli_pi32): Use __builtin_ia32_pslldi.
	(_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
	(_mm_srli_pi16): Use __builtin_ia32_psrlwi.
	(_mm_srli_pi32): Use __builtin_ia32_psrldi.
	(_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
	(_mm_srai_pi16): Use __builtin_ia32_psrawi.
	(_mm_srai_pi32): Use __builtin_ia32_psradi.
	* config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
	* doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
	__builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
	__builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.

2008-03-07  Joseph Myers  <joseph@codesourcery.com>

	* doc/include/texinfo.tex: Update to version 2008-03-07.10.

2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>

	PR target/35373
	* config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
	reg+const addressing for Altivec modes.  Don't generate reg+reg
	addressing for TFmode or TDmode quantities.

2008-03-07  Paolo Bonzini  <bonzini@gnu.org>

	* c-common.c (vector_types_convertible_p): Call langhook
	instead of comptypes.

2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR tree-opt/35402
	* tree-ssa-ccp.c (get_symbol_constant_value): Handle
	integral and scalar float variables which have a
	NULL DECL_INITIAL.

2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>

	* dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
	dwarf_register_span hook when emitting unwind information for
	register-to-memory saves.
	* config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
	(rs6000_frame_related): Remove call to spe_synthesize_frame.

2008-03-06  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
	for the same VAR_DECL.

2008-03-06  Tom Tromey  <tromey@redhat.com>

	* treelang: Delete.
	* doc/standards.texi (Standards): Don't mention treelang.
	* doc/invoke.texi (Overall Options): Don't mention treelang.
	* doc/install.texi (Prerequisites): Don't mention bison or
	treelang.
	(Configuration): Don't mention treelang.
	(Building): Likewise.
	* doc/frontends.texi (G++ and GCC): Don't mention treelang.

2008-03-06  Paolo Bonzini  <bonzini@gnu.org>

	* simplify-rtx.c (simplify_subreg): Remove useless shifts from
	word-extractions out of a multi-word object.

2008-03-06  Richard Guenther  <rguenther@suse.de>

	* tree.def (BIT_FIELD_REF): Constrain result type and its precision.
	* tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
	result type and precision.
	* expr.c (get_inner_reference): Set unsignedp based on the result
	type of BIT_FIELD_REF.
	* tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
	* tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
	(try_instantiate_multiple_fields): Likewise.  Use the correct type
	for BIT_FIELD_REF.
	(sra_build_assignment): Likewise.
	(sra_build_elt_assignment): Likewise.
	(sra_explode_bitfield_assignment): Likewise.
	* print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
	* tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
	set BIT_FIELD_REF_UNSIGNED.
	(vectorizable_load): Likewise.

2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>

	* cse.c (cse_extended_basic_block): Invalidate artificial defs
	at bb start.

2008-03-06  Richard Guenther  <rguenther@suse.de>

	* alias.c (struct alias_set_entry): Move has_zero_child field
	to pack with alias_set.

2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-modes.def: Use 4 byte alignment on DI for
	32bit host.

2008-03-05  Ian Lance Taylor  <iant@google.com>

	* alias.h (alias_set_type): Change from HOST_WIDE_INT to int.

2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* fwprop.c (update_df): Support width and offset parameters of
	df_ref_create.
	* ra-conflict.c (mark_reg_store, clear_reg_in_live,
	global_conflicts): Change DF_REF_EXTRACT to either
	DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
	DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
	* df-scan.c (df_ref_record, df_defs_record,
	df_ref_create_structure, df_def_record_1, df_uses_record,
	df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
	df_bb_refs_collect, df_entry_block_defs_collect,
	df_exit_block_uses_collect): Support new width and offset fields.
	(ref_extract_pool): New storage pool.
	(df_free_ref): New function.
	(df_reg_chain_unlink, df_free_collection_rec,
	df_sort_and_compress_refs): Call df_free_ref.
	(df_ref_equal_p, df_ref_compare): Compare offset and width fields
	of df_ref_extract.
	(df_ref_create_structure): Allocate df_ref_extract if offset and
	width fields are used.
	(df_def_record_1): Get offset and width from ZERO_EXTRACT.
	(df_uses_record): Get offset and width from ZERO_EXTRACT
	and SIGN_EXTRACT.
	* global.c (build_insn_chain): Change DF_REF_EXTRACT to either
	DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
	DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
	* df.h (df_ref_flags): Change DF_REF_EXTRACT to either
	DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
	DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
	(df_ref_extract): New structure.
	(DF_REF_WIDTH, DF_REF_OFFSET): New macros.
	(df_ref_create): Add width and offset parameters.

2008-03-05  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (get_constraint_for_component_ref):
	Use ranges_overlap_p.
	(offset_overlaps_with_access): Rename
	to ranges_overlap_p and move ...
	* tree-flow-inline.h (ranges_overlap_p): ... here.

	* tree.h (get_inner_reference, handled_component_p): Update
	comments.

	* tree.h (record_component_aliases, get_alias_set,
	alias_sets_conflict_p, alias_sets_must_conflict_p,
	objects_must_conflict_p): Move declarations ...
	* alias.h (record_component_aliases, get_alias_set,
	alias_sets_conflict_p, alias_sets_must_conflict_p,
	objects_must_conflict_p): ... here.
	Include coretypes.h.
	* Makefile.in (ALIAS_H): Add coretypes.h dependency.

2008-03-05  Aldy Hernandez  <aldyh@redhat.com>

	* cfg.c: Include tree-flow.h.
	(remove_edge_raw): Call redirect_edge_var_map_clear.
	(redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
	* tree-flow-inline.h (redirect_edge_var_map_def): New.
	(redirect_edge_var_map_result): New.
	* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
	PENDING_STMT use with redirect_edge_var_map_*.
	* tree-ssa.c (edge_var_maps): New definition.
	(redirect_edge_var_map_add): New.
	(redirect_edge_var_map_clear): New.
	(redirect_edge_var_map_dup): New.
	(redirect_edge_var_map_vector): New.
	(redirect_edge_var_map_destroy): New.
	(ssa_redirect_edge): Replace PENDING_STMT use with
	redirect_edge_var_map_*.
	(flush_pending_stmts): Same.
	(delete_tree_ssa): Destroy edge var map.
	* tree-flow.h (struct _edge_var_map): New.
	Define edge_var_map vector type.
	Declare redirect_edge_var_map_* prototypes.
	* Makefile.in (cfg.o): Depend on TREE_FLOW_H.
	* tree-cfg.c (reinstall_phi_args): Replace
	PENDING_STMT use with redirect_edge_var_map_*.

2008-03-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/35472
	* tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
	whose single use_stmt has a overlapping set of loaded and
	stored symbols as that use_stmt might be a noop assignment then.

2008-03-05  Joel Sherrill  <joel.sherrill@oarcorp.com>

	* gthr-rtems.h: Implement __gthread_mutex_destroy.

2008-03-05  Richard Guenther  <rguenther@suse.de>

	PR c++/35336
	* tree.def (BIT_FIELD_REF): Document that operands 1 and 2
	should be constants.
	* tree-cfg.c (verify_expr): Verify it.
	* fold-const.c (fold_truthop): Remove code generating
	BIT_FIELD_REFs of structure bases.
	(fold_binary): Likewise.
	(fold_ternary): Position and size of BIT_FIELD_REFs are
	always host integers.
	(make_bit_field_ref): Remove.
	(optimize_bit_field_compare): Remove.
	(all_ones_mask_p): Remove.

2008-03-05  Gabor Loki  <loki@gcc.gnu.org>

	PR gcc/33009
	* rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
	(split_block_and_df_analyze): New. Split basic block and rebuild
	dataflow.
	(block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
	SPLIT_BLOCK.
	(split_pattern_seq): Likewise.
	(erase_matching_seqs): Likewise.
	(split_pattern_seq): Skip return insn in case of REG_NORETURN note.

2008-03-04  Geoff Keating  <geoffk@apple.com>

	* fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
	declaration and code.
	(tree_invalid_nonnegative_warnv_p): Likewise.

2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>

	* doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
	examples.  Truncate option-names then causing overfull hbox.

2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/35222
	* configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
	on hpux10.
	* configure: Rebuilt.

2008-03-04  Rafael Espíndola  <espindola@google.com>

	* fold-const.c (tree_simple_nonnegative_warnv_p): New.
	(tree_unary_nonnegative_warnv_p): New.
	(tree_binary_nonnegative_warnv_p): New.
	(tree_single_nonnegative_warnv_p): New.
	(tree_invalid_nonnegative_warnv_p): New.
	(tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.

2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 28322
	* opts.c (handle_option): Postpone 'unknown option' errors only for
	warning options.

2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/35453
	* config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
	(_SIDD_XXX): This.

2008-03-04  Rafael Espíndola  <espindola@google.com>

	* fold-const.c (tree_unary_nonzero_warnv_p): New.
	(tree_binary_nonzero_warnv_p): New.
	(tree_single_nonzero_warnv_p): New.
	(tree_expr_nonzero_warnv_p): Redefine using the new functions.

2008-03-04  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/35456
	* fold-const.c (fold_cond_expr_with_comparison): Prevent
	transformations for modes that have signed zeros.
	* ifcvt.c (noce_try_abs): Ditto.

2008-03-04  Joseph Myers  <joseph@codesourcery.com>

	* config/i386/i386.c (override_options): Force
	-maccumulate-outgoing-args on if TARGET_STACK_PROBE.

2008-03-04  Jan Hubicka  <jh@suse.cz>

	PR c++/35262
	* ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
	in last commit.

2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
	label to probe the stack.

2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>

	* gthr-win32.h [__GTHREAD_HIDE_WIN32API]
	(__gthr_win32_mutex_destroy): Declare.
	[__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
	__gthr_win32_mutex_destroy.
	* config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.

2008-03-03  Jan Hubicka  <jh@suse.cz>

	PR c++/35262
	* ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
	aggressive on inlining cold calls.

2008-03-03  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
	struct copies into the expression table.
	(simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
	(try_to_simplify): Likewise.
	* fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
	integral and pointer arguments which do not change the
	precision to NOP_EXPRs.
	* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
	VIEW_CONVERT_EXPR case.

2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
	defined in a loop at depth 0 is invariant.
	* tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
	* tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
	be called at loop depth 0.

2008-03-02  Jakub Jelinek  <jakub@redhat.com>

	PR driver/35420
	* gcc.c (process_command): Update copyright notice dates.
	* gcov.c (print_version): Likewise.
	* gcov-dump.c (print_version): Likewise.
	* mips-tfile.c (main): Likewise.
	* mips-tdump.c (main): Likewise.

2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 24924
	* c-common.c (flag_permissive): Delete.
	(constant_expression_warnings): Check flags first.
	(constant_expression_error): New.
	* c-common.h (flag_permissive): Delete.
	(constant_expression_error): Declare.
	* flags.h (flag_permissive): Declare. Update description.
	* diagnostic.c (pedwarn): Update.
	(permerror): New.
	* diagnostic.h (pedantic_error_kind): Rename as pedantic_warning_kind.
	(permissive_error_kind): New.
	* toplev.c (flag_permissive): Define. Update description.
	* toplev.h (permissive_error_kind): Declare.
	* c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
	(pedwarn_c90): Use pedantic_warning_kind.
	* c-opts.c (c_common_post_options): flag_permissive does not affect
	flag_pedantic_errors.

2008-03-02  Joseph Myers  <joseph@codesourcery.com>

	* libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
	__subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
	__absvsi2, __absvDI2): Use unsigned arithmetic.

2008-03-02  Andi Kleen  <ak@suse.de>
	    Richard Guenther  <rguenther@suse.de>

	* struct-equiv.c: Remove file.
	* cfg_cleanup.c (condjump_equiv_p): Remove.
	* Makefile.in (OBJS-common): Remove struct-equiv.o.
	(struct-equiv.o): Remove rule.
	* basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
	insns_match_p, struct_equiv_block_eq, struct_equiv_init,
	rtx_equiv_p, condjump_equiv_p): Remove prototypes.

2008-03-01  Alexandre Oliva  <aoliva@redhat.com>

	* ifcvt.c (noce_process_if_block): Try to handle only the then
	block if the else block exists but isn't suitable.

2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>

	PR gcc/35063
	* gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
	* gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
	regression from previous patch.

2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>

	PR gcc/35063
	* gthr.h: Add __gthread_mutex_destroy as a function that must be
	implemented.
	* gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
	* gthr-single.h (__gthread_mutex_destroy): Likewise.
	* gthr-rtems.h (__gthread_mutex_destroy): Likewise.
	* gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
	* gthr-nks.h (__gthread_mutex_destroy): Likewise.
	* gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
	* gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
	(__gthread_mutex_destroy_function): Rename to
	__gthread_mutex_destroy.
	* gthr-dce.h (__gthread_mutex_destroy): Call
	pthread_mutex_destroy.
	* gthr-tpf.h (__gthread_mutex_destroy): Likewise.
	* gthr-posix.h (__gthread_mutex_destroy): Likewise.
	* gthr-posix95.h (__gthread_mutex_destroy): Likewise.

2008-03-01  Alexandre Oliva  <aoliva@redhat.com>

	* df-scan.c (df_ref_chain_change_bb): Simplify.
	(df_insn_change_bb): Add new_bb argument.  Simplify.  Call
	set_block_for_insn if there's any change.
	* df.h ((df_insn_change_bb): Fix prototype.
	* cfgrtl.c (update_bb_for_insn_chain): Pass bb to
	df_insn_change_bb, don't call set_block_for_insn.
	* emit-rtl.c (reorder_insns): Likewise.
	* haifa-sched.c (move_insn): Likewise.

2008-03-01  Alexandre Oliva  <aoliva@redhat.com>

	* rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.

2008-03-01  Alexandre Oliva  <aoliva@redhat.com>

	* tree-flow-inline.h (next_readonly_imm_use): Return
	NULL_USE_OPERAND_P after the end.

2008-03-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/35411
	* tree-sra.c (sra_build_assignment): Split conversion to
	final type to a separate statement if we are not assigning
	to a register.

2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>

	* fold-const.c (fold_convertible_p): Correct the logic to follow
	that in fold_convert().

2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/35315
	* tree-inline.c (build_duplicate_type): When we make a
	duplicate type, make it unique in the canonical types system.

2008-02-29  Tom Tromey  <tromey@redhat.com>

	* toplev.c (input_file_stack, input_file_stack_tick, fs_p,
	input_file_stack_history, input_file_stack_restored): Remove.
	(push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
	* input.h (struct file_stack): Remove.
	(push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
	(input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
	Likewise.
	* diagnostic.h (struct diagnostic_context) <last_module>: Change
	type.
	(diagnostic_last_module_changed): Add 'map' argument.
	(diagnostic_set_last_function): Likewise.
	* diagnostic.c (undiagnostic_report_current_module): Iterate using
	line map, not input_file_stack.
	* c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.

2008-02-29  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md (arm_addsi3): Add r/k/n alternative.

2008-02-29  Paul Brook  <paul@codesourcery.com>

	* config/arm/ieee754-df.S (muldf3): Use RET macros.

2008-02-29  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
	vn_lookup_or_add.
	* tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
	value for comparing for a store match.
	(simplify_unary_expression): Do nothing for SSA_NAMEs.
	(try_to_simplify): Do not do a full-blown reference lookup.

2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_scalar_mode_supported_p): New function.
	(TARGET_SCALAR_MODE_SUPPORTED_P): Define.

	* config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.

2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-loop-linear.c (try_interchange_loops): Compare memory access
	strides against cache sizes.

2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_secondary_reload): Handle loading a float
	constant to fpul.

2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>

	* simplify-rtx.c (simplify_unary_operation_1): Extend the handling
	of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
	is smaller than the original promoted value.
	(simplify_subreg): If OP is a SUBREG, try to preserve its
	SUBREG_PROMOTED_VAR_P information.

2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>

	* tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
	(VN_INFO_GET): Allocate new objects on the obstack.
	(init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
	for rpo_numbers_temp, for consistency.
	(free_scc_vn): Free the obstack.

2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/invoke.texi: Document -ftree-loop-distribution.
	* tree-loop-distribution.c: New.
	* tree-pass.h (pass_loop_distribution): New.
	* graphds.h (struct graph): Add htab_t indices.
	* timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
	* tree-vectorizer.c (rename_variables_in_loop): Extern.
	(slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
	* tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
	* tree-data-ref.c (debug_data_dependence_relations): New.
	(dump_data_dependence_relation): Also print data references.
	(free_data_ref): Extern.
	(same_access_functions): Moved...
	(find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
	(dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
	debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
	struct rdg_vertex_info, rdg_vertex_for_stmt): New.
	(create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
	(stmts_from_loop): Skip LABEL_EXPR.
	(hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
	New.
	(build_rdg): Initialize rdg->indices htab.
	(free_rdg, stores_from_loop, ref_base_address,
	rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
	have_similar_memory_accesses_1, ref_base_address_1,
	remove_similar_memory_refs): New.
	* tree-data-ref.h: Depend on tree-chrec.h.
	(debug_data_dependence_relations, free_data_ref): Declared.
	(same_access_functions): ... here.
	(ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
	New.
	(struct rdg_vertex): Add has_mem_write and has_mem_reads.
	(RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
	RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
	(dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
	debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
	rdg_vertex_for_stmt): Declared.
	(struct rdg_edge): Add level.
	(RDGE_LEVEL): New.
	(free_rdg, stores_from_loop, remove_similar_memory_refs,
	rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
	Declared.
	(rdg_has_similar_memory_accesses): New.
	* tree-vect-analyze.c: Remove unused static decls.
	* lambda.h (dependence_level): New.
	* common.opt (ftree-loop-distribution): New.
	* tree-flow.h (mark_virtual_ops_in_bb,
	slpeel_tree_duplicate_loop_to_edge_cfg,
	rename_variables_in_loop): Declared.
	* Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
	(OBJS-common): Add tree-loop-distribution.o.
	(tree-loop-distribution.o): New rule.
	* tree-cfg.c (mark_virtual_ops_in_bb): New.
	(mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
	* passes.c (init_optimization_passes): Schedule pass_loop_distribution.

2008-02-28  Joseph Myers  <joseph@codesourcery.com>

	PR target/33963
	* tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
	other than structures and unions.

2008-02-28  Richard Guenther  <rguenther@suse.de>

	Revert:
	2008-02-26  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
	* tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
	(lookup_decl_from_uid): Declare.
	(remove_decl_from_map): Likewise.
	* tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
	* tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
	(decl_for_uid_map): New global hashtable mapping DECL_UID
	to the decl tree.
	(init_ttree): Allocate it.
	(insert_decl_to_uid_decl_map): New helper function.
	(make_node_stat): Insert new decls into the map.
	(copy_node_stat): Likewise.
	(lookup_decl_from_uid): New function.
	(remove_decl_from_map): Likewise.
	(print_decl_for_uid_map_statistics): New helper.
	(dump_tree_statistics): Call it.

	* tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
	(referenced_var_iterator): Adjust.
	(FOR_EACH_REFERENCED_VAR): Adjust.
	(FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
	(num_referenced_vars): Adjust.
	* tree-flow-inline.h (gimple_referenced_vars): Adjust.
	(first_referenced_var): Remove.
	(end_referenced_vars_p): Likewise.
	(next_referenced_var): Likewise.
	(referenced_var_iterator_set): New helper function.
	* tree-dfa.c (referenced_var_lookup): Adjust.
	(referenced_var_check_and_insert): Likewise.
	(remove_referenced_var): Likewise.
	* tree-ssa.c (verify_flow_insensitive_alias_info): Use
	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
	(verify_call_clobbering): Likewise.
	(verify_memory_partitions): Likewise.
	(init_tree_ssa): Allocate bitmap instead of hashtable for
	referenced_vars.
	(delete_tree_ssa): Adjust.
	* tree-ssa-alias.c (mark_aliases_call_clobbered): Use
	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
	(compute_tag_properties): Likewise.
	(set_initial_properties): Likewise.
	(find_partition_for): Likewise.
	(update_reference_counts): Likewise.
	(dump_may_aliases_for): Likewise.
	* tree-ssa-operands.c (add_virtual_operand): Likewise.
	(add_call_clobber_ops): Likewise.
	(add_call_read_ops): Likewise.
	(get_asm_expr_operands): Likewise.
	* tree-into-ssa.c (dump_decl_set): Likewise.
	(update_ssa): Likewise.
	* tree-sra.c (scan_function): Likewise.
	(decide_instantiations): Likewise.
	(scalarize_parms): Likewise.
	* tree-ssa-alias-warnings.c (build_reference_table): Likewise.
	(dsa_named_for): Likewise.
	* tree-ssa-structalias.c (update_alias_info): Likewise.
	(merge_smts_into): Likewise.

2008-02-27  David Daney  <ddaney@avtrex.com>

	PR target/34409
	* config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
	* config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
	* config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
	* config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
	* config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.

2008-02-27  Uros Bizjak  <ubizjak@gmail.com>

	PR target/25477
	* config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
	(BUILT_IN_NEXTTOWARD): Remove.
	(BUILT_IN_NEXTTOWARDF): Ditto.
	* config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
	alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.

2008-02-27  Tom Tromey  <tromey@redhat.com>

	* tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
	DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.

2008-02-27  Jan Beulich  <jbeulich@novell.com>

	* c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
	update the respective field on newdecl.

2008-02-27  Revital Eres  <eres@il.ibm.com>

	PR rtl-optimization/34999
	* bb-reorder.c (add_labels_and_missing_jumps): Do not handle
	crossing edges that ends with a call insn.
	(fix_up_fall_thru_edges): Handle crossing edges that ends with a
	call insn and clear the EDGE_CROSSING flag of the crossing edge
	when fixing fallthru edges.

2008-02-27  Richard Guenther  <rguenther@suse.de>

	PR middle-end/35390
	* fold-const.c (fold_unary): Return the correct argument,
	converted to the result type.

2008-02-27  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34971
	* expr.c (expand_expr_real_1): Assert on rotates that operate
	on partial modes.
	* fold-const.c (fold_binary): Use the types precision, not the
	bitsize of the mode if folding rotate expressions.  Build rotates
	only for full modes.

2008-02-27  Jakub Jelinek  <jakub@redhat.com>

	* c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
	and CPP_PRAGMA_EOL.
	* c-pragma.c (pragma_ns_name): New typedef.
	(registered_pp_pragmas): New variable.
	(c_pp_lookup_pragma): New function.
	(c_register_pragma_1): If flag_preprocess_only, do nothing
	for non-expanded pragmas, for expanded ones push pragma's
	namespace and name into registered_pp_pragmas vector.
	(c_invoke_pragma_handler): Register OpenMP pragmas even when
	flag_preprocess_only, don't register GCC pch_preprocess
	pragma if flag_preprocess_only.
	* c-opts.c (c_common_init): Call init_pragma even if
	flag_preprocess_only.
	* c-pragma.c (c_pp_lookup_pragma): New prototype.
	* config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
	cpp_register_pragma if flag_preprocess_only.

2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR c/28800
	* c-parser.c (c_parser_translation_unit): Warn for empty
	translation unit, not empty source file.

2008-02-26  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
	operand for Thumb-2.
	* config/arm/arm.h (reg_class): Add CORE_REGS.
	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
	(BASE_REG_CLASS): Use CORE_REGS.
	(PREFERRED_RELOAD_CLASS): Add STACK_REG.
	(REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
	(REGNO_OK_FOR_INDEX_P): Exclude SP.
	(ARM_REG_OK_FOR_INDEX_P): Always define.  Use
	ARM_REGNO_OK_FOR_INDEX_P.
	(ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
	* config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
	arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
	(ldm/stm peepholes): Ditto.
	* config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
	* config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
	* config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
	* config/arm/constraints.md: Enable "k" constraint on ARM.

2008-02-27  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/rs6000.c: Annotate cache line size field in all
	instances of struct processor_costs.

2008-02-26  David Edelsohn  <edelsohn@gnu.org>

	* dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
	dse2, gcse, if_conversion, if_after_combine, if_after_reload,
	jump_bypass): New counters.
	* cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
	* dce.c (gate_ud_dce): Same.
	(gate_fast_dce): Same.
	* dse.c (gate_dse1): New function.
	(gate_dse2): New function.
	(gate_dse): Merge results of new gate functions.
	* gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
	(gate_handle_jump_bypass): Add dbg_cnt.
	(gate_handle_gcse): Add dbg_cnt.
	* ifcvt.c (gate_handle_if_conversion): Same.
	(gate_handle_if_after_combine): Same.
	(gate_handle_if_after_reload): Same.
	* Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.

2008-02-26  Edmar Wienskoski  <edmar@freescale.com>

	* config/rs6000/rs6000.c (processor_costs): Update e300 cache
	line sizes.
	* doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.

2008-02-26  Jason Merrill  <jason@redhat.com>

	PR c++/35315
	* attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
	alone if it's the naming decl for the type's main variant.

2008-02-26  Tom Tromey  <tromey@redhat.com>

	* system.h (USE_MAPPED_LOCATION): Poison.
	* Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
	* tree-cfg.c (make_cond_expr_edges): Remove old location code.
	(make_goto_expr_edges): Likewise.
	(remove_bb): Likewise.
	(execute_warn_function_return): Likewise.
	* basic-block.h (struct edge_def) <goto_locus>: Change type to
	location_t.
	* c-common.c (fname_decl): Remove old location code.
	* tree-vect-transform.c (vect_finish_stmt_generation): Remove old
	location code.
	* rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
	variant.
	(ASM_INPUT_SOURCE_LOCATION): Likewise.
	(gen_rtx_ASM_INPUT): Likewise.
	(gen_rtx_ASM_INPUT_loc): Likewise.
	(get_rtx_asm_OPERANDS): Remove.
	* cfglayout.c (insn_locators_alloc): Remove old location code.
	(set_curr_insn_source_location): Likewise.
	(curr_insn_locator): Likewise.
	* print-tree.c (print_node): Remove old location code.
	* tree-mudflap.c (mf_varname_tree): Remove old location code.
	(mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
	* cfgexpand.c (expand_gimple_cond_expr): Don't use
	location_from_locus.
	(construct_exit_block): Remove old location code.
	* emit-rtl.c (force_next_line_note): Remove old location code.
	* profile.c (branch_prob): Remove old location code.
	* tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
	LOC_LINE): Remove old-location variants.
	* langhooks.c (lhd_print_error_function): Remove old location
	code.
	* configure, config.in: Rebuilt.
	* configure.ac (--enable-mapped-location): Remove.
	* c-decl.c (c_init_decl_processing): Remove old location code.
	(finish_function): Likewise.
	* recog.c (decode_asm_operands): Remove old location code.
	* c-pch.c (c_common_read_pch): Remove old location code.
	* rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
	variants.
	* gimple-low.c (lower_function_body): Remove old location code.
	* toplev.c (unknown_location): Remove.
	(push_srcloc): Remove old-location variant.
	(process_options): Remove old location code.
	(lang_dependent_init): Likewise.
	* input.h (UNKNOWN_LOCATION): Move definition.
	(location_t): Undeprecate.
	(source_locus): Remove.
	(location_from_locus): Remove.
	(struct location_s): Remove.
	Remove all old-location code.
	(input_line, input_filename): Remove.
	* final.c (final_scan_insn): Remove old location code.
	* diagnostic.c (diagnostic_build_prefix): Remove
	USE_MAPPED_LOCATION test.
	* tree.h (gimple_stmt) <locus>: Now a location_t.
	(tree_exp) <locus>: Likewise.
	(DECL_IS_BUILTIN): Remove old-location variant.
	(annotate_with_file_line, annotate_with_locus): Likewise.
	(expr_locus, set_expr_locus): Update.
	* tree.c (build1_stat): Remove old location code.
	(last_annotated_node): Remove.
	(annotate_with_file_line): Remove old-location variant.
	(annotate_with_locus): Likewise.
	(expr_location): Remove old location code.
	(set_expr_location): Likewise.
	(expr_has_location): Likewise.
	(expr_locus): Likewise.
	(set_expr_locus): Likewise.
	(expr_filename): Don't use location_from_locus.
	(expr_lineno): Likewise.
	* rtl-error.c (location_for_asm): Remove old location code.
	* c-lex.c (cb_line_change): Remove old location code.
	(fe_file_change): Likewise.
	(cb_def_pragma): Likewise.
	(c_lex_with_flags): Likewise.
	* gengtype.c (do_typedef): Don't special-case location types.
	(define_location_structures): Remove.
	(main): Don't call define_location_structures.
	* tree-pretty-print.c (dump_implicit_edges): Remove old location
	code.

2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 26264
	* builtins.def (BUILT_IN_STDARG_START): Remove.
	* builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
	* tree-stdarg.c (execute_optimize_stdarg): Likewise.
	* tree-inline.c (inline_forbidden_p_1): Likewise.

2008-02-26  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
	* tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
	(lookup_decl_from_uid): Declare.
	(remove_decl_from_map): Likewise.
	* tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
	* tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
	(decl_for_uid_map): New global hashtable mapping DECL_UID
	to the decl tree.
	(init_ttree): Allocate it.
	(insert_decl_to_uid_decl_map): New helper function.
	(make_node_stat): Insert new decls into the map.
	(copy_node_stat): Likewise.
	(lookup_decl_from_uid): New function.
	(remove_decl_from_map): Likewise.
	(print_decl_for_uid_map_statistics): New helper.
	(dump_tree_statistics): Call it.

	* tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
	(referenced_var_iterator): Adjust.
	(FOR_EACH_REFERENCED_VAR): Adjust.
	(FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
	(num_referenced_vars): Adjust.
	* tree-flow-inline.h (gimple_referenced_vars): Adjust.
	(first_referenced_var): Remove.
	(end_referenced_vars_p): Likewise.
	(next_referenced_var): Likewise.
	(referenced_var_iterator_set): New helper function.
	* tree-dfa.c (referenced_var_lookup): Adjust.
	(referenced_var_check_and_insert): Likewise.
	(remove_referenced_var): Likewise.
	* tree-ssa.c (verify_flow_insensitive_alias_info): Use
	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
	(verify_call_clobbering): Likewise.
	(verify_memory_partitions): Likewise.
	(init_tree_ssa): Allocate bitmap instead of hashtable for
	referenced_vars.
	(delete_tree_ssa): Adjust.
	* tree-ssa-alias.c (mark_aliases_call_clobbered): Use
	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
	(compute_tag_properties): Likewise.
	(set_initial_properties): Likewise.
	(find_partition_for): Likewise.
	(update_reference_counts): Likewise.
	(dump_may_aliases_for): Likewise.
	* tree-ssa-operands.c (add_virtual_operand): Likewise.
	(add_call_clobber_ops): Likewise.
	(add_call_read_ops): Likewise.
	(get_asm_expr_operands): Likewise.
	* tree-into-ssa.c (dump_decl_set): Likewise.
	(update_ssa): Likewise.
	* tree-sra.c (scan_function): Likewise.
	(decide_instantiations): Likewise.
	(scalarize_parms): Likewise.
	* tree-ssa-alias-warnings.c (build_reference_table): Likewise.
	(dsa_named_for): Likewise.
	* tree-ssa-structalias.c (update_alias_info): Likewise.
	(merge_smts_into): Likewise.

2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 34351
	* doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
	* c-opts.c (c_common_handle_option): Wall enables
	Wvolatile-register-var.
	* common.opt: Move Wvolatile-register-var to...
	* c.opt: ...here.

2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* common.opt (Wlarger-than=): New.
	* doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
	-Wlarger-than=.
	* opts.c (common_handle_option): Handle -Wlarger-than=.
	* optc-gen.awk: Likewise.
	* opth-gen.awk: Likewise.
	* stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
	* tree-optimize.c (tree_rest_of_compilation): Likewise.

2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* c-common.c (match_case_to_enum_1): Add appropriate
	OPT_W* parameter to warning.
	(c_do_switch_warnings): Likewise.
	* c-typeck.c (warning_init): Add one more parameter following
	'warning' function.
	(push_init_level): Update call to warning_init.
	(pop_init_level): Likewise.
	(add_pending_init): Likewise.
	(output_init_element: Likewise.

2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 28322
	* toplev.c (toplev_main): If there are warnings or error, print
	errors for ignored options.
	* opts.c (ignored_options): New static variable.
	(postpone_unknown_option_error): New.
	(print_ignored_options): New.
	(handle_option): Postpone errors for unknown -Wno-* options.
	* opts.h (print_ignored_options): Declare.

2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.md (loadgp_blockage, blockage): Change type
	to "ghost".

2008-02-25  Richard Guenther  <rguenther@suse.de>

	Revert:
	2008-02-25  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
	* tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
	(lookup_decl_from_uid): Declare.
	* tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
	* tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
	(decl_for_uid_map): New global hashtable mapping DECL_UID
	to the decl tree.
	(init_ttree): Allocate it.
	(insert_decl_to_uid_decl_map): New helper function.
	(make_node_stat): Insert new decls into the map.
	(copy_node_stat): Likewise.
	(lookup_decl_from_uid): New function.
	(print_decl_for_uid_map_statistics): New helper.
	(dump_tree_statistics): Call it.

	* tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
	(referenced_var_iterator): Adjust.
	(FOR_EACH_REFERENCED_VAR): Adjust.
	(FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
	(num_referenced_vars): Adjust.
	* tree-flow-inline.h (gimple_referenced_vars): Adjust.
	(first_referenced_var): Remove.
	(end_referenced_vars_p): Likewise.
	(next_referenced_var): Likewise.
	(referenced_var_iterator_set): New helper function.
	* tree-dfa.c (referenced_var_lookup): Adjust.
	(referenced_var_check_and_insert): Likewise.
	(remove_referenced_var): Likewise.
	* tree-ssa.c (verify_flow_insensitive_alias_info): Use
	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
	(verify_call_clobbering): Likewise.
	(verify_memory_partitions): Likewise.
	(init_tree_ssa): Allocate bitmap instead of hashtable for
	referenced_vars.
	(delete_tree_ssa): Adjust.
	* tree-ssa-alias.c (mark_aliases_call_clobbered): Use
	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
	(compute_tag_properties): Likewise.
	(set_initial_properties): Likewise.
	(find_partition_for): Likewise.
	(update_reference_counts): Likewise.
	(dump_may_aliases_for): Likewise.
	* tree-ssa-operands.c (add_virtual_operand): Likewise.
	(add_call_clobber_ops): Likewise.
	(add_call_read_ops): Likewise.
	(get_asm_expr_operands): Likewise.
	* tree-into-ssa.c (dump_decl_set): Likewise.
	(update_ssa): Likewise.
	* tree-sra.c (scan_function): Likewise.
	(decide_instantiations): Likewise.
	(scalarize_parms): Likewise.
	* tree-ssa-alias-warnings.c (build_reference_table): Likewise.
	(dsa_named_for): Likewise.
	* tree-ssa-structalias.c (update_alias_info): Likewise.
	(merge_smts_into): Likewise.

2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/29549
	* doc/invoke.texi (-fcx-limited-range): Document new option.
	* toplev.c (process_options): Handle -fcx-fortran-rules.
	* common.opt: Add documentation for -fcx-fortran-rules.

2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>

	PR c/35162
	* doc/invoke.texi (-fcx-limited-range): Correct to be in line with
	actual behaviour and C99.

2008-02-26  Ben Elliston  <bje@au.ibm.com>

	* config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
	(ASM_CPU_POWER6_SPEC): Likewise.
	(ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
	Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
	(EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.

2008-02-25  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
	* tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
	(lookup_decl_from_uid): Declare.
	* tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
	* tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
	(decl_for_uid_map): New global hashtable mapping DECL_UID
	to the decl tree.
	(init_ttree): Allocate it.
	(insert_decl_to_uid_decl_map): New helper function.
	(make_node_stat): Insert new decls into the map.
	(copy_node_stat): Likewise.
	(lookup_decl_from_uid): New function.
	(print_decl_for_uid_map_statistics): New helper.
	(dump_tree_statistics): Call it.

	* tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
	(referenced_var_iterator): Adjust.
	(FOR_EACH_REFERENCED_VAR): Adjust.
	(FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
	(num_referenced_vars): Adjust.
	* tree-flow-inline.h (gimple_referenced_vars): Adjust.
	(first_referenced_var): Remove.
	(end_referenced_vars_p): Likewise.
	(next_referenced_var): Likewise.
	(referenced_var_iterator_set): New helper function.
	* tree-dfa.c (referenced_var_lookup): Adjust.
	(referenced_var_check_and_insert): Likewise.
	(remove_referenced_var): Likewise.
	* tree-ssa.c (verify_flow_insensitive_alias_info): Use
	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
	(verify_call_clobbering): Likewise.
	(verify_memory_partitions): Likewise.
	(init_tree_ssa): Allocate bitmap instead of hashtable for
	referenced_vars.
	(delete_tree_ssa): Adjust.
	* tree-ssa-alias.c (mark_aliases_call_clobbered): Use
	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
	(compute_tag_properties): Likewise.
	(set_initial_properties): Likewise.
	(find_partition_for): Likewise.
	(update_reference_counts): Likewise.
	(dump_may_aliases_for): Likewise.
	* tree-ssa-operands.c (add_virtual_operand): Likewise.
	(add_call_clobber_ops): Likewise.
	(add_call_read_ops): Likewise.
	(get_asm_expr_operands): Likewise.
	* tree-into-ssa.c (dump_decl_set): Likewise.
	(update_ssa): Likewise.
	* tree-sra.c (scan_function): Likewise.
	(decide_instantiations): Likewise.
	(scalarize_parms): Likewise.
	* tree-ssa-alias-warnings.c (build_reference_table): Likewise.
	(dsa_named_for): Likewise.
	* tree-ssa-structalias.c (update_alias_info): Likewise.
	(merge_smts_into): Likewise.

2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>

	PR target/35258
	* cse.c (cse_insn): Avoid creation of overlapping MEMs.
	* alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
	* alias.h (nonoverlapping_memrefs_p): Likewise.

2008-02-25  Jan Beulich  <jbeulich@novell.com>

	* Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
	* config/i386/netware-libgcc.exp: Add __bswap?i2,
	__emultls_get_address, __emultls_register_common,
	__floatundi?f, and _Unwind_GetIPInfo.
	* config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
	Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
	(gen_regparm_prefix): Likewise.
	(i386_nlm_encode_section_info): Sync with
	config/i386/winnt.c:i386_pe_encode_section_info().
	(i386_nlm_maybe_mangle_decl_assembler_name): New.
	i386_nlm_mangle_decl_assembler_name): New.
	(netware_override_options): New.
	* config/i386/netware.h (netware_override_options): Declare.
	(OVERRIDE_OPTIONS): Re-define to netware_override_options.
	(i386_nlm_mangle_decl_assembler_name): Declare.
	(TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.

2008-02-25  Ben Elliston  <bje@au.ibm.com>

	PR other/32948
	* c-decl.c (grokdeclarator): Remove unused local variables
	`typedef_type' and `type_as_written'.
	* bb-reorder.c
	(find_rarely_executed_basic_blocks_and_crossing_edges): Remove
	unused local variable `has_hot_blocks'.
	(fix_crossing_conditional_branches): Remove unused local variable
	`prev_bb'.

2008-02-25  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/19984
	* builtins.def (BUILT_IN_NAN): Define as c99 builtin
	using DEF_C99_BUILTIN.
	(BUILT_IN_NANF): Ditto.
	(BUILT_IN_NANL): Ditto.

2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
	    Revital Eres  <eres@il.ibm.com>

	* modulo-sched.c (calculate_must_precede_follow): Address TODO
	regarding the order of two dependent insns in the same row.

2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>

	* stor-layout.c (layout_decl): Do not bump the alignment of a
	bit-field to more than byte alignment if it is packed.

2008-02-24  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (processor_costs): Add cache costs for
	e300c2 and e300c3.

2008-02-24  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html

	PR 33738
	* tree-vrp.c (vrp_evaluate_conditional): With
	-Wtype-limits, emit a warning when comparing against a
	constant outside the natural range of OP0's type.
	* c.opt (Wtype-limits): Move ...
	* common.opt (Wtype-limits): ... here.

2008-02-24  Edmar Wienskoski  <edmar@freescale.com>

	* config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
	* config/rs6000/e300c2c3.md: New file.
	* config/rs6000/rs6000.c (processor_costs): Add new costs for
	e300c2 and e300c3.
	(rs6000_override_options): Add e300c2 and e300c3 cases to
	processor_target_table. Do not allow usage of Altivec or Spe
	with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
	(rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
	* config/rs6000/rs6000.h (processor_type): Add
	PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
	(ASM_CPU_SPEC): Add e300c2 and e300c3.
	* config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
	and ppce300c3. Include e300c2c3.md.

2008-02-23  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
	instead of TARGET_STRICT_ALIGN.

2008-02-23  Joseph Myers  <joseph@codesourcery.com>

	* explow.c (memory_address): Assert that the generated address is
	valid.

2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>

	PR target/25477
	* config/darwin-protos.h: Add darwin_patch_builtins prototype.
	* config/darwin-ppc-ldouble-patch.def: New file.
	* config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
	* config/rs6000/rs6000.c (rs6000_init_builtins): Call
	SUBTARGET_INIT_BUILTINS if defined.
	* config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
	New functions.

2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR rtl-opt/33512
	* simplify-rtx.c (simplify_binary_operation_1): Add simplification
	of (and X (ior (not X) Y) and (and (ior (not X) Y) X).

2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR pch/35027
	* c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
	file" warning condtional on -Winvalid-PCH.

2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* expmed.c (extract_bit_field): Always use adjust_address for MEM.

2008-02-23  Uros Bizjak  <ubizjak@gmail.com>

	PR target/22076
	PR target/34256
	* config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
	prevent reload from using MMX registers.
	(*mov<mode>_internal): Ditto.
	(*movv2sf_internal_rex64): Ditto.
	(*movv2sf_internal): Ditto.

2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR documentation/31569
	* doc/install.texi2html: Use makeinfo --no-number-sections.

2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
	ensure that we can address an entire entity > 8 bytes.  Don't
	generate reg+reg addressing for such data.

2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
	strings when optimizing for size, unless the target cares about
	alignment.

2008-02-22  Tom Tromey  <tromey@redhat.com>

	* regclass.c (current_pass): Remove declaration.

2008-02-22  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/libgcc.S (__RAMPZ__): Define.
	(__do_copy_data): Add for devices with 128KB code memory.

2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
	Use spe_abi.
	* config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.

2008-02-22  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
	GENNONACR_REGS.

2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR c/19999
	* c-typeck.c (build_binary_op): Warn about floating point
	comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.

2008-02-21  Janis Johnson  <janis187@us.ibm.com>

	PR target/34526
	* config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
	(rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
	add vrsave.
	(rs6000_override_options): Set altivec_abi as default, not override,
	for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
	TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
	is used; use new member spe_abi.
	(rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
	spe_abi and altivec_abi.

2008-02-22  Tomas Bily  <tbily@suse.cz>

	* tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.

2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/35273
	* config.build (build_file_translate): Set to `CMD //c' only if
	it works.
	* Makefile.in (build_file_translate): Improve comment.

2008-02-21  Jan Hubicka  <jh@suse.cz>

	* predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
	PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
	PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.

2008-02-21  Michael Matz  <matz@suse.de>

	PR target/35264
	* config/i386/i386.c (ix86_expand_branch): Add missing breaks.

2008-02-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
	movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
	as insn constraint.
	* config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
	from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
	SSE_VEC_FLOAT_MODE_P as insn constraint.
	(<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
	(sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
	sse4a_movntdf using MODEF mode iterator.
	(sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
	sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
	(sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
	(sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
	(sse4_1_dpp<ssemodesuffixf2c>): Ditto.
	(sse4_1_roundp<ssemodesuffixf2c>): Ditto.
	(sse4_1_rounds<ssemodesuffixf2c>): Ditto.

2008-02-21  Richard Guenther  <rguenther@suse.de>

	* tree.def (PAREN_EXPR): New tree code.
	* fold-const.c (fold_unary): Remove PAREN_EXPR around constants
	and PAREN_EXPR.
	* tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
	* expr.c (expand_expr_real_1): Likewise.
	* tree-inline.c (estimate_num_insns_1): Likewise.
	* tree-complex.c (expand_complex_move): Likewise.
	* tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
	as plain x.

2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/35225
	* config/sh/sh.c (find_barrier): Don't go past 'from' argument.

2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/35190
	* config/sh/sh.md (jump_compact): Disable for crossing jumps.

	* config/sh/sh.c (find_barrier): Don't go past
	NOTE_INSN_SWITCH_TEXT_SECTIONS note.

2008-02-20  DJ Delorie  <dj@redhat.com>

	* config/h8300/h8300.md (insv): Force source operand to be a register.

	* config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
	as a jump, not as a plain insn.

2008-02-20  Seongbae Park  <seongbae.park@gmail.com>

	* doc/invoke.texi (Warning Options): Add new option
	-Wframe-larger-than=.
	(-Wframe-larger-than): Document.

	* flags.h (warn_frame_larger_than, frame_larger_than_size):
	Add declarations for new option variables.

	* final.c (final_start_function): Check the frame size
	before emission and issue a Wframe-larger-than warning.

	* opts.c (warn_frame_larger_than, frame_larger_than_size):
	Add definitions for new option variables.
	(common_handle_option): Handle new option OPT_Wframe_larger_than_.

	* common.opt (Wframe-larger-than=): New option.

2008-02-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
	(<sse>_div<mode>3): Ditto.
	(<sse>_vmdiv<mode>3): Ditto.
	(<sse>_vmsqrt<mode>2): Ditto.
	(*smax<mode>3): Ditto.
	(sse5_frcz<mode>2): Ditto.
	(sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
	as insn constraint.

2008-02-20  Richard Guenther  <rguenther@suse.de>

	PR middle-end/35265
	* builtins.c (validate_arg): If we want an INTEGER_TYPE,
	be happy with INTEGRAL_TYPE_P.

2008-02-20  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (split_tree): Associate floatig-point expressions
	if flag_associative_math is set.

2008-02-20  Richard Guenther  <rguenther@suse.de>

	* tree.h (fold_real_zero_addition_p): Declare.
	* fold-const.c (fold_real_zero_addition_p): Export.
	* tree-ssa-reassoc.c (eliminate_using_constants): Also handle
	floating-point operations with zero and one.

2008-02-20  Paolo Bonzini  <bonzini@gnu.org>

	* doc/install.texi: Correct references to CFLAGS, replacing them
	with BOOT_CFLAGS.  Document flags used during bootstrap for
	target libraries.

2008-02-20  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
	* config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
	and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
	insn constraint.
	(smin<mode>3): Ditto from similar patterns.
	(smax<mode>3): Ditto.
	(*ieee_smin<mode>3): Ditto.
	(*ieee_smax<mode>3): Ditto.
	* config/i386/sse.md (sse): New mode attribute.
	(mov<mode>): Macroize expander from movv4sf and movv2df using
	SSEMODEF2P mode iterator.
	(<sse>_movnt<mode>): Ditto from similar patterns. Use
	SSE_VEC_FLOAT_MODE_P as insn constraint.
	(storent<mode>): Ditto.
	(storent<mode>): Macroize expander from storentsf and storentdf using
	MODEF mode iterator.
	(neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
	mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
	(abs<mode>2): Ditto from similar patterns.
	(add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
	(sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
	(<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
	(<sse>_vmsqrt<mode>2): Ditto.
	(smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
	(<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
	(smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
	(<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
	(<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
	sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
	mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
	insn constraint.
	(<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
	iterator and SSE_FLOAT_MODE_P as insn constraint.
	(<sse>_ucomi): Ditto from similar patterns.
	(<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
	sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
	SSE_VEC_FLOAT_MODE_P as insn constraint.
	(vcond<mode>): Ditto from similar patterns.
	(and<mode>3, *and<mode>3): Ditto.
	(<sse>_nand<mode>3): Ditto.
	(ior<mode>3, *ior<mode>3): Ditto.
	(xor<mode>3, *xor<mode>3): Ditto.
	(*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
	iterator and SSE_FLOAT_MODE_P as insn constraint.
	(*nand<mode>3): Ditto from similar patterns.
	(*ior<mode>3): Ditto.
	(*xor<mode>3): Ditto.

2008-02-20  Ira Rosen  <irar@il.ibm.com>

	* config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
	vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
	vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.

2008-02-19  Jan Hubicka  <jh@suse.cz>

	* predict.c (tree_bb_level_predictions): Remove variable next
	mistakely introduced by previous commit.

2008-02-19  Jan Hubicka  <jh@suse.cz>

	* predict.c (predict_paths_leading_to): Rewrite.
	(predict_paths_for_bb): New.
	(tree_bb_level_predictions): Update call of predict_paths_leading_to.

2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/35218
	* Makefile.in (build_file_translate): New.
	(gcc-vers.texi): Use it for translating $(abs_srcdir).
	* config.build (build_file_translate): Set to `CMD //c' on MinGW.
	* configure.ac (build_file_translate): Substitute it.
	* configure: Regenerate.

2008-02-19  Jan Hubicka  <jh@suse.cz>

	PR rtl-optimization/34408
	* see.c (see_def_extension_not_merged): Copy subreg so we don't have
	invalid sharing.

2008-02-19  Jan Hubicka  <jh@suse.cz>

	PR middle-end/28779
	* tree-inline.c (estimate_num_insns_1): Fix counting of cost of
	call_expr.

2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR Ada/35186
	* config/i386/i386-modes.def: Revert the last DI alignment
	change until Ada people can look into it.

2008-02-19  Nick Clifton  <nickc@redhat.com>

	* opts.c (print_specific_help): Fix typo in --help text.

2008-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR target/35239
	* config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
	32-bit inline asm without asm alternatives for host GCC < 3.0.

2008-02-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34989
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
	Allow propagation to INDIRECT_REF if we can simplify only.

2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* c-common.c (warn_for_collisions_1): Use appropriate option when
	warning.

2008-02-19  Nick Clifton  <nickc@redhat.com>

	PR other/31349
	* opts.c (undocumented_msg): Leave blank unless checking is enabled.
	(handle_options): Fix indentation.
	(print_filtered_help): If no language-specific options were
	displayed tell the user how to list all the options supported by
	the language's front-end.
	(print_specific_help): Fix indentation and remove duplicate line.
	(common_handle_option): Handle the -v option.
	For --help enable the display of undocumented options if the -v
	switch has been included on the command line.
	For --help= check for overlaps in the arguments between the option
	classes and the language names and issue a warning when they
	cannot be disambiguated.
	* c.opt (v): Pass on to the common option handler.

2008-02-19  Revital Eres  <eres@il.ibm.com>

	* modulo-sched.c (sms_schedule): Change dump message when
	create_ddg function fails.
	(try_scheduling_node_in_cycle): Rename row to cycle.
	(print_partial_schedule): Rename CYCLE to ROW.

2008-02-19  Christian Bruel  <christian.bruel@st.com>
	    Zdenek Dvorak  <ook@ucw.cz>

	* tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.

2008-02-19  Uros Bizjak  <ubizjak@gmail.com>

	PR target/33555
	* config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
	(*x86_movdicc_0_m1_se): Ditto.

2008-02-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
	(CMPtype): Define as __gcc_CMPtype.
	* config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
	(CMPtype): Define as __gcc_CMPtype.

2008-02-19  Hans-Peter Nilsson  <hp@axis.com>

	Support valgrind 3.3 for --enable-checking=valgrind.
	* system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
	here.
	[!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
	[!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
	[!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
	* ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
	Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
	VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
	VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
	respectively.
	* ggc-zone.c: Similar.
	* ggc-page.c: Similar.

2008-02-19  Paul Brook  <paul@codesourcery.com>

	PR target/35071
	* config/arm/ieee754-df.S: Fix do_it typo.
	* config/arm/ieee754-sf.S: Fix do_it typo.

2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/35189
	* config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
	(OPTION_MASK_ISA_3DNOW_SET): Likewise.
	(OPTION_MASK_ISA_SSE_SET): Likewise.
	(OPTION_MASK_ISA_SSE2_SET): Likewise.
	(OPTION_MASK_ISA_SSE3_SET): Likewise.
	(OPTION_MASK_ISA_SSSE3_SET): Likewise.
	(OPTION_MASK_ISA_SSE4_1_SET): Likewise.
	(OPTION_MASK_ISA_SSE4_2_SET): Likewise.
	(OPTION_MASK_ISA_SSE4_SET): Likewise.
	(OPTION_MASK_ISA_SSE4A_SET): Likewise.
	(OPTION_MASK_ISA_SSE5_SET): Likewise.
	(OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
	(OPTION_MASK_ISA_MMX_UNSET): Updated.
	(OPTION_MASK_ISA_3DNOW_UNSET): Updated.
	(OPTION_MASK_ISA_SSE_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_SSE4A_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE5_UNSET): Likewise.
	(OPTION_MASK_ISA_SSE4): Removed.
	(ix86_handle_option): Turn on bits in ix86_isa_flags and
	ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
	(override_options): Don't turn on implied SSE/MMX bits in
	ix86_isa_flags.

2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-modes.def: Use 4 byte alignment on DI for
	32bit host.

2008-02-18  Joey Ye  <joey.ye@intel.com>

	PR middle-end/34921
	* tree-nested.c (insert_field_into_struct): Set type alignment
	to field alignment if the former is less than the latter.

2008-02-18  Jakub Jelinek  <jakub@redhat.com>

	* BASE-VER: Set to 4.4.0.

2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
	* doc/cfg.texi: Likewise.
	* doc/extend.texi: Likewise.
	* doc/gty.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/loop.texi: Likewise.
	* doc/md.texi: Likewise.
	* doc/passes.texi: Likewise.
	* doc/rtl.texi: Likewise.
	* doc/sourcebuild.texi: Likewise.
	* doc/tm.texi: Likewise.
	* doc/tree-ssa.texi: Likewise.

2008-02-17  Richard Guenther  <rguenther@suse.de>

	PR middle-end/35227
	* tree-complex.c (init_parameter_lattice_values): Handle parameters
	without default definition.

2008-02-17  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/35231
	* tree-vrp.c (register_edge_assert_for): Do not assume A == 0
	if A | B != 1.

2008-02-17  Uros Bizjak  <ubizjak@gmail.com>

	Revert:
	2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
	* config/i386/sfp-machine.h (CMPtype): Define as typedef using
	libgcc_cmp_return mode.

2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/28368
	* doc/invoke.texi (-std): Clarify description of -std= and -ansi.

2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
	multilibs.

2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/c-tree.texi: Use `@.' where appropriate.
	* doc/extend.texi: Likewise.
	* doc/install.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/loop.texi: Likewise.
	* doc/makefile.texi: Likewise.
	* doc/md.texi: Likewise.
	* doc/passes.texi: Likewise.
	* doc/standards.texi: Likewise.
	* doc/tm.texi: Likewise.

2008-02-15  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/35196
	* omp-low.c (expand_omp_for_generic): Don't initialize fd->v
	in entry_bb.
	(expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
	rather than in entry_bb.

2008-02-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sfp-machine.h (CMPtype): Define as typedef using
	libgcc_cmp_return mode.

2008-02-15  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/35130
	* tree-nested.c (convert_call_expr): Put FRAME.* vars into
	OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.

2008-02-15  Richard Guenther  <rguenther@suse.de>
	    Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/35164
	* tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
	* tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
	Only propagate addresses which do not have abnormal SSA_NAMEs
	in their operands.

2008-02-15  Joseph Myers  <joseph@codesourcery.com>

	PR target/35088
	* config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.

2008-02-15  Jan Hubicka  <jh@suse.cz>

	PR middle-end/35149
	* ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.

2008-02-15  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/34621
	* function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
	when calculating alignment_pad.

2008-02-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
	(WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
	* config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
	and STACK_BOUNDARY define.

2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>

	PR preprocessor/35061
	* c-pragma.c (handle_pragma_pop_macro): Check that
	pushed_macro_table has been allocated.

2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/35136
	* gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
	(force_gimple_operand): Likewise.
	* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
	for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
	Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
	(find_interesting_uses_address): Check addressability and alignment
	of the base expression only after substituting bases of IVs into it.

2008-02-14  Michael Matz  <matz@suse.de>

	PR target/34930
	* function.c (instantiate_virtual_regs_in_insn): Reload address
	before falling back to reloading the whole operand.

2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_mainpool_start): Emit the pool
	before the first section switch note.

2008-02-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/bugreport.texi: Update copyright years.
	* doc/c-tree.texi: Likewise.
	* doc/cfg.texi: Likewise.
	* doc/cpp.texi: Likewise.
	* doc/cppinternals.texi: Likewise.
	* doc/fragments.texi: Likewise.
	* doc/frontends.texi: Likewise.
	* doc/gcc.texi: Likewise.
	* doc/gty.texi: Likewise.
	* doc/hostconfig.texi: Likewise.
	* doc/implement-c.texi: Likewise.
	* doc/libgcc.texi: Likewise.
	* doc/loop.texi: Likewise.
	* doc/makefile.texi: Likewise.
	* doc/options.texi: Likewise.
	* doc/passes.texi: Likewise.
	* doc/rtl.texi: Likewise.
	* doc/sourcebuild.texi: Likewise.
	* doc/standards.texi: Likewise.
	* doc/tree-ssa.texi: Likewise.
	* doc/trouble.texi: Likewise.

	* doc/extend.texi: Use @: or add comma where appropriate.
	* doc/invoke.texi: Likewise.
	* doc/tm.texi: Likewise.

2008-02-14  Alan Modra  <amodra@bigpond.net.au>

	PR target/34393
	* config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
	to a reg.

2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>

	* doc/md.texi (clz, ctz): Add reference.
	* doc/rtl.texi (clz, ctz): Likewise.

2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR other/35148
	* Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
	srcdir.

2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (struct constant_pool): New field
	emit_pool_after added.
	(s390_mainpool_start): Set the emit_pool_after flag according
	to the section switch notes.
	(s390_mainpool_finish): Consider emit_pool_after when emitting
	the literal pool at the end of the function.
	(s390_chunkify_start): Force literal pool splits at section
	switch notes.

2008-02-13  Michael Matz  <matz@suse.de>

	PR debug/35065
	* var-tracking.c (clobber_variable_part): Correctly traverse the
	list.

2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 29673
	* doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
	Add -fdump-ipa-inline.
	* tree-dump.c (dump_files): Remove tree-inlined dump.
	* tree-pass.h (tree_dump_index): Remove TDI_inlined.

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

	PR tree-optimization/35171
	* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
	default defs.

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

	PR middle-end/35163
	* fold-const.c (fold_widened_comparison): Use get_unwidened in
	value-preserving mode.  Disallow final truncation.

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

	PR middle-end/35136
	* gimplify.c (force_gimple_operand_bsi): Move SSA renaming
	code from here to...
	(force_gimple_operand): ...here.

2008-02-12  Jakub Jelinek  <jakub@redhat.com>

	PR c++/35144
	* tree-sra.c (sra_build_assignment): fold_convert SRC if copying
	non-compatible pointers.
	(generate_element_copy): If SRC and DST are RECORD_TYPEs with
	different FIELD_DECLs, try harder by comparing field offsets, sizes
	and types.

	PR inline-asm/35160
	* function.c (match_asm_constraints_1): Don't replace the same input
	multiple times.

2008-02-12  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
	* config/avr/avr.c (expand_prologue): Save RAMPZ register.
	(expand_epilogue): Restore RAMPZ register.
	* config/avr/avr.md (RAMPZ_ADDR): New constant.

2008-02-11  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/cygwin.asm (__alloca): Correct calling
	convention and alignment.
	(__chkstk): Force 8 byte stack alignment.

2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
	    Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/33992
	* tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
	the zero we compare against.

2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>

	PR libfortran/35063
	* gthr-win32.h (__gthread_mutex_destroy_function): New function
	to CloseHandle after unlocking to prevent accumulation of handle
	count.

2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle_end/34150
	* pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
	pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
	and update LABEL_NUSES during and after reload.

2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>

	PR middle-end/34627
	* combine.c (simplify_if_then_else): Make sure the comparison is
	against const0_rtx when simplifying to (abs x) or (neg (abs X)).

2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR bootstrap/35051
	* double-int.h: Don't include gmp.h for GENERATOR_FILEs.
	(mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
	* real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
	(real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
	* tree.h (get_type_static_bounds): Likewise.

2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/invoke.texi (Option Summary, C++ Dialect Options)
	(Objective-C and Objective-C++ Dialect Options, Warning Options):
	Make -Wfoo language annotations match what the compiler outputs.

2008-02-08  Sa Liu  <saliu@de.ibm.com>

	* config/spu/spu-builtins.def: Fixed wrong parameter type in spu
	intrinsics spu_convts, spu_convtu, spu_convtf.

2008-02-08  Hans-Peter Nilsson  <hp@axis.com>

	* doc/extend.texi (Function Attributes) <noinline>: Mention
	asm ("") as method to keep calls.

2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR other/32754
	* doc/options.texi (Options): Replace references to opts.sh with
	optc-gen.awk.
	* opts-common.c: Likewise.
	* optc-gen.awk: Likewise.

2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.

2008-02-07  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/33410
	* config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
	EXPR_LIST for the REG_EQUAL instead of a comparison with a
	funny mode.

2008-02-07  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/35085
	* tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
	for operand entry oe2 in addition to operand entry oe3 in order to
	expose more opportunities for vectorizer sum reduction.

2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR other/35107
	* Makefile.in (LIBS): Remove $(GMPLIBS).
	(cc1-dummy, cc1): Add $(GMPLIBS).

2008-02-06  Jan Hubicka  <jh@suse.cz>

	PR target/23322
	* i386.md (moddf_integer): Do not produce partial memory stalls for
	targets where it hurts.

2008-02-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/35083
	* optabs.c (expand_float): Do not check for decimal modes when
	expanding unsigned integer through signed conversion.

2008-02-06  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
	inside the clobber with a match_operand and duplicated operand
	number in the constraint.
	(ineqbranchsi): Delete redundant comment.

2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
	builtin_define ("__USE_INIT_FINI__").
	* config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
	-msx multilibs.
	* gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.

2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR documentation/30330
	* doc/invoke.texi (C++ Dialect Options)
	(Objective-C and Objective-C++ Dialect Options, Warning Options):
	For each warning option -Wfoo that allows -Wno-foo, ensure both
	-Wfoo and -Wno-foo are listed in the option index.  Fix index
	entry of -Wswitch-default, index -Wnormalized= including the
	`=', and -Wlarger-than-@var{len} including @var{len}.

2008-02-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (floatunssisf2): Use
	ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
	(floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
	Macroize expander using MODEF mode iterator.

2008-02-05  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html

	PR 33738
	* tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.

2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR other/35070
	* toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.

2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/35084
	* config/i386/i386.c (ix86_function_sseregparm): Add an arg
	to indicate if a message should be generated.
	(init_cumulative_args): Updated.
	(function_value_32): Likewise.

2008-02-05  Joseph Myers  <joseph@codesourcery.com>

	* doc/include/texinfo.tex: Update to version 2008-02-04.16.

2008-02-05  Uros Bizjak  <ubizjak@gmail.com>

	PR target/35083
	* config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
	Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.

2008-02-04  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html

	PR 33738
	* tree-vrp.c (vrp_evaluate_conditional): With
	-Wtype-limits, emit a warning when comparing against a
	constant outside the natural range of OP0's type.

2008-02-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/33631
	* expr.c (count_type_elements): Give for unions instead of
	guessing.

2008-02-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/35043
	* gimplify.c (gimplify_init_ctor_eval): Convert array indices
	to TYPE_DOMAINs base type instead of using bitsizetype here.

2008-02-03  Jason Merrill  <jason@redhat.com>

	* print-tree.c (print_node) [CONSTRUCTOR]: Print elements.

2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR other/29972
	* doc/invoke.texi (C++ Dialect Options, Optimize Options)
	(HPPA Options, i386 and x86-64 Options, IA-64 Options)
	(RS/6000 and PowerPC Options): Fix typos and markup.
	* doc/passes.texi (Tree-SSA passes): Likewise.

2008-02-02  Michael Matz  <matz@suse.de>

	PR target/35045
	* postreload-gcse.c (record_last_reg_set_info_regno): Renamed
	from record_last_reg_set_info.
	(record_last_reg_set_info): Take an RTX argument, iterate over all
	constituent hardregs.
	(record_last_set_info, record_opr_changes): Change calls to
	new signature or to record_last_reg_set_info_regno.

2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/extend.texi (X86 Built-in Functions): Fix grammar.

2008-02-01  Hans-Peter Nilsson  <hp@axis.com>

	PR rtl-optimization/34773
	* reg-notes.def (EQUAL): Mention significance of combination of
	REG_EQUAL and REG_RETVAL.
	* fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
	insn that has a REG_RETVAL.

2008-02-01  Roger Sayle  <roger@eyesopen.com>

	PR bootstrap/33781
	* configure.ac (--enable-fixed-point): Disable unless explicitly
	requested on IRIX.
	* configure: Regenerate.

2008-02-01  Richard Guenther  <rguenther@suse.de>

	PR other/35042
	* invoke.texi (-finline-limit): Remove no longer true parts
	of the documentation.  Note that there is no default value.

2008-02-01  Andrew Pinski  <pinskia@gmail.com>
	    Mark Mitchell  <mark@codesourcery.com>
	    Ben Elliston  <bje@au.ibm.com>

	PR c/29326
	* doc/extend.texi (Other Builtins): Document.

2008-01-31  Tom Browder  <tom.browder@gmail.com>

	* doc/c-tree.texi (Types): Fix grammar.
	(Expression trees): Ditto.
	* doc/passes.texi (Tree-SSA passes): Ditto.

	* doc/configterms.texi (Configure Terms): Fix typo.
	* doc/cpp.texi (Common Predefined Macros): Ditto.
	* doc/md.texi (Machine Constraints): Ditto.

	* doc/makefile.texi (Makefile): Add comma.

2008-01-31  Tom Browder  <tom.browder@gmail.com>
	    Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/sourcebuild.texi (Front End): Remove references to CVS
	and CVSROOT/modules.
	(Texinfo Manuals): Replace reference to CVS by one to SVN.
	(Back End): Remove reference to CVS.

2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR target/34900
	* config/mips/mips.c (gen_load_const_gp): New function, taking a
	comment from...
	(mips16_gp_pseudo_reg): ...here.
	* config/mips/mips.md (load_const_gp): Replace with...
	(load_const_gp_<mode>): ...this :P-based insn.

2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
	options. Minor fixes.
	(-std): Move reference to standards closer to where language
	standards are first mentioned.

2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR rtl-optimization/34995
	* reload.c (alternative_allows_const_pool_ref): Take an rtx
	parameter and return a bool.  If the rtx parameter is nonnull,
	check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
	(find_reloads): Update call accordingly.  Pass the new operand
	if it needed no address reloads, otherwise pass null.

2008-01-30  Richard Henderson  <rth@redhat.com>

	PR c/34993
	* tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
	for unbounded arrays.

2008-01-30  Silvius Rus  <rus@google.com>

	* config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.

2008-01-30  Jan Hubicka  <jh@suse.cz>

	PR target/34982
	* i386.c (init_cumulative_args): Use real function declaration when
	calling locally.

2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR rtl-optimization/34998
	* global.c (build_insn_chain): Treat non-subreg_lowpart
	SUBREGs of pseudos as clobbering all the words covered by the
	SUBREG, not just all the bytes.
	* ra-conflict.c (clear_reg_in_live): Likewise.  Take the
	original df_ref rather than an extract parameter.
	(global_conflicts): Update call accordingly.

2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
	the overflow check to make it easier to read.
	(__fixtfdi): Change the type of the ll member in union
	long_double to UDItype_x.

2008-01-30  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/34969
	* cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
	* cgraph.c (cgraph_update_edges_for_call_stmt): New function.
	* tree-inline.c (fold_marked_statements): Call
	cgraph_update_edges_for_call_stmt if folding a call statement.
	* cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
	debug_generic_stmt calls, reset it back afterwards.

	PR c/35017
	* c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
	static decls.
	* c-typeck.c (build_external_ref): Don't pedwarn about
	static vars in current function's scope.

2008-01-29  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.

2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>

	PR c/35002
	* ipa-struct-reorg.c: Fix spelling.
	* params.def: Ditto.

2008-01-29  Richard Guenther  <rguenther@suse.de>

	PR middle-end/35006
	* tree-inline.h (struct copy_body_data): Add remapping_type_depth
	field.
	* tree-inline.c (remap_type): Increment remapping_type_depth
	around remapping types.
	(copy_body_r): Only add referenced variables if they are referenced
	from code, not types.

2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>

	PR c++/34055
	PR c++/34103
	PR c++/34219
	PR c++/34606
	PR c++/34753
	PR c++/34754
	PR c++/34755
	PR c++/34919
	PR c++/34961
	* c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
	qualifiers for an ERROR_MARK_NODE or a NULL_TREE.

2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>

	PR target/34412
	* config/avr/avr.c (expand_prologue): Use correct QI mode frame
	pointer for tiny stack.

2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>

	* doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.

2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>

	* config/vx-common.h: Fix typo in comment.

2008-01-28  Ian Lance Taylor  <iant@google.com>

	PR c++/34862
	PR c++/33407
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
	coalesce pointers if they have different DECL_NO_TBAA_P values.
	* tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
	between variables with different DECL_NO_TBAA_P values.

2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>

	PR 31535
	* config/rs6000/rs6000.c (small_data_operand): Vectors and floats
	are not legitimate small data references on SPE targets.

2008-01-28  David Daney  <ddaney@avtrex.com>

	* doc/install.texi (mips-*-*): Recommend binutils 2.18.

2008-01-28  David Daney  <ddaney@avtrex.com>

	* doc/install.texi (--disable-libgcj-bc):  Reword documentation.

2008-01-27  Joseph Myers  <joseph@codesourcery.com>

	* config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
	m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
	*-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
	*-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
	hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
	i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
	i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
	vax-*-bsd*, vax-*-ultrix*): Mark obsolete.

2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>

	* basic-block.h (condjump_equiv_p): Fix comment.

2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>

	* tree-pretty-print.c (print_generic_decl, print_generic_stmt,
	print_generic_stmt_indented): Fix comment.

2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>

	* configure.ac (__stack_chk_fail): Add detecion for availability
	of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
	* configure: Regenerate.

2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR middle-end/34688
	* final.c (output_addr_const): Handle TRUNCATE.

2008-01-26  Zdenek Dvorak  <ook@ucw.cz>

	PR target/34711
	* tree-ssa-loop-ivopts.c (comp_cost): New type.
	(zero_cost, infinite_cost): New constants.
	(struct cost_pair): Change type of cost to comp_cost.
	(struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
	(new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
	New functions.
	(set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
	split_address_cost, ptr_difference_cost, difference_cost,
	get_computation_cost_at, get_computation_cost,
	determine_use_iv_cost_generic, determine_use_iv_cost_address,
	determine_use_iv_cost_condition, determine_use_iv_costs,
	cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
	iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
	iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
	Change type of cost to comp_cost.
	(determine_iv_cost): Increase cost of non-original ivs, instead
	of decreasing the cost of original ones.
	(get_address_cost): Indicate the complexity of the addressing mode
	in comp_cost.
	(try_add_cand_for): Prefer using ivs not specific to some object.
	* tree-flow.h (force_expr_to_var_cost): Declaration removed.

2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
	    Janis Johnson  <janis187@us.ibm.com>

	PR target/34814
	* doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
	(TARGET_INSTANTIATE_DECLS): Likewise.
	* target.h (expand_to_rtl_hook): New target hook.
	(instantiate_decls): Likewise.
	* function.c (instantiate_decl): Make non-static.  Rename to...
	(instantiate_decl_rtl): ... this.
	(instantiate_expr): Use instantiate_decl_rtl.
	(instantiate_decls_1): Likewise.
	(instantiate_decls): Likewise.
	(instantiate_virtual_regs: Call new instantiate_decls taget hook.
	* function.h (instantiate_decl_rtl): Add prototype.
	* cfgexpand.c (target.h): New include.
	(tree_expand_cfg): Call new expand_to_rtl_hook target hook.
	* target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
	(TARGET_INSTANTIATE_DECLS): Likewise.
	(TARGET_INITIALIZER): New target hooks added.
	* config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
	New prototype.
	* config/rs6000/rs6000.c (tree-flow.h): New include.
	(machine_function): Add sdmode_stack_slot field.
	(rs6000_alloc_sdmode_stack_slot): New function.
	(rs6000_instantiate_decls): Likewise.
	(rs6000_secondary_memory_needed_rtx): Likewise.
	(rs6000_check_sdmode): Likewise.
	(TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
	(TARGET_INSTANTIATE_DECLS): Likewise.
	(rs6000_hard_regno_mode_ok): Allow SDmode.
	(num_insns_constant): Likewise.  Handle _Decimal32 constants.
	(rs6000_emit_move): Handle SDmode.
	(function_arg_advance): Likewise.
	(function_arg): Likewise.
	(rs6000_gimplify_va_arg): Likewise.  Add special handling of
	SDmode var args for 32-bit compiles.
	(rs6000_secondary_reload_class): Handle SDmode.
	(rs6000_output_function_epilogue): Likewise.
	(rs6000_function_value): Simplify if statement.
	(rs6000_libcall_value): Likewise.
	* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
	(SECONDARY_MEMORY_NEEDED_RTX): Add define.
	* config/rs6000/dfp.md (movsd): New define_expand and splitter.
	(movsd_hardfloat): New define_insn.
	(movsd_softfloat): Likewise.
	(movsd_store): Likewise.
	(movsd_load): Likewise.
	(extendsddd2): Likewise.
	(extendsdtd2): Likewise.
	(truncddsd2): Likewise.
	(movdd_hardfloat64): Fixup comment.
	(UNSPEC_MOVSD_LOAD): New constant.
	(UNSPEC_MOVSD_STORE): Likewise.

2008-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/34965
	* c-pretty-print.c (pp_c_exclusive_or_expression): Handle
	TRUTH_XOR_EXPR.
	(pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
	(pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
	(pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
	and TRUTH_XOR_EXPR.

2008-01-26  David Edelsohn  <edelsohn@gnu.org>

	PR target/34794
	* config.gcc: Separate AIX 5.3 from AIX 6.1.
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
	__LONGDOUBLE128 too.
	* config/rs6000/aix61.h: New file.

2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR rtl-optimization/34959
	* optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
	popcount and parity rtxes the same mode as their operand.
	Truncate or extend the result to the return value's mode
	if necessary.

2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR target/34981
	* config/mips/mips-protos.h (mips_expand_call): Return an rtx.
	* config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
	to GOT_VERSION_REGNUM.
	(CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
	(EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
	* config/mips/mips.c (mips_emit_call_insn): New function.
	(mips_call_tls_get_addr): Call mips_expand_call directly.
	(mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
	emit_call_insn.
	(mips16_build_call_stub): Likewise.  Return the call insn or null.
	(mips_expand_call): Update the call to mips16_build_call_stub
	accordingly and a remove redundant condition.  Assert that MIPS16
	stubs do not use lazy binding.  Use mips_emit_call_insn and return
	the call insn.
	(mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
	TARGET_USE_GOT.
	(mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
	(mips_avoid_hazard): Remove hazard_set handling.
	* config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
	(UNSPEC_RESTORE_GP): ...this.
	(UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
	(FAKE_CALL_REGNO): Rename to...
	(GOT_VERSION_REGNUM): ...this.
	(type): Add "ghost" value.  Add an associated insn reservation.
	(hazard_set): Remove.
	(exception_receiver): Rename to...
	(restore_gp): ...this and update the unspec identifier accordingly.
	(exception_receiver, nonlocal_got_receiver): New expanders.
	(load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
	FAKE_CALL_REGNO.  Remove hazard_set attribute.
	(set_got_version, update_got_version): New patterns.

2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>

	PR target/34970
	* config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.

2008-01-25  Joseph Myers  <joseph@codesourcery.com>

	PR other/31955
	* doc/install.texi2html: Generate gcc-vers.texi.

2008-01-25  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.

2008-01-25  Joseph Myers  <joseph@codesourcery.com>

	* config/c4x: Remove directory.
	* config.gcc (crx-*, mt-*): Mark obsolete.
	(c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
	h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
	sh-*-rtemscoff*): Remove cases.
	* defaults.h (C4X_FLOAT_FORMAT): Remove.
	* real.c (encode_c4x_single, decode_c4x_single,
	encode_c4x_extended, decode_c4x_extended, c4x_single_format,
	c4x_extended_format): Remove.
	* real.h (c4x_single_format, c4x_extended_format): Remove.
	* doc/extend.texi (interrupt, naked): Remove mention of attributes
	on C4x.
	(Pragmas): Remove comment about c4x pragmas.
	* doc/install.texi (c4x): Remove target-specific instructions.
	* doc/invoke.texi (TMS320C3x/C4x Options): Remove.
	* doc/md.texi (Machine Constraints): Remove C4x documentation.
	* doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
	refer to C4x source files as examples.
	(C4X_FLOAT_FORMAT): Remove documentation.

2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (override_options): Reorder tests so that
	flag_pic gets enabled for -msep-data.

2008-01-25  Richard Guenther  <rguenther@suse.de>

	PR middle-end/32244
	* expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
	to its bitfield precision if required.

2008-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/33880
	* tree-nested.c (walk_omp_for): New function.
	(convert_nonlocal_reference, convert_local_reference): Call
	walk_omp_for on OMP_FOR.
	(convert_call_expr): Call walk_body on OMP_FOR's
	OMP_FOR_PRE_INIT_BODY.

2008-01-25  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34966
	* tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
	default defs and PHI_NODEs we have to insert after the
	defining statement.

2008-01-24  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
	Provide a default definition.
	(LIBGCC2_UNITS_PER_WORD): Likewise.

	* config/stormy16/stormy16.c: Include df.h for the prototype
	for df_regs_ever_live_p.
	(xstormy16_expand_builtin_va_start): Convert the stack offset
	into a component_ref and then use POINTER_PLUS_EXPR to add it
	to the incoming_virtual_args_rtx.
	(xstormy16_gimplify_va_arg_expr): Rename to
	xstormy16_gimplify_va_arg_expr.
	Use POINTER_PLUS_EXPR when performing pointer arithmetic.
	(TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
	xstormy16_gimplify_va_arg_expr.
	Fix up some formatting issues.

	* config/stormy16/stormy16.c (xstormy16_carry_plus_operand):
	Move to predicates.md.
	(xs_hi_general_operand): Likewise.
	(xs_hi_nonmemory_operand): Likewise.
	* config/stormy16/predicates.md:
	(xstormy16_carry_plus_operand): New predicate.
	(xs_hi_general_operand): New predicate.
	(xs_hi_nonmemory_operand): New predicate.
	* config/stormy16/stormy16-protos.h:
	(xstormy16_carry_plus_operand): Delete prototype.
	(xs_hi_general_operand): Likewise.
	(xs_hi_nonmemory_operand): Likewise.

	* config/storm16/stormy16.md (addhi3): Remove earlyclobber
	modifiers as they are no longer needed and they can trigger
	reload spill failures.

	* config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
	with a match_operand in order to help reload.

	* config/storm16/stormy16.md (movhi_internal): Replace 'r'
	constraint with 'e' for the 8th alternative as this version of
	the mov.w instruction only accepts the lower 8 registers.

2008-01-25  Uros Bizjak  <ubizjak@gmail.com>

	PR target/34856
	* simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
	Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
	vector elements.

2008-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/33333
	* gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.

2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>

	* ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
	New functions.
	(remove_structure): Update allocations list before removing structure.

2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>

	* ipa-struct-reorg.c (is_safe_cond_expr,
	create_new_stmts_for_cond_expr): Use integer_zerop function,
	that recognize not only zero-pointer, but zero-integer too.

2008-01-25  Ben Elliston  <bje@au.ibm.com>

	PR other/22232
	* fixproto: Escape "." in sed expression that strips leading "./".

2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR driver/34904
	* gcc.c (SWITCH_OK): Removed.
	(SWITCH_LIVE): Changed to bit.
	(SWITCH_FALSE): Likewise.
	(SWITCH_IGNORE): Likewise.
	(switchstr): Change live_cond to unsigned int.
	(process_command): Replace SWITCH_OK with 0.
	(do_self_spec): Likewise.
	(set_collect_gcc_options): Check the SWITCH_IGNORE bit.
	(give_switch): Likewise.
	(used_arg): Likewise.
	(do_spec_1): Set the SWITCH_IGNORE bit.
	(check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
	bits.  Set the SWITCH_LIVE bit.

2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.h (MOVE_RATIO): Define new target macro.

2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR tree-optimization/34472
	* ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
	parameter to a "bool *" and set *DATA to false if there is
	an unsafe access.  Do not delete the structure here.
	(check_cond_exprs): Delete it here instead.
	(check_cond_exprs, exclude_cold_structs): Do not increase
	I when removing a structure.

2008-01-24  Uros Bizjak  <ubizjak@gmail.com>

	PR target/34856
	* config/i386/i386.c (ix86_expand_vector_init): Consider only
	CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.

2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/34934
	* tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
	a fixed vector for stack.

2008-01-24  Ben Elliston  <bje@au.ibm.com>

	PR c++/25701
	* doc/gcc.texi (Software development): Add a direntry for g++.

2008-01-23  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
	stale and straggling -fforce-addr comments above.

	* config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
	define.
	* config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
	* config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.

2008-01-23  Michael Matz  <matz@suse.de>

	PR debug/34895
	* dwarf2out.c (force_type_die): Use modified_type_die instead of
	gen_type_die.

2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>

	* ipa-struct-reorg.c (create_new_malloc): Use pointer type as
	malloc result type.

2008-01-23  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (avr_current_arch): New variable.
	(avr_arch_types): Add 'avr31' and 'avr51' entries.
	(avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
	(avr_mcu_types): Add 'avr31' and 'avr51' architectures.
	(avr_override_options): Init 'avr_current_arch'.
	(base_arch_s): Move from here...
	* config/avr/avr.h (base_arch_s): ... here. Add new members
	'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
	'mega' to 'have_jmp_call'.
	(TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
	"__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
	macros.
	(LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
	architectures.
	* config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
	MULTILIB_MATCHES): Ditto.

2008-01-23  Richard Guenther  <rguenther@suse.de>

	PR middle-end/31529
	* cgraphunit.c (cgraph_reset_node): Always mark the node
	not reachable if it is not queued already.

2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
	* config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
	(cputype_selected): New static variable.
	(bfin_handle_option): Set it if -mcpu is used.
	(override_option): Select default set of workarounds if no cpu type
	selected on the command line.
	(workaround_rts_anomaly): Only run if ENABLE_WA_RETS.

	From  Michael Frysinger  <michael.frysinger@analog.com>
	* config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
	BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.

	* config/bfin/elf.h (LIB_SPEC): Use proper linker script
	for bf547, bf523, bf524, and bf526.
	* config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
	bf526.
	* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
	__ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
	__ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
	__ADSPBF547__ and __ADSPBF54x__ for bf547.
	* doc/invoke.texi (Blackfin Options): Document that
	-mcpu now accept bf547, bf523, bf524, and bf526.

2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/34628
	* combine.c (try_combine): Stop and undo after the first combination
	if an autoincrement side-effect on the first insn has effectively
	been lost.

2008-01-22  David Edelsohn  <edelsohn@gnu.org>

	PR target/34529
	* config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
	Offset addresses are not valid for Altivec or paired float modes.

2008-01-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/34607
	* c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
	if DECL_INITIAL (decl) is error_mark_node.

	PR c++/34914
	* c-common.c (handle_vector_size_attribute): Only allow
	integral, scalar float and fixed point types.  Handle OFFSET_TYPE
	the same way as pointer, array etc. types.
	* tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.

	PR c++/34917
	* tree.c (build_type_attribute_qual_variant): Call
	build_qualified_type if attributes are equal, but quals are not.

2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR 32102
	* doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
	* flags.h (warn_strict_aliasing): Remove.
	(warn_strict_overflow): Remove.
	* opts.c (warn_strict_aliasing): Remove.
	(warn_strict_overflow): Remove.
	* c-opts.c (c_common_handle_option): -Wall only sets
	-Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
	(c_common_post_options): Give default values to -Wstrict-aliasing
	and -Wstrict-overflow if they are uninitialized.
	* common.opt (Wstrict-aliasing): Specify Var and Init.
	(Wstrict-overflow): Likewise.

2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>

	PR rtl-optimization/26854
	PR rtl-optimization/34400
	PR rtl-optimization/34884
	* ddg.c (create_ddg_dep_from_intra_loop_link): Use
	DF_RD->gen.
	* df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
	(df_rd_bb_info.expanded_lr_out): Deleted
	* loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
	* loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
	(df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
	df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
	Removed code to allocate, initialize or free expanded_lr_out.
	(df_rd_bb_local_compute_process_def): Restructured to make more
	understandable.
	(df_rd_confluence_n): Removed code to no apply invalidate_by_call
	sets if the sets are being trimmed.

2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/32287
	* configure.ac (ld_vers): Support GNU linker version xx.xx.*
	(as_vers): Likewise.
	* configure: Regenerated.

2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR middle-end/33092
	* tree-pass.h (pass_build_alias): New pass.
	* tree-ssa-alias.c (gate_build_alias): New.
	(pass_build_alias): New.
	* passes.c (init_optimization_passes): Add pass_build_alias after
	pass_create_structure_vars.

2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
	Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
	(S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
	S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
	(S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
	S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
	(S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
	S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
	(S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
	(S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
	(S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
	(S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
	* config/s390/s390.md (FP_ALL): New mode iterator.
	(_d): New mode attribute.
	("*signbit<mode>2>"): Changed mode of first operand.
	("isinf<mode>2"): Changed mode of first operand.
	("*TDC_insn"): Adaptation for DFP modes.

2008-01-22  Ben Elliston  <bje@au.ibm.com>

	* tree.c (check_qualified_type): Improve function description.

2008-01-21  Jason Merrill  <jason@redhat.com>

	PR c++/34196
	* tree.h (TRY_CATCH_IS_CLEANUP): New macro.
	* tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
	if it is set.

2008-01-21  DJ Delorie  <dj@redhat.com>

	* doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
	return zero.

2008-01-21  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34856
	* tree-cfg.c (verify_expr): Allow all invariant expressions
	instead of just constant class ones as reference argument.
	* tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
	like any other constant.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.

2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>

	* regmove.c (fixup_match_1): Update call crossed frequencies.

2008-01-21  Richard Guenther  <rguenther@suse.de>

	PR c/34885
	* tree-inline.c (setup_one_parameter): Deal with mismatched
	types using a VIEW_CONVERT_EXPR.

2008-01-21  Alon Dayan  <alond@il.ibm.com>
	    Olga Golovanevsky  <olga@il.ibm.com>

	PR tree-optimization/34701
	* ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
	when the structure size is not a power of 2.

2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* doc/install.texi: Add doc for --enable-checking=df.

2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR rtl-optimization/34808
	* emit-rtl.c (try_split): Handle REG_RETVAL notes.

2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>

	* global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
	input.

2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>

	PR rtl-optimization/26854
	PR rtl-optimization/34400
	* ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
	DF_RD->gen.
	* df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
	(df_rd_bb_info.expanded_lr_out): New.
	* loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
	* loop_iv.c (iv_analysis_loop_init): Ditto.
	* df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
	df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
	Added code to allocate, initialize or free expanded_lr_out.
	(df_rd_bb_local_compute_process_def): Restructured to make
	more understandable.
	(df_rd_confluence_n): Add code to do nothing with fake edges and
	code to no apply invalidate_by_call sets if the sets are being trimmed.
	(df_lr_local_finalize): Renamed to df_lr_finalize.
	(df_live_local_finalize): Renamed to df_live_finalize.

2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR target/34831
	* config/mips/mips.md (div<mode>3): Use <recip_condition> when
	deciding whether to use reciprocal instructions.

2008-01-19  Uros Bizjak  <ubizjak@gmail.com>

	* dwarf2out.c (dwarf2out_switch_text_section): Do not call
	dwarf2out_note_section_used if cold_text_section is NULL.

2008-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR gcov-profile/34610
	* tree-cfg.c (make_edges): Mark both outgoing edges from
	OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
	* omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
	from OMP_FOR and OMP_CONTINUE outgoing edges.

	* tree-profile.c (tree_profiling): Return early if
	cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
	at the end.
	* omp-low.c (expand_omp_parallel): Copy after_tree_profile
	from cfun to child_cfun.
	* function.h (struct function): Add after_tree_profile bit.

2008-01-19  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.S (_exit): Disable interrupt.

2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
	    Steven Bosscher  <stevenb.gcc@gmail.com>

	PR rtl-optimization/26854
	PR rtl-optimization/34400
	* df-problems.c (df_live_scratch): New scratch bitmap.
	(df_live_alloc): Allocate df_live_scratch when doing df_live.
	(df_live_reset): Clear the proper bitmaps.
	(df_live_bb_local_compute): Only process the artificial defs once
	since the order is not important.
	(df_live_init): Init the df_live sets only with the variables
	found live by df_lr.
	(df_live_transfer_function): Use the df_lr sets to prune the
	df_live sets as they are being computed.
	(df_live_free): Free df_live_scratch.

2008-01-18  Ian Lance Taylor  <iant@google.com>

	* common.opt: Add fmerge-debug-strings.
	* dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
	flag_merge_debug_strings rather than flag_merge_constants.
	* doc/invoke.texi (Option Summary): Mention
	-fmerge-debug-strings.
	(Debugging Options): Document -fmerge-debug-strings.

2008-01-18  Ian Lance Taylor  <iant@google.com>

	PR c++/33407
	* tree.h (DECL_IS_OPERATOR_NEW): Define.
	(struct tree_function_decl): Add new field operator_new_flag.
	* tree-inline.c (expand_call_inline): When inlining a call to
	operator new, force the return value to go into a variable, and
	set DECL_NO_TBAA_P on that variable.
	* c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.

2008-01-18  Uros Bizjak  <ubizjak@gmail.com>

	PR debug/34484
	* dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
	DWARF2_DEBUGGING_INFO.
	(dwarf2out_note_section_used): Ditto.  Add prototype.
	(have_multiple_function_sections, text_section_used,
	cold_text_section_used, *cold_text_sections): Move declarations
	before their uses.

2008-01-17  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
	field and add signal_ra.
	* config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
	assignments to frame state pc.  Move end of stack check after
	MD_FALLBACK_FRAME_STATE_FOR.
	(uw_update_context_1): Use frame state signal_regs if set, instead
	of checking signal_frame flag.
	(uw_update_context): Use frame state signal_ra if set.
	* config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
	* config/xtensa/linux-unwind.h: New file.

2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>

	* modulo-sched.c (get_sched_window): Fix comment typo.

2008-01-17  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/34648
	* tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.

2008-01-17  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
	* config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.

2008-01-17  Seongbae Park  <seongbae.park@gmail.com>

	PR rtl-optimization/34400
	* df-core.c (df_worklist_dataflow_overeager,
	df_worklist_dataflow_doublequeue): New functions.
	(df_worklist_dataflow): Two different worklist solvers.
	* params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
	New param.

2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>

	PR testsuite/34821
	* doc/invoke.texi: Document the dependence on pthread for fopenmp
	and ftree-parallelize-loops.

2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>

	PR rtl-optimization/34826
	* loop-doloop (doloop_modify): Update the REG_BR_PROB note.

2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>

	* global.c (find_reg): Mark the eh regs as used if necessary.
	* ra-conflict.c (global_conflicts): Set no_eh_reg flag.
	* ra.h (struct allocno): no_eh_reg field added.  Changed
	no_stack_reg type to bitfield.

2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (substitute_in_expr): Add missing 'break'.

2008-01-17  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34825
	* tree-ssa-math-opts.c (is_division_by): Do not recognize
	x / x as division to handle.

2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
	"-pthread" is specified.
	* pa-hpux11.h (LIB_SPEC): Likewise.

2008-01-16  Janis Johnson  <janis187@us.ibm.com>
	    Peter Bergner  <bergner@vnet.ibm.com>

	PR rtl-optimization/33796
	* sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.

2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR libgfortran/34699
	* pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
	static links.
	* pa-hpux10.h (LINK_SPEC): Likewise.
	* pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.

2008-01-16  Richard Guenther  <rguenther@suse.de>

	PR middle-end/32628
	* fold-const.c (fold_convert_const_int_from_int): Do not
	set overflow if that occured only because of a sign extension
	change when converting from/to a sizetype with the same
	precision and signedness.

2008-01-16  Uros Bizjak  <ubizjak@gmail.com>

	PR debug/34249
	* dwarf2out.c (output_call_frame_info): Move output of FDE initial
	location address to the correct place.  Update copyright year.

2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>

	* lambda-code.c (lambda_transform_legal_p): Handle the case of
	no dependences in the dependence_relations vector.

2008-01-16  Jan Hubicka  <jh@suse.cz>

	PR rtl-optimization/31396
	* regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
	* cfg.c (dump_reg_info): Print it.
	* regs.h (struct reg_info_t): add freq_calls_crossed.
	(REG_FREQ_CALLS_CROSSED): New macro.
	* global.c (global_alloc): Compute freq_calls_crossed for allocno.
	(find_reg): Update call of CALLER_SAVE_PROFITABLE.
	* regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
	regmove_optimize): Update call crossed frequencies.
	* local-alloc.c (struct qty): Add freq_calls_crossed.
	(alloc_qty): Copute freq_calls_crossed.
	(update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
	(find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
	* ra.h (struct allocno): Add freq_calls_crossed.

2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
	libgomp when compiling with ftree-parallelize-loops.
	(GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.

2008-01-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34769
	* tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
	* tree.c (int_cst_value): Instead make this function more
	permissive in what it accepts as valid input.  Document this
	function always sign-extends the value.

2008-01-16  Jakub Jelinek  <jakub@redhat.com>
	    Richard Guenther  <rguenther@suse.de>

	PR c/34668
	* gimplify.c (fold_indirect_ref_rhs): Rename to ...
	(gimple_fold_indirect_ref_rhs): ... this.
	(gimple_fold_indirect_ref): New function with foldings
	that preserve lvalueness.
	(gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
	* tree-flow.h (gimple_fold_indirect_ref): Declare.
	* tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
	to fold an INDIRECT_REF, fall back to the old use of
	fold_indirect_ref_1.

2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-data-ref.c (subscript_dependence_tester_1): Call
	free_conflict_function.
	(compute_self_dependence): Same.

2008-01-16  Uros Bizjak  <ubizjak@gmail.com>

	PR debug/34249
	* debug.h (dwarf2out_switch_text_section): Move declaration from ...
	* dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
	function global.
	* final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
	Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
	for DWARF2_UNWIND_INFO targets.

2008-01-16  Richard Guenther  <rguenther@suse.de>

	PR c/34768
	* c-typeck.c (common_pointer_type): Do not merge inconsistent
	type qualifiers for function types.

2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
	loop_iterator li from previous commit.

2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-parloops.c (gen_parallel_loop): Free loop bound estimations.

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

	* tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
	(parallelize_loops): Don't parallelize irreducible components.

2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/24924
	* c-opts (c_common_post_options): Do not enable CPP
	flag_pedantic_errors by default.

2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/31944
	* cse.c (remove_pseudo_from_table): New function.
	(merge_equiv_classes): Use above function to remove pseudo-registers.
	(invalidate): Likewise.

2008-01-13  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34601
	* emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
	instead of TYPE_MODE to deal with calls from expand_one_error_var.

2008-01-13  Uros Bizjak  <ubizjak@gmail.com>

	* gcse.c (cprop_jump): Call validate_unshare_change instead of
	validate_change to unshare the source of the PC set.

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

	PR middle-end/32135
	* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
	references above array bounds.  This might trigger bounds checks for
	pointers to arrays.

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

	* tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
	new_replaceable_dependencies.

2008-01-12  Doug Kwan  <dougkwan@google.com>

	* c-decl.c (grokdeclarator): Use OPT_Wignored_qualifiers
	instead of OPT_Wreturn_type in warning due to ignored return type
	qualifiers.
	* c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
	options included in -Wextra.
	* c.opt: New option -Wignored_qualifiers.
	* doc/invoke.texi (Warning Options, -Wextra): Add new option
	-Wignore_qualifiers.
	(-Wignored-qualifiers): Document.
	(-Wreturn-type): Remove description of functionality now handled
	by -Wignored-qualifiers.

2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/33788
	* fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
	NOP_EXPR if it is between integral types with the same precision.

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

	PR other/28023
	* invoke.texi (max-inline-recursive-depth): Fix default value.

2008-01-12  Zdenek Dvorak  <ook@ucw.cz>

	* tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
	correct type.

2008-01-11  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (override_options): Set flag_shlib.

2008-01-11  James E. Wilson  <wilson@specifix.com>

	PR target/26015
	* config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.

2008-01-11  Anatoly Sokolov  <aesok@post.ru>

	* config/avr/avr.c (expand_prologue, expand_epilogue): Don't
	save/restore frame pointer register and don't use 'call-prologues'
	optimization in function with "OS_task" attribute.

2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/31309
	* expr.c (copy_blkmode_from_reg): Use a mode suited to the size
	when copying to memory.

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

	PR rtl-optimization/30905
	* cfgcleanup.c: Include dce.h
	(crossjumps_occured): New global variable.
	(try_crossjump_bb): Exit loop after finding a fallthru edge.
	If something changed, set crossjumps_occured to true.
	(try_optimize_cfg): Clear crossjumps_occured at the beginning.
	Don't add/remove fake edges to exit here...
	(cleanup_cfg): ...but do it here, when crossjumping.
	Run a fast DCE when successful crossjumps occured in the latest
	iteration of try_optimize_cfg.

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

	* tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
	(struct vn_unary_op_s): Likewise.
	(vn_reference_insert): Free old reference on hash collision.

2008-01-10  Raksit Ashok  <raksit@google.com>

	PR rtl-optimization/27971
	* combine.c (find_split_point): Split PLUS expressions which are
	inside a MEM rtx, and whose first operand is complex.

2008-01-10  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
	(m32c_hard_regno_nregs): ...this, which is now a wrapper.
	(m32c_hard_regno_ok): Call the underlying function.

2008-01-10  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34683
	* tree-cfg.c (tree_merge_blocks): Do not go through the
	full-blown folding and stmt updating path if we just deal
	with virtual operands.
	* tree-ssa-copy.c (may_propagate_copy): Do not short-cut
	test for abnormal SSA_NAMEs.

2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>

	PR middle-end/34641
	* reload.c (push_reload): Add assertions.  All constants from
	reg_equiv_constant should have been used for replacing the respective
	pseudo earlier.
	(find_reloads_address): Invoke find_reloads_address_part for
	constant taken from the reg_equiv_constant array.

2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>

	* tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
	field (valnum) the first in the struct.  Replace bools with
	unit bit fields.

2008-01-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34651
	* tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
	types and ordering for masking and converting.

2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/34017
	* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
	also for PHI_NODE expressions.

2008-01-09  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/34708
	* tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
	based on number of case labels.
	(init_inline_once): Remove switch_cost.
	* tree-inline.h (eni_weights_d): Remove switch_cost.

2008-01-09  Richard Guenther  <rguenther@suse.de>
	Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/30132
	* gimplify.c (gimplify_cond_expr): Do not create an addressable
	temporary if an rvalue is ok or an lvalue is not required.

2008-01-09  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34458
	* tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
	adjust return type.

2008-01-09  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34679
	* tree.c (host_integerp): Check for sizetype only if the
	type is an integer type.

2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>

	PR debug/26364
	* opts.c (decode_options): Disable inlining of functions called
	once if not in unit-at-a-time mode.

2008-01-09  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.

2008-01-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/31863
	* tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
	out early if the result will be unused.

2008-01-08  Uros Bizjak  <ubizjak@gmail.com>

	PR target/34709
	Revert:

	2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
	* config/i386/i386.c (ix86_builtin_reciprocal): Remove check
	for TARGET_RECIP.

2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>

	* config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
	for vectorization tuned.

2008-01-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34683
	* tree-ssa-operands.c (operand_build_cmp): Export.
	* tree-ssa-operands.h (operand_build_cmp): Declare.
	* tree-vn.c (vuses_compare): Remove.
	(sort_vuses): Use operand_build_cmp.
	(sort_vuses_heap): Likewise.
	* tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
	to re-use old VEC if available.  Do not sort already sorted VUSEs.
	(vdefs_to_vec): Do not sort already sorted VDEFs.

2008-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/34694
	* omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.

2008-01-08  Uros Bizjak  <ubizjak@gmail.com>

	PR target/34702
	* doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
	limitations of reciprocal sequences on x86 targets.

2008-01-08  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34683
	* tree-flow-inline.h (var_ann): Remove overzealous asserts.

2008-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR target/34622
	* config/darwin.c (darwin_mergeable_string_section): Don't use
	.cstring if int_size_in_bytes != TREE_STRING_LENGTH.

2008-01-07  Uros Bizjak  <ubizjak@gmail.com>

	PR target/34682
	* config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
	negxf2.  Macroize expander using X87MODEF mode iterator.  Change
	predicates of op0 and op1 to register_operand.
	(abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
	expander using X87MODEF mode iterator.  Change predicates of
	op0 and op1 to register_operand.
	("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
	corresponding patterns and macroize using MODEF macro.  Change
	predicates of op0 and op1 to register_operand and remove
	"m" constraint. Disparage "r" alternative with "!".
	("*absneg<mode>2_i387"): Rename from corresponding patterns and
	macroize using X87MODEF macro.  Change predicates of op0 and op1
	to register_operand and remove "m" constraint.  Disparage "r"
	alternative with "!".
	(absneg splitter with memory operands): Remove.
	("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
	patterns and macroize using X87MODEF mode iterator.
	* config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
	Change predicate of op1 to register_operand.
	* config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
	for memory operands.

2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>

	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.

2008-01-07  Richard Guenther  <rguenther@suse.de>

	* basic-block.h (struct edge_def): Pair dest_idx with goto_locus
	fields.

2008-01-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34683
	* tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
	VOPs of the needed size to save memory.  Use VEC_quick_push
	to save compile-time.
	(vdefs_to_vec): Likewise.

2008-01-07  Sa Liu  <saliu@de.ibm.com>

	* config/spu/spu.md (divdf3): Genetate inline code for double
	division.  The implementation doesn't handle INF or NAN, therefore it
	only applies when -ffinite-math-only is given.

2008-01-06  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/34680
	* c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
	* doc/cpp.texi ([Common Predefined Macros]): Document.

2008-01-06  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
	order to use commutative addition instead of subtraction.

2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
	    Mircea Namolaru  <namolaru@il.ibm.com>
	    Vladimir Yanovsky  <yanov@il.ibm.com>
	    Revital Eres  <eres@il.ibm.com>

	PR tree-optimization/34263
	* tree-outof-ssa.c (process_single_block_loop_latch,
	contains_tree_r): New functions.
	(analyze_edges_for_bb): Call process_single_block_loop_latch
	function to empty single-basic-block latch block if possible.

2008-01-05  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_builtin_reciprocal): Remove check
	for TARGET_RECIP.
	(ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.

2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>

	* c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.

2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.

2008-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/34618
	* tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
	flag from T.

2008-01-05  Uros Bizjak  <ubizjak@gmail.com>

	PR target/34673
	* config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
	in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
	Update copyright year.

	* config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
	Update copyright year.
	* config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
	using NR fixup.

2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>

	* tree-vrp.c (find_conditional_asserts): Remove redundant check that
	edge does not point to current bb before changing need_assert.

2008-01-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34029
	* tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
	for verifying purposes if they are is_gimple_min_invariant.

2008-01-04  Aldy Hernandez  <aldyh@redhat.com>

	PR tree-optimization/34448
	PR tree-optimization/34465
	* gimplify.c (gimplify_init_constructor): Add new parameter
	notify_temp_creation.  Use it.
	(gimplify_modify_expr_rhs): Take volatiles into account when
	optimizing constructors.
	Do not optimize constructors if gimplify_init_constructor will dump to
	memory.
	* gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
	* gcc.c-torture/compile/pr34448.c: New.

2008-01-04  Jakub Jelinek  <jakub@redhat.com>

	PR gcov-profile/34609
	* tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
	return_slot if result is TREE_ADDRESSABLE.

2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>

	* config/mips/mips.md (sqrt_condition): Tweak comment.
	(recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.

2008-01-03  Tom Tromey  <tromey@redhat.com>

	PR c/34457
	* c-common.c (c_type_hash): Handle VLAs.

2008-01-03  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/31081
	* tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
	0 when inlining and not inlining to first basic block.
	(remap_decl): When var is initialized to 0, don't set default_def.
	(expand_call_inline): Set entry_bb.
	* tree-inline.h (copy_body_data): Add entry_bb.

2008-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/34619
	* cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
	before returning.

	PR tree-optimization/29484
	* tree-inline.c (inline_forbidden_p_2): New function.
	(inline_forbidden_p): Disallow inlining if some static var
	has an address of a local LABEL_DECL in its initializer.
	* doc/extend.texi (Labels as Values): Document &&foo behaviour
	vs. inlining.

2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/34635
	* tree-data-ref.c (add_other_self_distances): Make sure that the
	evolution step is constant.

2008-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/34608
	* omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.

2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>

	* tree-sra.c (scalarize_init): Insert the generate_element_init
	statements after the generate_element_zero statements.

2008-01-02  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34093
	PR middle-end/31976
	* tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
	for very large number of operands instead of ICEing.

2008-01-02  Arthur Norman  <acn1@cam.ac.uk>

	PR target/34013
	* config/i386/i386.c (ix86_expand_prologue): Save red-zone
	while stack probing.

2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>

	* c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
	in C++0x mode.

2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>

	PR libmudflap/26442
	* tree-mudflap.c (mx_register_decls): Guard warning by
	!DECL_ARTIFICIAL check.

2008-01-01  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
	sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
	sse5_perm<mode>): Fix constraints.


Copyright (C) 2008 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.
