2008-06-06  Release Manager

	* GCC 4.3.1 released.

2008-06-04  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 || current_function_profile.
	* config/mips/mips.md (loadgp_blockage): Use SI rather than DI.

2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-nested.c (check_for_nested_with_variably_modified): Fix typo.

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

	PR tree-optimization/36339
	* tree-ssa-alias.c (set_initial_properties): Move pt_anything
	and subvariable clobbering code out of the loop.

2008-05-28  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-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-26  Kai Tietz  <kai.tietz@onevision.com>

	PR target/36321
	* config/i386/i386.md (allocate_stack_worker_64): Make sure 
	argument operand in rax isn't removed.

2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
	    Gerald Pfeifer  <gerald@pfeifer.com>

	* 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-22  David Daney  <ddaney@avtrex.com>

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

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-21  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	PR tree-optimization/36181
	Backport from mainline:
	* tree-parloops.c (loop_has_vector_phi_nodes): New.
	(parallelize_loops): Don't parallelize when the loop has vector
	phi nodes.

2008-05-21  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.

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

	Backport from mainline:
	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.

	PR tree-optimization/34330
	* tree-ssa-alias.c (get_smt_for): Only assert that accesses
	through the pointer will alias the SMT.

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  Joseph Myers  <joseph@codesourcery.com>

	* doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
	$SOURCEDIR/include.

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

	PR middle-end/36194
	* combine.c (check_conversion): Rename 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-19  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.

2008-05-14  Michael Meissner  <michael.meissner@amd.com>

	Backport from mainline:
	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-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-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36245
	* tree-ssa-address.c (add_to_parts): Deal with non-pointer
	bases.

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

	Backport from mainline:
	2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.

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-13  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-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  Hans-Peter Nilsson  <hp@axis.com>

	Backport from mainline:
	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-05-11 Danny Smith  <dannysmith@users.sourceforge.net>

	Backport from mainline:
	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-05-11  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline:
	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  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36187
	* tree-dfa.c (dump_variable): Correct dumping of
	SFT_BASE_FOR_COMPONENTS_P.
	* tree-ssa-structalias.c (set_uids_in_ptset): Set
	SFT_UNPARTITIONABLE_P correctly for the union case.

2008-05-09  Steve Ellcey  <sje@cup.hp.com>

	Backport from mainline:
	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-08  Peter Bergner  <bergner@vnet.ibm.com>

	Revert
	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-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-05-09  Steve Ellcey  <sje@cup.hp.com>

	Backport from mainline:
	2008-05-08  Steve Ellcey  <sje@cup.hp.com>

	* stmt.c (expand_stack_restore): Change sa mode if needed.

2008-05-08  David Edelsohn  <edelsohn@gnu.org>

	PR target/36090
	* config/rs6000/rs6000.c (print_operand_address): If the TOC
	address RHS contains an offset, output it as well.

	PR target/36182
	Revert:
	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  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline:
	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-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  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-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-05  Marius Strobl <marius@FreeBSD.org>

	* gthr-posix.h (__gthread_active_p): Use the Solaris implementation
	for FreeBSD as well.
	* gthr-posix95.h: Likewise.

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-05-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/34973
	* opts.c (set_Wstrict_aliasing): Handle the turn-off case.

2008-05-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR bootstrap/35169
	* optc-gen.awk: Work around HP-UX/IA awk bug.

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

	PR target/36095
	* config/i386/i386.c (bdesc_crc32): Remove OPTION_MASK_ISA_64BIT
	from IX86_BUILTIN_CRC32QI.  Add OPTION_MASK_ISA_64BIT to
	IX86_BUILTIN_CRC32DI.
	(ix86_init_mmx_sse_builtins): Add OPTION_MASK_ISA_64BIT to
	IX86_BUILTIN_CRC32DI.

	* doc/extend.texi: Correct __builtin_ia32_crc32di.

2008-04-30  Ian Lance Taylor  <iant@google.com>

	Backport from mainline:
	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-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-14  Ian Lance Taylor  <iant@google.com>

	* fold-const.c (fold_overflow_warning): Remove assertion.

	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-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-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-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>

	* config.gcc (crx-*-elf): Remove deprecation.
	
2008-04-24  David Edelsohn  <edelsohn@gnu.org>

	Backport from mainline:
	2008-04-09  David Edelsohn  <edelsohn@gnu.org>

	PR libstdc++/35597
	* toplev.c (process_options): Remove -ffunction-sections debugging
	warning.

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.

	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-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  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-23  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36021
	* c-common.c (handle_alloc_size_attribute): Use type_num_arguments.

2008-04-23  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-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-17  Volker Reichelt  <v.reichelt@netcologne.de>

	PR c/35744
	* attribs.c (decl_attributes): Return early on errorneous node.

	PR c/35436
	* c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.

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  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline:
	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  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-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-14  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
	Return true if the operand is an INTEGER_CST.

2008-04-12  James E. Wilson  <wilson@tuliptree.org>

	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-04-09 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-09  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-08  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_widened_comparison): Do not allow
	sign-changes that change the result.

2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>

	* gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.

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

	PR tree-optimization/35833
	* tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
	results from fold_binary_to_constant.
	(compare_values_warnv): Likewise.

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

	PR target/35364
	* tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.

	PR c/35440
	* c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
	for all types.

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-02  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-04-02  Andrew Pinski  <pinskia@gmail.com>

	PR tree-opt/35431
	* tree-ssa-phiopt.c (conditional_replacement): Return early for
	complex types.

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  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-03-28  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-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-27  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline:
	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-25  Richard Guenther  <rguenther@suse.de>

	Backport from mainline:
	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-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-19  Michael Matz  <matz@suse.de>

	Backport from mainline:
	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  Michael Matz  <matz@suse.de>

	* gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.

2008-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* 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-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* cse.c (cse_extended_basic_block): Invalidate artificial defs
	at bb start.

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  Richard Guenther  <rguenther@suse.de>

	Backport from mainline:
	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-18  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/35611
	* gimplify.c (gimplify_expr): Gimplify second operand of
	OMP_ATOMIC_LOAD.

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  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-14  Richard Guenther  <rguenther@suse.de>

	Backport from mainline:
	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-03-14  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-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  Uros Bizjak  <ubizjak@gmail.com>

	PR target/35540
	* config/i386/i386.md (paritysi2, paritydi2): Use register_operand
	constraint for operand 1.
	(paritysi2_cmp): Use register_operand constraint for operand 2.
	Use earlyclobber modifier for operand 1.  Remove support for
	memory operands.
	(paritydi2_cmp): Use register_operand constraint for operand 3.
	Use earlyclobber modifier for operand 1.  Remove support for
	memory operands.

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-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  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline:
	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-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-09  Kaz Kojima  <kkojima@gcc.gnu.org>

	Backport from mainline:
	PR target/35225
	* config/sh/sh.c (find_barrier): Don't go past 'from' argument.

2008-03-09  Kaz Kojima  <kkojima@gcc.gnu.org>

	Backport from mainline:
	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-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-07  Joseph Myers  <joseph@codesourcery.com>

	* doc/include/texinfo.tex: Update to version 2008-03-07.10.

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

	Backport from mainline:
	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-06  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline:
	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-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  Daniel Jacobowitz  <dan@codesourcery.com>

	* expmed.c (extract_bit_field): Always use adjust_address for MEM.

2008-03-06  Joseph Myers  <joseph@codesourcery.com>

	PR target/33963
	* tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
	other than structures and unions.

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

	* BASE-VER: Set to 4.3.1.
	* DEV-PHASE: Set to prerelease.

2008-03-05  Release Manager

	* GCC 4.3.0 released.

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  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline:
	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-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-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  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline:
	2008-02-27  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-28  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline:
	2008-02-25  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
		    Uros Bizjak <ubizjak@gmail.com>

	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-27  Richard Guenther  <rguenther@suse.de>

	Backport from mainline:
	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.

	PR middle-end/34971
	* 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-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-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-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-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  Michael Matz  <matz@suse.de>

	PR target/35264
	* config/i386/i386.c (ix86_expand_branch): Add missing breaks.

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  Joseph Myers  <joseph@codesourcery.com>

	* doc/invoke.texi, doc/standards.texi: Refer to
	gcc-4.3/c99status.html.

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-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  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  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  Jakub Jelinek  <jakub@redhat.com>

	* DEV-PHASE: Mark as prerelease.

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.
	* testsuite/gcc.target/spu/intrinsics-3.c: New. Test error messages.

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.
