2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>

	Radar 5289915
	* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_VEC_EXT_V16QI.
	(ix86_init_mmx_sse_builtins): Add __builtin_ia32_vec_ext_v16qi.
        (ix86_expand_builtin): Handle IX86_BUILTIN_VEC_EXT_V16QI.
	
2007-07-03  Eric Christopher  <echristo@apple.com>

	Radar 4361482
	* doc/cppopts.texi: Add conflicting option note to -dM.
	* doc/invoke.texi: Add note about possible conflicts with
	-E for -dCHARS and note that -dM will not produce
	any results if there is no machine dependent reorg.
	
2006-12-13  Geoffrey Keating  <geoffk@apple.com>

	Radar 4697325
	* doc/invoke.texi (Darwin Options): Update documentation for
	-mmacosx-version-min.
	* config.gcc (*-*-darwin*): Set extra_gcc_objs.
	* config/darwin-driver.c: New file.
	* config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
	* config/t-darwin (darwin-driver.o): New rule.

2006-12-12  Geoffrey Keating  <geoffk@apple.com>

	* mips-tdump.c: Replace CROSS_COMPILE with
	CROSS_DIRECTORY_STRUCTURE.
	* mips-tfile.c: Likewise.
	* gcc.c: Likewise.
	* configure.ac: Likewise.
	* cppdefault.c: Likewise.
	* Makefile.in: Likewise.
	* config/alpha/osf.h: Likewise.
	* config/i386/cygwin.h: Likewise.
	* config/i386/beos-elf.h: Likewise.
	* config/i386/nto.h: Likewise.
	* config/fr30/fr30.h: Likewise.
	* config/svr4.h: Likewise.
	* config/rs6000/aix.h: Likewise.
	* config/rs6000/sysv4.h: Likewise.
	* config/pa/pa64-hpux.h: Likewise.
	* config/pa/pa-hpux10.h: Likewise.
	* config/pa/pa-hpux11.h: Likewise.
	* collect2.c: Likewise.
	* configure: Regenerate.

2007-06-01  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.

2007-05-31  Eric Christopher  <echristo@apple.com>

	* expr.c (convert_move): Assert that we don't have a BLKmode
	operand.
	(store_expr): Handle BLKmode moves by calling emit_block_move.

2007-05-21  Mike Stump  <mrs@apple.com>

	* config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
	handling as well.

2007-05-16  Eric Christopher  <echristo@apple.com>

	Radar 4663646
	* config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
        saving after stack push. Set sp_offset whenever we push.
        (rs6000_emit_epilogue): Move altivec register restore before stack push.

2007-05-07  Mike Stump  <mrs@apple.com>

	* doc/invoke.texi (Warning Options): Document that -Wempty-body
	also checks for and while statements in C++.

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

	* tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
	predecessors at head rather than tail.

2006-09-11  Geoffrey Keating  <geoffk@apple.com>

	* coverage.c (coverage_checksum_string): Update comment.
	* dwarf2out.c (switch_to_eh_frame_section): Update for removal
	of get_file_function_name.
	* cgraphunit.c (cgraph_build_static_cdtor): Update for rename
	of get_file_function_name_long.
	* tree.c (get_file_function_name): Rename from
	get_file_function_name_long; improve comment; handle 'I' and 'D'
	specially when the target has ctor/dtor support; remove special
	handling for 'F'.
	(get_file_function_name): Remove.
	* tree.h (get_file_function_name): Rename from
        get_file_function_name_long.
	(get_file_function_name): Remove prototype.

2007-03-26  Mike Stump  <mrs@apple.com>

	Radar 5091993
	* config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
	objective-c-header, objective-c++-header and objc++-cpp-output
	support.
	* config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.

2007-02-20  Geoffrey Keating  <geoffk@apple.com>

	Radar 5005743, 4226546
	* config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
	if user didn't pass it.
	* config/i386/darwin.h (CC1_SPEC): Likewise.
	* config/rs6000/darwin.h (CC1_SPEC): Likewise.
	(DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
	-mmacosx-version-min.

	* config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
	to linker.
	(DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
	* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
	darwin_rs6000_override_options.
	(C_COMMON_OVERRIDE_OPTIONS): Expect
	darwin_macosx_version_min to be non-NULL always.
	(TARGET_C99_FUNCTIONS): Likewise.
	(CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
	(DARWIN_MINVERSION_SPEC): New.
	* config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
	* config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
	to cc1*.
	(DARWIN_MINVERSION_SPEC): New.
	* config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
	value.
	* config/darwin-c.c (darwin_cpp_builtins): Expect
	darwin_macosx_version_min to be non-NULL always.

2006-11-07  Eric Christopher  <echristo@apple.com>

        * libgcc2.c (__bswapdi2): Rename from bswapDI2.
        (__bswapsi2): Ditto.
        * libgcc2.h: Remove transformation of bswap routines.
        * config/i386/i386.md (bswapsi2): New.
        (bswapdi2): Ditto.

2006-10-31  Eric Christopher  <echristo@apple.com>
	    Falk Hueffner  <falk@debian.org>

        * doc/extend.texi (__builtin_bswap32): Document.
        (__builtin_bswap64): Ditto.
        * doc/libgcc.texi (bswapsi2): Document.
        (bswapdi2): Ditto.
        * doc/rtl.texi (bswap): Document.
        * optabs.c (expand_unop): Don't widen a bswap.
        (init_optabs): Init bswap. Set libfuncs explicitly
        for bswapsi2 and bswapdi2.
        * optabs.h (OTI_bswap): New.
        (bswap_optab): Ditto.
        * genopinit.c (optabs): Handle bswap_optab.
        * tree.h (tree_index): Add TI_UINT32_TYPE and
        TI_UINT64_TYPE.
        (uint32_type_node): New.
        (uint64_type_node): Ditto.
        * tree.c (build_common_tree_nodes_2): Initialize
        uint32_type_node and uint64_type_node.
        * builtins.c (expand_builtin_bswap): New.
        (expand_builtin): Call.
        (fold_builtin_bswap): New.
        (fold_builtin_1): Call.
        * fold-const.c (tree_expr_nonnegative_p): Return true
        for bswap.
        * builtin-types.def (BT_UINT32): New.
        (BT_UINT64): Ditto.
        (BT_FN_UINT32_UINT32): Ditto.
        (BT_FN_UINT64_UINT64): Ditto.
        * builtins.def (BUILT_IN_BSWAP32): New.
        (BUILT_IN_BSWAP64): Ditto.
        * rtl.def (BSWAP): New.
        * genattrtab.c (check_attr_value): New.
        * libgcc2.c (__bswapSI2): New.
        (__bswapDI2): Ditto.
        * libgcc2.h (__bswapSI2): Declare.
        (__bswapDI2): Ditto.
        * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
        * simplify-rtx.c (simplify_const_unary_operation): Return
        0 for BSWAP.
        * libgcc-std.ver (__bwapsi2): Add.
        (__bswapdi2): Ditto.
        * reload1.c (eliminate_regs_1): Add bswap.
        (elimination_effects): Ditto.
        * config/i386/i386.h (x86_bswap): New.
        * config/i386/i386.c (x86_bswap): Set.

2007-01-04  Geoffrey Keating  <geoffk@apple.com>

	Radar 4871915
	* target.h (struct gcc_target): New field library_rtti_comdat.
	* target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
	(TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
	* doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
	* config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.

2007-01-07  Eric Christopher  <echristo@apple.com>

        * configure.ac: Check for __stack_chk_fail for darwin.
        * configure: Regenerate.

2006-12-18  Geoffrey Keating  <geoffk@apple.com>

	Radar 4869554
	* doc/invoke.texi (Debugging Options): Document -g0.
	* config/darwin.h (LINK_COMMAND_SPEC): Replace -gnone with -g0.

2006-12-04  Eric Christopher  <echristo@apple.com>

	* config/darwin.h (DARWIN_EXTRA_SPECS): New.
	(STARTFILE_SPEC): Use.
	(DARWIN_DYLIB1_SPEC): New.
	(DARWIN_CRT1_SPEC): New.
	* config/i386/darwin64.h (SUBTARGET_EXTRA_SPECS): Use
	DARWIN_EXTRA_SPECS.
	* config/i386/darwin.h: Ditto.
	* config/rs6000/darwin.h: Ditto.

2006-09-11  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.

2006-09-01  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
	Call dsymutil when compiling and linking one or more source files
	in one step.

2006-05-16  Geoffrey Keating  <geoffk@apple.com>

	Radar 4550526
	* c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
	inline static functions in c99 mode.

2006-05-09  Geoffrey Keating  <geoffk@apple.com>

	Radar 4134307
	PR 16622
	* doc/extend.texi (Inline): Update.
	* c-tree.h (struct language_function): Remove field 'extern_inline'.
	* c-decl.c (current_extern_inline): Delete.
	(pop_scope): Adjust test for an undefined nested function.
	Add warning about undeclared inline function.
	(diagnose_mismatched_decls): Update comments.  Disallow overriding
	of inline functions in a translation unit in C99.  Allow inline
	declarations in C99 at any time.
	(merge_decls): Boolize variables.  Handle C99 'extern inline'
	semantics.
	(grokdeclarator): Set DECL_EXTERNAL here for functions.  Handle
	C99 inline semantics.
	(start_function): Don't clear current_extern_inline.  Don't set
	DECL_EXTERNAL.
	(c_push_function_context): Don't push current_extern_inline.
	(c_pop_function_context): Don't restore current_extern_inline.

2006-05-04  Geoffrey Keating  <geoffk@apple.com>

	Radar 4134307
	PR 11377
	* c-typeck.c (build_external_ref): Warn about static variables
	used in extern inline functions.
	* c-decl.c (start_decl): Warn about static variables declared
	in extern inline functions.

/* APPLE LOCAL merge marger */
/* Stuff above is only in mainline, not the 4.2 branch */
2007-07-19  Release Manager

	* GCC 4.2.1 released.

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

	Revert:

	2007-07-09  Paolo Bonzini  <bonzini@gnu.org>

	PR middle-end/32004
	* function.c (rest_of_match_asm_constraints): Pass PROP_REG_INFO.

	2007-07-06  Paolo Bonzini  <bonzini@gnu.org>

	PR middle-end/32004
	* function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
	pass_match_asm_constraints): New.
	* passes.c (init_optimization_passes): Add new pass.
	* stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
	* function.h (struct function): Add has_asm_statement bit.
	(current_function_has_asm_statement): New.
	* tree-pass.h (pass_match_asm_constraints): New.

2007-07-16  Paul Brook  <paul@codesourcery.com>

	PR target/32753
	gcc/
	* config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.

2007-07-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR target/32538
	* config/mips/iris6.h (LIBGCC_SPEC): Add libm.

2007-07-09  Paolo Bonzini  <bonzini@gnu.org>

	PR middle-end/32004
	* function.c (rest_of_match_asm_constraints): Pass PROP_REG_INFO.

2007-07-09  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/32681
	* tree-if-conv.c (find_phi_replacement_condition): Use the condition
	saved in second_edge->aux when first_bb is a loop header.

2007-07-07 Anatoly Sokolov <aesok@post.ru>

	PR target/31331
	* config/avr/avr.c (avr_naked_function_p): Handle receiving a type
	rather than a decl. 
	(avr_attribute_table): Make "naked" attribute apply to function types
	rather than to decls.
	(avr_handle_fntype_attribute): New function.

2007-07-06  Paolo Bonzini  <bonzini@gnu.org>

	PR middle-end/32004
	* function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
	pass_match_asm_constraints): New.
	* passes.c (init_optimization_passes): Add new pass.
	* stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
	* function.h (struct function): Add has_asm_statement bit.
	(current_function_has_asm_statement): New.
	* tree-pass.h (pass_match_asm_constraints): New.

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

	PR rtl-optimization/32450
	* function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
	to ensure that instructions are not moved into the prologue when
	profiling is on.

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

	PR tree-optimization/32500
	* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
	Only use basic blocks that are always executed to infer loop bounds.

2007-07-04  Uros Bizjak  <ubizjak@gmail.com>

	PR tree-optimization/31966
	PR tree-optimization/32533
	* tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
	"basic_block" description as its third argument.  Update function
	calls to get destination bb from "edge" argument.  Save "cond" into
	aux field of the edge.  Update prototype for changed arguments.
	(if_convertible_loop_p): Clear aux field of incoming edges if bb
	contains phi node.
	(find_phi_replacement_condition): Operate on incoming edges, not
	on predecessor blocks.  If there is a condition saved in the
	incoming edge aux field, AND it with incoming bb predicate.
	Return source bb of the first edge.
	(clean_predicate_lists): Clean aux field of outgoing node edges.
	(tree_if_conversion): Do not initialize cond variable. Move
	variable declaration into the loop.
	(replace_phi_with_cond_gimple_modify_stmt): Remove unneded
	initializations of new_stmt, arg0 and arg1 variables.

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

	PR target/32506
	Backport from mainline.
	* config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
	predicate instead of target_operand.
	(divsi3_i1_media, divsi3_media_2): Likewise.

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

	Backport from mainline:
	2006-12-11  Zdenek Dvorak <dvorakz@suse.cz>

	PR rtl-optimization/30113
	* loop-iv.c (implies_p): Require the mode of the operands to be
	scalar.

2007-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR target/28307
	* gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
	(__gthrw_pragma): Provide default definition.
	(__gthrw2): Use it.
	* gthr-posix.c (__gthrw_pragma): Define.

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

	PR libgomp/32468
	* omp-low.c (check_combined_parallel): New function.
	(lower_omp_parallel): Call it via walk_stmts, set
	OMP_PARALLEL_COMBINED if appropriate.
	(determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
	isn't the only statement in WS_ENTRY_BB or OMP_RETURN
	the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
	don't consider it as combined parallel.

2007-06-30  Alexandre Oliva  <aoliva@redhat.com>

	* dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
	limbo die nodes.

2007-06-28  Seongbae Park  <seongbae.park@gmail.com>

	* config/arm/arm.c (arm_get_frame_offsets): Set
	offsets->locals_base to avoid negative stack size.
	(thumb_expand_prologue): Assert on negative stack size.

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

	* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
	decl is non-external for AIX ABI.

2007-06-28  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/predicates.md (current_file_function_operand):
	Ensure the symbol is non-external for AIX ABI.

2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_VEC_EXT_V16QI.
	(ix86_init_mmx_sse_builtins): Add __builtin_ia32_vec_ext_v16qi.
	(ix86_expand_builtin): Handle IX86_BUILTIN_VEC_EXT_V16QI.

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

	PR middle-end/32362
	* omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
	but decl is a global var, instead return decl.
	* gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
	even for is_global_var decls, if they are private in some outer
	context.

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

	PR target/32389
	* config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
	* config/i386/i386.c (assign_386_stack_local): Assert that
	SLOT_VIRTUAL is valid only before virtual regs are instantiated.
	(ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
	Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
	* config/i386/i386.md (truncdfsf2, truncxfsf2, truncxfdf2): Ditto.

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

	PR inline-asm/32109
	* gimplify.c (gimplify_asm_expr): Issue error if type is addressable
	and !allows_mem.

	PR middle-end/32285
	* calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
	if ACCUMULATE_OUTGOING_ARGS.

2007-06-20  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR rtl-optimization/28011
	Backport from mainline.
	* reload.c (push_reload): Set dont_share if IN appears in OUT
	also when IN is a PLUS rtx.
	(reg_overlap_mentioned_for_reload_p): Return true if X and IN
	are same PLUS rtx.

2007-06-19  Richard Guenther  <rguenther@suse.de>
	Michael Matz  <matz@suse.de>

	PR tree-optimization/30252
	* tree-ssa-structalias.c (solution_set_add): Make sure to
	preserve all relevant vars.
	(handle_ptr_arith): Make sure to only handle positive
	offsets.
	(push_fields_onto_fieldstack): Create fields for empty
	bases.

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

	PR tree-optimization/32353
	* tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.

2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
	return mode from the builtin itself.
	(sparc_fold_builtin): Fix cast of zero constant.

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

	PR 32327
	* tree-ssa-operands.c (build_ssa_operands): Initially assume
	that the statement does not take any addresses.

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

	* config/sparc/sparc.c (sparc_override_options): Initialize
	fpu mask correctly.

2007-06-09  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/32169
	* tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
	CONVERT_EXPR, check whether min and max both converted to an
	overflow infinity representation.

2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/32163
	Backport from mainline.
	* config/sh/sh.md (symGOT_load): Don't schedule insns when
	the symbol is generated with the stack protector.

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

	* fold-const.c (merge_ranges): If range_successor or
	range_predecessor fail, just return 0.

2007-06-05  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
	PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
	(extract_range_from_assert): Set TREE_NO_WARNING when creating an
	expression.
	(test_for_singularity): Likewise.

2007-06-04  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (adjust_range_with_scev): When loop is not expected
	to overflow, reduce overflow infinity to regular infinity.
	(vrp_var_may_overflow): New static function.
	(vrp_visit_phi_node): Check vrp_var_may_overflow.

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

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

	* config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
	with MASK_SSE2.
	(__builtin_ia32_vec_ext_v2di): Likewise.
	(__builtin_ia32_vec_ext_v4si): Likewise.
	(__builtin_ia32_vec_ext_v8hi): Likewise.
	(__builtin_ia32_vec_set_v8hi): Likewise.

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

	Backport from mainline:
	2007-05-05  Aurelien Jarno  <aurelien@aurel32.net>

	* config/pa/pa.md: Split tgd_load, tld_load and tie_load
	into pic and non-pic versions. Mark r19 as used for 
	tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used 
	for tgd_load, tld_load and tie_load .
	* config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
	version of tgd_load, tld_load and tie_load depending on the 
	value of flag_pic.

2007-05-27  Daniel Berlin <dberlin@dberlin.org>

	Fix PR/30052
	Backport PTA solver from mainline

	* pointer-set.c: Copy from mainline
	* pointer-set.h: Ditto.
	* tree-ssa-structalias.c: Copy solver portions from mainline.
	* Makefile.in (tree-ssa-structalias.o): Update dependencies

2007-05-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* tree-vrp.c (compare_names): Initialize sop.

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

	PR tree-optimization/31769
	* except.c (duplicate_eh_regions): Clear prev_try if
	ERT_MUST_NOT_THROW region is inside of ERT_TRY region.

2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR tree-opt/32100
	* fold-const.c (tree_expr_nonnegative_warnv_p): Don't
	return true when truth_value_p is true and the type
	is of signed:1.

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

	Backport from mainline:
	2007-05-25  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
	"memory" attribute for "sseishft" type insn without operands[2].

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

	* config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.

2007-05-22  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (avoid_overflow_infinity): New static function,
	broken out of set_value_range_to_value.
	(set_value_range_to_value): Call avoid_overflow_infinity.
	(extract_range_from_assert): Likewise.

2007-05-23  Chen Liqin  <liqin@sunnorth.com.cn>

	PR target/30987
	* config/score/misc.md (bitclr_c, bitset_c, bittgl_c): remove.
	* config/score/predicate.md (const_pow2, const_npow2): remove.
	* config/score/score.h (ASM_OUTPUT_EXTERNAL): add ASM_OUTPUT_EXTERNAL undef.
	PR target/30474
	* config/score/score.c (score_print_operand): makes sure that only lower 
	bits are used.
	
2007-05-21  Uros Bizjak  <ubizjak@gmail.com>

	PR target/31167
	Backport from mainline.
	* config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
	x86_64_general_operand as operand[2] predicate.  Remove "iF"
	from operand constraints and use "e" constraint instead.
	(*subti3_1, *subti3_1 splitter): Ditto.
	(*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
	operand[1] predicate.

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

	PR target/30041
	Backport from mainline.
	* config/i386/sse.md ("*sse3_movddup"): Use operands[0] and
	operands[1] in insn constraint.  Correct type attribute to sselog1.

2007-05-20  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/31701
	Backport from mainline.
	* config/sh/sh.c (output_stack_adjust): Avoid using the frame
	register itself to hold the offset constant.  Tell flow the use
	of r4 and r5 when they are used.

2007-05-20  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/31480
	Backport from mainline.
	* config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
	is null.

2007-05-20  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/31022
	Backport from mainline.
	* config/sh/sh.c (sh_adjust_cost): Use the result of single_set
	instead of PATTERN.

2007-05-20  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/27405
	Backport from mainline.
	* config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
	(cmpsi{eq,gt,gtu}{si,di}_media): Rename to
	cmp{eq,gt,gtu}{si,di}_media.
	(*cmpne0si_media): Remove.
	(*movsicc_umin): Adjust gen_cmp*_media call.
	(unordered): Change the mode of unordered and operands[1] to
	SImode.
	(seq): Adjust gen_cmp*_media calls.  Make the mode of
	a temporary result of compare SImode if needed.  If the mode
	of operands[0] is DImode, extend the temporary result to DImode.
	(slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
	(sunorderd): Change the mode of match_operand and unorderd to
	SImode.
	(cmpeq{sf,df}_media): Remove.
	(cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
	(cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
	and compare operation to SImode.

2007-05-18  Joseph Myers  <joseph@codesourcery.com>

	* config/soft-fp/double.h, config/soft-fp/extended.h,
	config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
	config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
	config/soft-fp/op-2.h, config/soft-fp/op-4.h,
	config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
	glibc CVS.

2007-05-17  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/31953
	* tree-vrp.c (set_value_range_to_value): Add equiv parameter.
	Change all callers.
	(set_value_range_to_null): Call set_value_range_to_value.
	(extract_range_from_comparison): Likewise.

2007-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/31691
	* combine.c (simplify_set): Build a new src pattern instead of
	substituting its operands in the COMPARE case.

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

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

2007-05-13  Release Manager

	* GCC 4.2.0 released.

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

	PR tree-optimization/31797
	* tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
	propagate into a stmt that has volatile ops.

2007-05-01  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/31739
	* tree-vrp.c (vrp_val_is_max): New static function.
	(vrp_val_is_min): New static function.
	(set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
	copying the node.
	(set_value_range): Use vrp_val_is_{max,min}.
	(extract_range_from_assert): Likewise.
	(extract_range_from_binary_expr): Likewise.
	(extract_range_from_unary_expr): Likewise.
	(dump_value_range, vrp_meet): Likewise.
	(vrp_visit_phi_node): Likewise.
	* tree.c (build_distinct_type_copy): Revert change of 2007-04-27.

2007-05-01  Joseph Myers  <joseph@codesourcery.com>

	* config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.

2007-04-27  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
	ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

2007-04-27  Ian Lance Taylor  <iant@google.com>

	PR middle-end/31710
	* tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
	TYPE_MAX_VALUE exist, convert them to the new type.

2007-04-26  Ian Lance Taylor  <iant@google.com>

	PR target/28675
	* reload.c (find_reloads_subreg_address): If the address was valid
	in the original mode but not in the new mode, reload the whole
	address.

2007-04-26  Ulrich Weigand  <uweigand@de.ibm.com>

	PR middle-end/30761
	* reload1.c (eliminate_regs_in_insn): In the single_set special
	case, attempt to re-recognize the insn before falling back to
	having reload fix it up.

2007-04-26  Richard Guenther  <rguenther@suse.de>
	Daniel Berlin  <dberlin@dberlin.org>

	PR tree-optimization/30567
	* tree-ssa-structalias.c (update_alias_info): Record dereference
	also if ESCAPE_STORED_IN_GLOBAL.

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

	PR c++/31598
	* tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.

	PR tree-optimization/30558
	* tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
	clear this_state.prev_try.

2007-04-25  Anatoly Sokolov <aesok@post.ru>

	PR target/18989
 	* config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.

2007-04-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
            Roger Sayle  <roger@eyesopen.com>

	PR middle-end/30222
	* expmed.c (make_tree): Use the correct type, i.e. the inner
	type, when constructing the individual elements of a CONST_VECTOR.

2007-04-24  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/31605
	* tree-vrp.c (set_value_range): Check that min and max are not
	both overflow infinities.
	(set_value_range_to_value): New static function.
	(extract_range_from_binary_expr): Call set_value_range_to_value.
	(extract_range_from_expr): Likewise.
	(extract_range_from_unary_expr): Likewise.  Don't create a range
	which overflows on both sides.
	(vrp_meet): Check for a useless range.
	(vrp_visit_phi_node): If we see a constant which looks like an
	overflow infinity, turn off the TREE_OVERFLOW flag.

2007-04-24  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/31602
	* tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
	conditionals in the copied loop header.
	* tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
	warnings if TREE_NO_WARNING is set.
	* doc/invoke.texi (Warning Options): Clarify that
	-Wstrict-overflow does not warn about loops.

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

	PR target/31641
	* config/s390/s390.c (s390_expand_setmem): Don't ICE for constant length
	argument of 0 for memset.
	(s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
	unsigned shift instead of the signed variant.

2007-04-24  Daniel Franke  <franke.daniel@gmail.com>

	* doc/invoke.texi: Removed leading '-' from option index entries.

2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/31448
	* expr.c (reduce_to_bit_field_precision): Handle
	CONST_INT rtx's.

2007-04-20  Richard Henderson  <rth@redhat.com>

	PR target/28623
	* config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
	argument; update all callers.
	(get_unaligned_offset): New.
	* config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
	get_unaligned_address, just pass on the address directly.
	(unaligned_extendqidi): Use gen_lowpart instead of open-coding
	the subreg in the helper patterns.
	(unaligned_extendqidi_le): Use get_unaligned_offset.
	(unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
	(unaligned_extendhidi_be): Likewise.
	(unaligned_extendhidi): Tidy.
	* config/alpha/alpha-protos.h: Update.

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

	PR middle-end/31136
	* fold-const.c (fold_unary): Call fold_convert_const on the
	original tree.

2007-04-20  Richard Henderson  <rth@redhat.com>

	* config/alpha/linux.h (CPP_SPEC): Undef before redefine.

2007-04-20  Bernd Schmidt  <bernd.schmidt@analog.com>

	* reload.c (combine_reloads): When trying to use a dying register,
	check whether it's uninitialized and don't use if so.

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

	* config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
	for __builtin_ia32_cmpordss.

	PR tree-optimization/31632
	* fold-const.c (fold_binary): Use op0 and op1 instead of arg0
	and arg1 for optimizations of comparison against min/max values.
	Fold arg0 to arg1's type for optimizations of comparison against
	min+1 and max-1 values.

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

	PR rtl-optimization/29841
	* cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
	trap instructions.
	* sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
	that may cause control flow transfer from being moved.

2007-04-18  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (ptrreg_to_str): Replace error() with
	output_operand_lossage().

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

	PR target/30483
	* config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
	error().

2007-04-17  Jan Hubicka  <jh@suse.cz>

	PR middle-end/30700
	* dwarf2out.c (reference_to_unused): Ask cgraph for functions
	availablility; add more sanity checking; ask varpool only about
	VAR_DECL.

2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	* Backport from mainline:
	2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
	on "0".
	(sse_vmmulv4sf3): Likewise.
	(sse2_vmaddv2df3): Likewise.
	(sse2_vmmulv2df3): Likewise.

2007-04-16  Matthias Klose  <doko@debian.org>

	* config/alpha/linux.h (CPP_SPEC): Define.
	* config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.

2007-04-16  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (avr_arch_types): Rearranging  array.
	(enum avr_arch): Add.
	(avr_mcu_types): Use avr_arch enumeration constants instead of
	numbers.
	* config/avr/avr.h (LINK_SPEC): Simplify.

2007-04-16  Jan Hubicka  <jh@suse.cz>

	PR target/27869
	* config/i386/sse.md
	(sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
	(sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
	(sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
	(sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.

2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>

	* Backport from mainline:
	2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/31582
	* config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
	copy of source, pass it to ix86_expand_vector_set and return
	it as target.

2007-04-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR c/31520
	* c-decl.c (finish_decl): Grab the type of the decl after the call
	to store_init_value.

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

	PR c++/25874
	* omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
	post dominators and cleanup cfg before returning.

2007-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
	null before emitting a .nsubspa directive.

2007-04-08  Anatoly Sokolov <aesok@post.ru>

	PR target/29932
	* config/avr/predicates.md (io_address_operand): Delete predicate.
	(low_io_address_operand): Don't use 'mode' argument.
	(higth_io_address_operand): Rename ...
	(high_io_address_operand): ... to this. Don't use 'mode' argument.
	* config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
	for above change.

2007-04-07  Anatoly Sokolov <aesok@post.ru>

	PR target/30289
	* config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
	earlyclobber.

2007-04-05  Anatoly Sokolov <aesok@post.ru>

	PR target/25448
	* config/avr/avr.c (avr_handle_fndecl_attribute): Use the
	DECL_ASSEMBLER_NAME, not the DECL_NAME.

2007-04-04  Richard Henderson  <rth@redhat.com>

	PR target/31361
	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove
	v8hi_ftype_v8hi_v2di, v4si_ftype_v4si_v2di.  Use like-types for
	the variable shift builtins.
	(ix86_expand_builtin): Properly expand the variable shift builtins.
	* config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
	operand 2 be TImode.
	* config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
	_mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
	_mm_srli_epi32, _mm_srli_epi64): Turn into macros.
	(_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
	(_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
	_mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
	two-vector shift builtins.

2007-04-04  Chen liqin  <liqin@sunnorth.com.cn>

	* config/score/crti.asm: Change _bss_start to __bss_start.
	* config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
	(OUTGOING_REG_PARM_STACK_SPACE) update.
	* config/score/score.opt: add options to make backend support
	score5, score5u, score7 and score7d.
	* config/score/score.md: Likewise.
	* config/score/misc.md: Likewise.
	* config/score/mac.md: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: update constraints define.

2007-04-03  Stuart Hastings  <stuart@apple.com>

	PR 31281
	* objc/objc-act.c (next_sjlj_build_catch_list): Delete volatile
	from rethrow decl.
	* cse.c (record_jump_equiv): Bail out on CCmode comparisons.

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

	PR middle-end/30704
	* fold-const.c (native_encode_real): Encode real.c provided longs
	as a series of 32-bit native integers.
	(native_interpret_real): Interpret buffer as a series of 32-bit
	native integers.

2007-04-02  Eric Christopher  <echristo@apple.com>

	* doc/invoke.texi (i386 and x86-64 Options): Document -m64
	limitations on darwin.

2007-04-02  Anatoly Sokolov <aesok@post.ru>

	PR target/31137
	* config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.

2007-04-02  H.J. Lu  <hongjiu.lu@intel.com>

	* Backport from mainline:
	2007-03-28  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>

	PR target/31380
	* config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.

2007-03-30  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (avr_override_options): Clear
	'flag_delete_null_pointer_checks'.

2007-03-29  Michael Matz  <matz@suse.de>

	* builtins.c (expand_builtin_sync_operation,
	expand_builtin_compare_and_swap,
	expand_builtin_lock_test_and_set): Care for extending CONST_INTs
	correctly.

	* config/i386/sync.md (sync_double_compare_and_swapdi_pic,
	sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
	for operand 3.

2007-03-28  Mike Stump  <mrs@apple.com>

	* config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
	* config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
	* config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.

2007-03-27  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
	architecture.

2007-03-26  Ian Lance Taylor  <iant@google.com>

	PR tree-optimization/31345
	* tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
	[+INF, +INF(OVF)] into VARYING.

2007-03-23  Martin Michlmayr  <tbm@cyrius.com>

	* doc/invoke.texi (-fforce-mem): Update documentation to reflect
	that this option will be removed in 4.3 rather than 4.2.
	* opts.c (common_handle_option): Likewise.

2007-03-21  Mike Stump  <mrs@apple.com>

	* c.opt: Fixup for Objective-C/C++.

2007-03-21  Richard Henderson  <rth@redhat.com>

	PR target/31245
	* config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
	* config/i386/mmintrin.h (__m64): Likewise.
	* config/i386/xmmintrin.h (__m128): Likewise.

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

	PR c/30762
	* c-typeck.c (convert_for_assignment): Call comptypes for
	RECORD_TYPE or UNION_TYPE.

	PR inline-asm/30505
	* reload1.c (reload): Do invalid ASM checking after
	cleanup_subreg_operands.

2007-03-19  Jeff Law  <law@redhat.com>

	* tree-cfg.c (find_taken_edge): Tighten conditions for
	optimizing computed gotos.

2007-03-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (attr_length_call): Partially revert change of 2007-03-09.
	(output_call): Likewise.

2007-03-16  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/29906
	* dwarf2out.c (force_type_die): Adjust comment.
	(dwarf2out_imported_module_or_decl): Handle base AT_import types.

2007-03-15  Seongbae Park <seongbae.park@gmail.com>

	PR tree-optimization/30590
	* tree-nrv.c (tree_nrv): Check for the partial update
	of the return value.

2007-03-14  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (value_inside_range): Ignore fold warnings.

2007-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/31123
	* pa.md (vdepi_ior): Don't allow zero length deposit.  Likewise for
	two unamed patterns.

2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>

	* doc/extend.texi: Edit "gnu_inline" documentation.
	* doc/invoke.texi: Edit "-fgnu89-inline" documentation.

2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>

	* doc/extend.texi: Fix cpp.info cross-reference.
	* doc/invoke.texi: Fix cpp.info cross-reference.
	* doc/passes.texi: Fix gcc.info cross-reference.

2007-03-12  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/28544
	* tree-ssa-operands.c (add_virtual_operand):
	Move assert triggering on aliasing violations into
	debugging define

2007-03-12  Ian Lance Taylor  <iant@google.com>

	* c.opt (fgnu89-inline): New option.
	* c-opts.c (c_common_post_options): Warn about -fno-gnu89-inline.
	* c-common.c (c_common_attributes): Add gnu_inline attribyte.
	(handle_gnu_inline_attribute): New static function.
	* c-decl.c (start_function): Warn if we see a non-static inline
	function in C99 mode.
	* c-cppbuiltin.c (c_cpp_builtins): Define __GNUC_GNU_INLINE__.
	* doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
	(C Dialect Options): Document -fgnu89-inline.
	* doc/extend.texi (Function Attributes): Document gnu_inline.
	(Inline): Mention that C99 inline will be implemented in 4.3.
	Refer to ways to get the old handling.
	* doc/cpp.texi (Common Predefined Macros): Document
	__GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.

2007-03-12  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_elf_section_type_flags): New.
	(TARGET_SECTION_TYPE_FLAGS): New.

2007-03-12  Richard Henderson  <rth@redhat.com>

	* config/darwin.c (machopic_reloc_rw_mask): New.
	(machopic_select_section): Use decl_readonly_section.
	* config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
	* config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.

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

	Backport from mainline:
	* flags.h (issue_strict_overflow_warning): Convert to a macro.

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

	Backport -fstrict-overflow/-Wstrict-overflow from mainline:
	2007-03-11  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
	the *_DIV_EXPR codes correctly with overflow infinities.

	2007-03-09  Ian Lance Taylor  <iant@google.com>

	* opts.c (common_handle_option): Treat -Wstrict-overflow (with no
	argument) like -Wstrict-overflow=2.
	* doc/invoke.texi (Warning Options): Update documentation.

	2007-03-08  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c: Include "toplev.h" and "intl.h".
	(usable_range_p): New static function.
	(compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
	overflowed values, juts set *strict_overflow_p.
	(compare_values): Only return -2 if one of the operands is not a
	constant.
	(compare_ranges): Call usable_range_p.
	(compare_range_with_value): Likewise.
	(vrp_evaluate_conditional_warnv): Rename from
	vrp_evaluate_conditional.  Make static.  Change all callers.
	(vrp_evaluate_conditional): New function.
	(simplify_div_or_mod_using_ranges): Issue warning about reliance
	on signed overflow.
	(simplify_abs_using_ranges): Likewise.
	(simplify_stmt_for_jump_threading): Add within_stmt parameter.
	* tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
	within_stmt parameter.
	* tree-ssa-propagate.c (fold_predicate_in): Update call to
	vrp_evaluate_conditional.
	* tree-ssa-threadedge.c
	(record_temporary_equivalences_from_stmts_at_dest): Change
	simplify parameter to take a second tree parameter.
	(simplify_control_stmt_condition): Likewise.
	(thread_across_edge): Likewise.
	* tree-flow.h (vrp_evaluate_conditional): Update declaration.
	(thread_across_edge): Likewise.
	* Makefile.in (tree-vrp.o): Depend upon toplev.h and intl.h.

	2007-03-05  Ian Lance Taylor  <iant@google.com>

	* tree-vrp.c (extract_range_from_assert): Don't try to handle a
	half-range if the other side is an overflow infinity.

	2007-03-02  Ian Lance Taylor  <iant@google.com>

	Used signed infinities in VRP.
	* tree-vrp.c (uses_overflow_infinity): New static function.
	(supports_overflow_infinity): New static function.
	(make_overflow_infinity): New static function.
	(negative_overflow_infinity): New static function.
	(positive_overflow_infinity): New static function.
	(is_negative_overflow_infinity): New static function.
	(is_positive_overflow_infinity): New static function.
	(is_overflow_infinity): New static function.
	(overflow_infinity_range_p): New static function.
	(compare_values_warnv): New function split out of compare_values.
	(compare_value): Call it.
	(set_value_range_to_nonnegative): Add overflow_infinity
	parameter.  Change caller.
	(vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
	Change callers.
	(vrp_expr_computes_nonzero): Likewise.
	(compare_ranges, compare_range_with_value): Likewise.
	(compare_name_with_value, compare_names): Likewise.
	(vrp_evaluate_conditional): Likewise.
	(set_value_range): Handle infinity
	(vrp_operand_equal_p, operand_less_p): Likewise.
	(extract_range_from_assert): Likewise.
	(vrp_int_const_binop): Likewise.
	(extract_range_from_binary_expr): Likewise.
	(extract_range_from_unary_expr): Likewise.
	(extract_range_from_comparison): Likewise.
	(extract_range_from_expr): Likewise.
	(dump_value_range): Likewise.
	(vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
	(test_for_singularity): Likewise.
	(vrp_int_const_binop): Remove inline qualifier.
	(adjust_range_with_scev): Add comment.
	* tree-flow.h (vrp_evaluate_conditional): Update declaration.

	2007-02-13  Ian Lance Taylor  <iant@google.com>

	* common.opt: Add Wstrict-overflow and Wstrict-overflow=.
	* flags.h (warn_strict_overflow): Declare.
	(enum warn_strict_overflow_code): Define.
	(issue_strict_overflow_warning): New static inline function.
	* opts.c (warn_strict_overflow): New variable.
	(common_handle_option): Handle OPT_Wstrict_overflow and
	OPT_Wstrict_overflow_.
	* c-opts.c (c_common_handle_option): Set warn_strict_overflow for
	OPT_Wall.
	* fold-const.c: Include intl.h.
	(fold_deferring_overflow_warnings): New static variable.
	(fold_deferred_overflow_warning): New static variable.
	(fold_deferred_overflow_code): New static variable.
	(fold_defer_overflow_warnings): New function.
	(fold_undefer_overflow_warnings): New function.
	(fold_undefer_and_ignore_overflow_warnings): New function.
	(fold_deferring_overflow_warnings_p): New function.
	(fold_overflow_warning): New static function.
	(make_range): Add strict_overflow_p parameter.  Change all
	callers.
	(extract_muldiv, extract_muldiv_1): Likewise.
	(fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
	tree_expr_nonnegative_p.
	(fold_negate_expr): Call fold_overflow_warning.
	(fold_range_test): Likewise.
	(fold_comparison): Likewise.
	(fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
	instead of tree_expr_nonnegative_p.
	(tree_expr_nonnegative_warnv_p): Rename from
	tree_expr_nonnegative_p, add strict_overflow_p parameter.
	(tree_expr_nonnegative_p): New function.
	(tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
	strict_overflow_p parameter.
	(tree_expr_nonzero_p): New function.
	* passes.c (verify_interpass_invariants): New static function.
	(execute_one_pass): Call it.
	* tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
	warnings.
	(number_of_iterations_exit, loop_niter_by_eval): Likewise.
	(estimate_numbers_of_iterations): Likewise.
	(scev_probably_wraps_p): Likewise.
	* tree-ssa-ccp.c: Include "toplev.h".
	(evaluate_stmt): Defer fold overflow warnings until we know we are
	going to optimize.
	(struct fold_stmt_r_data): Add stmt field.
	(fold_stmt_r): Defer fold overflow warnings until we know we
	optimized.
	(fold_stmt): Initialize stmt field of fold_stmt_r_data.
	(fold_stmt_inplace): Likewise.
	* tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
	(cleanup_control_expr_graph): Defer fold overflow warnings until
	we know we are going to optimize.
	* tree-cfg.c (fold_cond_expr_cond): Likewise.
	* tree-ssa-threadedge.c (simplify_control_stmt_condition):
	Likewise.
	* tree-vrp.c (vrp_expr_computes_nonnegative): Call
	tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	* c-typeck.c (build_conditional_expr): Likewise.
	(build_binary_op): Likewise.
	* tree-vrp.c (vrp_expr_computes_nonzero): Call
	tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
	(extract_range_from_unary_expr): Likewise.
	* simplify-rtx.c (simplify_const_relational_operation): Warn when
	assuming that signed overflow does not occur.
	* c-common.c (pointer_int_sum): Ignore fold overflow warnings.
	* tree.h (tree_expr_nonnegative_warnv_p): Declare.
	(fold_defer_overflow_warnings): Declare.
	(fold_undefer_overflow_warnings): Declare.
	(fold_undefer_and_ignore_overflow_warnings): Declare.
	(fold_deferring_overflow_warnings_p): Declare.
	(tree_expr_nonzero_warnv_p): Declare.
	* doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
	of warning options.
	(Warning Options): Document -Wstrict-overflow.
	* Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
	(tree-ssa-ccp.o): Likewise.
	(tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
	(fold-const.o): Depend on intl.h.

	2007-01-27  Ian Lance Taylor  <iant@google.com>

	* common.opt: Add fstrict-overflow.
	* opts.c (decode_options): Set flag_strict_overflow if -O2.
	* flags.h (TYPE_OVERFLOW_WRAPS): Define.
	(TYPE_OVERFLOW_UNDEFINED): Define.
	(TYPE_OVERFLOW_TRAPS): Define.  This replaces TYPE_TRAP_SIGNED.
	Replace all uses.
	* tree.h (TYPE_TRAP_SIGNED): Don't define.
	* fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
	(fold_negate_expr): Likewise.
	(make_range): Likewise.
	(extract_muldiv_1): Likewise.
	(fold_comparison): Likewise.
	(fold_binary): Likewise.
	(tree_expr_nonnegative_p): Likewise.
	(tree_expr_nonzero_p): Likewise.
	* tree-vrp.c (compare_values): Likewise.
	(extract_range_from_binary_expr): Likewise.
	(extract_range_from_unary_expr): Likewise.
	* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
	Likewise.
	(nowrap_type_p): Likewise.
	* tree-scalar-evolution.c (simple_iv): Likewise.
	* fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
	(build_range_check): Likewise.
	(extract_muldiv_1): Likewise.
	(fold_comparison): Likewise.
	* tree-vrp.c (vrp_int_const_binop): Likewise.
	(extract_range_from_unary_expr): Likewise.
	* convert.c (convert_to_integer): Likewise.
	* fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
	(fold_comparison): Likewise.
	(fold_binary): Likewise.
	* optabs.c (optab_for_tree_code): Likewise.
	* tree-vectorizer.c (vect_is_simple_reduction): Likewise.
	* simplify-rtx.c (simplify_const_relational_operation): Check
	flag_strict_overflow and flag_trapv.
	(simplify_const_relational_operation): Likewise.
	* doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
	(Optimize Options): Add -fstrict-overflow to -O2 list.  Document
	-fstrict-overflow.

	2007-01-17  Ian Lance Taylor  <iant@google.com>

	* vec.h (VEC_reserve_exact): Define.
	(vec_gc_p_reserve_exact): Declare.
	(vec_gc_o_reserve_exact): Declare.
	(vec_heap_p_reserve_exact): Declare.
	(vec_heap_o_reserve_exact): Declare.
	(VEC_OP (T,A,reserve_exact)): New static inline function, three
	versions.
	(VEC_OP (T,A,reserve)) [all versions]: Remove handling of
	negative parameter.
	(VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
	(VEC_OP (T,A,copy)) [all versions]: Likewise.
	(VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
	* vec.c (calculate_allocation): Add exact parameter.  Change all
	callers.
	(vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
	(vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
	(vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
	(vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
	(vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
	(vec_heap_p_reserve_exact): New function.
	(vec_heap_o_reserve_exact): New function.

2007-03-11  Roger Sayle  <roger@eyesopen.com>
	    Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/30433
	* fold-const.c (fold_relational_const): Add back compile-time
	evaluation of complex constant equality/inequality comparisons.

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

	PR tree-optimization/29925
	* tree-data-ref.c (analyze_offset): Add a return value (bool) to
	indicate success/failure of the analysis. Add negation to subtrahend
	in case of subtraction. Fail if both operands contain constants.
	(create_data_ref): Fail if analyze_offset fails.

2007-03-10  Mark Mitchell  <mark@codesourcery.com>

	PR c++/30924
	* tree.c (walk_type_fields): Recurse into the element type of
	ARRAY_TYPEs if there is a pointer set.

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

	* pa.c (attr_length_call): Revise condition for long pc-relative branch.
	(output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
	calls on the SOM target.  Don't use "LONG_PIC_PCREL" call sequence on
	SOM target.

2007-03-09  Richard Henderson  <rth@redhat.com>

	PR target/26090
	* target.h (targetm.asm.out.reloc_rw_mask): New.
	* target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
	(TARGET_ASM_OUT): Use it.
	* targhooks.c, targhooks.h (default_reloc_rw_mask): New.
	* varasm.c (categorize_decl_for_section): Remove shlib argument;
	use the new reloc_rw_mask target hook instead.
	(default_section_type_flags_1): Merge into...
	(default_section_type_flags): ... here.
	(decl_readonly_section_1): Merge into...
	(decl_readonly_section): ... here.
	(default_elf_select_section_1): Merge into...
	(default_elf_select_section): ... here.
	(default_unique_section_1): Merge into...
	(default_unique_section): ... here.
	(compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
	(default_select_rtx_section): Use it.
	(default_elf_select_rtx_section): Likewise.
	* output.h: Update to match.
	* doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
	* config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
	(TARGET_ASM_RELOC_RW_MASK): New.
	* config/i386/i386.c (x86_64_elf_select_section): Adjust call
	to categorize_decl_for_section.
	(x86_64_elf_unique_section): Likewise.
	* config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
	TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
	(TARGET_ASM_RELOC_RW_MASK): New.
	* config/ia64/ia64.c (ia64_rwreloc_select_section,
	ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
	(ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
	(TARGET_RWRELOC): Remove.
	(ia64_section_type_flags): Adjust call to default_section_type_flags.
	* config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
	* config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
	(rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
	(rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
	(rs6000_xcoff_select_section): Use decl_readonly_section.
	(rs6000_xcoff_section_type_flags): Use default_section_type_flags.
	* config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
	(TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
	(TARGET_SECTION_TYPE_FLAGS): Remove.
	* config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.

2007-03-08  Geoffrey Keating  <geoffk@apple.com>

	PR 31013
	* gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
	is declared.
	* config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
	passed, use shared libgcc.

2007-03-09  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/30643
	* cse.c (cse_insn): Recompute dest_hash after insert_regs for
	dest_addr_elt.

2007-03-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR tree-opt/30045
	* tree-vrp.c (nonnull_arg_p): Treat the static decl as always
	non null.

2007-03-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR middle-end/30729
	* stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
	effects unknown to this function, return early.

2007-03-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR tree-opt/28624
	* tree-ssa-dom.c (eliminate_degenerate_phis): Use a temporary
	bitmap for EXECUTE_IF_SET_IN_BITMAP.

2006-03-09  Mark Shinwell  <shinwell@codesourcery.com>
	    Andrew MacLeod  <amacleod@redhat.com>
	PR tree-optimization/29877
	* tree-outof-ssa.c (check_replaceable): Don't allow TER to replace
	an expression if the RHS is a register variable.

2007-03-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR C/31072
	* c-decl.c (merge_decls): Don't call make_var_volatile.
	* varasm.c (make_var_volatile): Remove.
	* output.h (make_var_volatile): Remove.

2007-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
	llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
	ATTR_CONST_NOTHROW_LIST.

	* fold-const.c (tree_expr_nonnegative_p): Handle FIX_TRUNC_EXPR.

2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>

	PR target/30406
	* config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
	instead of precision.

2007-03-08  Volker Reichelt  <reichelt@netcologne.de>

	PR c++/30852
	* c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.

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

	* c.opt (Waddress): New.
	* common.opt (Walways-true): Delete.
	(Wstring-literal-comparison): Delete.
	* doc/invoke.texi (Warning Options): Delete -Walways-true and
	-Wstring-literal-comparison. Add -Waddress.
	(Waddress): New.
	(Walways-true): Delete.
	(Wstring-literal-comparison): Delete.
	* doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
	consistently instead of -Walways-true in example.
	* c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
	* c-typeck.c (parser_build_binary_op): Replace
	-Wstring-literal-comparison and -Walways-true with -Waddress.
	(build_binary_op): Likewise.
	* c-common.c (c_common_truthvalue_conversion): Likewise.

2007-03-07  Richard Henderson  <rth@redhat.com>

	PR target/30848
	* reg-stack.c (emit_swap_insn): If a malformed asm was seen,
	silently fix up the stack in the case of a missing register.

2007-03-06  David Daney  <ddaney@avtrex.com>

	* doc/install.texi (mips-*-*): Change recommended binutils
	version.

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

	* doc/invoke.texi (Warning Options): Replace -Werror- with
	-Werror=.
	* opts.c (common_handle_option): Likewise.

2007-03-06  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
	ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
	devices.
	* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
	* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).

2007-03-06  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/30744
	* fold-const.c (fold_binary) <EQ_EXPR>: Enforce type consistency
	when transforming ~X op C to X op' ~C.

2007-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.md: In unamed move patterns, disparge copies between general
	and floating point registers using '?' modifier.  Don't include 'f'
	constraint for register preferences in DImode, SImode, HImode and
	QImode patterns.  Likewise for 'r' in DFmode and SFmode patterns.
	Remove constraints for copies between general and floating registers
	in soft-float DFmode pattern.
	(movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
	floating register.
	(movsf): Likewise.

2007-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
	conversion.

2007-03-05  Steve Ellcey  <sje@cup.hp.com>

	Backported from mainline
	PR debug/29614
	* cgraph.h (cgraph_varpool_last_needed_node): Make global.
	* cgraph.c (cgraph_varpool_last_needed_node): Ditto.
	* cgraphunit.c (cgraph_varpool_assemble_pending_decls):
	Set cgraph_varpool_last_needed_node to NULL.

2007/03/05  David Taylor  <dtaylor@emc.com>

	PR 31050
	* gcc.c: Correct copyright date in --version output.

2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>

	* c.opt: Remove -ffixed-form, -ffixed-line-length-none, and
	-ffixed-line-length-* options.

2007-03-05  David Edelsohn  <edelsohn@gnu.ogr>

	* config/rs6000/t-ppccomm: Always build libgcc2 for GNU/Linux
	with -mlong-double-128, except SPE.

	* config/rs6000/darwin-ldouble.c: Only build new functions for
	__LONG_DOUBLE_128__.

	Backport from mainline:
	2007-01-16  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
	(strong_alias): Define.
	(__gcc_qmul): Provide non-FMA for soft-float.
	(__gcc_qdiv): Same.
	(__gcc_qneg): New.
	(__gcc_qeq): New.
	(__gcc_qle): New.
	(__gcc_qge): New.
	(__gcc_qunord): New.
	(__gcc_stoq): New.
	(__gcc_dtoq): New.
	(__gcc_qtos): New.
	(__gcc_qtod): New.
	(__gcc_qtoi): New.
	(__gcc_qtou): New.
	(__gcc_itoq): New.
	(__gcc_utoq): New.
	(fmsub): New.
	* config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
	soft-float functions.
	* config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
	about long double soft float.

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

	Backport from mainline:
	2007-02-28  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30364
	* fold-const.c (fold_binary): Do not associate expressions
	with more than one variable for integer types that do not wrap.

2007-03-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/26797
	* doc/invoke.texi (-O2): Document that Tree-VRP is not turned on
	for the Ada compiler.

2007-03-02  Zdenek Dvorak <dvorakz@suse.cz>

	PR tree-optimization/29902
	* tree-ssa-loop-manip.c (can_unroll_loop_p): Return false if
	any involved ssa name appears in abnormal phi node.

2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
	(sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
	if the lhs has side-effects.
	<lhs_elt>: Treat the reference as a use if the rhs has side-effects.

2007-03-02  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
	modes to LDRD for DImode.
	(output_move_double): Fixup out of range ldrd/strd.
	(vfp_secondary_reload_class): Rename...
	(coproc_secondary_reload_class): ... to this.  Add wb argument.
	* config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
	coproc_secondary_reload_class for CLASS_IWMMXT.
	(SECONDARY_INPUT_RELOAD_CLASS): Ditto.
	* arm-protos.h (coproc_secondary_reload_class): Update prototype.

2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>

	* config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
	entry by means of emit_insn_at_entry.

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

	* doc/invoke.texi (Wextra): Delete outdated paragraph.

2007-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa/predicates.md (move_src_operand): Allow zero for mode.
	* pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
	move pattern.

2007-02-27  Mike Stump  <mrs@apple.com>

	* config/darwin-crt3.c: Avoid compilation when compiling for a
	kext multilib.

2007-02-27  Andreas Schwab  <schwab@suse.de>

	* Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.

2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>

	* Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.

2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>

	* doc/include/gcc-common.texi (versionsubtitle): New macro.
	* doc/cpp.texi: Standardize title page.
	* doc/cppinternals.texi: Likewise.
	* doc/gcc.texi: Standardize title page, remove version number
	from copyright page.
	* doc/gccint.texi: Likewise.
	* doc/install.texi: Standardize title page, add table of
	contents.

2007-02-24  Mike Stump  <mrs@apple.com>

	* config/i386/i386.c (output_pic_addr_const): Stubify optimized
	symbols.

2007-02-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.md (muldi3): Force subregs to registers in 64-bit expander.

2007-02-23  Mike Stump  <mrs@apple.com>

	* tlink.c (scan_linker_output): Parse linker messages from
	darwin9's linker better.

2007-02-21 Ira Rosen  <irar@il.ibm.com>

	* tree-ssa-alias.c: Include pointer-set.h
	* Makefile.in (tree-ssa-alias.o): Depend on pointer-set.h.

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

	Backported from mainline
	2006-12-20  Andrew Pinski  <pinskia@gmail.com>
	PR middle-end/30143
	* omp-low.c (init_tmp_var): New function.
	(save_tmp_var): New function.
	(lower_omp_1): Use them for VAR_DECL.

2007-02-20  Alan Modra  <amodra@bigpond.net.au>

	PR target/29943
	* varasm.c (use_blocks_for_decl_p): Return false for decls with
	alias attribute.

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

	* gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
	due to calls to functions taking pointers as parameters.

2007-02-19  Richard Henderson  <rth@redhat.com>

	PR debug/29558
	* var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
	in memory.

2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.

2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>

	* calls.c (mem_overlaps_already_clobbered_arg_p): Return true
	for arg pointer based indexed addressing.

2007-02-18 Ira Rosen  <irar@il.ibm.com>

	* tree-ssa-alias.c (may_aliases_intersect): New function.
	* tree-data-ref.c (ptr_ptr_may_alias_p): Call may_aliases_intersect
	for different tags.
	* tree-flow.h (may_aliases_intersect): Add function declaration.

2007-02-17  Alexandre Oliva  <aoliva@redhat.com>

	PR tree-optimization/30823
	* tree-sra.c (sra_build_assignment): Drop type-checking assert.

2007-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR other/27843
	* Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
	nested double- and backquotes.

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

	* tree-sra.c (instantiate_missing_elements): Canonicalize
	bit-field types.
	(sra_build_assignment): New.
	(generate_copy_inout, generate_element_copy,
	generate_element_zero, generate_one_element_init): Use it.

2007-02-15  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR rtl-optimization/29599
	Backport from mainline.
	* reload1.c (eliminate_regs_in_insn): Take the destination
	mode into account when computing the offset.

2007-02-13  Joseph S. Myers  <joseph@codesourcery.com>

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

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

	PR target/30634
	* pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
	CONST_DOUBLE and operand 0 is a hard register.
	(movdi): For 64-bit target, remove code to force CONST_DOUBLE to
	memory.  Fail if operand 1 is a non-zero CONST_INT and operand 0
	is a hard floating-point register.

2007-02-06  Mark Mitchell  <mark@codesourcery.com>

	PR target/29487
	* tree.h (DECL_REPLACEABLE_P): New macro.
	* except.c (set_nothrow_function_flags): Likewise.

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

	PR c++/30703
	* gimplify.c (gimplify_scan_omp_clauses): Remove special casing
	of INDIRECT_REF <RESULT_DECL>.

2007-02-06  Rask Ingemann Lamberisen  <rask@sygehus.dk>

	PR 30370
	* config/rs6000/t-ppccomm: Correct Makefile typo.

2007-02-06  Roger Sayle  <roger@eyesopen.com>

	PR libgomp/28296
	Backport from mainline.
	* config/darwin.h (CPP_SPEC): Handle -pthread, transforming
	it into -D_REENTRANT.

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

	PR debug/30189
	* dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
	even if cv-qualification is the same.

2007-02-05  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
	__enable_execute_stack on completion.

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

	* config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.

2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	PR target/29682
	* config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory loads to
	general or fp registers.  Add comments.
	* config/ia64/ia64.md (reg_pred_prefix): Add comment.

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

	Backport from mainline:
	2007-01-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/27657
	* dwarf2out.c (reference_to_unused): Query varpool if the
	variable was output.

2007-02-02  Mike Stump  <mrs@apple.com>

	* config.gcc (*-*-darwin*): Backport darwin9.h bits.
	* config/darwin9.h: Add.
	* config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
	(output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
	generate a branch island.

2007-02-02  Hui-May Chang  <hm.chang@apple.com>

	Revert for x86 darwin:
	2005-06-19  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.c (ix86_function_arg_regno_p): Put back the
	code before the following patch under TARGET_MACHO.
	(ix86_function_value_regno_p): Likewise.

2007-02-02  Simon Martin  <simartin@users.sourceforge.net>

	PR c++/28266
	* gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
	expanded only once even if an error occurs.

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

	PR middle-end/30473
	* builtins.c (fold_builtin_sprintf): Do not attempt to optimize
	sprintf (str, "%s").  Do not optimize sprintf (str, "nopercent", p++).

2007-02-01  Guy Martin  <gmsoft@gentoo.org>

	* pa.md (tp_load): Correct mfctl instruction syntax.

2007-02-01  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/rs6000.c (rs6000_stack_info): Correct
	altivec_padding_size calculation on AIX.  Improve comment, add
	assert to verify that it's right.

2007-01-31  Anatoly Sokolov <aesok@post.ru>

	PR target/19087
	* config/avr/avr.c (DWARF2_ADDR_SIZE): Define.

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

	PR middle-end/30313
	* passes.c (execute_one_pass): Reset in_gimple_form to not
	confuse non-unit-at-a-time mode.

2007-01-27  Anatoly Sokolov <aesok@post.ru>

	* config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define __AVR_HAVE_MUL__.

2007-01-29  Mike Stump  <mrs@apple.com>

	* doc/gccint.texi (Top): Rename Loop Representation to Loop
	Analysis and Representation to resolve case insensitive conflict.
	* doc/loop.texi (Loop Analysis and Representation): Likewise.

2007-01-29  Josh Conner  <jconner@apple.com>

	PR middle-end/29683
	* calls.c (compute_argument_addresses): Set stack and stack_slot
	for partial args, too.
	(store_one_arg): Use locate.size.constant for the size when
	generating a save_area.

2007-01-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* doc/sourcebuild.texi: Add comma for clarity.
	* doc/extend.texi: Fix some typos.
	* doc/passes.texi: Likewise.
	* doc/cppinternals.texi: Likewise.
	* doc/c-tree.texi: Likewise.
	* doc/tree-ssa.texi: Likewise.
	* doc/install.texi: Likewise.

2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>

	PR tree-optimization/29516
	* tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
	most_expensive_mult_to_index, addr_to_parts,
	create_mem_ref, maybe_fold_tmr): Make the type of
	fields of TARGET_MEM_REF sizetype.
	(move_fixed_address_to_symbol, move_pointer_to_base,
	aff_combination_remove_elt): New functions.
	* tree.def (TARGET_MEM_REF): Add comment on types of
	the operands.
	* gcc.dg/tree-ssa/loop-20.c: New test.

2007-01-25  Geoffrey Keating  <geoffk@apple.com>

	PR 25127
	* config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
	save Altivec registers in an eh_return function.
	(compute_vrsave_mask): Likewise.
	(rs6000_stack_info): Correct AIX/Darwin stack alignment computation
	for saving Altivec registers.
	(rs6000_emit_prologue): Don't allocate stack twice in
	eh_return function.  Correct expected value of altivec_save_offset
	when using save_world.  Describe save of R0 to stack when using
	save_world.  Describe stack pointer adjustment when using
	save_world.  Remove duplicated eh_return parameter register saving.
	Update sp_offset variable after save_world.
	* config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
	darwin-world.asm.
	(LIB2FUNCS_EXTRA): Add darwin-world.asm.
	* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
	implies Altivec.

2007-01-24  Geoffrey Keating  <geoffk@apple.com>

	* unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.

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

	PR middle-end/27416
	* gimplify.c (omp_check_private): New function.
	(gimplify_scan_omp_clauses): Use it for
	firstprivate/lastprivate/reduction.

	PR middle-end/30494
	* gimplify.c (omp_add_variable): Don't call omp_notice_variable
	on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.

	PR middle-end/30421
	* omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
	If lower_lastprivate_clauses emits some statements, append them
	to dlist rather than body_p and to body_p append an initializer.
	(lower_omp_for): Adjust caller.

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

	PR rtl-optimization/29329
	* combine.c (replaced_rhs_insn): Rename to i2mod.
	(replaced_rhs_value): Rename to i2mod_new_rhs.
	(i2mod_old_rhs): New global variable.
	(combine_instructions): Adjust for above change.  Save a copy of
	the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
	note are substituted in the second instruction.
	(distribute_notes) <REG_DEAD>: Adjust for above change.  Do not
	ditch the note if it pertains to the second eliminated register
	and this register is mentioned in i2mod_old_rhs.

	Revert:
	2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
	the insn to which the note was originally attached.

2007-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (output_move_double): Change array size of xoperands to 4.

2007-01-17  Eric Christopher  <echristo@apple.com>

	Backport from mainline:
	2006-12-18  Roger Sayle  <roger@eyesopen.com>
	            Eric Christopher  <echristo@apple.com>

	PR target/29302
	* real.c (real_maxval): Correctly handle IBM extended double format.

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

	* doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
	* doc/install.texi (Testing): Use sourceware.org.
	(Binaries): Likewise.
	(Specific): Likewise.
	* doc/contrib.texi (Contributors): Use sourceware.org.

2007-01-15  Joseph S. Myers  <joseph@codesourcery.com>

	* config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
	glibc CVS.

2007-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
	* pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
	(ASM_OUTPUT_INTERNAL_LABEL): Define.

2007-01-10  Ralf Corsépius <ralf.corsepius@rtems.org>

	* config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.

2007-01-09  Nicolas Pitre  <nico@cam.org>

	PR target/30173
	* arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.

2007-01-08  Nick Clifton  <nickc@redhat.com>

	* config/frv/predicates.md (reg_or_0_operand): Accept
	CONST_DOUBLEs.

2007-01-08  Ralf Corsépius <ralf.corsepius@rtems.org>

	* config/bfin/rtems.h, config/bfin/t-rtems: New.
	* config.gcc: Add bfin*-rtems*.

2007-01-08  Chen liqin  <liqin@sunnorth.com.cn>
	* config/score/t-score-elf (MULTILIB_OPTIONS): Change.
	* config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
	const_simm15, const_pow2, const_npow2): Added.
	* config/score/misc.md (insv, extv, extzv, movmemsi,
	move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
	* config/score/score.c (score_address_cost, score_select_cc_mode):
	Added.
	Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
	Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
	Update score_print_operand.
	* config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
	Adjust register allocate order and update some macro define.
	* config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
	mdx_block_move_straight, mdx_block_move_loop_head,
	mdx_block_move_loop_body, mdx_block_move_loop_foot, mdx_block_move_loop,
	mdx_block_move): Added.
	(mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
	mdp_limm): Updated and fix some bug and typo.
	* config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
	(movsf, movdf, doloop_end): Added.

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

	PR middle-end/27826
	* tree.c (get_narrower): Do not construct COMPONENT_REFs
	with mismatched types.  Instead explicitly build a
	conversion NOP_EXPR.

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

	PR c/30360
	* libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
	denom against 0.0.

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

	* unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
	(struct _Unwind_Context): Rename args_size to flags, remove
	signal_frame field, add a new args_size field and version field.
	(_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
	_Unwind_IsExtendedContext): New inline functions.
	(_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
	Assume by_value array is only present if _Unwind_IsExtendedContext.
	(_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
	_Unwind_IsSignalFrame.
	(__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
	(uw_update_context_1): Use _Unwind_SetSignalFrame.
	(uw_init_context_1): Initialize context->flags to
	EXTENDED_CONTEXT_BIT.
	* config/rs6000/linux-unwind.h (frob_update_context): Use
	_Unwind_SetSignalFrame.

2007-01-01  Mike Stump  <mrs@apple.com>

	* configure.ac: Remove support for building with Apple's gcc-3.1.

2007-01-01  Andreas Schwab  <schwab@suse.de>

	PR target/29166
	* config/ia64/ia64.c (ia64_compute_frame_size): Account space for
	save of BR0 in extra_spill_size instead of spill_size.
	(ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
	area.
	(ia64_expand_epilogue): Restore BR0 from its new location.
