ChangeLog   [plain text]

2006-10-24  Richard Guenther  <>
	Radar 5675014
	PR middle-end/28796
	* builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
	for deciding optimizations in consistency with fold-const.c
	(fold_builtin_unordered_cmp): Likewise.
2007-10-07  Geoffrey Keating  <>

	* config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register
	'#pragma mark' to be executed at preprocessing time.

2007-09-14  Geoffrey Keating  <>

	Radar 5480287
	* dwarf2out.c (output_call_frame_info): FDEs are always emitted
	if flag_exceptions is not set.
	* config/darwin.c (darwin_emit_unwind_label): Rewrite to use
	assemble_name rather than incorrectly emulating it.

	Radar 5482863
	* doc/extend.texi (Deprecated Features): Mention that <? and >? and
	friends are removed from G++.

2007-08-02  Geoffrey Keating  <>

	Radar 3274130, 5295549
	* c-parser.c (c_parser_while_statement): Handle attributes.
	(c_parser_do_statement): Handle attributes.
	(c_parser_for_statement): Handle attributes.
	* c-common.c (handle_unused_attribute): Warn if a statement
	is marked as unused.
	* c-tree.h (c_finish_loop): Add extra parameter.
	* c-typeck.c (c_finish_loop): Handle attributes.
	* doc/extend.texi (Attribute Syntax): Document statement attributes.
	(Label Attributes): Explain how they apply to statements.
	* tree-cfg.c (cleanup_dead_labels): Preserve labels with
	user-specified alignment or attributes.
	* stmt.c (expand_label): Update and correct documentation.

	* c-common.c (handle_aligned_attribute): Handle LABEL_DECL.
	* rtl.def (CODE_LABEL): Add 8th operand.
	* rtl.h (LABEL_ALIGN_LOG): New.
	* emit-rtl.c (gen_label_rtx): Adjust.
	* print-rtl.c (print_rtx): Print LABEL_ALIGN_LOG.
	* stmt.c (label_rtx): Set CODE_LABEL's alignment from DECL_ALIGN.
	(expand_label): Update documentation.
	* final.c (struct label_alignment): Delete.
	(label_align): Delete.
	(min_labelno): Delete.
	(max_labelno): Delete.
	(label_to_alignment): Adjust for LABEL_ALIGN_LOG.
	(align_fuzz): Likewise.
	(compute_alignments): Likewise.
	(shorten_branches): Remove code to set up label_align.
	Adjust for LABEL_ALIGN_LOG.
	(final_scan_insn): Adjust for LABEL_ALIGN_LOG.
	* doc/extend.texi (C Extensions): Add 'Label Attributes' to menu.
	(Attribute Syntax): Move label content to Label Attributes.
	(Function Attributes): Mention label attributes.
	(Variable Attributes): Mention label attributes.
	(Type Attributes): Mention label attributes.
	(Label Attributes): New.

	* builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
	* tree.c (build_decl_stat): Move code from here...
	(make_node_stat): ... to here.  Don't uselessly clear DECL_USER_ALIGN.
	(expr_align): Honor DECL_ALIGN on a FUNCTION_DECL.  Add comment
	* tree.h (DECL_USER_ALIGN): Fix misplaced comment.
	* varasm.c (assemble_start_function): Use DECL_ALIGN instead of

2007-06-21  H.J. Lu  <>

	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  <>

	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  <>

	Radar 4697325
	* doc/invoke.texi (Darwin Options): Update documentation for
	* 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  <>

	* mips-tdump.c: Replace CROSS_COMPILE with
	* mips-tfile.c: Likewise.
	* gcc.c: Likewise.
	* Likewise.
	* cppdefault.c: Likewise.
	* 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  <>

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

2007-05-31  Eric Christopher  <>

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

2007-05-21  Mike Stump  <>

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

2007-05-16  Eric Christopher  <>

	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  <>

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

2007-04-16  Ian Lance Taylor  <>

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

2006-09-11  Geoffrey Keating  <>

	* 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): Remove prototype.

2007-03-26  Mike Stump  <>

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

2007-02-20  Geoffrey Keating  <>

	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

	* 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_macosx_version_min to be non-NULL always.
	(TARGET_C99_FUNCTIONS): Likewise.
	(CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
	* config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
	* config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
	to cc1*.
	* config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
	* config/darwin-c.c (darwin_cpp_builtins): Expect
	darwin_macosx_version_min to be non-NULL always.

2006-11-07  Eric Christopher  <>

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

2006-10-31  Eric Christopher  <>
	    Falk Hueffner  <>

        * 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
        (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.
        * (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  <>

	Radar 4871915
	* target.h (struct gcc_target): New field library_rtti_comdat.
	* target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
	* 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  <>

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

2006-12-18  Geoffrey Keating  <>

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

2006-12-04  Eric Christopher  <>

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

2006-09-11  Geoffrey Keating  <>

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

2006-09-01  Geoffrey Keating  <>

	* 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  <>

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

2006-05-09  Geoffrey Keating  <>

	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'
	(grokdeclarator): Set DECL_EXTERNAL here for functions.  Handle
	C99 inline semantics.
	(start_function): Don't clear current_extern_inline.  Don't set
	(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  <>

	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  <>


	2007-07-09  Paolo Bonzini  <>

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

	2007-07-06  Paolo Bonzini  <>

	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  <>

	PR target/32753
	* config/arm/ (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  <>

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

2007-07-09  Uros Bizjak  <>

	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 <>

	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  <>

	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  <>

	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  <>

	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  <>

	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  <>

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

2007-07-03  Richard Guenther  <>

	Backport from mainline:
	2006-12-11  Zdenek Dvorak <>

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

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

	PR target/28307
	(__gthrw_pragma): Provide default definition.
	(__gthrw2): Use it.
	* gthr-posix.c (__gthrw_pragma): Define.

2007-07-02  Jakub Jelinek  <>

	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  <>

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

2007-06-28  Seongbae Park  <>

	* 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  <>

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

2007-06-28  David Edelsohn  <>

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

2007-06-21  H.J. Lu  <>

	* 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  <>

	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

2007-06-21  Uros Bizjak  <>

	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/ (truncdfsf2, truncxfsf2, truncxfdf2): Ditto.

2007-06-20  Jakub Jelinek  <>

	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

2007-06-20  Kaz Kojima  <>

	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  <>
	Michael Matz  <>

	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
	(push_fields_onto_fieldstack): Create fields for empty

2007-06-19  Jakub Jelinek  <>

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

2007-06-17  Eric Botcazou  <>

	* 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  <>

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

2007-06-13  Eric Botcazou  <>

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

2007-06-09  Ian Lance Taylor  <>

	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  <>

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

2007-06-06  Ian Lance Taylor  <>

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

2007-06-05  Ian Lance Taylor  <>

	* 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
	(test_for_singularity): Likewise.

2007-06-04  Ian Lance Taylor  <>

	* 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  <>

	Backport from mainline:
	2007-05-25  H.J. Lu  <>

	* 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  <>

	Backport from mainline:
	2007-05-05  Aurelien Jarno  <>

	* config/pa/ 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 <>

	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.
	* (tree-ssa-structalias.o): Update dependencies

2007-05-30  Ralf Wildenhues  <>

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

2007-05-30  Jakub Jelinek  <>

	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  <>

	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  <>

	Backport from mainline:
	2007-05-25  Uros Bizjak  <>

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

	2007-05-25  H.J. Lu  <>

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

2007-05-22  Ian Lance Taylor  <>

	* 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  <>

	PR target/30987
	* config/score/ (bitclr_c, bitset_c, bittgl_c): remove.
	* config/score/ (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  <>

	PR target/31167
	Backport from mainline.
	* config/i386/ (*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  <>

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

2007-05-20  Kaz Kojima  <>

	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  <>

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

2007-05-20  Kaz Kojima  <>

	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  <>

	PR target/27405
	Backport from mainline.
	* config/sh/ (cmp{eq,gt,gtu}{si,di}_media): Remove.
	(cmpsi{eq,gt,gtu}{si,di}_media): Rename to
	(*cmpne0si_media): Remove.
	(*movsicc_umin): Adjust gen_cmp*_media call.
	(unordered): Change the mode of unordered and operands[1] to
	(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
	(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  <>

	* 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  <>

	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  <>

	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  <>

	* 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  <>

	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  <>

	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  <>

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

2007-04-27  Anatoly Sokolov <>

	* 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  <>

	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  <>

	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

2007-04-26  Ulrich Weigand  <>

	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  <>
	Daniel Berlin  <>

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

2007-04-26  Jakub Jelinek  <>

	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 <>

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

2007-04-24  Andrew Pinski  <>
            Roger Sayle  <>

	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  <>

	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  <>

	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  <>

	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  <>

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

2007-04-22  Andrew Pinski  <>

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

2007-04-20  Richard Henderson  <>

	PR target/28623
	* config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
	argument; update all callers.
	(get_unaligned_offset): New.
	* config/alpha/ (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  <>

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

2007-04-20  Richard Henderson  <>

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

2007-04-20  Bernd Schmidt  <>

	* 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  <>

	* 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  <>

	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 <>

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

2007-04-17  Anatoly Sokolov <>

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

2007-04-17  Jan Hubicka  <>

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

2007-04-17  H.J. Lu  <>

	* Backport from mainline:
	2007-04-17  H.J. Lu  <>

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

2007-04-16  Matthias Klose  <>

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

2007-04-16  Anatoly Sokolov <>

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

2007-04-16  Jan Hubicka  <>

	PR target/27869
	* config/i386/
	(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  <>

	* Backport from mainline:
	2007-04-16  H.J. Lu  <>

	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  <>

	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  <>

	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  <>

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

2007-04-08  Anatoly Sokolov <>

	PR target/29932
	* config/avr/ (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/ (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
	for above change.

2007-04-07  Anatoly Sokolov <>

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

2007-04-05  Anatoly Sokolov <>

	PR target/25448
	* config/avr/avr.c (avr_handle_fndecl_attribute): Use the

2007-04-04  Richard Henderson  <>

	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/ (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  <>

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

2007-04-03  Stuart Hastings  <>

	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  <>

	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  <>

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

2007-04-02  Anatoly Sokolov <>

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

2007-04-02  H.J. Lu  <>

	* Backport from mainline:
	2007-03-28  Grigory Zagorodnev <>

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

2007-03-30  Anatoly Sokolov <>

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

2007-03-29  Michael Matz  <>

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

	* config/i386/ (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  <>

	* 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 <>

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

2007-03-26  Ian Lance Taylor  <>

	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  <>

	* 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  <>

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

2007-03-21  Richard Henderson  <>

	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  <>

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

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

2007-03-19  Jeff Law  <>

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

2007-03-16  John David Anglin  <>

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

2007-03-16  Alexandre Oliva  <>

	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 <>

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

2007-03-14  Ian Lance Taylor  <>

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

2007-03-13  John David Anglin  <>

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

2007-03-12  Brooks Moses  <>

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

2007-03-12  Brooks Moses  <>

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

2007-03-12  Daniel Berlin  <>

	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  <>

	* 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

2007-03-12  Richard Henderson  <>

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

2007-03-12  Richard Henderson  <>

	* 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  <>

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

2007-03-11  Ian Lance Taylor  <>

	Backport -fstrict-overflow/-Wstrict-overflow from mainline:
	2007-03-11  Ian Lance Taylor  <>

	* 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  <>

	* 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  <>

	* 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
	(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
	* 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.
	* (tree-vrp.o): Depend upon toplev.h and intl.h.

	2007-03-05  Ian Lance Taylor  <>

	* 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  <>

	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  <>

	* 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
	* c-opts.c (c_common_handle_option): Set warn_strict_overflow for
	* 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
	(extract_muldiv, extract_muldiv_1): Likewise.
	(fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
	(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
	(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
	(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):
	* 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.
	* (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  <>

	* common.opt: Add fstrict-overflow.
	* opts.c (decode_options): Set flag_strict_overflow if -O2.
	* flags.h (TYPE_OVERFLOW_WRAPS): Define.
	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):
	(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

	2007-01-17  Ian Lance Taylor  <>

	* 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
	(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
	(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  <>
	    Andrew Pinski  <>

	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  <>

	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  <>

	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  <>

	* 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  <>

	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.
	* 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,
	* 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.
	(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.
	* config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.

2007-03-08  Geoffrey Keating  <>

	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  <>

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

2007-03-09  Andrew Pinski  <>

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

2007-03-09  Andrew Pinski  <>

	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  <>

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

2006-03-09  Mark Shinwell  <>
	    Andrew MacLeod  <>
	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  <>

	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  <>

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

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

2007-03-08 Andrew Pinski <>

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

2007-03-08  Volker Reichelt  <>

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

2007-03-07  Manuel Lopez-Ibanez  <>

	* 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  <>

	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  <>

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

2007-03-06  Manuel Lopez-Ibanez  <>

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

2007-03-06  Anatoly Sokolov <>

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

2007-03-06  Roger Sayle  <>

	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  <>

	* 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  <>

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

2007-03-05  Steve Ellcey  <>

	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  <>

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

2007-03-05  Brooks Moses  <>

	* 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

	Backport from mainline:
	2007-01-16  David Edelsohn  <>

	* 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  <>

	Backport from mainline:
	2007-02-28  Richard Guenther  <>

	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  <>

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

2007-03-02  Zdenek Dvorak <>

	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  <>

	* 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  <>

	* 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.
	* arm-protos.h (coproc_secondary_reload_class): Update prototype.

2007-03-02  Eric Botcazou  <>

	* 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  <>

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

2007-02-27  John David Anglin  <>

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

2007-02-27  Mike Stump  <>

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

2007-02-27  Andreas Schwab  <>

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

2007-02-26  Brooks Moses  <>

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

2007-02-26  Brooks Moses  <>

	* 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

2007-02-24  Mike Stump  <>

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

2007-02-24  John David Anglin  <>

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

2007-02-23  Mike Stump  <>

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

2007-02-21 Ira Rosen  <>

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

2007-02-21  Jakub Jelinek  <>

	Backported from mainline
	2006-12-20  Andrew Pinski  <>
	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  <>

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

2007-02-19  Eric Botcazou  <>

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

2007-02-19  Richard Henderson  <>

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

2007-02-18  Eric Botcazou  <>

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

2007-02-18  Eric Botcazou  <>

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

2007-02-18 Ira Rosen  <>

	* 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  <>

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

2007-02-16  Ralf Wildenhues  <>

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

2007-02-15  Alexandre Oliva  <>

	* 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  <>

	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  <>

	* doc/invoke.texi, doc/standards.texi: Refer to

2007-02-10  John David Anglin  <>

	PR target/30634
	* (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  <>

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

2007-02-07  Jakub Jelinek  <>

	PR c++/30703
	* gimplify.c (gimplify_scan_omp_clauses): Remove special casing

2007-02-06  Rask Ingemann Lamberisen  <>

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

2007-02-06  Roger Sayle  <>

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

2007-02-05  Alexandre Oliva  <>

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

2007-02-05  Geoffrey Keating  <>

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

2007-02-05  Bob Wilson  <>

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

2007-02-02  Maxim Kuvyrkov  <>

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

2007-02-04  Richard Guenther  <>

	Backport from mainline:
	2007-01-30  Richard Guenther  <>

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

2007-02-02  Mike Stump  <>

	* 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  <>

	Revert for x86 darwin:
	2005-06-19  Uros Bizjak  <>

	* 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  <>

	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  <>

	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  <>

	* (tp_load): Correct mfctl instruction syntax.

2007-02-01  Geoffrey Keating  <>

	* 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 <>

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

2007-01-30  Richard Guenther  <>

	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 <>

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

2007-01-29  Mike Stump  <>

	* 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  <>

	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  <>

	* 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 <>

	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  <>

	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
	(LIB2FUNCS_EXTRA): Add darwin-world.asm.
	* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
	implies Altivec.

2007-01-24  Geoffrey Keating  <>

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

2007-01-24  Jakub Jelinek  <>

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

	PR middle-end/30494
	* gimplify.c (omp_add_variable): Don't call omp_notice_variable

	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  <>

	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.

	2006-09-12  Eric Botcazou  <>

	* 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  <>

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

2007-01-17  Eric Christopher  <>

	Backport from mainline:
	2006-12-18  Roger Sayle  <>
	            Eric Christopher  <>

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

2007-01-17  Tom Tromey  <>

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

2007-01-15  Joseph S. Myers  <>

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

2007-01-11  John David Anglin  <>

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

2007-01-10  Ralf Cors├ępius <>

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

2007-01-09  Nicolas Pitre  <>

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

2007-01-08  Nick Clifton  <>

	* config/frv/ (reg_or_0_operand): Accept

2007-01-08  Ralf Cors├ępius <>

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

2007-01-08  Chen liqin  <>
	* config/score/t-score-elf (MULTILIB_OPTIONS): Change.
	* config/score/ (const_uimm5, sr0_operand, const_simm12,
	const_simm15, const_pow2, const_npow2): Added.
	* config/score/ (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):
	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/ (movqi/hi/si, add/sub/zero/ext): Updated.
	(movsf, movdf, doloop_end): Added.

2007-01-05  Richard Guenther  <>

	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  <>

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

2007-01-03  Jakub Jelinek  <>

	(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
	(__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
	* config/rs6000/linux-unwind.h (frob_update_context): Use

2007-01-01  Mike Stump  <>

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

2007-01-01  Andreas Schwab  <>

	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
	(ia64_expand_epilogue): Restore BR0 from its new location.