2009-01-24  Release Manager

	* GCC 4.3.3 released.

2009-01-20  Joseph Myers  <joseph@codesourcery.com>

	PR other/38758
	* longlong.h: Update copyright years.  Use soft-fp license
	notice.

2009-01-19  Richard Guenther  <rguenther@suse.de>

	Backport from mainline
	2008-07-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36765
	* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
	aliases from HEAP vars to SMTs.

2009-01-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa64-hpux.h (LIB_SPEC): Link against librt when building static
	openmp applications.
	* pa-hpux11.h (LIB_SPEC): Likewise.

	* pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
	function when not using named sections on targets with named sections
	if branch distance is less than 262132.

	* pa.c (last_address): Change to unsigned.
	(update_total_code_bytes): Change argument to unsigned.  Don't
	check if insn addresses are set.
	(pa_output_function_epilogue): Set last_address to UINT_MAX if insn
	addresses are not set.
	(pa_asm_output_mi_thunk): Handle wrap when updating last_address.

2009-01-16  Uros Bizjak  <ubizjak@gmail.com>

	* sched-deps.c (sched_analyze_2)[UNSPEC_VOLATILE]: Flush pending
	memory loads and stores.
	
2009-01-11  Matthias Klose  <doko@ubuntu.com>

	PR middle-end/38616, backport from mainline:
	2008-05-04  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
	(*strmovsi_rex_1): Ditto.
	(*strsetsi_1): Ditto.
	(*strsetsi_rex_1): Ditto.

	(add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
	adddicc expanders using SWI mode iterator.

2009-01-11  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline:
	2008-12-22  Uros Bizjak  <ubizjak@gmail.com>

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

	2008-03-31  James E. Wilson  <wilson@tuliptree.org>

	* varasm.c (output_constant_pool_1): In LABEL_REF check,
	use tmp consistently.

2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>

	PR debug/7055
	* gcc/mips-tfile.c (parse_def): Fix parsing of def strings
	starting with digits.

2009-01-11  Ira Rosen  <irar@il.ibm.com>

	Backport from mainline:
	2009-01-08  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/37194
	* tree-vect-transform.c (vect_estimate_min_profitable_iters):
	Don't add the cost of cost model guard in prologue to scalar
	outside cost in case of known number of iterations.

2009-01-11  Ira Rosen  <irar@il.ibm.com>

	Backport from mainline:
	2008-12-29  Dorit Nuzman  <dorit@il.ibm.com>
		    Ira Rosen  <irar@il.ibm.com>

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

2009-01-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (output_call): Relocate non-jump insns in the delay slot of
	long absolute calls when generating PA 2.0 code.

2009-01-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38752
	* tree-ssa-structalias.c (set_uids_in_ptset): Do not assert we
	find a subvariable as we might have invalid accesses.

2009-01-07  Danny Smith  <dannysmith@users.sourceforge.net>

	PR target/36654
	* config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Check
	DECL_NOT_REALLY_EXTERN rather than !DECL_EXTERNAL

2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
	hosted cross-compilers generating less efficient code.

2009-01-07  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline:
	2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
	(get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.

2008-12-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/38565
	* gimplifier.c (gimplify_init_constructor): For constant vector
	CONSTRUCTORs use GENERIC_TREE_OPERAND instead of TREE_OPERAND.

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

	PR target/38062
	Backport from mainline:
	2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".

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

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

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

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

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

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

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

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

	Backport from trunk the fix for PR38051.

	PR tree-optimization/38478
	* tree-ssa-structalias.c (update_alias_info): Manually find
	written variables.

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

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

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

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

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

	Backport from mainline:
	2008-05-15  Janis Johnson  <janis187@us.ibm.com>

	* doc/sourcebuild.texi: Document support for torture tests.

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

	Backport from mainline:
	2008-10-18  Jakub Jelinek  <jakub@redhat.com>
		    Janis Johnson  <janis187@us.ibm.com>

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

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

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

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

	* cse.c (equiv_constant): Fix pasto.

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

	Backport from mainline:
	2008-12-02  Danny Smith   <dannysmith@users.sourceforge.net>

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

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

	Backport from mainline:
	2008-11-26  Janis Johnson  <janis187@us.ibm.com>

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

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

	Backport from mainline:
	2008-11-25  Uros Bizjak  <ubizjak@gmail.com>

	PR target/38254
	* config/i386/sync.md (memory_barrier_nosse): New insn pattern.
	(memory_barrier): Generate memory_barrier_nosse insn for
	!(TARGET_64BIT || TARGET_SSE2).
	* config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.

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

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

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

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

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

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

2008-11-24  Jakub Jelinek  <jakub@redhat.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* df-scan.c (df_get_call_refs): For unconditional noreturn calls
	add EH_USES regs as artificial uses.
	(df_get_entry_block_def_set): Don't handle EH_USES here.

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

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

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

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

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

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

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

	PR tree-optimization/37868
	* tree-ssa-structalias.c (set_uids_in_ptset): Add SFTs based on
	pointed to variable and access size.

	Backport from mainline:
	2008-07-07  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
	(new_var_info): Set it to false.
	(solution_set_add): Correctly handle pointers outside a var and
	inside a field.
	(type_safe): Treat variables with is_full_var properly.
	(do_sd_constraint): Likewise.
	(do_ds_constraint): Likewise.
	(process_constraint): Remove zeroing offset for !use_field_sensitive.
	(get_constraint_for_ptr_offset): New function.
	(get_constraint_for_component_ref): Handle is_full_vars properly.
	(get_constraint_for): Handle POINTER_PLUS_EXPR.
	(handle_ptr_arith): Remove.
	(find_func_aliases): Handle POINTER_PLUS_EXPR through generic
	get_constraint_for code.
	(create_function_info_for): For parameter and result varinfos set
	is_full_var flag.
	(create_variable_info_for): Set is_full_var flag whenever we
	just created a single varinfo for a decl.
	(init_alias_vars): Initialize use_field_sensitive from
	max-fields-for-field-sensitive parameter.

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

	Backport from mainline:
	2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR target/37640
	* config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
	address to a register before taking the lower part.

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

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

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

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

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

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

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

	Backport from mainline:
	2008-06-06  Uros Bizjak <ubizjak@gmail.com>

	PR rtl-optimization/36438
	* cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
	for vector shifts with constant scalar shift operands.

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

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

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

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

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

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

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

	Backport from mainline:

	PR bootstrap/33304
	* vec.h (VEC_TA): New.
	(DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
	DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
	* c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
	(C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
	(C_COMMON_FIXED_TYPES): Remove first arg.
	(C_COMMON_FIXED_MODE_TYPES): Likewise.
	* tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
	MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
	not to use empty macro arguments.

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

	Backport from mainline:
	2008-11-10  Ralph Loader  <suckfish@ihug.co.nz>

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

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

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

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

	PR rtl-optimization/37489
	* cse.c (fold_rtx): Don't return const_true_rtx for float
	compare if FLOAT_STORE_FLAG_VALUE is undefined.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Backport from mainline:
	2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>

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

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

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

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

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

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

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

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

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

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

	* tree-ssa-alias-warnings.c (skip_this_pointer): Skip pointers
	for which we merged aliases of SMTs into their points-to sets.
	* real.c (vax_f_format): Add missing initializer.

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

	* tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.

2008-10-17  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/37102
	* tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args  
	from a node. Check to see if another PHI is dead.
	(eliminate_useless_phis): Rename from eliminate_virtual_phis and remove
	real PHIs which have no uses.
	(rewrite_out_of_ssa): Call eliminate_useless_phis.

2008-10-08  Simon Martin  <simartin@users.sourceforge.net>

	PR c/35437
	* expr.c (count_type_elements): Handle ERROR_MARK.

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

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

	PR middle-end/37731
	* expmed.c (expand_mult): Properly check DImode constant in
	CONST_DOUBLE.

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

	* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
	Return true for non-addressable GIMPLE operands.

2008-10-04  Gerald Pfeifer  <gerald@pfeifer.com>

	* config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.

2000-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/37603
	* pa.c (legitimize_pic_address): Force function labels to memory in
	word mode.

2008-10-01  Richard Henderson  <rth@redhat.com>

	PR tree-opt/35737
	* tree-complex.c (set_component_ssa_name): Don't optimize
	is_gimple_min_invariant values with ssa_names in abnormal phis.

2008-09-30  Joseph Myers  <joseph@codesourcery.com>

	* ifcvt.c (noce_emit_store_flag): If using condition from original
	jump, reverse it if if_info->cond was reversed.

2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/36575
	* fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.

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

	PR c/37645
	* c-common.c (handle_weakref_attribute): Ignore the attribute unless
	the decl is a VAR_DECL or FUNCTION_DECL.

2008-09-24  Richard Henderson  <rth@redhat.com>

	* dwarf2.h (DW_OP_GNU_encoded_addr): New.
	* unwind-dw2.c (execute_stack_op): Handle it.

2008-09-21  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/37539
	* tree-vect-transform.c (vect_transform_strided_load): Save vector
	statement in related statement field only for the first load of the
	group of loads with the same data reference.

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

	Backport from mainline:
	2008-08-29  Richard Guenther  <rguenther@suse.de>

	PR middle-end/37236
	* tree-ssa-structalias.c (intra_create_variable_infos): Mark
	PARAM_NOALIAS tags with is_heapvar.
	* tree-ssa-operands.c (access_can_touch_variable): Offset
	based tests do not apply for heapvars.  Fix offset test.

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

	PR tree-optimization/36343
	* tree-ssa-structalias.c (struct variable_info): Remove
	directly_dereferenced member.
	(new_var_info): Do not set it.
	(process_constraint_1): Likewise.
	(set_uids_in_ptset): Remove TBAA-pruning code.
	(find_what_p_points_to): Do not pass TBAA-pruning related
	parameters.

2008-09-19  Uros Bizjak  <ubizjak@gmail.com>

	Backport from mainline:
	2008-09-18  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/37544
	* regrename.c (maybe_mode_change): Exit early when copy_mode
	is narrower than orig_mode and narrower than new_mode.

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

	Backport from mainline:
	2008-04-08  Janis Johnson  <janis187@us.ibm.com>
	PR target/35620
	* config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
	kinds of indirect references.

	Backport from mainline:
	2008-04-03  Janis Johnson  <janis187@us.ibm.com>

	PR target/35713
	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
	constants of the appropriate size for runtime calculations.

	Backport from mainline:
	2008-04-03  Janis Johnson  <janis187@us.ibm.com>
	PR c/35712
	* dfp.c (decimal_from_decnumber): Retain trailing zeroes for
	decimal-float literal constant zero.

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

	* doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
	Mention -march=z9-109 and z9-ec.

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

	PR target/37466
	* config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
	scratch register after 'set' pattern.

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

	* emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
	information passed to mark_reg_pointer.
	* explow.c (force_reg): Likewise.

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

	* config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
	when building for the celledp architecture.

2008-09-09  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>

	Improved branch hints, safe hints, and scheduling for Cell SPU.

	* haifa-sched.c (sched_emit_insn) : Define.
	* sched-int.h (sched_emit_insn) : Add prototype.
	* doc/invoke.texi (-mdual-nops, -mhint-max-nops,
	-mhint-max-distance -msafe-hints) : Document.
	* config/spu/spu.c (spu_flag_var_tracking): New.
	(TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
	TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
	TARGET_ASM_FILE_START): Define.
	(TARGET_SCHED_ADJUST_PRIORITY): Remove.
	(STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
	(spu_emit_branch_hint): Add blocks argument.
	(insert_branch_hints, insert_nops): Remove.
	(pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
	uses_ls_unit, spu_sched_init_global, spu_sched_init,
	spu_sched_reorder, asm_file_start): New functions.
	(clock_var, spu_sched_length, pipe0_clock,
	pipe1_clock, prev_clock_var, prev_priority,
	spu_ls_first, prev_ls_clock): New static variables.
	* config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
	* config/spu.md (iprefetch): Add operand, make it clobber MEM.
	(nopn_nv): Add a non-volatile version of nop.
	* config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
	-mhint-max-distance, -msafe-hints): New options.

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

	PR rtl-optimization/37408
	* function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
	if parm is promoted.

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

	* config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
	memory barrier to below the test-and-set.
	(alpha_split_lock_test_and_set_12): Likewise.

2008-09-07  Richard Guenther  <rguenther@suse.de>
	    Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/36630
	* tree-vect-transform.c (vect_update_ivs_after_vectorizer):
	Call STRIP_NOPS before calling evolution_part_in_loop_num.

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

	* varasm.c (narrowing_initializer_constant_valid_p): New
	static function.
	(initializer_constant_valid_p): Call it.

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

	PR target/36332
	* real.c (real_maxval): Clear a lower bit to make real_maxval
	match get_max_float for IBM long double format.

2008-09-02  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.

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

	PR middle-end/37248
	PR middle-end/36449
	* fold-const.c (make_bit_field_ref): Change bitpos and bitsize
	arguments to HOST_WIDE_INT.
	(fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.

	Revert:
	2008-06-11  Richard Guenther  <rguenther@suse.de>
	PR middle-end/36449
	* fold-const.c (fold_truthop): Remove code generating
	BIT_FIELD_REFs of structure bases.
	(fold_binary): Likewise.
	(make_bit_field_ref): Remove.
	(optimize_bit_field_compare): Remove.
	(all_ones_mask_p): Remove.

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

	PR target/37168
	* config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
	prototype.
	* config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
	* config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
	Also split V4SFmode.
	* config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
	vector float modes.

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

	PR c/37261
	* fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
	compute new & and | in type rather than TREE_TYPE (arg0).

2008-08-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
	(mfc_end_critical_section): Likewise.

2008-08-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
	all type qualifiers from element type to vector type.

2008-08-28  Dodji Seketeli  <dodji@redhat.com>

	PR c++/36741
	* tree.c (int_fits_type_p): Don't forget unsigned integers
	  of type sizetype which higher end word equals -1.

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

	PR middle-end/36548
	PR middle-end/37125
	* fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
	if the multiplication does not overflow.

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

	PR middle-end/36817
	* tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
	makes sure to produce a result of the correct type.

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

	PR target/37184
	* config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
	CCCmode, CCOmode and CCSmode destination modes.

	PR target/37191
	* config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
	from different units in a single alternative.
	(*vec_extractv2sf_1): Ditto.
	(*vec_extractv2si_0): Ditto.
	(*vec_extractv2si_1): Ditto.
	* config/i386/sse.md (sse2_storehpd): Ditto.
	(sse2_storelpd): Ditto.
	(sse2_loadhpd): Ditto.
	(sse2_loadlpd): Ditto.

	PR target/37197
	* config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
	(popcountsi2): Ditto.
	(clzdi2_abm): Ditto.
	(popcountdi2): Ditto.
	(clzhi2_abm): Ditto.
	(popcounthi2): Ditto.

2008-08-27  Joseph Myers  <joseph@codesourcery.com>

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

2008-08-27  Release Manager

	* GCC 4.3.2 released.

2008-08-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* real.h (struct real_format): New member round_towards_zero.
	* real.c (round_for_format): Respect fmt->round_towards_zero.
	(ieee_single_format, mips_single_format, motorola_single_format,
	spu_single_format, ieee_double_format, mips_double_format,
	motorola_double_format, ieee_extended_motorola_format,
	ieee_extended_intel_96_format, ieee_extended_intel_128_format,
	ieee_extended_intel_96_round_53_format, ibm_extended_format,
	mips_extended_format, ieee_quad_format, mips_quad_format,
	vax_f_format, vax_d_format, vax_g_format): Initialize it.
	* config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.

	* builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
	real_format to choose rounding mode when calling MPFR functions.
	(do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
	(do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.

	* real.h (real_to_decimal_for_mode): Add prototype.
	* real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
	Respect target rounding mode when generating decimal representation.
	(real_to_decimal): New stub for backwards compatibility.
	* c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
	real_to_decimal_for_mode instead of real_to_decimal.

	* config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.

	* config/spu/float_disf.c: New file.
	* config/spu/float_unsdisf.c: New file.
	* config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
	(LIB2FUNCS_EXCLUDE): Define.

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

	PR debug/37156
	* pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
	* tree.c (block_nonartificial_location): Likewise.

2008-08-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* real.c (spu_single_format): New variable.
	* real.h (spu_single_format): Declare.

	* config/spu/spu.c (spu_override_options): Install SFmode format.
	(spu_split_immediate): Use integer mode to operate on pieces of
	floating-point values in all cases.

	* config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
	("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
	("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.

2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>

	* config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
	(detect_processor_freebsd): Likewise.
	(host_detect_local_cpu): Call newly added functions for FreeBSD.

2008-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>

	* reload.c (find_reloads): Force constants into literal pool
	also if they are wrapped in a SUBREG.

2008-08-17  Christophe Saout  <christophe@saout.de>
	    Uros Bizjak  <ubizjak@gmail.com>

	PR target/37101
	* config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
	(*vec_concatv2di_rex64_sse): Ditto.

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

	PR middle-end/37103
	* fold-const.c (fold_widened_comparison): Do not allow
	sign changes that change the result even if shorter type
	is wider than arg1_unw's type.

2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
	__PPU__ when targeting the Cell/B.E. PPU processor.

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

	PR middle-end/37014
	* expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
	and TRUTH_ORIF_EXPR.
	* dojump.c (do_jump): Likewise.

2008-08-12  Aldy Hernandez  <aldyh@redhat.com>

	PR c/35746
	* gimplify.c (gimplify_expr): Do not convert MODIFY_EXPR to
	GIMPLE_MODIFY_STMT upon GS_ERROR.

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

	* config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.

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

	* config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.

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

	PR c++/36688
	* gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
	on the VAR_DECL instead of TYPE_READONLY on its type.

2008-08-11  Michael Matz  <matz@suse.de>

	PR target/36613
	* reload.c (push_reload): Merge in,out,in_reg,out_reg members
	for reused reload, instead of overwriting them.

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

	PR rtl-optimization/36998
	* dwarf2out.c (compute_barrier_args_size_1,
	compute_barrier_args_size): Temporarily remove assertions.

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

	PR middle-end/37042
	* tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
	pointers can access anything.

2008-08-06  Aldy Hernandez  <aldyh@redhat.com>

	PR middle-end/35432
	* gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
	if want_value.

2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>

	Backport from mainline:
	2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>

	PR target/35659
	* haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
	* sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
	Don't allow predicated instructions for data speculation.
	* sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
	declaration.

2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>

	Backport from mainline:
	2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* haifa-sched.c (extend_global): Split to extend_global_data and
	extend_region_data.  Update all uses.
	(extend_all): Rename to extend_block_data.

2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>

	Backport from mainline:
	2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>

	* sched-rgn.c (new_ready): Check if instruction can be
	speculatively scheduled before attempting speculation.
	(debug_rgn_dependencies): Remove wrongful assert.	

2008-08-05  Jason Merrill  <jason@redhat.com>

	PR c++/37016
	* tree-ssa.c (useless_type_conversion_p_1): Call langhook
	if TYPE_STRUCTURAL_EQUALITY_P is true for both types.

2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
	Reword some comments throughout the file.

	(MFC_MIN_DMA_LIST_ELEMENTS): New define.
	(MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
	(MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
	(MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.

	(MFC_START_ENABLE): Remove PPU-only define.
	(MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
	(MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.

	(MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
	(MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
	(MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
	(MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
	(MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
	(MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
	(MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.

	(MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
	(MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
	(mfc_sdcrt, mfc_sdcrtst): Likewise.
	(mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.

	(spu_read_machine_status): Fix typo.

2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
	SUBREG of multi-word hard register.
	* config/spu/spu.c (valid_subreg): Likewise.
	(adjust_operand): Handle SUBREGs of multi-word hard registers.

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

	PR middle-end/37026
	* gimplify.c (gimplify_init_constructor): Do not call
	tree_to_gimple_tuple with NULL_TREE.

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

	PR middle-end/36691
	* tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
	check for no_overflow.

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

	* dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
	for labels for which it hasn't been set yet.  If it has been set,
	stop walking insns and continue with next worklist item.
	(dwarf2out_stack_adjust): Don't call compute_barrier_args_size
	if the only BARRIER is at the very end of a function.

	PR tree-optimization/36991
	* gimplify.c (gimplify_init_constructor): Call tree_to_gimple_tuple
	on expr_p before appending it to pre_p.

2008-08-01  Paolo Bonzini  <bonzini@gnu.org>

	Backport from mainline:
	2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>

	PR rtl-optimization/35542
	* fwprop.c (forward_propagate_and_simplify): Replace
	loc_reg_mentioned_in_p with reg_mentioned_p.

2008-08-01  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/35752
	* Makefile.in (objdir): Set it here.
	* configure.ac: Not here.  Find dynamic linker characteristics.
	* exec-tool.in: Use them.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2008-08-01  Alexandre Oliva  <aoliva@redhat.com>

	* fwprop.c (PR_HANDLE_MEM): Remove trailing comma in enum.

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

	PR rtl-optimization/36419
	* dwarf2out.c (barrier_args_size): New variable.
	(compute_barrier_args_size, compute_barrier_args_size_1): New
	functions.
	(dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
	if not called yet in the current function, use barrier_args_size
	array to find the new args_size value.
	(dwarf2out_frame_debug): Free and clear barrier_args_size.

	PR debug/36278
	* dwarf2out.c (get_context_die): New function.
	(force_decl_die, force_type_die): Use it.
	(dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
	returns NULL, force generation of DW_TAG_typedef and put that into
	DW_AT_import.

	PR preprocessor/36649
	* c-pch.c (c_common_read_pch): Save and restore
	line_table->trace_includes across PCH restore.

2008-07-30  Andreas Schwab  <schwab@suse.de>

	PR rtl-optimization/36929
	* dse.c (replace_inc_dec): Use emit_insn_before instead of
	add_insn_before and fix argument order.
	(replace_inc_dec_mem): Handle NULL rtx.

2008-07-30  Olivier Hainque  <hainque@adacore.com>

	* config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
	* config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
	__dso_handle explicitly here.

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

	PR tree-optimization/36830
	* tree-vn.c (expressions_equal_p): Return false if only one operand
	is null.

2008-07-25  Joseph Myers  <joseph@codesourcery.com>

	* config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
	movv2si_internal): Add mem = reg alternative.

2008-07-23  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (infer_value_range): Ignore asm statements when
	looking for memory accesses for -fdelete-null-pointer-checks.

2008-07-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.md ("div<mode>3"): Convert into expander, move
	original insn and splitter contents into ...
	("*div<mode>3_fast"): ... this new pattern.  Enable only if
	flag_unsafe_math_optimizations.  Add dummy scratch register.
	("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
	!flag_unsafe_math_optimizations.  Returns number with next
	highest magnitude if this is still less or equal to the true
	quotient in magnitude.

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

	PR middle-end/36877
	* omp-low.c (expand_omp_atomic_fetch_op): Make sure the
	return value of the builtin is ignored.

2008-07-19  Joseph Myers  <joseph@codesourcery.com>

	PR target/36780
	PR target/36827
	* reload.c (find_reloads_subreg_address): Only reload address if
	reloaded == 0, not for reloaded != 1.

	Revert:
	2008-07-16  Joseph Myers  <joseph@codesourcery.com>
	* config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
	(m32c_legitimate_address_p): Handle "++rii" addresses created by
	m32c_legitimize_reload_address.

	2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
	* config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
	(plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.

2008-07-18  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/35281
	* expr.c (convert_move): Use a new pseudo for the intermediate
	from_mode->word_mode result.
	* fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
	(propagate_rtx_1): Handle PR_HANDLE_MEM.
	(propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
	(varying_mem_p): Move above propagate_rtx.
	(all_uses_available_at): Do not check MEMs.

2008-07-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	Backport from mainline:

	2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
		    Sa Liu  <saliu@de.ibm.com>

	* config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
	__modti3, __udivti3, __umodti3 and __udivmodti4.
	* config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
	that implement TImode mul and div functions.
	* config/spu/multi3.c: New. Implement __multi3.
	* config/spu/divmodti4.c: New. Implement _udivmodti4 and others.

	2008-05-08  Sa Liu  <saliu@de.ibm.com>

	* config/spu/spu.md: Fixed subti3 pattern.

2008-07-17  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/36753
	* fwprop.c (use_killed_between): Don't shortcut
	single-definition global registers.

2008-07-16  Joseph Myers  <joseph@codesourcery.com>

	PR target/36827
	* config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
	(m32c_legitimate_address_p): Handle "++rii" addresses created by
	m32c_legitimize_reload_address.

2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>

	Backport from mainline:
	PR target/36784
	2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (split_branches): Pass zero to	redirect_jump
	as 'delete_unused' argument.

2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>

	Backport from mainline:
	PR target/36782
	* config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.

2008-07-15  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/libgcc-xtensa.ver: New file.
	* config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.

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

	PR middle-end/36369
	* c-common.c (strict_aliasing_warning): Do not warn for
	TYPE_REF_CAN_ALIAS_ALL pointers.
	(c_common_get_alias_set): may_alias types are not special.
	* tree.c (build_pointer_type_for_mode): Look up the may_alias
	attribute and set can_ref_all accordingly.
	(build_reference_type_for_mode): Likewise.
	* doc/extend.texi (may_alias): Clarify.

2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>

	Backport from mainline:
	PR target/36780
	* config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
	(plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.

2008-07-14  Hans-Peter Nilsson  <hp@axis.com>

	PR target/35492.
	* config/cris/cris.md ("*btst"): Remove last alternative
	and related part in the condition.

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

	PR middle-end/36811
	* langhooks.c (lhd_print_error_function): Deal with recursive
	BLOCK trees.

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

	* doc/md.texi: Document the MIPS "v" constraint.
	* config/mips/mips.h (reg_class): Revert last change.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	* config/mips/mips.c (mips_regno_to_class): Likewise.
	* config/mips/constraints.md (v): Likewise, but add documentation.
	Add a comment to say that this constraint should not be used in
	gcc code.

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

	* tree-ssa-pre.c (create_component_ref_by_pieces) <COMPONENT_REF>:
	Deal with operand #2 as well.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref) <COMPONENT_REF>:
	Likewise.
	<ARRAY_REF>: Likewise.

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

	PR rtl-optimization/36419
	* combine-stack-adj.c (adjust_frame_related_expr): New function.
	(combine_stack_adjustments_for_block): Call it if needed.  Delete
	correct insn.
	* dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
	DW_CFA_GNU_args_size if CSA pass merged some adjustments into
	prologue sp adjustment.

2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>

	PR target/35802
	* config/mips/mips.h (reg_class): Remove V1_REG.
	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
	* config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
	instead of V1_REGS.
	(mips_get_tp): New function.
	(mips_legitimize_tls_address): Use it.
	* config/mips/constraints.md (v): Delete.
	* config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
	(tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
	After reload, split into a move and ...
	(*tls_get_tp_<mode>_split): ...this new instruction.

2008-07-08  Joseph Myers  <joseph@codesourcery.com>

	* reload.c (find_reloads_subreg_address): Do not require validity
	of address in original mode before reloading address.

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

	Backport from mainline:
	PR target/36736
	2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_secondary_reload): Handle loading a float
	constant to fpul.

2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR target/34780
	* unwind-pe.h (size_of_encoded_value): add attribute unused.

2008-07-05  Kaz Kojima  <kkojima@gcc.gnu.org>

	Backport from mainline:
	PR target/36684
	* config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns
	for PIC.

2008-07-04  Alan Modra  <amodra@bigpond.net.au>

	PR target/36634
	* config/rs6000/rs6000.md (call, call_value): Don't arrange for
	pic_offset_table_rtx to be marked as used here.
	(call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
	TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
	(call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
	(sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
	!TARGET_SECURE_PLT.

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

	* tree-flow.h (loop_only_exit_p): Declare.
	* tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
	* tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
	the number of iterations if it is constant.  Otherwise, if this is the
	only possible exit of the loop, use the conservative estimate on the
	number of iterations of the entire loop if available.

2008-07-01  Steve Ellcey  <sje@cup.hp.com>

	Backport from mainline:
	* config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
	RFmode constants.

2008-07-01  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR rtl-optimization/34744
	* df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
	(df_scan_free_internal): Free data structures not
	allocated in storage pools.
	(df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
	(df_refs_add_to_chains): Use df_scan_free_ref_vec and
	df_scan_free_mws_vec.
	* dse.c (dse_step6): Free offset_map_p and offset_map_n
	unconditionally.
	* ifcvt.c (cond_move_process_if_block): Free vectors on false return.

2008-07-01  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/36648
	* tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
	number of prolog iterations by step. Fix the comment.

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

	* config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
	constants for E500 double.

2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR target/34856
	* config/spu/spu.c (spu_builtin_splats): Do not generate
	invalid CONST_VECTOR expressions.
	(spu_expand_vector_init): Likewise.

2008-06-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* targhooks.h (struct gcc_target): New member unwind_word_mode.
	(default_unwind_word_mode): Add prototype.
	* targhooks.c (default_unwind_word_mode): New function.
	(default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
	instead of word_mode.
	* target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
	(TARGET_INITIALIZER): Use it.

	* c-common.c (handle_mode_attribute): Support "unwind_word"
	mode attribute.
	* unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.

	* except.c (init_eh): Use targetm.unwind_word_mode () instead of
	word_mode to access SjLj_Function_Context member "data".
	(sjlj_emit_dispatch_table): Likewise.  Also, perform type
	conversion from targetm.eh_return_filter_mode () to
	targetm.unwind_word_mode () if they differ.

	* builtin-types.def (BT_UNWINDWORD): New primitive type.
	(BT_FN_UNWINDWORD_PTR): New function type.
	(BT_FN_WORD_PTR): Remove.
	* builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
	* except.c (expand_builtin_extend_pointer): Convert pointer to
	targetm.unwind_word_mode () instead of word_mode.

	* config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
	* config/spu/spu.c (spu_eh_return_filter_mode): Remove.
	(spu_unwind_word_mode): New function.
	(TARGET_EH_RETURN_FILTER_MODE): Do not define.
	(TARGET_UNWIND_WORD_MODE): Define.
	* config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.

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

	* c-decl.c (merge_decls): Use !current_function_decl to check for
	extern declaration of C99 inline function being at file scope.

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

	* tree-ssa-structalias.c (fieldoff_compare): Make sure to
	not overflow the result type.

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

	* tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
	(vn_lookup): Likewise.

2008-06-25  Hans-Peter Nilsson  <hp@axis.com>

	* doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
	anchor for the type-punning blurb.  Cross-reference "Structures
	unions enumerations and bit-fields implementation".  Provide a
	cast-through-pointer example.  Make final sentence self-contained.
	* doc/implement-c.texi (Structures unions enumerations and
	bit-fields implementation): Cross-reference the type-punning blurb
	in the -fstrict-aliasing documentation.

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

	PR tree-optimization/36504
	* tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
	references without base address.

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

	* config/i386/i386.md (fmodxf3): Change sequence of move instructions.
	(fmod<mode>3): Ditto.
	(remainderxf3): Ditto.
	(remainder<mode>3): Ditto.

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

	PR middle-end/36584
	* calls.c (expand_call): Increase alignment for recursive functions.

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

	PR target/36533
	* emit-rtl.c (set_reg_attrs_from_value): Do nothing if
	REG is a hard register.

	PR tree-optimization/36508
	* tree-ssa-pre.c (compute_antic): Allow num_iterations up to
	499, don't check it at all in release compilers.

2008-06-23  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36519
	* tree-ssa-alias.c (mem_sym_score): Count call-clobbered
	unpartitionable SFTs in the usual way.
	(compute_memory_partitions): Do partition call-clobbered
	unpartitionable SFTs, but make sure to partition all other
	SFTs of its parent var into the same partition.

2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
	    Ian Lance Taylor  <iant@google.com>

	PR rtl-optimization/35604
	* jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
	only want to change jump destinations, not eventual label comparisons.

2008-06-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR documentation/30739
	* doc/install.texi (Prerequisites): Document dependency on awk.

2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/spu/spu.c (reg_align): Remove.
	(regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
	(spu_split_load): Use regno_aligned_for_load instead of reg_align.
	(spu_split_store): Likewise.

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

	* dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
	(encode_decimal64, decode_decimal64, encode_decimal128,
	decode_decimal128): Reverse order of 32-bit parts of value if host
	and target endianness differ.

2008-06-16  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/36493
	* tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
	the arguments list. Use VECTYPE to create vector pointer.
	(vectorizable_store): Fail if accesses through a pointer to vectype
	do not alias the original memory reference operands.
	Call vect_create_data_ref_ptr without the removed argument.
	(vectorizable_load): Likewise.
	(vect_setup_realignment): Call vect_create_data_ref_ptr without the
	removed argument.

2008-06-15  Anatoly Sokolov  <aesok@post.ru>

	PR target/36424
	* config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
	* config/avr/avr.c (avr_hard_regno_rename_ok): New function.
	* config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.

2008-06-15  Andy Hutchinson  <hutchinsonandy@aim.com>

	PR target/36336
	* config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
	reg_equiv_constant.

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

	PR c/36507
	* c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
	nested inline functions.
	(start_decl, start_function): Don't invert DECL_EXTERNAL
	for nested inline functions.

2008-06-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36498
	* tree-flow-inline.h (var_can_have_subvars): Unions cannot
	have subvars.

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

	PR middle-end/36506
	* omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus
	warning.

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

	Backport from mainline
	2008-06-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
	negative or non-representable offsets.

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

	PR middle-end/36506
	* omp-low.c (expand_omp_sections): Handle #pragma omp sections with
	reductions.

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

	* c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
	debug hook.

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

	PR middle-end/35336
	* fold-const.c (fold_truthop): Remove code generating
	BIT_FIELD_REFs of structure bases.
	(fold_binary): Likewise.
	(make_bit_field_ref): Remove.
	(optimize_bit_field_compare): Remove.
	(all_ones_mask_p): Remove.

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

	* config/arm/arm.c (arm_init_neon_builtins): Move initialization
	with function calls after declarations.  Lay out
	neon_float_type_node before further use.

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

	PR tree-optimization/36474
	* opts.c (decode_options): Set max-fields-for-field-sensitive
	parameter to 100 for -O2, -Os and -O3.
	* params.def (max-fields-for-field-sensitive): Set default to zero.
	* doc/invoke.texi (max-fields-for-field-sensitive): Document
	defaults.

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

	* config/rs6000/rs6000.c (build_opaque_vector_type): Set
	TYPE_CANONICAL for copied element type.

2008-06-09  Michael Meissner  <michael.meissner@amd.com>

	* config.gcc (i[34567]86-*-*): Put test in quotes to prevent
	failure on some Bourne shells.
	(x86_64-*-*): Ditto.

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

	PR tree-optimization/34976
	* tree-loop-linear.c (try_interchange_loops): Look at size of
	caches: don't transform if the smallest stride is larger than
	the L2 cache, or if the largest stride multiplied by the number of
	iterations is smaller than the L1 cache.

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

	Backport from mainline:
	2008-05-12  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/36111
	* recog.c (validate_replace_rtx_1): Unshare new RTL expression
	that was created for swappable operands.

2008-06-07  Andy Hutchinson  <hutchinsonandy@aim.com>

	PR target/27386
	* config/avr/avr.h: (PUSH_ROUNDING): Remove.

	PR target/30243
	* builtins.c (expand_builtin_signbit): Don't take lowpart when
	register is already smaller or equal to required mode.

	PR target/34932
	* config/avr/avr.md (*addhi3_zero_extend2): Remove.

	* config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.


2008-06-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36291
	* tree-flow. h (struct gimple_df): Remove var_anns member.
	* tree-flow-inline.h (gimple_var_anns): Remove.
	(var_ann): Simplify.
	* tree-dfa.c (create_var_ann): Simplify.
	(remove_referenced_var): Clear alias info from var_anns of globals.
	* tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
	(delete_tree_ssa): Clear alias info from var_anns of globals.
	Do not free var_anns.
	(var_ann_eq): Remove.
	(var_ann_hash): Likewise.

2008-06-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/34244
	* fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
	(tree_expr_nonzero_warnv_p): Likewise.
	* tree-vrp.c (vrp_expr_computes_nonnegative): Call
	ssa_name_nonnegative_p.
	(vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
	(extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
	not tree_expr_nonzero_warnv_p.

	PR tree-optimization/36262
	Revert
	2007-11-29  Zdenek Dvorak  <ook@ucw.cz>

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

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

	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Only handle
	SDmode in registers specially if TARGET_HARD_FLOAT && TARGET_FPRS.

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

	PR rtl-optimization/36419
	* except.c (expand_resx_expr): Call do_pending_stack_adjust () before
	the emitting jump insn.

	PR target/36362
	* gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
	is not bool, boolify the whole *expr_p and convert to the desired type.

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

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.
