2005-12-31  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/25612
	* tree-ssa-pre.c (compute_avail): Treat the static chain decl as a
	parameter and pretend that it is defined in the entry basic block.

2005-12-30  Kazu Hirata  <kazu@codesourcery.com>

	* tree-outof-ssa.c (_elim_graph): Change the type of STACK to
	VEC(int,heap).
	(new_elim_graph, delete_elim_graph, elim_forward,
	eliminate_phi): Use the VEC API on STACK.

2005-12-29  Daniel Berlin  <dberlin@dberlin.org>

	* tree.h (VALUE_HANDLE_VUSES): New.
	(struct tree_value_handle): Add vuses.

	* tree-vn.c (struct val_expr_pair_d): Remove stmt, add vuses.
	(vn_compute): Remove stmt argument.
	Don't use vuses in hash value computation.
	(val_expr_pair_eq): Compare vuse lists.
	(copy_vuses_from_stmt): New function.
	(shared_vuses_from_stmt): Ditto.
	(vn_add): Rewrite in terms of vn_add_with_vuses.
	(vn_add_with_vuses): New function.
	(vn_lookup): Rewrite in terms of vn_lookup_with_vuses.
	(vn_lookup_with_vuses): New function.
	(vuses_compare): New function.
	(print_creation_to_file): Ditto.
	(vn_lookup_or_add): Rewrite to handle vuses.
	(sort_vuses): New function.
	(vn_lookup_or_add_with_vuses): Ditto.
	(vn_init): Initialize shared_lookup_vuses.
	(vn_delete): Free shared_lookup_vuses.

	* tree-ssa-pre.c: Update todo list.
	(bb_value_sets_t): Add rvuse_in, rvuse_out, rvuse_gen, and
	rvuse_kill.
	(RVUSE_IN): New macro.
	(RVUSE_GEN): Ditto.
	(RVUSE_KILL): Ditto.
	(RVUSE_OUT): Ditto.
	(modify_expr_node_pool): New function.
	(pretemp): New.
	(storetemp): Ditto.
	(mergephitemp): Ditto.
	(prephitemp): Ditto.
	(struct expr_pred_trans_d): Add vuses member.
	(expr_pred_trans_eq): Compare vuses.
	(phi_trans_lookup): Add vuses argument.
	(phi_trans_add): Ditto.
	(translate_vuses_through_block): New function.
	(phi_translate): Use vuses to ask about those expressions that can
	have vuses.
	Properly translate virtual uses through phis, and use
	vn_lookup_or_add_with vuses.  Handle tcc_reference.
	(phi_translate_set): Don't add pointless translations to the
	cache.
	(get_representative): New function.
	(vuses_dies_in_block_x): Ditto.
	(valid_in_set): Add block argument.  Check virtual use validity.
	(clean): Add block argument. Update call to valid_in_set
	(compute_antic_aux): Update call to clean.
	(dump_bitmap_of_names): New function.
	(compute_vuse_representatives): Ditto.
	(compute_rvuse): Ditto.
	(can_value_number_call): Modified to accept calls with vuses.
	(can_value_number_operation): New function.
	(can_PRE_operation): Ditto.
	(need_creation): New vector of stores that may need creation.
	(find_or_generate_expression): use can_PRE_operation.
	(create_expression_by_pieces): Handle INDIRECT_REF.
	Only create one temp until we have to change types.
	Mark new vars for renaming.
	(insert_into_preds_of_block): Ignore loopiness of loads.
	Use can_PRE_operation.
	Only create one temp until we have to chnge types.
	(insert_aux): Use can_PRE_operation.
	Don't pass name to insert_into_preds_of_block.
	(insert_extra_phis): Only use one temp until we have to change
	types.
	(poolify_tree): New function.
	(modify_expr_template): New var.
	(poolify_modify_expr): New function.
	(insert_fake_stores): Ditto.
	(realify_fake_stores): Ditto.
	(compute_avail): Use can_value_number_operation.
	(mark_operand_necessary): Return NULL for non-SSA names.
	(remove_dead_inserted_code): Update comment.
	(init_pre): Initialize pretemp, need_creation, storetemp,
	mergephitemp, prephitemp.
	Create modify_expr_node_pool.
	(fini_pre): Free modify_expr_node_pool and need_creation array.
	(execute_pre): Call insert_fake_stores, compute_rvuse, and
	realify_fake_stores.
	* tree-flow.h (vn_compute): Fix prototype.
	(vn_add): Ditto.
	(vn_lookup): Ditto.
	(sort_vuses): New.
	(vn_lookup_or_add_with_vuses): Ditto.
	(vn_add_with_vuses): Ditto.
	(vn_lookup_with_vuses): Ditto.
	* passes.c (pass_may_alias): Add.

2005-12-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-pretty-print.h (struct c_pretty_print_info): Add new member
	"constant".
	(pp_constant): New macro.
	* c-pretty-print.c (pp_c_pretty_printer_init): Set pp->constant.

2005-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR fortran/25586
	* pa.md: Remove REG_POINTER check from REG+REG peephole2 floating-point
	store patterns.

2005-12-29 Kenneth Zadeck <zadeck@naturalbridge.com>

	* bitmap.c (bitmap_element_free, bitmap_element_link,
	bitmap_elt_insert_after, bitmap_and, bitmap_and_compl,
	bitmap_and_compl, bitmap_ior, bitmap_ior_into, bitmap_xor,
	bitmap_xor_into): Added code to properly maintain the variants
	associated with the CURRENT and HEAD fields.
	(bitmap_popcount, bitmap_clear_range, bitmap_compl_and_into): New
	functions.
	* bitmap.h: Added defs for bitmap_popcount, bitmap_clear_range,
	and bitmap_compl_and_into.


2005-12-29  Mike Stump  <mrs@apple.com>

	* doc/invoke.texi (Objective-C and Objective-C++ Dialect Options
	-fobjc-exceptions): Don't imply this doesn't work with the GNU
	runtime.

2005-12-29  Nathan Sidwell  <nathan@codesourcery.com>

	* varasm.c (get_section): Use gcc_assert.

2005-12-29  Paul Brook  <paul@codesourcery.com>

	* config/m68k/m68k.h (RETURN_ADDR_RTX): Define.
	* config/m68k/m68k.c (m68k_initial_elimination_offset): Remove FIXME.
	Include offset due to FIRST_PARM_OFFSET.

2005-12-29  Paul Brook  <paul@codesourcery.com>

	* config/m68k/lb1sf68.asm (__cmpdf2): Fix typo in immediate mask.
	Create wrapper and rename body...
	(__cmpdf2_internal): ... to this.  Return correct value for unordered
	result.
	(__cmpsf2): Create wrapper and rename body...
	(__cmpsf2_internal): ... to this.  Return corerct value for unordered
	result.
	(__eqdf2, __nedf2, __gtdf2, __gedf2, __ltdf2, __ledf2): Use
	__cmpdf2_internal.
	(__eqsf2, __nesf2, __gtsf2, __gesf2, __ltsf2, __lesf2): Use
	__cmpsf2_internal.

2005-12-29  Paul Brook  <paul@codesourcery.com>

	* config/m68k/fpgnulib.c (__extendsfdf2): Handle negative zero.
	(__truncdfsf2): Ditto.
	(__extenddfxf2): Ditto.
	(__truncxfdf2): Ditto.
	* config/m68k/lb1sf68.asm (__addsf3): Return -0.0 for -0.0 + -0.0.
	(__adddf3): Ditto.

2005-12-29  Daniel Jacobowitz  <dan@codesourcery.com>
	Paul Brook  <paul@codesourcery.com>

	* config/m68k/m68k.c (m68k_output_pic_call): Don't use bsr.l for
	!TARGET_68020.
	* config/m68k/t-m68kelf (EXTRA_PARTS): Remove.
	(EXTRA_MULTILIB_PARTS): Set.
	* config/m68k/t-uclinux (EXTRA_PARTS): Remove.
	(EXTRA_MULTILIB_PARTS): Set.

2005-12-29  Alan Modra  <amodra@bigpond.net.au>

	PR target/25572
	* config/rs6000/rs6000.c (create_TOC_reference): Set regs_ever_live.

2005-12-28  Nathan Sidwell  <nathan@codesourcery.com>

	* config.gcc (mt-*-*): Add --with-arch support.
	(--with): Print accepted options on error.
	* config/mt/mt.h (OPTION_DEFAULT_SPECS): Define.

	* config/mt/mt.c (DEF_VEC_P(basic_block),
	DEF_VEC_ALLOC_P(basic_bloc,heap)): Remove from here.

2005-12-28  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/25394
	* fold-const.c (fold_checksum_tree): Guard
	portions of checksumming with correct structure checks.

2005-12-27  Kazu Hirata  <kazu@codesourcery.com>

	* global.c, tree-ssa-pre.c: Move DEF_VEC_P(basic_block) and
	DEF_VEC_ALLOC_P(basic_block,{gc,heap}) to ...
	* basic-block.h: ... here.

2005-12-27  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (int_const_binop): Return NULL_TREE when an expression
	can't be evaluated at compile-time (instead of calling abort).
	Return NULL_TREE for division (and modulus) by zero.
	(const_binop): Return NULL_TREE for floating point operators that
	aren't handled by real_arithmetic.
	(fold_binary): Eliminate "wins" variable, and "binary" label, by
	folding operators with constant operands early.  Assert that
	operands are non-NULL.

2005-12-27  Kazu Hirata  <kazu@codesourcery.com>

	* tree-vrp.c (extract_range_from_binary_expr): Use
	build_int_cst instead of fold_convert.

2005-12-26  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23171, c++/23172, c++/25417.
	* c-decl.c (compound_literal_number): Remove.
	(build_compound_literal): Use set_compound_literal_name.
	* c-common.c (compound_literal_number): New variable.
	(set_compound_literal_name): New function.
	* c-common.h (set_compound_literal_name): Declare.

2005-12-26  Kazu Hirata  <kazu@codesourcery.com>

	PR tree-optimization/25125
	* convert.c (convert_to_integer): Don't narrow the type of a
	PLUS_EXPR or MINUS_EXPR if !flag_wrapv and the unwidened type
	is signed.

2005-12-26  Graham Stott  <graham.stott@btinternet.com>

	PR middle-end/25568
	* combine.c (simplify_shift_const_1 <case PLUS>):Fix enable-checking
	rtl bootstrap failure.

2005-12-25  Kazu Hirata  <kazu@codesourcery.com>

	* final.c (compute_alignments): Make it static.
	* gcse.c (gcse_main, bypass_jumps): Likewise.
	* web.c (web_main): Likewise.
	* output.h: Remove the prototype for compute_alignments.
	* rtl.h: Remove the prototypes for web_main, gcse_main, and
	bypass_jumps.

2005-12-24  Roger Sayle  <roger@eyesopen.com>

	* expr.c (force_operand): Use expand_fix and expand_float to
	implement integer <-> FP conversions instead of convert_to_mode.

2005-12-24  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23171
	* varasm.c (initializer_constant_valid_p): An ADDR_EXPR of a
	CONSTRUCTOR is invalid.

2005-12-23  Daniel Berlin  <dberlin@dberlin.org>

	* tree-pass.h (pass_eliminate_useless_stores): Remove.
	* tree-ssa-pre.c (is_copy_stmt): Ditto.
	(follow_copies_till_vuse): Ditto.
	(do_eustore): Ditto.
	(gate_eustores): Ditto.
	(pass_eliminate_useless_stores): Ditto.
	* passes.c (init_optimization_passes): Ditto.

2005-12-23  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c (simplify_shift_const): Fix typo.  Use, whenever
	applicable, simplify_const_binary_operation.

	(simplify_shift_const): Leave only the fallback
	case when no simplification is possible.  Extract to...
	(simplify_shift_const_1): ... here.  Always create a new
	RTX instead of substituting.  Remove the signed_count variable.
	Return NULL_RTX if no substitution is possible.

	(simplify_and_const_int): Leave only the fallback
	case when no simplification is possible.  Extract to...
	(simplify_and_const_int_1): ... here.  Always create a new
	RTX instead of substituting.  Return NULL_RTX if no substitution
	is possible.

	(force_to_mode, simplify_comparison): Don't pass a non-NULL first
	parameter to simplify_and_const_int and simplify_shift_const,
	unless it is equal to the expected non-simplified result.

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

	PR target/25005
	* regrename.c (replace_oldest_value_reg): Use validate_change with
	IN_GROUP set to 1 instead of doing direct modifications.
	(copyprop_hardreg_forward_1): Likewise.  If any replace_oldest_*
	replacements have been performed on an instruction, use
	apply_change_group ().

2005-12-23  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/arit.c (do_31div): Clarify what "31" refers to.
	[L_divsi3] (__Udiv): Don't use as inline function.
	[L_modsi3] (__Umod): Ditto.
	(__Div): Rearrange to call do_31div directly instead of __Udiv.
	(__Mod): Similarly regarding __Umod.

	PR target/24342
	* config/cris/cris.c (cris_split_movdx): Add REG_INC notes for
	emitted insns with post-increments.
	(cris_expand_epilogue): Ditto.

2005-12-22  Jakub Jelinek  <jakub@redhat.com>
	    Richard Henderson  <rth@redhat.com>

	Merge from gomp-branch.
	* builtins.def: Move all DEF_SYNC_BUILTIN to ...
	* sync-builtins.def: ... new file.
	(BUILT_IN_FETCH_AND_ADD_16,
	BUILT_IN_FETCH_AND_SUB_16, BUILT_IN_FETCH_AND_OR_16,
	BUILT_IN_FETCH_AND_AND_16, BUILT_IN_FETCH_AND_XOR_16,
	BUILT_IN_FETCH_AND_NAND_16, BUILT_IN_ADD_AND_FETCH_16,
	BUILT_IN_SUB_AND_FETCH_16, BUILT_IN_OR_AND_FETCH_16,
	BUILT_IN_AND_AND_FETCH_16, BUILT_IN_XOR_AND_FETCH_16,
	BUILT_IN_NAND_AND_FETCH_16, BUILT_IN_BOOL_COMPARE_AND_SWAP_16,
	BUILT_IN_VAL_COMPARE_AND_SWAP_16, BUILT_IN_LOCK_TEST_AND_SET_16,
	BUILT_IN_LOCK_RELEASE_16): New builtins.
	* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
	BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
	* builtins.c (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
	* c-common.c (enum c_builtin_type): Move to top-level from
	c_common_nodes_and_builtins enum builtin_type.
	(builtin_types): Move from c_common_nodes_and_builtins.
	(def_fn_type): New.
	(c_common_nodes_and_builtins): Use it.
	(def_builtin_1): Check for error_mark_node.
	(sync_resolve_size): Handle also 128 bit sync builtins.
	* Makefile.in (BUILTINS_DEF): New.  Use it instead of builtins.def.

	* config/i386/i386.h (x86_cmpxchg8b, x86_cmpxchg16b): New decls.
	(TARGET_CMPXCHG8B, TARGET_CMPXCHG16B): Define.
	* config/i386/i386.c (x86_cmpxchg8b, x86_cmpxchg16b): New variables.
	* config/i386/sync.md (CASMODE, DCASMODE): New mode macros.
	(doublemodesuffix, DCASHMODE): New mode attrs.
	(sync_compare_and_swap<mode>): Change into expand, use CASMODE
	instead of IMODE, if mode is wider than a word, expand into
	sync_double_compare_and_swap*.
	(*sync_compare_and_swap<mode>): New insn.
	(sync_double_compare_and_swap<mode>): Likewise.
	(*sync_double_compare_and_swapdi_pic): Likewise.
	(sync_compare_and_swap_cc<mode>): Use CASMODE instead of IMODE, if
	mode is wider than a word, expand into
	sync_double_compare_and_swap_cc*.
	(sync_double_compare_and_swap_cc<mode>): New insn.
	(*sync_double_compare_and_swap_ccdi_pic): Likewise.

2005-12-22  Richard Henderson  <rth@redhat.com>

	* config/i386/mmintrin.h (_mm_add_si64): Only define for SSE2.
	(_mm_sub_si64): Likewise.
	* config/i386/xmmintrin.h (_mm_shuffle_pi16, _m_pshufw): Likewise.

2005-12-23  Alan Modra  <amodra@bigpond.net.au>

	PR rtl-optimization/25432
	* reload1.c (eliminate_regs_in_insn): Update insn code on
	successfully re-recognizing modified insn.

2005-12-22  Richard Guenther  <rguenther@suse.de>

	* tree.c (tree_fold_gcd): Use build_int_cst where appropriate.
	* tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
	* varasm.c (array_size_for_constructor): Likewise.
	* fold-const.c (size_diffop, invert_truthvalue,
	optimize_bit_field_compare, make_range, build_range_check,
	fold_cond_expr_with_comparison, fold_truthop,
	fold_single_bit_test_into_sign_test, fold_binary): Likewise.

2005-12-22  Dale Johannesen  <dalej@apple.com>

	* config/i386/sse.md (sse_movhlps): Reverse operands for
	2nd and 3rd alternatives.

2005-12-22  Andrew Pinski <pinskia@physics.uc.edu>

	PR tree-opt/25513
	* tree-dfa.c (make_rename_temp): Set DECL_COMPLEX_GIMPLE_REG_P complex
	variables.

2005-12-22  Zdenek Dvorak <dvorakz@suse.cz>
	    Steven Bosscher <stevenb@suse.de>

	* df.c (df_bitmaps_free): Only work for bbs for that structures are
	allocated.
	(df_bb_modify): Realloc tables to the new index.
	(df_find_use): New function.
	(df_find_def, df_reg_used): Handle subregs.
	* df.h (df_find_use): Declare.

	* loop-invariant.c: Include hashtab.h.
	(struct invariant): Remove processed field, add eqto and reg fields.
	(struct invariant_expr_entry): New.
	(invariant_for_use, hash_invariant_expr_1, invariant_expr_equal_p,
	hash_invariant_expr, eq_invariant_expr, find_or_insert_inv,
	find_identical_invariants, merge_identical_invariants): New functions.
	(create_new_invariant): Return the new invariant.  Initialize new
	fields.
	(find_invariants): Call merge_identical_invariants.
	(get_inv_cost, best_gain_for_invariant, set_move_mark,
	move_invariant_reg): Handle equivalent invariants.
	* Makefile.in (loop-invariant.o): Add HASHTAB_H dependency.

2005-12-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/23333
	* c-lex.c (c_lex_with_flags): Add PURE_ZERO to cpp_flags if
	number is a single digit '0'.

2005-12-22  Kazu Hirata  <kazu@codesourcery.com>

	PR tree-optimization/23518
	* fold-const.c (make_range): Don't move a constant to the
	other side of the comparison if the type is signed and -fwrapv
	is given.

2005-12-22  Kazu Hirata  <kazu@codesourcery.com>

	* tree-vrp.c (extract_range_from_binary_expr): Clean up uses
	of vr0.type.

2005-12-21  Joseph S. Myers  <joseph@codesourcery.com>

	PR middle-end/24998
	* config/arm/t-arm-elf (LIB1ASMFUNCS): Add _floatundidf and
	_floatundisf.

2005-12-21  Andrew Haley  <aph@redhat.com>

	PR middle-end/25121
	* recog.c (peephole2_optimize): Don't peephole any
	RTX_FRAME_RELATED_P insns.

2005-12-21  Kazu Hirata  <kazu@codesourcery.com>

	* tree-data-ref.c (estimate_niter_from_size_of_data): Replace
	fold_build2 with fold_binary.
	* tree-ssa-ccp.c (visit_assignment, maybe_fold_stmt_addition):
	Replace fold_build1 with fold_unary.
	* tree-ssa-reassoc.c (optimize_ops_list): Replace fold_build2
	with fold_binary.

2005-12-21  Steven Bosscher  <stevenb@suse.de>

	PR rtl-optimization/25196
	* postreload-gcse.c (record_last_set_info): Notice stack pointer
	changes in push insns without REG_INC notes.

2005-12-21  Kazu Hirata  <kazu@codesourcery.com>

	PR tree-optimization/25382.
	* tree-vrp.c (extract_range_from_binary_expr): Extract a range
	from BIT_AND_EXPR.

2005-12-21  Janis Johnson  <janis187@us.ibm.com>
	    Ben Elliston  <bje@au.ibm.com>

	* configure.ac: Enable C extension for decimal float if invoked
	with --enable-decimal-float.
	* doc/install.texi (Configuration): Document it.
	* configure, config.in: Regenerate.

2005-12-20  Mike Stump  <mrs@apple.com>

	* config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Handle the
	ambiguity between -seg_addr_table and -seg_addr_table_filename.
	(WORD_SWITCH_TAKES_ARG): Likewise.
	(LINK_SPEC): Likewise.

2005-12-20  Kenneth Zadeck <zadeck@naturalbridge.com>

	* cfganal.c (flow_reverse_top_sort_order_compute):
	Renamed to post_order_compute and additional parameter added which
	allows the inclusion of entry and exit blocks into list.
	(mark_dfs_back_edges): Fixed comment.
	(flow_depth_first_order_compute): Renamed to
	pre_and_rev_post_order_compute additional parameter added which
	allows the inclusion of entry and exit blocks into list.
	* global.c (set_up_bb_rts_numbers): Call to
	flow_reverse_top_sort_order_compute renamed to
	post_order_compute.
	* var-tracking.c (vt_stack_adjustments): Fixed comment.
	(vt_find_locations): Call to
	flow_depth_first_order_compute renamed to
	pre_and_rev_post_order_compute.
	* cfgloop.c (flow_find_loops): Ditto.
	* tree-ssa-reassoc.c (init_reassoc): Ditto.
	* df.c (df_analyze_1, df_analyze_subcfg): Calls to
	flow_reverse_top_sort_order_compute renamed to post_order_compute
	and calls to flow_reverse_top_sort_order_compute renamed to
	post_order_compute.
	* basic_block.h: Ditto.


2005-12-20  Roger Sayle  <roger@eyesopen.com>
	    Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/25115
	* gcse.c (pre_insert_copy_insn): Fall back to the sole
	SET in the insn if there is no SET for an
	expression that is equivalent to EXPR.

2005-12-20  Richard Guenther  <rguenther@suse.de>

	PR middle-end/24306
	* builtins.c (std_gimplify_va_arg_expr): Do not align
	va frame for zero sized types.
	* config/i386/i386.c (ix86_gimplify_va_arg): Likewise.

2005-12-20  Kazu Hirata  <kazu@codesourcery.com>

	PR tree-optimization/25501
	* tree-cfgcleanup.c (merge_phi_nodes): Check that RESULT is
	used in the PHI argument corresponding to the edge from BB to
	DEST.

2005-12-20  Richard Guenther  <rguenther@suse.de>

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

	* tree-cfg.c (mark_used_vars): New function.
	(dump_function_to_file): Dump only used VAR_DECLs.

2005-12-19  Roger Sayle  <roger@eyesopen.com>

	* combine.c (try_combine): Improve splitting of binary operators
	by taking advantage of reassociative transformations.

2005-12-19  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (thread_across_edge): Do not use local_fold.
	Strip away all type conversions after simplifying the
	condition.

	* tree-cfgcleanup.c (merge_phi_nodes): Allow merging in some
	cases the forwarder block dominates the destination.

2005-12-19  DJ Delorie  <dj@redhat.com>

	* reload1.c (spill_failure): Dump reload data to dump file.
	(find_reload_regs): Likewise.

2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>

	PR tree-optimization/24793
	* tree-ssa-loop-ivopts.c (get_ref_tag): Remember the
	original reference if there are subvars.
	* tree-ssa-operands.c (get_tmr_operands): Handle subvars.

2005-12-19  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df.c (df_analyze_1, df_analyze_subcfg, iterative_dataflow):
	Corrected basic block number calculations for changes in entry and
	exit numbering.

2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>

	* tree-flow.h (struct var_ann_d): Change type of
	may_aliases field to VEC(tree, gc) *.
	(may_aliases): Declaration changed.
	* tree-ssa-alias.c (group_aliases, add_may_alias,
	replace_may_alias, dump_may_aliases_for,
	is_aliased_with, add_type_alias, new_type_alias):
	Work with VEC(tree, gc) * instead of varray.
	* tree-flow-inline.h (may_aliases): Ditto.
	* tree-ssa.c (verify_flow_insensitive_alias_info,
	verify_name_tags): Ditto.
	* tree-ssa-operands.c (add_stmt_operand): Ditto.

2005-12-19  J"orn Rennecke <joern.rennecke@st.com>

	* cfgcleanup.c: Temporarily revert patches for PR 20070 till Bernd
	comes back.

2005-12-19  J"orn Rennecke <joern.rennecke@st.com>

	* struct-equiv.c (struct_equiv_improve_checkpoint): Fix sets_cc0_p
	check.

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

	* doc/install.texi (Configuration): Typo in Fortran subheading.

2005-12-19  Nathan Sidwell  <nathan@codesourcery.com>

	* config/mt/mt.md (decrement_and_branch_until_zero): Add another
	scratch.  Correct its reload split. Adjust its peephole.
	(doloop_end): Add additional scratch.
	(nop): Use 'nop'.
	* config/mt/mt.c (MT_INT_ARG_FIRST): Remove.
	(mt_asm_output_opcode, mt_print_operand): Use 'nop'.
	(mt_function_arg_slotno): Use FIRST_ARG_REGNUM.
	(mt_builtin_saveregs): Replace with ...
	(mt_setup_incoming_varargs): ... here.  Save just the varadic
	args.
	(mt_va_start): Remove.
	(mt_reorg_hazard): Ignore USE insns.  Don't call set_noop_p.
	(mt_machine_reorg): Split all insns here.
	(TARGET_SETUP_INCOMING_VARARGS): Override.
	* config/mt/mt.h (TARGET_CPU_CPP_BUILTINS): Define __mt__ only.
	Set to CPU type.
	(EXPAND_BUILTIN_VA_START): Remove.

2005-12-17  Kenneth Zadeck <zadeck@naturalbridge.com>

	* flow.c (update_life_info, count_or_remove_death_notes): Fixed
	latent bug that could happen if update_life_info was called with a
	blocks parameter and the call to cleanup_cfg actually deleted one
	of those blocks.

2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>

	* tree-ssa-structalias.c (update_alias_info): Remove handling
	of may_be_aliased (SSA_NAME_VAR (op)) case.

2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>

	* tree-flow.h (struct stmt_ann_d): Remove
	makes_aliased_loads and makes_aliased_stores fields.
	* tree-ssa-ccp.c (likely_value): Do not use makes_aliased_stores
	and makes_aliased_loads fields.
	* tree-ssa-dom.c (eliminate_redundant_computations): Do not
	use makes_aliased_stores.
	* tree-ssa-operands.c (clobbered_aliased_loads,
	clobbered_aliased_stores, ro_call_aliased_loads): Removed.
	(build_ssa_operands, add_stmt_operand, add_call_clobber_ops,
	add_call_read_ops): Do not set makes_aliased_stores and
	makes_aliased_loads fields.
	* tree-ssa.c (verify_ssa): Do not verify makes_aliased_stores
	field.

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

	* config/darwin.h: Don't include darwin-sections.def to declare
	global variables; instead create darwin_section_enum.
	(darwin_section_enum): New.
	(darwin_sections): New.
	* config/darwin.c: Don't include darwin-sections.def to define
	global variables.
	(darwin_sections): New.
	(output_objc_section_asm_op): Rewrite to take advantage of
	darwin_sections.
	(darwin_init_sections): Rewrite to use darwin_sections.
	(machopic_output_indirection): Update for darwin_sections array.
	(machopic_select_section): Likewise.
	(machopic_select_rtx_section): Likewise.
	(machopic_asm_out_constructor): Likewise.
	(machopic_asm_out_destructor): Likewise.
	(darwin_file_end): Likewise.
	* config/rs6000/rs6000.c (machopic_output_stub): Likewise.
	* config/i386/i386.c (machopic_output_stub): Likewise.

2005-12-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/25481
	* tree-ssa-structalias.c (handle_ptr_arith): Handle accesses we
	don't have a varinfo for.

2005-12-18  Jon Grimm  <jgrimm2@us.ibm.com>
	    Janis Johnson  <janis187@us.ibm.com>
	    Ben Elliston  <bje@au.ibm.com>

	* optabs.c (init_floating_libfuncs): Handle decimal float modes.
	(init_optabs): Handle libfuncs for decimal float.
	* genopinit.c (gen_insn): Handle MODE_DECIMAL_FLOAT.
	* stor-layout.c (int_mode_for_mode): Likewise.
	* simplify-rtx.c (simplify_immed_subreg): Likewise.
	(simplify_unary_operation_1): Skip optimisations for decimal float
	modes.
	* varasm.c (output_constant_pool_2): Handle MODE_DECIMAL_FLOAT.
	* emit-rtl.c (gen_const_vector): Add assertion check.
	(init_emit_once): Populate const_tiny_rtx with constants in each
	decimal float mode.
	* expmed.c (extract_high_half, expand_mult_highpart_optab,
	expand_mult_highpart): Assert that mode is not a scalar float
	mode.
	* expr.c (convert_move): Handle conversion between decimal and
	binary floats of the same size.
	* convert.c (convert_to_real): Consider decimal float types when
	folding.
	* dwarf2out.c (base_type_die): Use DW_ATE_decimal_float to
	describe decimal floating point types.

2005-12-18  Ulrich Weigand  <uweigand@de.ibm.com>

	PR rtl-optimization/21041
	* reload.c (find_reloads_subreg_address): Replace paradoxical
	subreg of MEM by widened access only if the resulting memory
	is properly aligned, even on !STRICT_ALIGNMENT targets.

2005-12-18  Andreas Krebbel  <krebbel1@de.ibm.com>

	* tree-cfg.c (tree_flow_call_edges_add): Check for empty basic blocks.

2005-12-18  Steven Bosscher  <stevenb@suse.de>

	* gcse.c (gcse_main, bypass_jumps): Fix non-GNU-isms from
	the 2005-12-17 patch to renumber the entry and exit blocks.

2005-12-18  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* doc/objc.texi (Type encoding): Fix typo.

2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* tree-tailcall.c (find_tail_calls): Use XNEW.
	* tree-ssa-dom.c (allocate_edge_info): Use XCNEW.
	(free_all_edge_infos): Use explicit cast to convert from void *.
	(vrp_free): Likewise.
	(dom_opt_finalize_block): Likewise.
	(record_equivalences_from_incoming_edge): Likewise.
	(thread_across_edge): Likewise.  Use XCNEWVEC.
	(record_cond): Use XCNEW.
	(record_conditions): Use XNEWVEC.
	(record_edge_info): Use XCNEWVEC.
	(lookup_avail_expr): Use XNEW.
	(record_range): Likewise.  Use GGC_NEW.
	* tree-nested.c (var_map_hash): Use explicit cast to convert from
	void *.
	(var_map_eq): Likewise.
	(lookup_field_for_decl): Likewise.
	(convert_nonlocal_reference): Likewise.
	(convert_local_reference): Likewise.
	(convert_nl_goto_reference): Likewise.
	(convert_nl_goto_receiver): Likewise.
	(convert_call_expr): Likewise.
	(convert_tramp_reference): Likewise.
	(lookup_tramp_for_decl): Likewise.Use GGC_NEW.
	(convert_nl_goto_reference): Likewise.
	(lookup_field_for_decl): Use GGC_NEW.
	(create_nesting_tree): Use GGC_CNEW.
	* tree-ssa-phiopt.c (blocks_in_phiopt_order): Use XNEWVEC.
	* tree-ssa-alias.c (init_alias_info): Use XCNEW.
	(create_alias_map_for): Likewise.
	(setup_pointers_and_addressables): Use XCNEWVEC.
	(get_ptr_info): Use GGC_NEW.
	(used_part_map_eq): Use explicit cast to convert from void *.
	(up_lookup): Likewise.
	(up_insert): Use XNEW.
	(get_or_create_used_part_for): Use XCNEW.
	(get_tmt_for): Likewise.
	* tree-ssa-operands.c (ssa_operand_alloc): Use GGC_NEW.
	* tree-ssa-pre.c (phi_trans_add): Use XNEW.
	(bitmap_set_new): Use explicit cast to convert from void *.
	(set_new): Likewise.
	(insert_into_set): Likewise.
	(pool_copy_list): Likewise.
	(phi_translate): Likewise.
	(create_value_expr_from): Likewise.
	(insert_aux): Use XCNEWVEC.
	(compute_avail): Use XNEWVEC.
	* tree-ssa-live.c (calculate_live_on_entry): Likewise.
	(sort_coalesce_list): Likewise.
	(build_tree_conflict_graph): Use XCNEWVEC.
	* tree-ssa-dce.c (tree_dce_init): Use XNEWVEC.
	* tree-ssa-copy.c (init_copy_prop): Likewise.
	(fini_copy_prop): Likewise.
	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Use XNEW
	and XCNEWVEC.
	(record_equiv): Use XNEW.
	(uncprop_into_successor_phis): Use explicit cast to convert from
	void *.
	(uncprop_initialize_block): Likewise.

2005-12-18  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/24378
	* tree-vect-transform.c (vect_transform_loop): Create single-predecessor
	basic-block after loop-versioning.

2005-12-18  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Code
	to simplify SWITCH_EXPR_CODE moved from here to ...
	* tree-ssa-forwprop.c (simplify_switch_expr): Here.
	(tree-ssa-forward_propagate_single_use_vars): Call
	simplify_switch_expr when appropriate.

2005-12-17  Andrew Pinski  <pinskia@physics.uc.edu>

	* doc/objc.texi (Type encoding): Add documentation about encoding
	complex types and _Bool.

2005-12-17  Paul Brook  <paul@codesourcery.com>

	* config/m68k/m68k.md (m68k_output_function_prologue): Always call
	dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset
	when frame_pointer_needed.

2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* tree-vn.c (vn_add): Use XNEW.
	* tree-ssa-ccp.c (ccp_initialize): Use XNEWVEC.
	(ccp_fold): Likewise.
	(fold_stmt_r): Use explicit cast to convert from void *.
	* tree-outof-ssa.c (new_temp_expr_table): Use XCNEWVEC.
	(new_temp_expr_table): Likewise.
	* gimplify.c (lookup_tmp_var): Use XNEW.
	(gimplify_asm_expr): Use explcit cast to convert from void *.
	* tree-into-ssa.c (get_ssa_name_ann): Likewise.
	(get_def_blocks_for): Use XNEW.
	(add_to_repl_tbl): Likewise.
	(mark_def_sites): Use explicit cast to convert from void *.
	(def_blocks_free): Likewise.
	(mark_def_sites_initialize_block): Likewise.
	(update_ssa): Use XNEWVEC.
	* tree-dfa.c (create_var_ann): Use GGC_NEW.
	(create_stmt_ann): Likewise.
	(create_tree_ann): Likewise.
	(referenced_var_insert): Likewise.
	(set_default_def): Likewise.
	(referenced_var_lookup_if_exists): Use explicit cast to convert
	from void *.
	(referenced_var_lookup): Likewise.
	(default_def): Likewise.
	(set_default_def): Likewise.
	* tree-cfg.c (create_bb): Likewise.
	(edge_to_cases_cleanup): Likewise.
	(verify_node_sharing): Likewise.
	(record_switch_edge): Use XNEW.
	(cleanup_dead_labels): Use XCNEWVEC.
	(tree_duplicate_sese_region): Use XNEWVEC.
	* tree-scalar-evolution.c (get_instantiated_value): Likewise.
	* tree-ssa.c (verify_ssa): Use XCNEWVEC.
	(int_tree_map_eq): Use explicit cast to convert from void *.
	* libgcov.c (gcov_exit): Use explicit cast to convert from void *.
	(__gcov_execl): Likewise.
	(__gcov_execlp): Likewise.
	(__gcov_execle): Likewise.
	* tree-eh.c (struct_ptr_eq): Likewise.
	(struct_ptr_hash): Likewise.
	(lookup_stmt_eh_region_fn): Likewise.
	(outside_finally_tree): Likewise.
	(find_goto_replacement): Likewise.
	(make_eh_edge): Likewise.
	(mark_eh_edge): Likewise.
	(add_stmt_to_eh_region_fn): Use GGC_NEW.
	(record_in_finally_tree): Use XNEW.
	(maybe_record_in_goto_queue): Use XRESIZEVEC.
	(lower_try_finally_copy): Use XCNEWVEC.

2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* tree-inline.c (copy_body_r): Use explicit cast when converting
	from void *.
	(copy_bb): Likewise.
	(copy_edges_for_bb): Likewise.
	(remap_decl_1): Likewise.
	(estimate_num_insns_1): Likewise.
	* cgraph.c (hash_node): Use explicit cast when converting from
	void *.
	(eq_node): Likewise.
	(cgraph_create_node): Use GGC_CNEW.
	(cgraph_create_edge): Use GGC_NEW.
	(cgraph_remove_node): Use explicit cast when converting from void *.
	(hash_varpool_node): Likewise.
	(eq_varpool_node): Likewise.
	(cgraph_varpool_node): Use GGC_CNEW.
	* lambda.h (lambda_vector_new): Use GGC_CNEWVEC.
	* tree-scalar-evolution.c (new_scev_info_str): Use XNEW.
	(eq_scev_info): Use explicit cast when converting from void *.
	(find_var_scev_info): Likewise.
	(set_instantiated_value): Likewise.
	(gather_stats_on_scev_database_1): Likewise.
	* cfgloop.h (simple_loop_desc): Use explicit cast when converting
	from void *.
	* c-pch.c (c_common_write_pch): Use XNEWVEC.
	(c_common_read_pch): Likewise.
	* prefix.c (save_string): Use XNEWVEC.
	(translate_name): Use explicit cast when converting from void *.
	* c-ppoutput.c (print_line): Use explicit cast when converting
	from void *.
	(pp_dir_change): Likewise.
	* c-cppbuiltin.c (builtin_define_std): Likewise.
	(builtin_define_with_value): Likewise.
	(builtin_define_with_value_n): Likewise.
	(builtin_define_with_int_value): Likewise.
	(builtin_define_type_max): Likewise.
	* c-incpath.c (add_env_var_paths): Use XNEWVEC.
	(add_path): Use XNEW.
	* c-format.c (check_format_info_main): Use GGC_NEW.
	(format_type_warning): Use explicit cast when converting from void *.
	* c-typeck.c (alloc_tagged_tu_seen_cache): Use XNEW instead of
	xmalloc.
	(start_init): Likewise.
	* tree-flow-inline.h (first_referenced_var): Use explicit cast
	when converting from void *.
	(next_referenced_var): Likewise.
	* c-pragma.c (push_alignment): Use GGC_NEW instead of ggc_alloc.
	* gensupport.c (lookup_predicate): Use explicit cast to convert
	from void *.
	(init_predicate_table): Use XCNEW instead of xcalloc.
	* genpreds.c (process_define_predicate): Likewise.

2005-12-17  Danny Berlin <dberlin@dberlin.org>
	    Kenneth Zadeck <zadeck@naturalbridge.com>

	* basic-block.h: Changed basic block numbering so that the entry
	block is 0 and the exit block is 1.  Changed insn iterators so
	that they are tolerant of blocks with no insns.
	* regrename.c (copyprop_hardreg_forward): Changed basic block
	numbering so that the entry block is 0 and the exit block is 1.
	* sched-ebb.c (sehedule_ebbs): Ditto.
	* tracer.c (branch_ratio_cutoff): Ditto.
	* cfgloopmanip.c (fix_loop_structure): Ditto.
	* cfghooks.c (verify_flow_info): Ditto.
	* cfg.c (compact_blocks): Ditto.
	* reorg.c (dbr_schedule): Ditto.
	* flow.c (calculate_global_regs_live, libcall_dead_p): Ditto.
	* dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
	calculate_dominance_info): Ditto.
	* cfganal.c (create_edge_list, print_edge_list,
	flow_depth_first_order_compute, flow_dfs_compute_reverse_init,
	flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute,
	dfs_enumerate_from): Ditto.
	* global.c (global_alloc, set_up_bb_rts_numbers): Ditto.
	* ifcvt.c (find_if_case_2): Ditto.
	* cfgbuild.c (control_flow_insn_p, count_basic_blocks,
	find_basic_blocks): Ditto.
	* predict.c (predict_loops, tree_bb_level_predictions,
	predict_paths_leading_to, propagate_freq): Ditto.
	* lcm.c (compute_antinout_edge, compute_laterin,
	compute_available): Ditto.
	* function.c (thread_prologue_and_epilogue_insns): Ditto.
	* gcse.c (gcse_main, bypass_jumps): Ditto.
	* profile.c (compute_branch_probabilities,
	compute_value_histograms, branch_prob): Ditto.
	* tree-flow-inline.h (bsi_start, bsi_after_labels,
	bsi_last): Ditto.
	* tree-ssa-phiopt.c (tree_ssa_phiopt,
	blocks_in_phiopt_order): Ditto.
	* bt-load.c (compute_defs_uses_and_gen, compute_kill,
	compute_out, link_btr_uses, migrate_btr_defs): Ditto.
	* tree-dfa.c (collect_dfa_stats): Ditto.
	* cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto.
	* cfglayout.c (fixup_reorder_chain): Ditto.
	* bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos,
	partition_hot_cold_basic_blocks): Ditto.
	* var-tracking.c (vt_find_locations): Ditto.
	* cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto.
	* sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto.
	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges
	label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto.
	* tree-ssa-reassoc.c (init_reassoc): Ditto.
	* cfgrtl.c (entry_of_function, rtl_verify_flow_info,
	rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto.
	* df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto
	and removed unused reverse orders.
	* df.h (): Ditto.
	* combine.c: Fix document typo.

2005-12-17  Jan Hubicka  <jh@suse.cz>

	* tree-flow-inline.h (set_default_def, default_def): Kill.
	* tree-dfa.c (default_defs): New global variable.
	(default_def, set_default_def): New functions.
	* tree-ssa.c (init_tree_ssa, delete_tree_ssa): Add default_def hash.
	* tree-flow.h (struct var_ann_d): Kill default_def field.
	(set_default_def, default_def): Update prototype.
	(default_defs): Declare.

2005-12-16  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (update_rhs_and_lookup_avail_expr): Kill.
	(simplify_rhs_and_lookup_avail_expr): Kill.  Remnants moved
	into tree-ssa-forwprop.c.
	(eliminate_redundant_computations): Do not call
	simplify_rhs_and_lookup_avail_expr anymore.
	* tree-ssa-forwprop.c (simplify_not_neg_expr): New function
	extracted from remnants of simplify_rhs_and_lookup_avail_expr.
	(tree_ssa_forward_propagate_single_use_vars): Call
	simplify_not_neg_expr appropriately.

2005-12-16  Bernd Trog  <berndtrog@yahoo.com>

	PR target/20016
	* config/avr/t-avr: Add -Os to TARGET_LIBGCC2_CFLAGS.

2005-12-17  Kazu Hirata  <kazu@codesourcery.com>

	PR rtl-optimization/25456
	* struct-equiv.c (struct_equiv_improve_checkpoint): Replace
	info->x_start with p->x_start.

2005-12-17  Alan Modra  <amodra@bigpond.net.au>

	* simplify-rtx.c (simplify_binary_operation_1 <IOR>): Correct bug
	introduced 2005-12-16.

2005-12-16  Steven Bosscher  <stevenb@suse.de>

	PR rtl-optimization/23837
	* optabs.c (expand_binop): For a multi-word rotate, never emit
	a REG_NO_CONFLICT block.

2005-12-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/25457
	* reorg.c (mostly_true_jump): Remove unused variable 'insn'.

	PR target/25447
	* config/pa/pa.c (pa_scalar_mode_supported_p): Handle
	MODE_DECIMAL_FLOAT.

2005-12-16  Steven Bosscher  <stevenb@suse.de>

	* loop-invariant.c (move_loop_invariants): Add missing hunk from
	the previous patch, to nullify df.

2005-12-16  Steven Bosscher  <stevenb@suse.de>

	* reorg.c (mostly_true_jump): Clean up code depending on
	LABEL_OUTSIDE_LOOP_P and loop notes.  Remove code doing
	poor man's branch prediction, instead rely on REG_BR_PROB
	notes to be available.

2005-12-16  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/24899
	* loop.c (strength_reduce): Don't reduce giv that is not always
	computable and where add_val or mult_val can trap.

	* doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only.

2005-12-16  Nathan Sidwell  <nathan@codesourcery.com>

	* config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct
	names of ms1-16-002 files.

2005-12-16  Alan Modra  <amodra@bigpond.net.au>

	PR driver/20425
	* gcc.c (for_each_path): New function.
	(add_to_obstack, file_at_path): New functions.
	(struct file_at_path_info, struct add_to_obstack_info): New.
	(build_search_list): Rewrite using for_each_path.  Constify struct
	path_prefix pointer.  Add do_multi param.  Adjust all callers.
	(find_a_file): Similarly, but just change existing param to bool.
	(putenv_from_prefixes): Add do_multi param, make "paths" const.
	(do_spec_path): Delete.
	(struct spec_path_info): New.
	(spec_path): New function.
	(do_spec_1): Use for_each_path for %D and %I.
	(find_file): Adjust for find_a_file changes.
	(main): Search multilibs for specs.  Print multilib lib path for
	-print-search-dirs.  Likewise add multilibs to LIBRARY_PATH_ENV.
	(read_specs): Search multilibs for %include and %include_noerr.
	(is_directory): Remove second string param.  Change last param
	to a bool.  Don't use concat.  Remove SMALL_ARG_MAX test, always
	check path is a dir.  Update all callers.
	* doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention.
	* system.h (SMALL_ARG_MAX): Poison.
	* config.gcc: Don't define SMALL_ARG_MAX.
	* config.host: Likewise.
	* config.build: Likewise.

2005-12-16  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c (combine_simplify_rtx <case NOT, NEG, TRUNCATE,
	FLOAT_TRUNCATE, FLOAT_EXTEND, PLUS, MINUS, AND, IOR, XOR,
	ABS, VEC_SELECT, POPCOUNT, PARITY, FFS, FLOAT>,
	simplify_logical): Move simplifications that do not require
	additional infrastructure...
	* simplify-rtx.c (simplify_unary_operation_1,
	simplify_binary_operation_1): ... here.

2005-12-16  Andreas Krebbel  <krebbel1@de.ibm.com>

	PR 24823
	* flow.c (mark_used_dest_regs): New function.
	(mark_used_regs): Call mark_used_dest_regs.

2005-12-16  Jeff Law  <law@redhat.com>

	* tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which
	represent a use and definition of the same SSA_NAME.

2005-12-16  Jon Grimm  <jgrimm2@us.ibm.com>
	    Janis Johnson  <janis187@us.ibm.com>
	    Ben Elliston  <bje@au.ibm.com>

	* target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
	(TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
	* target.h (struct gcc_target): Add decimal_float_supported_p.
	* targhooks.c (default_scalar_mode_supported_p): Handle
	MODE_DECIMAL_FLOAT.
	* builtins.def: Add new builtins for 32, 64 and 128 bit variants
	of inf, nan, finite, isinf and isnan.
	* builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
	BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
	BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
	BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
	BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
	BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
	BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
	* c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
	Pedwarn if decimal floating point types are used.  Error if
	decimal floating point is not supported by the target.
	(finish_declspecs): Return type from DFP typespec_word.
	* c-typeck.c (c_common_type): Choose the decimal floating point
	type with the greater precision when determining a common type.
	(convert_arguments): Warn if there is a mismatch between argument
	and prototype for decimal float types.  Warn of conversions with
	binary float types and of precision narrowing due to prototype.
	* c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
	(c_token_starts_typename): Handle RID_DFLOAT32/64/128.
	(c_token_starts_declspecs): Likewise.
	(c_parser_attributes): Likewise.
	* c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
	RID_DFLOAT64, RID_DFLOAT128.
	(T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
	* c-common.c (c_common_type_for_mode): Handle decimal float modes.
	(shorten_compare): Convert DFP/BFP operands to a common type.
	(c_common_modes_and_builtins): Register built-in decimal float
	types if the target supports them.
	(handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
	* builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
	inf, nan, finite, isinf and isnan builtins.
	* c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
	(builtin_define_float_constants): Assert non-decimal radix.
	(c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
	Call builtin_define_decimal_float_constants for each type.
	* c-lex.c (interpret_float): Decode decimal float types from CPP_N
	flags.  Use real_from_string3, which can handle binary or decimal
	floats.
	* c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
	cts_dfloat64, cts_dfloat128.
	* tree.c (build_common_tree_nodes_2): Add decimal float types.
	* tree.h (enum tree_index): Add new enumeration values
	TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
	TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
	(dfloat32_type_node): New macro.
	(dfloat64_type_node, dfloat128_type_node): Likewise.
	(dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
	(dfloat128_ptr_type_node): Likewise.
	* c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
	bit decimal floating point types with "df", "dd" and "dl".
	* c-format.h (enum format_lengths): Add new enumeration values
	FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
	* c-format.c (printf_length_specs, scanf_length_specs): Add
	entries for H, D, DD.
	(print_char_table, scan_char_table): Use new entries.
	(asm_fprintf_char_table, gcc_diag_char_table,
	gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
	length arrays.
	* defaults.h (DECIMAL32_TYPE_SIZE): Define.
	(DECIMAL64_TYPE_SIZE): Likewise.
	(DECIMAL128_TYPE_SIZE): Likewise.
	(TARGET_DEC_EVAL_METHOD): Likewise.
	* doc/extend.texi (Decimal Float): New node.
	(Constructing Calls): Document decimal float built-ins.
	* doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
	* Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
	* ginclude/decfloat.h: New file.

2005-12-16  Alan Modra  <amodra@bigpond.net.au>

	* reload.c (find_reloads): Fix comment typo.
	* recog.h (recog_memoized): Correct comment.

2005-12-16  Kazu Hirata  <kazu@codesourcery.com>

	* basic-block.h, config/i386/winnt.c, config/pa/pa.c,
	config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def,
	reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c,
	tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos.
	* doc/invoke.texi, doc/tm.texi: Fix typos.

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

	* real.c (decimal_quad_format): Correct values for emin, emax.

2005-12-15  DJ Delorie  <dj@redhat.com>

	* config/m32c/predicates.md (m32c_psi_scale): New.
	* config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New.
	* config/m32c/muldiv.md (mulpsi3): Support negative constants.

2005-12-16  Jan Hubicka  <jh@suse.cz>

	PR rtl-optimization/25224
	* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy
	tables.

2005-12-15  Zdenek Dvorak <dvorakz@suse.cz>
	    Steven Bosscher <stevenb@suse.de>

	* loop-invariant.c (df): New global variable.
	(find_defs, check_dependencies, find_invariant_insn, record_uses,
	find_invariants_bb, find_invariants_body, find_invariants,
	find_invariants_to_move, move_invariants, free_inv_motion_data,
	move_single_loop_invariants, move_loop_invariants): Do not pass df in
	arguments.

2005-12-15  Jakub Jelinek  <jakub@redhat.com>

	* varasm.c (default_unique_section_1): Use special section
	names for SECCAT_DATA_REL{,_RO}{,_LOCAL}.

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

	* doc/invoke.texi (Warning Options): Document -Walways-true being
	enabled by -Wall.

2005-12-15  Joseph S. Myers  <joseph@codesourcery.com>

	PR other/25028
	* libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define.
	* libgcc2.c (__floatdixf, __floatundixf, __floatditf,
	__floatunditf): Use #error if type sizes don't match requirements
	of implementation.
	(__floatdisf, __floatdidf): Unify.  Possibly use XFmode or TFmode
	as wider floating-point type.  Use #error if type sizes don't
	match requirements of implementation.  Avoid overflow in computing
	Wtype_MAXp1_F * Wtype_MAXp1_F.  When special casing conversion,
	shift one more bit.  Cast 1 to DWtype or UDWtype for shifting.
	(__floatundisf, __floatundidf): Likewise.
	* config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define.
	* config/ia64/ia64.c (ia64_init_libfuncs): Use
	_U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for
	TFmode-TImode conversions.
	* doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document.

2005-12-14  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS):
	Use builtin_define_with_int_value() instead of
	adding a new check for every new major FreeBSD version.

2005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h.

2005-12-15  Richard Sandiford  <richard@codesourcery.com>

	* config/arm/predicates.md (call_memory_operand): New.
	* config/arm/arm.md (*call_mem, *call_value_mem): Use it.

2005-12-15  Andrew Haley  <aph@redhat.com>

	* unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
	against prev_cache_entry == NULL when moving a cache entry to the
	head of the list.

2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>

	* config/mt/mt.c (mt_override_options): Require lower case
	architectures.  Revert accidental default to ms2.
	* config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC,
	ENDFILE_SPEC): Require lower case architectures.  Revert default
	to ms2.

	* doc/invoke.texi (MT Options): Rename and update.
	* doc/md.texi (MorphoTech family): Rename and update.

2005-12-15  Olivier Hainque  <hainque@adacore.com>

	* stor-layout.c (layout_type): Don't complain about a too small
	an array element type size compared to its alignment when the
	size overflows.

2005-12-15  Jan Hubicka  <jh@suse.cz>

	PR target/24969
	* i386.c (classify_argument): Properly adjust offset of bitfield for
	substructures.

2005-12-15  Richard Sandiford  <richard@codesourcery.com>

	* final.c (final_scan_insn): Flip in_cold_section_p when changing
	between the hot and cold sections.  Use current_function_section
	to get the new section.
	* dwarf2out.c (output_line_info): Use in_cold_section_p to
	determine whether we are assembling hot or cold code.
	(secname_for_decl, dwarf2out_var_location): Likewise.
	(dwarf2out_init, dwarf2out_finish): Use switch_to_section.
	* varasm.c (last_text_section): Delete.
	(in_cold_section_p): New variable.
	(hot_function_section): New function.
	(current_function_section): Pass in_cold_section_p as the
	reloc argument to select_section.  Use it to decide between
	unlikely_function_section and hot_function_section.
	(assemble_start_function): Use switch_to_section.  Set
	in_cold_section_p instead of last_text_section.
	(assemble_end_function): Use switch_to_section.
	(switch_to_section): Don't set last_text_section.
	* config/darwin/darwin.c (machopic_select_section): Trust the reloc
	argument to make the right choice between hot and cold sections.

2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>

	Second part of MS1->MT renaming
	* config/mt/mt.md (doloop_end): Call mt_add_loop.
	(movqi, movhi): Call mt_set_memflags.
	(*movdf_internal): Call mt_split_words.
	(reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call
	mt_set_memflags.
	(cmpsi): Store to mt_compare_op[01].
	(beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge,
	bungt, bunle, bunlt): Call mt_emit_cbranch.
	(prologue): Call mt_expand_prologue.
	(epilogu): Call mt_expend_epilogue.
	(eh_return): Call mt_expand_eh_return.
	(eh_epilogue): Call me_emit_eh_epilogue.
	(conditional_trap): Store to mt_compare_op[01].
	* config/mt/crti.asm: Adjust comment.
	* config/mt/crtn.asm: Adjust comment.
	* config/mt/mt.c (MT_INT_ARG_FIRST): Renamed.
	(mt_compare_op0, mt_compare_op1): Renamed.
	(current_frame_info, zero_frame_info): Adjust type.
	(mt_ucmpsi3_libcall): Renamed.
	(mt_flag_delayed_branch): Renamed.
	(mt_struct_value_rtx, mt_return_addr_rtx): Renamed.
	(mt_nops_required, mt_nop_reasons): Renamed.
	(mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn,
	mt_debug_stack, mt_print_operand_simple_address,
	mt_print_operand_address, mt_print_operand): Renamed, adjusted.
	(mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg,
	mt_function_arg_advance, mt_arg_partial_bytes,
	mt_pass_by_reference, mt_function_arg_boundary,
	mt_reg_ok_for_base_p, mt_legitimate_simple_address_p,
	mt_legitimate_address_p): Renamed, adjusted.
	(mt_cpu): Renamed.
	(mt_init_machine_status, mt_override_options, mt_builtin_saveregs,
	mt_va_start, mt_compute_frame_size, mt_emit_save_restore,
	mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p,
	mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue,
	mt_expand_eh_return, mt_emit_eh_prologue,
	mt_handl_interrupt_attribute): Renamed, adjusted.
	(mt_attribute_table): Renamed, adjusted.
	(mt_initial_elimination_offset, mt_generate_compare,
	mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags,
	mt_secondary_reload_class, mt_function_value, mt_split_words,
	mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length,
	mt_scan_loop, mt_reorg_loops): Renamed, adjusted.
	(mt_labels): Renamed.
	(mt_add_branches, mt_check_delay_slot, mt_reorg_hazard,
	mt_machine_reorg): Renamed, adjusted.
	(mt_attribute_table: Renamed.
	(TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX,
	TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK,
	TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust.
	* config/mt/mt.opt (march): Set mt_cpu_string.
	* config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed.
	(TARGET_CPU_CPP_BUILTINS): Adjust.
	(TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003,
	TARGET_MS2): Adjust.
	(TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust.
	(MT_MIN_INT): Renamed.
	(RETURN_ADDR_RTX): Adjust.
	(struct mt_frame_info): Renamed.
	(current_frame_info): Adjust type.
	(INITIAL_ELIMINATION_OFFSET): Adjust.
	(MT_NUM_ARG_REGS): Renamed.
	(REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS,
	FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE,
	LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START,
	GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE,
	FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust.
	(mt_compare_op0, mt_compare_op1): Renamed.
	* config/mt/mt-protos.h: Rename prototypes.

2005-12-15  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (okay_component_ref_for_subvars): Remove.
	(get_ref_base_and_extent): Declare.
	* tree-dfa.c (okay_component_ref_for_subvars): Remove.
	(get_ref_base_and_extent): New function.
	* tree-ssa-alias.c (find_used_portions): Use it.
	* tree-ssa-structalias.c (get_constraint_for_component_ref):
	Likewise.
	* tree-ssa-operands.c (get_expr_operands): Likewise.

2005-12-15  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c: Remove force_to_mode's fourth parameter.
	(force_to_mode): Do not handle REG.
	(canon_reg_for_combine): New.
	(make_field_assignment): Use it where the removed argument was non-NULL.

2005-12-15  Alan Modra  <amodra@bigpond.net.au>

	PR target/25406
	* config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle
	error_mark_node.  Make alignment params unsigned.
	* config/rs6000/rs6000-protos.h
	(rs6000_special_round_type_align): Update prototype.
	(rs6000_machopic_legitimize_pic_address): Remove arg names.

2005-12-14  Ulrich Weigand  <uweigand@de.ibm.com>

	PR rtl-optimization/25310
	* reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs
	of the eliminable register when substituting into a PLUS.

2005-12-14  Jakub Jelinek  <jakub@redhat.com>

	PR debug/25023
	* config/i386/i386.c (ix86_force_to_memory): Always use
	SImode push for HImode in -m32.
	(ix86_free_from_memory): Likewise.

2005-12-14  Richard Sandiford  <richard@codesourcery.com>

	* config/arm/arm.md: Provide a big-endian version of the
	(zero_extend:SI (subreg:QI ...)) splitter.

2005-12-14  J"orn Rennecke <joern.rennecke@st.com>

	* struct-equiv.c (note_local_live): Handle hard regs with different
	hard_regno_nregs.

2005-12-14  Jeff Law  <law@redhat.com>

	* tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer
	to a structure containing state rather than a pointer to bool.
	(case ARRAY_REF): New code to handle folding some array references.
	(case ADDR_EXPR): Note when we are processing expressions found
	within an ADDRE_EXPR.
	(fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r
	for state variables rather than just a pointer to a boolean.
	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
	handling of constant string references.

2005-12-14  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
	("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
	("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
	Move other tst* patterns to retain partial order.

2005-12-14  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md ("d0", "1"): New mode attributes.
	("<shift>di3", "<shift>si3"): Merge.
	("*<shift>di3_and", "*<shift>si3_and"): Merge.
	("ashrdi3", "ashrsi3"): Merge.
	("*ashrdi3_cc", "*ashrsi3_cc"): Merge.
	("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge.
	("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge.
	("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge.
	("*ashrdi3", "*ashrsi3"): Merge.
	("*ashrdi3_and", "*ashrsi3_and"): Merge.

2005-12-14  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge.
	("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge.
	("*extendqidi2", "*extendqisi2") Merge.
	("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge.
	("zero_extendhidi2", "zero_extendqidi2"): Merge.
	("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge.
	Move some patterns to retain partial ordering.

2005-12-14  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md ("atype", "length"): Rewrite.
	("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.

2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>

	* tree-ssa-operands.c (build_ssa_operands): Update leading comment.

2005-12-14  J"orn Rennecke <joern.rennecke@st.com>

	* struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
	PARALLELs with a mode.

2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>

	* cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
	cond_expr parameter.

2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>

	* loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning.

2005-12-14  J"orn Rennecke <joern.rennecke@st.com>

	PR bootstrap/25397:

	* struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
	of STACK_REGS bits.

	* struct-euiv.c (rtx_equiv_p): Remove SUBREG case.

2005-12-14  Jakub Jelinek  <jakub@redhat.com>

	PR target/25254
	PR target/24188
	* config/i386/i386.c (x86_64_elf_select_section): If DECL is not
	DECL_P, call get_section rather than get_named_section.  Supply
	section flags to it.

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

	* c-common.c (c_common_truthvalue_conversion): Generalise warning
	for addresses converted to booleans; not just function addresses.
	* c-typeck.c (build_binary_op): Warn for address comparisons which
	can never be NULL (eg. func == NULL or &var == NULL).
	* common.opt (Walways-true): New option.
	* c-opts.c (c_common_handle_option): Set it with -Wall.
	* doc/invoke.texi: Document it.

2005-12-13  Paul Brook  <paul@codesourcery.com>

	* config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2,
	__floatunsidf, __floatunsisf, __floatunsixf): New functions.

2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>

	* config/mt/t-mt (crti.o, crtn.o): Add multilib options.
	(EXTRA_MULTILIB_PARTS): Define.

2005-12-13  J"orn Rennecke <joern.rennecke@st.com>

	PR rtl-optimization/20070 / part1
	* flow.c (update_life_info): If PROP_POST_REGSTACK is set, call
	count_or_remove_death_notes with kill == -1.
	(mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack
	registers if PROP_POST_REGSTACK is set.
	(mark_used_reg): Likewise.
	(count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD /
	REG_UNUSED notes for stack regs.
	* cfgcleanup.c (condjump_equiv_p): Change parameters and processing
	to match rtx_equiv_p machinery.  Change caller.
	(outgoing_edges_match): Likewise.
	(try_crossjump_to_edge): Use struct_equiv_block_eq
	instead of flow_find_cross_jump.
	* basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define.
	(STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise.
	(STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise.
	(STRUCT_EQUIV_MAX_LOCAL): Likewise.
	(struct struct_equiv_checkpoint, struct equiv_info): Likewise.
	(insns_match_p): Update prototype.
	(flow_find_cross_jump): Remove prototype.
	(struct_equiv_block_eq, struct_equiv_init): Declare.
	(rtx_equiv_p, condjump_equiv_p): Likewise.
	* struct-equiv.c: Include reload.h.
	(IMPOSSIBLE_MOVE_FACTOR): Define.
	(assign_reg_reg_set, struct_equiv_make_checkpoint): New functions.
	(struct_equiv_improve_checkpoint): Likewise.
	(struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise.
	(set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise.
	(struct_equiv_merge, find_dying_input): Likewise.
	(resolve_input_conflict, note_local_live): Likewise.
	(death_notes_match_p): Change parameters and processing
	to match rtx_equiv_p machinery.  Change caller.
	(insns_match_p): Likewise.
	(flow_find_cross_jump): Replace with:
	(struct_equiv_block_eq).

	Back out this change:
	2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
	  * recog.c (verify_changes): Make it static.
	  * recog.h: Remove the corresponding prototype.

2005-12-13  J"orn Rennecke <joern.rennecke@st.com>

	* rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
	values.

2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>

	* config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
	(MULTILIB_DIRNAMES): Add ms2.  Prefix ms1 dirs with 'ms1'.
	* config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2,
	TARGET_MS1_64_001 appropriately.
	(ms1_machine_reorg): Use TARGET_MS2.

2005-12-13  Jakub Jelinek  <jakub@redhat.com>

	PR debug/25023
	PR target/25293
	* expr.c (emit_move_resolve_push): Handle PRE_MODIFY
	and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
	Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
	* config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
	Set mode to SI, adjust constraints.
	(pushhi2_rex64, pushqi2_rex64): Set mode to DI.
	* config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
	32-bit code.

2005-12-13  Carlos O'Donell <carlos@codesourcery.com>

	* c-cppbuiltin.c (builtin_define_float_constants): Add
	fp_cast parameter, pass to builtin_define_with_hex_fp_value.
	Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
	(builtin_define_with_hex_fp_value): Use fp_cast when building macro.
	(c_cpp_builtins): If flag_single_precision_constant then set fp_cast
	to "((double)%sL)" otherwise "%s".

2005-12-13  Paul Brook  <paul@codesourcery.com>

	* config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for
	apcs/atpcs.

2005-12-11 Rafael vila de Espndola <rafael.espindola@gmail.com>

	* tree-flow.h: Allow compilation with a C++ compiler.
	(struct edge_prediction): Prefix all field names  with "ep_".
	* predict.c (tree_predicted_by_p): Likewise for struct edge_prediction.
	(tree_predict_edge, combine_predictions_for_bb): Likewise.
	(remove_predictions_associated_with_edge): Likewise.

2005-12-12  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
	reassociation code.
	* passes.c (init_optimization_passes): Run reassociation again
	after loop optimizations.

2005-12-12  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-dom.c (thread_across_edge): Canonicalize condition
	if necessary.
	(optimize_stmt): Ditto.
	(canonicalize_comparison): New function.
	* tree-ssa-operands.c (swap_tree_operands): Make external.
	(get_expr_operands): Stop auto-canonicalization.
	* tree-ssa-reassoc.c: Rewrite.
	(init_optimization_passes):
	* tree-flow.h (swap_tree_operands): Prototype.
	* Makefile.in (tree-ssa-reassoc.o): Update dependencies.

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

	* pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to
	indicate function epilogue has been output.
	(pa_asm_output_mi_thunk): Likewise.
	(output_deferred_plabels): Put plabels in readonly data section when
	not generating PIC code.
	(som_output_text_section_asm_op): Use .NSUBSPA to output debug
	information.  Add assert.
	(som_output_comdat_data_section_asm_op): New function.
	(pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op
	instead of output_section_asm_op for COMDAT sections.

2005-12-12  J"orn Rennecke <joern.rennecke@st.com>

	* cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge):
	Fix whitespace in vincinity of to-be-installed changes.
	* struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace.
	(insns_match_p): Likewise.

2005-12-12  Nathan Sidwell  <nathan@codesourcery.com>

	* config.gcc (ms1): Replace with ...
	(mt): ... this.
	* config/ms1: Rename to ...
	* config/mt: ... here.  Rename ms1 files to mt.
	* config/mt/mt.c: Adjust gt-mt.h #include.
	* config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust.
	(crti.o, crtn.o): Adjust file names.

2005-12-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* varray.h: Allow compilation with a C++ compiler.
	(union varray_data_tag): Prefix all field names with "vdt_".
	(VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT,
	VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG,
	VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR,
	VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX,
	VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB,
	VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition.
	(VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT,
	VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT,
	VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT,
	VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR,
	VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR,
	VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE,
	VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB,
	VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise.
	(VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT,
	VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT,
	VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT,
	VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR,
	VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX,
	VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP,
	VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE,
	VARRAY_TOP_TREE_PTR): Likewise.
	* varray.c (varray_grow): Likewise.
	(varray_clear): Likewise.

2005-12-12  Alan Modra  <amodra@bigpond.net.au>

	PR target/25299
	* config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
	alignment to doubleword if the first field is a double array.
	* config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.

2005-12-11  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (process_constraint): Remove code to
	transform addressofs into scalar.
	(create_variable_info_for): In whole-program IPA, globals don't
	point to ANYTHING by default.

2005-12-11  Daniel Berlin  <dberlin@dberlin.org>

	* timevar.def (TV_IPA_PTA): New.
	* tree-pass.h (pass_ipa_pta): New
	* tree-ssa-structalias.c: Include cgraph.h
	(in_ipa_mode): New.
	(predbitmap_obstack): New.
	(EXECUTE_IF_IN_NONNULL_BITMAP): New.
	(struct constraint_stats): Add num_edges.
	(new_var_info): Don't call bitmap_clear.
	(struct constraint_edge): Update docs.
	(new_constraint_edge): Remove src param.
	(struct constraint_graph): Add zero_weight_succs,
	zero_weight_preds.  Update docs.
	(constraint_expr_equal): Reformat.
	(constraint_edge_equal): Update for removal of src.
	(constraint_edge_less): Ditto.
	(constraint_edge_vec_find): Ditto.
	(erase_graph_self_edge): Update for removal of src and and zero
	weight bitmap.
	(clear_edges_for_node): Ditto.
	(add_graph_edge): Ditto.
	(get_graph_weights): Ditto.
	(allocate_graph_weights): Ditto.
	(merge_graph_nodes): Ditto.
	(int_add_graph_edge): Ditto.
	(valid_graph_edge): Ditto.
	(valid_weighted_graph_edge): Ditto.
	(build_constraint_graph): Ditto.
	(scc_visit): Ditto.
	(collapse_nodes): Ditto.
	(process_unification_queue): Ditto.
	(topo_visit): Ditto.
	(solve_graph): Ditto.
	(do_structure_copy): Ditto.
	(perform_var_substitution): Ditto.
	Init and release obstack.
	(handle_ptr_arith): Try to resolve directly.
	(find_func_aliases): Don't call update_alias_info here
	Handle RETURN_EXPR, and CALL_EXPR's in IPA mode.
	(do_sd_constraint): Add code for propagating faster.
	Update.
	(do_ds_constraint): Ditto.
	(count_num_arguments): New function.
	(create_function_info_for): Ditto.
	(create_variable_info_for): Handle FUNCTION_DECL.
	(intra_create_variable_infos): Use make_constraint_to_anything.
	(init_alias_vars): Init obstacks here.
	(need_to_solve): Handle zero weight graph changes.
	(compute_points_to_sets): Call update_alias_info here.
	(delete_points_to_sets): Free zero weight preds/succs here.
	(gate_ipa_pta): New.
	(ipa_pta_execute): New

2005-12-11  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (var_anyoffset): Removed.
	(anyoffset_tree): Ditto.
	(anyoffset_id): Ditto.
	(do_deref): Take vector of constraints, no return value.
	Update to work on vector.
	(get_constraint_for): Ditto.
	(get_constraint_for_component_ref): Ditto.
	(do_structure_copy): Ditto.
	(handle_ptr_arith): Ditto.
	(find_func_aliases): Ditto.
	(set_uids_in_ptset): Remove anyoffset handling.
	(init_base_vars): Ditto.

2005-12-10  Mark Mitchell  <mark@codesourcery.com>

	PR c++/25010
	* ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that
	DECL_EXTERNAL functions have no bodies.  Tidy.

2005-12-10  Andreas Schwab  <schwab@suse.de>

	* except.c (switch_to_exception_section): Only define if
	TARGET_UNWIND_INFO is not defined.

2005-12-10  Richard Sandiford  <richard@codesourcery.com>

	* config/darwin.h (HAS_INIT_SECTION): Remove definition.
	(INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07.

2005-12-10  Richard Sandiford  <richard@codesourcery.com>

	* output.h (init_section, fini_section): Delete.
	* varasm.c (init_section, fini_section): Delete.
	(init_varasm_once): Don't initialize them.
	* doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
	there are no corresponding varasm.c variables.

2005-12-10  Richard Sandiford  <richard@codesourcery.com>

	* dwarf2out.c (default_eh_frame_section): Delete, moving handling
	of EH_FRAME_SECTION_NAME into...
	(switch_to_eh_frame_section): ...here.  Try to set eh_frame_section
	if it is still null.
	* except.c (default_exception_section): Delete, moving most
	of the code to...
	(switch_to_exception_section): ...this new function.  Set
	exception_section if it is still null, then switch to it.
	(output_function_exception_table): Use switch_to_exception_section.
	* varasm.c (exception_section, eh_frame_section): Update comments.
	(get_section): Hoist use of SECTION_NAMED.
	(init_varasm_once): Don't set exception_section and eh_frame_section.
	* output.h (default_exception_section): Delete.
	(default_eh_frame_section): Delete.

2005-12-09  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c: Include "cgraph.h".
	(bfin_load_pic_reg): Omit loading pic reg if in a local function.
	Return the reg that holds the pointer to the GOT.
	(bfin_expand_prologue): Use return value of bfin_load_pic_reg when
	doing stack checking.

2005-12-09  Diego Novillo  <dnovillo@redhat.com>

	* tree.c (recompute_tree_invariant_for_addr_expr): Rename from
	recompute_tree_invarant_for_addr_expr.
	Update uses everywhere.

2005-12-09  Aldy Hernandez  <aldyh@redhat.com>

	* config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
	(MULTILIB_DIRNAMES): Define.

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

	PR target/25311
	* config/s390/s390.c (struct s390_address): New field literal_pool.
	(s390_decompose_address): Compute literal_pool field.  Do not
	assume register %r13 is always (and solely) used as pool base.
	(s390_extra_constraint_str): Use literal_pool field.

2005-12-09  Thiemo Seufer  <ths@networkno.de>

	* config/mips/mips.c (override_options): Don't allow too small
	integers in FP registers.

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

	* config/s390/s390.c (s390_function_ok_for_sibcall): Use
	targetm.binds_local_p to check for local function calls.

2005-12-09  Alan Modra  <amodra@bigpond.net.au>

	PR debug/24908
	* dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
	call_used_regs can't be used to save reg in another reg.

2005-12-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
	    Christophe Jaillet  <christophe.jaillet@wanadoo.fr>

	* ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
	abort.
	* except.c (output_ttype): Likewise.
	* tree-object-size.c (collect_object_sizes_for): Likewise.
	(check_for_plus_in_loops_1): Likewise.
	(check_for_plus_in_loops): Likewise.
	(compute_object_sizes): Use gcc_unreachable instead of abort.

2005-12-08  Nathan Sidwell  <nathan@codesourcery.com>

	* config/ms1/ms1.md (UNSPEC_LOOP): New constant.
	(loop_end, loop_init, doloop_end): New insns.
	* config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
	(SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
	(REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
	* config/ms1/ms1.c: #include basic-block.h
	(struct machine_function): Add has_loops field.
	(ms1_add_loop): New.
	(MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
	(struct loop_info, struct loop_work): New.
	(ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
	(ms1_reorg_loops): New loop optimization.
	(ms1_machine_reorg): Call it.
	* config/ms1/ms1-protos.h (ms1_add_loop): Declare.

2005-12-08  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/25248
	* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
	evolution_of_loop from the failed attempt.  Remove handling
	of MULT_EXPR.

2005-12-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* tree.h (DECL_EXTERNAL): Clarify documentation.

2005-12-08  Andreas Krebbel  <krebbel1@de.ibm.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/25268
	* config/s390/s390.c (s390_decompose_shift_count): Remove BITS
	argument.  Don't drop outer ANDs.
	(s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
	* config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
	prototype.
	* config/s390/predicates.md (setmem_operand): Remove.
	(shift_count_operand): Rename to...
	(shift_count_or_setmem_operand): ... this.  Adjust
	s390_decompose_shift_count caller.
	* config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
	ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
	ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
	<shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
	rotl<mode>3_and, setmem_long_and): New insns.
	(<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
	ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
	<shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
	<shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
	of shift_count_operand.
	(setmem_long): Use shift_count_or_setmem_operand instead of
	setmem_operand.

2005-12-08  Daniel Jacobowitz  <dan@codesourcery.com>
	    Andreas Tobler  <a.tobler@schweiz.ch>

	* Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
	tr expression.

2005-12-07  J"orn Rennecke <joern.rennecke@st.com>

	* expr.c (force_operand): Use convert_to_mode for conversions.

2005-12-07  J"orn Rennecke <joern.rennecke@st.com>

	* reload.h (reg_equiv_invariant): Declare.
	* reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
	register also when reg_equiv_invariant[R] is set.

2005-12-07  Richard Sandiford  <richard@codesourcery.com>
	    Andreas Tobler  <a.tobler@schweiz.ch>

	* config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.

2005-12-07  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (bitmap_set_and): New function.
	(bitmap_set_and_compl): New function.
	(bitmap_set_empty_p): New function.
	(insert_extra_phis): New function.
	(compute_avail): Use insert_extra_phis.

2005-12-07  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.c (s390_expand_atomic): New function.
	Adjust comment of helper functions.
	* config/s390/s390-protos.h (s390_expand_atomic): Declare.
	* config/s390/s390.md ("ATOMIC"): New code macro.
	("atomic"): Corresponding new code attribute.
	("sync_lock_test_and_set[hq]i",
	"sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.

2005-12-07  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.c (s390_expand_mask_and_shift,
	struct alignment_context, init_alignment_context,
	s390_expand_cs_hqi): New.
	* config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
	* config/s390/s390.md ("sync_compare_and_swaphi",
	"sync_compare_and_swapqi"): New pattern.

2005-12-07  Daniel Berlin <dberlin@dberlin.org>

	Fix PR tree-optimization/25291
	* tree-ssa-operands.c (add_call_clobber_ops): Remove
	redundant and crashing check.

2005-12-08  Alan Modra  <amodra@bigpond.net.au>

	PR target/25212
	* config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
	tests further when !strict && reload_in_progress.
	(print_operand): Check that both operands of indexed address are regs.
	(print_operand_address): Likewise.
	* config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
	(INT_REG_OK_FOR_BASE_P): Correct.

2005-12-07  J"orn Rennecke <joern.rennecke@st.com>

	Preparation for PR rtl-optimization/20070 / part1
	* basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
	* cfgcleanup.c (condjump_equiv_p): New function, broken out of
	outgoing_edges_match.
	(outgoing_edges_match): Use condjump_equiv_p.
	(merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
	into..
	* struct-equiv.c: New file.
	(death_notes_match_p) New function, broken out of insns_match_p.
	* Makefile.in (OBJS-common): Add struct-equiv.o.
	(struct-equiv.o): New target.

2005-12-07  Richard Sandiford  <richard@codesourcery.com>

	* coretypes.h: Revert previous change.
	* config/darwin.h: Revert previous reversion.
	* config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.

2005-12-07  Richard Sandiford  <richard@codesourcery.com>

	* coretypes.h (section): Provide dummy definition for target files.
	* config/darwin.h: Revert previous change.

2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>

	* doc/sourcebuild.texi (all.build, install-normal): Remove.
	* configure.ac: Remove all.build and install-normal from target_list
	* configure: Regenerate.
	* Makefile.in (install): Don't depend on install-normal.

2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>

	* Makefile.in: Document the use of stamps.

2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>

	* doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
	* Makefile.in: Add code to compute some dependencies on s-gtype
	automatically.  Remove the declaration of those dependencies.

2005-12-07  Richard Sandiford  <richard@codesourcery.com>

	* reload.c (push_secondary_reload): Fix typo:
	s/insn_constraint/scratch_constraint/.

2005-12-07  Richard Sandiford  <richard@codesourcery.com>

	* config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.

2005-12-07  Richard Sandiford  <richard@codesourcery.com>

	* config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
	(alpha_elf_select_rtx_section): Return the selected section rather
	than emitting assembly code.
	(alpha_write_linkage): Emit a ".link" directive directly and then
	set in_section to NULL.
	(vms_asm_out_constructor): Use switch_to_section.
	(vms_asm_out_destructor): Likewise.
	(unicosmk_output_common): Set in_section to NULL instead of calling
	the dummy common_section function.
	(unicosmk_text_section): Delete in favor of...
	(unicosmk_output_text_section_asm_op): ...this new function.
	(unicosmk_data_section): Delete in favor of...
	(unicosmk_output_data_section_asm_op): ...this new function.
	(unicosmk_init_sections): New function.
	(unicosmk_output_deferred_case_vectors): Use switch_to_section.
	(unicosmk_output_ssib): Set in_section to NULL instead of calling
	the dummy ssib_section function.
	(unicosmk_section_buf): Delete.
	* config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
	(unicosmk_data_section): Delete.
	* config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
	(SECTION_FUNCTION_TEMPLATE): Delete.
	* config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
	(READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
	(ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
	(TARGET_ASM_INIT_SECTIONS): Define.
	* config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(link_section, literals_section): Delete.
	(ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
	set in_section to NULL.

	* config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
	(COMMON_SECTION): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
	the dummy common_section function.
	* config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
	* config/arm/arm.c (get_jump_table_size): Use pointer comparison
	between readonly_data_section and text_section to check whether
	read-only data is being put in the text section.
	(arm_output_function_epilogue): Use switch_to_section.
	(arm_elf_asm_constructor): Likewise.
	(thumb_call_via_reg): Replace call to in_text_section with
	a comparison between in_section and text_section.
	(arm_file_end): Use switch_to_section.
	(aof_text_section): Delete in favor of...
	(aof_output_text_section_asm_op): ...this new function.
	(aof_data_section): Delete in favor of...
	(aof_output_data_section_asm_op): ...this new function.
	(aof_asm_init_sections): New function.
	(zero_init_section): Moved from config/arm/aof.h.
	(aof_dump_imports, aof_file_start): Use switch_to_section.
	* config/arm/arm.h (thumb_call_via_label): Update comment.
	* config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
	(common_section): Delete.
	* config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
	(ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
	global switch_to_section function instead of the old port-local one.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
	(SWITCH_TO_SECTION_FUNCTION): Delete.
	(drectve_section): Redefine as a macro.
	* config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
	switch_to_section.

	* config/avr/avr.c (progmem_section): New variable.
	(avr_output_progmem_section_asm_op): New function.
	(avr_asm_init_sections): New function.
	(avr_output_addr_vec_elt): Use switch_to_section.
	* config/avr/avr.h (progmem_section): Declare.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(READONLY_DATA_SECTION): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
	* config/avr/avr-protos.h (progmem_section): Delete.

	* config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.

	* config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.

	* config/darwin-sections.def: New file.
	* config/darwin.c: Define all sections in darwin-sections.def.
	(output_objc_section_asm_op, darwin_init_sections): New functions.
	(machopic_output_indirection): Use switch_to_section.
	(machopic_select_section): Return the selected section rather than
	emitting assembly code.  Replace the static function table with
	inline conditional expressions.  Update the tests of last_text_section
	and move them into the FUNCTION_DECL block.
	(machopic_select_rtx_section): Return the selected section rather than
	emitting assembly code.
	(machopic_asm_out_constructor, machopic_asm_out_destructor)
	(darwin_file_end): Use switch_to_section.
	* config/darwin.h: Use darwin-sections.def to declare sections.
	(INIT_SECTION_ASM_OP): Remove empty definition.
	(HAS_INIT_SECTION): Define this instead.
	(SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
	(TARGET_ASM_EH_FRAME_SECTION): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	* config/darwin-protos.h (darwin_init_sections): Declare.
	(machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
	(machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
	(machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
	(constructor_section, destructor_section, mod_init_section): Delete.
	(mod_term_section): Delete.
	(darwin_exception_section, darwin_eh_frame_section): Delete.
	(machopic_select_section): Return a section.
	(machopic_select_rtx_section): Likewise.
	(text_coal_section, text_unlikely_section, text_unlikely_coal_section)
	(const_section, const_coal_section, const_data_section): Delete.
	(const_data_coal_section, data_coal_section, cstring_section): Delete.
	(literal4_section, literal8_section, constructor_section): Delete.
	(mod_init_section, mod_term_section, destructor_section): Delete.
	(objc_class_section, objc_meta_class_section, objc_category_section)
	(objc_class_vars_section, objc_instance_vars_section): Delete.
	(objc_cls_meth_section, objc_inst_meth_section): Delete.
	(objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
	(objc_selector_refs_section, objc_selector_fixup_section): Delete.
	(objc_symbols_section, objc_module_info_section): Delete.
	(objc_image_info_section, objc_protocol_section): Delete.
	(objc_string_object_section, objc_constant_string_object_section)
	(objc_class_names_section, objc_meth_var_names_section): Delete.
	(objc_meth_var_types_section, objc_cls_refs_section): Delete.
	(machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
	(machopic_symbol_stub_section, machopic_picsymbol_stub_section)
	(darwin_exception_section, darwin_eh_frame_section): Delete.
	* config/t-darwin (darwin.o): Depend on config/darwin-sections.def.

	* config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
	(frv_asm_out_destructor): Likewise.
	* config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
	get_named_section.
	(ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
	* config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
	(data_section): Delete.

	* config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(DRECTVE_SECTION_FUNCTION): Delete.
	(drectve_section): Redefine as a macro that sets in_section after
	emitting the directive.
	(SWITCH_TO_SECTION_FUNCTION): Delete.
	* config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
	in_text_section with comparison between in_section and text_section.
	* config/i386/i386.c (x86_64_elf_select_section): Return the section
	rather than emitting assembly code.  Use get_named_section.
	(x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
	get_named_section.
	(machopic_output_stub): Use switch_to_section.
	* config/i386/nwld.c (nwld_named_section_asm_out_constructor)
	(nwld_named_section_asm_out_destructor): Use get_section and
	switch_to_section.

	* config/ia64/ia64.c (ia64_select_rtx_section): Return the section
	rather than emitting assembly code.
	(ia64_rwreloc_select_section): Likewise.
	(ia64_rwreloc_select_rtx_section): Likewise.
	* config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
	* config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
	switch_to_section.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.

	* config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
	section rather than emitting assembly code.
	(iq2000_select_section): Likewise.
	* config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
	(sbss_section): Delete.

	* config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
	and get_named_section.
	* config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.

	* config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
	(SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
	(EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
	(MCORE_EXPORT_NAME): Emit the exports directive directly, then set
	in_section to NULL.
	(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
	(ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
	global switch_to_section function instead of the old port-local one.
	* config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(SWITCH_SECTION_FUNCTION): Delete.
	* config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
	(DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
	(SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
	(MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
	in_section to NULL.
	(ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
	global switch_to_section function instead of the old port-local one.
	(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.

	* config/mips/mips.c (mips_file_start): Update comment.
	(mips_output_aligned_bss): Use switch_to_section and get_named_section.
	(mips_output_aligned_decl_common): Use switch_to_section.
	(mips_select_rtx_section): Return the section rather than emitting
	assembly code.  Use get_named_section.
	(mips_function_rodata_section: Likewise get_section.
	(build_mips16_function_stub): Use switch_to_section.
	* config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
	(SDATA_SECTION_ASM_OP): Delete.
	* config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
	(EXTRA_SECTION_FUNCTIONS): Delete.

	* config/mmix/mmix.c (mmix_file_start, mmix_file_end)
	(mmix_asm_output_aligned_local): Use switch_to_section.

	* config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
	(som_one_only_readonly_data_section): New variables.
	(pa_output_function_epilogue): Set in_section to NULL instead of
	calling forget_section.
	(output_deferred_plabels): Use select_section.
	(pa_asm_output_mi_thunk): Likewise.  Set in_section to NULL instead
	of calling forget_section.
	(pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
	(pa_asm_output_aligned_local): Use select_section.
	(som_text_section_asm_op): Delete in favor of...
	(som_output_text_section_asm_op): ...this new function.
	(pa_som_asm_init_sections): New function.
	(pa_select_section): Return the section rather than emitting
	assembly code.
	* config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
	(SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
	(SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
	* config/pa/pa-protos.h (som_text_section_asm_op): Delete.
	(som_readonly_data_section, som_one_only_readonly_data_section)
	(som_one_only_data_section, forget_section): Delete.
	* config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.

	* config/rs6000/rs6000.c (read_only_data_section): New variable.
	(private_data_section, read_only_private_data_section): New variables.
	(sdata2_section, toc_section): New variables.
	(rs6000_file_start): Use switch_to_section.
	(rs6000_assemble_integer): Use comparisons against in_section
	instead of calling in_toc_section and in_text_section.  Use
	unlikely_text_section_p.
	(rs6000_elf_output_toc_section_asm_op): New function, derived
	from the old rs6000/sysv4.h toc_section function.
	(rs6000_elf_asm_init_sections): New function.
	(rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
	the section rather than emitting assembly code.
	(machopic_output_stub): Use switch_to_section.
	(toc_section): Delete dummy function.
	(rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
	switch_to_section and get_section.
	(rs6000_xcoff_output_readonly_section_asm_op): New function.
	(rs6000_xcoff_output_readwrite_section_asm_op): New function.
	(rs6000_xcoff_output_toc_section_asm_op): New function, derived from
	the old rs6000/xcoff.h toc_section function.
	(rs6000_xcoff_asm_init_sections): New function.
	(rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
	the section rather than emitting assembly code.
	(rs6000_xcoff_file_start): Use switch_to_section.
	(rs6000_xcoff_file_end): Likewise.
	* config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
	(sdata2_section, sbss_section, private_data_section): Delete.
	(read_only_data_section, read_only_private_data_section): Delete.
	* config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
	(SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
	(FINI_SECTION_FUNCTION): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
	* config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
	(READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
	(READONLY_DATA_SECTION): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	(ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.  Set in_section
	to NULL rather than no_section.
	(TARGET_ASM_EXCEPTION_SECTION): Delete.

	* config/sh/sh.c (sh_file_start): Use switch_to_section.

	* config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
	(sparc_output_deferred_case_vectors): Likewise.  Remove argument
	from call to current_function_section.

	* config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
	(bss100_section): New variable.
	(xstormy16_asm_output_aligned_common): Use switch_to_section.
	(xstormy16_asm_init_sections): New function.
	(xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
	switch_to_section and get_section.
	(xstormy16_output_addr_vec): Use switch_to_section.  Remove argument
	from calls to current_function_section.
	* config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
	(XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	* config/stormy16/stormy16-protos.h (bss100_section): Delete.

	* config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
	(FINI_SECTION_FUNCTION): Delete.

	* config/v850/v850.c: Include gt-v850.h.
	(rosdata_section, rozdata_section, tdata_section, zdata_section)
	(zbss_section): New variables.
	(v850_output_aligned_bss): Use switch_to_section.
	(v850_asm_init_sections): New function.
	(v850_select_section): Return the section rather than emitting
	assembly code.
	* config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
	(ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
	(ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
	(TARGET_ASM_INIT_SECTIONS): Define.
	* config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
	(sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
	(zbss_section): Delete.

	* config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.

	* config/vx-common.h (vxworks_exception_section): Delete.
	(TARGET_ASM_EXCEPTION_SECTION): Delete.

	* config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
	section rather than emitting assembly code.
	* config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
	switch_to_section.

	* Makefile.in (GTFILES): Add $(srcdir)/output.h.
	* coretypes.h (section): New union and typedef.
	* dbxout.c (FORCE_TEXT): Use switch_to_section.  Remove argument
	from call to current_function_section.
	(dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
	(dbxout_symbol_location): Use switch_to_section.
	* dwarf2out.c (named_section_eh_frame_section): Delete, moving
	most of the code into...
	(default_eh_frame_section): ...here.  Return a section.
	(collect2_eh_frame_section): Delete, moving most of the code into..
	(switch_to_eh_frame_section): ...this new function.
	(debug_info_section, debug_abbrev_section, debug_aranges_section)
	(debug_macinfo_section, debug_line_section, debug_loc_section)
	(debug_pubnames_section, debug_str_section, debug_ranges_section): New
	variables.
	(output_call_frame_info): Call switch_to_eh_frame_section instead of
	eh_frame_section.  Use switch_to_section and get_section.
	(dwarf2out_begin_prologue): Use switch_to_section.
	(AT_string_form): Check the flags in debug_str_section instead of
	DEBUG_STR_SECTION_FLAGS.
	(output_comp_unit): Use switch_to_section, get_section, and
	debug_info_section.
	(output_line_info, secname_for_decl): Use unlikely_text_section_p.
	(dwarf2out_begin_block): Use switch_to_section.  Remove argument
	from call to current_function_section.
	(dwarf2out_var_location): Use unlikely_text_section_p.
	(dwarf2out_source_line): Use switch_to_section.  Remove argument
	from call to current_function_section.
	(dwarf2out_start_source_file, dwarf2out_end_source_file)
	(dwarf2out_define, dwarf2out_undef: Use switch_to_section and
	debug_macinfo_section.
	(dwarf2out_init): Initialize the new section variables.  Use them
	instead of calls to named_section_flags.  Use switch_to_section.
	(output_indirect_string): Use switch_to_section and debug_str_section.
	(dwarf2out_finish): Use switch_to_section and the new section
	variables.
	* except.c (default_exception_section): Return the section instead
	of emitting assembly code.
	(output_function_exception_table): Use the global exception_section
	variable instead of the target hook.  Use switch_to_section.  Remove
	argument from call to current_function_section.
	* final.c (HAVE_READONLY_DATA_SECTION): Delete.
	(shorten_branches): Use pointer comparisons to detect whether the
	text section is the same as readonly_data_section.
	(profile_function): Use switch_to_section.  Remove argument from
	call to current_function_section.
	(final_scan_insn): Likewise.  Update use of last_text_section.
	* gengtype.c (open_base_files): Add an include of output.h.
	* output.h (text_section, data_section, readonly_data_section)
	(ctors_section, dtors_section, bss_section, init_section)
	(fini_section, sdata_section): Turn into section pointers.
	(in_text_section, in_unlikely_text_section, exports_section)
	(drectve_section, named_section, mergeable_string_section)
	(last_text_section_name): Delete.
	(default_exception_section, default_eh_frame_section): Return sections.
	(SECTION_DECLARED, SECTION_NAMED): New macros.
	(SECTION_MACH_DEP): Bump value.
	(section_common, named_section, unnamed_section): New structures.
	(unnamed_section_callback): New typedef.
	(section): New union.
	(sbss_section, exception_section, eh_frame_section): New variables.
	(in_section, last_text_section): Turn into section pointers.
	(get_unnamed_section, get_section, get_named_section): New functions.
	(mergeable_constant_section, function_section): Return a section.
	(unlikely_text_section): Likewise.
	(current_function_section): Likewise.  Remove the decl argument.
	(unlikely_text_section_p, switch_to_section): New functions.
	(output_section_asm_op): New function.
	(set_named_section_flags, named_section_flags, named_section_real)
	(named_section_first_declaration): Delete.
	(default_select_section, default_elf_select_section): Return a section.
	(default_elf_select_section_1, default_function_rodata_section)
	(default_no_function_rodata_section, default_select_rtx_section)
	(default_elf_select_rtx_section): Likewise.
	* rtl.h (in_data_section): Delete.
	* sdbout.c (sdbout_one_type): Use switch_to_section.
	* system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
	(READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
	(TARGET_ASM_EH_FRAME_SECTION): Poison.
	* target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
	(TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
	(TARGET_ASM_OUT): Update after above changes.
	* target.h (init_sections): New hook.
	(exception_section, eh_frame_section): Delete.
	(select_section, select_rtx_section, function_rodata_section): Return
	a section rather than emitting assembly code.
	* varasm.c (text_section, data_section, readonly_data_section)
	(ctors_section, dtors_section, bss_section, init_section)
	(fini_section): Turn into section pointers.
	(sdata_section, sbss_section, exception_section): New variables.
	(eh_frame_section): New variable.
	(in_section): Make global and turn into a section pointer.
	(last_text_section): Turn into a section pointer.
	(unnamed_sections): New variable.
	(in_named_name, last_text_section_name): Delete.
	(EXTRA_SECTION_FUNCTIONS): Delete.
	(in_named_entry): Delete.
	(section_htab): New variable, replacing...
	(in_named_htab): ...this deleted variable.
	(section_entry_eq, section_entry_hash): New functions, based on...
	(in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
	(get_unnamed_section, get_section): New functions.
	(unlikely_text_section): Return a section instead of emitting
	assembly code.
	(in_text_section, in_unlikely_text_section, in_data_section): Delete.
	(get_named_section_flags, named_section_first_declaration): Delete.
	(unlikely_text_section_p): New function.
	(named_section_real, named_section): Delete.
	(get_named_section): New function.
	(asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
	(function_section): Return a section rather than emitting
	assembly code.
	(current_function_section): Likewise.  Remove argument.  Use
	last_text_section if nonnull, otherwise use function_section.
	(default_function_rodata_section): Return a section rather than
	emitting assembly code.  Use get_section.
	(default_no_function_rodata_section): Return a section rather than
	emitting assembly code.
	(variable_section): Use switch_to_section and get_named_section.
	(mergeable_string_section): Return a section rather than emitting
	assembly code.  Use get_section.  Make static.  Don't take special
	countermeasures for empty strings.
	(mergeable_constant_section): Return a section rather than emitting
	assembly code.  Use get_section.
	(default_named_section_asm_out_destructor): Use switch_to_section
	and get_section.
	(default_dtor_section_asm_out_destructor): Use switch_to_section.
	(default_named_section_asm_out_constructor): Use switch_to_section
	and get_section.
	(default_ctor_section_asm_out_constructor): Use switch_to_section.
	(assemble_start_function): Likewise.  Set last_text_section to
	NULL rather than no_section.  Change the type of save_section.
	(assemble_zeros, assemble_variable): Use the section flags to detect
	whether or not a section is text.
	(assemble_static_space): Use switch_to_section.
	(assemble_trampoline_template): Likewise.
	(output_constant_def_contents): Use switch_to_section and
	get_named_section.
	(output_constant_pool_1): Use switch_to_section.  Use the section
	flags to see whether sections contain mergeable data.
	(init_varasm_once): Initialize section_htab instead of in_named_htab.
	Initialize new section variables.  Call TARGET_ASM_INIT_SECTIONS.
	(default_elf_asm_named_section): Use SECTION_DECLARED to detect
	whether a section has already been declared.
	(default_select_section, default_elf_select_section): Return a
	section rather than emitting assembly code.
	(default_elf_select_section_1): Likewise.  Use bss_section for
	SECCAT_BSS if nonnull.  Use get_named_section.
	(default_select_rtx_section): Return a section rather than
	emitting assembly code.
	(default_elf_select_rtx_section): Likewise.  Use get_named_section.
	(file_end_indicate_exec_stack): Use switch_to_section and get_section.
	(output_section_asm_op, switch_to_section): New functions.
	* vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
	get_named_section.

	* doc/tm.texi: Expand the introduction to the sections documentation.
	(TRAMPOLINE_SECTION): Document new interface.
	(SDATA_SECTION_ASM_OP): Document new macro.
	(READONLY_DATA_SECTION): Delete.
	(SDATA_SECTION_ASM_OP): Document new macro.
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
	(TARGET_ASM_INIT_SECTIONS): Document new hook.
	(TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
	(TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
	(TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.

2005-12-07  Alan Modra  <amodra@bigpond.net.au>

	* gcc.c (init_gcc_specs): Match braces inside conditionally
	compiled strings.

2005-12-06  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.

2005-12-06  Aldy Hernandez  <aldyh@redhat.com>

	PR C++/24138
	* tree.c (integer_all_onesp): Always return true if all bits on.

	* testsuite/g++.dg/init/array0.C: New.

2005-12-06  Adrian Straetling  <straetling@de.ibm.com>

	* doc/md.texi: Adapt to implementation.

2005-12-06  Andreas Schwab  <schwab@suse.de>

	* opts.c (decode_options): Fix typo in message.

2005-12-06  Alan Modra  <amodra@bigpond.net.au>

	PR other/13873
	* longlong.h: Merge PPC tests from upstream.

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

	* fold-const.c (fold_convert): Do not build and fold
	CONVERT_EXPR, but always use NOP_EXPR.

2005-12-06  Jan Beulich  <jbeulich@novell.com>

	* config/i386/i386.c (builtin_description): Use MASK_SSE2 for
	__builtin_ia32_paddq and __builtin_ia32_psubq.
	(ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
	__builtin_ia32_pshufw.
	* config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.

2005-12-05  James E Wilson  <wilson@specifix.com>

	PR target/24934
	* opts.c (decode_options): Turn off partitioning if flag_unwind_tables
	is set.

2005-12-05  Daniel Berlin  <dberlin@dberlin.org>

	* print-tree.c (print_node): Ditto.
	* tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
	* tree-dump.c (dequeue_and_dump): Check for decl_common structure
	before accessing DECL_ARTIFICIAL.
	Handle new tag tree codes.
	* tree-flow-inline.h (clear_call_clobbered): Update for tag
	changes.
	(unmodifiable_var_p): Ditto.
	* tree-flow.h (mem_tag_kind): Remove.
	(struct var_ann_d): Remove mem_tag_kind member.
	* tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
	* tree-pretty-print.c (dump_generic_node): Handle memory tags.
	* tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
	(group_aliases): Ditto.
	(setup_pointers_and_addressables): Ditto.
	(is_escape_site): Ditto.
	(may_alias_p): Ditto.
	(create_tag_raw): New function.
	(create_memory_tag): Use it.
	(dump_alias_info): Update for tags.
	(may_be_aliased): Ditto.
	(add_type_alias): Ditto.
	(new_type_alias): Ditto.
	(create_sft): Ditto.
	(create_structure_vars): Ditto.
	* tree-ssa-ccp.c (get_default_value): Ditto.
	* tree-ssa-operands.c (get_expr_operands): Ditto.
	(add_stmt_operand): Ditto.
	(add_call_clobber_ops): Remove duplicated condition.
	* tree-ssa.c (verify_flow_insensitive_alias_info): Update for
	tags.
	* tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
	* tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
	* tree.c (init_ttree): Update structures for new tree codes.
	(tree_code_size): Update sizes for new tree codes.
	(make_node_stat): Don't try to set common things on minimal
	structures.
	(tree_node_structure): Update for tags.
	(is_global_var): Ditto.
	* tree.def: Add new tree codes.
	* tree.h (MTAG_P): New macro.
	(TREE_MEMORY_TAG_CHECK): Ditto.
	(SSA_VAR_P): Update for tags.
	(struct tree_memory_tag): New structure.
	(MTAG_GLOBAL): New macro.
	(union tree_node): Add memory tag member.
	* treestruct.def (TS_MEMORY_TAG): New.

2005-12-05  Dale Johannesen  <dalej@apple.com>

	* config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Fix to match
	what was approved (PR 24323).

2005-12-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* doc/c-tree.texi (Function Bodies): Remove description of
	RETURN_INIT.

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

	* doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
	__floatunsixf, __floatundisf, __floatundidf, __floatunditf,
	__floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
	__floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
	__muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
	__divxc3): Document.

2005-12-05  Geoffrey Keating  <geoffk@apple.com>

	* config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
	previous behaviour.
	* config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
	hook_bool_void_false.
	(TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
	* config/darwin.c (darwin_cxx_determine_class_data_visibility): New.

	* config/darwin.c (machopic_select_section): It's not defined
	as weak if it's only marked as weak_import.

	* config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
	Prototype.

	* varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
	A hidden weak object does bind locally.  Strong linkonce data
	counts like any other strong symbol for binding.
	(weak_finish_1): Don't specially handle weakrefs, they no longer
	arrive here.
	(assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
	* c-common.c (handle_alias_attribute): Allow static aliases
	of variables.
	(handle_weakref_attribute): Don't call declare_weak on weakrefs.
	* gthr-dce.h: Make weakrefs static.
	* gthr-tpf.h: Likewise.
	* gthr-solaris.h: Likewise.
	* gthr-posix.h: Likewise.
	* gthr-posix95.h: Likewise.
	* config/darwin.c (darwin_encode_section_info): static weakref
	variables are not necessarily defined in this translation unit.
	* doc/extend.texi (Function Attributes): Mention that an alias
	attribute creates a definition for the thing it's attached to.
	Change the documentation for weakref to say that the thing
	it's attached to must be static.

	* config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
	we don't go into an infinite loop.

2005-12-05  Paolo Bonzini  <bonzini@gnu.org>

	* config/rs6000/predicates.md (logical_const_operand): Split
	out of logical_operand.
	(logical_operand): Use it.
	* config/rs6000/rs6000.md (cmp -> xor peephole2): Use
	logical_const_operand.

2005-12-05  Jan Beulich  <jbeulich@novell.com>

	* config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
	and IX86_BUILTIN_CMPNESS.
	(ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
	* config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
	* config/i386/i386.md (movti_internal): Correct type attribute.
	Simplify mode attribute.
	(movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
	Correct type attribute.
	(absxf2): Correct operator.
	* config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
	movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
	* config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
	mode attribute.
	(sse2_vmsqrtv2df2): Correct mode attribute.

2005-12-05  Jan Beulich  <jbeulich@novell.com>

	* config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
	16 bits. Provide insn pattern for this case.

2005-12-05  Jan Beulich  <jbeulich@novell.com>

	* libgcc2.c (__popcountSI2): Don't use wide type for iterator and
	result.
	(__popcountDI2): Likewise.

2005-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/25166
	* pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
	_U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
	* pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
	functions.

2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>

	* c-typeck.c (null_pointer_constant_p): New function.
	(build_conditional_expr, build_c_cast, convert_for_assignment,
	build_binary_op): Use it.

2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>

	* c-common.c (binary_op_error): Do not allow NOP_EXPR.
	(c_common_truthvalue_conversion): Handle NOP_EXPR the same as
	CONVERT_EXPR.
	(check_function_arguments_recurse): Allow both NOP_EXPR and
	CONVERT_EXPR but check conversions preserve precision.
	* c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
	but check conversions preserve precision.
	(build_unary_op): Don't allow NOP_EXPR.  Use gcc_unreachable () in
	default case.

2005-12-04  Roger Sayle  <roger@eyesopen.com>

	PR c/7776
	* common.opt (Wstring-literal-comparison): New command line option.
	* c-opts.c (c_common_handle_option): Set it with -Wall.
	* c-typeck.c (parser_build_binary_op): Issue warning if either
	operand of a comparison operator is a string literal, except for
	testing equality or inequality against NULL.

	* doc/invoke.texi: Document new -Wstring-literal-comparison option.

2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>

	* c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
	of building a NOP_EXPR.
	(c_alignof_expr): Likewise.  Handle CONVERT_EXPR the same as
	NOP_EXPR.
	* c-convert.c (convert): Use fold_convert instead of building
	NOP_EXPRs and CONVERT_EXPRs directly.  Don't special case
	c_objc_common_truthvalue_conversion returning a NOP_EXPR.  Remove
	#if 0 code.
	* c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
	NOP_EXPR the same as CONVERT_EXPR.
	* c-typeck.c (build_function_call): Use fold_convert instead of
	building a NOP_EXPR directly.
	(build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.

2005-12-03  Alan Modra  <amodra@bigpond.net.au>

	PR rtl-optimization/25197
	* dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
	have a reg.

2005-12-02  Stuart Hastings  <stuart@apple.com>

	* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
	warning.

2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>

	* c-typeck.c (default_function_array_conversion,
	build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
	(build_conditional_expr): Apply integer_zerop to orig_op1 and
	orig_op2.  Don't check them for NOP_EXPR.
	(build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
	around integer zero.

2005-12-03  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
	toc_save_offset, toc_size, lr_size.
	(rs6000_stack_info): Use memset rather than bss struct copy to init.
	Test rs6000_ra_ever_killed last in condition setting lr_save_p.
	Adjust for removal of unused rs6000_stack_t fields.
	(debug_stack_info): Adjust.
	(rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE.  Test for calls
	first, and don't bother checking for set/inc of lr on sibcalls.
	(rs6000_emit_epilogue): Tidy code restoring stack pointer.

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

	PR target/25199
	* config/i386/i386.md (movqi_1): Only force imovx for alternative
	5 if operand 1 is not aligned.  Undo previous constraint change.
	* config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.

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

	* tree.h (build): Remove prototype.
	(build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
	* tree.c (build): Remove.
	(build0_stat): Update comment.

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

	* tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
	* tree-complex.c (update_complex_assignment, expand_complex_div_wide):
	Likewise.
	* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
	maybe_fold_offset_to_component_ref): Likewise.
	* tree-ssa-dom.c (thread_across_edge,
	simplify_rhs_and_lookup_avail_expr,
	find_equivalent_equality_comparison, record_equivalences_from_stmt):
	Likewise.
	* gimple-low.c (lower_function_body, lower_return_expr): Likewise.
	* tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
	lower_try_finally_switch): Likewise.
	* tree-if-conv.c (add_to_dst_predicate_list,
	replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
	* gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
	voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
	gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
	gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
	shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
	gimplify_init_ctor_eval, gimplify_init_constructor,
	gimplify_variable_sized_compare, gimplify_boolean_expr,
	gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
	gimplify_expr, gimplify_body, gimplify_function_tree,
	force_gimple_operand): Likewise.
	* tree-ssa-pre.c (create_expression_by_pieces): Likewise.
	* tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
	mx_register_decls): Likewise.
	* tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
	get_frame_field, finalize_nesting_tree_1): Likewise.
	* tree-inline.c (setup_one_parameter): Likewise.
	* tree-vect-transform.c (vectorizable_condition): Likewise.
	* tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
	Likewise.
	* tree-profile.c (tree_gen_edge_profiler): Likewise.
	* tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
	* c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
	* tree-chrec.h (build_polynomial_chrec): Likewise.

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

	* config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
	alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
	* config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
	* config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
	* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
	* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
	* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
	Likewise.
	* config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
	sh_adjust_unroll_max): Likewise.
	* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
	* config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
	Likewise.
	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
	Likewise.
	* config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
	Likewise.

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

	* tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
	simplify_cond_using_ranges): Use buildN instead of build.
	* tree-tailcall.c (adjust_accumulator_values,
	adjust_return_value): Likewise.
	* tree-sra.c (generate_one_element_ref, generate_copy_inout,
	generate_element_copy, generate_element_zero,
	generate_one_element_init): Likewise.
	* tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
	* lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
	lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
	perfect_nestify): Likewise.

2005-12-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (pa_secondary_reload): Revise initialization of variable regno.

2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* ggc.h (GGC_RESIZEVEC): New.

2005-12-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* gcc.c (execute): Improve readability.

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

	* tree-cfg.c (mark_used_vars): New function.
	(dump_function_to_file): Dump only used VAR_DECLs.

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

	* convert.c (convert_to_integer): Fix compare for nonpositive
	constant to use tree_int_cst_sgn <= 0.

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

	* convert.c (convert_to_integer): Use fold_convert instead
	of fold_build1 (NOP_EXPR, ...).  Use tree_int_cst_sgn < 0
	instead of comparing against 0.  Use build_int_cst instead
	of converting integer_zero_node.

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

	* tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
	and RROTATE_EXPR.

2005-12-02  Alan Modra  <amodra@bigpond.net.au>

	PR target/21017
	* combine.c (simplify_logical <IOR>): Simplify more patterns to
	rotates.

2005-12-02  Alan Modra  <amodra@bigpond.net.au>

	PR middle-end/25176
	* function.c (expand_function_end): Emit blockage for unwinder
	after return label.

2005-12-01  Roger Sayle  <roger@eyesopen.com>

	* tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
	constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
	* tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
	integer constant comparisons.

2005-12-02  Jon Grimm  <jgrimm2@us.ibm.com>
	    Janis Johnson  <janis187@us.ibm.com>
	    David Edelsohn  <dje@watson.ibm.com>
	    Ben Elliston  <bje@au.ibm.com>

	* dfp.h, dfp.c: New files.
	* Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
	(DECNUM_H): Likewise.
	(LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
	(INCLUDES): Append $(DECNUMINC).
	(OBJS-common): Add dfp.o.
	(dfp.o): New rule.
	* real.h (EXP_BITS): Pinch one bit to ..
	(struct real_value): Add decimal field.
	(real_format): Change table size, update documentation.
	(REAL_MODE_FORMAT): Update for to handle float, decimal float.
	(real_from_string3): Declare.
	(decimal_single_format): Declare.
	(decimal_double_format): Declare.
	(decimal_quad_format): Declare.
	(REAL_VALUE_TO_TARGET_DECIMAL32): New.
	(REAL_VALUE_TO_TARGET_DECIMAL64): New.
	(REAL_VALUE_TO_TARGET_DECIMAL128): New.
	* real.c: Include dfp.h.
	(normalize): Early return for decimal floats.
	(do_add): Zero decimal field.
	(do_compare): Call do_decimal_compare for decimal floats.
	(do_fix_trunc): Likewise, call decimal_do_fix_trunc.
	(real_arithmetic): Call decimal_real_arithmetic for decimal
	floating point operands.
	(real_identical): If a and b are of differing radix, return false.
	(real_to_integer): Call decimal_real_to_integer if the value is a
	decimal float.
	(real_to_integer2): Likewise, call decimal_real_to_integer2.
	(real_to_decimal): Likewise, call decimal_real_to_decimal.
	(real_to_hexadecimal): Place "N/A" in the return string for
	decimal float.
	(real_from_string3): New variant, given a mode.
	(real_maxval): Use decimal_real_maxval for decimal floats.
	(round_for_format): Use decimal_round_for_format for decimals.
	(real_convert): Use decimal_real_convert where appropriate.
	(significand_size): Handle base 10.
	(encode_decimal_single, decode_decimal_single,
	encode_decimal_double, decode_decimal_double, encode_decimal_quad,
	decode_decimal_quad): New functions.
	(decimal_single_format): New.
	(decimal_double_format): New.
	(decimal_quad_format): New.
	* machmode.def: Add SD, DD and TD decimal floating point modes.
	* machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
	Include MODE_DECIMAL_FLOAT.
	(DECIMAL_FLOAT_MODE_P): New.
	* mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
	* genmodes.c (struct mode_data): Add counter field.
	(struct mode_data): Update comment for format.
	(blank_mode): Initialise counter field.
	(new_mode): Increment counter field for each mode defined.
	(complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
	using a format.
	(make_complex_modes): Handle modes containing `D'.
	(DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
	(make_decimal_float_mode): New.
	(reset_float_format): Handle MODE_DECIMAL_FLOAT.
	(cmp_modes): Compare counter field if other characteristics
	similar.
	(emit_real_format_for_mode): Support formats for decimal floats.
	* doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
	Document MODE_DECIMAL_FLOAT.

2005-12-02  Alan Modra  <amodra@bigpond.net.au>

	* simplify-rtx.c (simplify_plus_minus): Do simplify constants.
	Delete dead code.

2005-12-01  Richard Henderson  <rth@redhat.com>

	* optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.

2005-12-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.

	* config/pa/pa.c (pa_init_builtins): If we detect
	DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
	putc_unlocked.

2005-12-01  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_binary): Use fold_build2, not
	fold (build (...)).

2005-12-01  Nathan Sidwell  <nathan@codesourcery.com>

	* config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.

	* vec.h (VEC_block_remove): New.

2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c/13384
	* c-common.c (lvalue_error): Fix wording.

2005-12-01  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
	thinko in last patch.

2005-12-01  Geoffrey Keating  <geoffk@apple.com>

	* config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
	than -flat_namespace.

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

	* mklibgcc.in: Parameterise the script to build soft float
	functions by iterating over each type, rather than cloning the
	code for each type.

2005-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR middle-end/25158
	* builtins.c (fold_builtin_fputs): Defer check for missing
	replacement functions.

2005-11-30  Kean Johnston  <jkj@sco.com>

	* config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
	simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.

2005-11-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/22501
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
	function split out from ...
	(forward_propagate_addr_expr): ... here.  Use it to propagate
	ADDR_EXPRs to all uses.

2005-11-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
	* builtins.c (expand_builtin_mathfn): Use them.
	(expand_builtin_mathfn_2): Likewise.
	(expand_builtin_mathfn_3): Likewise.
	(expand_builtin_int_roundingfn): Likewise.
	(expand_builtin): Likewise.
	(integer_valued_real_p): Likewise.
	(fold_builtin_int_roundingfn): Likewise.
	(fold_builtin_bitop): Likewise.
	(fold_builtin_logarithm): Likewise.
	(fold_builtin_1): Likewise.
	* convert.c (convert_to_integer): Likewise.
	* fold-const.c (negate_mathfn_p): Likewise.
	(tree_expr_nonnegative_p): Likewise.

2005-11-30  Dale Johannesen  <dalej@apple.com>
	    Andrew Pinski  <pinskia@physics.uc.edu>

	* combine.c (find_split_point): Sign extend bitmask
	when changing bitfield assignment to IOR of AND.

2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>

	* config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
	clobber to scratch reg.
	(*decrement_and_branch_until_zero_no_clobber): Remove.
	(decrement_and_branch peephole): Add dummy scratch reg to pattern.
	(mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
	* config/ms1/ms1.opt (mmul): Remove.
	* config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
	(LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.

2005-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
	    Bernd Schmidt  <bernd.schmidt@analog.com>

	* pa/predicates.md (symbolic_operand): Add comment.
	* pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
	* pa/pa-protos.h (pa_secondary_reload_class): Delete.
	* pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
	(pa_secondary_reload_class): Delete.
	(pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
	and pa_secondary_reload_class.  Reorder some checks.  Update inline
	copy of symbolic operand.
	* pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.

2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>

	* loop-doloop.c (add_test): Only add jump notes if we did emit a
	jump.

2005-11-30  Jeff Law  <law@redhat.com>

	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
	handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.

2005-11-30  Jakub Jelinek  <jakub@redhat.com>

	* config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
	Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
	(ia64_expand_move): Adjust caller.

	* config/ia64/ia64.c (ia64_expand_atomic_op): Only use
	fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
	negate VAL.

2005-11-30  Paolo Bonzini  <bonzini@gnu.org>

	* simplify-rtx.c (simplify_plus_minus): Remove final parameter.
	Always produce an output if we can remove NEGs or canonicalize
	(minus (minus ...)) expressions.  Provide a fast path for the
	two-operand case.
	(simplify_gen_binary): Do not call simplify_plus_minus.
	(simplify_binary_operation_1): Reassociate at the end of the
	function.

2005-11-29  Evan Cheng  <evan.cheng@apple.com>

	* config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
	moves and unpack to speed up.

2005-11-29  David S. Miller  <davem@sunset.davemloft.net>

	* config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
	argument, they are always sparc_compare_op0 and sparc_compare_op1.
	(gen_v9_scc): Update callers.
	* config/sparc/sparc.md: Likewise.
	* config/sparc/sparc-protos.h: Update extern declaration.

	* tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.

2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>

	* fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
	the if.

2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>

	* fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
	(fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
	(negate_expr): Here.

2005-11-29  Ben Elliston  <bje@au.ibm.com>

	* config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
	Fix typo in comment.

2005-11-29  Ben Elliston  <bje@au.ibm.com>

	* Makefile.in (clean-target): Depend on clean-target-libgcc.
	(clean-target-libgcc): Import rule from the top-level Makefile.in.

2005-11-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR middle-end/20109
	PR middle-end/25120
	* builtins.c (init_target_chars): New.
	(expand_builtin_printf, expand_builtin_fprintf,
	expand_builtin_sprintf, fold_builtin_sprintf,
	maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
	fold_builtin_snprintf_chk, fold_builtin_printf,
	fold_builtin_fprintf): Check for matching format strings using
	the target charset.

2005-11-29  Paul Brook  <paul@codesourcery.com>

	* config.gcc: Do not use fixproto on m68k-elf.

2005-11-28  Roger Sayle  <roger@eyesopen.com>

	* expmed.c (div_cost): Replace with...
	(sdiv_cost, udiv_cost): New.
	(init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
	Rename the div and mod fields, used to initialize sdiv_pow2_cheap
	and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
	(expand_divmod): Replace use of div_cost with either sdiv_cost
	or udiv_cost depending upon the signedness of the operation.

2005-11-28  Alexandre Oliva  <aoliva@redhat.com>

	PR libfortran/24991
	* config/darwin.c (machopic_indirection_name,
	machopic_output_indirection): Follow transparent alias chain.

2005-11-28  Alexandre Oliva  <aoliva@redhat.com>

	* varasm.c (ultimate_transparent_alias_target): Add comment.

2005-11-28  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
	SET_SRC instead of XEXP where appropriate.

2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>

	* config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
	__builtin_expect.

2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>

	* config/fp-bit.h (LSHIFT): Take shift count parameter.
	* config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
	bit at a time.

2005-11-28  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (bfin_secondary_reload): Renamed from
	secondary_input_reload_class, made static.  Adapt to new
	infrastructure.
	(secondary_output_reload_class): Delete.
	(TARGET_SECONDARY_RELOAD): New macro.
	* config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
	SECONDARY_OUTPUT_RELOAD_CLASS): Delete.

2005-11-28  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/21166
	* c-decl.c (finish_struct): Only set DECL_PACKED on a field
	when its natural alignment is > BITS_PER_UNIT.
	* stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
	* c-common.c (handle_packed_attribute): Ignore packing on a field
	whose type is naturally char aligned.

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

	* c-common.c (strict_aliasing_warning): Handle all
	component-ref like accesses.

2005-11-28  Roger Sayle  <roger@eyesopen.com>
	    Uros Bizjak  <uros@kss-loka.si>

	PR middle-end/20219
	* fold-const.c (fold binary) <RDIV_EXPR>: Optimize
	sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
	when flag_unsafe_math_optimizations is set and
	we don't care about NaNs or Infinities.

	Move x/expN(y) and x/pow(y,z) transformation into common
	flag_unsafe_math_optimizations section.

2005-11-27  Mark Mitchell  <mark@codesourcery.com>

	* gcc.c (main): Change type of argv to "char **".

2005-11-28  Alan Modra  <amodra@bigpond.net.au>

	* doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
	small data sections.
	* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
	* config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
	* config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm.  Don't
	output locals to sbss if !rs6000_elf_in_small_data_p.
	(ASM_OUTPUT_ALIGNED_BSS): Adjust for above.

2005-11-28  Alan Modra  <amodra@bigpond.net.au>

	PR target/24997
	* config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
	generated by reload.
	* config/rs6000/predicates.md (indexed_or_indirect_operand): Use
	indexed_or_indirect_address.
	(indexed_or_indirect_address): Don't test for base reg.  Call
	address_operand last.  Make it a special predicate.

2005-11-27  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.c (notice_update_cc): Remove useless code.

2005-11-27  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/24575
	* fold-const.c (negate_expr_p): Add case for signed divides if overflow
	is undefined.
	(negate_expr): Likewise.

2005-11-27  Andreas Schwab  <schwab@suse.de>

	* config/m68k/m68k.c: Reindent and fix whitespace, remove
	redundant parens.

2005-11-27  Steven Bosscher  <stevenb@suse.de>

	* cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
	has EH predecessor edges.

2005-11-26  Eric Christopher  <echristo@apple.com>

	* config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
	register stalls by zero extending to the full register.

2005-11-27  Joseph S. Myers  <joseph@codesourcery.com>

	* config/floatunsisf.c, config/floatunsidf.c,
	config/floatunsixf.c, config/floatunsitf.c: New files.
	* config/ia64/t-hpux: Add floatunsitf.c.
	* config/ia64/ia64.c (ia64_init_libfuncs): Use
	_U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.

2005-11-26  Richard Henderson  <rth@redhat.com>

	* c-lex.c (pragma_lex): Rename from c_lex.
	* c-pch.c: Update for pragma_lex rename.
	* c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
	* config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
	* config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
	* config/sol2-c.c, config/v850/v850-c.c: Likewise.
	* doc/tm.texi: Likewise.

2005-11-26  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/23669
	* fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
	when overflow is undefined.

2005-11-26  Hans-Peter Nilsson  <hp@axis.com>

	* doc/md.texi (Insn Canonicalizations): Refer to the
	function commutative_operand_precedence for further rules.

2005-11-25  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/21309
	* expmed.c (choose_mult_variant): Return immediately when mult_cost
	is less than zero.  Limit mult_cost to a reasonable upper bound for
	the synthetic multiplication sequence.

2005-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR middle-end/25022
	* builtins.c (expand_builtin_printf, expand_builtin_fprintf,
	fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
	Lookup the explicit replacement functions for any unlocked
	stdio builtin transformations.

2005-11-25  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as
	earlyclobber.
	* targhooks.c (default_secondary_reload): Don't require operand 2
	for an input reload to be earlyclobber.

2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* fold-const.c (negate_mathfn_p): Fix comment and add support
	for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH,
	BUILT_IN_ATANH.

2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>

	PR middle-end/24998
	* config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and
	_Q_ulltoq for unsigned conversions from SImode and DImode to
	TFmode.

2005-11-25  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/ppc64-fp.c (__floatunditf): New function.
	(__floatundidf, __floatundisf): Likewise.

2005-11-25  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
	(rs6000_override_options): Remove initialization of
	rs6000_sr_alias_set.
	(rs6000_emit_eh_reg_restore): Use gen_frame_mem.
	(rs6000_emit_stack_tie): Same.
	(emit_frame_save): Same.
	(gen_frame_mem_offset): Same.
	(rs6000_emit_prologue): Same.
	(rs6000_emit_epilogue): Same.

2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/24989
	* fold-const.c (fold_build): Convert bool_var != 1 and
	bool_var == 0 to !bool_var.

2005-11-25  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/24990
	* fold-const.c (fold_binary): Fold (~a) == C to a == ~C
	for C being INTEGER_CST.  Likewise for !=.

2005-11-25  Joseph S. Myers  <joseph@codesourcery.com>

	PR middle-end/24998
	* config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
	unsigned conversions from SImode to TFmode.

2005-11-24  Bernd Schmidt  <bernd.schmidt@analog.com>

	* expr.c (expand_expr_real_1): Fix error in last change.

2005-11-24  J"orn Rennecke <joern.rennecke@st.com>

	* caller-save.c: (this_insn_sets): Move into:
	(save_call_clobbered_regs).
	(mark_set_regs): Get this_insn_sets from data.

	(save_call_clobbered_regs): Take sets of the return value by
	sibcalls into account.

2005-11-24  J"orn Rennecke <joern.rennecke@st.com>
	PR target/21623:

	* regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
	SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
	(init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
	(memory_move_secondary_cost, init_reg_autoinc): Remove
	SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
	Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
	secondary_reload_class call.
	(copy_cost): Likewise.  Add new parameter prev_sri.  Changed all
	callers.
	* reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
	(push_secondary_reload): Use secondary_reload target hook.
	(secondary_reload_class, scratch_reload_class): New functions.
	(push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
	SECONDARY_OUTPUT_RELOAD_CLASS tests.  Replace
	SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
	* reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
	(secondary_reload_class, scratch_reload_class): Declare.
	* reload1.c: Include target.h.
	(reload_adjust_reg_for_temp): New function.
	(reload_adjust_reg_for_icode): Likewise.
	(choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
	Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
	call.
	(emit_input_reload_insns): Likewise.  Rewrite secondary reload checks
	for inheritance.  Support case when both secondary & tertiary reloads
	are for intermediate registers.
	(emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
	with secondary_reload_class call.  Support case when both secondary
	& tertiary reloads are for intermediate registers.
	* target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
	(TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
	* target.h (secondary_reload_info): New struct / typedef.
	(struct gcc_target): New member secondary_reload.
	* targhooks.c Include reload.h, optabs.h and recog.h.
	(default_secondary_reload): New function.
	* targhooks.h (default_secondary_reload): Declare.
	* doc/tm.texi: Document secondary_reload target hook.  Update
	description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
	* doc/md.texi: Likewise.

	* sh-protos.h (sh_secondary_reload): Declare.
	* sh.c (TARGET_SECONDARY_RELOAD): Override.
	(sh_secondary_reload): New function.
	* sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
	(SECONDARY_INPUT_RELOAD_CLASS): Likewise.
	(HAVE_SECONDARY_RELOADS): Define.
	* sh.md (reload_indf): Rename to:
	(reload_indf__frn).
	(reload_outdf): Rename to:
	(reload_outdf__RnFRm).
	(reload_insf): Rename to:
	(reload_insf__frn).
	(reload_insi): Rename to:
	(reload_insi__i_fpul).

2005-11-24  Uros Bizjak  <uros@kss-loka.si>

	* configure.ac: Require at least texinfo 4.4.
	* configure: Regenerate.

	* doc/install.texi (Tools/packages necessary for building GCC):
	Update required version of texinfo to at least 4.4.
	(Installing GCC: Building): Update required version of texinfo
	to at least 4.4.
	(Installing GCC: Final installation): Update required version
	of texi2dvi to at least 4.4.
	(Host/target specific installation notes for GCC): Update required
	version of texinfo to at least 4.4.

2005-11-24  Richard Guenther  <rguenther@suse.de>
	Dirk Mueller <dmueller@suse.de>

	PR c++/14024
	* c-common.h (strict_aliasing_warning): Declare.
	* c-common.c (strict_aliasing_warning): New function,
	split out from ...
	* c-typeck.c (build_c_cast): ... here.

2005-11-24  Paolo Bonzini  <bonzini@gnu.org>

	* optabs.c (expand_binop): Use swap_commutative_operands_with_target
	to order operands.
	(swap_commutative_operands_with_target): New.

2005-11-24  Paolo Bonzini  <bonzini@gnu.org>

	* gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
	also when doing PRE, rather than only for global CPROP.

2005-11-24  Ben Elliston  <bje@au.ibm.com>

	* machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
	* optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
	formatting.
	(expand_twoval_unop): Likewise.
	(widen_clz): Likewise.
	(expand_parity): Likewise.
	(expand_unop): Likewise.
	(emit_cmp_and_jmp_insn_1): Likewise.
	(prepare_float_lib_cmp): Likewise.

2005-11-24  Ben Elliston  <bje@au.ibm.com>

	* optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
	Remove unused `class' variable.

2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/21667
	* c-typeck.c (build_array_ref): Avoid code duplicate.  Use common
	C/C++ diagnostic function warn_array_subscript_with_type_char.
	* c-common.h (warn_array_subscript_with_type_char): Declare.
	* c-common.c (warn_array_subscript_with_type_char): Define.

2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c/21668
	* c-decl.c (grokdeclarator): Don't warn for 'extern const' when
	compiling at the intersection of C and C++.

2005-11-23  Mark Mitchell  <mark@codesourcery.com>

	* doc/invoke.texi: For man pages, include gcc-vers.texi.
	List @file in the option summary.  Include the libiberty
	documentation for @file.
	* gcc.c (main): Call expandargv.
	* Makefile.in (gcc-vers.texi): Define srcdir.

2005-11-23  Diego Novillo  <dnovillo@redhat.com>

	* passes.c (init_optimization_passes): Document
	sequencing of passes.

2005-11-23  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/predicates.md (pcrel_address, extend_operator,
	post_inc_operand, pre_dec_operand): Remove redundant
	conditionals.
	(const_uint32_operand, const_sint32_operand): Use gcc_assert
	instead of abort.
	(valid_dbcc_comparison_p): Rewrite in the lisp style.

2005-11-23  Ben Elliston  <bje@au.ibm.com>

	* dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.

2005-11-22  J"orn Rennecke <joern.rennecke@st.com>

	Preparatory work for PR target/21623:
	* alpha.c (secondary_reload_class): Rename to:
	(alpha_secondary_reload_class).
	* alpha.h, alpha-protos.h: Likewise.
	* mn10300.c (secondary_reload_class): Rename to:
	(mn10300_secondary_reload_class).
	* mn10300.h, mn10300-protos.h: Likewise.
	* pa.c (secondary_reload_class): Rename to:
	(pa_secondary_reload_class).
	* pa.h, pa-protos.h: Likewise.
	* rs6000.c (secondary_reload_class): Rename to:
	rs6000_secondary_reload_class.
	* rs6000.h, rs6000-protos.h: Likewise.

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

	PR middle-end/22561
	* tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.

2005-11-22  Ian Lance Taylor  <ian@airs.com>

	* optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
	a mode_class.
	(prepare_cmp_insn): Likewise.

2005-11-22  Kazu Hirata  <kazu@codesourcery.com>

	PR target/23435
	* m68k.md (zero_extendsidi2): Force operands[1] to a register
	if both operands[0] and operands[1] are memory.

2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/23606
	* fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
	COMPARISON_CLASS_P and an integral types create create a new
	expression with the new type and fold that.

2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/24988
	* config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
	to SUBTARGET_OS_CPP_BUILTINS.

2005-11-22  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.c (emit_set_insn): New function.
	(arm_split_constant): Call it.
	(arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
	(arm_legitimize_address): Likewise.  Use plus_constant.
	(arm_expand_prologue): Likewise.  Use VOIDmode in SET.
	(thumb_expand_prologue): Likewise.
	(arm_gen_load_multiple): Use VOIDmode in SET.
	(arm_gen_store_multiple): Likewise.
	(vfp_emit_fstmx): Likewise.  Use plus_constant.
	(emit_multi_reg_push): Likewise.
	(emit_sfm): Use plus_constant.

2005-11-23  Alan Modra  <amodra@bigpond.net.au>

	PR target/24954
	* config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
	typo last change.

2005-11-22  Alan Modra  <amodra@bigpond.net.au>

	PR middle-end/24950
	* expmed.c (store_bit_field): Don't attempt to insv a field
	larger than the reg.

2005-11-22  Alan Modra  <amodra@bigpond.net.au>

	PR target/24954
	* config/rs6000/predicated.md (easy_vector_constant_add_self): Use
	explicit sign extension, not a (char) cast.

2005-11-22  Ben Elliston  <bje@au.ibm.com>

	* optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
	GET_MODE_CLASS (x) == MODE_FLOAT.
	* config/i386/i386.c: Likewise.
	* config/rs6000/xcoff.h: Likewise.
	* config/rs6000/linux64.h: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/rs6000/predicates.md: Likewise.
	* config/rs6000/sysv4.h: Likewise.

2005-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
	flag_pic is set.

	* config/alpha/freebsd.h, config/alpha/linux.h,
	config/arm/linux-elf.h, config/bfin/bfin.h,
	config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
	config/i386/beos-elf.h, config/i386/gnu.h,
	config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
	config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
	config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
	config/rs6000/linux64.h, config/rs6000/sysv4.h,
	config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
	config/sh/linux.h, config/sh/sh.h, config/sol2.h,
	config/sparc/linux.h, config/sparc/linux64.h,
	config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.

	* doc/invoke.texi: Document that the macros __pic__ and __PIC__
	are both defined when either flag -fpic or -fPIC are used.

2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>

	* config/fp-bit.c (clzusi): New function.
	(si_to_float, usi_to_float): Use it to compute proper shift.
	(usi_to_float): Preserve guard bits when shifting right.
	* libgcc-std.ver (GCC_4.2.0): New version.
	* libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
	__floatundisf): New functions.
	* libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
	__floatundisf): Declare.
	* mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
	_floatundixf, and _floatunditf.
	* optabs.c (expand_float): If target does not define a pattern for
	signed or unsigned conversion, use an unsigned libcall instead of
	a signed one.
	(init_optabs): Initialize ufloat_optab.

2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>

	* config/rs6000/rs6000.opt (mmulhw): New option.
	* doc/invoke.texi (-mmulhw): Document.
	* config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
	for 405 and 440.
	* config/rs6000/rs6000.md: Add half-word multiply and
	multiply-accumulate instructions for 405 and 440.

2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>

	* config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
	which matches behavior of gcc 4.0 and older for RTEMS targets.  The
	default now includes a linker group which makes the RTEMS one nest.

2005-11-22  Ben Elliston  <bje@au.ibm.com>

	* cse.c (fold_rtx): Typo fix.
	(find_comparison_args): Pass the mode of arg1, not arg1 itself.

2005-11-21  Richard Henderson  <rth@redhat.com>

	* c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
	langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.

	* c-tree.h (lookup_name): Move declaration ...
	* c-common.h (lookup_name): ... here.
	* config/darwin-c.c: Include c-common.h.
	* config/t-darwin: Update dependencies.

2005-11-22  Ben Elliston  <bje@au.ibm.com>

	* optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
	explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
	* genopinit.c (gen_insn): Likewise.
	* reload.c (find_equiv_reg): Likewise.
	* loop.c (load_mems): Likewise.
	* rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
	* cse.c (find_comparison_args, fold_rtx): Likewise.
	* dwarf2out.c (add_const_value_attribute): Likewise.
	* expr.c (convert_move): Likewise.
	* recog.c (general_operand, register_operand): Likewise.
	* reg-stack.c (replace_reg): Likewise.
	* tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
	* c-common.c (handle_vector_size_attribute): Likewise.
	* simplify-rtx.c (simplify_const_unary_operation): Likewise.
	(simplify_binary_operation_1): Likewise.
	(simplify_const_binary_operation): Likewise.
	(simplify_relational_operation): Likewise.
	(simplify_const_relational_operation): Likewise.
	(simplify_immed_subreg): Likewise.
	* emit-rtl.c (gen_lowpart_common): Likewise.
	* expmed.c (expand_mult): Likewise.
	* stor-layout.c (layout_type): Likewise.

2005-11-21  Paolo Bonzini  <bonzini@gnu.org>

	PR target/24951
	* config/rs6000/rs6000.c (output_vec_const_move): Load cst and
	cst2 only for SPE vectors.

2005-11-21  David Edelsohn  <edelsohn@gnu.org>

	PR target/24953
	* config/rs6000/predicates.md (vrsave_operation): Check
	UNSPEC_VOLATILE value.

2005-11-21  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/24653
	* tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.

2005-11-21  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/predicates.md (ax_reg_operand): New predicate.
	(memory_displacement_only_operand): New predicate.
	* config/i386/i386.md ("modrm" attribute): Return 0 if one
	operand is AX register and the other operand is memory operand
	with displacement only.

2005-11-21  Uros Bizjak  <uros@kss-loka.si>

	* fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
	if we don't care about NaNs or Infinities.

2005-11-20  Ian Lance Taylor  <ian@airs.com>

	PR rtl-optimization/24883
	* combine.c (combinable_i3pat): When checking whether the
	destination of i3 is used in i3, consider paradoxical subregs.

2005-11-21  Kazu Hirata  <kazu@codesourcery.com>

	PR middle-end/20583
	* cse.c (cse_insn): Reject invalid forms of CONST earlier.

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

	* combine.c (try_combine): Do not run subst on i1src and i2src in
	the case of generating a PARALLEL for a comparison.

2005-11-20  Richard Henderson  <rth@redhat.com>

	PR 24931
	* tree-sra.c (struct sra_elt): Add all_no_warning.
	(struct sra_walk_fns) <use>: Add use_all argument.
	(sra_walk_expr): Pass it.
	(sra_walk_modify_expr): Likewise.
	(scalarize_ldst): Likewise.
	(scan_use): Update for new argument.
	(mark_no_warning): New.
	(scalarize_use): Use it.

2005-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>

	* expr.c (expand_expr_real): Use usmul_optab for widening
	signed * unsigned multiplies.
	* genopinit.c (optabs): Add usmul_widen_optab.
	* optabs.c (init_optabs): Likewise.
	* optabs.h (enum optab_index): Add OTI_usmul_widen.
	(usmul_widen_optab): Define.
	* config/bfin/bfin.md (usmulhisi3): New pattern.

	* doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.

2005-11-20  Graham Stott <btinternet.com>

	* gensupport.c (std_preds): Fixed extraneous `false` in last change.

2005-11-20  Andreas Schwab  <schwab@suse.de>

	PR target/24757
	* config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
	insn.

2005-11-19  Richard Henderson  <rth@redhat.com>

	PR tree-opt/24665
	* tree-gimple.c (is_gimple_id): Export.
	* tree-gimple.h (is_gimple_id): Declare.
	* tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
	(get_default_value): Use it.
	(maybe_fold_stmt_indirect): Likewise.

2005-11-19  James A. Morrison  <phython@gcc.gnu.org>

	* tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
	than VR1 or vice-versa.

2005-11-19  Hans-Peter Nilsson  <hp@axis.com>

	PR middle-end/24912
	PR middle-end/24750
	* reload.c (find_reloads_address_1): Mention dependency on
	gen_reload.
	* reload1.c (gen_reload): For IN with an unary operation, try
	moving inner expression to OUT if trivial SET is not valid.
	Confirm that the result is valid.  Move common code block into...
	(emit_insn_if_valid_for_reload): New function.

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

	* fold-const.c (fold_indirect_ref_1): Make sure we fold
	ARRAY_REFs of constant strings.

2005-11-19  Jakub Jelinek  <jakub@redhat.com>

	* gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
	fatal format string.

2005-11-19  Joseph S. Myers  <joseph@codesourcery.com>

	* combine.c (make_compound_operation): Swap operands of
	commutative operation if necessary before returning.

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

	PR middle-end/23294
	* fold-const.c (fold_plusminus_mult_expr): New function.
	(fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
	cases, remove now unnecessary code.

2005-11-19  Paolo Bonzini  <bonzini@gcc.gnu.org>

	* gensupport.c (old_preds): Rename to std_preds, add special field.
	(struct old_pred_table): Rename to struct std_pred_table, add special
	field.
	(NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
	(NUM_OLD_SPECIAL_MODE_PREDS): Remove.
	(init_predicate_table): Adjust, and set along the way whether a
	predicate is special.

2005-11-18  Mark Mitchell  <mark@codesourcery.com>

	* BASE-VER: Change to 4.2.0.

2005-11-18  James E Wilson  <wilson@specifix.com>

	* builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
	returning it.

2005-11-18  Mike Stump  <mrs@apple.com>

	* c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
	* config/darwin-c.c (darwin_pragma_unused): Likewise.
	* c-decl.c (lookup_name_two) Remove.
	* c-tree.h (lookup_name_two): Remove.
	* c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
	* langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
	(LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
	* langhooks.h (lang_hooks_for_decls): Add lookup_name.

2005-11-18  Richard Earnshaw  <richard.earnshaw@arm.com>

	PR target/24914
	* arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
	when not generating code to use that co-processor.

2005-11-18  James A. Morrison  <phython@gcc.gnu.org>

	* tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
	add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
	these functions are now in tree-phinodes.c.

2005-11-18  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/bfin.md (trap): New pattern.

2005-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
	on types.

	* expr.c (expand_expr_real): Don't call record_block_change unless
	ib_boundaries_block is non-null

	* postreload.c (reload_cse_move2add): Don't try to work with BImode.

	* fold-const.c (build_range_check): Use proper type for subtraction
	when merging lower bound.

2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>

	PR rtl-optimization/24497
	* loop-unroll.c (apply_opt_in_copies): Do not verify equality of
	the copied insn.

2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-scalar-evolution.c (expression_expensive_p): New function.
	(scev_const_prop): Use compute_overall_effect_of_inner_loop.

2005-11-18  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/crtlibid.s: New file.

2005-11-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/24348
	* config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config
	when not using sjlj exceptions.
	* config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links.
	* config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
	* config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define.
	* config/pa/linux-unwind.h (pa32_fallback_frame_state): Use
	DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column.
	* config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define.
	* config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX,
	DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT,
	ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines.
	* config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete.
	(FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX,
	DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN,
	ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New
	defines.
	* config/pa/hpux-unwind.h: New file.

2005-11-17  Alexandre Oliva  <aoliva@redhat.com>

	* config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
	* defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
	* varasm.c (do_assemble_alias): Adjust call.
	(weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
	is defined.
	* doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.

2005-11-17  James E Wilson  <wilson@specifix.com>

	* tree.def (FUNCTION_DECL): Correct typo in comment.

2005-11-17  Richard Henderson  <rth@redhat.com>

	* dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
	(lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
	and DW_CFA_def_cfa_sf.
	(def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
	(dbx_reg_number): Don't assert particular registers here.
	(based_loc_descr): ... do it here instead.  Fold in ...
	(eliminate_reg_to_offset): ... this function.
	(compute_frame_pointer_to_cfa_displacement): Fold in the effects
	of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
	* unwind-dw2.c (execute_cfa_program): Apply data align factor
	to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
	* function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
	(instantiate_virtual_regs): Likewise.
	* var-tracking.c (adjust_stack_reference): Likewise.
	* doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.

2005-11-17  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
	* config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
	* config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
	crtlibid.o.
	($(T)crtlibid.o): New rule.

2005-11-16  Richard Guenther  <rguenther@suse.de>

	PR middle-end/24851
	* fold-const.c (extract_array_ref): Return byte offset
	in all cases.
	(fold_binary): Fold &x[a] CMP &x[b] to
	a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow
	behavior.

2005-11-16  Richard Henderson  <rth@redhat.com>

	PR middle-end/23497
	* tree-ssa.c (warn_uninitialized_var): Skip real and imaginary
	parts of an SSA_NAME.

2005-11-16  Richard Earnshaw  <richard.earnshaw@arm.com>

	PR target/24861
	* arm.md (split for movsf with immediate): Restrict split to insns
	that set a general register.

2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/ia64/unwind-ia64.c (uw_advance_context): New.  Call
	uw_update_context.
	* unwind-dw2.c (uw_advance_context): Likewise.
	* unwind-sjlj.c (uw_advance_context): Likewise.  Also call
	_Unwind_SjLj_Unregister.
	* unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context.

2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case.

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

	* config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode
	langhook to get a DImode integer type.

2005-11-16  Richard Henderson  <rth@redhat.com>
	    J"orn Rennecke <joern.rennecke@st.com>
	    Ulrich Weigand  <uweigand@de.ibm.com>

	PR rtl-opt/24160
	PR target/24621
	* reload1.c (reg_equiv_invariant): New.
	(reload): Allocate, initialize, and free it.
	(calculate_needs_all_insns): Check it when skipping equivalence
	setting insns.
	(alter_reg): Likewise.
	(eliminate_regs_1): Rename from eliminate_regs.  Add new
	may_use_invariant argument; only use reg_equiv_invariant when true.
	(eliminate_regs): New.
	(eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in
	a context for which may_use_invariant may be true.

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

	* fold-const.c (const_binop): Don't constant fold the operation
	if the result has overflowed and flag_trapping_math.
	* simplify-rtx.c (simplify_const_binary_operation): Likewise.

2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/unwind-arm.c (abort): Add prototype here.
	(UCB_FORCED_STOP_ARG): Correct typo in macro argument.
	(struct phase1_vrs): Add prev_sp.
	(unwind_phase2_forced): Save the original core registers instead of
	modifying entry_vrs.  Take a new flag argument for resuming unwinding
	and set action flags accordingly.  Always set _US_END_OF_STACK when
	get_eit_entry fails.  Unwind before calling the stop function.
	(_Unwind_GetCFA): New function.
	(__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
	(__gnu_Unwind_Resume_or_Rethrow): Likewise.
	(__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
	just call unwind_phase2_forced.
	(_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
	* config/arm/unwind-arm.h (abort): Remove prototype.
	(_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
	prototypes.
	(_Unwind_GetCFA): New prototype.
	* config/arm/pr-support.c (abort): Add prototype here.
	* unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
	forced unwinding.
	* config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
	not schedule the prologue with non-call exceptions and EABI.

2005-11-16  Nathan Sidwell  <nathan@codesourcery.com>

	* config/arm/unwind-arm.h: Reorder interface function declarations.
	(_URC_END_OF_STACK): New enumeration value.
	(_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
	(struct _Unwind_Control_Block): Document reserved field use.
	(_Unwind_Stop_Fn): New typedef.
	(_Unwind_ForcedUnwind): Declare.
	(_Unwind_Resume_or_Rethrow): Declare.
	* config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
	argument.  Adjust.
	(_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
	* config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
	(UCB_FORCED_STOP_ARG): New.
	(search_EIT_table): Update boundary condition checks.
	(get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
	(unwind_phase2): Replace for with do..while.
	(unwind_phase2_forced): New.
	(__gnu_Unwind_RaiseException): Replace for with do..while.
	(__gnu_Unwind_ForcedUnwind): New.
	(__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
	Use appropriate phase2 unwinder.
	(__gnu_Unwind_Resume_or_Rethrow): New.
	(__gnu_unwind_pr_common): Cope with forced unwinding.

2005-11-16  David Edelsohn  <edelsohn@gnu.org>

	PR target/24772
	* config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC.

	* config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2,
	roundsf2): Remove "s" from mnemonic.

2005-11-16  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/crti.s (__init, __fini): Use appropriate prologue if
	__PIC__ is defined.
	* config/bfin/crtn.s: Change epilogues to match.
	* config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
	* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
	__PIC__ and __pic__.

2005-11-16  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>

	PR 24357
	* doc/invoke.texi: Distinguish between free and fixed form instead of
	Fortran and Fortran 90/95.  Remove ratfor from the list of supported
	languages.
	* gcc.c (default_compilers): Remove double entries, add entries for
	suffixes '.F90' and '.F95'.

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

	* config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug
	in the stack probing loop.

2005-11-15  David Edelsohn  <edelsohn@gnu.org>

	* configure.ac: Use .machine power5 not power5x.
	* configure: Regenerate.

2005-11-15  Mike Stump  <mrs@apple.com>

	* c-decl.c (lookup_name_two): Add.
	* c-tree.h (lookup_name_two): Likewise.
	* c-common.c (handle_cleanup_attribute): Use lookup_name_two instead.
	* config/darwin-c.c (darwin_pragma_unused): Likewise.

2005-11-16  Alan Modra  <amodra@bigpond.net.au>

	PR rtl-optimization/23392
	* regrename.c (enum scan_actions) Add mark_access.
	(scan_actions_name): Ditto.
	(scan_rtx_reg): Handle mark_access.
	(scan_rtx_address): Do nothing for mark_access.
	(build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
	and regs in REG_INC notes before closing chains for dead regs.
	Mark destination regs in REG_FRAME_RELATED_EXPR notes after
	opening chains for new writes.

2005-11-15  David Edelsohn  <edelsohn@gnu.org>

	* c.opt (ffixed-line-length-none): New.

2005-11-15  Steve Ellcey  <sje@cup.hp.com>

	* mklibgcc.in: Change contents of eh_dummy.c.

2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* loop.c (scan_loop): Do not insert temporaries for hard registers.

2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
	of making syscalls.
	* config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define.  Set r7 also.

2005-11-15  Jan Hubicka  <jh@suse.cz>

	* invoke.texi (large-unit-insns): Document.
	* ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
	* params.def (large-unit-insns): New param.

2005-11-15  Hans-Peter Nilsson  <hp@axis.com>

	PR target/24869
	* config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
	special register for operand 3.  Reindent constraints to align
	them vertically.

2005-11-14  David Edelsohn  <edelsohn@gnu.org>

	* doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
	-mpopcntb, -mfprnd. Add -mcpu=power5+.
	* configure.ac: Add test for FP rounding instructions.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
	_ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
	features enabled.
	* config/rs6000/rs6000.opt (mfprnd): New.
	* config/rs6000/rs6000.c (processor_target_table): Add power5+.
	(POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
	* config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
	(TARGET_FPRND): New.
	* config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
	UNSPEC_FRIZ): New.
	(btrunc<mode>2): New.
	(ceil<mode>2): New.
	(floor<mode>2): New.
	(round<mode>2): New.

2005-11-14  Geoffrey Keating  <geoffk@apple.com>

	* gcc.c (version_compare_spec_function): Use fatal() rather than
	abort().

	* config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
	(SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
	* config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
	as empty.
	* config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
	link in crt2.o.

	* config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
	on -mmacosx-version-min setting.

2005-11-14  Diego Novillo  <dnovillo@redhat.com>

	PR 24840
	* tree-vrp.c (infer_value_range): Return false if STMT is a
	block terminator and its basic block has no successors.

2005-11-14  Mike Stump  <mrs@apple.com>

	* config/i386/i386.c (override_options): -masm=intel isn't
	supported on darwin.
	* doc/invoke.texi (i386 and x86-64 Options): Likewise.

2005-11-15  Joseph S. Myers  <joseph@codesourcery.com>

	* crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
	vfork after including auto-host.h.

2005-11-15  Alan Modra  <amodra@bigpond.net.au>

	PR rtl-optimization/22002
	* combine.c (distribute_notes): Detect cases where a reg dies
	two or more times in a bb, including on the insn we are combining,
	and place the death note on the correct range.

2005-11-14  Dale Johannesen  <dalej@apple.com>

	* expmed.c (store_bit_field): Add offset unconditionally for
	memory targets.
	(extract_bit_field): Don't force extzv or extv operand into
	a register if field is too big.

2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/arm.c (pic_labelno): New.
	(arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
	LABEL_REF.  Pass only the labelno to PIC insns.
	(arm_call_tls_get_addr, legitimize_tls_address): Likewise.
	(arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
	* arm.md (UNSPEC_PIC_LABEL): New constant.
	(pic_add_dot_plus_four, pic_add_dot_plus_eight)
	(tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
	Use the correct label prefix.

2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/arm.c (legitimize_tls_address): Use correct rtx for
	REQ_EQUIV note.

2005-11-14  Richard Earnshaw  <richard.earnshaw@arm.com>

	* loop-invariant.c: Include tm_p.h.
	* Makefile.in: Updated.

2005-11-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (store_reg): Revise generation of frame notes in large frames.
	(set_reg_plus_d): Likewise.

2005-11-13  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/24709
	* tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
	loop check.

2005-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
	and duplicate declaration of pthread_self.

2005-11-13  Eric Botcazou  <ebotcazou@adacore.com>
	    Ian Lance Taylor  <ian@airs.com>

	PR middle-end/24003
	* calls.c (expand_call): If TARGET is a MEM and some part of the
	argument area has been saved, force TARGET to a register.

2005-11-13  Razya Ladelsky <razya@il.ibm.com>

	* ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type
	checking.

2005-11-13  Jason Merrill  <jason@redhat.com>

	PR c++/22489
	* dwarf2out.c (gen_subprogram_die): Force a declaration die for
	lazily declared methods.
	(force_decl_die): Stop if forcing out the context already make a
	DIE for the decl.
	(force_type_die): Likewise.

2005-11-13  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/24820
	* builtins.c (integer_valued_real_p): Add break in
	REAL_CST having TREE_OVERFLOW set.

2005-11-13  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting
	addressing modes during calculation of costs.

2005-11-12  Eric Botcazou  <ebotcazou@adacore.com>

	* function.c (assign_stack_local_1): Restrict sanity check
	on frame size overflow to 32-bit and above platforms.

2005-11-12  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define.
	* config/cris/cris.c: Include reload.h.
	(cris_initial_elimination_offset): New function.
	* config/cris/cris-protos.h: (cris_initial_elimination_offset):
	Prototype.

2005-11-12  Richard Guenther  <rguenther@suse.de>

	* gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table.

2005-11-12  Jan Hubicka  <jh@suse.cz>

	* expr.c (expand_expr_real_1): <MAX_EXPR, MIN_EXPR>: Canonicalize
	to compare against 0 when possible.

2005-11-12  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
	HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
	REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
	* config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
	in the new order.

2005-11-12  Hans-Peter Nilsson  <hp@axis.com>

	* recog.c (constrain_operands) <case 'g'>: For a match, require
	that a non-register matches general_operand when strict >= 0.

2005-11-11  Steven Bosscher  <stevenb@suse.de>

	* loop-invariant.c (move_loop_invariants): Fix a thinko in the
	previous checkin.

2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same)
	(memory_address_same): New.
	(dse_optimize_stmt): Call memory_address_same.

2005-11-12  Hans-Peter Nilsson  <hp@axis.com>

	PR middle-end/24750
	* reload.c (find_reloads_address_1) <case TRUNCATE, SIGN_EXTEND,
	ZERO_EXTEND>: New cases.

2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* longlong.h (__clz_tab): Always provide.

2005-11-11  Steven Bosscher  <stevenb@suse.de>

	PR 24265
	* loop-invariant.c (may_assign_reg_p): Make sure a hard register
	can be assigned to.
	(find_invariant_insn): Do the cheapest check, may_assign_reg_p,
	before check_maybe_invariant.
	(move_invariant_reg): Use gen_move_insn instead of replacing
	SET_DEST with the temporary for the invariant.
	(move_loop_invariants): If checking is enabled, do internal
	consistency checks after completing the pass.

2005-11-11  David Edelsohn  <edelsohn@gnu.org>

	PR 24644
	* common.opt (Wvolatile-register-var): New.
	* varasm.c (make_decl_rtl): Only emit warning when option
	specified.  Clarify warning message.
	* doc/invoke.texi (Wvolatile-register-var): Document new option.

	* doc/md.texi (copysign): Document standard named pattern.

2005-11-11  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
	bytes when align is 2.
	* config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
	by the first instruction of the loop.

2005-11-11  Jason Merrill  <jason@redhat.com>

	PR c++/24686
	* gimplify.c (gimplify_cleanup_point_expr): Also save and restore
	the cleanup list.

2005-11-11  Zdenek Dvorak  <dvorakz@suse.cz>

	PR rtl-optimization/22509
	* local-alloc.c (memref_used_between_p): Check whether a function call
	could not reference the memref.

2005-11-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* postreload.c (reload_cse_simplify_operands): Fix bug in sorting
	algorithm so as to choose the best, not the worst, alternative.
	Reset accumulated register class before processing next alternative.

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

	PR target/24445
	* calls.c (expand_call): Copy a return value to a plain register
	if needed.

2005-11-10  Alexandre Oliva  <aoliva@redhat.com>

	PR target/24778
	* varasm.c (assemble_name): Recompute name only for transparent
	aliases.

2005-11-10  Hans-Peter Nilsson  <hp@axis.com>

	* tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.

2005-11-04  Jeff Law  <law@redhat.com>

	PR middle-end/23181
	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
	perform reassociation if the parent statement will not die as
	a result of the optimization.

2005-11-10  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-alias.c (compute_may_aliases): Remove call to
	delete_old_heap_vars.
	* tree-dfa.c (referenced_var_remove): Remove function.
	* tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
	(delete_tree_ssa): Remove call to delete_old_heapvars.
	Add call to delete_alias_heapvars.
	* tree-flow.h (referenced_var_remove): Remove prototype
	(init_alias_heapvars): New prototype.
	(delete_alias_heapvars): Ditto.
	* Makefile.in (tree-ssa-structalias.o): Add
	gt-tree-ssa-structalias.o
	(GTFILES): Add tree-ssa-structalias.h and
	tree-ssa-structalias.c.
	(s-gtype): Add gt-tree-ssa-structalias.h.
	* tree-ssa-structalias.c (heapvars): Remove.
	(oldheapvars): Remove.
	(heapvar_for_stmt): New variable.
	(heapvar_lookup): New function.
	(heapvar_insert): Ditto.
	(get_constraint_for): See if we have an old heapvar
	to reuse.
	(init_alias_heapvars): New function.
	(delete_alias_heapvars): Ditto.
	Add include of gt-tree-ssa-structalias.h.

2005-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR middle-end/22127
	* calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.

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

	* tree.c (int_fits_type_p): Only look at the base type
	if it has the same precision as the original type.

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

	PR other/4372
	* varasm.c (assemble_alias): Use %q+D in the error
	message instead of %J and %qD.

2005-11-10  Richard Guenther  <rguenther@suse.de>

	* gcse.c (free_ldst_entry): Only free hashtable if
	it exists.

2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>

	* function.c (assign_stack_local_1): Issue an error message if
	the frame size overflows in the signed target arithmetics.

2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (build_qualified_type): Chain the new type to the original
	type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
	a POINTER_TYPE or a REFERENCE_TYPE respectively.
	(build_pointer_type_for_mode): Only return unqualified types.
	(build_reference_type_for_mode): Likewise.

2005-11-09  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (gnucompare): Do comparison of all files using one of
	the chosen methods and only afterwards decide if just warning should
	be issued or comparison failure raised.

2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>

	* ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
	(noce_try_abs): Negate if the comparison is reversed.
	Look only one instruction backwards for a REG_EQUAL note.

2005-11-09  Alexandre Oliva  <aoliva@redhat.com>

	PR other/4372
	* gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
	gthr-tpf.h: Define __gthrw.  For all identifiers that might
	be weak, introduce weakrefs or non-weak aliases with __gthrw,
	and prefix all uses with __ghtrw.

2005-11-09  Alexandre Oliva  <aoliva@redhat.com>

	PR other/4372
	* tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
	(TREE_DEPRECATED): Adjust comment.  Check for a DECL.
	* c-common.c (handle_weakref_attribute): New.
	(c_common_attribute_table): Add weakref.
	* configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
	in the assembler.
	* configure, config.in: Rebuilt.
	* defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
	* doc/extend.texi: Document weakref attribute.
	* varasm.c (ultimate_transparent_alias_target): New
	(assemble_name): Use it.
	(weak_finish_1): Split out of...
	(weak_finish): ... and deal with weakrefs in...
	(weakref_targets): ... new list.
	(globalize_decl): Clean up weakref_targets.
	(do_assemble_alias): Handle weakrefs.
	(finish_aliases_1): Do not reject weakrefs to external symbols.
	(assemble_alias): Handle weakrefs.

2005-11-09  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/24716
	* tree-scalar-evolution.c (analyze_evolution_in_loop): Use
	t_bool to track results from follow_ssa_edge.

2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>

	* final.c (force_source_line): New global variable.
	(final_scan_insn): Set it to true instead of clearing last_filename.
	(notice_source_line): Return true if force_source_line is true,
	unless source info is absent.

2005-11-09  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c/24644
	* dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
	a linkage name for a variable if it a register variable.
	* c-decl.c (grokdeclarator): Global register variables
	should be set as PUBLIC.

2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>

	PR 24624
	* config/s390/s390.c (struct s390_frame_layout): New fields
	first_save_gpr_slot and last_save_gpr_slot.
	(cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,
	s390_emit_epilogue, s390_initial_elimination_offset): Replaced
	first_save_gpr and last_save_gpr with the _slot variants.
	(s390_register_info): Calculate first_save_gpr_slot and
	last_save_gpr_slot using regs_ever_live.

2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>

	PR 24623
	* config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
	for a function containing a landing pad.

2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>

	PR 24034
	* flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
	is live afterwards.

2005-11-08  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
	MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.

2005-11-09  Nathan Sidwell  <nathan@codesourcery.com>

	Add ms2 support
	* config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New
	constants.
	(call,load,store): New insn types.
	(mem_access, branch_access): Adjust reservation conditions.
	(define_delay): Adjust condition.
	(decrement_and_branch_until_zero): Allow for ms2.  Set branch
	type.
	(*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2.
	(*movqi_internal,*movsi_internal,*movsf_internal): Use load,store
	insn type.
	(call_internal, call_value_internal, return_internal,
	return_interrupt_internal, eh_return_internal, indirect_jump,
	tablejump): Set call insn type.
	(blockage, ei, di): Use appropriate unspec const.
	* config/ms1/ms1.c (ms1_flag_delayed_branch): New.
	(ms1_get_attr_type): Adjust to give load & store types.
	(ms1_final_prescan_insn): Adjust for new insn types.  Don't look
	backwards past a barrier.
	(ms1_override_options): Accept ms2 arch.  Copy and reset delayed
	branch scheduling.
	(struct branch_info, struct label_info): New.
	(ms1_labels): New.
	(ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New.
	(ms1_machine_reorg): New.
	(TARGET_MACHINE_DEPENDENT_REORG): Override.
	* config/ms1/crtn.asm: Add nop for ms2 JAL hazard.
	* config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2.
	(ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2.
	(TARGET_MS2): New.

2005-11-09  Per Bothner  <per@bothner.com>
	    Uros Bizjak  <uros@kss-loka.si>

	PR c/24101
	* toplev.c (process_options): Initialize debug_hooks early
	in case lang_hooks.post_options ends up calling a debug_hook.

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

	* dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
	DBX_REGISTER_NUMBER being contiguous.

2005-11-08  James A. Morrison  <phython@gcc.gnu.org>
	    Diego Novillo  <dnovillo@redhat.com>

	PR 23046
	* tree-vrp.c (register_edge_assert_for): Do not register
	always-false predicates.

2005-11-08  Devang Patel <dpatel@apple.com>

	PR tree-optimization/23115
	* tree-if-conv.c (find_phi_replacement_condition): Check domninated_by
	relation.

2005-11-08  Joseph S. Myers  <joseph@codesourcery.com>

	* config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include
	-mcpu=440.

2005-11-08  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/23382

	* tree-ssa-alias.c (compute_may_aliases): Call
	delete_old_heap_vars.
	* tree-dfa.c (referenced_var_remove): New function.
	* tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
	* tree-flow.h (referenced_var_remove): Add prototype.
	(delete_old_heap_vars): Ditto.
	* tree-ssa-structalias.c (heapvars): New variable.
	(oldheapvars): Ditto.
	(get_constraint_for): Put heap vars on heapvars list.
	(delete_old_heap_vars): New function.

2005-11-08  Jason Merrill  <jason@redhat.com>

	* tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.

2005-11-08  Uros Bizjak  <uros@kss-loka.si>

	PR target/19340
	* reg-stack.c (reg_to_stack): Update register liveness also
	for flag_sched2_use_traces.

2005-11-08  Alan Modra  <amodra@bigpond.net.au>

	PR target/23704
	* config/rs6000/rs6000.c (rs6000_handle_option <OPT_m64>): Don't
	override prior explicit -mno-powerpc-gfxopt.

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

	* expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns
	if the bitsize is zero.
	* doc/md.texi (Standard Pattern Names): Document it.

	* config/ia64/ia64.c (ia64_pass_by_reference): Delete.
	(TARGET_PASS_BY_REFERENCE): Likewise.

2005-11-07  Ian Lance Taylor  <ian@airs.com>

	PR rtl-optimization/24683
	* config/i386/i386.c (legitimize_pic_address): If constant operand
	to PLUS is too large, put it in a register.

2005-11-07  Jie Zhang  <jie.zhang@analog.com>

	* configure.ac: Enable checking assembler dwarf2 support for bfin
	target.
	* configure: Regenerate.

2005-11-07  Paolo Bonzini  <bonzini@gnu.org>

	PR target/24230

	* config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
	gen_easy_vector_constant_add_self): Delete.
	(vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
	New.
	(output_vec_const_move): Use gen_easy_altivec_constant.
	(rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
	* config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
	(easy_vector_constant_add_self): Rewritten.
	* config/rs6000/rs6000-protos.h (easy_vector_splat_const,
	easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
	(easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
	* config/rs6000/altivec.md (easy_vector_constant_add_self splitters):
	Macroize and adjust for the other changes.

2005-11-07  Paolo Bonzini  <bonzini@gnu.org>

	PR c/24599

	* c-typeck.c (build_c_cast): Try using a shared constant, and see
	if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.

2005-11-07  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/23567
	* ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
	(noce_process_if_block): Don't do any optimizations except
	if (cond) x = x; if !set_b and write into orig_x may trap
	or fault.  Remove the MEM_READONLY_P check.

2005-11-06  Diego Novillo  <dnovillo@redhat.com>

	PR 24670
	* tree-vrp.c (fix_equivalence_set): New.
	(extract_range_from_assert): Call it.

2005-11-05  Ian Lance Taylor  <ian@airs.com>

	PR target/22432
	* combine.c (apply_distributive_law): Don't distribute across a
	vector mode subreg.

2005-11-05  Kazu Hirata  <kazu@codesourcery.com>

	* c-typeck.c, config/i386/netware.h, config/m32c/cond.md,
	config/ms1/ms1.h, config/rs6000/predicates.md,
	config/s390/s390.c, params.def, postreload-gcse.c,
	tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c,
	tree-vrp.c, tree.c: Fix comment typos.
	* doc/invoke.texi: Fix typos.

2005-11-05  Sebastian Pop  <pop@cri.ensmp.fr>

	* lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
	for testing whether the data_dependence_relation contains distance
	vectors.  Iterate over all distance vectors of the ddr.
	* lambda.h: Define a vec of lambda_vector pointers.
	* tree-data-ref.c (dump_data_dependence_relation,
	dump_data_dependence_direction): Iterate over all distance and
	direction vectors of the ddr.
	(initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and
	DDR_DIST_VECTS.
	(build_classic_dist_vector, build_classic_dir_vector): Push a set
	of distance/direction vectors instead of a single one.
	* tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist
	lambda_vectors with a vec of lambda_vectors.
	(DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
	(DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
	DDR_NUM_DIST_VECTS): New.
	* tree-loop-linear.c (gather_interchange_stats): Test for the
	existence of distance vectors only after having checked that there
	is a dependence.  Iterate over all distance vectors of the ddr.
	(linear_transform_loops): Use dump_data_dependence_relation.
	* tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for
	distance vectors using DDR_NUM_DIST_VECTS.  Iterate over all the
	distance vectors of the ddr.

2005-11-05  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
	expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
	IS_INTHANDLER; all callers changed.
	(n_regs_saved_by_prologue): Take interrupt handler attributes into
	account.
	(do_link, do_unlink): New argument ALL; all callers changed.
	(expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
	If function isn't leaf, save and restore all registers.
	(bfin_function_ok_for_sibcall): Only true if not an interrupt or
	exception handler.

2005-11-05  Jan Hubicka  <jh@suse.cz>

	PR rtl-optimization/23490
	* doc/invoke.texi (max-predicted-iterations, max-cse-insns,
	max-flow-memory-location): Document.
	* flow.c: Include params.h
	(MAX_MEM_SET_LIST_LEN): Kill.
	(add_to_mem_set_list): Use new param.
	* cse.c (cse_basic_block): Replace 1000 by new param.
	* params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS,
	PARAM_MAX_FLOW_MEMORY_LOCATIONS): New.
	* predict.c (predict_loops): Use new param.
	* predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.

	* ipa-inline.c (cgraph_decide_inlining_of_small_function,
	cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
	Do not hold memory returned by cgraph_node_name across other call.

2005-11-04  Hans-Peter Nilsson  <hp@axis.com>

	PR target/23424
	* config/cris/predicates.md ("cris_bdap_sign_extend_operand"):
	Disable.

2005-11-04  Jeff Law  <law@redhat.com>

	PR/21883
	* doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
	* tree-ssa-dom.c: Include params.h.
	(thread_across_edge): If there are too many statements in the
	target block, then do not thread through it.
	* Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
	* params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.

2005-11-03  Diego Novillo  <dnovillo@redhat.com>

	PR 24627
	* tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use
	TODO_update_ssa instead of TODO_update_ssa_no_phi.

2005-11-04  Sebastian Pop  <pop@cri.ensmp.fr>

	PR/18595
	* tree-scalar-evolution.c (instantiate_parameters_1,
	instantiate_parameters, resolve_mixers): Compute the size of an
	expression to be instantiated and give up the instantiation if the
	size exceeds PARAM_SCEV_MAX_EXPR_SIZE.

2005-11-04  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (ref_contains_indirect_ref): Rename to
	array_ref_contains_indirect_ref.
	* tree-flow-inline.h (ref_contains_indirect_ref): Likewise.
	(array_ref_contains_indirect_ref): Make comment match the code
	and vice-versa.
	(ref_contains_array_ref): Likewise.
	* tree-ssa-structalias.c (find_func_aliases): Remove call to
	ref_contains_indirect_ref.
	* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
	Rename calls to ref_contains_indirect_ref.

2005-11-04 Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_load_pic_register): Pass extra reg to
	gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
	(arm_call_tls_get_addr, legitimize_tls_address): Likewise.
	* config/arm/arm.md: Use match_operand in peephole input templates
	and match_dup in peephole output templates.

2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and
	__aeabi_uidiv.

2005-11-04  Mark Mitchell  <mark@codesourcery.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* longlong.h (add_ssaaaa): Clobber condition code register
	in ARM version.
	(sub_ddmmss): Likewise.
	(umul_ppmm): Likewise.

2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
	    Paul Brook  <paul@codesourcery.com>
	    Phil Blundell  <pb@reciva.com>

	* configure.ac: Add test for ARM TLS support.
	* configure: Regenerated.
	* config/arm/arm-protos.h (legitimize_tls_address)
	(arm_tls_referenced_p, tls_mentioned_p)
	(arm_output_addr_const_extra): New prototypes.
	(thumb_legitimize_pic_address): Delete.
	* config/arm/arm.c: Include "gt-arm.h".
	(enum tls_reloc): New.
	(arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
	(pcrel_constant_p, get_tls_get_addr, arm_load_tp)
	(arm_call_tls_get_addr, legitimize_tls_address)
	(arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
	(arm_init_tls_builtins, arm_emit_tls_decoration)
	(arm_output_addr_const_extra): New functions.
	(TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
	(TARGET_HAVE_TLS): Define.
	(target_thread_pointer): New.
	(arm_override_options): Handle -mtp=.
	(legitimize_pic_address): Ignore UNSPECs.
	(arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
	relative symbols.
	(arm_legitimize_address, thumb_legitimize_address): Handle TLS.
	(tls_get_addr_libfunc): New variable.
	(symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
	(arm_init_builtins): Call arm_init_tls_builtins.
	(arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
	(arm_encode_section_info): Call default_encode_section_info.
	* config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
	(enum arm_tp_type): New.
	(target_thread_pointer): Add declaration.
	(LEGITIMATE_CONSTANT_P): Handle TLS.
	(LEGITIMATE_PIC_OPERAND_P): Handle TLS.
	(OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
	(enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
	* config/arm/arm.md: Add UNSPEC_TLS.
	(movsi): Handle TLS.
	(pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for
	non-PIC.
	(tls_load_dot_plus_eight): New insn and a peephole to create it.
	(load_tp_hard, load_tp_soft): New insns.
	* arm.opt: Add -mtp=.
	* doc/invoke.texi (ARM Options): Document -mtp.

2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/lib1funcs.asm: Don't include "libunwind.S".
	* config/arm/libunwind.S: Include "lib1funcs.asm".
	* config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind.
	(LIB2ADDEH): Add libunwind.S.
	(LIB2ADDEHDEP): Add lib1funcs.asm.
	* mklibgcc.in: Handle asm files in libgcc_eh.a.

2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>

	PR fortran/18452
	* c.opt: Add a -lang-fortran option.
	* c-opts.c: Add a lang_fortran flag.
	(c_common_init_options): Handling the -lang-fortran option.
	(c_common_handle_option): Add a case for Fortran options in
	preprocessing. Remove cases for -ffixed-form and
	-ffixed-line-length. Add a case for -lang-fortran.

2005-11-03  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c: Include params.h
	(optimization_options): Set max-grow-copy-bb-insns default to 16.
	(bdesc_2arg): Delete vpkuhss and vpkuwss.
	* config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete.
	(UNSPEC_VPKUWSS): Delete.
	(altivec_vpkuhss): Delete.
	(altivec_vpkuwss): Delete.
	* config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from
	final condition.
	(neg_eq0<mode>): Remove final condition.
	(neg_eq<mode>): Remove condition and split-condition.

2005-11-04  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT.
	Use associated print macros.

2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>

	PR c++/17964
	* diagnostic.c (diagnostic_set_info_translated): New function.
	(diagnostic_set_info): Use it.  Add comment.
	* diagnostic.h (diagnostic_set_info_translated): Declare.

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

	* dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
	On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect
	reference only if 'public' is true.
	(dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms,
	emit the .hidden directive only if the indirect reference is public.
	(dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'.
	Pass it to dw2_force_const_mem.
	* dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'.
	* dwarf2out.c (output_cfi): Adjust calls to above function.
	(output_call_frame_info): Likewise.
	* except.c (output_ttype): Pass TREE_PUBLIC of the type_info object
	as 'public' argument to dw2_asm_output_encoded_addr_rtx.

2005-11-03  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/24483
	* tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest
	field to elts if possible.

2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/23155
	* gimplifier.c (gimplify_expr): Create a temporary for lvalue
	CONSTRUCTOR.

2005-11-03  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/24351

	* tree-ssa-structalias.c (struct variable_info): Add
	collapsed_into.
	(get_varinfo_fc): New function to follow collapsing.
	(new_var_info): Set collapsed_to to NULL.
	(dump_constraint): Follow collapsing.
	(build_constraint_graph): Handle collapsing.
	(do_simple_structure_copy): Return false if something bad
	happened.
	(collapse_rest_of_var): New function.
	(do_structure_copy): Collapse if do_simple_structure_copy returns
	false.

2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/24589
	* gimplify.c (gimplify_expr) <case CONSTRUCTOR>: Add the
	expressions to a statement list instead of gimplifying them.

2005-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/23585
	* rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
	that can't trap plus a constant integer, if the mode has zero size.

2005-11-03  Ulrich Weigand  <uweigand@de.ibm.com>

	PR target/24620
	* config/s390/s390.md ("*insv<mode>_reg_imm"): Accept any CONST_INT
	as operand 2.
	("*insv<mode>_reg_extimm"): Likewise.

2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/24329
	* c-pretty-print.c (pp_c_type_specifier): Do not recurse if
	c_common_type_for_mode returns an unnamed type.

2005-11-02  Richard Henderson  <rth@redhat.com>

	PR target/9350
	PR target/24374
	* dwarf2out.c (dwarf2out_reg_save_reg): New.
	(dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec.
	* function.c (assign_parms): Use calls.internal_arg_pointer.
	(expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN
	code.
	* target-def.h (TARGET_INTERNAL_ARG_POINTER): New.
	(TARGET_CALLS): Add it.
	* target.h (struct gcc_target): Add calls.internal_arg_pointer.
	* targhooks.c (default_internal_arg_pointer): New.
	* targhooks.h (default_internal_arg_pointer): Declare.
	* tree.h (dwarf2out_reg_save_reg): Declare.
	* doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove.
	* config/i386/i386.c (dbx_register_map): Add return column.
	(dbx64_register_map, svr4_dbx_register_map): Likewise.
	(TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New.
	(TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New.
	(ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer.
	(ix86_save_reg): Save force_align_arg_pointer.
	(ix86_emit_save_regs): Make regno unsigned.
	(ix86_emit_save_regs_using_mov): Likewise.
	(ix86_expand_prologue): Handle force_align_arg_pointer.
	(ix86_expand_epilogue): Likewise.
	* config/i386/i386.h: (dbx_register_map): Update.
	(dbx64_register_map, svr4_dbx_register_map): Update.
	(struct machine_function): Add force_align_arg_pointer.
	* config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New.
	(UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber.
	(TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P.

2005-11-02  Jan Hubicka  <jh@suse.cz>

	PR target/23303
	* i386.md: Add peep2 for simplyfing array accesses.

2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>

	PR target/24615
	* config/s390/s390-protos.h (s390_decompose_shift_count): Declare.
	* config/s390/s390.c (s390_decompose_shift_count): New function.
	(s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count.
	(print_shift_count_operand): Use s390_decompose_shift_count.
	* config/s390/predicates.md ("setmem_operand", "shift_count_operand"):
	Use s390_decompose_shift_count.  Do not accept any non-base hard regs.

2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>

	PR target/24600
	* loop.c (loop_givs_rescan): Use force_operand to expand
	complex GIVs.

2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>

	PR 22429
	* fold-const.c (build_range_check): Use unsigned when signed
	overflow is undefined also.  If etype is subtype, make sure that
	the subtraction is in the supertype.

2005-11-02  Richard Henderson  <rth@redhat.com>

	PR target/24178
	* config/alpha/alpha.c (get_aligned_mem): Honor alignment given
	by MEM_ALIGN.

2005-11-01  Richard Henderson  <rth@redhat.com>

	PR 21518
	* loop.c (scan_loop): Do not propagate computations to a hard
	register destination with SMALL_REGISTER_CLASSES.

2005-11-01  Joseph S. Myers  <joseph@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra
	costs for MULT inside PLUS or MINUS.

2005-11-01  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding.
	(TRAMPOLINE_SIZE): Round up to 60.
	* config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise.

2005-10-31  James E. Wilson  <wilson@specifix.com>

	PR debug/24444
	* dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO
	ifdef.  Put ifdefs around call in gen_subprogram_die.
	(compute_frame_pointer_to_cfa_displacement): Likewise.
	(gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is
	not defined.

	PR rtl-optimization/17356
	*  cfgrtl.c (purge_dead_edges): Undo last change.  In EDGE_EH code,
	add check for CALL_INSN if EDGE_ABRNOMAL_CALL true.

2005-10-31  Jan Hubicka  <jh@suse.cz>

	PR middle-end/24093
	* cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative

	PR target/20928
	* i386.c (legitimize_pic_address): Deal with large immediates.

	PR profile/20815
	* coverage.c (coverage_checksum_string): Fix code to stip random seeds
	from symbol names while computing checkup.

	PR profile/24487
	* predict.c (predict_loops): Do not estimate more than
	MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic.
	* predict.def (MAX_PRED_LOOP_ITERATIONS): Define.

2005-10-31  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/19097
	* tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.

2005-10-31  J"orn Rennecke <joern.rennecke@st.com>

	* optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.

2005-10-31  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/23492
	* tree-inline.c (setup_one_parameter): If the init_stmt
	is NULL, don't insert the statement.

2005-10-30  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/24172
	* tree-inline.c (copy_body_r): Unshare the substituted value first.

2005-10-30  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c (mmix_intval): Correct handling of DFmode
	constants for hosts with long != 32 bits.

2005-10-28  Andreas Krebbel <krebbel1@de.ibm.com>

	PR middle-end/24093
	* ipa-inline.c (craph_decide_recursive_inlining): Fix return value.

2005-10-28  Aldy Hernandez  <aldyh@redhat.com>

	* config/ms1/ms1.h (TARGET_MS1_64_001): New.
	(TARGET_MS1_16_002): New.
	(TARGET_MS1_16_003): New.

	* config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite.
	("*decrement_and_branch_until_zero_no_clobber"): New.
	Add corresponding splitter for decrement_and_branch_until_zero
	instruction.
	Key all decrement_and_branch_until_zero patterns off of
	TARGET_MS1_16_003.

2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/24362
	* tree-complex.c (extract_component): Treat RESULT_DECL
	like the rest of the decls.

2005-10-25  Eric Botcazou  <ebotcazou@adacore.com>

	* config/ia64/ia64.c (ia64_output_function_profiler): Emit an
	indirect call to _mcount if the function needs a static chain.

2005-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
	    Caroline Tice  <ctice@apple.com>

	PR rtl-optimization/24460
	* dwarf2out.c (have_switched_text_sections): New boolean variable.
	(dwarf2out_switch_text_section): Set it to true instead of
	incrementing separate_line_info_table_in_use.
	(output_loc_list): Additionally test have_switched_text_sections.
	(output_ranges): Likewise.
	(dwarf2out_finish): Likewise.
	* varasm.c (assemble_start_function): Do not call
	insert_section_boundary_note.
	(assemble_end_function): If flag_reorder_blocks_and_partition,
	switch to the function's section before emitting the .size directive.
	* bb-reorder.c (insert_section_boundary_note): Staticify.
	(rest_of_handle_reorder_blocks): Call insert_section_boundary_note.
	* output.h (insert_section_boundary_note): Delete.

2005-10-24  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c/23103
	* c-format.c (check_format_types): Use lang_hooks.types_compatible_p
	instead of pointer equality when comparing types.

2005-10-24  James E. Wilson  <wilson@specifix.com>

	* sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two
	add_dependence_list_and_free calls.

2005-10-24  Steven Bosscher  <stevenb@suse.de>

	* contrib.texi: Add the names of the LLNL folks who donated
	Cray pointer support for gfortran.

2005-10-24  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/24225
	* profile.c (branch_prob): Look from end to start through a
	basic block when looking for a locus.

2005-10-24  Richard Henderson  <rth@redhat.com>

	* pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in
	parallel.
	(hppa_expand_prologue): Likewise.

2005-10-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa-linux.h (NO_PROFILE_COUNTERS): Delete define.
	(NO_DEFERRED_PROFILE_COUNTERS): Define.
	* pa.h (NO_PROFILE_COUNTERS): Define.
	* pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined.
	(funcdef_nos): New vector to hold label numbers of deferred profile
	counters.
	(output_deferred_profile_counters): New function.
	(hppa_profile_hook): Push label number onto funcdef_nos.
	(pa_hpux_file_end): Call output_deferred_profile_counters if
	NO_DEFERRED_PROFILE_COUNTERS is false.

	* pa-protos.h (get_deferred_plabel): New prototype.
	* pa.c (get_plabel): Rename to get_deferred_plabel.  Return plabel.
	Make global.
	(output_call): Adjust calls.

2005-10-24  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain
	peculiarity of GOT/TOC section usage.

2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>

	PR objc/24435
	 * c-common.c (constant_string_class_name): Add documentation.

2005-10-23  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/23832
	* recog.c (peephole2_optimize): Increment peep2_current_count
	only when the slot is empty.

2005-10-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR ada/23957
	* except.c (output_function_exception_table): Call
	assemble_external_libcall if we need a personality function.

2005-10-21  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/24460
	* bb-reorder.c (fix_crossing_unconditional_branches): Do not
	set the basic block for barriers.

2005-10-21  Janis Johnson  <janis187@us.ibm.com>

	* var-tracking.c (vt_initialize): Initialize post.

2005-10-21  Devang Patel  <dpatel@apple.com>

	PR/24220
	* c-common.c (vector_types_convertible_p): Check vector element type.

2005-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (prepare_move_operands): Handle the address
	constant which is a tls symbolic address plus a constant.

2005-10-21  Andrew Pinski  <pinskia@physics.uc.edu>

	PR driver/24473
	* gcc.c (main): Use the correct counter for erroring out
	about mulitple files.

2005-10-21  Alan Modra  <amodra@bigpond.net.au>

	PR target/24465
	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always
	use r2 for 64-bit tls .got access.

2005-10-21  Paolo Bonzini  <bonzini@gnu.org>

	* dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and
	TRUTH_OR_EXPR.

2005-10-20  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/24307
	* tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR.

2005-10-20  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/24295
	* cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark
	alias targets.
	* varasm.c (find_decl_and_mark_needed): After cgraph global info
	is ready, stop marking functions, but still mark variables.

2005-10-20  Richard Guenther  <rguenther@suse.de>

	PR c++/24439
	* fold-const.c (invert_truthvalue): Handle COND_EXPR with
	void type operands.

2005-10-20  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/23585
	* rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
	(rtx_addr_can_trap_p): ... here.  Invoke rtx_addr_can_trap_p_1.
	(may_trap_p_1): New predicate extracted from...
	(may_trap_p): ... here.  Invoke may_trap_p_1.
	(may_trap_or_fault_p): New predicate.
	* rtl.h (may_trap_or_fault_p): Declare it.
	* reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
	instead of may_trap_p.
	(steal_delay_list_from_fallthrough): Likewise.
	(fill_simple_delay_slots): Likewise.
	(fill_slots_from_thread): Likewise.
	* function.c (pad_to_arg_alignment): Rework comment about
	SPARC_STACK_BOUNDARY_HACK.
	* config/sparc/sparc.h: Likewise.

2005-10-19  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.c (s390_expand_insv): New.
	* config/s390/s390-protos.h (s390_expand_insv): Declare.
	* config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM".
	("icm_hi"): Remove mode attribute.
	("*sethigh<mode><mode>"): Rewrite to "sethighpart<mode>".
	Adjust all uses.
	("*extracthi", "*extractqi"): Remove.
	(extv<mode>", "*extzv<mode>"): New.
	("insv", "*insv<mode>_mem_reg", "*insvdi_mem_reghigh",
	"*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): New.

2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* cfgexpand.c (discover_nonconstant_array_refs_r,
	discover_nonconstant_array_refs): Move here from tree-outof-ssa.c
	(tree_expand_cfg): Call discover_nonconstant_array_refs.
	* tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
	discover_nonconstant_array_refs.

2005-10-19  Steven Bosscher  <stevenb@suse.de>

	PR c/23228
	* c-decl.c (pop_scope): Don't warn about an unused variable
	if it is marked with TREE_NO_WARNING.
	(duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
	somenow mismatch and olddecl is to be replaced.

2005-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR middle-end/23199
	* cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect
	whether registers live on the edge can be saved/restored.

2005-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (fixup_mova): Skip notes.

2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype.
	* config/s390/s390.c (s390_hard_regno_rename_ok): New function.
	(s390_can_eliminate): Handle BASE_REGNUM elimination.
	(s390_initial_elimination_offset): Likewise.
	(s390_conditional_register_usage): BASE_REGNUM is no longer a fixed
	register on TARGET_ZARCH targets.
	* config/s390/s390.h (HARD_REGNO_RENAME_OK): Define
	(INITIAL_FRAME_POINTER_OFFSET): Remove.
	(REG_ALLOC_ORDER): Move BASE_REGNUM lower.
	(ELIMINABLE_REGS): Add BASE_REGNUM elimination rule.

2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md: Comment describing output modifiers updated.
	* config/s390/s390.c (print_operand): Likewise.

2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (override_options): Added check for -mstack-size
	64k limitation.
	* doc/invoke.texi: Mention that limit in the documenation.

2005-10-18  Paolo Bonzini  <bonzini@gnu.org>

	PR #19672
	* dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here.

2005-10-18  Daniel Berlin <dberlin@dberlin.org>

	Fix PR tree-optimization/24231

	* tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names
	(compute_avail): Ditto.

2005-10-18  Richard Henderson  <rth@redhat.com>

	PR target/24428
	* config/i386/i386.c (legitimate_constant_p): Check
	SYMBOL_REF_TLS_MODEL directly.  Don't fallthru to SYMBOL_REF
	if LABEL_REF.
	(legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly.
	(legitimate_pic_address_disp_p): Reorg CONST checking to make
	sure SYMBOL_REF_TLS_MODEL is tested.  Test SYMBOL_REF_TLS_MODEL
	directly.
	(print_operand_address): Likewise.
	* config/i386/predicates.md (x86_64_immediate_operand): Test
	SYMBOL_REF_TLS_MODEL properly inside CONST.
	(x86_64_zext_immediate_operand): Likewise.
	(global_dynamic_symbolic_operand, local_dynamic_symbolic_operand,
	initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove.
	* config/i386/i386-protos.h: Remove predicates.md entries.

2005-10-18  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
	Check that elements of TYPE_METHODS are FUNCTION_DECLs.

2005-10-17  Alexey Starovoytov  <alexey.starovoytov@sun.com>
	    Ian Lance Taylor <ian@airs.com>

	PR middle-end/23522
	* fold-const.c (fold_widened_comparison): Do not allow range based
	constant folding when right operand cannot be unwidened.

2005-10-17  Richard Henderson  <rth@redhat.com>

	* builtins.c (expand_builtin_synchronize): Build a new-style asm
	with a memory clobber.

2005-10-17  James E Wilson  <wilson@specifix.com>

	PR rtl-optimization/17356
	* cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before
	checking for EDGE_EH.

2005-10-17  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align
	the slot on an even boundary for any type with 16-byte alignment.

2005-10-17  Hans-Peter Nilsson  <hp@axis.com>

	PR target/23424
	* md.texi (Modifiers) <%>: Clarify that % doesn't work
	after register allocation.

2005-10-17  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns
	as frame related.

2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/22551
	* c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of
	overflow flags.

2005-10-17  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns
	to 2 if it's already non-zero.
	(OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions
	is set and warn about it if flag_schedule_insns is 1.

2005-10-17  Paul Woegerer  <paul.woegerer@nsc.com>

	* config/crx/crx.md: Compare-and-branch instructions need to
	invalidate CC.

2005-10-17  Uros Bizjak  <uros@kss-loka.si>

	PR target/24315
	* config/i386/i386.md (*pushdi2_rex64 splitter)
	(*movdi_1_rex64 splitter, *ashldi3_1 splitter)
	(*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after
	flow2 pass only when (optimize > 0 && flag_peephole2).

2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>

	PR driver/22544
	* gcc.c (have_c): New static variable.
	(have_o): Likewise.
	(process_command): Remove declation of have_c.
	Set have_o to 1 when handling -o.
	(main): Add a fatel error if there are multiple
	files specified and -o and -c/-S is passed witout
	-combine or multiple languages.

2005-10-16  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/22444
	* tree-ssa-alias.c (compute_flow_insensitive_aliasing):
	Assert that we don't hit something with subvars.
	(setup_pointers_and_addressables): Don't add things with subvars,
	because we'll already process the subvars for aliasing purposes.

2005-10-16  Hans-Peter Nilsson  <hp@axis.com>

	PR target/23424
	* config/cris/cris.md ("*mov_side<mode>", "*mov_sidesisf")
	("*mov_side<mode>_mem", "*mov_sidesisf_mem", "*clear_side<mode>")
	("*ext_sideqihi", "*ext_side<mode>si", "*op_side<mode>")
	("*op_swap_side<mode>", "*extopqihi_side", "*extop<mode>si_side")
	("*extopqihi_swap_side", "*extop<mode>si_swap_side"): Have separate,
	swapped, alternatives for the R constraint.

	PR middle-end/24341
	* builtins.c (get_builtin_sync_mode): Make unlimited
	mode_for_size request.

2005-10-15  Richard Henderson  <rth@redhat.com>

	* gimplify.c (gimplify_var_or_parm_decl): Split out from ...
	(gimplify_expr): ... here.
	(gimplify_compound_lval): Use it in initial scan loop.  Allow
	fb_lvalue in base expression.

2005-10-15  Richard Henderson  <rth@redhat.com>

	PR 23714
	* builtins.c (expand_builtin_trap): Export.
	* expr.h (expand_builtin_trap): Declare.
	* expr.c (expand_assignment): Emit a trap for integral offsets
	from registers that weren't reduced to bitpos.

	* tree-cfg.c (mark_array_ref_addressable_1): Remove.
	(mark_array_ref_addressable): Remove.
	* tree-flow.h (mark_array_ref_addressable): Remove.
	* tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it.

2005-10-15  James E Wilson  <wilson@specifix.com>

	PR target/24232
	* sched-deps.c (add_dependence_list): New arg UNCOND.  Fix all callers.
	(add_dependence_list_and_free): Likewise.
	(sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p
	call.

2005-10-15  Diego Novillo  <dnovillo@redhat.com>

	PR 23141
	PR 23142
	* tree-vrp.c (vrp_meet): Fix the intersection of equivalence
	sets VR0->EQUIV and VR1->EQUIV when meeting a range and an
	anti-range.
	(vrp_visit_phi_node): Only prevent infinite iterations when
	the previous result and the new result are both VR_RANGEs.

2005-10-15  Ranjit Mathew  <rmathew@gcc.gnu.org>

	* tree-into-ssa.c (mark_def_sites): Correct minor typo in
	function comment.

2005-10-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c/23439
	* c-parser.c (c_parser_for_statement): Use location of RID_FOR
	to initialize loc.

2005-10-14  Per Bothner  <per@bothner.com>

	PR preprocessor/21250
	* c-ppoutput.c (print_line): Print internal line 0 as 1.

2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/22551
	* c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's
	overflow flags.  Refactor some conditionals.

2005-10-13  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/21304
	* tree-dfa.c (add_referenced_var): Only look at decls which
	have TREE_CONSTANT or TREE_READONLY set instead of if
	!TREE_PUBLIC or !TREE_CONSTANT.

2005-10-13  James E Wilson  <wilson@specifix.com>

	* doc/invoke.texi: For -x, add f95-cpp-input.
	* doc/install.texi: For --enable-languages doc, change f95 to fortran.

2005-10-12  Sebastian Pop  <pop@cri.ensmp.fr>

	PR tree-optimization/24262
	* tree-data-ref.c (analyze_offset_expr): Check that init is invariant
	in loop all the time.

2005-10-12  Richard Henderson  <rth@redhat.com>

	PR c/24255
	* tree.h (DECL_TRANSPARENT_UNION): Remove.
	* function.c (assign_parm_find_data_types): Don't support it.
	* print-tree.c (print_node): Likewise.
	* c-common.c (handle_transparent_union_attribute): Likewise.
	Use build_duplicate_type.
	* tree-inline.c (remap_type_1): Split out of remap_type;
	properly remap aggregate fields.
	(build_duplicate_type): New.
	* doc/extend.texi (Variable Attributes): Remove documentation
	for transparent_union.

2005-10-12  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/24284
	* config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
	(gen_stack_pointer_dec): Likewise.

2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>

	PR middle-end/21275
	PR middle-end/21766
	* target.h (struct gcc_target): Add valid_dllimport_attribute_p
	target hook.
	(struct cxx): Add adjust_class_at_definition target hook.
	* target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define,
	defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER
	(TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to
	hook_void_tree. Add to TARGET_CXX.
	* tree.h (struct decl_with_vis): Rename non_addr_const_p field to
	dllimport_flag.
	(DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro.
	* tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P
	instead of attribute. Check for dllexport override.  Warn if
	inconsistent dll linkage. Don't lose old dllimport if decl has
	had address referenced.  Tweak lookup of dllimport atribute.
	(handle_dll_attribute): Check targetm.valid_dllimport_attribute_p
	for target specific rules.  Don't add dllimport attribute if
	DECL_DECLARED_INLINE_P.  Set DECL_DLLIMPORT_P when adding
	dllimport attribute.
	(staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P.
	* varasm.c (initializer_constant_valid_p): Replace
	DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P

	PR target/21801
	PR target/23589
	* config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to
	'cxx_target_objs', winnt-stubs,o to 'extra_objs'.
	(i[34567]86-*-mingw32*): Likewise.

	* doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document.
	(TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document.

	* config/i386/winnt.c (i386_pe_dllimport_p): Factor out
	C++-specific code. Change return value to bool.
	(i386_pe_dllimport_p): Likewise.
	(associated_type): Simplify and make language-independent
	(i386_pe_encode_section_info): Replace override of ambiguous
	dllimport symbol refs with a gcc_assert.
	(i386_pe_valid_dllimport_attribute_p): Define.
	* config/i386/winnt-cxx.c: New file. Define C++ versions of
	i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
	i386_pe_adjust_class_at_definition.
	* config/i386/winnt-stubs.c: New file. Define stub versions of
	lang-specific functions.
	* config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions
	i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
	i386_pe_adjust_class_at_definition.
	(i386_pe_valid_dllimport_attribute_p): Declare.
	* config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define.
	(TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define.
	* config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o.

	PR target/19704
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for
	dllimport attribute with test of DECL_DLLIMPORT_P.

2005-10-12  Adrian Straetling <straetling@de.ibm.com>

	* combine.c (make_extraction): Correct offset computation.

2005-10-12  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/t-linux (LIMITS_H_TEST): Define.

2005-10-12  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/23324
	* cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p.

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

	* Makefile.in (CGRAPH_H): Depend on $(TREE_H).

2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/19964
	* stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
	DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
	type.

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

	PR c++/23799
	* varasm.c (output_constant): Correct typo from previous
	patch by DJ.

2005-10-11  Ian Lance Taylor  <ian@airs.com>

	PR rtl-optimization/13931
	* combine.c: Revert patch of 2003-05-14, and:
	(try_combine): Only set elim_i1 and elim_i2 if the destination is
	completely killed in the appropriate insn.
	(distribute_notes): Don't skip multiple hard register test for
	elim_i1 and elim_i2.

2005-10-11  Richard Henderson  <rth@redhat.com>

	PR c/24255
	* c-typeck.c (convert_for_assignment): Use build_constructor_single
	to initialize a transparent union instead of a nop_expr.

2005-10-11  Richard Henderson  <rth@redhat.com>

	* Makefile.in (tree-ssa-dce.o): Depend on SCEV_H.
	* tree-ssa-dce.c: Include tree-scalar-evolution.h.
	(tree_ssa_dce_loop): Call scev_reset.

	PR tree-opt/24300
	* Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H.
	* tree-ssa-dce.c: Include cfgloop.h.
	(tree_ssa_dce_loop, pass_dce_loop): New.
	* tree-pass.h (pass_dce_loop): Declare it.
	* passes.c (init_optimization_passes): Use it.

2005-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR middle-end/24263
	* convert.c (convert_to_real): Revert 2005-10-05 patch.
	Only apply the optimization for rounding builtins if the inner
	cast is also an extension.

2005-10-11  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/23946
	* tree-ssa-ccp.c (execute_fold_all_builtins): Call
	mark_new_vars_to_rename instead of update_stmt.

2005-10-11  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.

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

	* config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
	for setting MMX register to 0 rather than mmx.

2005-10-10  Mark Mitchell <mark@codesourcery.com>

	* toplev.c (check_global_declaration_1): Robustify.

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

	PR target/12098
	* configure.ac: Move gas check from mips specific case to common case.
	Do check for GNU as for mips*-*-* and *-*-hpux* targets.
	* configure: Regenerate
	* doc/install.texi: Update.

2005-10-10  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/24284
	* config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN.

2005-10-10  Maciej W. Rozycki  <macro@linux-mips.org>

	* gcc.c (do_spec_1): Accept numeric characters in file name
	suffixes.

2005-10-10  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.c: Remove extraneous whitespace.  Remove comment
	describing the deleted arm_gen_rotated_half_load function.

2005-10-09  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for
	__fpscr_values.

2005-10-09  Daniel Jacobowitz  <dan@codesourcery.com>

	* config.gcc (arm*-*-linux*): Remove redundant extra_parts and
	gnu_ld assignments.
	* config/arm/t-linux-eabi (LIB1ASMFUNCS)
	(EXTRA_MULTILIB_PARTS): Define.
	* config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
	(STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
	(LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to...
	* config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
	(STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
	(LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here.

2005-10-09  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/24226
	* tree-cfg.c (remove_bb): Clean up unreachable loops.
	* tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare.
	* tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop):
	Export.

2005-10-09  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/gmon-sol2.c (internal_mcount): Mark as used.

2005-10-08  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/24136
	* config/rs6000/darwin.md (movdf_low_si): Remove early clobber.
	Rewrite for no need for the early clobber.

2005-10-08  Kazu Hirata  <kazu@codesourcery.com>

	Merge from csl-arm-branch:
	2005-09-07  Paul Brook  <paul@codesourcery.com>
	* config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
	space to string.

	2005-04-30  Paul Brook  <paul@codesourcery.com>
	* config/arm/bpabi.h (TARGET_DEFAULT): Define.
	* config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.

	2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>
	* config/arm/arm.c (arm_all_abis): Add aapcs-linux.
	(arm_override_options): Use TARGET_AAPCS_BASED.
	* config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
	(PTRDIFF_TYPE): Use int for AAPCS.
	(DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
	* config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
	(DEFAULT_SHORT_ENUMS): Delete.
	* doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.

	2004-12-15  Daniel Jacobowitz  <dan@codesourcery.com>
	* config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
	* config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
	* config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.

	2004-12-03  Mark Mitchell  <mark@codesourcery.com>
	* config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.

	2004-11-22  Mark Mitchell  <mark@codesourcery.com>
	* config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.

	2004-11-19  Mark Mitchell  <mark@codesourcery.com>
	* config.gcc (arm*-*-linux-gnueabi): Add it.
	* config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
	redefining it.
	(TARGET_OS_CPP_BUILTINS): Likeiwse.
	* config/arm/linux-eabi.h: New file.
	* config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
	(LINUX_TARET_LINK_SPEC): Likewise.
	(LINK_SPEC): Use it.
	* config/arm/t-linux-eabi: New file.

2005-10-08  Steven Bosscher  <stevenb@suse.de>

	PR other/22202
	* params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous
	spaces.
	(PARAM_SMS_DFA_HISTORY): Likewise.

2005-10-08  Kazu Hirata  <kazu@codesourcery.com>

	PR middle-end/23150
	* calls.c (mem_overlaps_already_clobbered_arg_p): New.
	(load_register_parameters): Call it.
	(check_sibcall_argument_overlap_1): Likewise.
	(store_one_arg): Likewise.

2005-10-07  James E. Wilson  <wilson@specifix.com>

	* config/ia64/vect.md (ashl<mode>3, ashr<mode>3, lshr<mode>3): Use
	DImode not VECINT24 for operand 2.

	PR target/23644
	* doc/invoke.texi (IA-64 Options, item -mtune): Renamed from
	-mtune-arch.

	PR target/24193
	* config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal,
	fr_spill): Use destination_operand for operand 0.

2005-10-07  DJ Delorie  <dj@redhat.com>

	* varasm.c (output_constant): Limit error to expanding
	conversions.

2005-10-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/24227
	* fold-const.c (fold_binary): Fix operand types during folding
	of X op (A, Y).  Evaluation order of the side-effects of
	X and A are frontend-defined, so ensure we honour that even for
	tcc_comparison class operands; eased by removing duplicate code.

2005-10-07  Steve Ellcey  <sje@cup.hp.com>

	* stor-layout.c (layout_type): Do not allow alignment of array
	elements to be greater than their size.

2005-10-07  Steve Ellcey  <sje@cup.hp.com>

	* config.host (hppa*-*-hpux*): Change out_host_hook_obj and
	host_xmake_file.
	(hppa*-*-linux*): Ditto.
	(ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file.
	* config/host-hpux.c: New.
	* config/x-hpux: New.
	* config/pa/x-hpux: Remove.
	* config/pa/x-linux: Remove.
	* config/pa/pa-host.c: Remove.

2005-10-07  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to
	determine whether or not to try and thread outgoing edges.

2005-10-07  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (eqsi_power): New.
	(neg_eq0si): Add TARGET_POWER to final condition.
	(neg_eqsi): Same.

2005-10-06  Richard Henderson  <rth@redhat.com>

	* config/rs6000/rs6000.c: Revert last change.

2005-10-06  Richard Henderson  <rth@redhat.com>

	* config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New.
	(TARGET_CANNOT_FORCE_CONST_MEM): Use it.

2005-10-06  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/22216
	PR middle-end/23651
	* cfgexpand.c (tree_expand_cfg): After expanding the functions, clear
	out return_label and naked_return_label.

2005-10-06  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (check_for_overlaps): Fix bug in last
	change.

2005-10-06  Richard Henderson  <rth@redhat.com>

	PR tree-opt/22237
	* tree-inline.c (declare_return_variable): Handle modify_dest not
	being a DECL.

2005-10-06  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/22488
	* tree-ssa-structalias.c (check_for_overlaps): New function.
	(create_variable_info_for): Use it.

2005-10-06  Richard Henderson  <rth@redhat.com>

	PR debug/24070
	* dwarf2out.c (lookup_filename): Return the result of maybe_emit_file.
	(dwarf2out_start_source_file): Print it.

2005-10-06  Geoffrey Keating  <geoffk@apple.com>

	* config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='.

2005-10-06  Richard Henderson  <rth@redhat.com>

	PR 23706
	* mode-switching.c (optimize_mode_switching): Clear transp bit
	for block with incomming abnormal edges.

	* config/sh/sh.c (fpscr_values, emit_fpu_switch): New.
	(fpscr_set_from_mem): Use them.
	* config/sh/sh.md (fpu_switch0, fpu_switch1): Remove.
	(fpscr postinc splitters): Rewrite as peephole2+split.

2005-10-06  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (eq<mode>): Add !TARGET_POWER.
	(eq<mode>_compare): Same.

2005-10-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/24238
	* tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL.

2005-10-06  Daniel Jacobowitz  <dan@codesourcery.com>

	* acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables
	here.  Use AC_PATH_PROG for environment variables instead of
	test -x.
	* configure.ac: Update calls to gcc_AC_CHECK_TOOL.  Use it for
	objdump also.
	* configure: Regenerated.

2005-10-06  Richard Earnshaw  <richard.earnshaw@arm.com>

	PR target/23783
	* arm.md (call): If the address isn't a SYMBOL_REF or a register,
	then force it into a register.
	(call_value): Likewise.

2005-10-06  Richard Henderson  <rth@redhat.com>

	PR 24049
	* passes.c (init_optimization_passes): Move pass_lower_vector_ssa
	under pass_vectorize.  Clear TODO_ggc_collect from the dce pass
	under pass_vectorize.

2005-10-05  Devang Patel  <dpatel@apple.com>

	PR Debug/23205
	* dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after
	handling constants. Check NAMESPACE_DECL context for constants.

2005-10-05  Eric Christopher  <echristo@apple.com>

	* doc/md.texi (Standard Names): Fix name of pushm1 pattern.

2005-10-05  Richard Henderson  <rth@redhat.com>

	PR 23714
	* tree-cfg.c (mark_array_ref_addressable_1): New.
	(mark_array_ref_addressable): New.
	* tree-flow.h (mark_array_ref_addressable): Declare.
	* tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it.

2005-10-05  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/20606
	PR middle-end/24069
	* reload.c (subst_reloads): When adding a REG_LABEL to a
	jump instruction, also update JUMP_LABEL.

2005-10-05  David Edelsohn  <edelsohn@gnu.org>

	* params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.
	* bb-reorder.c (copy_bb_p): Use it.
	* doc/invoke.texi (param table): Add max-grow-copy-bb-insn.

2005-10-05  Richard Henderson  <rth@redhat.com>

	PR target/23602
	* toplev.c (process_options): Warn about unsupported combinations
	of unwind tables and omit-frame-pointer.
	* config/i386/i386.c (override_options): Similarly.  Enable
	accumulate-outgoing-args if not explicitly disabled.

2005-10-05  Steve Ellcey  <sje@cup.hp.com>

	* vect.md (vec_initv2si): Fix typo of V2SF to V2SI.
	Handle big endian vs. small endian.
	(vec_initv2sf): Handle big endian vs. small endian.
	(*vec_extractv2sf_1): Ditto.

2005-10-05  Dale Johannesen  <dalej@apple.com>

	* convert.c (convert_to_real): Don't convert
	(float)floor(double d) to floorf((float)d).

2005-10-05  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/arm.md (insv): Use gen_int_mode in more places.

2005-10-05  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/18587
	* tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete.
	(build_defs, build_uses, build_v_may_defs, build_v_must_defs,
	build_vuses): Change to VEC type.
	(opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free,
	opbuild_num_elems, opbuild_append_real, opbuild_append_virtual,
	opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual,
	opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete.
	(get_name_decl): New.  Return DECL_UID of base variable.
	(operand_build_cmp): New.  qsort comparison routine.
	(operand_build_sort_virtual): New.  Sort virtual build vector.
	(init_ssa_operands, fini_ssa_operands): Use VEC routines.
	(FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index.
	(FINALIZE_BASE): Use get_name_decl.
	(finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs,
	finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs,
	(start_ssa_stmt_operands, append_def, append_use, append_vuse,
	append_v_may_def, append_v_must_def): Replace opbuild_* routines with
	direct VEC_* manipulations.
	(build_ssa_operands): Call operand_build_sort_virtual.
	(copy_virtual_operand, create_ssa_artficial_load_stmt,
	add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines
	with direct VEC_* manipulations.
	* tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines
	with direct VEC manipulations.

2005-10-05  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/21419
	PR tree-optimization/24146
	PR tree-optimization/24151

	* c-typeck.c (readonly_error): Handle USE being lv_asm.
	(build_asm_expr): Call it if outputs are read-only.
	* gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419.

2005-10-05  Billy Biggs  <billy.biggs@gmail.com>
	    Paolo Bonzini  <bonzini@gnu.org>

	PR target/23809

	* doc/extend.texi (x86 Built-ins): Document that -msse and friends
	enable the instructions and not just the built-ins.
	* doc/invoke.texi (x86 Options): Likewise.

2005-10-04  Geoffrey Keating  <geoffk@apple.com>

	* config/i386/t-darwin (SHLIB_VERPFX): Fix typo.

	* doc/invoke.texi (Option Summary): Correct spelling
	of -mmacosx-version-min.

2005-10-04  Devang Patel  <dpatel@apple.com>

	* c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for
	real types.

2005-10-04  Steve Ellcey  <sje@cup.hp.com>

	* tree-vect-transform.c (vect_create_epilog_for_reduction):
	Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN.

2005-10-04  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md ("TDSI","DP"): New mode macros.
	("TE","tg"): New mode attributes.
	("sync_compare_and_swap<mode>"): Replace with a define_expand.
	("sync_compare_and_swap<mode>_cc"): Replace GPR with TDSI.
	("*sync_compare_and_swap<mode>_cc"): Replace with one pattern for
	dword_mode and one for GPRmode.

2005-10-04  Ian Lance Taylor  <ian@airs.com>

	PR preprocessor/13726
	* c-ppoutput.c (cb_include): Add comments parameter, and print out
	any comments passed in.

2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree.c (annotate_with_file_line): Fix typo.

2005-10-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	PR ada/19382
	* builtins.c (fold_builtin_memcmp): When constructing the pointer
	type used to access data in the inlined length == 1 case, use
	build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
	(fold_builtin_strcmp, fold_builtin_strncmp): Likewise.

2005-10-04  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.h (TARGET_FISTTP): Enable also for
	TARGET_SSE3 and only for TARGET_80387.
	* config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1,
	(fix_trunc<mode>_i387_fisttp, fix_trunc<mode>_i387_fisttp_with_temp):
	Do not depend on TARGET_80387.

2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree.c (last_annotated_node): Change type to location_t*.
	(annotate_with_file_line): Reflect the change of
	last_annotated_node type.

2005-10-04  Richard Guenther  <rguenther@suse.de>

	PR c/23576
	* c-decl.c (grokdeclarator): Don't write to fields
	of error_mark_node.

2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/23125
	* c-decl.c (finish_decl): Use set_user_assembler_name even for
	register variables.
	* varasm.c (make_decl_rtl): If a register variable does not
	have a set user assmbler name, error out.
	Decode the asmspec is now name+1 bypassing '*'.

2005-10-04  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/23049
	* tree-ssa-dom.c (thread_across_edge): Make sure that the condition
	of a COND_EXPR is folded before calling fold on the whole rhs of a
	conditional assignment.
	* doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to
	document that a COND_EXPR may appear there.

2005-10-03  Diego Novillo  <dnovillo@redhat.com>

	PR 23445
	* tree-vrp.c (extract_range_from_assert): If the new numeric
	range created out of the assertion contradicts the existing
	numeric range of the ASSERT_EXPR variable, make the new range
	varying.

2005-10-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_register_move_cost): Add case for moving
	from T_REGS to FP register class.

2005-10-03  Richard Henderson  <rth@redhat.com>

	PR 24135
	* tree-nested.c (convert_nl_goto_reference): Lookup a translation
	before creating a new one.

2005-10-03  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/t-aix43 (LDFLAGS): New.
	* config/rs6000/t-aix52 (LDFLAGS): New.

2005-10-03  Ian Lance Taylor  <ian@airs.com>

	* gimplify.c (find_single_pointer_decl_1): New static function.
	(find_single_pointer_decl): New static function.
	(internal_get_tmp_var): For a formal variable, set restrict base
	information if appropriate.
	* alias.c (find_base_decl): If a VAR_DECL has a restrict base,
	return it.
	* tree.h (DECL_BASED_ON_RESTRICT_P): Define.
	(DECL_GET_RESTRICT_BASE): Define.
	(SET_DECL_RESTRICT_BASE): Define.
	(decl_restrict_base_lookup): Declare.
	(decl_restrict_base_insert): Declare.
	(struct tree_decl_with_vis): Add based_on_restrict_p field.
	* tree.c (restrict_base_for_decl): New static variable.
	(init_ttree): Initialize restrict_base_for_decl.
	(copy_node_stat): Copy restrict base information.
	(decl_restrict_base_lookup): New function.
	(decl_restrict_base_insert): New function.
	(print_restrict_base_statistics): New static function.
	(dump_tree_statistics): Call print_restrict_base_statistics.

2005-10-02  Diego Novillo  <dnovillo@redhat.com>

	PR 24142
	* tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in
	case of anti-ranges.

2005-10-02  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c/18851
	* c-typeck.c (tagged_tu_seen): Rename to ...
	(tagged_tu_seen_cache): this and add val field.
	(comptypes): Move functional to comptypes_internal
	and free tagged_tu_seen.
	(comptypes_internal): New function and call comptypes_internal
	instead of comptypes. Speed up by sibcalling
	tagged_types_tu_compatible_p.
	(alloc_tagged_tu_seen): New function
	(free_all_tagged_tu_seen_up_to): New function.
	(tagged_types_tu_compatible_p): Return the val of the seen two
	types.
	Add that the two types are the same to tagged_tu_seen_base
	if they are and call comptypes_internal instead of comptypes.
	<case UNION_TYPE>: Speed up common type where the fields are
	in the same order.
	(function_types_compatible_p): Call comptypes_internal instead of
	comptypes.
	(type_lists_compatible_p): Likewise.
	(all functions): s/tagged_tu_seen/tagged_tu_seen_cache/.

2005-10-02  Matthias Klose  <doko@debian.org>

	* doc/invoke.texi: Fix typo and speling error.

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

	* tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too.

2005-10-01  Mark Mitchell  <mark@codesourcery.com>

	* config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define
	using --start-group and --end-group.

2005-10-01  Diego Novillo  <dnovillo@redhat.com>

	* tree-vrp.c (value_inside_range, range_includes_zero_p): Add
	FIXME note regarding quirky semantics.

2005-10-01  Diego Novillo  <dnovillo@redhat.com>

	PR 24141
	* tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a
	non-null range as a last resort.

2005-10-01  James A. Morrison  <phython@gcc.gnu.org>
	    Diego Novillo  <dnovillo@redhat.com>

	PR 23604
	* tree-vrp.c (extract_range_from_assert): For !=
	assertions, only build an anti-range if LIMIT is a
	single-valued range.

2005-09-30  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.md (movqi): On thumb when optimizing, handle loading from
	memory by describing this as taking a subreg of a zero-extended load
	into an SImode register.
	(movhi): Likewise.

2005-09-30  Daniel Jacobowitz  <dan@codesourcery.com>

	* reload1.c (merge_assigned_reloads): Do not change any
	RELOAD_FOR_OUTPUT_ADDRESS reloads.

2005-09-30  Geoffrey Keating  <geoffk@apple.com>

	* Makefile.in (LIPO_FOR_TARGET): Define.
	(STRIP_FOR_TARGET): Define.

	* config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks
	before creating new ones.  Do symlinks before creating the actual
	targets.

	* config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib
	to work out which multilibs are actually being built.

2005-09-30  Kazu Hirata  <kazu@codesourcery.com>

	* tree-vect-transform.c, config/ms1/ms1.md,
	config/s390/s390.c, config/v850/v850.md: Fix comment typos.
	Follow spelling conventions.
	* doc/invoke.texi, doc/md.texi: Fix typos.

2005-09-30  Andrew Macleod  <amacleod@redat.com>

	PR tree-optimization/21430
	* tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual
	use operands, and set stmt pointer if need be.
	(FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine.
	tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if
	present.

2005-09-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	PR middle-end/24053
	* stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype.

2005-09-29  Mark Mitchell  <mark@codesourcery.com>

	* optabs.c (expand_binop): Initialize first_pass_p.

2005-09-29  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/24109
	* c-decl.c (c_write_global_declarations_1): If any
	wrapup_global_declaration_2 call returned true, restart the loop.

2005-09-29  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/24117
	* tree-ssa-structalias.c (find_func_aliases): Strip nops
	before considering whether to use anyoffset.

2005-09-29  Paolo Bonzini  <bonzini@gnu.org>

	Revert this patch:

	2005-09-15  Paolo Bonzini  <bonzini@gnu.org>

	* optabs.c (expand_binop): Use swap_commutative_operands_with_target
	to order operands.
	(swap_commutative_operands_with_target): New.

2005-09-29  Paolo Bonzini  <bonzini@gnu.org>

	PR c/21419
	* gimplify.c (gimplify_asm_expr): Raise an error if an output is
	read-only.

2005-09-29  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/23911
	* tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR
	and IMAGPART_EXPR too.

2005-09-28  Mark Mitchell  <mark@codesourcery.com>

	PR 17886
	* expmed.c (expand_shift): Move logic to reverse rotation
	direction when rotating by constants ...
	* optabs.c (expand_binop): ... here.
	* config/i386/i386.md (rotrdi3): Handle 32-bit mode.
	(ix86_rotrdi3): New pattern.
	(rotldi3): Handle 32-bit mode.
	(ix86_rotldi3): New pattern.

2005-09-29  Alan Modra  <amodra@bigpond.net.au>

	PR target/24102
	* config/rs6000/rs6000.md (floatdisf2_internal2): Correct range
	check for numbers that need no bit twiddle.

2005-09-28  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/t-darwin8: Uncomment contents, allow -m64
	multilib to be built.

	* Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET.
	(stage1-start): Delete old libgcc and libunwind before moving
	anything into the stage directory.
	(stage2-start): Likewise.
	(stage3-start): Likewise.
	(stage4-start): Likewise.
	(stageprofile-start): Likewise.
	(stagefeedback-start): Likewise.
	* config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h
	header in tm_file and CPU-specific t-darwin in tmake_file.
	(i[34567]86-*-darwin*): Don't change tm_file.
	(powerpc-*-darwin*): Don't change tm_file or tmake_file.
	* config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc
	shared library stub for target OS version.
	* config/t-slibgcc-darwin (SHLIB_SOLINK): Delete.
	(SHLIB_LINK): Don't make SHLIB_SOLINK.
	(SHLIB_INSTALL): Don't install SHLIB_SOLINK.
	(libgcc_s.%.dylib): New.
	(LIBGCC): Define.
	(install-darwin-libgcc-stubs): New.
	(INSTALL_LIBGCC): New append.
	* config/i386/darwin-libgcc.10.4.ver: New.
	* config/i386/darwin-libgcc.10.5.ver: New.
	* config/i386/t-darwin: New.
	* config/rs6000/darwin-libgcc.10.4.ver: New.
	* config/rs6000/darwin-libgcc.10.5.ver: New.
	* config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete.
	* config/rs6000/t-darwin (SHLIB_VERPFX): Define.

2005-09-28  Paul Brook  <paul@codesourcery.com>

	* config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle
	denormals.

2005-09-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/23853
	* tree-vect-analyze.c (vect_compute_data_ref_alignment): Use
	host_integerp to verify misalignment value.

2005-09-28  Richard Henderson  <rth@redhat.com>

	* builtins.c (get_builtin_sync_mode): New.
	(expand_builtin_sync_operation): Pass in mode argument.
	(expand_builtin_compare_and_swap): Likewise.
	(expand_builtin_lock_test_and_set): Likewise.
	(expand_builtin_lock_release): Likewise.
	(expand_builtin): Update to match.

2005-09-28  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up
	formatting.  Add check to PLUS case to ensure that the offset is
	within an acceptable range.

	* config/v850/v850.md (casesi): Disable the generation of the
	switch pattern as it is not being handled properly at the moment.

	* config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction
	for when the high words are identical.

2005-09-27  Richard Henderson  <rth@redhat.com>

	* pretty-print.c (pp_base_format): Fix typo for %>.

2005-09-27  Daniel Berlin  <dberlin@dberlin.org>
	    Devang Patel  <dpatel@apple.com>

	PR tree-optimization/23625
	* tree-flow-inline.h (bsi_after_labels): Remove, first statement is
	LABEL_EXPR, assertion check.

2005-09-27  J"orn Rennecke <joern.rennecke@st.com>

	* optabs.c (no_conflict_move_test): Check if a result of a
	to-be-moved insn would be clobbered by an originally
	preceding insn.

2005-09-27  Jeff Law  <law@redhat.com>

	* passes.c (init_optimization_passes): Replace copy propagation
	passes immediately after DOM with phi-only copy propagation
	pases.  Add phi-only copy propagation pass after first DOM pass.
	* tree-pass.h (pass_phi_only_copy_prop): Declare.
	* tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument.
	If true, then mark all non-control statements with DONT_SIMULATE_AGAIN.
	(execute_copy_prop): Accept new PHI_ONLY argument.  Pass it along
	to init_copy_prop.  Callers updated.
	(do_phi_only_copy_prop): New function.
	(pass_phi_only_copy_prop): New pass descriptor.

2005-09-27  Nick Clifton  <nickc@redhat.com>

	* libgcc2.c (__popcount_tab): Remove redundant prototype.

2005-09-26  Jason Merrill  <jason@redhat.com>

	PR c++/13764
	* c-common.c (finish_fname_decls): Use append_to_statement_list_force.

	* doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs.

2005-09-26  James E Wilson  <wilson@specifix.com>

	* config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc
	copyright.  Add gcc copyright plus libgcc exception.
	* config/ia64/crtfastmath.asm: Remove glibc copyright.  Add gcc
	copyright.
	* config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception.

2005-09-26  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective
	about when to iterate.

2005-09-23  Fariborz Jahanian <fjahanian@apple.com>

	PR target/23847
	* config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern
	for __complex__ double in -mcpu=G5 mode.

2005-09-26  Sebastian Pop  <pop@cri.ensmp.fr>

	PR tree-optimization/23942
	* Makefile.in (SCEV_H): Depends on PARAMS_H.
	* tree-scalar-evolution.c: Include params.h.
	(t_bool): New enum.
	(follow_ssa_edge, follow_ssa_edge_in_rhs,
	follow_ssa_edge_in_condition_phi_branch,
	follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi):
	Change return type to t_bool.  Use a parameter to limit the size of
	trees that are walked before stopping
	(analyze_evolution_in_loop): Initialize the limit to 0.
	(follow_ssa_edge): Give up by returning t_dont_know if the limit
	exceeds PARAM_SCEV_MAX_EXPR_SIZE.

2005-09-26  Uros Bizjak  <uros@kss-loka.si>

	PR middle-end/23831
	* simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip
	simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT.

2005-09-26    Fariborz Jahanian <fjahanian@apple.com>

	* combine.c (make_extraction): Check for valid use of subreg.

2005-09-26  Uros Bizjak  <uros@kss-loka.si>

	PR target/24055
	* config/i386/i386.md ("*fistdi2_1"): New pattern.
	("*fist<mode>2_1"): Use only HImode and SImode register operands.
	("fist<mode>2_with_temp"): Use only register operands.

2005-09-26  J"orn Rennecke <joern.rennecke@st.com>

	* rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in
	CALL_INSN_FUNCTION_USAGE.

2005-09-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/15855
	* gcse.c: Include hashtab.h, define ldst entry hashtable.
	(pre_ldst_expr_hash, pre_ldst_expr_eq): New functions.
	(ldst_entry): Use the hashtable instead of list-walking.
	(find_rtx_in_ldst): Likewise.
	(free_ldst_entry): Free the hashtable.
	(compute_ld_motion_mems): Create the hashtable.
	(trim_ld_motion_mems): Remove entry from hashtable if
	removing it from list.
	(compute_store_table): Likewise^2.
	(store_motion): Free hashtable in case we did not see
	any stores.

2005-09-25  Kazu Hirata  <kazu@codesourcery.com>

	* fold-const.c (fold_binary): Use op0 and op1 instead of arg0
	and arg1 if we are passing them to fold_build2.

2005-09-25  Dan Nicolaescu  <dann@ics.uci.edu>

	PR 23828
	* config/i386/i386.c (ix86_function_regparm): Fix the test for
	a nested function.

2005-09-25  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (tls_symbolic_operand_1): Trust
	SYMBOL_REF_TLS_MODEL to be correct.

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

	* ipa-type-escape.c (discover_unique_type): Remove dead code at
	end of function.  Reindent.

2005-09-24  Ian Lance Taylor  <ian@airs.com>

	* convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in
	NEGATE_EXPR/BIT_NOT_EXPR case.

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

	* c-common.c (handle_mode_attribute): When not modifying in place,
	create subtypes for enumerations.
	(sync_resolve_return): Use TYPE_MAIN_VARIANT.
	* gimplify.c (create_tmp_from_val): Likewise.

2005-09-24  Alexandre Oliva  <aoliva@redhat.com>

	* config/i386/i386.md (*tls_global_dynamic_64,
	*tls_local_dynamic_base_64): Add missing mode to call.
	(tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise.

2005-09-24  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_clone_edge): Make the scale gcov_type.
	(cgraph_clone_node): Likewise.
	* cgraph.h (cgraph_clone_edge): Update prototype.
	(cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove
	duplicated prototypes; add updating argument.
	* cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative.
	* ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without
	updating profile.
	(cgraph_mark_inline_edge): Likewise.
	(cgraph_mark_inline): Update use of cgraph_mark_inline_edge.
	(cgraph_flatten_node): Likewise.
	(cgraph_decide_recursive_inlining): Likewise.
	(cgraph_decide_inlining_of_small_function): Likewise.
	* tree-optimize.c (tree_rest_of_compilation): Likewise.

2005-09-23  David Edelsohn  <edelsohn@gnu.org>
	    Pete Steinmetz <steinmtz@us.ibm.com>

	* config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul.
	(rldic.): Set type to "compare".
	(rldicr.): Same.
	(movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR.  Set type to
	mfjmpr for MFCTR/MFLR.
	(movdf_hardfloat64): Same.
	(movdf_softfloat64): Same.  Correct order of store and move types.
	(movti_string): Set type to store_ux/load_ux.
	(load_multiple): Set type to load_ux.
	(store_multiple): Set type to store_ux.
	(movmemsi): Set type to store_ux.
	(output_cbranch direct_return): Set type to jmpreg.
	(stmw): Set type to store_ux.
	(lmw): Set type to load_ux.
	* config/rs6000/40x.md (ppc403-store): Increase latency to 2.
	* config/rs6000/440.md (ppc440-store): Increase latency to 6.
	* config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles.
	* config/rs6000/6xx.md (ppc604-store): Increase latency to 3.
	* config/rs6000/mpc.md (mpccore-store): Increase latency to 2.
	* config/rs6000/rios1.md (rios1-store): Increase latency to 2.
	(rios1-fpstore): Increase latency to 3.
	* config/rs6000/rios2.md (rios2-store): Increase latency to 2.
	* config/rs6000/rs64.md (rs64a-store): Increase latency to 2.

2005-09-23  David Edelsohn  <edelsohn@gnu.org>
	    Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/sync.md (sync_<fetchop_name>si_internal): Change
	operand2 constraint to "b".
	(sync_<fetchop_name>di_internal): Same.
	(sync_old_<fetchop_name>si_internal): Change operand3 constraint
	to "b".
	(sync_old_<fetchop_name>di_internal): Same.
	(sync_new_<fetchop_name>si_internal): Same.
	(sync_new_<fetchop_name>di_internal): Same.

2005-09-23  J"orn Rennecke <joern.rennecke@st.com>

	PR middle-end/23991
	* final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length
	case, define as macros.

	PR rtl-optimization/23837
	*  optabs.c (no_conflict_move_test): Don't set must_stay for a
	clobber / clobber match between dest and p->first.

	* optabs.c (emit_libcall_block): Use no_conflict_move_test.
	(no_conflict_move_test): Update comments.

2005-09-22  Ranjit Mathew  <rmathew@gcc.gnu.org>

	* doc/install.texi: Update URL for Jacks.
	* doc/sourcebuild.texi: Likewise.

2005-09-22  David Edelsohn  <edelsohn@gnu.org>

	PR target/24007
	* config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
	registers when choosing register preferences.
	(movdf_hardfloat64): Same.

2005-09-22  Andreas Krebbel  <krebbel1@de.ibm.com>

	* expmed.c (expand_shift): Don't use the target of the rotate as
	target for the first expanded shift insn.

2005-09-21  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/22438
	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all
	preserved iv rhs rewriting specially.

2005-09-21  Daniel Berlin  <dberlin@dberlin.org>

	* tree-data-ref.c (analyze_array_indexes): Only estimate when
	estimate_only  is true.
	* tree-flow.h (ref_contains_indirect_ref): New prototype.
	* tree-flow-inline.h (ref_contains_indirect_ref): Moved from
	tree-ssa-structalias.c
	* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
	ref_contains_indirect_ref.
	* tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.

2005-09-21  DJ Delorie  <dj@redhat.com>

	* config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add
	MASK_PTR_A0D0.
	(mn10300_return_in_memory): Support variable size types also.
	(mn10300_pass_by_reference): Likewise.
	(mn10300_function_value): New.
	* config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above.
	(FUNCTION_OUTGOING_VALUE): Likewise.
	* config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0.
	* doc/invoke.texi: Document it.

2005-09-21  Uros Bizjak  <uros@kss-loka.si>

	PR target/22585
	* config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
	force integer op1 into register for XFmode compares.

2005-09-21  Kazu Hirata  <kazu@codesourcery.com>

	PR middle-end/23971
	* expmed.c (alg_code): Add alg_impossible.
	(alg_hash_entry): Add cost.
	(synth_mult): Record alg_impossible in the hash table if
	multiplication by a given integer is impossble within the
	limit.  Speed up using alg_impossible.

2005-09-20  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (get_constraint_for_component_ref): Add
	argument.  Allow and set any offset if needs_anyoffset is passed
	in.
	(get_constraint_for): Add argument here too.
	Pass it down.
	(do_structure_copy): Pass NULL to get_constraint_for.
	(handle_ptr_arith): Ditto.
	(find_func_aliases): Ditto.

2005-09-20  J"orn Rennecke <joern.rennecke@st.com>

	PR rtl-optimization/23898
	* output.h (get_attr_min_length): Declare.
	* final.c (get_attr_length_1): New function, broken out of:
	(get_attr_length).
	(get_attr_min_length): New function.
	* bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it.
	(duplicate_computed_gotos): Likewise.
	* genattr.c (insn_min_length): Generate declaration.
	* genattrtab.c (min_fn, min_attr_value): New functions.
	(make_length_attrs): Generate insn_min_length.

2005-09-20  Steve Ellcey  <sje@cup.hp.com>

	* config/pa/pa.c (output_cbranch): Check for zero in operands[2].

2005-09-20  Richard Henderson  <rth@redhat.com>

	PR tree-optimization/24059
	* expr.c (expand_expr_real_1) <INDIRECT_REF>: Allow modifier
	EXPAND_STACK_PARM.

2005-09-20  Joseph S. Myers  <joseph@codesourcery.com>

	* c.opt (fextended-identifiers): New.
	* c-opts.c (c_common_handle_option): Handle
	-fextended-identifiers.
	* doc/cpp.texi: Update documentation of extended identifiers.
	* doc/cppopts.texi (-fextended-identifiers): Document.

2005-09-20  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/23929
	* tree-ssa-loop-niter.c (expand_simple_operations): Return immediately
	if expr is NULL.

	PR tree-optimization/23818
	* tree-stdarg.c (execute_optimize_stdarg): Call
	calculate_dominance_info.

2005-09-20  Daniel Berlin  <dberlin@dberlin.org>

	* tree-data-ref.c (get_number_of_iters_for_loop): New function.
	(analyze_siv_subscript_cst_affine): Add weak SIV test.
	(compute_overlap_steps_for_affine_1_2): Use
	get_number_of_iters_for_loop.
	(analyze_subscript_affine_affine): Check whether difference is
	zero first.
	Use get_number_of_iters_for_loop.
	Check whether overlap occurs outside of bounds.
	(analyze_miv_subscript): Use get_number_of_iters_for_loop.

2005-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>

	* tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
	base register if possible.

2005-09-20  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/18463
	* tree-chrec.c (chrec_convert): Return fold_converted chrec if
	converting it directly is not possible.
	(chrec_convert_aggressive): New function.
	* tree-chrec.h (chrec_convert_aggressive): Declare.
	* tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers):
	Fold chrec conversions aggressively if asked to.
	(instantiate_parameters): Modified because of changes in
	instantiate_parameters_1.

2005-09-19  Richard Henderson  <rth@redhat.com>

	* config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf.
	(reduc_splus_v2df): New.

2005-09-19  Richard Sandiford  <richard@codesourcery.com>

	* config/arm/aof.h (REGISTER_NAMES): Add missing backslash.
	(ADDITIONAL_REGISTER_NAMES): Add missing comma.  Remove final comma.

2005-09-19  Richard Henderson  <rth@redhat.com>

	* config/i386/sse.md (vcondu<SSEMODE124>): Rename from
	vcondu<SSEMODE12>.

2005-09-19  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_expand_widen_sum): New.
	(ia64_expand_dot_prod_v8qi): New.
	* config/ia64/ia64-protos.h: Update.
	* config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3,
	widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi,
	sdot_prodv8qi, sdot_prodv4hi): New.
	(reduc_splus_v2sf): Rename from reduc_plus_v2sf.

2005-09-19  Richard Henderson  <rth@redhat.com>

	PR 23941
	* real.c (exact_real_truncate): Return false if the format cannot
	represent the number as a normal.

	* config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
	for a memory source.

2005-09-19  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-ssa-operands.c (swap_tree_operands): Export.
	* tree.h (swap_tree_operands): Declare.
	* tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
	Call swap_tree_operands.

2005-09-19  Richard Henderson  <rth@redhat.com>

	* tree-flow.h (merge_alias_info): Declare.
	* tree-ssa-copy.c (merge_alias_info): Export.
	* tree-vect-transform.c (vect_create_index_for_vector_ref): Remove.
	(vect_create_data_ref_ptr): Use create_iv directly.
	(vectorizable_load): Use correct types for integer constants.
	(vect_generate_tmps_on_preheader): Likewise.
	(vect_gen_niters_for_prolog_loop): Likewise.

2005-09-19  Steven Bosscher  <stevenb@suse.de>

	PR rtl-optimization/23943
	* cse.c (find_best_addr): Never propagate an EXPR_LIST rtx.

2005-09-18  Jan Hubicka  <jh@suse.cz>

	* calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK.

2005-09-18  Eric Botcazou  <ebotcazou@adacore.com>

	* varasm.c (output_constant): Do not abort on conversions to union
	types between different sizes.

2005-09-18  Richard Guenther  <rguenther@suse.de>

	PR middle-end/23944
	* gimplify.c (fold_indirect_ref_rhs): Fix thinko in
	fallback.

2005-09-18  Paul Brook  <paul@codesourcery.com>

	* config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow.

2005-09-17  Richard Henderson  <rth@redhat.com>

	* tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change.
	* tree-ssa-loop.c (pass_vect_dce): Remove.
	* passes.c (init_optimization_passes): Add pass_dce as a sub-pass
	of pass_vectorize.

2005-09-17  Richard Henderson  <rth@redhat.com>

	* tree-pass.h (pass_vect_dce): Declare.
	* passes.c (init_optimization_passes): Add it.
	* tree-flow.h (tree_ssa_dce): Declare.
	* tree-ssa-dce.c (tree_ssa_dce): Export.
	* tree-ssa-loop.c (tree_vectorize): Move current_loops check ...
	(gate_tree_vectorize): ... here.
	(pass_vect_dce): New.

2005-09-17  Jan Hubicka  <jh@suse.cz>

	* except.c (struct eh_status): Turn region_array into vec.
	(expand_resx_expr, collect_eh_region_array, remove_unreachable_regions,
	convert_from_eh_region_ranges, find_exception_handler_labels,
	current_function_has_exception_handlers, assign_filter_values,
	build_post_landing_pads, dw2_build_landing_pads,
	sjlj_find_directly_reachable_regions, sjlj_mark_call_sites,
	sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region,
	foreach_reachable_handler, can_throw_internal_1,
	convert_to_eh_region_ranges, verify_eh_tree): Update uses of
	region_array.
	(duplicate_eh_region_1): Update region_array.
	(duplicate_eh_regions): Resize region_array and avoid recomputing.

2005-09-17  David Edelsohn  <edelsohn@gnu.org>

	PR middle-end/22067
	* expmed.c (expand_mult): Substitute simple register for op0 when
	computing max_cost.

2005-09-17  Richard Henderson  <rth@redhat.com>

	* expr.c (emit_move_via_integer): Add force argument, pass it on
	to emit_move_change_mode.  Update callers.
	(emit_move_complex): Pass true to new force argument.
	* function.c (expand_function_end): Move expand_eh_return call
	earlier.  Merge sub-word complex values into a pseudo before
	copying to the return hard register.

2005-09-17  Eric Botcazou  <ebotcazou@adacore.com>

	* varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs
	between different sizes.

2005-09-16  Paolo Bonzini  <bonzini@gnu.org>

	PR 23903

	* passes.c (init_optimization_passes): Register dump files for
	IPA passes first.

2005-09-16  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390-protos.h (s390_overlap_p): Prototype added.
	* config/s390/s390.c (s390_overlap_p): New function.
	* config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc"
	peephole2, "*xc" peephole2): Added overlap check to the peephole2
	condition.

2005-09-16  Richard Guenther  <rguenther@suse.de>

	* ipa-pure-const.c (static_execute): Free auxiliar information.
	* ipa-type-escape.c (discover_unique_type): Free temporary key.
	* tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap.

2005-09-15  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo.

2005-09-15  Paolo Bonzini  <bonzini@gnu.org>

	* optabs.c (expand_binop): Use swap_commutative_operands_with_target
	to order operands.
	(swap_commutative_operands_with_target): New.

2005-09-15  Daniel Berlin  <dberlin@dberlin.org>

	* tree-data-ref.c (analyze_array_indexes): Add estimate_only
	parameter.
	Update callers.
	(estimate_iters_using_array): New function.
	* tree-data-ref.h (estimate_iters_using_array): Prototype
	* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
	Use estimate_iters_using_array instead of analyze_array.

2005-09-15  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-nested.c (get_frame_type): Mark the "non-local frame structure"
	as addressable.

2005-09-15  Michael Matz  <matz@suse.de>

	* tree-vrp.c (vrp_int_const_binop <MINUS_EXPR>): Handle 0 - -INF.

2005-09-14  Daniel Berlin  <dberlin@dberlin.org>

	PR tree-optimization/23835
	* tree-ssa-alias.c (sort_pointers_by_pt_vars): New function.
	(create_name_tags): Rewrite to be not O(num_ssa_names^2).

2005-09-14  Richard Henderson  <rth@redhat.com>

	* config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand.
	(addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New.

2005-09-14  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/i386/i386.c (contains_128bit_aligned_vector_p): Add break
	in the ARRAY_TYPE case.

2005-09-14  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF.

2005-09-14  Uros Bizjak  <uros@kss-loka.si>

	PR middle-end/22480
	* tree-vect-transform.c (vectorizable_operation): Return false for
	scalar shift operations and for vector shift operations with
	non-invariant shift arguments.  Use scalar tree operand op1 as
	a shift operand when vector shift insn pattern uses scalar shift
	operand.
	* Makefile.in (tree-vect-transform.o): Depend on recog.h.

2005-09-14  Olivier Hainque  <hainque@adacore.com>

	* gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized
	value if it has side-effects.

2005-09-14  David Edelsohn  <edelsohn@gnu.org>

	PR target/22068
	* config/rs6000/rs6000.md (muldi3): Add mulli alternative.

2005-09-14  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
	passed as NAME as if it were label at start of function code.

2005-09-13  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.md (*movv4sf_i): Add general register cases to
	the constraints.

2005-09-13  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint
	as early clobber.  Rewrite so the PIC register is not implicitly used.

2005-09-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* tree.c (annotate_with_file_line): Compare line numbers before
	file names.

2005-09-13  Uros Bizjak  <uros@kss-loka.si>

	PR target/23816
	* config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3)
	(*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns.

2005-09-13  Ian Lance Taylor  <ian@airs.com>

	* loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather
	than a HOST_WIDEST_INT to gen_doloop_begin.

2005-09-13  Diego Novillo  <dnovillo@redhat.com>

	* tree-dfa.c (dump_variable): Guard against NULL annotations.

2005-09-13  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimize/23817
	* tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.

2005-09-13  Alan Modra  <amodra@bigpond.net.au>

	PR target/23774
	* config/rs6000/rs6000.md (restore_stack_block): Write the backchain
	word before changing the stack pointer.	 Use gen_frame_mem for MEMs.
	Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
	(restore_stack_nonlocal): Likewise.
	(save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.

2005-09-12  Ian Lance Taylor  <ian@airs.com>

	PR g++/7874
	* c.opt (ffriend-injection): New C++ option.
	* doc/invoke.texi (Option Summary): Mention -ffriend-injection.
	(C++ Dialect Options): Document -ffriend-injection.

2005-09-12  Josh Conner  <jconner@apple.com>

	PR middle-end/23237
	* ipa-reference.c (static_execute): Don't mark variables in
	named sections TREE_READONLY.

2005-09-12  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
	stack_tie.

2005-09-12  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and
	V_MUST_DEF instead of just the first_use_p.
	Don't mark the virtual variables for renaming on the statement which
	is being removed.
	(pass_dse): Remove TODO_update_ssa.

2005-09-12  J"orn Rennecke <joern.rennecke@st.com>

	PR middle-end/23290
	* stor-layout.c (compute_record_mode): For records with a single
	field, actually check the field's mode size against the type size.

	* sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose
	registers for TARGET_SHMEDIA.
	(enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename
	GENERAL_FP_REGS to GENERAL_DF_REGS.  Add GENERAL_FP_REGS as union
	of GENERAL_REGS and FP_REGS.

2005-09-12  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.

2005-09-12  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
	CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
	are omitted.  Exclude stack_tie insn too.

2005-09-11  David Edelsohn  <edelsohn@gnu.org>

	PR rtl-optimization/23098
	* config/rs6000/predicates.md (easy_fp_constant): SFmode constant
	0.0f is easy.
	* config/rs6000/rs6000.md (movdf splitter): Use
	const_double_operand predicate for TARGET_POWERPC64.
	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
	SYMBOL_REF method to ABI_V4.

	* config/rs6000/altivec.md (build_vector_mask_for_load): Use
	replace_equiv_address.
	* config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
	rs6000_sr_alias_set and MEM_NOTRAP.
	(rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().

2005-09-11  Eric Botcazou  <ebotcazou@adacore.com>

	* tree.c (contains_placeholder_p) <tcc_expression>: Properly
	handle CALL_EXPR again.

2005-09-11  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm/predicates.md (alignable_memory_operand): Delete.

2005-09-10  Richard Henderson  <rth@redhat.com>

	PR debug/23806
	* dbxout.c (dbxout_expand_expr): New.
	(dbxout_symbol): Use it.

2005-09-10  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.c (arm_gen_rotated_half_load): Delete.
	(vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem.
	(emit_multi_reg_push, emit_sfm, arm_expand_prologue)
	(thumb_set_return_address): Likewise.
	(thumb_load_double_from_address): Use adjust_address.
	* arm.md (splits calling arm_gen_rotated_half_load): Delete.
	(extendhsisi2_mem, movhi_bytes): Use change_address.
	(movhi): Use widen_memory_access.
	(reload_out_df): Use replace_equiv_address.
	* arm-protos.h (arm_gen_rotated_half_load): Delete prototype.

2005-09-09  Richard Henderson  <rth@redhat.com>

	PR debug/20998
	* dbxout.c: Include expr.h.
	(dbxout_global_decl): Don't suppress for DECL_RTL unset.
	(dbxout_symbol): Handle DECL_VALUE_EXPR.
	* Makefile.in (dbxout.o): Add EXPR_H.

2005-09-09  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/23509
	* tree-cfg.c (replace_uses_by): Use replace_exp.
	* tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
	pointers have name_mem_tag or type_mem_tag set.

2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>

	* tree-chrec.c (evolution_function_is_invariant_rec_p): Use
	CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
	of wrongly accessing operands.

2005-09-09  Sebastian Pop  <pop@cri.ensmp.fr>

	* Makefile.in (tree-chrec.o): Depends on SCEV_H.
	* tree-chrec.c: Include tree-scalar-evolution.h.
	(chrec_convert): Instantiate the base and step before calling
	scev_probably_wraps_p that would fail on parametric evolutions.
	Collect all the fails into a single section failed_to_convert,
	print a diagnostic, and return chrec_dont_know instead of calling
	fold_convert.
	* tree-scalar-evolution.c (loop_closed_phi_def): New.
	(instantiate_parameters_1): Avoid instantiation of loop closed ssa
	phi nodes.
	(scev_const_prop): Don't replace the definition of a loop closed ssa
	phi node by itself, or by another loop closed ssa phi node.
	* tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
	that base and step are defined.

2005-09-09  Richard Guenther  <rguenther@suse.de>

	PR c++/23624
	* fold-const.c (fold_ternary): Check truth_value_p before
	calling invert_truthvalue.

2005-09-09  Nick Clifton  <nickc@redhat.com>

	* Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
	* libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed
	dimension of these arrays.
	* libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of
	these arrays.
	* longlong.h: Only provide a prototype for the __clz_tab[] array
	if this header has not been included from libgcc2.h.
	* config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than
	defining own types.
	Provide prototypes for exported functions.
	Use the __clz_tab[] and __popcount_tab[] arrays provided by
	libgcc2.c.

2005-09-08  Josh Conner  <jconner@apple.com>

	PR c++/21135
	PR c++/23180
	* expr.c (expand_expr_addr_expr_1): Don't invoke
	expand_simple_binop for EXPAND_INITIALIZER.

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

	PR debug/23190
	* toplev.c (wrapup_global_declaration_1): Split out ...
	(wrapup_global_declaration_2): ... from ...
	(wrapup_global_declarations): ... here.  Return bool.
	(check_global_declaration_1): Split out ...
	(check_global_declarations): from here.
	(emit_debug_global_declarations): New.
	* toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
	check_global_declaration_1, emit_debug_global_declarations): Declare.
	* c-decl.c (c_write_global_declarations_1): Don't create a vector
	of decls.  Call wrapup_global_declaration_1,
	wrapup_global_declaration_2, check_global_declaration_1 directly.
	(c_write_global_declarations_2): New.
	(ext_block): New.
	(c_write_global_declarations): Call c_write_global_declarations_2.
	* langhooks.c (write_global_declarations): Call
	emit_debug_global_declarations.

	* cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
	remove decls that have DECL_RTL_SET_P.
	* passes.c (rest_of_decl_compilation): Invoke
	cgraph_varpool_finalize_decl for all but functions.

2005-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* tree-vrp.c (extract_range_from_unary_expr): Do not set the range for
	the result of a conversion if the new min and max cannot be compared.

2005-09-08  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_sr_alias_set): Variable removed.
	(override_options): Setting s390_sr_alias_set removed.
	(save_fpr, save_gprs): Set alias set to vararg or frame.
	(restore_fpr, restore_gprs, s390_emit_prologue): Replace
	s390_sr_alias_set with get_frame_alias_set ().
	(s390_gimplify_va_arg): Replace s390_sr_alias_set with
	get_varargs_alias_set ().

2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>

	PR objc/20574
	PR objc/19324
	* c-parser.c (c_parser_objc_method_definition): If the next
	token is not "{", error out and don't start the function.

2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree-vrp.c (extract_range_from_expr): Move the check for non
	nullness after the check for gimple invariant.

2005-09-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* tree.c (host_integerp, tree_low_cst): Correct function comment.

2005-09-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>

	PR target/23747
	* config/m32r.md (movmemsi_internal): Canonicalize order of
	operands in PLUS component of template.

2005-09-07  Andreas Krebbel  <krebbel1@de.ibm.com>

	* reload1.c (fixup_eh_region_note): Remove assertion.
	(fixup_abnormal_edges): Reverted removal of call to
	find_many_sub_basic_blocks made on 2005-08-31.

2005-09-07  Richard Henderson  <rth@redhat.com>

	* function.c (ARG_POINTER_CFA_OFFSET): Move ...
	* defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
	(INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
	* dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
	rearrange for better packing.
	(INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
	(lookup_cfa_1): Remove inline marker.
	(cfa_equal_p): Split out of ...
	(def_cfa_1): ... here.  Use INVALID_REGNUM.
	(build_cfa_loc): Handle !cfa->indirect.
	(frame_pointer_cfa_offset): New.
	(dbx_reg_number): Assert register elimination performed; do
	leaf register remapping.
	(reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
	(eliminate_reg_to_offset): New.
	(based_loc_descr): Remove can_use_fbreg argument.  Use fbreg only
	for verifiably local stack frame addresses; re-base to CFA.
	(mem_loc_descriptor): Remove can_use_fbreg argument.
	(concat_loc_descriptor, loc_descriptor): Likewise.
	(containing_function_has_frame_base): Remove.
	(rtl_for_decl_location): Don't do register elimination or
	leaf register remapping here.
	(secname_for_decl): Split out from ..
	(add_location_or_const_value_attribute): ... here.
	(convert_cfa_to_loc_list): New.
	(compute_frame_pointer_to_cfa_displacement): New.
	(gen_subprogram_die): Use them.
	* tree.h (frame_base_decl): Remove.
	* var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
	(prologue_stack_adjust): Remove.
	(vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
	(adjust_stack_reference): Re-base memories to arg_pointer_rtx.
	(set_frame_base_location): Remove.
	(compute_bb_dataflow, emit_notes_in_bb): Don't call it.
	(dump_attrs_list, dump_dataflow_set): Use string concatenation.
	(vt_add_function_parameters): Don't eliminate_regs.
	(vt_initialize): Don't create frame_base_decl.

2005-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/install.texi (*-*-solaris2*): Clarify wording on the recommended
	version of GNU binutils for 4.x and later.

2005-09-06  Mark Mitchell  <mark@codesourcery.com>

	* ggc-page.c (ggc_push_context): Remove.
	(ggc_pop_context): Likewise.
	* ggc.h (ggc_push_context): Remove.
	(ggc_pop_context): Likewise.

2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>

	PR target/8973
	* config/arc/arc.c (arc_output_function_epilogue): Update flags while
	returning from an interrupt handler.

2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>

	PR target/8972
	* config/arc/arc.c (output_shift): Add check for loop count when
	optimizing.

2005-09-06  Steven Bosscher  <stevenb@suse.de>

	* tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
	form manually.
	(abs_replacement): Likewise.
	(pass_phiopt): Remove TODO_update_ssa.

2005-09-06  Jakub Jelinek  <jakub@redhat.com>

	PR c/23075
	* c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
	if "return with no value, in function returning non-void" warning
	has been issued.
	* tree-cfg.c (execute_warn_function_return): Don't look at
	RETURN_EXPRs with TREE_NO_WARNING set.

	PR target/22362
	* config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
	for internal functions doesn't use registers used by global registers
	variables.  Use fewer register parameters if there are global register
	variables.

2005-09-06  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/14997
	* expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
	when we would be extracting outside its bit span (bitpos+bitsize
	larger than its mode), possible with some VIEW_CONVERT_EXPRs from
	Ada unchecked conversions.

2005-09-06  Steven Bosscher  <stevenb@suse.de>

	* tree-ssa-pre.c (try_look_through_load): New function.
	(compute_avail): Use it to try to look through loads for some
	more useful expressions.

2005-09-06  Saurabh Verma  <saurabh.verma@codito.com>

	* simplify-rtx.c (simplify_binary_operation_1): Correct the
	condition for detecting cases like (a&a) and (a^a).

2005-09-06  Keith Besaw  <kbesaw@us.ibm.com>

	* common.opt: Add option ftree-vect-loop-version.
	* params.def: Add --param vect-max-version-checks.
	* doc/invoke.texi: Document ftree-vect-loop-version and
	--param vect-max-version-checks.
	* tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
	may_misalign_stmts and defines for accessors.
	* tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
	LOOP_VINFO_MAY_MISALIGN_STMTS.
	(destroy_loop_vec_info): VEC_free for
	LOOP_VINFO_MAY_MISALIGN_STMTS.
	* tree-vect-analyze.c (vect_compute_data_ref_alignment):
	Update documentation.
	(vect_update_misalignment_for_peel): New.
	(vect_enhance_data_refs_alignment): Update to choose loop
	peeling or loop versioning if appropriate for the (potentially)
	unaligned data references in the loop.
	(vect_analyze_data_refs_alignment): Remove call to
	vect_enhance_data_refs_alignment so the checks can be done
	earlier.
	(vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
	and move up call to vect_analyze_data_refs_alignment.
	* tree-vect-transform.c (vect_create_cond_for_align_checks): New.
	(vect_transform_loop): Add call to loop_version.

2005-09-06  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/23098
	* cse.c (fold_rtx_mem): Call delegitimize_address target hook.
	* simplify-rtx.c (constant_pool_reference_p): New function.
	* rtl.h (constant_pool_reference_p): New prototype.
	* config/i386/i386.md (pushf split, mov[sdx]f split): Use
	constant_pool_reference_p in condition and
	avoid_constant_pool_reference in preparation statements.

2005-09-06  Andreas Krebbel  <krebbel1@de.ibm.com>

	* gcse.c (try_replace_reg): Disallow REG_EQUAL notes for
	STRICT_LOW_PART SETs.

2005-09-06  Alan Modra  <amodra@bigpond.net.au>

	PR middle-end/21460
	* except.c (sjlj_emit_function_enter): Find the function begin
	note even when it's not in first basic block.

2005-09-06  Kelley Cook  <kcook@gcc.gnu.org>

	* acinclude.m4: Renamed from aclocal.m4.  Delete AM_LANGINFO_CODESET,
	AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND.
	* aclocal.m4: Regenerate.

2005-09-05  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling
	of macro.

2005-09-06  Kazu Hirata  <kazu@codesourcery.com>

	* gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c,
	config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c,
	config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos.
	Follow spelling conventions.
	* doc/invoke.texi: Follow spelling conventions.

2005-09-05  J"orn Rennecke <joern.rennecke@st.com>

	* rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare.
	* emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions.
	* builtins.c (expand_builtin_return_addr): Use gen_frame_mem.

2005-09-05  J"orn Rennecke <joern.rennecke@st.com>

	PR target/23683
	* sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem.
	(output_stack_adjust): Use gen_tmp_stack_mem.
	(sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem.
	(sh_set_return_address, sh_allocate_initial_value): Likewise.
	(sh_get_pr_initial_val): Likewise.
	(sh_builtin_saveregs): Use gen_frame_mem and change_address.
	(sh_initialize_trampoline): Likewise.  Also use adjust_address.
	* sh.md (divsi_inv_m0): Use gen_const_mem.
	(push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem.
	(movdf_i4+1): Use gen_tmp_stack_mem.
	(reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address.
	(fpu_switch+2): Likewise.
	(movv4sf_i, movv16sf_i): Use adjust_address.
	(symGOT_load): Set MEM_NOTRAP_P bit.

2005-09-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/23721
	* pa.c (emit_move_sequence): Fix typo in last change.

2005-09-03  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/23454
	* reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
	is true.

2005-09-03  Richard Henderson  <rth@redhat.com>
	    John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/23671
	* pa.c (emit_move_sequence): Use replace_equiv_address instead of
	gen_rtx_MEM.

2005-09-02  Nicolas Pitre <nico@cam.org>

	* config/arm/arm.c (arm_legitimize_address): Limit the value passed
	to bit_count to 32 bits.

2005-08-31  Mark Mitchell  <mark@codesourcery.com>

	PR c++/23167
	* gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
	generating synthetic loads from volatile lvalues.

005-09-02  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2,
	__ctzhi2, __clzhi2): New functions.

2005-09-02  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/23547
	* tree-nested.c (struct var_map_elt): Mark with GTY.
	(struct nesting_info): Mark with GTY.  Mark var_map's param is struct
	var_map_elt.
	(lookup_field_for_decl): Allocate new element in GC memory.
	(lookup_tramp_for_decl): Likewise.
	(convert_nl_goto_reference): Likewise
	(create_nesting_tree): Allocate info in GC memory. Likewise for
	info->var_map.
	(free_nesting_tree): Free with ggc_free instead of free.
	(root): New static variable.
	(lower_nested_functions): Remove root as local variable.  And zero out
	root at the end of the function.

2005-09-02  J"orn Rennecke <joern.rennecke@st.com>

	PR rtl-optimization/20365
	* simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg
	to short.  New member ix.
	(simplify_plus_minus_op_data_cmp): Break ties using ix member.
	(simplify_plus_minus): Initialize ix members before calling qsort.

2005-09-02  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/23626
	* tree-cfg.c (replace_uses_by): Clean up eh info.

2005-09-01  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
	fprintf.

2005-09-01  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P.
	(rs6000_split_multireg_move): Use replace_equiv_address instead of
	gen_rtx_MEM.

2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* c-decl.c (diagnose_mismatched_decls): With -Wredundant-decls,
	do not issue warning for a variable definition following
	a declaration.

2005-09-01  Richard Henderson  <rth@redhat.com>

	PR 23668
	* config/i386/i386.c (ix86_expand_vector_init_one_var): Restore
	conversion to CONST_VECTOR.

2005-09-01  Richard Henderson  <rth@redhat.com>

	PR 23676
	* reload1.c (reload_as_needed): Check !CALL_P before calling
	fixup_eh_region_note.
	* rtlanal.c (may_trap_p): SUBREG by itself cannot trap.

2005-09-01  DJ Delorie  <dj@redhat.com>

	* varasm.c (output_constant): Let the target resolve
	conversions of addresses to non-default pointer sizes.

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

	* config/arm/arm.c (arm_legitimize_address): Split absolute addresses
	to alow matching ARM pre-indexed addressing mode.
	(arm_override_options): Remove now irrelevant comment.

2005-09-01  Phil Edwards  <phil@codesourcery.com>

	* config.gcc (i*86-wrs-vxworks): Update.  Split out vxworksae target.
	* config/i386/t-vxworks: Update multilibs for VxWorks 6 and RTP mode.
	* config/i386/vxworks.h: Likewise.
	* config/i386/t-vxworksae: New file, for VxWorks AE.
	* config/i386/vxworksae.h: Likewise.

2005-09-01  Sebastian Pop  <pop@cri.ensmp.fr>

	PR tree-optimization/23410
	* tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the
	sequence is not wrapping during the first step.

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

	PR debug/7241
	* dwarf2out.c (base_type_die): Compare char_type_node with
	TYPE_MAIN_VARIANT (type), not type.

2005-09-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/15366
	* common.opt: Add -finline-functions-called-once.
	Put -fearly-inlining in alphabetically ordered place.
	* doc/invoke.texi: Document new option.
	* ipa-inline.c (cgraph_decide_inlining): Honour
	flag_inline_functions_called_once.

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

	PR rtl-optimization/23478
	* local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
	(alloc_qty): Initialize it.
	(update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
	(combine_regs): Combine also n_throwing_calls_crossed fields.
	(find_free_reg): Don't attempt to caller-save pseudos crossing
	calls that might throw.
	* global.c (struct allocno): Add throwing_calls_crossed field.
	(global_alloc): Revert 2005-08-22 change.  Initialize
	throwing_calls_crossed.
	(find_reg): Don't attempt to caller-save pseudos crossing calls that
	might throw.

2005-09-01  Alan Modra  <amodra@bigpond.net.au>

	PR target/23649
	* config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks.
	(mask64_operand): Reinstate code prior to 2005-06-11 change.
	(mask64_2_operand): Reinstate code prior to 2004-11-11 change.
	(and64_2_operand): Tweak to use predicate.
	(and_operand): Adjust for mask_operand changes.
	* config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11.
	(print_operand): Likewise.
	(rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand.
	(mask64_1or2_operand): Delete.
	* rs6000/rs6000-protos.h (mask64_1or2_operand): Delete.
	* config/rs6000/rs6000.h (EXTRA_CONSTRAINT <S>): Revert 2005-06-11.
	(EXTRA_CONSTRAINT <T>): Pass operand mode to predicate.
	(EXTRA_CONSTRAINT <t>): Disallow mask64_operand matches.
	* config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11.
	(rotldi3_internal4): Likewise.
	(rotldi3_internal5, rotldi3_internal5 split): Likewise.
	(rotldi3_internal6, rotldi3_internal6 split): Likewise.
	(ashldi3_internal7): Likewise.
	(ashldi3_internal8, ashldi3_internal8 split): Likewise.
	(ashldi3_internal, ashldi3_internal9 split): Likewise.
	(anddi3 split): Don't match mask64_operand.
	(anddi3_internal2): Add rlwinm.  Modify 't' splitter predicate.
	(anddi3_internal3): Add rlwinm.  Use and64_2_operand in non-cr0
	splitter and match TARGET_64BIT not TARGET_POWERPC64.  Modify
	't' splitter predicate.
	(movdi_internal64 + 2): Revert 2005-06-11 change.

2005-08-31  DJ Delorie  <dj@redhat.com>

	* config/m32c/m32c.c (m32c_valid_pointer_mode): New.
	(m32c_asm_integer): Add support for 32 bit pointers.

2005-08-31  Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Look through
	component-like references for setting MEM_NOTRAP_P.

	* config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P.
	* config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.

2005-08-31  Richard Henderson  <rth@redhat.com>

	* expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
	into a pseudo before applying gen_lowpart.

2005-08-31  Geoffrey Keating  <geoffk@apple.com>

	* doc/install.texi (Specific): Update cctools version required
	for full functionality.
	* config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the
	linkers as -macosx_version_min.

2005-08-31  J"orn Rennecke <joern.rennecke@st.com>

	PR target/21255
	* sh.c (print_operand, %R and %S): Add handling of floating point
	registers, memory, constants and invalid operands.

2005-08-31  Daniel Berlin  <dberlin@dberlin.org>

	* ipa-pure-const.c: Change dump name.

2005-08-31 Uros Bizjak <uros@kss-loka.si>

	PR target/23570
	* config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
	to "reg_or_0_operand".
	(sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".

2005-08-31  Dale Johannesen  <dalej@apple.com>

	* loop-iv.c (iv_number_of_iterations): Fix overflow check for
	loops that count down.

2005-08-31  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/23601
	* reload1.c (reload): Set MEM_NOTRAP_P in spill slots.
	(fixup_eh_region_note): New.
	(reload_as_needed): Call it.
	(fixup_abnormal_edges): Allow all throwing insns to be deleted;
	don't call find_many_sub_basic_blocks; call verify_flow_info.
	* function.c (assign_stack_local_1): Set MEM_NOTRAP_P.
	(keep_stack_depressed): Likewise.
	(assign_stack_temp_for_type): Likewise; use adjust_address_nv.

2005-08-31  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for
	fp return matching.

2005-08-31  Fariborz Jahanian <fjahanian@apple.com>

	* expr.c (expand_expr_real_1): Compare size of address
	mode to target's address mode size in deciding expansion of
	the constant address.

2005-08-31  Richard Guenther  <rguenther@suse.de>

	PR middle-end/23477
	* expr.c (all_zeros_p): New function.
	(expand_expr_real_1): Handle the case of an all-zero
	non-addressable constructor separately.

2005-08-31  Adrian Straetling  <straetling@de.ibm.com>

	* builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change
	arguments, adjust all callers.
	(expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy.

2005-08-30  Richard Henderson  <rth@redhat.com>

	PR target/23630
	* expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
	whenever the mode sizes match.

2005-08-31  Alan Modra  <amodra@bigpond.net.au>

	* calls.c (load_register_parameters): Fix comment typo.
	* expr.c (emit_push_insn): Comment formatting.

2005-08-30  Ian Lance Taylor  <ian@airs.com>

	* config/i386/x-cygwin (host-cygwin): Change dependency from
	hosthooks-def.h to $(HOSTHOOKS_DEF_H).

2005-08-29  Geoffrey Keating  <geoffk@apple.com>

	* config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify
	parts of 'vals'.

2005-08-29  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/23408
	* ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the
	call to ggc_collect.

2005-08-29  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/21268
	* Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
	beginning.  Remove $(INCLUDES) from all the rules, if following
	$(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).

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

	PR middle-end/23484
	* builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
	fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is
	not constant, but maxlen is, don't set len to maxlen, rather
	set maxlen to len if len is a constant.

2005-08-29  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/23475
	* tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies
	and counts.

2005-08-28  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR middle-end/22455

	* fold-const.c (fold_checksum_tree): Adjust for now-largest tree size.
	Checksum only the parts of the tree that exist for the tree code.

2005-08-28  Dale Johannesen  <dalej@apple.com>

	* config/i386/i386.c (nocona_cost): Increase MOVE_RATIO.

2005-08-28  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree-vrp.c: Remove obsolete comment in front of vrp_initialize.

2005-08-28  Richard Henderson  <rth@redhat.com>

	* stor-layout.c (finalize_type_size): Revert workaround from 08-26.
	* tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment
	of char_type_node.

2005-08-28  Jakub Jelinek  <jakub@redhat.com>

	PR ada/23593
	* builtins.c (get_memory_rtx): Don't strip nops
	in between COMPONENT_REFs.

2005-08-27  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/23463
	* gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized
	types.
	(gimplify_modify_expr): Check for zero sized types and gimplify the
	rhs and lhs as statements.

2005-08-27  John David Anglin  <dave.anflin@nrc-cnrc.gc.ca>

	PR libgcj/23508
	* pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
	state for return address column of signal frames.

2005-08-27  David Edelsohn  <edelsohn@gnu.org>

	PR target/23539
	* config/rs6000/rs6000.c (expand_block_clear): Use HImode when
	bytes >= 2 not bytes == 2.
	(expand_block_move): Same.

2005-08-27  Richard Guenther  <rguenther@suse.de>

	PR target/23575
	* config/i386/sse.md (sse2_movsd): Add missing closing
	braces.

2005-08-27  Paul Brook  <paul@codesourcery.com>

	* genrecog.c (enum decision_type): Add DT_num_insns.
	(struct decision_test): Add u.num_insns.
	(add_to_sequence): Add DT_num_insns test.
	(maybe_both_true_2, nodes_identical_1): Handle DT_num_insns.
	(write_cond, debug_decision_2): Ditto.
	(change_state): Assume peep2_next_insn never fails.
	Remove "afterward" argument.
	(write afterward, write_tree): Update to match.
	* recog.c (peep2_current_count): New variable.
	(peep2_next_insn): Check it.
	(peephole2_optimize): Set peep2_current_count.
	* recog.h (peep2_current_count): Declare.

2005-08-26  Josh Conner  <jconner@apple.com>

	PR middle-end/23584
	* ipa-pure-const.c (check_tree): Check for volatile-ness
	when considering a dereference.

2005-08-27  Jakub Jelinek  <jakub@redhat.com>

	* rtl.h (MEM_IN_STRUCT_P): Fix comment typo.

2005-08-26  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/23561
	* builtins.c (get_memory_rtx): Add LEN argument.  If MEM_EXPR is
	a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
	at most LEN bytes long memory fits into the field.
	(expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
	expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
	expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.

2005-08-26  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/23560
	* loop.c (biased_biv_may_wrap_p): New.
	(maybe_eliminate_biv_1): Use it to suppress non-equality
	comparison transformations.  Delete disabled code.

2005-08-26  Ian Lance Taylor  <ian@airs.com>

	* combine.c (make_extraction): Avoid reference outside object.

2005-08-26  J"orn Rennecke <joern.rennecke@st.com>

	* stor-layout.c (finalize_type_size): Restore behaviour for
	non-aggregate types to the status quo ante of the patch for
	pr 23467.  Document why it matters.

2005-08-26  Jakub Jelinek  <jakub@redhat.com>

	PR c/23506
	* c-common.c (c_common_nodes_and_builtins): Increase builtin_types
	array by one element, initialize the BT_LAST element with NULL.

2005-08-26  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (eq<mode>_compare): Only enable when
	optimizing for size.
	(plus_eqsi): Same.
	(compare_plus_eqsi): Same.
	(plus_eqsi_compare): Same.
	(neg_eq0<mode>): Same.
	(neg_eq<mode>): Same.

	* config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to
	PROCESSOR_POWER4.

2005-08-26  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.c (ep_memory_operand): Return FALSE if
	TARGET_EP is not defined.
	* config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
	TARGET_EP is enabled.
	(OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
	* config/v850/v850.md (save_all_interrupt): Only use the EP
	register if TARGET_EP is defined.
	(restore_all_interrupt): Likewise.
	* config/v850/lib1funcs.asm: Update functions so that the EP
	register is only used if __EP__ is defined.

2005-08-26  David Ung  <davidu@mips.com>

	* config/mips/mips.c (mips_expand_prologue): Handle case when
	generating for MIPS16 and the outgoing argument area is more than
	SMALL_OPERAND. Use the frame pointer as temporary to generate the
	add instruction.

2005-08-26  Paul Woegerer  <paul.woegerer@nsc.com>

	* config/crx/crx.md: Make doloop_end pattern usage controllable
	via mloop-nesting=<max-nesting> command line switch. Make sure
	the combiner cannot use doloop_end_<mode> in an illegal way.
	* config/crx/crx.c: Use regs up to r6 for argument passing.
	Refine crx_address_cost (non cst4 displacements are expensive).
	* config/crx/crx.opt: Add switch for mloop-nesting=.

2005-08-26  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md: ("movstr", "*movstr"): Add patterns.
	(UNSPEC_MVST): New constant.

2005-08-26  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/predicates.md ("shift_count_operand", "setmem_operand"):
	Reject operands containing eliminable registers.
	* testsuite/gcc.dg/20050825-1.c: New testcase.

2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
	    Jan Hubicka  <jh@suse.cz>

	* regmove.c (reg_is_remote_constant_p): Reorganize to not use log links.

2005-08-24  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/23546
	* tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
	and REAL_CST nodes.

2005-08-24  Pete Steinmetz  <steinmtz@us.ibm.com>

	* params.def (PARAM_MIN_SPEC_PROB): New.
	* sched-rgn.c (MIN_PROBABILITY): Delete.
	(compute_trg_info): Convert to PARAM_VALUE.
	* doc/invoke.texi (param): Document min-spec-prob.

2005-08-24  Fariborz Jahanian <fjahanian@apple.com>

	* config/darwin.h: define __PIC__
	* config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to
	TARGET_OS_CPP_BUILTINS macro.

2005-08-24  Paolo Bonzini  <bonzini@gnu.org>

	* config/rs6000/rs6000.md: Fix thinko in the peephole2 I added
	yesterday.

2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>

	* bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument
	to duplicate_block.
	* cfghooks.c (duplicate_block): Added position where to place
	new block as argument.
	* cfghooks.h (duplicate_block): Declaration changed.
	* cfglayout.c (copy_bbs): Add argument after.  Pass it to
	duplicate_block.
	* cfglayout.h (copy_bbs): Declaration changed.
	* cfgloop.h (loop_version): Declaration changed.
	* cfgloopmanip.c (duplicate_loop_to_header_edge): Pass
	position to copy_bbs.
	(loop_version): Pass position to duplicate_loop_to_header_edge.
	Add place_after argument and position new blocks according to
	it.
	* modulo-sched.c (sms_schedule): Pass place_after argument
	to loop_version.
	* tracer.c (tail_duplicate): Pass argument to duplicate_block.
	* tree-cfg.c (split_edge_bb_loc): New function.
	(tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc
	to determine position of new blocks.
	* tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument
	to loop_version.
	* tree-ssa-threadupdate.c (create_block_for_threading): Pass
	argument to duplicate_block.
	* tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg):
	Pass position to copy_bbs.

2005-08-24  Zdenek Dvorak  <dvorakz@suse.cz>

	* fold-const.c (ptr_difference_const): Use
	cst_and_fits_in_hwi instead of host_integerp.

2005-08-24  Paolo Bonzini  <bonzini@gnu.org>

	* config/darwin.c (gen_pic_offset): New.
	(machopic_indirect_data_reference,  machopic_legitimize_pic_address):
	Use it.

2005-08-23  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/23486
	* tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals.

2005-08-23  Phil Edwards  <phil@codesourcery.com>

	* config.gcc (*-*-vxworks*): Update tm_file, add extra_options,
	remove use_collect2.
	(powerpc-wrs-vxworks): Update, split out *-*-vxworksae target.

	* target-def.h (TARGET_HAVE_CTORS_DTORS): Allow target
	configuration files to override the default value.

	* config/t-vxworks: Remove INSTALL_ASSERT_H.  Define STMP_FIXPROTO,
	EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
	* config/vx-common.h: New file, split out from...
	* config/vxworks.h: here.  Update for VxWorks 6.x and RTP mode.
	* config/vxworksae.h: New file, for VxWorks AE.
	* config/vxworks.opt: New file.
	* config/vxlib.c: Update for VxWorks 6.

	* config/rs6000/t-vxworks (MULTILIB_OPTIONS): New list.  Adjust
	other MULTILIB_* variables appropriately.
	(LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS): Correct from t-ppccomm.
	* config/rs6000/t-vxworksae: New file, adjust multilibs for AE.
	* config/rs6000/vxworks.h: Update for VxWorks 6.
	* config/rs6000/vxworksae.h: New file, mostly placeholder for now.

2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/20799
	* config/darwin.c (machopic_select_section): Remove the hack to
	mark "::operator new" and "::operator delete" for coalescing
	even though they are not weak.

2005-08-24  Alan Modra  <amodra@bigpond.net.au>

	* configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
	* configure: Regenerate.

2005-08-23  Paolo Bonzini  <bonzini@gnu.org>

	PR middle-end/23517
	* fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
	between vectors.
	* convert.c (convert_to_integer, convert_to_vector): Likewise.
	* tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1):
	Likewise.

2005-08-23  Paolo Bonzini  <bonzini@gnu.org>

	* config/rs6000/predicates.md (equality_operator): New.
	* config/rs6000/rs6000.md: Rewrite as a peephole2 the split for
	comparison with a large constant.

2005-08-23  Mark Mitchell  <mark@codesourcery.com>

	* hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT.

2005-08-23  J"orn Rennecke <joern.rennecke@st.com>

	* sh.c (sh_builtin_saveregs): If the number of to-be-saved fp
	registers is even, and we have a hardware double precision fp,
	align the buffer.
	(sh_gimplify_va_arg_expr): For floating point arguments, consider
	size of current argument when checking if argument was passed in
	registers.

	* sh.c (sh_attr_renesas_p): Handle error_mark_node.

	PR middle-end/23467
	* stor-layout.c (finalize_type_size): Dont override
	existing alignment with a smaller alignment from the mode.

2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>

	* lambda-code.c (lambda_vector_lexico_pos): Moved...
	* lambda.h (lambda_vector_lexico_pos): ... here.
	* tree-data-ref.c (build_classic_dist_vector): Return false when
	the distance vector is lexicographically negative.

2005-08-23  Sebastian Pop  <pop@cri.ensmp.fr>

	PR tree-optimization/23511
	* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't
	handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE.

2005-08-23  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/22043
	* tree.h (count_type_elements): Add ALLOW_FLEXARR argument.
	* expr.c (count_type_elements): Add ALLOW_FLEXARR argument.
	If ALLOW_FLEXARR, handle types ending with flexible array member.
	Pass false as second argument to recursive count_type_elements calls.
	(categorize_ctor_elements_1, mostly_zeros_p): Pass false as second
	argument to count_type_elements call.
	* tree-sra.c (decide_block_copy): Likewise.
	* gimplify.c (gimplify_init_constructor): If num_type_elements < 0
	for a constant-sized object, set cleared as well.  Pass true as
	second argument to count_type_elements call.

2005-08-23  Alan Modra  <amodra@bigpond.net.au>

	PR target/21571
	* config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
	from legitimate_small_data_p, and make global.  Update use.
	Remove forward declaration.
	* config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
	Declare.
	* config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.

2005-08-23  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (eq<mode>): Use output operand instead
	of scratch intermediates.
	(eq<mode>_compare): Same.
	(neg_eq0<mode>): New.
	(neg_eq<mode>): Convert to define_insn_and_split.

2005-08-23  Alan Modra  <amodra@bigpond.net.au>

	PR target/23070
	* config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
	stdarg functions, set/clear the fp marker even when no variable
	args are passed.
	* config/rs6000/sysv4.opt (mprototype): Describe.

2005-08-22  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/23478
	* regs.h (reg_info): Add throw_calls_crossed.
	(REG_N_THROWING_CALLS_CROSSED): Define.
	* flow.c (allocate_reg_life_data): Initialize
	REG_N_THROWING_CALLS_CROSSED.
	(propagate_one_insn, attempt_auto_inc): Update
	REG_N_THROWING_CALLS_CROSSED.
	* global.c (global_alloc): Don't allocate pseudos across
	calls that may throw.

2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c/18715
	* c-common.c (c_do_switch_warnings): Look for a node where the enum's
	value is inbetween the range if we did not find an exact match.

2005-08-22  Aldy Hernandez  <aldyh@redhat.com>

	* doc/invoke.texi (Option Summary): Add ms1 options.
	* doc/extend.texi: Document interrupt handler attribute for ms1.
	* doc/md.texi: Document ms1 constraints.
	* config.gcc: Add ms1-*-elf.
	* config/ms1/ms1.h: New.
	* config/ms1/ms1.c: New.
	* config/ms1/ms1.md: New.
	* config/ms1/ms1-protos.h: New.
	* config/ms1/ABI.txt: New.
	* config/ms1/crti.asm: New.
	* config/ms1/crtn.asm: New.
	* config/ms1/lib2extra-funcs.c: New.
	* config/ms1/t-ms1: New.
	* config/ms1/ms1.opt: New.

2005-08-22 Ira Rosen <irar@il.ibm.com>

	* config/rs6000/altivec.md (xorv4sf3): New.
	(negv4sf2, neg<mode>2): Likewise.

2005-08-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/23485
	* config/ia64/ia64.md (divsi3): Check divide by zero.
	(udivsi3): Likewise.
	(divdi3): Likewise.
	(udivdi3): Likewise.

2005-08-21  Jakub Jelinek  <jakub@redhat.com>

	* simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
	up to elem_bitsize bits, not max_bitsize.

2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>

	PR tree-optimization/23433
	* tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
	REAL_CST when the type is SCALAR_FLOAT_TYPE_P.

2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>

	PR tree-optimization/23434
	* tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
	the iteration bound is not an INTEGER_CST.

2005-08-21  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-vect-transform.c (get_initial_def_for_reduction): Set
	need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to
	NULL if need_epilog_adjust is false.
	(vect_create_epilog_for_reduction): Variable adjust_in_epilog removed.
	Case 3 always peels first itration, not just for PLUS case, and no need
	to use scalar_initial_def here. Create an epilog adjustment only if
	scalar_initial_def is not NULL.

	(vectorizable_reduction): Remove assert.

2005-08-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/23485
	* config/ia64/lib1funcs.asm (__divdi3): Check divide by zero.
	(__moddi3): Likewise.
	(__udivdi3): Likewise.
	(__umoddi3): Likewise.
	(__divsi3): Likewise.
	(__modsi3): Likewise.
	(__udivsi3): Likewise.
	(__umodsi3): Likewise.

2005-08-20  Jakub Jelinek  <jakub@redhat.com>

	* tree-pass.h (TDF_GRAPH): Define.
	* tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
	* passes.c (finish_optimization_passes): Only call
	finish_graph_dump_file if TDF_GRAPH is set.
	(execute_one_pass): Only call clean_graph_dump_file if dump_file !=
	NULL.  Set TDF_GRAPH bit.
	(execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set.

2005-08-20  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.h (arm_stack_offsets): Add locals_base field.
	* arm.c (arm_get_frame_offsets): Compute it.
	(thumb_compute_initial_elimination offset): Make the Thumb frame
	pointer point to the base of the local variables.
	(thumb_expand_prologue): Update accordingly.
	(thumb_expand_epilogue): Likewise.

	* arm.md (thumb_movhi_clobber): Make this insn a define_expand.  Change
	mode of clobbered scratch to DImode.  Handle a case that's known to
	need this.

2005-08-19  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (gt0<mode>): Delete.
	(gt0<mode>_compare): Delete.
	(neg_gt0<mode>): Delete.

2005-08-19  Eric Christopher  <echristo@apple.com>

	* optabs.h: Change CTI_ to COI_.
	* optabs.c: Ditto.

2005-08-19  James E Wilson  <wilson@specifix.com>

	* builtins.c (expand_builtin_return_addr): Set
	current_function_accesses_prior_frames when count != 0.  Use
	frame_pointer_rtx when count == 0.
	* function.h (struct function): Add accesses_prior_frames field.
	(current_function_accesses_prior_frames): Define.
	* reload1.c (init_elim_table): Check
	current_function_accesses_prior_frames.
	* doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs.

2005-08-19  Diego Novillo  <dnovillo@redhat.com>

	* tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change
	indicator.  Return true if the flowgraph changed during
	cleanup.

2005-08-19  Diego Novillo  <dnovillo@redhat.com>

	PR 23476
	* tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the
	conditional expression before testing its value.

2005-08-19  Diego Novillo  <dnovillo@redhat.com>

	* doc/invoke.texi: Fix documentation for -ftree-dominator-opts.

2005-08-19  Devang Patel  <dpatel@apple.com>

	PR tree-optimization/23048
	* tree-if-conv.c (if_convertible_bb_p): Supply basic_block as
	third parameter. Check whether latch is dominated by exit
	block or not.
	(if_convertible_loop_p): Supply exit block itself to
	if_convertible_bb_p.

2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>

	PR target/23473
	* arm.md (arm_load_pic_register): Change argument to the mask of
	saved registers.  Call thumb_find_work_register if we need a
	scratch register on Thumb.
	(arm_expand_prologue): Pass empty register set to
	arm_load_pic_register.
	(thumb_expand_prologue): Pass live_regs_mask directly to
	arm_load_pic_register.
	* arm-protos.h (arm_load_pic_register): Update prototype.

2005-08-19  J"orn Rennecke <joern.rennecke@st.com>

	* sh.c (find_sole_member): New function.
	(sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch
	if the record's alignment is larger than the size of its only member.

2005-08-19  Richard Earnshaw  <richard.earnshaw@arm.com>

	PR target/23436
	* arm.c (thumb_legitimize_reload_address): New function.
	* arm-protos.h (thumb_legitimize_reload_address): Add prototype.
	* arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it.

2005-08-19  Paul Woegerer  <paul.woegerer@nsc.com>

	* config/crx/crx.c: Implement crx_decompose_address. Reject
	symbolic displacements since CRX register relative adressing
	mode can't handle unsigned 32-bit values as displacements.
	* config/crx/crx.h: Simplify definitions, remove redundant
	parenthesis and obsolete macros.
	* config/crx/crx.opt: Add new switch for debugging addresses.
	* config/crx/crx-protos.h: Add new declarations for above.

2005-08-19  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/20624
	* gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by
	looking past it.

2005-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* collect2.c (dup2): Delete.
	* configure.ac: Don't check for dup2.

	* config.in, configure: Regenerate.

2005-08-18  J"orn Rennecke <joern.rennecke@st.com>

	* sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE
	record with the type of its only member.

2005-08-18  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (ltu<mode>_compare): Convert to
	define_insn_and_split.
	(plus_ltu<mode>_compare): Same.
	(gtu<mode>_compare): Same.
	(plus_gtu<mode>_compare): Same.

2005-08-18  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/22228
	* tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to
	todo_flags_start.
	* tree-vect-transform.c (vect_transform_loop): Mark the variables that
	are recorded in vect_vnames_to_rename for renaming.
	* tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
	(slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming
	in vect_vnames_to_rename.
	(vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap.
	* tree-vectorizer.h (vect_vnames_to_rename): New extern variable.

2005-08-18  Jan Hubicka  <jh@suse.cz>

	PR c++/22034
	* cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug
	info only for local statics, not for member variables.

2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo.

2005-08-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* c-typeck.c (designator_errorneous): Rename to designator_erroneous.

2005-08-18  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/16045
	* builtins.c (fold_builtin): Create a new NOP_EXPR all the time.

2005-08-17  James E Wilson  <wilson@specifix.com>

	* c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
	array size check.

2005-08-17  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (leu<mode>): Convert to mode macro.
	(leu<mode>_compare): Same.
	(plus_leu<mode>): Same.
	(neg_leu<mode>): Same.
	(and_neg_leu<mode): Same.
	(ltu<mode>_compare): Same.
	(plus_ltu<mode>): Same.
	(geu<mode>): Same.
	(geu<mode>_compare): Same.
	(plus_geu<mode>): Same.
	(neg_geu<mode>): Same.
	(and_neg_geu<mode>): Same.
	(plus_gt<mode>): Same.
	(gtu<mode>_compare): Same.
	(plus_gtu<mode>): Same.

2005-08-17  Erik Christiansen  <erik@dd.nec.com.au>

	* config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos.
	Move call_table_data to end.  Delete spurious .text.
	(callt_save_all_interrupt): Fix comment typo.

2005-08-17  James E Wilson  <wilson@specifix.com>
	    Kevin Winchester  <winchester@amirix.com>

	PR target/21684
	* config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0.

2005-08-17  Uros Bizjak  <uros@kss-loka.si>

	PR target/23268
	* config/i386/i386.md ("*fist<mode>2_1"): New pattern.
	("lrint<mode>2"): Change expander to use "*fist<mode>2_1" pattern.

2005-08-17  J"orn Rennecke <joern.rennecke@st.com>

	* sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE
	record with the type of its only member if the modes don't match.

	* varasm.c (decode_reg_name): Skip empty additional register names.

2005-08-16  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name,
	lsm_tmp_name_length): New.
	(lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions.
	(schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp".

2005-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
	    Andreas Krebbel  <krebbel1@de.ibm.com>

	* config.gcc: Added z9-109 switch.
	* config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl",
	"x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi",
	"x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other",
	"x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
	"x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable
	for "z9_109" cpu attribute.
	* config/s390/s390.c (z9_109_cost): New processor cost structure.
	(CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros.
	(s390_handle_arch_option): Added z9-109 switch.
	(override_options): Set respective cost function for z9-109.
	(s390_const_ok_for_constraint_p): New constraints Os, Op, On.
	(legitimate_reload_constant_p): Accept extended immediates.
	(print_operand): Three new output modifiers added: k, m and o.
	(s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990.
	(s390_output_mi_thunk): Use extended immediate when possible.
	* config/s390/s390.h (processor_flags): Added PF_EXTIMM.
	(TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros.
	(CONSTRAINT_LEN): Added length of O constraint.
	(CLZ_DEFINED_VALUE_AT_ZERO): Definition added.
	* config/s390/s390.md ("cpu"): New value z9_109 added.
	("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm",
	"*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm",
	"*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm",
	"*zero_extend<mode>si2_extimm", "*anddi3_extimm", "*iordi3_extimm",
	"*xordi3_extimm", "clzdi2", "clztidi2"): New patterns.
	("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2",
	"*zero_extend<mode>si2_64", "zero_extendqihi2", "*zero_extendqihi2_64",
	"*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM.
	("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu",
	"*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc",
	"*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc",
	"*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3",
	"*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc",
	"*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly",
	"*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended
	immediates.
	("extend<mode>di2", "extend<mode>si2", "zero_extend<mode>di2",
	"zero_extend<mode>si2"): Allow memory operands and don't manually emit
	insns for TARGET_EXTIMM.

2005-08-17  Andreas Krebbel  <krebbel1@de.ibm.com>

	* testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options.

2005-08-17  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16.c (xstormy16_encode_section_info):
	Call default_encode_section_info.

2005-08-17  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/21574
	* tree-ssa-ccp.c (likely_value): If the right hand side is a
	constant, return CONSTANT.
	(ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal.
	(ccp_fold, visit_assignment): Likewise.
	(evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way.

2005-08-16  James A. Morrison  <phython@gcc.gnu.org>

	* c-typeck.c (build_function_call): Call fold_buildN_initializer or
	fold_buildN instead of buildN then fold_initializer or fold.
	(build_unary_op): Likewise.
	(build_binary_op): Likewise.
	* fold-const.c (fold_initializer): Remove.
	(fold_build1_initializer): New function.
	(fold_build2_initializer): New function.
	(fold_build3_initializer): New function.
	* tree.h (fold_initializer): Remove.
	(fold_build1_initializer): New function.
	(fold_build2_initializer): New function.
	(fold_build3_initializer): New function.

2005-08-16  James A. Morrison  <phython@gcc.gnu.org>

	* fold-const.c (optimize_bit_field_compare): Remove extra fold call.
	(try_move_mult_to_index): Call fold_build2 instead of build2.
	(fold_binary): Don't call fold after calls to try_move_mult_to_index.
	* tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of
	fold_binary_to_constant.
	(infer_loop_bounds_from_undefined): Call fold_build2 instead of
	fold (build.
	* tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to
	check if A == gcd (A, B).  Remove TYPE argument.
	(analyze_offset) Use fold_build2 instead of fold (build.
	(create_data_ref): Likewise.
	(analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p.
	* tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2
	then fold.

2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>

	* config/arm/unaligned-funcs.c,config/i386/crtfastmath.c,
	ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address.

2005-08-16  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/23402
	* gimplify.c (zero_sized_type): New function.
	(gimplify_modify_expr_rhs): If we have a zero sized type,
	replace the statement with an empty statement.

2005-08-16  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/crtfastmath.c (set_fast_math): Add "=m" for
	fxsave.

2005-08-16  Ian Lance Taylor  <ian@airs.com>

	* doc/tm.texi (Label Output): Correct typo.

2005-08-16  Steven Bosscher  <stevenb@suse.de>

	PR target/23376
	* loop-unroll.c (analyze_insn_to_expand_var): Make sure that
	force_operand will work later on using have_insn_for.

2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* fold-const.c (tree_expr_nonnegative_p): Regroup cases.

2005-08-16  Ian Lance Taylor  <ian@airs.com>

	PR c++/23337
	* gimplify.c (gimplify_init_ctor_eval): If we see an element of
	vector type, don't try to construct it element by element.  Add an
	assertion that we use a FIELD_DECL when building a COMPONENT_REF.

2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR.

2005-08-16  Geoffrey Keating  <geoffk@apple.com>

	* doc/invoke.texi (Precompiled Headers): Document some more options
	which are known to be safe.

2005-08-16  James E Wilson  <wilson@specifix.com>

	PR tree-optimization/21105
	* c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
	TREE_OVERFLOW check.

2005-08-16  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (ltu<mode>): Convert to mode macro.
	(neg_ltu<mode>): Same.
	(gtu<mode>): Same.
	(neg_gtu<mode>): Same.

2005-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* builtins.c (expand_builtin_strcat): Remove superfluous call to fold.
	(fold_builtin_isdigit): Use fold_buildN.
	(build_function_call_expr): Likewise.
	* c-typeck.c (c_finish_loop): Likewise.

2005-08-16  J"orn Rennecke <joern.rennecke@st.com>
	    Richard Shann <rshann@superh.com>

	PR middle-end/20396:
	* optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account.

2005-08-16  Sebastian Pop  <pop@cri.ensmp.fr>

	* tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment.

2005-08-15  Richard Earnshaw  <richard.earnshaw@arm.com>

	PR target/23355
	* arm.c (thumb_compute_save_reg_mask): Use similar logic to
	arm_compure_save_reg0_reg12_mask to determine when the PIC register
	must be saved.

2005-08-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/23369
	* fold-const.c (build_range_check): Disable optimization for function
	pointer expressions on targets that require function pointer
	canonicalization.

2005-08-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* simplify-rtx.c (simplify_const_relational_operation): When
	extracting arguments of a COMPARE, recompute the mode as well.

2005-08-15  Ian Lance Taylor  <ian@airs.com>

	* tree.c (build_string): Mark tree CONSTANT and INVARIANT.

2005-08-15  DJ Delorie  <dj@redhat.com>

	* config/m32c/mov.md (movqi_op): Immediates can't be moved to
	the stack.
	(movsi_splittable): Allow, but split, moves to the stack.
	* config/m32c/m32c.c (m32c_split_move): Always split moves to the
	stack.

2005-08-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete.
	* configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR.
	* system.h (HOST_PTR_PRINTF): Don't define, poison it.

	* bitmap.c, c-decl.c, config/i386/i386-interix.h,
	config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c:
	Delete HOST_PTR_PRINTF.

	* configure, config.in: Regenerate.

2005-08-15  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (QHSI): New mode macro.
	(wd): Extend mode attr for QImode and HImode
	(dbits): New mode attr.
	(zero_extend<mode>di2): Convert to mode macro.

2005-08-15  Steve Ellcey  <sje@cup.hp.com>

	PR target/21841
	* doc/invoke.texi (-mgnu-ld): Update description.
	(-mhp-ld): Ditto.

2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>

	PR 23391
	* Makefile.in (tree-chrec.o): Depends on real.h.
	* tree-chrec.c: Include real.h.
	(chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly,
	chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P.
	* tree-scalar-evolution.c (add_to_evolution_1,
	interpret_rhs_modify_expr): Ditto.

2005-08-15  Sebastian Pop  <pop@cri.ensmp.fr>

	PR 23386
	* tree-data-ref.c (estimate_niter_from_size_of_data): When
	step is negative compute the estimation from init downwards to zero.

2005-08-14  James A. Morrison  <phython@gcc.gnu.org>

	* fold-const (fold_binary): Call fold_build2 instead of fold (build.

2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P'
	constraint.
	(legitimate_reload_constant_p): Fix handling of lliXX operands.
	Accept double-word constants that can be split.
	* config/s390/s390.md ("movti"): Use 'P' constraint.
	("*movdi_31", "*movdf_31"): Likewise.

2005-08-14  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/22615

	* tree-ssa-structalias.c (solution_set_add): Handle
	first_vi_for_offset returning NULL.
	(do_da_constraint): Ditto.
	(do_sd_constraint): Ditto.
	(do_ds_constraint): Ditto
	(find_func_aliases): Ditto.
	(build_constraint_graph): RHS is allowed be ANYTHING.
	(first_vi_for_offset): Return NULL if we couldn't find anything at
	the offset.

2005-08-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_canonicalize_comparison): Prefer register
	over memory as first operand.

2005-08-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/23360
	* config/i386/crtfastmath.c (set_fast_math): Check if DAZ is
	available for setting it.

2005-08-14  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/23320
	* tree-data-ref.c (base_addr_differ_p): Add comment. Check
	data-refs' types instead of base object nullness. Add check for
	pointer type data-refs before first location comparison. Remove
	assert.

2005-08-14  Andreas Schwab  <schwab@suse.de>

	* doc/md.texi (Machine Constraints): Fix misplaced @end table.

2005-08-13  James E Wilson  <wilson@specifix.com>

	* doc/cpp.texi (__SSP__, __SSP_ALL__): Document.
	* doc/invoke.texi (-Wstack-protector, -fstack-protector,
	-fstack-protector-all, --param ssp-buffer-size): Document.
	(-Wvariadic-macros): Alphabetize.
	(-fsched-stalled-insns-dep): Add missing 'f'.

	* c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect
	macros.

2005-08-13  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed
	or indirect address operand.
	(EXTRA_ADDRESS_CONSTRAINT): New.
	* config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a".

2005-08-13  Sebastian Pop  <pop@cri.ensmp.fr>

	PR tree-optimization/22236
	* tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print
	successors and predecessors.
	* tree-chrec.c (chrec_convert): Before converting, check that
	sequences don't wrap.
	* tree-data-ref.c (compute_estimated_nb_iterations): Moved ...
	(analyze_array): Extern.
	(find_data_references_in_loop): Remove call to
	compute_estimated_nb_iterations.
	* tree-data-ref.h (analyze_array): Declared.
	* tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand,
	single_ssa_def_operand, zero_ssa_operands): Fix documentation.
	* tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter.
	* tree-scalar-evolution.c (instantiate_parameters_1): Factor entry
	condition.
	* tree-ssa-loop-ivcanon.c: Fix documentation.
	* tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note.
	* tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here.
	(infer_loop_bounds_from_undefined): New.
	(estimate_numbers_of_iterations_loop): Use
	infer_loop_bounds_from_undefined.
	(used_in_pointer_arithmetic_p): New.
	(scev_probably_wraps_p): Pass an extra parameter.  Call
	used_in_pointer_arithmetic_p.  Check that AT_STMT is not null.
	(convert_step): Fix documentation.
	* tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters.
	Use initial_condition_in_loop_num and evolution_part_in_loop_num
	instead of CHREC_LEFT and CHREC_RIGHT.  Adjust the call to
	scev_probably_wraps_p.

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

	* config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change.
	(s390_register_info): Ignore clobbered_regs information for fixed
	registers, and only fixed registers.
	(s390_init_frame_layout): Remove redundant call.

2005-08-12  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to
	description of -Wold-style-casts.

2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
	* config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added.
	* config/s390/s390.c (print_operand): New output modifier 'G' added.
	(get_thread_pointer): Renamed to s390_get_thread_pointer.
	* config/s390/s390.md (stack_protect_set, stack_protect_test): If
	TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to
	(MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))).
	(UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
	("stack_protect_set", "stack_protect_test"): New expanders.
	("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi",
	"stack_protect_testdi"): New insn definitions.

2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("*movdf_31"): Changed constraint from P to K.

2005-08-12  Paul Brook  <paul@codesourcery.com>

	* config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set.

2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/predicates.md (setmem_operand): New predicate.
	(shift_count_operand): Accept ANDs with special constants as
	operand.
	* config/s390/s390.c (print_shift_count_operand): Skip ANDs
	with special constants.
	* config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced
	shift_count_operand with setmem_operand.

2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_extract_part, s390_single_part):
	Type cast added.
	(s390_const_ok_for_constraint_p): Added SImode to the N constraint.
	(s390_output_mi_thunk): Don't use lg on 31 bit.
	* config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy.
	("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH.

2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros.
	(s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p,
	s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue,
	s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P
	with one of the new macros.

2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_split_branches, s390_init_frame_layout):
	Don't set save_return_addr_p.
	(s390_register_info): Make clobbered_regs not depending on
	save_return_addr_p.

2005-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>

	* gcc.c (LINK_SSP_SPEC): Remove space before a trailing }.
	(LINK_COMMAND_SPEC): Add space after %(link_ssp).

2005-08-11  James E. Wilson  <wilson@specifix.com>

	* config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New.

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

	* dwarf2out.c (add_location_or_const_value_attribute): Prefer
	locations gathered by var-tracking in single entry loc_list
	over loc_descriptor_from_tree.

	* dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument,
	pass it down to loc_descriptor.
	(loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor.
	(containing_function_has_frame_base): Move earlier in the file.
	(loc_descriptor_from_tree_1): Use containing_function_has_frame_base
	instead of always assuming fbreg can't be used.

2005-08-11  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/altivec.md: Change constraint "m" to "Z".
	* config/rs6000/predicates.md (indexed_or_indirect_operand):
	Accept address wrapped in AND for Altivec.
	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
	Strip AND wrapping offset address for Altivec.

2005-08-11  Richard Henderson  <rth@redhat.com>

	PR middle-end/23312
	* gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
	before using TYPE_IS_SIZETYPE.

2005-08-11  Richard Henderson  <rth@redhat.com>

	PR target/22225
	* config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for
	insn types not present on ev4.
	(alphaev5_insn_pipe): Similarly.

2005-08-11  Richard Earnshaw  <richard.earnshaw@arm.com>

	PR target/23250
	* arm.c (arm_override_options): If the user has selected callee-super-
	interworking, then enable normal interworking.

2005-08-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before
	redefinition.

2005-08-11  Wu Zhou  <woodzltc@cn.ibm.com>

	* doc/rtl.texi: Fix two typos.

2005-08-11  Richard Guenther  <rguenther@suse.de>

	PR target/23289
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Handle
	cases where we call to/from functions returning void.

2005-08-10  James A. Morrison  <phython@gcc.gnu.org>

	PR c++/23225
	* tree.c (build_pointer_type_for_mode): Robustify.

2005-08-10  James E Wilson  <wilson@specifix.com>

	* defaults.h, config/alpha/alpha.h, config/ia64/ia64.h
	(ASM_OUTPUT_ADDR_VEC_ELT): Delete.

	* config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to
	"cum->".

2005-08-10  Eric Christopher  <echristo@apple.com>

	* config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite.
	* config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use
	V2DFmode.

2005-08-10  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/21887
	* config/darwin.c (machopic_indirect_data_reference): Use a new register
	for the high part when generating dynamic-no-pic code.

2005-08-10  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file.
	(x86_64-*-linux*): Likewise.

	* config/i386/crtfastmath.c: New file.
	* config/i386/t-crtfm: Likewise.

	* config/i386/linux.h (ENDFILE_SPEC): New.
	* config/i386/linux64.h (ENDFILE_SPEC): Likewise.

	* config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
	crtfastmath.o.

2005-08-10  Dorit Nuzman  <dorit@il.ibm.com>

	* doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus):
	(vec_shl, vec_shr): Document new operations.
	* tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment.

2005-08-10  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/predicates.md (indexed_or_indirect_address): New.
	* config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and
	change predicate to indexed_or_indirect_address.

2005-08-10  Richard Sandiford  <richard@codesourcery.com>

	* config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases.
	* config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv,
	__aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4
	and __aeabi_uwrite8.
	* config/arm/unaligned-funcs.c: New file.
	* config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c.

2005-08-09  Paolo Bonzini  <bonzini@gnu.org>

	* bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks):
	Add dump.
	* cfglayout.c (pass_insn_locators_initialize): Add dump.
	* emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes):
	Add dump.
	* except.c (pass_convert_to_eh_region_ranges): Add dump.
	* final.c (pass_shorten_branches): Add dump.
	* flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump.
	(pass_life): Rename dump.
	(rest_of_handle_flow2): Remove initial verify_flow_info.
	* function.c (pass_instantiate_virtual_regs): Add dump.
	* integrate.c (pass_initial_value_sets): Add dump.
	* jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump.
	* loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump.
	(pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop,
	pass_rtl_unroll_and_peel_loops): Rename dump and add gate.
	(gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop,
	gate_rtl_unrool_and_peel_loops): New.
	(rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops,
	rtl_doloop): Do not look at flags.
	* mode-switching.c (pass_mode_switching): Add dump.
	* recog.c (pass_split_all_insns, pass_split_for_shorten_branches,
	pass_split_before_regstack): Add dump.
	* regmove.c (pass_stack_adjustments): Add dump.
	* tree-optimize.c (pass_fixup_cfg): Add dump.

2005-08-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>

	PR 23309
	* config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when
	deciding which instruction sequence to use.

2005-08-09  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-vect-transform.c (vect_create_epilog_for_reduction): Set
	BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs.

2005-08-09  Richard Guenther  <rguenther@suse.de>

	* c-common.c (builtin_function_2): Remove.
	(def_builtin_1): New function.
	(c_common_nodes_and_builtins): Use def_builtin_1 to
	build builtin functions.

2005-08-09  Jie Zhang  <jie.zhang@analog.com>

	* config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define.
	* config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.
	* config/bfin/bfin.c (bfin_return_in_memory): Update to really match
	Visual DSP.

2005-08-09  James A. Morrison  <phython@gcc.gnu.org>

	* tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use
	fold_binary instead of fold_build2 since we don't care about the
	resulting tree.
	(loop_niter_by_eval): Likewise.
	(compare_trees): Likewise.
	(proved_non_wrapping_p): Likewise.

2005-08-09  James A. Morrison  <phython@gcc.gnu.org>

	PR c/23161
	PR c/23165
	* c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see
	if the if is really empty.

2005-08-09  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/23234
	* tree-ssa-math-opts.c (place_reciprocal): New enum.
	(execute_cse_reciprocals_1): Replace the 'phi' argument with an
	argument of the new enum.
	(execute_cse_reciprocals): Add reciprocals for function arguments
	on the unique successor edge of the entry block.  Update other calls
	to execute_cse_reciprocals_1.

2005-08-08  Richard Henderson  <rth@redhat.com>

	PR 22439
	* gimplify.c (gimplify_one_sizepos): Preserve the original type.

2005-08-08  Bob Wilson  <bob.wilson@acm.org>

	* expr.c (write_complex_part): Return after handling MEM.

2005-08-08  Josh Conner  <jconner@apple.com>

	PR rtl-optimization/23241
	* combine.c (simplify_comparison): Fix error in determining
	whether to lift a subreg from comparison.

2005-08-08  David Edelsohn  <edelsohn@gnu.org>

	PR target/18506
	* config/rs6000/altivec.md (vec_init<mode>): New.
	(vec_set<mode>): New.
	(vec_extract<mode>): New.
	* config/rs6000/rs6000.c (rs6000_expand_vector_init): New.
	(rs6000_expand_vector_set): New.
	(rs6000_expand_vector_extract): New.
	(rs6000_legitimate_offset_address_p): Offset addresses are valid
	for Altivec modes before reload.
	(altivec_expand_vec_init_builtin): New.
	(get_element_number): New.
	(altivec_expand_vec_set_builtin): New.
	(altivec_expand_vec_ext_builtin): New.
	(altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext
	builtins.
	(altivec_init_builtins): Init vec_init, vec_set, and vec_ext
	builtins.
	* config/rs6000/rs6000.h (rs6000_builtins): Add
	ALTIVEC_BUILTIN_VEC_INIT_<mode>, ALTIVEC_BUILTIN_VEC_SET_<mode>,
	ALTIVEC_BUILTIN_VEC_EXT_<mode>.
	* config/rs6000/rs6000-protos.h: Declare new functions.

2005-08-08  Jan Hubicka  <jh@suse.cz>

	* i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode.
	(legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode.
	* i386.md (movdi*): Use pic_32bit_operand.
	* predicates.md (pic_32bit_operand): New.

2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/21166
	* stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible.

2005-08-07  James A. Morrison  <phython@gcc.gnu.org>

	* tree-vrp.c (simplify_div_or_mod_using_range): Use build2.
	(test_for_singularity): Use fold_build2.

2005-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound.

2005-08-07  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
	(COMMON_ASM_OP) Define.
	* config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED
	(ix86_encode_section_info): Likewise.
	(TARGET_ENCODE_SECTION_INFO): Conditionally define as
	SUBTARGET_ENCODE_SECTION_INFO.

2005-08-06  Richard Henderson  <rth@redhat.com>

	PR 21894
	* tree-nested.c (convert_local_reference): Save and restore val_only
	around component_ref and friends.  Clear walk_subtrees by default.

2005-08-06  Peter O'Gorman  <peter@pogma.com>

	PR 21366
	* gcc.c (process_command): Check the argument to -b has a dash.
	* doc/invoke.texi: Update -b and -V docs.

2005-08-06  James E Wilson  <wilson@specifix.com>

	* config/mips/cross64.h, config/mips/t-cross64: Delete.

2005-08-06  Michael Matz  <matz@suse.de>

	* genattrtab.c (write_attr_get, write_attr_case): Use insn_code
	member only if only one insn is associated with the value.

2005-08-06  Nick Clifton  <nickc@redhat.com>

	* config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100):
	New define.
	(ASM_OUTPUT_LABELREF): Delete - it is no longer needed.
	* config/stormy16/stormy16.c (xstormy16_below100_symbol):
	Check symbol flags instead of symbol name mangling.
	(xstormy16_asm_output_aligned_common): Likewise.  Also
	simplify code since the bss100_section cass is the only case
	where the below100 code will be triggered.
	(xstormy16_encode_section_info): Encode below100 attribute
	using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling
	the name.
	(xstormy16_strip_name_encoding): Delete - this function is no
	longer needed.
	(TARGET_STRIP_NAME_ENCODING): Undefine.
	* config/stormy16/stormy16-protos.h: Delete prototype for
	xstormy16_strip_name_encoding.

2005-08-06  Kazu Hirata  <kazu@codesourcery.com>

	* Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c,
	config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c,
	tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h,
	config/linux.h, config/alpha/alpha.h, config/alpha/linux.h,
	config/alpha/predicates.md, config/arc/arc.h,
	config/arm/arm.h, config/arm/ieee754-df.S,
	config/arm/ieee754-sf.S, config/bfin/bfin.c,
	config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c,
	config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h,
	config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h,
	config/m68hc11/m68hc11.h, config/mips/mips.c,
	config/mips/mips.h, config/mips/openbsd.h,
	config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h,
	config/pdp11/pdp11.h, config/rs6000/linux-unwind.h,
	config/rs6000/rs6000.c, config/rs6000/rs6000.h,
	config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
	config/sparc/linux.h, config/sparc/linux64.h,
	config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h,
	doc/extend.texi, doc/gcov.texi, doc/install.texi,
	doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc
	typos.  Follow spelling conventions.

2005-08-06  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/23113
	* stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start.
	Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR
	specially.  Check for side effects only for COND_EXPR.
	* c-typeck.c (c_finish_stmt_expr): Mark statement expression
	return with TREE_NO_WARNING.

2005-08-06  Richard Sandiford  <richard@codesourcery.com>

	PR rtl-optimization/23233
	* loop.c (combine_movables): Require the modes to be the same.
	(move_movables): Remove handling of cases where the replacement
	had a different mode to the original.

2005-08-05  James A. Morrison  <phython@gcc.gnu.org>

	PR tree-optimization/23128
	* tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or
	subtraction wrap, and set TREE_OVERFLOW if they do.

2005-08-05  Richard Henderson  <rth@redhat.com>

	PR 21728
	* tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into
	FORCED_LABEL labels.

2005-08-05  J"orn Rennecke <joern.rennecke@st.com>

	PR middle-end/23135
	* reload.c (find_reloads_subreg_address): Pass down TYPE
	unchanged.  Change all callers except find_reloads_toplev.

2005-08-05  Michael Matz  <matz@suse.de>

	* genattrtab.c (current_alternative_string): Remove.
	(SIMPLIFY_ALTERNATIVE): Ditto.
	(attr_alt_bit_p): Ditto.
	(alternative_name): Make const char *.
	(evaluate_eq_attr): Remove use of above things.
	(simplify_test_exp): Ditto.
	(simplify_test_exp <EQ_ATTR>): Guard for insn_code < 0 .
	(simplify_test_exp <AND>): Correct typo (test 'right' not 'left').

2005-08-04  James E Wilson  <wilson@specifix.com>

	* config/ptx4.h, config/sol2.h, config/arm/freebsd.h,
	config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h,
	config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h,
	config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h
	(LINK_SPEC): Delete useless %{Wl,*:%*} item.

2005-08-04  Richard Henderson  <rth@redhat.com>

	PR 21529
	* params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
	* params.h (SRA_MAX_STRUCTURE_COUNT): New.
	* tree-sra.c (decide_block_copy): Use it.  Disable element copy
	if we'd have to instantiate too many members.

2005-08-04  Richard Henderson  <rth@redhat.com>

	PR 21291
	* tree-outof-ssa.c (coalesce_asm_operands): New.
	(coalesce_ssa_name): Use it.  Split out ...
	(coalesce_phi_operands, coalesce_result_decls): ... these.

2005-08-04  Paul Brook  <paul@codesourcery.com>

	* read-rtl.c (read_quoted_string): Break if EOF.

2005-08-04  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree.h (fold_build1): Change to macro and call fold_build1_stat.
	(fold_build2): Likewise.
	(fold_build3): Likewise.
	(fold_build1_stat): New function prototype.
	(fold_build2_stat): Likewise.
	(fold_build3_stat): Likewise.
	* fold-const.c (fold_build1): Rename to ..
	(fold_build1_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
	through to build1_stat.
	(fold_build2): Rename to ..
	(fold_build2_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
	through to build2_stat.
	(fold_build3): Rename to ..
	(fold_build3_stat): this.  Add MEM_STAT_DECL.  Pass the mem stats
	through to build3_stat.

2005-08-04  David Edelsohn  <edelsohn@gnu.org>
	    Ian Lance Taylor  <ian@airs.com>

	* function.c (assign_stack_local_1): Do not correct stack slot
	address if allocation size is smaller than mode size.

2005-08-04  Diego Novillo  <dnovillo@redhat.com>

	PR 22037
	* tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename.
	(tree_merge_blocks): Propagate anything allowed by
	may_propagate_copy.
	Clarify documentation.
	* passes.c (execute_todo): If cleanup_tree_cfg invalidated the
	SSA form, schedule an update if necessary.

2005-08-04  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Binaries): Remove broken link to
	Sinix/Reliant Unix binaries.

2005-08-03  Richard Henderson  <rth@redhat.com>

	PR 23221
	* function.c (stack_protect_epilogue): Export.
	* tree.h (stack_protect_epilogue): Declare.
	* calls.c (expand_call): Call it.

2005-08-03  Eric Christopher  <echristo@apple.com>

	* gcc.c (LINK_SSP_SPEC): Add fstack-protector-all.
	* config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp
	spec.

2005-08-04  Jan Hubicka  <jh@suse.cz>

	* profile.c (branch_prob): Split edges with goto locus on them
	to get proper line counts.
	* tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any.

2005-08-03  Paul Brook  <paul@codesourcery.com>

	* function.c (assign_parms): Round current_function_args_size
	to PARM_BOUNDARY, not STACK_BOUNDARY.

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

	* config/i386/i386.c (x86_elf_aligned_common)
	(x86_output_aligned_bss): Don't try to use symbols that aren't defined.

2005-08-03  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/23157
	* tree-scalar-evolution.c (scev_const_prop): Unshare trees
	before emitting them.

2005-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR tree-optimization/19899
	* Makefile.in (tree-scalar-evolution.o): Add real.h.
	* tree-scalar-evolution.c: Include real.h.
	(add_to_evolution): Build constant -1 of correct type.

2005-08-03  Jan Hubicka  <jh@suse.cz>

	* cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag.
	* cfgloopmanip.c (duplicate_loop_to_header_edge): Special case
	profile updating for complette unrolling.
	* loop-unroll.c (peel_loop_completely): Use it.
	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
	(tree_unroll_loops_completely): Disable code growing unrolling of cold
	loops.

2005-08-03  Paul Brook  <paul@codesourcery.com>

	* combine.c (can_change_dest_mode): New function.
	(try_combine, simplify_set): Use it.

2005-08-03  Eric Botcazou  <ebotcazou@adacore.com>

	* config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force
	TFmode to BLKmode.

2005-08-03  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific): Adjust link to openavr.org.
	(Specific): Remove broken reference to GCC 2.8.1 for OS/2.
	(Binaries): Adjust HP-UX Porting Center link.
	(Binaries): Adjust Free Software Foundation ordering link.

2005-08-03  Andrew Pinski  <pinskia@physics.uc.edu>

	* convert.c (convert_to_integer): Use fold_build1 instead of
	build1 when converting an integer to an integer.

2005-08-02  Richard Henderson  <rth@redhat.com>

	* combine.c (combine_instructions): Don't use reg_equal/equiv
	results if the mode doesn't match.

2005-08-02  Mark Mitchell  <mark@codesourcery.com>

	* config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it.
	* doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it.

2005-08-02  Richard Henderson  <rth@redhat.com>

	PR 23196
	* explow.c (memory_address): Remove special-case for
	virtual_stack_vars_rtx and virtual_incoming_args_rtx.

2005-08-02  Diego Novillo  <dnovillo@redhat.com>

	PR 23164
	* tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the
	number of calls to cleanup_tree_cfg_1.

2005-08-02  Martin Reinecke  <martin@mpa-garching.mpg.de>

	* doc/invoke.texi: document file extensions .F90 and .F95

2005-08-02  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is
	positive if its first argument is positive.

2005-08-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/23177
	* tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands
	on TMR_TAG.

2005-08-02  James A. Morrison  <phython@gcc.gnu.org>

	PR tree-optimization/23129
	* tree-vrp.c (extract_range_from_binary_expr): Set value range to
	varying for divisions with anti-ranges.

2005-08-02  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-dom.c (thread_across_edge): Remove updating here.
	* tree-ssa-threadupdate.c (thread_block): Add it here.

2005-08-01  James E Wilson  <wilson@specifix.com>

	* config/mips/mips.c (mips_encode_section_info, mips_attribute_table,
	TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New.
	* config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P):
	New.
	* config/mips/predicates.md (const_call_insn_operand): Add check for
	SYMBOL_REF_LONG_CALL_P.
	* doc/extend.texi (long_call): Document the new attribute.

2005-08-01  Ian Lance Taylor  <ian@airs.com>
	    Richard Henderson  <rth@redhat.com>

	* Makefile.in (RTL_BASE_H): Add real.h.
	* real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy
	instead of memcpy.
	* emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv
	directly.
	* rtl.c (rtl_check_failed_code_mode): New.
	* rtl.h (struct rtx_def): Add u.rv.
	(XCMWINT, XCNMPRV): New.
	(CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT.
	(CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify.

2005-08-01  Richard Henderson  <rth@redhat.com>

	* dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG,
	with auto-inc codes.

	* config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE.

2005-08-01  Jan Hubicka  <jh@suse.cz>

	* i386-protos.h (asm_preferred_eh_data_format): Declare.
	* i386.c: Include dwarf2.h
	(asm_preferred_eh_data_format): New.
	* i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline.

2005-08-01  Ian Lance Taylor  <ian@airs.com>

	* config/host-linux.c (linux_gt_pch_get_address): Add new name
	randomize_va_space for virtual address randomization control.

2005-08-01  Steven Bosscher  <stevenb@suse.de>

	* common.opt (flag_ipa_cp): Put in right place to maintain
	alphabetic sort.

2005-08-01  Jan Hubicka  <jh@suse.cz>

	* profile.c (compute_value_histograms): Fix thinko.
	* value-prof.c: Include toplev.h
	(check_counter): New function.
	(tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
	tree_mod_subtract_transform): Add sanity check.

2005-08-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/23133
	* tree-ssa-math-opts.c (execute_cse_reciprocals): Walk
	current functions parameter decls to find defs to cse
	reciprocals of.

2005-08-01  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/23109
	* tree-ssa-math-opts.c (execute_cse_reciprocals_1):
	If trapping math is in effect, use post-dominator information
	to check if we'd in any case reach a trapping point before
	doing the reciprocal insertion.
	(execute_cse_reciprocals): Compute post-dominators, if necessary.
	* tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV
	expressions are invariant only if trapping math is not in effect.

2005-08-01  Razya Ladelsky  <razya@il.ibm.com>

	* cgraph.h (update_call_expr, cgraph_copy_node_for_versioning,
	cgraph_function_versioning): New declarations.
	* cgraphunit.c: Add include to ipa-prop.h.
	(update_call_expr, cgraph_copy_node_for_versioning,
	cgraph_function_versioning): New functions.
	* integrate.c (copy_decl_for_inlining): Remove.
	* ipa-prop.h (ipa_replace_map): New struct.
	(struct ipa_node): Add ipcp_orig_node, count_scale, new fields.
	* ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned,
	ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale,
	ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate,
	ipcp_iterate_stage, ipcp_method_scale_print,
	ipcp_profile_mt_count_print, ipcp_profile_cs_count_print,
	ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print,
	ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph,
	ipcp_update_bb_counts, ipcp_update_profiling,
	ipcp_update_edges_counts): New functions.
	(ipcp_method_cval_init): Remove restriction regarding local methods.
	(ipcp_init_stage): Add ipcp_method_compute_scale.
	(ipcp_insert_stage): Add versioning.
	(ipcp_structures_print): Add ipcp_method_scale_print.
	(ipcp_driver): Dump profiling info.
	* Makefile.in: Remove integrate.h dependency from tree-inline.o.
	Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o.
	* tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h.
	(struct inline_data): Add versioning_p, ipa_info, new fields.
	(remap_decl, mark_local_for_remap_r, setup_one_parameter,
	declare_return_variable): Replace calls to copy_decl_for_inlining with
	copy_decl_for_dup.
	(copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add
	versioning support.
	(copy_decl_for_dup): Rename from copy_decl_for_inlining.
	Add argument VERSIONING.
	(copy_arguments_for_versioning, copy_static_chain,
	function_versionable_p, tree_versionable_function_p,
	tree_function_versioning, replace_ref_tree): New functions.
	* tree-inline.h: Include varray.h.
	(tree_versionable_function_p,  tree_function_versioning,
	tree copy_decl_for_dup): New declarations.

2005-08-01  Razya Ladelsky  <razya@il.ibm.com>

	* ipa-cp.c: New file. Contains IPCP specific functionality.
	* ipa-prop.h: New file. Contains structures/definitions that can be
	used by several interprocedural data flow optimizations (and also IPCP).
	* ipa-prop.c: New file.
	* Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c.
	* common.opt: Add ipa-cp flag.
	* timevar.def: Add IPCP optimization.
	* tree-optimize.c (init_tree_optimization_passes): Schedule
	pass_ipa_cp.
	* tree-pass.h (pass_ipa_cp): Declare.

2005-08-01  Kazu Hirata  <kazu@codesourcery.com>

	* dwarf2out.c, fold-const.c, ipa-type-escape.c,
	loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c,
	tree-sra.c, config/arm/arm.c, config/crx/crx.c,
	config/i386/i386.c, config/mips/mips.h,
	config/rs6000/rs6000.h, config/sh/sh.c,
	config/stormy16/stormy16.c: Fix comment typos.

2005-08-01  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/22311
	* c-typeck.c (build_binary_op): Use common_type wrapper on
	shortened types.
	(common_type): Update comment.

2005-07-31  Steven Bosscher  <stevenb@suse.de>

	PR target/23095
	* common.opt (flag_gcse_after_reload): Don't initialize to 2.
	(flag_rerun_cse_after_loop): Initialize this to 2 instead.
	* postreload-gcse.c (hash_scan_set): Do not consider stack regs.

2005-07-31  Jan Hubicka  <jh@suse.cz>

	* pretty-print.h (pp_widest_integer): New macro.
	* tree-pretty-print.c (dump_bb_header): Print BB frequencies and
	counts.

2005-07-31  Jan Hubicka  <jh@suse.cz>

	* output.h (enum section_category): Export from varasm.c
	(categorize_decl_for_section): Likewise.
	* varasm.c (enum section_category): Kill.
	(categorize_decl_for_section): Make global.
	* i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common):
	Declare.
	* i386.c (ix86_section_threshold): New static variable.
	(ix86_in_large_data_p, ix86_encode_section_info,
	x86_64_elf_unique_section,
	x86_64_elf_select_section): New functions.
	(TARGET_ENCODE_SECTION_INFO): Define
	(override_options): Enable medium model for PIC.
	(ix86_expand_prologue): Expand gen_set_got_rex64.
	(legitimate_constant_p): Handle new UNSPECs.
	(legitimate_pic_address_disp_p): Likewise.
	(legitimize_pic_address): Lower MEDIUM model addressing.
	* i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC.
	(enum cmodel): Add MEDIUM_PIC.
	(SYMBOL_REF_FAR_ADDR_P): New macro.
	(SYMBOL_FLAG_FAR_ADDR): New flag.
	* i386.md (movdi): Support medium model.
	(set_got_rex64): New pattern.
	* i386.opt (mlarge-data-threshold): New flag.
	* predicates.md (zext_operand/sext_operand): Deal with medium model.
	* x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss.
	(ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION,
	TARGET_ASM_UNIQUE_SECTION): New.

	* invoke.texi (-mlarge_data_threshold): Document

2005-07-31  Jan Hubicka  <jh@suse.cz>

	* tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost.
	(coalesce_vars): Likewise.
	* tree-ssa-live.c (coalesce_cost): New.
	(build_tree_conflict_graph): Use coalesce_cost.
	* tree-ssa-live.h (coalesce_cost): Declare.

2005-07-30  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.md (all peepholes for post-increment operations): Delete.
	(strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec)
	(loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec)
	(loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec)
	(loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc)
	(strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete.

2005-07-30  James A. Morrison  <phython@gcc.gnu.org>

	* fold-const.c (tree_expr_nonnegative_p): Always return true for
	non-integral types.

2005-07-29  Wolfgang Bangerth <bangerth@dealii.org>

	PR target/22582
	* doc/invoke.texi: Document -rdynamic.

2005-07-30  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/23143
	* c-parser.c (c_parser_parms_list_declarator): Call
	mark_forward_parm_decls.
	* c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for
	decls with visibility structure.

2005-07-30  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment.

2005-07-30  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm-protos.h (arm_canonicalize_comparison): Update
	prototype.
	* config/arm/arm.c (arm_canonicalize_comparison): Use correct limit
	value for mode.
	* config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument.

2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/529
	* c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in
	nested function declarators.
	(pushdecl): Don't call warn_if_shadowing for PARM_DECL.
	(grokparms): Call warn_if_shadowing for parameters used within the
	parameter list.
	(store_parm_decls_newstyle): Call warn_if_shadowing for parameters
	not used within the parameter list.
	(store_parm_decls_oldstyle): Call warn_if_shadowing for parameters.

2005-07-30  Jan Hubicka  <jh@suse.cz>

	* expr.c (expand_expr_real_1): Do not load mem targets into register.
	* i386.c (ix86_fixup_binary_operands): Likewise.
	(ix86_expand_unary_operator): Likewise.
	(ix86_expand_fp_absneg_operator): Likewise.
	* optabs.c (expand_vec_cond_expr): Validate dest.

2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/21720
	* real.c (real_from_string): Also set last bit if there is a
	nonzero hex digit beyond GCC's internal precision after ".".

2005-07-29  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/altivec.md: Convert UNSPEC numerical values to
	define_constants.  Change duplicate values to unassigned numbers.
	Change UNSPEC_SUBS to UNSPEC_VSUBS.
	(*altivec_vspltsf): New.
	(altivec_vperm_v4sf): Delete.
	(altivec_vperm_<mode>): Use mode macro V.
	(altivec_vsldoi_<mode>): Convert to mode macro pattern.
	(altivec_predicate_v4sf): Delete.
	(altivec_predicate_<mode>): Use mode macro V.
	(*altivec_lvesfx): New.
	(*altivec_stvesfx): New.
	(vec_realign_load_v4sf): Delete.
	(vec_realign_load_<mode>): Use mode macro V.
	* config/rs6000/rs6000.c (generate_set_vrsave): Use
	UNSPECV_SET_VRSAVE.

2005-07-29  Mark Mitchell  <mark@codesourcery.com>

	PR bootstrap/23131
	* configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty
	string.
	* configure: Regenerated.

2005-07-29  Paul Brook  <paul@codesourcery.com>

	* doc/install.texi: Add link to GFortran binaries wiki page.

2005-07-29  David Ung  <davidu@mips.com>

	* config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table.
	(mips_rtx_cost_data): Add costs for 5kc and 5kf.
	* config/mips/mips.h (processor_type): Add PROCESSOR_5KF.
	* config/mips/mips.md (cpu): Add 5kf name.
	(includes): Includes 5k.md.
	* config/mips/5k.md: New DFA pipeline for the 5kc/5kf.
	* doc/invoke.texi (MIPS Options): Updated cpu name supported with
	-march flag.

2005-07-29  Diego Novillo  <dnovillo@redhat.com>

	PR 22550
	* tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ...
	(cleanup_tree_cfg): ... here.
	Call cleanup_tree_cfg_1 until there are no more cleanups to
	do.

2005-07-29  James A. Morrison  <phython@gcc.gnu.org>

	* tree-vrp.c (compare_range_with_value): Return true or false
	for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and
	EQ_EXPR respectively.

2005-07-29  Kazu Hirata  <kazu@codesourcery.com>

	* cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c:
	Fix comment typos.

2005-07-29  Diego Novillo  <dnovillo@redhat.com>

	* tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations.
	(tree_ssa_dominator_optimize): Increment it.
	(dump_dominator_optimization_stats): Print it.

2005-07-29  Richard Earnshaw  <richard.earnshaw@arm.com>
	    Steven Bosscher  <stevenb@suse.de>

	PR rtl-optimization/23117
	* sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly
	when head == tail.  Tidy comment.

2005-07-28  Richard Henderson  <rth@redhat.com>

	* cse.c (exp_equiv_p): Special case CONST_DOUBLE.
	* cselib.c (rtx_equal_for_cselib_p): Likewise.
	* jump.c (rtx_renumbered_equal_p): Likewise.
	* loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0,
	CONST_INT and CONST_DOUBLE.
	(rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF.
	* reload.c (operands_match_p): Special case CONST_INT and
	CONST_DOUBLE; check mode earlier.

2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/22240
	* c-typeck.c (convert_for_assignment): Do not check
	DECL_IN_SYSTEM_HEADER on NULL fundecl.

2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/22192
	* c-typeck.c (composite_type): Prefer constant size arrays to
	VLAs.

2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/21720
	* real.c (real_from_string): Set last bit if there is a nonzero
	hex digit beyond GCC's internal precision.

2005-07-28  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/22619
	* cfgcleanup.c (try_forward_edges): Watch out for end of
	insn chain.

2005-07-28  James E Wilson  <wilson@specifixinc.com>

	PR c/23106
	* doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording.

2005-07-28  Jan Hubicka  <jh@suse.cz>

	* Makefile.in (rtl-profile.o): Kill all traces of it.
	* common.opt (fspeculative-prefetching, ftree-based-profiling): Kill.
	* coverage.h (rtl_coverage_counter_ref): Kill.
	* opts.c (flag_speculative_prefetching_set): Kill.
	(flag_loop_optimize_set): New.
	(common_handle_option): Disable loop optimizer when profiling;
	do not handle speculative prefetching.
	* passes.c (init_optimization_passes): Replace pass_profiling combo
	by branch_prob pass.
	* profile.c (compute_value_histograms): Update for simplified value
	profiles.
	(rtl_register_profile_hooks): Kill.
	(pass_profiling): Kill.
	(rest_of_handle_branch_prob): Do not profile.
	* toplev.c (process_options): Remove speculative prefetching.
	* toplev.h (flag_tree_based_profiling): Kill.
	* tree-profile.c (prepare_instrumented_value,
	tree_gen_interval_profiler, tree_gen_pow2_profiler,
	tree_gen_one_value_profiler, do_tree_profiling): Update for
	simplified datastructures.
	* value-prof.c: Add comment that speculative prefetching was dropped;
	update rest of file for simplified datastructures.
	(NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX,
	rtl_divmod_values_to_profile, insn_prefetch_values_to_profile,
	find_mem_reference_1, find_mem_reference_2, find_mem_reference,
	rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2,
	rtl_mod_subtract, gen_speculative_prefetch,
	rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform,
	rtl_mod_subtract_transform, speculative_prefetching_transform): Kill.
	(gate_handle_value_profile_transformations,
	rest_of_handle_value_profile_transformations,
	pass_value_profile_transformations): Kill.
	* value-prof.h (histogram_value_t): Remove IL based unions.
	(rtl_register_value_prof_hooks, rtl_register_profile_hooks,
	rtl_profile_hooks): Remove hooks.

	* invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill.

	* cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument.
	(cgraph_clone_node): Likewise.
	* cgraph.h (cgraph_clone_edge): Update prototype.
	(cgraph_clone_node): Likewise.
	* ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
	cgraph_clone_node.
	(lookup_recursive_calls): Consider profile.
	(cgraph_decide_recursive_inlining): Fix updating; use new
	probability argument; use profile.
	* params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New.
	* tree-inline.c (copy_bb): Update clal of clone_edge.
	* tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node.

	* invoke.texi (min-inline-recursive-probability): Document.

2005-07-28  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Configuration): Update Valgrind homepage.

2005-07-28  Richard Henderson  <rth@redhat.com>

	PR middle-end/21362
	* cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on
	labels we want to delete.
	(cfg_layout_merge_blocks): Likewise.

2005-07-28  Richard Henderson  <rth@redhat.com>

	PR target/17692
	* config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note
	when expanding to nothing.

2005-07-28  Josh Conner  <jconner@apple.com>

	* ipa-inline.c (update_caller_keys): Fix estimated_growth caching.
	(cgraph_decide_inlining_of_small_functions): Likewise.

2005-07-28  Josh Conner  <jconner@apple.com>

	* ipa-inline.c (cgraph_edge_badness): Update comments.  Invert shift
	direction of badness if negative.
	(cgraph_default_inline_p): Add reason to parameters, and assign it
	a value.
	(cgraph_decide_inlining_of_small_functions): New parameter in call
	to cgraph_default_inline_p.
	(cgraph_decide_inlining_incrementally): Likewise.
	* cgraphunit.c (decide_is_function_needed): Likewise.
	* cgraph.h (cgraph_default_inline_p): Likewise.

2005-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* builtins.c: Fix comment typo(s).
	* genautomata.c: Likewise.
	* gimplify.c: Likewise.
	* tree-dfa.c: Likewise.
	* tree-flow-inline.h: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-operands.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.

2005-07-28  Jeff Law  <law@redhat.com>

	* tree-vrp.c (test_for_singularity): Extracted from  ...
	(simplify_cond_using_ranges): Attempt to simplify a relational
	test to NE_EXPR.  Dump information when a COND_EXPR is simplified.

2005-07-28  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/22506
	* tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed
	phis whose argument is constant.

2005-07-28  J"orn Rennecke <joern.rennecke@st.com>

	PR rtl-optimization/18992
	Back out this patch:
	  2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
	  PR optimization/12142
	  * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
	  uses of the register in the SET_SRC.  Remove unnecessary argument.

	Replace it with this:
	* cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases,
	if flag_non_call_exceptions is set and the insn may trap, pass
	pc_rtx as dest for recursion.
	In SET_SRC part of SET case, if dest is already set, pass it down
	unchanged.

2005-07-28  Jan Hubicka  <jh@suse.cz>

	* cfg.c (update_bb_profile_for_threading): Use RDIV.
	(scale_bbs_frequencies_int): Likewise, assert for possible overflow.
	(scale_bbs_frequencies_gcov_type): Be more curefull about overflows and
	roundoff errors.
	* tree-cfg.c (tree_duplicate_sese_region): Use counts for updating
	profile when available.

2005-07-28  Jan Beulich <jbeulich@novell.com>

	* config/ia64/ia64.c (ia64_load_pair_ok): New.
	(ia64_print_operand): Describe and handle 'X'.
	(ia64_register_move_cost): Also handle FP_REGS.
	(ia64_preferred_reload_class): Likewise.
	(ia64_secondary_reload_class): Likewise.
	(ia64_dependencies_evaluation_hook): New local variable c. Initialize
	it. Also check for ITANIUM_CLASS_FLDP.
	* config/ia64/ia64.h (FP_REGNO_P): New.
	(HARD_REGNO_MODE_OK): Remove explusion of TImode.
	(reg_class): Add FP_REGS.
	(REG_CLASS_NAMES): Adjust for it.
	(REG_CLASS_CONTENTS): Likewise.
	(REGNO_REG_CLASS): Use FP_REGS where appropriate.
	(REG_CLASS_FROM_LETTER): Handle 'x'.
	(CLASS_MAX_NREGS): Handle FP_REGS.
	(MEMORY_MOVE_COST): Likewise.
	* config/ia64/ia64.md (itanium_class): Add fldp.
	(type): Handle fldp.
	(movti_internal): More allowable operand combinations. Use ldfp8 when
	splitting unnecessary. Remove predicable attribute. Adjust
	itanium_class attribute.
	(smuldi3_highpart): Remove outdated comment.
	(mulditi3, umulditi3, rotlti3): New expanders.
	(addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns.
	(absti2): Disabled new insn for future reference.
	Respective new splitters.
	* config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations.
	* config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise.
	* config/ia64/ia64-protos.h (ia64_load_pair_ok): New.

2005-07-25  James A. Morrison  <phython@gcc.gnu.org>

	PR rtl-optimization/23047
	* simplify-rtx.c (simplify_const_relational_operation): Respect
	flag_wrapv for comparisons with ABS.

2005-07-27  James A. Morrison  <phython@gcc.gnu.org>

	PR tree-optimization/22493
	* tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and
	VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs.

2005-07-27  Aldy Hernandez  <aldyh@redhat.com>

	* config/frv/frv.opt (moptimize-membar): New.

	* doc/invoke.texi: Document -moptimize-membar and its inverse.

	* config/frv/frv.h: Remove machine_function definition.

	* config/frv/frv.c (struct frv_io): New.
	(struct machine_function): Moved from frv.h.  Add has_membar_p.
	(frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union)
	(frv_extract_membar, frv_io_check_address, frv_io_handle_set)
	(frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local)
	(frv_optimize_membar_global, frv_optimize_membar): New functions.
	(frv_reorg): Call frv_optimize_membar when appropriate.
	(bdesc_loads, bdesc_stores): Use the membar code as the icode field.
	(frv_expand_builtin): Adjust calls accordingly.
	(frv_io_address_cookie): New function.
	(frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal
	load or store rather than a special insn.  Add ccnstant address and
	io-type operands to the membar.
	(frv_ifcvt_modify_tests): Unsign regno.
	(frv_ifcvt_modify_tests): Same.

	* config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}.  Change
	UNSPEC_OPTIONAL_MEMBAR constant.
	(builtin_read_<mode>): Delete.
	(builtin_write_<mode>): Delete.
	("optional_membar_<mode>"): Add operand.

	* testsuite/gcc.target/frv/all-builtin-read8.c: Delete.
	* testsuite/gcc.target/frv/all-builtin-read16.c: Delete.
	* testsuite/gcc.target/frv/all-builtin-read32.c: Delete.
	* testsuite/gcc.target/frv/all-builtin-read64.c: Delete.
	* testsuite/gcc.target/frv/all-builtin-write8.c: Delete.
	* testsuite/gcc.target/frv/all-builtin-write16.c: Delete.
	* testsuite/gcc.target/frv/all-builtin-write32.c: Delete.
	* testsuite/gcc.target/frv/all-builtin-write64.c: Delete.
	* testsuite/gcc.target/frv/all-read-write-1.c: New.

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

	* df.c (df_uses_record): Handle SCRATCH.

2005-07-28  Steven Bosscher  <stevenb@suse.de>

	PR debug/20161
	* passes.c (rest_of_decl_compilation): If decl is a type and
	we have encountered errors, don't emit debug information.

2005-07-27  Kenneth Zadeck <zadeck@naturalbridge.com>

	* params.def: Fixed comment.

2005-07-27  Bjoern Haase  <bjoern.m.haase@web.de>

	PR target/19885
	* config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add.
	(TARGET_ASM_UNALIGNED_HI_OP): Add.
	(TARGET_ASM_UNALIGNED_SI_OP): Add.

2005-07-27  Steven Bosscher  <stevenb@suse.de>

	PR c++/22003
	* varasm.c (assemble_start_function): Don't do anything that may
	require a CFG if the current function is a thunk.

2005-07-25  Geoffrey Keating  <geoffk@apple.com>

	* doc/install.texi (Prerequisites): Mention that perl is needed
	to do export control in libstdc++ targetting Darwin.

2005-07-27  Steven Bosscher  <stevenb@suse.de>

	PR rtl-optimization/17808
	* sched-deps.c (sched_get_condition): Enable #if 0'ed code.
	(sched_insns_conditions_mutex_p): Split out from...
	(add_dependence): ...here.  But don't call it from here.
	(add_dependence_list): Check sched_insns_conditions_mutex_p
	before calling add_dependence.
	(add_dependence_list_and_free): Likewise.
	(fixup_sched_groups): Likewise.
	(sched_analyze_1): Likewise.
	(sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE).
	(sched_analyze): Likewise.
	(sched_analyze_insn): Likewise.
	* sched-ebb.c (add_deps_for_risky_insns): Likewise.
	* sched-rgn.c (add_branch_dependences): Likewise.  Also, add
	dependencies on all COND_EXEC insns to jumps ending basic blocks
	when doing intrablock scheduling.
	* sched-int.h (sched_insns_conditions_mutex_p): Add prototype.

2005-07-27  Jeff Law  <law@redhat.com>

	* tree-vrp.c (vrp_meet): Intersect the equivalency sets when
	meeting a VR_ANTI_RANGE with a VR_RANGE.  When intersecting
	equivalency sets, correctly handle the case were vr0 has an
	equivalency set, but vr1 does not.

2005-07-27  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/23073
	* tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call
	vect_print_dump_info before fprintf.

2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimize/22348
	* tree-ssa-loop-niter.c (number_of_iterations_cond):
	Fold the partial computation.

2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/22325
	* tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost):
	Declare.
	* tree-scalar-evolution.c (scev_const_prop): Add generic final
	value replacement.
	* tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ...
	(force_var_cost): ... this function.
	(compute_phi_arg_on_exit): Export.

2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/20773
	* tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch
	edge.

2005-07-27  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (push_fields_onto_fieldstack):
	Avoid pushing again if current struct contains only
	fields we decomposed.

2005-07-27  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/22574
	* cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are
	not available.

	* tree-tailcall.c (decrease_profile): New function.
	(eliminate_tail_call): Use it.

	* cgraphunit.c (cgraph_function_and_variable_visibility): Set
	visibility flags correctly in whole program mode.

2005-07-26  Steve Ellcey  <sje@cup.hp.com>

	PR rtl-optimization/22472
	* config/pa/pa.h (HARD_REGNO_RENAME_OK): Define.

2005-07-26  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/22504
	* tree-complex.c (expand_complex_addition): Use 'code' instead
	of MINUS_EXPR for (VARYING, ONLY_IMAG) and (ONLY_IMAG, VARYING).

2005-07-26  Aldy Hernandez  <aldyh@redhat.com>

	* config.gcc (cpu_type): Add frv case.
	(with_cpu): Add frv400-*-*linux* and frv550-*-*linux* cases.
	(supported_defaults): Add fr550 case.

2005-07-26  Diego Novillo  <dnovillo@redhat.com>

	PR 22591
	* tree-ssa-alias.c (may_alias_p): Remove shortcut that tests
	whether a pointer of type T * may point to objects of type T *.

2005-07-26  DJ Delorie  <dj@redhat.com>

	* configure: Regenerate.

2005-07-26  Dale Johannesen  <dalej@apple.com>

	* postreload-gcse.c (alloc_mem): Start CUID numbering at 1.

2005-07-26  Mark Mitchell  <mark@codesourcery.com>

	* doc/install.texi (--with-build-sysroot): Fix grammatical error.
	Clarify use of "build" in name.

2005-07-26  Aldy Hernandez  <aldyh@redhat.com>

	* doc/extend.texi (Raw read/write Functions): New section.
	* testsuite/gcc.target/frv/all-builtin-read8.c: New.
	* testsuite/gcc.target/frv/all-builtin-read16.c: New.
	* testsuite/gcc.target/frv/all-builtin-read32.c: New.
	* testsuite/gcc.target/frv/all-builtin-read64.c: New.
	* testsuite/gcc.target/frv/all-builtin-write8.c: New.
	* testsuite/gcc.target/frv/all-builtin-write16.c: New.
	* testsuite/gcc.target/frv/all-builtin-write32.c: New.
	* testsuite/gcc.target/frv/all-builtin-write64.c: New.
	* config/frv/frv.c: Add bdesc_loads global.
	Add bdesc_stores global.
	(frv_init_builtins): Add support for __builtin_{read/write}*.
	(frv_volatile_memref): New.
	(frv_expand_load_builtin): New.
	(frv_expand_store_builtin): New.
	* config/frv/frv.h (frv_builtins): Add FRV_BUILTIN_SCAN,
	FRV_BUILTIN_READ8, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32,
	FRV_BUILTIN_READ64, FRV_BUILTIN_WRITE8, FRV_BUILTIN_WRITE16,
	FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64.
	* config/frv/frv.md (unspecs): Add UNSPEC_BUILTIN_LOAD,
	UNSPEC_BUILTIN_STORE, UNSPEC_OPTIONAL_MEMBAR.
	(builtin_read_<mode>): New.
	(builtin_write_<mode>): New.
	(builtin_write64): New.
	(optional_membar_<mode>): New.

2005-07-26  J"orn Rennecke <joern.rennecke@st.com>

	* emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits
	(rather than units) against HOST_BITS_PER_WIDE_INT.

2005-07-26  Kazu Hirata  <kazu@codesourcery.com>

	* ipa-pure-const.c, ipa-reference.c, ipa-reference.h,
	ipa-type-escape.c, ipa-type-escape.h, ipa-utils.c,
	ipa-utils.h, treestruct.def, config/crx/crx-protos.h,
	config/crx/crx.c, config/crx/crx.h, config/crx/crx.md: Update
	FSF address.

	* calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c,
	tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h,
	config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix
	comment typos.
	* doc/c-tree.texi, doc/tree-ssa.texi: Fix typos.

2005-07-26  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/22486
	* fold-const.c (fold_unary): Fold away useless component
	references of the form (T *)&T.x, if the address
	doesn't change.

2005-07-25  James E Wilson  <wilson@specifixinc.com>

	* dwarf2out.c (add_call_src_coords_attributes): New.
	(gen_inlined_subroutine_die): Call it.
	(maybe_emit_file, init_file_table): Add comments.
	(prune_unused_types_walk_attribs): Pass DW_AT_call_file through
	maybe_emit_file.
	* tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION.
	(expand_call_inline): Set BLOCK_SOURCE_LOCATION.
	* tree.h (BLOCK_SOURCE_LOCATION): New.
	(struct tree_block): New field locus.

2005-07-26  Andreas Schwab  <schwab@suse.de>

	PR rtl-optimization/23043
	* postreload-gcse.c (eliminate_partially_redundant_load): Fix typo
	when allocating a struct unoccr.

2005-07-25  Richard Henderson  <rth@redhat.com>

	PR 22626
	* tree-complex.c (gate_no_optimization): True if errors.
	* Makefile.in (tree-complex.o): Update dependencies.

2005-07-25  Aldy Hernandez  <aldyh@redhat.com>

	* config/frv/predicates.md (integer_register_operand): Use
	GPR_AP_OR_PSEUDO_P.

2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/22484
	* tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions
	after fold.
	* tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands.

2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point
	types when flag_unsafe_math_optimizations is true.

2005-07-25  Mark Mitchell  <mark@codesourcery.com>

	* gcc.c (option_map): Add --sysroot.
	(process_command): Handle --sysroot.
	(display_help): Document it.
	* doc/cppopts.tex (-isysroot): Document.
	* doc/invoke.texi (--sysroot): Document.
	* doc/install.texi (--with-build-sysroot): Document.

	* Makefile.in (inhibit_libc): New variable.
	(INHIBIT_LIBC_CFLAGS): Likewise.
	(LIBGCC2_CFLAGS): Include
	$(INHIBIT_LIBC_CFLAGS).
	(CRTSTUFF_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS).
	($(T)crtbegin.o): Do not use @inhibit_libc@.
	($(T)crtend.o): Likewise.
	($(T)crtbeginS.o): Do not use @inhibit_libc@.
	($(T)crtendS.o): Likewise.
	($(T)crtbeginT.o): Do not use @inhibit_libc@.
	($(T)crtendT.o): Likewise.
	(stmp-fixinc): Do not complain about missing headers if
	inhibit_libc.
	* configure.ac (inhibit_libc): Set it to true/false.
	(--with-build-sysroot): New option.  Use it to set
	SYSTEM_HEADER_DIR.
	* configure: Regenerated.

2005-07-25  Manfred Hollstein  <mh@suse.com>

	* calls.c (store_one_arg): Fix unsigned comparison warning.

2005-07-25  Serge Belyshev  <belyshev@depni.sinp.msu.ru>

	PR other/22337
	* ggc-zone.c (ggc_alloc_zone_stat): Do not use CHUNK_OVERHEAD.
	(ggc_print_statistics): Initialize variable before use.

2005-07-25  Richard Guenther  <rguenther@suse.de>

	* tree-dfa.c (mark_new_vars_to_rename): Protect against
	calling with a PHI_NODE argument.

	* tree-flow-inline.h (overlap_subvar): Protect against
	possible overflow.

2005-07-25  Paolo Bonzini  <bonzini@gnu.org>

	* aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory.
	* configure: Regenerate.

2005-07-25  Ira Rosen  <irar@il.ibm.com>

	* expr.c (highest_pow2_factor): Make extern.
	* tree-data-ref.c (ptr_decl_may_alias_p): New function.
	(ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
	record_array_differ_p, array_ptr_differ_p): Likewise.
	(base_object_differ_p): Rename (from array_base_name_differ_p). Support
	additional cases. Call the above functions.
	(base_addr_differ_p): Moved from tree-vect-analyze.c. Call
	base_object_differ_p when there are two base objects. Otherwise, compare
	base address and offset. Call may_alias_p.
	(dump_data_reference): Use a correct field name.
	(analyze_array): Make static. Initialize new data-ref fields.
	(analyze_indirect_ref): New function.
	(init_data_ref): Initialize new data-ref fields.
	(strip_conversion): Moved from tree-vect-analyze.c.
	(analyze_offset_expr, get_ptr_offset, address_analysis,
	object_analysis): Likewise.
	(analyze_offset): New function.
	(create_data_ref): Likewise.
	(initialize_data_dependence_relation): Call base_addr_differ_p. Compare
	dimensions for ARRAY_REFs only.
	(build_classic_dist_vector): Make static.
	(access_functions_are_affine_or_constant_p): Call macro to get the
	address of access functions.
	(compute_all_dependences): Add new parameter
	compute_self_and_read_read_dependences. Compute self and read-read
	dependences if it is true.
	(find_data_references_in_loop): Call create_data_ref. Initialize new
	data-ref fields.
	(compute_data_dependences_for_loop): Add new parameter
	compute_self_and_read_read_dependences. Remove parameter nb_loops,
	compute nb_loops. Call compute_all_dependences,
	build_classic_dist_vector and build_classic_dir_vector with correct
	parameters.
	(analyze_all_data_dependences): Call compute_data_dependences_for_loop
	with correct parameters. Compare dimensions for ARRAY_REFs only.
	(free_data_refs): Call macro to free access functions.
	* tree-data-ref.h (struct first_location_in_loop): New structure. Move
	fields from stmt_vinfo.
	(struct base_object_info): New structure.
	(struct data_reference): Move fields to base_object_info. Add fields
	first_location and object_info for above structures. Move fields from
	stmt_info: memtag, ptr_info, subvars, misalignment. Add new field
	aligned_to.  Add macros to access the new fields.
	Update functions declarations.
	* tree-flow.h (is_aliased_with): Declare.
	* tree-loop-linear.c (linear_transform_loops): Call
	compute_data_dependences_for_loop with correct parameters.
	* tree-ssa-alias.c (is_aliased_with): New function.
	* tree-vect-analyze.c (vect_get_ptr_offset): Remove.
	(vect_analyze_offset_expr, vect_base_addr_differ_p): Likewise.
	(vect_analyze_data_ref_dependence): Get ddr. Remove call to
	vect_base_addr_differ_p, compute_subscript_distance and
	build_classic_dist_vector. Add printings. Check absolute value of
	distance.
	(vect_analyze_data_ref_dependences): Go through ddrs instead of
	data-refs.
	(vect_compute_data_ref_alignment): Get the fields of data-ref instead of
	stmt. Check aligned_to. Check if the base is aligned. Remove conversion
	to bytes. Add printing.
	(vect_compute_data_refs_alignment): Go through loads and stores in one
	loop.
	(vect_enhance_data_refs_alignment, vect_analyze_data_refs_alignment,
	vect_analyze_data_ref_access): Likewise.
	(vect_analyze_pointer_ref_access): Remove.
	(vect_address_analysis, vect_object_analysis): Likewise.
	(vect_analyze_data_refs): Call compute_data_dependences_for_loop to find
	and analyze data-refs in the loop.
	* tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Get the
	fields of data-ref instead of stmt. Add init to the offset from the
	base.
	(vect_create_data_ref_ptr): Get the fields of data-ref instead of stmt.
	(vect_update_init_of_dr): Likewise.
	(vect_update_inits_of_drs): Go through loads and stores in one loop.
	* tree-vectorizer.c (new_stmt_vec_info): Remove initialization of
	removed fields.
	(new_loop_vec_info): Initialize new fields.
	(destroy_loop_vec_info): Free new fields.
	(vect_strip_conversion): Remove.
	* tree-vectorizer.h (enum verbosity_levels): Add new verbosity level.
	(struct _loop_vec_info): Unify data_ref_writes and data_ref_reads into
	datarefs. Add new field ddrs.
	Add macros for the new fields access.
	(struct _stmt_vec_info): Remove: base_address, initial_offset, step,
	base_aligned_p, misalignment, memtag, ptr_info and subvars.
	Remove their macros.
	* tree.h (highest_pow2_factor): Declare.

2005-07-25  Jakub Jelinek  <jakub@redhat.com>

	* calls.c (store_one_arg): Check for sibling call MEM arguments
	from already clobbered incoming argument area.

2005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-common.c (check_missing_format_attribute): New.
	* c-common.h (check_missing_format_attribute): Likewise.
	* c-typeck.c (convert_for_assignment): Use it.

2005-07-24  Andreas Schwab  <schwab@suse.de>

	* config/m68k/m68k.md ("extendqidi2"): When source is an address
	register use a word move.  Correct operand of ext.w in 68000 code.

2005-07-23  Mark Mitchell  <mark@codesourcery.com>

	* dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT
	variables as declarations, rather than definitions.

2005-07-24  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/22526
	* tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type
	of the zero node.

2005-07-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>

	* builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins
	that C99 reserve for future use. Use it to define clog10,
	clog10f and clog10l.

2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute.
	* configure.ac: Check for -Wmissing-format-attribute.

	* configure: Regenerate.

2005-07-23  Richard Henderson  <rth@redhat.com>

	PR tree-optimization/22623
	* tree-complex.c (set_component_ssa_name): Use replace_ssa_name_symbol.

2005-07-23  Giovanni Bajo  <giovannibajo@libero.it>

	PR target/22577
	* config/pa/pa.c (reloc_needed): Updated for VECs inside CONSTRUCTOR.

2005-07-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (C_TREE_H): Update dependencies.
	* c-tree.h: Include toplev.h.
	* diagnostic.h (diagnostic_set_info): Add format attribute.
	* rtl-error.c (diagnostic_for_asm): Likewise.

2005-07-23  Chao-ying Fu  <fu@mips.com>

	* config/mips/mips-dsp.md: New file.
	* config/mips/mips-modes.def (V4QI, V2HI, CCDSP): New modes.
	* config/mips/mips.c (mips_function_type): Add types for DSP builtin
	functions.
	(mips_builtin_type): Add MIPS_BUILTIN_DIRECT_NO_TARGET and
	MIPS_BUILTIN_BPOSGE32.
	(mips_expand_builtin_direct): Add one parameter to indicate that
	builtin functions need to return a value.
	(mips_expand_builtin_bposge): New for expanding "bposge" builtin
	functions.
	(mips_regno_to_class): Add classes for 12 new DSP registers.
	(mips_subword): Change to check four HI registers.
	(mips_output_move): Output move to and from 6 new DSP accumulators.
	(override_options): Make sure -mdsp and -mips16 are not used together.
	Map 'A' to DSP_ACC_REGS and 'a' to ACC_REGS.  Enable DSP accumulators
	for machine modes.
	(mips_conditional_register_usage): Disable 6 new DSP accumulators
	when !TARGET_DSP.
	(print_operand): Add 'q' for printing DSP accumulators.
	(mips_cannot_change_mode_class): Check ACC_REGS.
	(mips_secondary_reload_class): Check ACC_REGS.
	(mips_vector_mode_supported_p): Enable V2HI and V4QI when TARGET_DSP.
	(mips_register_move_cost): Check ACC_REGS.
	(CODE_FOR_mips_addq_ph, CODE_FOR_mips_addu_qb, CODE_FOR_mips_subq_ph)
	(CODE_FOR_mips_subu_qb): New code-aliasing macros.
	(DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): New macros.
	(dsp_bdesc): New array.
	(bdesc_arrays): Add DSP builtin function table.
	(mips_prepare_builtin_arg): Check predicate again after
	copy_to_mode_reg.
	(mips_expand_builtin): Add one more parameter to
	mips_expand_builtin_direct. Expand MIPS_BUILTIN_DIRECT_NO_TARGET and
	MIPS_BUILTIN_BPOSGE32.
	(mips_init_builtins): Initialize new function types.
	(mips_expand_builtin_direct): Check if builtin functions need to
	return a value and pass operands properly.
	(mips_expand_builtin_bposge): New function.
	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips_dsp.
	(ASM_SPEC): Map -mdsp to -mdsp in GAS.
	(FIRST_PSEUDO_REGISTER): Increase to 188.
	(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
	Update for 12 new DSP registers.
	(DSP_ACC_REG_FIRST, DSP_ACC_REG_LAST, DSP_ACC_REG_NUM, AC1HI_REGNUM)
	(AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM, AC3HI_REGNUM, AC3LO_REGNUM):
	(DSP_ACC_REG_P, ACC_REG_P, ACC_HI_REG_P): New macros.
	(reg_class): Add DSP_ACC_REGS and ACC_REGS.
	(REG_CLASS_NAMES): Add names for DSP_ACC_REGS and ACC_REGS.
	(REG_CLASS_CONTENTS): Update for DSP_ACC_REGS, ACC_REGS and ALL_REGS.
	(REG_ALLOC_ORDER): Update for 12 new DSP registers.
	(mips_char_to_class): Add 'A' for DSP_ACC_REGS and 'a' for ACC_REGS.
	(UIMM6_OPERAND, IMM10_OPERAND): New macros.
	(EXTRA_CONSTRAINT_Y): Add YA and YB extra constraints.
	(REGISTER_NAMES): Add names for 12 new DSP registers.
	* config/mips/mips.md: Include mips-dsp.md.
	(UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
	(UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
	(UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
	(UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
	(UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
	(UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
	(UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
	(UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
	(UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
	(UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
	(UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
	(UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
	(UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
	(UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
	(UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
	(UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
	(UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
	(UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
	(UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
	(UNSPEC_RDDSP): New constants.
	(*movdi_32bit): Change 'x' to 'a' for ACC_REGS.
	(*movsi_internal): Change 'x' to 'a' for ACC_REGS.  Add an
	A<-d alternative.
	* config/mips/mips.opt (-mdsp): New option.
	* config/mips/predicates.md (const_uimm6_operand, const_imm10_operand)
	(reg_imm10_operand): New predicates.
	* doc/extend.texi (MIPS DSP Built-in Functions): New section.
	* doc/invoke.texi (-mdsp): Document new option.

2005-07-22  DJ Delorie  <dj@redhat.com>

	* c-objc-common.c (c_cannot_inline_tree_fn): Add warning control
	to warning calls.
	* tree-inline.c (inlinable_function_p): Likewise.

2005-07-22  Mark Mitchell  <mark@codesourcery.com>

	PR debug/21828
	* toplev.c (check_global_declarations): Do not mark undefined
	variables as DECL_IGNORED_P.
	* varasm.c (first_global_object_name): GTY it.
	(weak_global_object_name): Likewise.
	(notice_global_symbol): Use ggc_strdup, not xstrdup, when creating
	a string to go into {weak,first}_global_object_name.

2005-07-22  DJ Delorie  <dj@redhat.com>

	* c-format.c (check_function_format): Change warning control
	option from OPT_Wattribute to OPT_Wmissing_format_attribute.

2005-07-22  Diego Novillo  <dnovillo@redhat.com>

	* tree-ssa-alias.c (count_ptr_derefs): Do not consider
	&PTR->FLD a dereference of PTR.
	* tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD
	a potential dereference of PTR.

2005-07-22  J"orn Rennecke <joern.rennecke@st.com>

	PR rtl-optimization/20370
	* ifcvt.c (dead_or_predicable): Before calling propagate_block,
	call allocate_reg_info if necessary.

	PR rtl-optimization/21848
	* calls.c (emit_library_call_value_1): For const functions, add
	USEs of the stack slots to CALL_INSN_FUNCTION_USAGE.

	PR rtl-optimization/22445
	* cselib.c (target.h): Include.
	(rtx_equal_for_cselib_p): Allow commutative matches.
	(cselib_hash_rtx): Don't use MODE for CONST_INT hashing.
	Remove MODE parameter.  Changed all callers.

	PR rtl-optimization/22258
	* combine.c (likely_spilled_retval_1, likely_spilled_retval_p):
	New functions.
	(try_combine): Use likely_spilled_retval_p.

2005-07-22  Paul Woegerer  <paul.woegerer@nsc.com>

	* config.gcc: Add crx-elf support.

	* doc/contrib.texi: Mention crx.
	* doc/extend.texi: Document crx extensions.
	* doc/install.texi: Document crx install.
	* doc/invoke.texi: Document crx options.
	* doc/md.texi: Document crx constraints.

	* config/crx/crx-protos.h: New file.
	* config/crx/crx.c: New file.
	* config/crx/crx.h: New file.
	* config/crx/crx.md: New file.
	* config/crx/crx.opt: New file.
	* config/crx/t-crx: New file.

2005-07-22  Manfred Hollstein  <mh@suse.com>

	* tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised
	warnings.
	(int_add_graph_edge): Likewise.
	(collapse_nodes): Likewise.
	(process_unification_queue): Likewise.

2005-07-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
	    Laurent GUERBY  <laurent@guerby.net>

	PR tree-optimization/22336
	* function.c (record_block_change): Check for
	cfun->ib_boundaries_block.

2005-07-21  James A. Morrison  <phython@gcc.gnu.org>

	* fold-const.c (fold_unary): Don't strip signed nops from ABS_EXPRs.
	(tree_expr_nonnegative_p): Return try for TYPE_UNSIGNED.

2005-07-21  DJ Delorie  <dj@redhat.com>

	* toplev.c (warn_deprecated_use): Add warning control to warning
	call.
	* c-typeck.c (parser_build_binary_op): Likewise.
	(c_finish_if_stmt): Likewise.
	* c-common.c (check_function_sentinel): Likewise.
	(check_nonnull_arg): Likewise.

2005-07-21  Richard Henderson  <rth@redhat.com>

	PR tree-opt/22504
	* tree-complex.c (complex_ssa_name_components): New.
	(cvc_lookup): Allow entry not found.
	(create_components): Remove.
	(create_one_component_var, get_component_var): New.
	(get_component_ssa_name, set_component_ssa_name): New.
	(extract_component): Use get_component_ssa_name.
	(update_complex_components): Use set_component_ssa_name.
	(update_complex_components_on_edge): Likewise.
	(update_phi_components): Create new PHI nodes directly, instead
	of adding insns to edges.
	(tree_lower_complex): Allocate and free complex_variable_components
	and complex_ssa_name_components here.

2005-07-20  Daniel Berlin  <dberlin@dberlin.org>

	* alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT,
	revert to returning false.

2005-07-21  Uros Bizjak  <uros@kss-loka.si>

	PR target/21149
	* config/i386/i386.md (sse_movhlps): Fix vec_select values.

2005-07-21  Uros Bizjak  <uros@kss-loka.si>

	PR target/22576
	* config/i386/i386.md (cmpxf): Change operand constraints
	to "nonmemory_operand".

2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2.

2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/21180
	* fold-const.c (fold_build1): Add checksum for the operands.
	(fold_build2): Likewise.
	(fold_build3): Likewise.

2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/19055
	* fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X".

2005-07-21  Paolo Bonzini  <bonzini@gnu.org>

	* common.opt (-fforward-propagate): Committed by mistake,
	removed.

2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* reg-stack.c: Fix comment typo(s).
	* tree-ssa-operands.c: Likewise.
	* tree-vectorizer: Likewise.

2005-07-21  Nick Clifton  <nickc@redhat.com>

	* config/sh/symbian.c: Replace C++ style line comments with C
	style line comments.
	(symbian_add_attribute): Do not use a ? operator on the LHS of
	an assignment.
	(sh_symbian_handle_dll_attribute): Change the type of the
	method vector to "VEC(tree,gc)*" and use vector accessor
	macros to walk over the elements.
	(symbian_export_vtable_and_rtti_p): Likewise.
	(symbian_class_needs_attribute_p): Likewise.

2005-07-21  Paolo Bonzini  <bonzini@gnu.org>

	PR target/22085
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
	initialize targetm.resolve_overloaded_builtin here.
	(altivec_expand_overloaded_builtin): Make it non-static.
	* config/rs6000/rs6000-protos.h
	(altivec_expand_overloaded_builtin): New prototype.
	* config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize
	targetm.resolve_overloaded_builtin here.
	* config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise.

2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
	    Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/19210
	* common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations):
	New.
	* Makefile.in (tree-ssa-loop-niter.o): Depend intl.o.
	* loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations,
	rely on unproven assumptions.
	* predict.c (predict_loops): Adjust call to number_of_iterations_exit.
	* tree-flow.h (number_of_iterations_exit): Add final parameter.
	* tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call
	to number_of_iterations_exit.
	* tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise.
	* tree-ssa-loop-ivopts.c (niter_for_exit): Likewise.
	* tree-ssa-loop-niter.c (find_loop_niter,
	estimate_numbers_of_iterations_loop): Likewise.
	(number_of_iterations_exit): Honor the new options.
	* doc/invoke.texi (Wunsafe-loop-optimizations,
	funsafe-loop-optimizations): Document them.

2005-07-21  Richard Sandiford  <richard@codesourcery.com>

	PR rtl-optimization/22167
	* gcse.c (hoist_code): Fix hoist_exprs[] check.

2005-07-20  Adam Nemet  <anemet@lnxw.com>

	* config/rs6000/lynx.h: Mark __do_global_ctors_aux and
	__do_global_dtors_aux longcall.

2005-07-20  Kazu Hirata  <kazu@cs.umass.edu>

	* gensupport.c (old_preds): Don't reference PREDICATE_CODES.
	(old_special_pred_table): Don't reference
	SPECIAL_MODE_PREDICATES.
	* system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison.
	* config/arc/arc.h: Don't mention PREDICATE_CODES.
	* config/sh/predicates.h: Don't mention
	SPECIAL_MODE_PREDICATES.
	* doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
	Remove.

2005-07-20  DJ Delorie  <dj@redhat.com>

	* config.gcc: Add m32c-elf support.

	* doc/contrib.texi: Mention m32c.
	* doc/extend.texi: Document m32c extensions.
	* doc/install.texi: Mention m32c.
	* doc/invoke.texi: Document m32c options.
	* doc/md.texi: Document m32c constraints.

	* config/m32c/addsub.md: New file.
	* config/m32c/bitops.md: New file.
	* config/m32c/cond.md: New file.
	* config/m32c/jump.md: New file.
	* config/m32c/m32c-lib1.S: New file.
	* config/m32c/m32c-lib2.c: New file.
	* config/m32c/m32c-modes.def: New file.
	* config/m32c/m32c-pragma.c: New file.
	* config/m32c/m32c-protos.h: New file.
	* config/m32c/m32c.abi: New file.
	* config/m32c/m32c.c: New file.
	* config/m32c/m32c.h: New file.
	* config/m32c/m32c.md: New file.
	* config/m32c/m32c.opt: New file.
	* config/m32c/minmax.md: New file.
	* config/m32c/mov.md: New file.
	* config/m32c/muldiv.md: New file.
	* config/m32c/predicates.md: New file.
	* config/m32c/prologue.md: New file.
	* config/m32c/shift.md: New file.
	* config/m32c/t-m32c: New file.

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

	* config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants.
	(stack_protect_set, stack_protect_test): New expanders.
	(stack_protect_set_si, stack_protect_set_si_media,
	stack_protect_set_di_media, stack_protect_test_si,
	stack_protect_test_si_media, stack_protect_test_di_media):
	New insns.

2005-07-20  Andrew Pinski  <pinskia@physics.uc.edu>

	* c-typeck.c (output_init_element): Don't copy the INTEGER_CST.

2005-07-20  James A. Morrison  <phython@gcc.gnu.org>

	* tree.h (tree_expr_nonzero_p): Export.
	* fold-const.c (tree_expr_nonzero_p): Likewise.
	Return true for CALL_EXPRs that are alloca calls.
	(fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs
	against zero.
	* tree-flow.h (expr_computes_nonzero): Remove.
	* tree-vrp.c (expr_computes_nonzero): Remove.
	(vrp_expr_computes_nonzero): Use tree_expr_nonzero_p.
	(extract_range_from_unary_expr): Likewise.
	* tree-ssa-dom.c (record_equivalences_from_stmt): Use
	tree_expr_nonzero_p.

2005-07-20  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare.
	* config/bfin/bfin.c (legitimize_pic_address): Now static.  Take
	extra arg "picreg" and use it instead of pic_offset_table_rtx.
	All callers changed.
	(frame_related_constant_load): New arg "related" which controls
	setting of RTX_FRAME_RELATED_P.  All callers changed.
	(bfin_load_pic_reg): New function, broken out of bfin_expand_prologue.
	(bfin_expand_prologue): Add stack limit checking.
	* config/bfin/bfin.md (trapifcc): New pattern.

	* config/bfin/bfin.c: Include "langhooks.h".
	(def_builtin): Go through lang_hooks to call builtin_function.

	* config/bfin/bfin-protos.h (bfin_longcall_p): Declare.
	* config/bfin/predicates.md (symbol_ref_operand): New.
	(call_insn_operand): Delete.  All callers changed to use
	register_no_elim_operand.
	* config/bfin/bfin.c (init_cumulative_args): Initialize the new
	call_cookie field.
	(function_arg): Use it to generate the call's operand 2.
	(bfin_longcall_p): New function.
	(bfin_expand_call): Extra arg "cookie".  All callers and declaration
	changed.  Emit extra USE in the pattern.  Use bfin_longcall_p to
	determine if the address needs to be in a REG.
	(bfin_handle_longcall_attribute): New function.
	(bfin_attribute_table): Add "longcall" and "shortcall".
	* config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros.
	(CUMULATIVE_ARGS): New member call_cookie.
	(PREDICATE_CODES): Add symbol_ref_operand.
	* config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add
	extra USE to the pattern.
	(call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol):
	New patterns, split off call_insn, sibcall_insn, call_value_insn and
	sibcall_value_insn; now the new patterns handle direct calls and the
	old ones indirect calls.
	* doc/extend.texi: Mention Blackfin in longcall/shortcall docs.

2005-07-20  Zdenek Dvorak  <dvorakz@suse.cz>

	* doc/trouble.texi: Update section on handling of empty loops.

2005-07-20  Kazu Hirata  <kazu@codesourcery.com>

	* config.gcc: Remove support for sparc-*-openbsd*,
	i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*,
	ns32k-*-netbsd*.
	* config.host: Remove support for i860-*-sysv4* as a host.
	* config/i860/*, config/ip2k/*, config/ns32k/*,
	config/sparc/openbsd.h, config/sparc/t-openbsd: Remove.
	* doc/install.texi, doc/invoke.texi, doc/md.texi: Don't
	mention obsolete ports.

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

	* config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for
	soft frame pointer.
	(sh_expand_prologue): Use hard_frame_pointer_rtx instead
	of frame_pointer_rtx.
	(sh_expand_epilogue): Likewise.
	(sh_set_return_address): Likewise.
	(initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM
	instead of FRAME_POINTER_REGNUM if needed.  Add elimination
	offsets from FRAME_POINTER_REGNUM.
	* config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp.
	(sh_register_names): Add initializer for sfp.
	(GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM.
	(VALID_REGISTER_P): Likewise.
	(FIRST_PSEUDO_REGISTER): Update.
	(DWARF_FRAME_REGISTERS): Define.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp.
	(HARD_FRAME_POINTER_REGNUM): Define.
	(FRAME_POINTER_REGNUM): Redefine.
	(ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM,
	but HARD_FRAME_POINTER_REGNUM instead.  Add eliminations
	from FRAME_POINTER_REGNUM.
	(CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of
	FRAME_POINTER_REGNUM.
	(REG_CLASS_CONTENTS): Add sfp.
	(REG_ALLOC_ORDER): Likewise.
	(FRAME_GROWS_DOWNWARD): Set to 1.  Update comment.
	(GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead
	of frame_pointer_rtx.
	(LEGITIMIZE_RELOAD_ADDRESS): Likewise.

2005-07-19  James A. Morrison  <phython@gcc.gnu.org>

	* fold-const.c (tree_expr_nonnegative_p): Only return true for
	ABS_EXPR when flag_wrapv is false because of INT_MIN.
	(tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument
	of an ABS_EXPR.
	(fold_unary): Always fold ABS_EXPR<ABS_EXPR<x>> into
	ABS_EXPR<x>.

2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>

	Make CONSTRUCTOR use VEC to store initializers.
	* c-common.c (complete_array_type): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts.
	(pp_c_constructor_elts): New function.
	* c-pretty-print.h (pp_c_constructor_elts): Declare.
	* c-typeck.c (build_function_call, build_c_cast, digest_init,
	struct constructor_stack, struct initializer_stack,
	constructor_elements, push_init_level, pop_init_level,
	add_pending_init, find_init_member, output_init_element): Update to
	cope with VEC in CONSTRUCTOR_ELTS.
	* coverage.c (build_fn_info_value, build_ctr_info_value,
	build_gcov_info): Likewise.
	* expr.c (categorize_ctor_elements_1, store_constructor,
	expand_expr_real_1): Likewise.
	* fold-const.c (fold_ternary): Likewise.
	* gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl,
	gimplify_init_constructor, gimplify_expr): Likewise.
	* tree-dump.c (dequeue_and_dump): Likewise.
	* tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR
	node.
	* tree-pretty-print.c (dump_generic_node): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* tree-sra.c (generate_element_init_1): Likewise.
	* tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree-vect-generic.c (expand_vector_piecewise): Likewise.
	* tree-vect-transform.c (vect_get_vec_def_for_operand):
	(get_initial_def_for_reduction): Likewise.
	* tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses
	value handle in annotations.
	* tree.c (tree_node_kind, tree_code_size, make_node_stat,
	tree_node_structure): Add support for constr_kind.
	(build_vector_from_ctor, build_constructor_single,
	build_constructor_from_list): New functions.
	(build_constructor): Update to take a VEC instead of a TREE_LIST.
	(simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree):
	Update to cope with VEC in CONSTRUCTOR_ELTS.
	* tree.def (CONSTRUCTOR): Make it a tcc_exceptional node.
	* tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT,
	CONSTRUCTOR_APPEND_ELT): New macros.
	(struct constructor_elt, struct	tree_constructor): New data types.
	(union tree_node): Add tree_constructor field.
	* treestruct.def: Define TS_CONSTRUCTOR.
	* varasm.c (const_hash_1, compare_constant, copy_constant,
	compute_reloc_for_constant, output_addressed_constants,
	initializer_constant_valid_p, output_constant,
	array_size_for_constructor, output_constructor): Update to cope with
	VEC in CONSTRUCTOR_ELTS.
	* vec.h (VEC_empty, VEC_copy): New macros.

2005-07-19  Devang Patel  <dpatel@apple.com>

	* dbxout.c (dbxout_type): Check Objective-C++ lang.

2005-07-19  Richard Henderson  <rth@redhat.com>

	PR tree-opt/22278
	* gimplify.c (gimplify_expr): Use main variant type for the temp
	destination for a discarded volatile read.
	* tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide
	casts between non-void types that change volatility.

2005-07-15  DJ Delorie  <dj@redhat.com>

	* toplev.h: Add comment about the first parameter for warning().
	* errors.h: Likewise.

	* c.opt (Wpragmas): New.
	* doc/invoke.texi: Document it.

	* function.c (do_warn_unused_parameter): Add warning control to
	warning call.
	* c-decl.c (warn_if_shadowing): Likewise.
	* c-lex.c (cb_def_pragma): Likewise.
	* c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
	(pop_alignment): Likewise.
	(handle_pragma_pack): Likewise.
	(apply_pragma_weak): Likewise.
	(handle_pragma_weak): Likewise.
	(handle_pragma_redefine_extname): Likewise.
	(add_to_renaming_pragma_list): Likewise.
	(handle_pragma_extern_prefix): Likewise.
	(maybe_apply_renaming_pragma): Likewise.
	(handle_pragma_visibility): Likewise.

	* config/c4x/c4x-c.c (BAD): Likewise.
	(c4x_parse_pragma): Likewise.
	* config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise.
	* config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
	(rs6000_pragma_longcall): Likewise.
	* config/v850/v850-c.c (pop_data_area): Likewise.
	(ghs_pragma_section): Likewise.
	(ghs_pragma_section): Likewise.
	(ghs_pragma_interrupt): Likewise.
	(ghs_pragma_starttda): Likewise.
	(ghs_pragma_startsda): Likewise.
	(ghs_pragma_startzda): Likewise.
	(ghs_pragma_endtda): Likewise.
	(ghs_pragma_endsda): Likewise.
	(ghs_pragma_endzda): Likewise.

2005-07-19  Danny Berlin <dberlin@dberlin.org>
	    Kenneth Zadeck <zadeck@naturalbridge.com>

	* Makefile.in: Removed tree-promote-statics.c
	* tree-promote-statics.c: Removed.
	* common.opt: Removed flag-promote-statics.
	* opts.c: Ditto.
	* passes.c: Removed tree-promote-statics pass.
	* tree-pass.h: Ditto.
	* timevar.def: Removed TV_PROMOTE_STATICS.


2005-07-19  Gerald Pfeifer  <gerald@pfeifer.com>

	* config.gcc: Add support for *-*-freebsd7, *-*-freebsd8,
	and *-*-freebsd9.
	* config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto.

2005-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR c/22476
	* c-common.c (check_function_arguments): Call
	'check_function_format' if either -Wformat or
	-Wmissing-format-attribute are specified.
	* c-format.c (check_function_format): Check -Wformat before
	calling 'check_format_info'.
	* c-opts.c (c_common_post_options): Don't warn for
	-Wmissing-format-attribute without -Wformat.
	* c-typeck.c (convert_for_assignment): Detect additional cases for
	-Wmissing-format-attribute.
	* doc/invoke.texi (-Wmissing-format-attribute): Document new
	behavior.

2005-07-19  Richard Guenther  <rguenther@suse.de>

	* config/i386/i386.md (lrint<mode>2): Use temporary
	instead of clobbering non-existent memory.

2005-07-19  Nick Clifton  <nickc@redhat.com>

	* config/avr/avr.c (legitimate_address_p): Fix debugging print
	statement to avoid displaying ASCII control characters.

2005-07-19  Ben Elliston  <bje@au.ibm.com>

	* bt-load.c (link_btr_uses): Fix uninitialised warnings.
	* cfganal.c (find_edge_index): Ditto.
	* combine.c (combine_instructions): Ditto.
	* ddg.c (create_scc): Ditto.
	(find_successors): Ditto.
	(find_predecessors): Ditto.
	(find_nodes_on_paths): Ditto.
	(longest_simple_path): Ditto.
	* flow.c (update_life_info): Ditto.
	(count_or_remove_death_notes): Ditto.
	(clear_log_links): Ditto.
	* modulo-sched.c (generate_reg_moves): Ditto.
	(find_max_asap): Ditto.
	(find_max_hv_min_mob): Ditto.
	(find_max_dv_min_mob): Ditto.
	* sbitmap.c (sbitmap_first_set_bit): Ditto.
	* sched-rgn.c (extract_edgelst): Ditto.
	* tree-into-ssa.c (prepare_names_to_update): Ditto.
	(dump_update_ssa): Ditto.
	(ssa_names_to_replace) Ditto.
	(switch_virtuals_to_full_rewrite): Ditto.
	(update_ssa): Ditto.
	* tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.

2005-07-18  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/22483

	* tree-complex.c (create_components): Use
	safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE.
	* tree-flow-inline.h (fill_referenced_var_vec): New function.
	* tree-flow.h (safe_referenced_var_iterator): New structure.
	(FOR_EACH_REFERENCED_VAR_SAFE): New macro.
	* tree-ssa-alias.c (setup_pointers_and_addressables): Use
	safe_referenced_var iterator.
	(add_type_alias): Ditto.

2005-07-19  Steven Bosscher  <stevenb@suse.de>

	* loop-init.c (rest_of_handle_loop2): Remove.
	(rtl_loop_init, rtl_loop_done, rtl_move_loop_invariants,
	rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): New functions.
	(pass_rtl_loop_init, pass_rtl_loop_done,
	pass_rtl_move_loop_invariants, pass_rtl_unswitch,
	pass_rtl_unroll_and_peel_loops, pass_rtl_doloop): New passes.
	* tree-ssa-loop.c (pass_loop, pass_loop_init, pass_loop_done,
	pass_unswitch): Rename to pass_tree_loop, pass_tree_loop_init,
	pass_tree_loop_done, and pass_tree_unswitch.
	(gate_loop): Rename to gate_tree_loop.
	* passes.c (init_optimization_passes): Update for renamed tree
	loop passes.  Add the new loop2 passes as subpasses of loop2.
	* tree-pass.h: Add extern declarations for the new loop2 subpasses.
	Update for the renamed tree loop passes.

2005-07-18  Ian Lance Taylor  <ian@airs.com>

	PR middle-end/22057
	* tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder
	blocks when optimizing.

2005-07-18  Steve Ellcey  <sje@cup.hp.com>

	* common.opt (frename-registers): Initialize to 2.
	(fweb): Ditto.
	(fgcse-after-reload): Ditto.
	* toplev.c (AUTODETECT_FLAG_VAR_TRACKING): Rename to AUTODETECT_VALUE.
	(process_options): Only change flag_web, flag_rename_registers,
	and flag_rerun_cse_after_loop if not explicitly set by user.

2005-07-18  Jan Beulich  <jbeulich@novell.com>

	* config/i386/i386.c (ix86_expand_branch, ix86_expand_setcc,
	ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Handle TImode
	in 64-bit mode the same as DImode in 32-bit mode.
	(ix86_expand_ashl_const, ix86_split_ashl, ix86_split_ashr,
	ix86_split_lshr): Likewise. Rename to no longer refer to a specific
	mode. Add new mode parameter.
	* config/i386/i386.h (CONST_OK_FOR_LETTER_P): Describe and handle 'O'.
	* config/i386/i386.md (cmpti, addti3, subti3, negti2, ashlti3, ashrti3,
	x86_64_shift_adj): New expanders.
	(*addti3_1, *subti3_1, *negti2_1, ashlti3_1, *ashlti3_2, ashrti3_1,
	*ashrti3_2, lshrti3_1, *lshrti3_2, x86_64_shld, x86_64_shrd): New
	insns.
	Respective new splitters. Use renamed shift splitter helpers in 32-bit
	DImode shift splitters.
	* config/i386/i386-protos.h (ix86_split_ashl, ix86_split_ashr,
	ix86_split_lshr): Renamed from ix86_split_[al]sh[rl]di. Added new
	mode parameter.

2005-07-18  Jan Beulich  <jbeulich@novell.com>

	* i386.md (movdi_extzv_1): New.
	(zero_extendhidi2): Combine alternatives and never force use of
	REX64 prefix.
	(zero_extendqidi2): Likewise. Don't restrict input selection.

2005-07-17  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/22531
	* tree-ssa-pre.c (do_eustores): Make sure LHS is a decl for the
	 moment.

2005-07-17  Daniel Berlin  <dberlin@dberlin.org>

	* tree-promote-statics.c (pass_promote_statics): Change dump file
	 name.

2005-07-17  Daniel Berlin  <dberlin@dberlin.org>

	* tree-optimize.c (init_tree_optimization_passes): Add
	pass_eliminate_useless_stores pass.
	* tree-pass.h (pass_eliminate_useless_stores): New pass structure.
	* tree-ssa-pre.c (is_copy_stmt): New function.
	(follow_copies_till_vuse): Ditto.
	(do_eustores): Ditto.
	(gate_eustores): Ditto.

2005-07-16  Richard Henderson  <rth@redhat.com>

	* gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit.

2005-07-16 Danny Berlin <dberlin@dberlin.org>
	   Kenneth Zadeck <zadeck@naturalbridge.com>

	* Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c,
	ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c,
	ipa-type-escape.h, tree-promote-statics.c
	* ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c,
	ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h,
	tree-promote-statics.c: new files.
	* alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p,
	nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1,
	int nonlocal_set_p, mark_constant_function): Deleted.
	(rest_of_handle_cfg): Removed call to mark_constant_function.
	(nonoverlapping_component_refs_p): Added calls to support
	type based aliasing.
	* tree-ssa-alias.c (may_alias_p,
	compute_flow_insensitive_aliasing): Ditto.
	* calls.c (flags_from_decl_or_type): Removed reference to
	cgraph_rtl_info.
	* c-typeck.c (convert_arguments): Make builtins tolerant of having
	too many arguments.  This is necessary for Spec 2000.
	* cgraph.h (const_function, pure_function): Removed.
	* common.opt: Added "fipa-pure-const", "fipa-reference",
	"fipa-type-escape", and "ftree-promote-static".
	* opts.c: Ditto.
	* passes.c: Added ipa and tree-promote-statics passes.
	* timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE,
	TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS.
	* tree-dfa.c (referenced_var_lookup_if_exists): New function.
	* tree-flow.h: Added exposed sra calls and addition of
	reference_vars_info field for FUNCTION_DECLS.
	* tree-pass.h: Added passes.
	* tree-sra.c: (sra_init_cache): New function.
	(sra_insert_before, sra_insert_after) Made public.
	(type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p
	and made public.
	* tree-ssa-alias.c (dump_alias_stats): Added stats for type based
	aliasing. (may_alias_p): Added code to use type escape analysis to
	improve alias sets.
	* tree-ssa-operands.c (add_call_clobber_ops): Added parameter and
	code to prune clobbers of static variables based on information
	produced in ipa-reference pass.  Changed call clobbering so that
	statics are not marked as clobbered if the call does not clobber
	them.

2005-07-16  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (need_to_solve): Need to check for preds,
	too.

2005-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/install.texi (*-*-solaris2*): Document recommended version
	of GNU binutils and mention GNU linker problem on Solaris 10.

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

	PR c/22421
	* c-decl.c (c_build_bitfield_integer_type): New function.
	(finish_struct): Call it.
	* c-pretty-print.c (pp_c_type_specifier): Handle bit-field types.

2005-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-typeck.c (digest_init): Call 'convert_for_assignment'
	before returning.

2005-07-16  Jan Hubicka  <jh@suse.cz>

	* cfg.c (update_bb_profile_for_threading): Fix profile updating.
	(scale_bbs_frequencies_int): Watch roundoff errors.
	* predict.c (return_prediction): Initialize return_stmt.

2005-07-16  Jan Hubicka  <jh@suse.cz>

	* profile.c (rest_of_handle_branch_prob): Fix handling of estimation
	after RTL profiling.

2005-07-11  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/22398
	* fold-const.c (build_range_check): Convert high/low to etype
	if we are only comparing against exp.

2005-07-13  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/22376
	* tree-ssa-structalias.c (build_constraint_graph): We really meant
	special var here.
	(need_to_solve): New function.
	(compute_points_to_sets): Use it.

2005-07-15  Jan Hubicka  <jh@suse.cz>

	* cfg.c (update_bb_profile_for_threading): More diagnostic.
	* tree-ssa-threadupdate.c (redirect_edges): Update profile of dup_block.

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

	* c-common.c (handle_flatten_attribute): New function.
	Add flatten function attribute.
	* doc/extend.texi: Document flatten function attribute.
	* Makefile.in (ipa-inline.o): Depend on hashtab.h.
	* ipa-inline.c (cgraph_find_cycles, cgraph_flatten_node):
	New functions.
	(cgraph_decide_inlining): Handle functions with flatten
	attribute.

2005-07-14  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC,
	UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG,
	UNSPEC_XCHG, UNSPEC_AND): New.
	(UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG,
	UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete.
	* config/rs6000/sync.md (FETCHOP): New code macro.
	(fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr):
	New code attrs.
	(memory_barrier, sync_internal): Use unspec instead of unspec_volatile.
	(sync_compare_and_swap<mode>): Same.
	(sync_lock_test_and_set<mode>): Same.
	(sync_<fetchop><mode>, sync_nand<mode>): Only use rs6000_emit_sync
	for QImode and HImode, and not PPC405.
	(sync_old_<fetchop><mode>, sync_old_nand<mode>): Same.
	(sync_new_<fetchop><mode>, sync_new_nand<mode>): Same.
	(sync_<fetchop>{si,di}_internal): New.
	(sync_nand{si,di}_internal): New.
	(sync_old_<fetchop>{si,di}_internal): New.
	(sync_old_nand{si,di}_internal): New
	(sync_new_<fetchop>{si,di}_internal): New.
	(sync_new_nand{si,di}_internal): New.
	(atomic_and{si,di}): New.
	(sync_new_nand{si,di}_internal): New.
	(atomic_and{si,di}): New.
	(sync_add<mode>_internal): Delete.
	(sync_addshort_internal): Use unspec instead of unspec_volatile.
	(sync_sub<mode>_internal): Delte.
	(sync_subshort_internal): New.
	(sync_andsi_internal): Use unspec instead of unspec_volatile.
	(sync_anddi_internal): Delete.
	(sync_boolsi_internal): Use unspec instead of unspec_volatile.
	(sync_booldi_internal): Delete.
	(sync_boolc<mode>_internal): Delete.
	(sync_boolcshort_internal): Use unspec instead of unspec_volatile.
	(sync_boolc<mode>_internal2): Delete.
	(sync_boolcc<mode>_internal): Delete.
	(isync, lwsync): Use unspec instead of unspec_volatile.
	* config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS.
	Revert UNSPEC_VOLATILE.
	(rs6000_split_atomic_op): New.
	* config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare.

2005-07-14  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.c (mips_canonicalize_comparison): Cast
	argument of trunc_int_for_mode to unsigned HOST_WIDE_INT.

2005-07-14  Eric Christopher  <echristo@redhat.com>

	* config/s390/t-tpf (SHLIB_MAPFILES): Remove.

2005-07-14  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/22230
	* tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in
	the computation of the four cross productions for "range op range".

2005-07-14  Alexandre Oliva  <aoliva@redhat.com>
	    Ulrich Weigand  <uweigand@de.ibm.com>

	PR target/20126
	* loop.c (loop_givs_rescan): Do not ICE if unable to reduce an IV
	in some insn.

2005-07-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.h (TARGET_TPF_PROFILING): Add default definition.

2005-07-14  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.c (ia64_output_dwarf_dtprel): Support ILP32 mode.

2005-07-14  Richard Guenther  <rguenther@suse.de>

	PR middle-end/22347
	* config/i386/i386-protos.h (ix86_function_value): Change
	prototype to match new target hook.
	* config/i386/i386.c (ix86_value_regno): Change prototype
	to take extra type argument.
	(TARGET_FUNCTION_VALUE): Define.
	(ix86_function_ok_for_sibcall): Pass extra argument to
	ix86_value_regno, check return slot rtx for exact match.
	(ix86_function_value): Take extra parameter.  Dispatch to
	ix86_value_regno with fndecl/fntype as provided.
	(ix86_value_regno): Handle extra type argument.
	* config/i386/i386.h (FUNCTION_VALUE): No longer define.

	* testsuite/gcc.target/i386/sseregparm-3.c: New testcase.
	* testsuite/gcc.target/i386/sseregparm-4.c: New testcase.
	* testsuite/gcc.target/i386/sseregparm-5.c: New testcase.
	* testsuite/gcc.target/i386/sseregparm-6.c: New testcase.
	* testsuite/gcc.target/i386/sseregparm-7.c: New testcase.

2005-07-14  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (explow.o, reg-stack.o): Depend on target.h.
	* calls.c (expand_call): Pass fntype to hard_function_value.
	(emit_library_call_value_1): Likewise.
	* explow.c: Include target.h.
	(hard_function_value): Take extra argument, the fntype.
	Use new target hook for function_value.
	* expr.h (hard_function_value): Change prototype.
	* function.c (aggregate_value_p): Pass 0 as fntype to
	hard_function_value.
	(assign_parms): Use new target hook for function_value.
	Pass 0 as fntype to hard_function_value.
	(expand_function_end): Likewise.
	* reg-stack.c: Include target.h.
	(stack_result): Use new target hook for function_value.
	* target-def.h: New target hook function_value.
	* target.h: Likewise.
	* targhooks.c (default_function_value): New function.
	* targhooks.h (default_function_value): Declare.

2005-07-13  Ian Lance Taylor  <ian@airs.com>

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

2005-07-14  Jan Hubicka  <jh@suse.cz>

	* tree-dfa.c (dump_variable): Use default_def function.
	* tree-ssa-alias.c (dump_points_to_info): Likewise.
	* tree-ssa.c (verify_use): Likewise.
	* tree-ssanames.c (release_ssa_name): Likewise.
	* tree-tailcall.c (eliminate_tail_call): Likewise.
	(tree_optimize_tail_calls_1): Likewise.
	* tree-vrp.c (get_value_range): Likewise.

2005-07-14  Ben Elliston  <bje@au.ibm.com>

	* gcc.c (main): Compare language[0] with '*' when iterating over
	the infiles.

2005-07-13  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.c: (s390_cc_modes_compatible): Move before
	"s390_emit_compare".  Add handling of CCZ1mode.
	(s390_canonicalize_comparison): Simplify cascaded EQ, NE.
	(390_emit_compare): Use "s390_cc_modes_compatible" for mode
	checking.
	(s390_branch_condition_mask): Add CCZ1mode handling.
	* config/s390/s390.md: ("seq", "*seq"): New pattern.
	("sync_compare_and_swap_cc<mode>", "*sync_compare_and_swap_cc<mode>"):
	Use CCZ1mode instead of CCZmode.
	* config/s390/s390-modes.def: Add CCZ1mode.  Comment new mode.

2005-07-13  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md: ("cmpstrsi", "*cmpstr<mode>"): New
	pattern.
	("strlen<mode>", "*strlen<mode>"): Use hard reg 0 in SImode.

2005-07-13  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.c (mips_canonicalize_comparison): New.
	(mips_emit_int_relational): Use.

2005-07-13  Eric Christopher  <echristo@redhat.com>

	* config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
	static extra parts.
	* config/s390/s390.md: Include tpf.md. Move tpf specific
	patterns...
	* config/s390/tpf.md: To here.
	* config/s390/s390.opt: Move tpf specific options...
	* config/s390/tpf.opt: to here. Add mmain option.
	* config/s390/tpf-unwind.h: Remove unnecessary defines.
	* config/s390/tpf.h: Rewrite.

2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/tm.texi: Remove @xref{Cross-profiling}.

2005-07-13  Jeff Law  <law@redhat.com>

	* fold-const.c (fold_binary): When comparing two simple ADDR_EXPR
	expressions, test their _DECL operands for pointer equality rather
	than using operand_equal_p.

2005-07-13  H.J. Lu  <hongjiu.lu@intel.com>

	* config/alpha/linux.h (TARGET_HAS_F_SETLKW): Renamed to ...
	(TARGET_POSIX_IO): This.
	* config/darwin.h: Likewise.
	* config/freebsd.h: Likewise.
	* config/linux.h: Likewise.
	* config/lynx.h: Likewise.
	* config/netbsd.h: Likewise.
	* config/rs6000/linux64.h: Likewise.
	* config/rs6000/linux.h: Likewise.
	* config/s390/tpf.h: Likewise.
	* config/sh/embed-elf.h: Likewise.
	* config/sparc/linux64.h: Likewise.
	* config/sparc/linux.h: Likewise.
	* config/svr4.h: Likewise.
	* gcov-io.h: Likewise.

	* doc/tm.texi: Updated.

	* libgcov.c (create_file_directory): Defined only if
	TARGET_POSIX_IO is defined.
	(gcov_exit): Call create_file_directory only if TARGET_POSIX_IO
	is defined.

2005-07-13  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-operands.c (get_expr_operands): Fix typo in previous patch.

2005-07-13  David Edelsohn  <edelsohn@gnu.org>

	* tree-ssa-dom.c (lookup_avail_expr): Do not pass member in freed
	structure as argument.

2005-07-13  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/21921
	* tree-iterator.c (tsi_link_before): Support the case when
	tsi_end_p (tsi) == true.

2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/22442
	* tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs
	correctly.

2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>

	PR rtl-optimization/20376
	* toplev.c (process_options): Enable -fweb and -frename-registers when
	unrolling.
	* doc/invoke.texi: Update the information about when -fweb and
	-frename-registers are enabled.

2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/21840
	* tree-ssa-pre.c (eliminate): Convert the sprime to the correct type
	if *rhs_p is not a SSA_NAME.

2005-07-12  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/22422
	* tree-ssa-structalias.c (struct variable_info): Add flag for
	special vars.
	(get_varinfo): Now a static function.
	(new_varinfo): init has_union and is_special_var to false.
	(solution_set_add): Check has_union.
	(do_da_constraint): Move temporary variable so it gets reset
	properly.
	Also check for special variable.
	(do_ds_constraint): Ditto.
	(do_sd_constraint): Ditto.
	(do_structure_copy): Check for special variable.
	(find_func_aliases): Ditto.
	(init_base_vars): Set special vars properly.

2005-07-13  Jan Hubicka  <jh@suse.cz>

	* cfgexpand.c (expand_one_stack_var): Do not expand variables when we
	do unit-at-a-time.

	* tree-ssa-operands.c (parse_ssa_operands): Fix formatting.
	(get_expr_operands): Fix thinko wrt flags and subvars.

	PR tree-optimize/22379
	* tree-inline.c (expand_call_inline): Do not output sorry in early
	inlining.

2005-07-12  Dale Johannesen  <dalej@apple.com>

	* config/rs6000.c (rs6000_rtx_cost): Move FLOAT_EXTEND.

2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>

	PR bootstrap/21704
	* host-linux.h: Include limits.h.

2005-07-12  Dale Johannesen  <dalej@apple.com>

	* expr.c (compress_float_constant): Add cost check.
	* config/rs6000.c (rs6000_rtx_cost): Adjust FLOAT_EXTEND cost.

2005-07-12  Dale Johannesen  <dalej@apple.com>

	* gcc.target/i386/compress-float-sse.c: New.
	* gcc.target/i386/compress-float-sse-pic.c: New.
	* gcc.target/i386/compress-float-387.c: New.
	* gcc.target/i386/compress-float-387-pic.c: New.
	* gcc.dg/compress-float-ppc.c: New.
	* gcc.dg/compress-float-ppc-pic.c: New.

2005-07-12  Eric Christopher  <echristo@redhat.com>

	* config.gcc (s390x-ibm-tpf*): Add extra_options. Remove
	static extra parts.
	* config/s390/s390.md: Include tpf.md. Move tpf specific
	patterns...
	* config/s390/tpf.md: To here.
	* config/s390/s390.opt: Move tpf specific options...
	* config/s390/tpf.opt: to here. Add mmain option.
	* config/s390/tpf-unwind.h: Remove unnecessary defines.
	* config/s390/tpf.h: Rewrite.

2005-07-12  Eric Christopher  <echristo@redhat.com>

	* gcc.c (struct infile): Update comment for language.
	(main): Rewrite input file resetting code.

2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/22335
	* tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if
	requiring a cast in a non RHS of modify_expr.  Add a cast when required.
	(lookup_avail_expr): Use constant_boolean_node instead
	of boolean_false_node/boolean_true_node.

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

	* tree-cfg.c (dump_cfg_stats): Add a new fmt_str_2 format string
	and use it when printing num_edges.

2005-07-12  Bernd Schmidt  <bernd.schmidt@analog.com>

	* doc/extend.texi (Blackfin Built-in Functions): New section.
	* doc/invoke.texi (mcsync-anomaly, mno-csync-anomaly): Fix the
	@opindex.

2005-07-12  Adrian Straetling  <straetling@de.ibm.com>

	* builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp):
	s/cmpstrsi/cmpstrnsi
	(expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and
	'cmpstrnsi'.
	* optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'.
	(init_optabs): Initialize cmpstrn_optab.
	* optabs.h: (enum insn_code cmpstrn_optab): Declare.
	* genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation.
	* expr.c: (enum insn_code cmpstrn_optab): Declare.
	* config/i386/i386.md: s/cmpstr/cmpstrn
	* config/c4x/c4x.md: s/cmpstr/cmpstrn
	* doc/md.texi: Update documentation.

2005-07-11  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use
	build_va_arg_indirect_ref.
	(alpha_gimplify_va_arg): Likewise.
	* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
	* config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
	* config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise.
	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
	* config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg):
	Likewise.
	* config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.

2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-flow.h (remove_empty_loops, single_dom_exit): Declare.
	* passes.c (init_optimization_passes): Add pass_empty_loop.
	* tree-pass.h (pass_empty_loop): Declare.
	* tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop,
	try_remove_empty_loop, remove_empty_loops): New functions.
	* tree-ssa-loop-ivopts.c (single_dom_exit): Export.
	* tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New.

2005-07-12  Peter Barada  <peter@the-baradas.com>

	PR middle-end/16719
	PR middle-end/18421
	* config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes
	in address registers.
	* config/m68k/m68k.c (hard_regno_mode_ok): Likewise.
	* config/m68k/m68k.md: Replace 's' with 'i' in 4th
	alternative of addsi3_5200.

2005-07-11  Ian Lance Taylor  <ian@airs.com>

	* config/mips/mips.md (ffs<mode>2): Remove.

2005-07-11  Ian Lance Taylor  <ian@airs.com>

	* doc/tree-ssa.texi (Cleanups): Improve description of
	TRY_FINALLY_EXPR.
	(GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases.

2005-07-11  Daniel Berlin  <dberlin@dberlin.org>

	* print-tree.c (print_node): Use DECL_ARGUMENT_FLD.
	* tree.h (DECL_ARGUMENT_FLD): New macro.

2005-07-11  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/22404

	* tree-ssa-structalias.c (create_variable_info_for): Use
	correct offset.

2005-07-11  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt,
	compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand
	for second comparison operand.
	* config/bfin/predicates.md (reg_or_const_int_operand): New.

	* config/bfin/bfin.md (define_attr "type"): Add "sync".
	(define_insn_reservation "alu"): Likewise.
	(csync, ssync): Now of type sync.
	* config/bfin/bfin.h (TARGET_DEFAULT): Defaults to
	-mcsync-anomaly -mspecld-anomaly.
	* config/bfin/bfin.opt (mcsync): Remove.
	(mcsync-anomaly, mspecld-anomaly): Add.
	* config/bfin/bfin.c: Include "insn-codes.h".
	(bfin_reorg): Extend to handle the CSYNC anomaly as well.
	(TARGET_DEFAULT_TARGET_FLAGS): New.
	* doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly.

2005-07-11  Steven Bosscher  <stevenb@suse.de>

	* basic-block.h: Give the BB flags enum a name, bb_flags.
	Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK.
	* cfgcleanup.c (enum bb_flags): Remove here.
	(BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove.
	(notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS.
	(update_forwarder_flag): Likewise.
	(thread_jump): Likewise.
	(try_forward_edges): Likewise.
	(try_optimize_cfg): Likewise.  Clear bb->flags before updating the
	forwarder flags.  Don't clear bb->aux for all basic blocks.  Only
	reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags.

2005-07-11  Richard Guenther  <rguenther@suse.de>

	* config/i386/i386.opt: New target option -msseregparm.
	* config/i386/i386.c (override_options): Error out for
	-msseregparm but no SSE support.
	(ix86_function_sseregparm): Check for global sseregparm.
	* doc/invoke.texi: Document -msseregparm.

2005-07-11  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>

	* config.gcc (m32r-*-linux*): Use the default extra_parts.
	(m32rle-*-linux*): Ditto.

2005-07-11  Jakub Jelinek  <jakub@redhat.com>

	* cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type)
	instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in
	bytes.

2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/22239
	PR target/20126
	* loop.c (loop_givs_rescan): Use expand_simple_binop instead of
	gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)).

2005-07-07  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (struct variable_info): Heapify complex.
	(varmap): Heapify varmap.
	(constraints): Heapify constraints.
	(struct constraint_graph): Heapify succs and preds.
	(constraint_vec_find): Update for heapification.
	(constraint_set_union): Ditto.
	(insert_into_complex): Ditto.
	(constraint_edge_vec_find): Ditto.
	(erase_graph_self_edge): Ditto.
	(add_graph_edge): Ditto.
	(get_graph_weights): Ditto.
	(merge_graph_nodes): Ditto.
	(build_constraint_graph): Ditto.
	(topo_visit): Ditto.
	(solve_graph): Ditto.
	(create_variable_info_for): Ditto.
	(init_base_vars): Ditto.
	(delete_points_to_sets): Free graph, varmap, and complex constraints.
	(condese_varmap_nodes): Free complex vector.
	(clear_edges_for_node): Clear succs and preds vector.

2005-07-10  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (update_alias_info): Change counting of
	references to not include vdefs.

2005-07-10  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-alias.c (free_used_part_map): Add missing free.
	(up_insert): Ditto.

2005-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (pa_commutative_p): Make PLUS commutative when
	TARGET_NO_SPACE_REGS is true.

2005-07-09  Diego Novillo  <dnovillo@redhat.com>

	* Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h
	* tree-cfg.c (CHECK_OP): Only test for is_gimple_val.
	* tree-dfa.c (dump_subvars_for): New.
	(debug_subvars_for): New.
	(dump_variable): Show subvariables if VAR has them.
	* tree-flow-inline.h (get_subvar_at): New.
	(overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT.
	* tree-flow.h (struct ptr_info_def): Remove field pt_malloc.
	Update all users.
	(struct subvar): Change fields offset and size to unsigned
	HOST_WIDE_INT.
	(dump_subvars_for): Declare.
	(debug_subvars_for): Declare.
	(get_subvar_at): Declare.
	(okay_component_ref_for_subvars): Change 2nd and 3rd argument
	to unsigned HOST_WIDE_INT *.
	(overlap_subvar): Likewise.
	* tree-gimple.c (is_gimple_reg): Always return false for
	SFTs and memory tags.
	* tree-pass.h (pass_build_pta, pass_del_pta): Remove.
	Update all callers.
	* tree-ssa-alias.c: Include tree-ssa-structalias.h.
	(compute_may_aliases): Call compute_points_to_sets.
	(collect_points_to_info_for): Remove.
	(compute_points_to_and_addr_escape): Remove.
	(delete_alias_info): Call delete_points_to_sets.
	(compute_flow_sensitive_aliasing): If the call to
	find_what_p_points_to returns false, call set_pt_anything.
	(add_may_alias): Set TREE_ADDRESSABLE when adding a new alias.
	(set_pt_anything): Clear pi->pt_vars.
	(set_pt_malloc): Remove.
	(merge_pointed_to_info): Remove.
	(add_pointed_to_expr): Remove.
	(add_pointed_to_var): Remove.
	(collect_points_to_info_r): Remove.
	(is_escape_site): Make extern.
	(create_sft): New.
	(create_overlap_variables_for): Call it.
	* tree-ssa-copy.c (merge_alias_info): Never merge
	flow-sensitive alias information.
	* tree-ssa-operands.c (get_expr_operands): Adjust variables
	offset and size to be unsigned HOST_WIDE_INT.
	(add_to_addressable_set): Rename from note_addressable.
	Set TREE_ADDRESSABLE as the variables are added to the set.
	Update all users.
	(add_stmt_operand): Do not try to micro-optimize unmodifiable
	operands into VUSEs when adding V_MAY_DEFs for members in an
	alias set.
	* tree-ssa-operands.h (add_to_addressable_set): Declare.
	* tree-ssa-structalias.c: Include tree-ssa-structalias.h last.
	(struct variable_info): Add bitfield is_heap_var.
	(var_anyoffset, anyoffset_tree, anyoffset_id): Declare.
	(new_var_info): Initialize is_heap_var.
	(get_constraint_for): Add HEAP variables to the symbol table.
	Mark them with is_heap_var.
	(update_alias_info): New.  Taken mostly from the old
	compute_points_to_and_addr_escape.
	(handle_ptr_arith): New.
	(find_func_aliases): Call update_alias_info.
	Call handle_ptr_info for tcc_binary expressions.
	Call mark_stmt_modified.
	(create_variable_info_for): If DECL has subvars, do not create
	variables for its subvars.  Always add all the fields.
	(set_uids_in_ptset): If the solution includes ANYOFFSET and
	SFTs, then add all the SFTs of the structure.
	If VI->DECL is an aggregate with subvariables, add the SFT at
	VI->OFFSET.
	(find_what_p_points_to): If VI is an artificial variable,
	translate to bitfields in SSA_NAME_PTR_INFO.
	If the solution is empty, set pi->pt_vars to NULL
	(init_base_vars): Create ANYOFFSET.
	(compute_points_to_sets): Rename from create_alias_vars.
	Make extern.
	(pass_build_pta): Remove.
	(delete_points_to_sets): Rename from delete_alias_vars.
	(pass_del_pta): Remove.
	* tree-ssa-structalias.h (struct alias_info): Move from
	tree-ssa-alias.h.
	(NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC,
	NUM_REFERENCES_SET): Likewise.
	(compute_points_to_sets, delete_points_to_sets): Declare.

2005-07-09  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12,
	alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12,
	alpha_split_lock_test_and_set_12): New functions.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC,
	UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO.
	* config/alpha/sync.md (I12MODE): New.
	(memory_barrier, mb_internal): Use unspec instead of unspec_volatile.
	(sync_<fetchop_name><I48MODE>): Likewise.
	(sync_nand<I48MODE>): Likewise.
	(sync_old_<fetchop_name><I48MODE>): Likewise.
	(sync_new_<fetchop_name><I48MODE>): Likewise.
	(sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
	(sync_compare_and_swap<I48MODE>): Likewise.
	(sync_lock_test_and_set<I48MODE>): Likewise.
	(sync_compare_and_swap<I12MODE>): New.
	(sync_compare_and_swap<I12MODE>_1): New.
	(sync_lock_test_and_set<I12MODE>): New.
	(sync_lock_test_and_set<I12MODE>_1): New.

2005-07-09  Diego Novillo  <dnovillo@redhat.com>

	PR 21356
	PR 22332
	* passes.c (execute_todo): Cleanup the CFG before updating SSA.

2005-07-09  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT:
	in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx).

2005-07-09  Richard SAndiford  <richard@codesourcery.com>

	PR target/21656
	* config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define.

2005-07-08  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/sync.md (load_locked_<mode>): Use Z for
	memory_operand constraint.
	(store_conditional_<mode>): Same.
	(sync_compare_and_swap<mode>): Same.
	(sync_lock_test_and_set<mode>): Same.

2005-07-08  Hans-Peter Nilsson  <hp@axis.com>

	Rewrite PIC support to more closely model actual instructions.
	* config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol)
	(cris_symbol): Remove prototypes for removed functions.
	(cris_pic_symbol_type_of, cris_valid_pic_const)
	(cris_expand_pic_call_address): Prototypes for new functions.
	* config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused
	variable.
	(cris_print_operand) <case 'v', 'P'>: Remove cases for unused
	modifiers.
	<case ':'>: Add case for new punctuation character.
	<case 'd'>: Temporarily set flag_pic = 2 instead of incorrectly
	emitting (extra) PIC modifier.
	<case UNSPEC>: Do not assert for PLT.
	(cris_initial_frame_pointer_offset, cris_simple_epilogue)
	(cris_expand_prologue, cris_expand_epilogue): Check
	for pic_offset_table_rtx usage instead of taking
	current_function_uses_pic_offset_table as the final word.
	(cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok):
	Remove flag_pic difference.
	(cris_valid_pic_const, cris_pic_symbol_type_of): New functions,
	the moral equivalents of...
	(cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove
	functions.
	(cris_legitimate_pic_operand): Just call cris_valid_pic_const.
	(cris_handle_option): Mark ARG as unused.
	(cris_expand_pic_call_address): New worker function for "call",
	"call_value".
	(cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not
	output PIC constructs here.
	(cris_output_addr_const_extra): Changes for emitting PIC modifiers
	as symbol-specific modifers, not whole or part of operands.
	* config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case.
	(EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped
	constants and flag_pic.
	(CONSTANT_INDEX_P): Adjust for new functions.
	(enum cris_pic_symbol_type): New helper type.
	(PRINT_OPERAND_PUNCT_VALID_P): Add ':'.
	* config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL)
	(CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New
	define_constants.
	("movsi"): Emit actual instructions for GOT and relative access.
	("*movsi_got_load"): New pattern to set up the register holding
	the GOT pointer.
	("*movsi_internal"): Operand 1 is not a plain general_operand.
	Adjust FIXME for 'S'.
	<output for 'S' alternative>: Sanity-check UNSPEC types for PIC.
	Use "movs" for -fpic cases.
	("addsi3"): Add alternative for 'S'; use adds.w when possible.
	("uminsi3","*expanded_call_value"): Remove 'S' alternative.
	("call", "call_value"): Just call cris_expand_pic_call_address for
	PIC addresses.
	("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"):
	Remove special pattern.
	("*expanded_call_side", "*expanded_call_value_side"): New
	patterns.
	(gotplt-to-plt, gotplt-to-plt-side-call)
	(gotplt-to-plt-side-call-value, gotplt-to-plt-side): New
	peephole2:s.
	* config/cris/cris/predicates.md
	("cris_general_operand_or_gotless_symbol"): Remove unused
	predicate.
	("cris_general_operand_or_symbol"): Adjust for new functions.

2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1.

2005-07-08  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.in (TREE_H): Add treestruct.def.
	(c-decl.o): Add pointer-set.h
	* c-decl.c (diagnose_mismatched_decls): Don't attempt to look at
	visibility on regular DECL's.
	(merge_decls): Fix the copying of decl nodes of various types for
	the new structures.  Don't update RTL, section name, weak status,
	etc, on DECL's without RTL.
	(grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone.
	Don't check volatile on non-variable types.
	(store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK
	to check whether we have seen arguments.
	* c-objc-common.c (c_tree_printer): Reverse order of tests so that
	flag is checked before field (flag is common, field is not).
	* dwarf2out.c (decl_ultimate_origin): Only DECL's with
	TS_DECL_COMMON could have an origin.
	(add_location_or_const_value_attribute): Don't check section name
	on non-var/function decls.
	(dwarf2out_var_location): Reverse order of tests.
	* emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace
	with DECL_WRTL_CHECK.
	* expmed.c (make_tree): rtl is now in decl_with_rtl.
	* fold-const.c (fold_binary): Don't check weakness on
	non-var/function decls.
	(tree_expr_nonzero_p): Ditto.
	(fold_checksum_tree): Use tree_decl_extra as sizeof
	buffer.
	* ggc-page.c (extra_order_size_table): Add sizes for
	tree_decl_non_common, tree_parm_decl,  tree_var_decl, and
	tree_field_decl.
	* gimplify.c (gimplify_bind_expr): Only set
	DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL.
	* integrate.c (copy_decl_for_inlining): Don't set RTL on decl's
	without RTL.
	* langhooks-def.h (LANG_HOOK_INIT_TS): New.
	* langhooks.h (init_ts). New langhook.
	* passes.c (rest_of_decl_compilation): Reverse order of tests.
	* print-tree.c (print_node): Update to only print fields that
	exist in the structures the passed decl has.
	* toplev.c (wrapup_global_declarations): Don't reset
	DECL_DEFER_OUTPUT on DECL's that don't contain it.
	* tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed.
	* tree-inline.c (remap_decl): Ditto.
	* tree-outof-ssa.c (create_temp): Reverse order of tests.
	* tree-pretty-print.c (print_declaration): Don't print
	DECL_REGISTER on things that don't contain it.
	* tree-vrp.c (expr_computes_nonzero): Don't check weakness on
	non-var/function decls.
	* tree.c (tree_contains_struct): New structure.
	(init_priority_for_decl): New hashtable.
	(tree_int_map): New structure.
	(tree_int_map_eq): New function.
	(tree_int_map_marked_p): Ditto.
	(tree_int_map_hash): Ditto.
	(tree_map): Move to tree.h.
	(tree_map_eq): Externalize.
	(tree_map_hash): Ditto.
	(tree_map_marked_p): Ditto.
	(init_ttree): Set up tree_contains_struct and call langhook.
	(decl_assembler_name): Use DECL_NON_COMMON_CHECK..
	(tree_code_size): Update for new structures.
	(tree_node_structure): Update for new structures.
	(make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls
	without the field.
	(copy_node_stat): Copy init priority.
	(build_decl_stat): Ditto for visibility.
	(ts_enum_names): New.
	(tree_contains_struct_check_failed): New function.
	(decl_init_priority_lookup): Ditto.
	(decl_init_priority_insert): Ditto.
	* treestruct.def: New file.
	* tree.h (CODE_CONTAINS_STRUCT): New macro.
	(CONTAINS_STRUCT_CHECK): Ditto.
	(tree_contains_struct_check_failed): New prototype.
	(DECL_CHECK): Removed.
	(DECL_MINIMAL_CHECK): New.
	(DECL_COMMON_CHECK): Ditto.
	(DECL_WRTL_CHECK): Ditto.
	(DECL_NON_COMMON_CHECK): Ditto.
	(DECL_WITH_VIS_CHECK): Ditto.
	(VAR_OR_FUNCTION_DECL_P): Ditto
	(struct tree_decl_minimal): New structure.
	(struct tree_decl_common): Ditto.
	(struct tree_decl_with_rtl): Ditto.
	(struct tree_decl_with_vis): Ditto.
	(struct tree_decl_non_common): Ditto.
	(struct tree_field_decl): Ditto.
	(struct tree_parm_decl): Ditto.
	(struct tree_var_decl): Ditto.
	(struct tree_function_decl): Ditto.
	(struct tree_const_decl): Ditto.
	(struct tree_result_decl): Ditto.
	(union tree_node): Add new structures.
	* var-tracking.c (track_expr_p): Reverse order of tests.

	* doc/c-tree.texi: Add documentation on DECL node internal structure.

2005-07-08  Kazu Hirata  <kazu@codesourcery.com>

	* cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC.
	* system.h: Poison FINALIZE_PIC.
	* doc/tm.texi (FINALIZE_PIC): Remove.

2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/22329
	* tree-ssa-propagate.c (fold_predicate_in): Convert the value
	to the correct type if we have a MODIFY_EXPR.

2005-07-08  Kazu Hirata  <kazu@codesourcery.com>

	PR tree-optimization/22360
	* tree.c (upper_bound_in_type): Fix calculations for casting
	to a non-wider signed type and casting a signed value to a
	wider unsigned type.
	(lower_bound_in_type): Fix calculations for casting to a
	non-wider signed type.

	PR tree-optimization/20139
	* tree-cfg.c (remove_bb): Check in_ssa_p before calling
	release_defs.
	* tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call
	fold_cond_expr_cond.
	* tree-ssanames.c (release_defs): Assert in_ssa_p.
	* tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite.

2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/22356
	* tree-complex.c (expand_complex_libcall): Produce
	REALPART_EXPR/IMAGPART_EXPR with the correct type.

2005-07-08  Kenneth Zadeck <zadeck@naturalbridge.com>

	* bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
	bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a !=
	b" assert and inserted fastpath code for this case.
	(bitmap_ior): Removed "a != b" assert.

2005-07-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>

	* config/m32r/linux.h (STARTFILE_SPEC): Support PIE.
	(ENDFILE_SPEC): Likewise.
	* config/m32r/m32r.h (ASM_SPEC): Likewise.

	* config/m32r/m32r.c (m32r_output_function_epilogue): Care for
	a large stack frame at epilogue.

2005-07-08  David Billinghurst  <David.Billinghurst@riotinto.com>

	* final.c: Include sdbout.h when required.

2005-07-07  Geoffrey Keating  <geoffk@apple.com>

	* config.gcc (*-*-darwin*): Only one target-specific header file
	for generic darwin.
	(powerpc-*-darwin*): Add version-specific header files.
	* configure.in (gcc_AC_CHECK_DECLS): Add strverscmp.
	* config.in: Regenerate.
	* configure: Regenerate.
	* gcc.c: Include xregex.h.
	(version_compare_spec_function): New.
	(spec_function): Add version-compare.
	(replace_outfile_spec_function): Reformat comment.
	(compare_version_strings): New.
	* config/darwin-c.c (version_as_macro): New.
	(builtin_define): New.
	(darwin_cpp_builtins): New.
	* config/darwin-protos.h (darwin_cpp_builtins): New.
	* config/darwin.h (CPP_SPEC): Don't define APPLE_CC here.
	(LIB_SPEC): Make unconditional, update comment.
	(TARGET_C99_FUNCTIONS): Define.
	* config/darwin.opt: Sort.
	(mmacosx-version-min=): New.
	* config/darwin7.h: Delete.
	* config/darwin8.h: Delete.
	* config/i386/darwin.h (): Call darwin_cpp_builtins.
	* config/rs6000/darwin.h (): Call darwin_cpp_builtins.
	(TARGET_C99_FUNCTIONS): Define.
	* config/rs6000/darwin7.h: New.
	* config/rs6000/darwin8.h: New.
	* doc/invoke.texi (Darwin Options): Add -mmacosx-version-min=
	(-mmacosx-version-min): Document.

2005-07-07  Ian Lance Taylor  <ian@airs.com>

	* config/mips/mips.md (abs<mode>2) [GPR]: Remove.

2005-07-07  John David Anglin  <dave.anglin@nrc-crc.gc.ca>

	PR middle-end/22239
	* loop.c (loop_givs_rescan): Check that v->new_reg is a REG.

2005-07-07  Khem Raj  <kraj@mvista.com>

	* config/arm/arm.c (thumb_output_function_prologue): Calculate offset
	in bytes, not words.

2005-07-07  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_pad_arg_upward): Compare return value of
	DEFAULT_FUNCTION_ARG_PADDING to upward.

2005-07-07  Richard Henderson  <rth@redhat.com>

	* function.c (locate_and_pad_parm): Record parameter alignment in
	stack_alignment_needed.

2005-07-07  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP,
	UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete.
	(UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC,
	UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New.
	(define_attr "type"): Add isync, sync, load_l, store_c.
	* config/rs6000/sync.md (memory_barrier): Change to define_expand.
	Create scratch volatile MEM.
	(sync_internal): New.  POWER mnemonic is dcs, not ics.  Attribute
	sync.
	(load_locked_<mode>): New.
	(store_conditional_<mode>): New.
	(sync_compare_and_swap<mode>): Replace with splitter.
	(sync_lock_test_and_set<mode>): Replace with splitter.
	(sync_<fetchop><mode>): Change to unspec_volatile UNSPECV_SYNC_OP
	and UNSPECV_ISYNC.
	(isync): Change to unspec_volatile UNSPECV_ISYNC.  POWER mnemonic
	is ics.  Attribute isync.
	(lwsync): Change to unspec_volatile UNSPECV_LWSYNC.  Attribute
	lwsync.
	* config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE
	and UNSPECV_SYNC_OP.
	(emit_unlikely_jump): New.
	(emit_load_locked): New.
	(emit_store_conditional): New.
	(rs6000_split_compare_and_swap): New.
	(rs6000_split_lock_test_and_set): New.
	(is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L,
	TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC.
	* config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap,
	rs6000_split_lock_test_and_set): Declare.
	* config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md,
	mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l,
	store_c, isync, sync.

2005-07-07  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in (echo_quoted_to_gtyp): New template for outputing
	filenames to gtyp-gen.h.
	(s-typ-gen): Use it in place of for loops.

2005-07-07  J"orn Rennecke <joern.rennecke@st.com>

	* hooks.c (hook_bool_rtx_int_false): New function.
	* hooks.h (hook_bool_rtx_int_false): Declare.
	* target-def.h (TARGET_COMMUTATIVE_P): Define.
	(TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P.
	* target.h (struct gcc_target): Add commutative_p member.
	* targhooks.c (hook_bool_rtx_commutative_p): New function.
	* targhooks.h (hook_bool_rtx_commutative_p): Declare.
	* pa.c (TARGET_COMMUTATIVE_P): Redefine.
	(pa_commutative_p): New function.
	* jump.c (target.h): Include.
	(rtx_renumbered_equal_p): Use targetm.commutative_p.
	* doc/tm.texi: Document TARGET_COMMUTATIVE_P.

2005-07-07  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390-protos.h (s390_expand_clrmem): Delete.
	(s390_expand_setmem): New.
	* config/s390/s390.c: Likewise.
	(print_shift_count_operand): Truncate to 12 bits instead of 6.
	Adapt comments.
	* config/s390/s390.md: ("setmem<mode>"): Accept character as
	general_operand.  Call new function "s390_expand_setmem".
	("clrmem_long", "*clrmem_long"): Rewrite to ...
	("setmem_long", "*setmem_long"): ... this.

2005-07-07  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.c: (optimization_options): Enable
	TARGET_MVCLE at -Os.
	* doc/invoke.texi: Document changes in default behaviour.
	* config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle".

2005-07-07  Adrian Straetling  <straetling@de.ibm.com>

	* expr.c: (set_storage_via_setmem): Convert opchar to mode
	defined by back-end.

2005-07-07  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/sparc.md (stack_protect_testsi): Put clobbers after
	all sets in the pattern.
	* config/rs6000/rs6000.md (stack_protect_testsi,
	stack_protect_testdi): Likewise.

2005-07-06  Jeff Law  <law@redhat.com>

	* tree-vrp.c (simplify_using_ranges): Kill.
	(vrp_finalize): Remove call to simplify_using_ranges.
	(simplify_stmt_using_ranges): New function extracted from
	simplify_using_ranges.
	(simplify_div_or_mod_using_ranges): Likewise.
	(simplify_abs_using_ranges): Likewise.
	(simplify_cond_using_ranges): New function.
	* tree-flow.h (simplify_stmt_using_ranges): Prototype.
	* tree-ssa-propagate.c (substitute_and_fold): Call
	simplify_stmt_using_ranges if we have range information.

2005-07-06  James E. Wilson  <wilson@specifixinc.com>

	* config/ia64/ia64.c (ia64_reorg): Check optimize before
	ia64_flag_schedule_isns2.

	* config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when
	reading/writing general registers.
	(ia64_function_arg): Revert 2005-06-18 change.

2005-07-06  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>

	* pa.c (legitimize_pic_address): Use gcc_assert instead of abort.
	(legitimize_tls_address): Use gcc_unreachable instead of abort.

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

	* function.c (expand_function_end): Revert part of 2005-06-27
	patch.  Do sjlj_emit_function_exit_after after return_label.

2005-07-06  Kazu Hirata  <kazu@codesourcery.com>

	* doc/install.texi (--disable-libssp): New.

2005-07-06  Fariborz Jahanian <fjahanian@apple.com>

	* doc/invoke.texi: Update -fforce-mem documentation.
	* dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove
	code for -fforce-mem.
	* expmed.c: (store_bit_field,store_fixed_bit_field,
	extract_bit_field): Ditto.
	* expr.c: (convert_move): Ditto.
	* optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop,
	expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move,
	emit_conditional_add,expand_float,expand_fix): Ditto.
	* opts.c: (decode_options): Remove setting of flag_force_mem flag.
	(common_handle_option): Issue warning when -fforce-mem specified.

2005-07-06  Paul Brook  <paul@codesourcery.com>

	* aclocal.m4: Work around a bug in AC_PATH_PROGS when its last
	argument is empty.
	* configure: Regenerate.

2005-07-06  J"orn Rennecke <joern.rennecke@st.com>

	* sh.c (final_prescan_insn): Undo bogus change from 2005-05-09.

2005-07-06  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/22319
	Fix PR tree-optimization/22140
	Fix PR tree-optimization/22310

	* tree-ssa-structalias.c (do_structure_copy): Give up earlier on
	variable sized types.
	Use correct type for intermediate structure on *a = *b structure
	copies.

2005-07-06  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE):
	Remove.
	(STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA.
	(machine_function): Move typedef to...
	* config/rs6000/rs6000.c (machine_function): ... here.  Add
	varargs_save_offset field.
	(rs6000_stack_t): Remove varargs_size field.
	(setup_incoming_varargs): Allocate varargs save area using
	assign_stack_local, try to make it as small as possible.
	Save offset from virtual_stack_vars_rtx to the save area
	in cfun->machine->varargs_save_offset.  Use UNITS_PER_FP_WORD
	instead of magic 8 when fp word byte size is used.
	(rs6000_va_start): Use cfun->machine->varargs_save_offset
	instead of -RS6000_VARARGS_SIZE.
	(rs6000_stack_info, debug_stack_info,
	rs6000_initial_elimination_offset): Remove all traces of
	varargs_size.
	* config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove.
	* config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add
	RS6000_VARARGS_AREA.

2005-07-06  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/21963
	* tree-ssa-loop-ivopts.c (get_computation_aff): Use
	constant_multiple_of in the same way get_computation_cost_at does.

2005-07-06  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/sparc.h (sparc_compare_emitted): New extern.
	* config/sparc/sparc.c (sparc_compare_emitted): New variable.
	(gen_compare_reg): If sparc_compare_emitted is set, clear it
	and return its previous value.
	(emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL.
	* config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
	constants.
	(stack_protect_set, stack_protect_test): New expanders.
	(stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
	stack_protect_testdi): New insns.
	* config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
	* config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define.

2005-07-06  Jeff Law  <law@redhat.com>

	* tree-ssa-dce.c (cfg_altered): New global.
	(tree_dce_init): Initialize cfg_altered.
	(remove_dead_stmt): If we remove an edge in the CFG, then set
	CFG_ALTERED.
	(perform_tree_ssa_dce): If we altered the CFG, then invalidate
	the dominators.

2005-07-06  Kazu Hirata  <kazu@codesourcery.com>

	* Makefile.in (stamp-collect-ld): Use
	$(ORIGINAL_LD_FOR_TARGET) instead of $<.  Don't remove
	./collect-ld if it already exists.
	(stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<.
	Don't remove ./nm if it already exists.

2005-07-05  Devang Patel  <dpatel@apple.com>

	* tree-vectorizer.h (struct _loop_vec_info): Remove loop_line_number.
	(LOOP_VINFO_LOC, LOOP_LOC): Remove.
	* tree-vectorizer.c (vect_loop_location): New.
	(vect_print_dump_info): Use vect_loop_location.
	(new_loop_vec_info): Do not set LOOP_VINFO_LOC.
	(vectorize_loops): Set vect_loop_location.
	* tree-vect-analyze.c (vect_analyze_offset_expr,
	vect_determin_vectorization_factor, vect_analyze_operations,
	vect_analyze_scalar_cycles, vect_analyze_data_ref_dependence,
	vect_analyze_data_ref_dependences, vect_compute_data_ref_alignment,
	vect_analyze_data_refs_alignment, vect_analyze_data_ref_access,
	vect_analyze_data_ref_accesses, vect_analyze_pointer_ref_access,
	vect_object_analysis, vect_analyze_data_refs, vect_mark_relevant,
	vect_stmt_relevant_p, vect_mark_stmts_to_be_vectorized,
	vect_can_advance_ivs_p, vect_get_loop_niters, vect_analyze_loop_form,
	vect_analyze_loop): Adjust vect_print_dump_info API.
	* tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
	vect_create_data_ref_ptr, vect_init_vector, vect_get_vec_def_for_operand,
	vect_finish_stmt_generation, vectorizable_assignment,
	vectorizable_operation, vectorizable_store, vectorizable_load,
	vectorizable_live_operation, vectorizable_condition, vect_transform_stmt,
	vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
	vect_gen_ninters_for_prolog_loop, vect_do_peeling_for_alignment,
	vect_transform_loop): Same.
	* tree-vectorizer.c (get_vectype_for_scalar_type, vect_is_simple_use,
	vect_is_simple_reduction, vect_is_simple_iv_evolution, vectorize_loops):
	Same.

2005-07-05  Randolph Chung  <tausq@debian.org>

	* configure.ac (hppa*-*-linux*: Check for a TLS capable gas.
	* configure: Regenerate.
	* config/pa/pa-protos.h (tls_symbolic_operand): Declare.
	(pa_tls_referenced_p): Declare.
	* config/pa/pa.c (legitimize_pic_address): Reject TLS operands.
	(gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New.
	(legitimize_tls_address): New.
	(hppa_legitimize_address): Handle TLS addresses.
	(pa_tls_symbol_ref_1, pa_tls_referenced_p): New.
	(TARGET_CANNOT_FORCE_CONST_MEM): Define.
	(emit_move_sequence): Handle TLS addresses.
	(pa_encode_section_info): Call default handler to handle common
	sections.
	* config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New.
	(CONSTANT_ADDRESS_P): Reject TLS operands.
	(TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define.
	* config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM)
	(UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE)
	(UNSPEC_TLSLE): Define new constants.
	(tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New.
	* config/pa/predicates.md (symbolic_operand): Reject TLS operands.
	(tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand)
	(tie_symbolic_operand, tle_symbolic_operand): New

2005-07-06  Kelley Cook  <kcook@gcc.gnu.org>

	* aclocal.m4: Update macros for autoconf 2.59 style.
	* configure.ac: Likewise.

2005-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (function_value): Handle small aggregates on 32-bit targets.
	(function_arg): Pass small aggregates in general registers on 32-bit
	targets.
	* som.h (MEMBER_TYPE_FORCES_BLK): Delete define.

2005-07-05  Andrew Pinski  <pinskia@physics.uc.edu>

	* Makefile.in (final.o): Fix dependencies.

2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/22013
	PR c/22098
	* langhooks.h (struct lang_hooks): Add expr_to_decl.
	* langhooks.c (lhd_expr_to_decl): New.
	* langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL):
	New.
	(LANG_HOOKS_INITIALIZER): Update.
	* tree.c (recompute_tree_invarant_for_addr_expr): Call
	expr_to_decl langhook.
	* c-tree.h (c_expr_to_decl): Declare.
	* c-typeck.c (c_expr_to_decl): New.
	(build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR
	specially.
	* c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define.

2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/22308
	* c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY,
	C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants.

2005-07-05  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in: Adjust dependencies.
	* tree-pass.h: Add new passes and passes formerly in tree-optimize.c.
	* basic-block.h (duplicate_computed_gotos): Remove, it is now static.
	* alias.c (rest_of_handle_cfg, pass_cfg): New.
	* bb-reorder.c (duplicate_computed_gotos): Make it static.
	* cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of
	rest_of_compilation.

	* bb-reorder.c (gate_duplicate_computed_gotos,
	pass_duplicate_computed_gotos, gate_handle_reorder_blocks,
	rest_of_handle_reorder_blocks, pass_reorder_blocks,
	gate_handle_partition_blocks, rest_of_handle_partition_blocks,
	pass_partition_blocks): New.
	* bt-load.c (gate_handle_branch_target_load_optimize,
	rest_of_handle_branch_target_load_optimize,
	pass_branch_target_load_optimize): New.
	* cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2,
	pass_jump2): New.
	* cfglayout.c (pass_insn_locators_initialize): New.
	* cfgrtl.c (pass_free_cfg): New.
	* combine.c (gate_handle_combine, rest_of_handle_combine,
	pass_combine): New.
	* cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse,
	gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New.
	* emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New.
	* except.c (pass_set_nothrow_function_flags,
	pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh,
	pass_rtl_eh): New.
	* final.c (pass_compute_alignments, rest_of_handle_final, pass_final,
	rest_of_handle_shorten_branches, pass_shorten_branches,
	rest_of_clean_state, pass_clean_state): New.
	* flow.c (pass_recompute_reg_usage, gate_remove_death_notes,
	rest_of_handle_remove_death_notes, pass_remove_death_notes,
	rest_of_handle_life, pass_life, rest_of_handle_flow2,
	pass_flow2): New.
	* function.c (pass_instantiate_virtual_regs, pass_init_function,
	rest_of_handle_check_leaf_regs, pass_leaf_regs): New.
	* gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
	pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse,
	pass_gcse): New.
	* global.c (rest_of_handle_global_alloc, pass_global_alloc): New.
	* ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion,
	pass_rtl_ifcvt, gate_handle_if_after_combine,
	rest_of_handle_if_after_combine, pass_if_after_combine,
	gate_handle_if_after_reload, rest_of_handle_if_after_reload,
	pass_if_after_reload): New.
	* integrate.c (pass_initial_value_sets): New.
	* jump.c (pass_cleanup_barriers, purge_line_number_notes,
	pass_purge_lineno_notes): New.
	* mode-switching.c (rest_of_handle_mode_switching,
	pass_mode_switching): New.
	* local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New.
	* loop-init.c (gate_handle_loop2, rest_of_handle_loop2,
	pass_loop2): New.
	* loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize,
	pass_loop_optimize): New.
	* modulo-sched.c (gate_handle_sms, rest_of_handle_sms,
	pass_sms): New.
	* postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2,
	pass_gcse2): New.
	* postreload.c (gate_handle_postreload, rest_of_handle_postreload,
	pass_postreload_cse): New.
	* profile.c (gate_handle_profiling, pass_profiling,
	rest_of_handle_branch_prob, pass_branch_prob): New.
	* recog.c (pass pass_split_for_shorten_branches, gate_do_final_split,
	pass_split_before_regstack, gate_handle_split_before_regstack,
	gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2,
	rest_of_handle_split_all_insns, pass_split_all_insns): New.
	* reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs,
	pass_stack_regs): New.
	* regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove,
	gate_handle_stack_adjustments, rest_of_handle_stack_adjustments,
	pass_stack_adjustments): New.
	* regrename.c (gate_handle_regrename, rest_of_handle_regrename,
	pass_regrename): New.
	* reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots,
	pass_delay_slots, gate_handle_machine_reorg,
	rest_of_handle_machine_reorg, pass_machine_reorg): New.
	* rtl.h (extern void purge_line_number_notes): New.
	* sched-rgn.c (gate_handle_sched, rest_of_handle_sched,
	gate_handle_sched2, rest_of_handle_sched2, pass_sched,
	pass_sched2): New.
	* tracer.c (gate_handle_tracer, rest_of_handle_tracer,
	pass_tracer): New.
	* value-prof.c (gate_handle_value_profile_transformations,
	rest_of_handle_value_profile_transformations,
	pass_value_profile_transformations): New.
	* var-tracking.c (gate_handle_var_tracking,
	pass_variable_tracking): New.
	* web.c (gate_handle_web, rest_of_handle_web, pass_web): New.

	* passes.c (open_dump_file, close_dump_file, rest_of_handle_final,
	rest_of_handle_delay_slots, rest_of_handle_stack_regs,
	rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
	rest_of_handle_old_regalloc, rest_of_handle_regrename,
	rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks,
	rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2,
	rest_of_handle_gcse2, rest_of_handle_regmove,
	rest_of_handle_tracer, rest_of_handle_if_conversion,
	rest_of_handle_if_after_combine, rest_of_handle_if_after_reload,
	rest_of_handle_web, rest_of_handle_branch_prob,
	rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
	rest_of_handle_jump_bypass, rest_of_handle_combine,
	rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
	rest_of_handle_gcse, rest_of_handle_loop_optimize,
	rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize,
	rest_of_handle_mode_switching, rest_of_handle_jump,
	rest_of_handle_eh, rest_of_handle_stack_adjustments,
	rest_of_handle_flow2, rest_of_handle_jump2,
	rest_of_handle_peephole2, rest_of_handle_postreload,
	rest_of_handle_shorten_branches, rest_of_clean_state,
	rest_of_compilation): Remove.

	* cgraphunit.c (ipa_passes): Moved from tree-optimize.c.
	* passes.c (dump_flags, in_gimple_form, all_passes,
	all_ipa_passes, all_lowering_passes, register_one_dump_file,
	register_dump_files, next_pass_1, last_verified, execute_todo,
	execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved
	from tree-optimize.c.
	(init_optimization_passes): Moved from tree-optimize.c,
	adding the RTL optimizations.
	* tree-dump.h (dump_info_p, dump_flag): Moved from tree.h.
	* tree-optimize.c (dump_flags, in_gimple_form, all_passes,
	all_ipa_passes, all_lowering_passes, register_one_dump_file,
	register_dump_files, next_pass_1, last_verified, execute_todo,
	execute_one_pass, execute_pass_list, execute_ipa_pass_list,
	init_tree_optimization_passes, ipa_passes): Delete.
	* tree-pass.h (enum tree_dump_index): Moved from tree.h, removing
	the RTL dumps.
	(TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p,
	dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved
	from tree.h.
	(ipa_passes): Remove.
	(all_passes, all_ipa_passes, all_lowering_passes): Now extern.
	* tree.h (enum tree_dump_index, TDF_*, get_dump_file_name,
	dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node,
	dump_switch_p, dump_flag_name): Moved to tree-pass.h.
	(dump_info_p, dump_flag): Moved to tree-dump.h.

	* Makefile.in: Adjust dependencies for tree-pretty-print.c,
	cgraph.c, opts.c.
	* passes.c (finish_optimization_passes): Use dump_begin
	and dump_end, TDI_end.
	(gate_rest_of_compilation): New.
	(pass_rest_of_compilation): Use it.
	(gate_postreload, pass_postreload): New.
	* toplev.c (general_init): Rename init_tree_optimization_passes.
	* toplev.h (init_tree_optimization_passes): Rename to
	init_optimizations_passes.
	* tree-dump.c (dump_flag): Make static.
	(dump_files): Remove RTL dumps.
	* tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
	pass_cleanup_cfg, pass_free_cfg_annotations,
	pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
	pass_init_datastructures, pass_fixup_cfg): Make non-static.
	* tree-pretty-print.c: Include tree-pass.h.
	* cgraph.c: Include tree-dump.h.

2005-07-04  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (get_constraint_exp_from_ssa_var):
	Only fall back to saying it points to readonly memory if
	we can't do better.

2005-07-05  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* config/m32r/m32r-protos.h: Remove m32r_finalize_pic.
	* config/m32r/m32r.c (m32r_compute_frame_size,
	m32r_expand_prologue): Take current_function_profile into
	account whenever we reference
	current_function_uses_pic_offset_table.
	(m32r_finalize_pic): Remove.
	* config/m32r/m32r.h (FINALIZE_PIC): Likewise.

2005-07-05  Kazu Hirata  <kazu@codesourcery.com>

	* Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET)
	instead of $<.  Don't remove ./as if it already exists.

2005-07-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/21723
	* pa.md: Remove fcpy alternative from movhi and movqi patterns.
	* pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
	for complex modes when generating code for PA 1.0.
	(VALID_FP_MODE_P): New macro.
	(HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
	sets for all general and floating point modes.  Align wide floating
	point modes to even register boundaries to comply with architectural
	requirements.
	(CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
	* pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
	(VALID_FP_MODE_P): New macro.
	(HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
	sets for all general and floating point modes.  Align wide floating
	point modes to even register boundaries to comply with architectural
	requirements.

2005-07-04  Diego Novillo  <dnovillo@redhat.com>

	* tree-dump.c (dump_files): Initialize dump number for .cgraph
	to 0.

2005-07-04  Diego Novillo  <dnovillo@redhat.com>

	* tree-ssa-structalias.c: Don't include expr.h.

2005-07-04  Diego Novillo  <dnovillo@redhat.com>

	* tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix
	comments.

2005-07-04  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/22279

	* tree-ssa-structalias.c (offset_overlaps_with_access): Use
	correct operator.

2005-07-04  J"orn Rennecke <joern.rennecke@st.com>

	* sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t".

2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>

	* bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c,
	cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c,
	config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c,
	config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h,
	config/stormy16/stormy16.c, config/v850/v850.c,
	config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c,
	except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c:
	Avoid "." or "\n" at end of diagnostics and capital letters at
	start of diagnostics.
	* combine.c, cse.c: Don't translate dump file output.
	* toplev.c (print_version): Only translate output if going to
	stderr.

2005-07-03  Kazu Hirata  <kazu@codesourcery.com>

	* c-decl.c, tree-object-size.c, tree-vectorizer.c,
	config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment
	typos.

2005-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (fix_range): Fix typo in comment.

2005-07-03  Kazu Hirata  <kazu@codesourcery.com>

	* tree-vrp.c (extract_range_from_assert): Replace
	fold (build (...)) with fold_build2.

2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
	gcc_gfc_char_table, init_dynamic_gfc_info): New.
	(format_types_orig, handle_format_attribute): Add support for
	format "gcc_gfc".

2005-07-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* varasm.c (assemble_variable): Fix format specifier thinko.

2005-07-03  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/22029 (and 22135)
	* tree-pretty-print.c (dump_generic_node): Check that the node is not
	a phi node before calling dump_vops.

2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* tree-dump.h (dump_string_field): Declare.
	* tree-dump.c: Use it instead of dump_string.
	(dump_string_field): Make non-static.

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

	* config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
	up the minimal CFG stuff always when optimize > 0.  Call
	split_all_insns_noflow in PIC case if needed.

2005-07-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
	    Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>

	PR c++/18279
	* c-decl.c (c_write_global_declarations): Dump contents of
	external scope to.
	* tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl.
	<TRY_FINALLY_EXPR>, <RETURN_EXPR>, <CASE_LABEL_EXPR>, <LABEL_EXPR>,
	<GOTO_EXPR>, <SWITCH_EXPR>: Add.
	(dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump
	is enabled.

2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>

	* c-common.h (GCC_DIAG_STYLE): Define.
	* c-tree.h (GCC_DIAG_STYLE): Do not define.  Change minimum GCC
	version for format checking to 4.1.
	* c-format.c: Include toplev.h after c-common.h.
	(enum format_type): Add gcc_tdiag_format_type.
	(gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
	gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
	(format_types_orig): Add gcc_tdiag.
	(init_dynamic_diag_info): Support gcc_tdiag formats.
	(handle_format_attribute): Likewise.
	* toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
	(GCC_DIAG_STYLE): Default to __gcc_tdiag__.  Change minimum GCC
	version for format checking to 4.1.
	(warning0, warning, error, pedwarn, sorry): Use
	ATTRIBUTE_GCC_DIAG.
	* config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
	(finish_aliases_1): Do not use %qE.
	* config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
	config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
	Correct format bugs.
	* config/v850/v850-protos.h (v850_output_aligned_bss): Change size
	parameter to unsigned HOST_WIDE_INT.
	* config/v850/v850.c (v850_output_aligned_bss): Likewise.

2005-07-02  David Edelsohn  <edelsohn@gnu.org>

	PR middle-end/21742
	* expr.c (write_complex_part): Use adjust_address for MEM.
	(read_complex_part): Same.

2005-07-02  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/22280

	* tree-sra.c (generate_element_init): Remove useless loop.

2005-07-02  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_legitimize_address): Check for
	TLS_MODEL_NONE.
	(alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars.

2005-07-02  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/14490
	* fold-const.c (fold_binary): Handle the return value of
	fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
	Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".

2005-07-02  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
	a eliminate type conversion which feeds an equality comparison
	if the original type or either operand in the comparison is a
	function pointer.

2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>

	* c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
	config/rs6000/rs6000.opt, params.def: Remove "." from end of help
	texts.
	* config/avr/avr.c: Do not use '`' as left quote.
	* config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
	Remove "." from end of diagnostics.  Make diagnostics start with
	lowercase letter.

2005-07-02  Zack Weinberg  <zack@codesourcery.com>
	    Joseph S. Myers  <joseph@codesourcery.com>

	* toplev.c (default_tree_printer): Handle setting location with
	'+' flag.
	* c-objc.common.c (c_tree_printer): Likewise.
	* c-format.c (gcc_diag_flag_specs): Add '+'.
	(gcc_cdiag_char_table): Allow '+' flag for tree formats.
	(format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
	formats.
	* c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
	config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
	config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
	config/v850/v850.c, function.c, stor-layout.c, toplev.c,
	tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
	instead of %J or %H.  Use 'q' flag for quoting.  Avoid '.' at end
	of diagnostics.  Use %q+D not %s for a decl.  Do not pass excess
	format arguments where %J is used without %D.

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

	* gcc.c (LINK_SSP_SPEC): Define.
	(link_ssp_spec): New variable.
	(LINK_COMMAND_SPEC): Add %(link_ssp).
	(static_specs): Add link_ssp_spec.
	* configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
	* configure: Rebuilt.
	* config.in: Rebuilt.

	* config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
	* config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
	* config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
	* config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
	* config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
	If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
	-0x7008(2) instead of reading __stack_chk_guard variable.
	* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
	number.
	(UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
	(stack_protect_set, stack_protect_test): Use *_tls* patterns
	if TARGET_THREAD_SSP_OFFSET is defined.
	(stack_tls_protect_set_si, stack_tls_protect_set_di,
	stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.

	Revert:
	2005-06-27  Richard Henderson  <rth@redhat.com>
	* libgcc-std.ver (GCC_4.1.0): New.
	* libgcc.h (__stack_chk_guard): Declare.
	(__stack_chk_fail, __stack_chk_fail_local): Declare.
	* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
	* mklibgcc.in (lib2funcs): Add them.

2005-07-01  Richard Henderson  <rth@redhat.com>

	* config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to
	void * before struct sigcontext *.
	(x86_fallback_frame_state): Likewise.

2005-07-01  James E. Wilson  <wilson@specifixinc.com>

	* doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet.

2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/22269
	* tree-ssa-reassoc.c (should_transpose): Fix which operand
	we check for SSA_NAME for.

2005-07-01  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/22071

	* tree-ssa-structalias.c (offset_overlaps_with_access): New
	function.
	(get_constraint_for_component_ref): Use it.

2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>

	PR other/22264
	* diagnostic.c (diagnostic_report_current_module): Use pp_newline to
	print out the last new line.

2005-07-01  Hans-Peter Nilsson  <hp@axis.se>

	* config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
	Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
	* config/cris/cris.c (cris_conditional_register_usage): Adjust
	reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
	(cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
	(cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
	* config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
	(enum reg_class): New member CC0_REGS.
	(REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
	(FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
	(HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
	(CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
	(PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
	Adjust for register now described.

2005-07-01  Jakub Jelinek  <jakub@redhat.com>

	PR target/22262
	* config/i386/i386.md (stack_protect_test_si,
	stack_protect_test_di): Add earlyclobber for scratch 3.
	* config/rs6000/rs6000.md (stack_protect_testsi,
	stack_protect_testdi): Add earlyclobber for scratch 3,
	remove earlyclobber from scratch 4.

Older entries for 2005 can be found in ChangeLog-2005.
2005-06-30  Diego Novillo  <dnovillo@redhat.com>

	PR 21584
	PR 22219
	* tree-ssa-alias.c (create_name_tags): Also process
	non-dereferenced pointers.
	Remove argument 'ai'.  Update all callers.

2005-06-30  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/darwin.h (STARTING_FRAME_OFFSET):
	Set to 0 for FRAME_GROWS_DOWNWARD.
	(REGISTER_NAMES): Add sfp.

2005-07-01  Kelley Cook  <kcook@gcc.gnu.org>

	* config/arm/libunwind.S, config/arm/pr-support.c,
	config/arm/unwind-arm.c, config/arm/unwind-arm.h,
	config/c4x/predicates.md, tree-object-size.c: Update FSF address.

2005-06-30  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/22260
	* config/sparc/sparc.c (emit_and_preserve): Add 2nd register.
	Preserve the 2nd register too, if present.
	(sparc_output_mi_thunk) <PIC case>: Preserve the PIC register too.
	Adjust call to emit_and_preserve.

2005-06-30  Zack Weinberg  <zack@codesourcery.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* pretty-print.h (PP_NL_ARGMAX): New.
	(text_info): Add locus.
	(struct chunk_info): New.
	(output_buffer): Add formatted_obstack, chunk_obstack, and
	cur_chunk_array. Change obstack to a pointer.
	(pp_wrapping_mode_t, pp_wrapping_mode, pp_set_verbatim_wrapping): New.
	(struct pretty_print_info): Replace ideal_maximum_length and
	prefixing_rule with wrapping.
	(pp_line_cutoff, pp_prefixing_rule): Update to match.
	Update prototypes and wrapper macros throughout.
	* pretty-print.c (pp_formatted_text_data, pp_append_r)
	(pp_base_clear_output_area, pp_construct, pp_base_formatted_text)
	(pp_base_last_position_in_text, pp_base_newline, pp_base_character):
	Update for changes to pp structure.
	(pp_base_prepare_to_format, pp_base_format_text): Delete.
	(pp_base_format, pp_base_output_formatted_text): New functions.
	(pp_base_format_verbatim): Use pp_set_verbatim_wrapping.
	(pp_verbatim): Clear text.locus.
	(pp_printf): Likewise.  Use pp_format and pp_output_formatted_text.
	* c-objc-common.c (c_tree_printer): Update function signature.
	* diagnostic.c (diagnostic_initialize): Update for changes to
	pp structure.
	(diagnostic_report_diagnostic): Call pp_format and then
	pp_output_formatted_text.
	(verbatim): Clear text.locus.
	* diagnostic.h (diagnostic_prefixing_rule, diagnostic_line_cutoff):
	Update for changes to pp structure.

	* c-lang.c: No need to include c-pretty-print.h.
	* Makefile.in: Remove bogus line containing only a tab.
	(c-lang.o): Update dependencies.
	* toplev.c (announce_function): Don't use verbatim.
	(default_tree_printer): Update signature.

	* objc/objc-lang.c: No need to include c-pretty-print.h.
	* objc/Make-lang.in: Update dependencies.

2005-06-29  Daniel Berlin  <dberlin@dberlin.org>

	* tree-complex.c (complex_variable_components): Now a hashtable.
	(cvc_lookup): Ditto.
	(cvc_insert): Ditto.
	(create_components): Use referenced var iterator.
	Initialize hashtable.	Use cvc_insert/lookup.
	(extract_components): Use cvc_insert/lookup.
	(update_complex_components): Ditto.
	(update_complex_components_on_edge): Ditto.
	* tree-dfa.c (referenced_vars): Now a hashtable.
	(dump_referenced_vars): Use iterator.
	(referenced_var_lookup): New function.
	(referenced_var_insert): Ditto.
	(add_referenced_var): Use referenced_var_insert.
	(mark_new_vars_to_rename): Use DECL_UID.
	* tree-flow-inline.h (first_htab_element): New function.
	(end_htab_p): Ditto.
	(next_htab_element): Ditto.
	(first_referenced_var): Ditto.
	(end_referenced_vars_p): Ditto.
	(next_referenced_var): Ditto.
	(is_call_clobbered): Use DECL_UID.
	(mark_call_clobbered): Ditto.
	(clear_call_clobbered): Ditto.
	(mark_non_addressable): Ditto.
	* tree-flow.h (htab_iterator): New struct.
	(FOR_EACH_HTAB_ELEMENT): New macro.
	(struct int_tree_map): New struct.
	(int_tree_map_hash): Prototype.
	(int_tree_map_eq): Ditto.
	(referenced_var_iterator): Ditto.
	(FOR_EACH_REFERENCED_VAR): New macro.
	(referenced_vars): Now a hashtable.
	* tree-into-ssa.c (symbol_marked_for_renaming): Use DECL_UID.
	(add_new_name_mapping): Ditto.
	(mark_def_sites): Ditto.
	(insert_phi_nodes): Use referenced_var iterator.
	(mark_def_site_blocks): Ditto.
	(mark_sym_for_renaming): Use DECL_UID.
	* tree-sra.c (is_sra_candidate_decl): Use DECL_UID.
	(lookup_element): Ditto.
	(find_candidates_for_sra): Use referenced_vars iterator.
	Use DECL_UID.
	* tree-ssa-alias.c (NUM_REFERENCES): New macro.
	(NUM_REFERENCES_CLEAR): Ditto.
	(NUM_REFERENCES_INC): Ditto.
	(NUM_REFERENCES_SET): Ditto.
	(alias_obstack): New bitmap obstack.
	(struct alias_map_d): Use bitmap, not sbitmap.
	(struct alias_info): Remove num_references.
	(init_alias_info): Use referenced_var iterator.
	Initialize bitmap obstack.
	(delete_alias_info): Use referenced_var iterator.
	Free bitmap obstack.
	(compute_points_to_and_addr_escape): Use DECL_UID.
	Use new NUM_REFERENCES macros.
	(compute_flow_sensitive_aliasing): may_aliases is now a bitmap.
	Use new NUM_REFERENCES macros.
	(group_aliases_into): Update prototype to use bitmap.
	(setup_pointers_and_addressables): Use referenced_vars iterator.
	Use DECL_UID. Use new NUM_REFERENCES macros.
	(add_pointed_to_var): Use DECL_UID.
	(dump_alias_info): Use referenced_var iterator.
	(add_type_alias): Ditto.
	(used_portions): Now a hashtable.
	(used_part_map_eq): New function.
	(used_part_map_hash): Ditto.
	(free_used_part_map): Ditto.
	(up_lookup): Ditto.
	(up_insert): Ditto.
	(get_or_create_used_part_for): Use up_lookup.
	(create_overlap_variables_for): Ditto.
	(find_used_portions): Use up_insert.
	Use DECL_UID.
	(create_structure_vars): Init used_portions hashtable, use
	referenced_vars iterator.
	* tree-ssa-live.c (create_ssa_var_map): sbitmaps became bitmaps.
	Use DECL_UID.
	* tree-ssa-loop-im.c (gather_mem_refs_stmt): Use DECL_UID.
	* tree-ssa-operands.c (get_asm_expr_operands): Ditto.
	(note_addressable): Ditto.
	* tree-ssa-structalias.c (set_uids_in_ptset): Ditto.
	* tree-ssa.c (verify_flow_insensitive_alias_info): Use
	referenced_var iterator.
	Use DECL_UID.
	(delete_tree_ssa): Ditto.
	(int_tree_map_eq): New function.
	(int_tree_map_hash): Ditto.
	* tree-stdarg.c (find_va_list_reference): Use DECL_UID.
	(va_list_ptr_read): Ditto.
	(va_list_counter_struct_op): Ditto.
	(va_list_ptr_write): Ditto.
	(check_va_list_escapes): Ditto.
	(check_all_va_list_escapes): Ditto.
	(execute_optimize_stdarg): Ditto.
	* tree-tailcall.c (suitable_for_tail_opt_p): Used referenced_var
	iterator.

2005-06-30  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/darwin.h (FRAME_POINTER_REGNUM): Rename to ...
	(HARD_FRAME_POINTER_REGNUM): this.

2005-06-30  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (cgraph_clone_inlined_nodes): Revert previous patch.

2005-06-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>

	PR middle-end/22247
	* tree-ssa-structalias.c (build_constraint_graph, scc_visit,
	process_unification_queue, init_topo_info, topo_visit,
	init_scc_info, free_scc_info, perform_var_substitution,
	solve_graph): Use unsigned instead of uint.

2005-06-30  Jakub Jelinek  <jakub@redhat.com>

	* function.c (gen_stack_protect_test): Add third argument.

2005-06-30  J. D. Johnston  <jjohnst@us.ibm.com>

	* gthr-tpf.h (CE2THRCPTR): Change field offset to 16.

2005-06-30  Kazu Hirata  <kazu@codesourcery.com>

	* config/c4x/c4x-protos.h: Remove the prototypes for those
	functions removed from c4x.c.  Add prototypes for those
	functions exported in c4x.c.
	* config/c4x/c4x.c (any_operand, fp_zero_operand,
	const_operand, stik_const_operand, not_const_operand,
	reg_operand, r0r1_reg_operand, r2r3_reg_operand,
	ext_low_reg_operand, ext_reg_operand, std_reg_operand,
	std_or_reg_operand, addr_reg_operand, index_reg_operand,
	dp_reg_operand, sp_reg_operand, st_reg_operand,
	rc_reg_operand, call_address_operand,
	symbolic_address_operand, dst_operand, src_operand,
	src_hi_operand, lsrc_operand, tsrc_operand,
	nonimmediate_src_operand, nonimmediate_lsrc_operand,
	reg_or_const_operand, par_ind_operand, parallel_operand):
	Remove.
	(c4x_immed_float_p, c4x_a_register, c4x_x_register,
	c4x_K_constant, c4x_N_constant, c4x_O_constant,
	c4x_S_indirect): Export.
	* config/c4x/c4x.h (PREDICATE_CODES): Remove.
	* config/c4x/c4x.md: Include predicates.md.
	* config/c4x/predicates.md: New.

2005-06-30  Jakub Jelinek  <jakub@redhat.com>

	* function.c (stack_protect_epilogue): Pass label to
	stack_protect_test, assume it emitted also the conditional
	branch.
	* doc/md.texi (stack_protect_test): Adjust documentation.
	* config/i386/i386.md (stack_protect_test): Add third argument,
	emit beq with operands[2].
	* config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Define to
	flag_stack_protect != 0.
	* config/rs6000/rs6000.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
	constants.
	(stack_protect_set, stack_protect_test): New expanders.
	(stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
	stack_protect_testdi): New insns.
	* config/rs6000/rs6000.c (rs6000_stack_protect_fail): New function.
	(TARGET_STACK_PROTECT_FAIL): Define.
	(rs6000_generate_compare): Handle UNSPEC_SP_TEST.

	* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Increment.
	(DWARF_FRAME_REGISTERS, DWARF_REG_TO_UNWIND_COLUMN): Adjust, so
	that addition of sfp doesn't change these.
	(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
	REG_ALLOC_ORDER): Add sfp.
	(INT_REGNO_P): Include FRAME_POINTER_REGNUM.
	(FRAME_POINTER_REGNUM): Define to 113.
	(HARD_FRAME_POINTER_REGNUM): Define to 31.
	(REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add sfp.
	(STARTING_FRAME_OFFSET): Set to 0 for FRAME_GROWS_DOWNWARD.
	(ELIMINABLE_REGS): Never eliminate to
	FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
	instead.  Add eliminations from FRAME_POINTER_REGNUM.
	(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P):
	Include FRAME_POINTER_REGNUM.
	(REGISTER_NAMES): Add sfp.
	* config/rs6000/rs6000.c (rs6000_reg_names): Add sfp.
	(alt_reg_names): Likewise.
	(rs6000_stack_info): Handle FRAME_GROWS_DOWNWARD.
	(rs6000_emit_prologue): Use HARD_FRAME_POINTER_REGNUM
	instead of FRAME_POINTER_REGNUM.
	(rs6000_initial_elimination_offset): Never eliminate to
	FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
	instead.  Add elimination offsets from FRAME_POINTER_REGNUM.

	* config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Only return non-zero
	if DEFAULT_ABI == ABI_V4.

2005-06-30  Steven Bosscher  <stevenb@suse.de>

	* coretypes.h (tls_model): Add TLS_MODEL_NONE as 0.
	* tree.h (struct tree_decl): New field `tls_model'.
	(DECL_TLS_MODEL): New.
	(DECL_THREAD_LOCAL_P): Rename from DECL_THREAD_LOCAL, make it
	a predicate.
	* rtl.h (decl_default_tls_model): Add prototype for it.
	* varasm.c (decl_tls_model): Rewritten and renamed to ...
	(decl_default_tls_model): ... this.
	(default_encode_section_info): Use DECL_TLS_MODEL instead of
	decl_tls_model.
	(assemble_variable): Replace DECL_THREAD_LOCAL with
	DECL_THREAD_LOCAL_P.
	(default_section_type_flags_1): Likewise.
	(categorize_decl_for_section): Likewise.
	* tree.c (staticp): Likewise.
	(recompute_tree_invarant_for_addr_expr): Likewise.
	* drawf2out (loc_descriptor_from_tree_1): Likewise.
	* c-decl.c (diagnose_mismatched_decls): Likewise.
	with DECL_THREAD_LOCAL_P.
	(start_decl): Likewise.
	* print-tree.c (print_node): Likewise.  Print the TLS model.
	(grokdeclarator): Set the default DECL_TLS_MODEL here.
	* c-common.c (handle_tls_model_attribute): Rewrite to set the
	TLS model up based on the attribute.  Never add the attribute
	to the decl's attributes list.
	* config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Replace
	DECL_THREAD_LOCAL with DECL_THREAD_LOCAL_P.

2005-06-30  Zdenek Dvorak  <dvorakz@suse.cz>

	PR testsuite/21967
	* tree-ssa-live.c (mark_all_vars_used_1): Ignore variables in
	TMR_ORIGINAL.

2005-06-30  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.md (addv2hi3, subv2hi3, sminv2hi3, smaxv2hi3,
	mulv2hi3, negv2hi2, absv2hi2): Pattern names fixed by appending the
	necessary digit.

2005-06-29  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_file_start): Use PPC405_ERRATUM77.

2005-06-29  Diego Novillo  <dnovillo@redhat.com>

	PR 22234
	* tree-ssa-copy.c (fini_copy_prop): Do not overwrite copy_of
	when following copy-of chains.

2005-06-30  Jan Hubicka  <jh@suse.cz>

	* function.h (struct function): Add saved blocks/unexpanded var list.
	* gimple-low.c (record_vars): Insert only VAR_DECLs.
	* tree-inline.c (add_lexical_block): Declare; do not clear sublocks.
	(remap_decl): Do not declare vars.
	(remap_block): Do not care inserting blocks.
	(remap_blocks): New function.
	(copy_body_r): Update debug info.
	(expand_call_inline): Duplicate callee block tree into caller;
	copy all the unexpanded_var_list.
	(save_body): Save unexpanded_var_list and blocks.
	* tree-optimize.c (tree_rest_of_optimization): Restore
	blocks/unexpanded_var_list.

2005-06-29  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_expand_vecint_minmax): Use us_minus and
	plus for V4HImode UMAX.

2005-06-29  Joseph S. Myers  <joseph@codesourcery.com>

	* c-tree.h (default_function_array_conversion): Take and return
	struct c_expr.
	* c-typeck.c (default_function_array_conversion): Split into
	array_to_pointer_conversion and function_to_pointer_conversion.
	Take and return struct c_expr.
	(array_to_pointer_conversion): Do not handle type qualifiers or
	COMPOUND_EXPRs specially.
	(build_function_call): Call function_to_pointer_conversion for
	function designators.
	(build_unary_op): Call array_to_pointer_conversion, not
	default_function_array_conversion.
	(digest_init, output_init_element): Likewise.
	* c-parser.c: All callers of default_function_array_conversion
	changed.

2005-06-29  Ziemowit Laski  <zlaski@apple.com>

	* config/darwin.c (machopic_select_section): constant ObjC string
	objects now always have type "__builtin_ObjCString".

2005-06-29  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (vec_shl_<VEC>, vec_shr_<VEC>): New.

2005-06-29  Richard Henderson  <rth@redhat.com>

	* tree-vect-transform.c (vect_min_worthwhile_factor): Declare.
	(vect_create_epilog_for_reduction): Don't use vec_shr if the
	operation is emulated.
	(vectorizable_reduction): Duplicate vect_min_worthwhile_factor
	tests from vectorizable_operation.

2005-06-29  Caroline Tice  <ctice@apple.com>

	Fix PR 21956
	* varasm.c (assemble_start_function): Add "L" to beginning of
	local labels, so assembler & linker treat them as local.

2005-06-29  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_expand_int_vcond): Remove unsignedp
	argument.  Simplify canonicalization of condition.  Use unsigned
	saturating subtraction for QI and HImode unsigned compares.  Use
	bit arithmetic tricks for SImode unsigned compares.
	* config/i386/i386-protos.h (ix86_expand_int_vcond): Update decl.
	* config/i386/sse.md (SSEMODE14): New.
	(umaxv8hi3): Use us_minus+plus to avoid vcond.
	(umaxv4si3): New.
	(smax<SSEMODE14>3): Rename from smaxv16qi3 and macroize.
	(smin<SSEMODE14>3): Similarly with sminv16qi3.
	(umin<SSEMODE24>3): Similarly with uminv8hi3.

2005-06-29  Ian Lance Taylor  <ian@airs.com>

	* dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Change
	GEN_INT to gen_int_for_mode when storing register size to memory.

2005-06-29  Stuart Hastings  <stuart@apple.com>

	* config/i386/mmintrin.h: Mark vector intrinsics always_inline.
	* config/i386/emmintrin.h: Likewise.
	* config/i386/pmmintrin.h: Likewise.
	* config/i386/xmmintrin.h: Likewise.

2005-06-29  Steve Ellcey  <sje@cup.hp.com>

	PR middle-end/21969
	* tree.h (TYPE_VECTOR_SUBPARTS): Change to shift expression.
	(SET_TYPE_VECTOR_SUBPARTS): New.
	* tree.c (make_vector_type): Replace TYPE_VECTOR_SUBPARTS with
	SET_TYPE_VECTOR_SUBPARTS.
	* tree-vect-transform.c (vect_transform_loop): Add cast.

2005-06-29  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_decompose_address): Accept invalid
	displacements for addresses containing frame_pointer_rtx or
	virtual_stack_vars_rtx.
	(s390_frame_info): Replaced use of STARTING_FRAME_OFFSET.
	(s390_initial_elimination_offset): New offset when eliminating the
	soft frame pointer.
	* config/s390/s390.h (FRAME_GROWS_DOWNWARD): Defined as 1.
	(STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Definitions changed.

2005-06-28  Ziemowit Laski  <zlaski@apple.com>

	* c-common.c (flag_next_runtime): Move...
	* toplev.c (flag_next_runtime): ... here.
	* c-common.h (flag_next_runtime): Move...
	* flags.h (flag_next_runtime): ... here.
	* config/darwin-c.c: Include flags.h.
	* config/t-darwin (darwin-c.o): Depend on flags.h.

2005-06-29  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/linux-unwind.h (shmedia_fallback_frame_state):
	Disable	aliasing warning with void * cast.
	(sh_fallback_frame_state): Likewise.

2005-06-29  Kaz Kojima  <kkojima@gcc.gnu.org>

	* target.h (gcc_target): New field allocate_initial_value.
	* target-def.h (TARGET_ALLOCATE_INITIAL_VALUE): New macro.
	(TARGET_INITIALIZER): Include it.
	* integrate.c (allocate_initial_values): Use
	targetm.allocate_initial_value.
	* system.h: Poison ALLOCATE_INITIAL_VALUE.
	* config/sh/sh-protos.h (sh_pr_n_sets): Delete.
	* config/sh/sh.c (sh_pr_n_sets): Make it static.
	(sh_allocate_initila_value): New function.
	(TARGET_ALLOCATE_INITIAL_VALUE): Override default.
	* config/sh/sh.h (ALLOCATE_INITIAL_VALUE): Delete.
	* doc/tm.texi (TARGET_ALLOCATE_INITIAL_VALUE): Rename and
	update from ALLOCATE_INITIAL_VALUE.

2005-06-28  Richard Henderson  <rth@redhat.com>

	* tree-vectorizer.c (vect_is_simple_reduction): Compare types
	using TYPE_MAIN_VARIANT.

2005-06-28  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_expand_vecint_compare): Decompose to EQ
	when using psubN.uuu.

2005-06-29  Kelley Cook <kcook@gcc.gnu.org>

	* doc/gcc.texi: Update FSF address.

2005-06-28  Eric Christopher  <echristo@redhat.com>

	PR c/22052
	PR c/21975
	* c-decl.c (diagnose_mismatched_decls): Define DECL_EXTERN_INLINE.
	Use. Fix detection of invalid extern inline redefinition.

2005-06-28  Diego Novillo  <dnovillo@redhat.com>

	* tree-optimize.c (init_tree_optimization_passes): Fix typo.

2005-06-28  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/rs6000.md (setmemsi): s/operand/operands/.

2005-06-28  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_expand_vecint_compare): Use unsigned
	saturating subtraction for QI and HImode unsigned compares.  Use
	bit arithmetic tricks for SImode unsigned compares.
	(ia64_expand_vcondu_v2si): Remove.
	(ia64_expand_vecint_cmov): Don't call it.

2005-06-28  Richard Henderson  <rth@redhat.com>

	* rtlanal.c (nonzero_bits1): Use the mode of the value for
	determining integral-ness for comparisons.

2005-06-28  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/rs6000.md (setmemsi): Fix operand 2.

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

	* target.h (invalid_conversion, invalid_unary_op,
	invalid_binary_op): New hooks.
	* target-def.h (TARGET_INVALID_CONVERSION,
	TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
	TARGET_INITIALIZER): Likewise.
	* hooks.h (hook_constcharptr_tree_tree_null,
	hook_constcharptr_int_tree_null,
	hook_constcharptr_int_tree_tree_null): New.
	* hooks.c (hook_constcharptr_tree_tree_null,
	hook_constcharptr_int_tree_null,
	hook_constcharptr_int_tree_tree_null): Likewise.
	* doc/tm.texi (TARGET_INVALID_CONVERSION,
	TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Document.
	* c-convert.c (convert): Use invalid_conversion hook.
	* c-typeck.c (build_unary_op): Use invalid_unary_op hook.
	(build_binary_op): Use invalid_binary_op hook.
	* config/ia64/ia64-modes.def: Define RFmode.
	* config/ia64/ia64-protos.h (spill_xfmode_operand): Remove.
	(ia64_expand_movxf_movrf): New.
	* config/ia64/ia64.md (movxf): Move code to
	ia64_expand_movxf_movrf.
	(movrf, movrf_internal): New.
	* ia64.c (ia64_invalid_conversion, ia64_invalid_unary_op,
	ia64_invalid_binary_op, TARGET_INVALID_CONVERSION,
	TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): New.
	(spill_xfmode_operand): Rename to spill_xfmode_rfmode_operand.
	Add mode parameter.  Make static.
	(ia64_expand_movxf_movrf): New, moved from ia64.md.  Handle RFmode
	as well as XFmode.
	(ia64_function_arg, ia64_function_value, ia64_register_move_cost,
	ia64_scalar_mode_supported_p): Handle RFmode as well as XFmode.
	(ia64_init_builtins): Set up __fpreg as RFmode.
	(ia64_mangle_fundamental_type): Mangle __fpreg as u7__fpreg.

2005-06-28  Adrian Straetling  <straetling@de.ibm.com>

	* builtins.c: (expand_builtin_memset): Rewrite to support
	'set_storage_via_setmem'.
	* expr.c: (enum insn_code setmem_optab): Define.
	(enum insn_code clrmem_optab): Remove.
	(set_storage_via_setmem): New function.
	(clear_storage_via_setmem): Remove.
	(clear_storage): Replace call to "clear_storage_via_clrmem" with
	"set_storage_via_setmem".
	* expr.h: (set_storage_via_setmem): Declare.
	(CLEAR_RATIO): Redefine using HAVE_setmemM.
	* optabs.h: (enum insn_code setmem_optab): Declare.
	(enum insn_code clrmem_optab): Remove.
	* optabs.c: (init_optabs): Initialize setmem_optab.
	(enum insn_code clrmem_optab): Remove.
	* genopinit.c: (otabs): Likewise.
	* doc/md.texi: Document new standard pattern 'setmem'. Remove
	  'clrmem'.
	* config/alpha/alpha.c: (alpha_expand_block_clear): Adjust
	'operands' ordering.
	* config/frv/frv.c: (frv_expand_block_clear): Likewise.
	* config/rs6000/rs6000.c: (expand_block_clear): Likewise.
	* config/alpha/alpha.md: ("clrmemqi", "clrmemdi"): Rename to "setmemM".
	FAIL on operands[2]!=const0_rtx. Adjust 'operands' ordering.
	* config/avr/avr.md: ("clrmemhi"): Likewise.
	* config/frv/frv.md: ("clrmemsi"): Likewise.
	* config/i386/i386.md: ("clrmemsi", "clrmemdi"): Likewise.
	* config/pa/pa.md: ("clrmemsi", "clrmemdi"): Likewise.
	* config/rs6000/rs6000.md: ("clrmemsi"): Likewise.
	* config/s390/s390.md: ("clrmem<mode>"): Likewise.

2005-06-28  Paul Brook  <paul@codesourcery.com>

	* Makefile.in: Set and use UNWIND_H.  Install as unwind.h.
	* c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
	* except.c (add_ehspec_entry): Generate arm eabi filter lists.
	(assign_filter_values): Ditto.
	(output_ttype): New function.
	(output_function_exception_table): Use output_ttype.  Generate arm
	eabi filter lists.
	(default_init_unwind_resume_libfunc): New function.
	* except.h (default_init_unwind_resume_libfunc): Add prototype.
	* optabs.c (init_optabs): Don't set unwind_resume_libfunc.
	* opts.c (decode_options): Use targetm.unwind_tables_default.
	* target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
	(TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
	* target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
	and arm_eabi_unwinder.
	* unwind-c.c: Support Arm EABI unwinder.
	* unwind.h: Rename ...
	* unwind-generic.h: ... To this.
	* doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
	(TARGET_UNWID_TABLES_DEFAULT): Document.

	* config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
	* config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
	(TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
	Define.
	(thumb_pushpop, thumb_output_function_prologue): Output unwinding
	directives.
	(arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
	* config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
	!TARGET_UNWIND_INFO.
	(ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
	* config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
	* config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
	ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
	* config/arm/lib1funcs.asm: Include libunwind.S.
	* config/arm/libgcc-bpabi.ver: Add unwinding routines.
	* config/arm/libunwind.S: New file.
	* config/arm/pr-support.c: New file.
	* config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
	(UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
	* config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
	* config/arm/unwind-arm.c: New file.
	* config/arm/unwind-arm.h: New file.
	* config/i386/t-netware (USER_H): Remove unwind.h.
	* config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.

2005-06-28  DJ Delorie  <dj@redhat.com>

	* c-decl.c (pop_scope): Move warning control into warning call.
	(diagnose_mismatched_decls): Likewise.
	(pushdecl): Likewise.
	(start_decl): Likewise.
	(grokparms): Likewise.
	(start_function): Likewise.
	(store_parm_decls_newstyle): Likewise.
	(store_parm_decls_oldstyle): Likewise.
	(finish_function): Likewise.
	(declspecs_add_scspec): Likewise.
	* c-format.c (decode_format_attr): Likewise.
	(maybe_read_dollar_number): Likewise.
	(avoid_dollar_number): Likewise.
	(finish_dollar_format_checking): Likewise.
	(check_format_info): Likewise.
	(check_format_info_main): Likewise.
	(check_format_types): Likewise.
	(format_type_warning): Likewise.
	* c-typeck.c (function_types_compatible_p): Likewise.
	(build_array_ref): Likewise.
	(convert_arguments): Likewise.
	(build_c_cast): Likewise.
	(store_init_value): Likewise.
	(process_init_element): Likewise.
	(c_start_case): Likewise.
	* stor-layout.c (finalize_record_size): Likewise.
	* tree-cfg.c (execute_warn_function_noreturn): Likewise.
	* tree-inline.c (expand_call_inline): Likewise.

2005-06-28  Uros Bizjak  <uros@kss-loka.si>

	PR target/22134
	* config/i386/i386.md (fist<mode>2_with_temp splitter):
	Clobber memory operand, not scratch register.

2005-06-28  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (machine_function): New field has_landing_pad_p.
	(s390_set_has_landing_pad_p, s390_reg_clobbered_rtx,
	 s390_regs_ever_clobbered): New functions.
	(s390_return_addr_rtx): Use get_hard_reg_initial_value.
	(s390_register_info, s390_init_frame_layout, s390_update_frame_layout):
	Use s390_regs_ever_clobbered.
	(s390_emit_prologue): Don't use r14 as temp reg if its content is used
	for builtin_return_address.
	* config/s390/s390.md ("exception_receiver"): New expander.
	* config/s390/s390-protos.h (s390_set_has_landing_pad_p): Prototype
	added.

2005-06-28  Andreas Krebbel  <krebbel1@de.ibm.com>

	* except.c (current_function_has_exception_handlers): Function
	description added and if statements merged.

2005-06-28  Richard Henderson  <rth@redhat.com>

	* config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
	(sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.

2005-06-27  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_expand_vcondu_v2si): Generate proper
	comparison operations.
	(ia64_expand_vecint_minmax): Fix size of xops.
	* config/ia64/vect.md (umax<VECINT>3): Fix fallback pattern typo.
	(vec_shl_<VECINT>, vec_shr_<VECINT>): New.

2005-06-27  Richard Henderson  <rth@redhat.com>

	* tree-vect-transform.c (get_initial_def_for_reduction): Use correct
	type for DEF and INIT_VAL.  Pretend MIN/MAX need epilogue adjustment.

2005-06-27  Richard Henderson  <rth@redhat.com>

	* config/i386/sse.md (vec_shl_<SSEMODEI>, vec_shr_<SSEMODEI>): New.
	(smaxv16qi3, umaxv8hi3, sminv16qi3, uminv8hi3): New.

2005-06-27  Richard Henderson  <rth@redhat.com>

	* tree-vect-transform.c (vect_create_epilog_for_reduction): Remove
	duplicate little-endian adjustment.

2005-06-28  Kelley Cook  <kcook@gcc.gnu.org>

	* doc/include/texinfo.tex: Import from upstream CVS.

2005-06-28  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_remove_node): Do not release function bodies until
	full cgraph is built.
	* cgraph.h (cgraph_decide_inlining_incrementally): Add early argument.
	* cgraphunit.c (cgraph_finalize_function): Update call of
	cgraph_decide_inlining_incrementally.
	(initialize_inline_failed): Break out of ...
	(cgraph_analyze_function): ... here.
	(rebuild_cgraph_edges): New function.
	(pass_rebuild_cgraph_edges): New pass.
	* common.opt (fearly-inlining): New flag.
	* ipa-inline.c: Include ggc.h
	(cgraph_clone_inlined_nodes): Avoid re-using of original copy
	when cgraph is not fully built.
	(cgraph_decide_inlining_incrementally): Add early mode.
	(cgraph_early_inlining): New function.
	(cgraph_gate_early_inlining): Likewise.
	(pass_early_ipa_inline): New pass.
	* ipa.c (cgraph_postorder): NULLify aux pointer.
	* tree-inline.c (expand_call_inline): Avoid warning early.
	* tree-optimize.c (pass_early_local_passes): New.
	(execute_cleanup_cfg_pre_ipa): New.
	(pass_cleanup_cfg): New.
	(register_dump_files): Fix handling subpasses of IPA pass.
	(init_tree_optimization_passes): Add early passes.
	(execute_ipa_pass_list): Fix handling of subpasses of IPA pass.
	* passes.h (pass_early_tree_profile, pass_rebuild_cgraph_edges,
	pass_early_ipa_inline): New passes.
	* tree-profile.c (do_early_tree_profiling, pass_early_tree_profile): New.

	* invoke.texi: Document early-inlining.

2005-06-28  Kelley Cook  <kcook@gcc.gnu.org>

	* doc/include/fdl.texi: Merge in changes from upstream.
	* doc/include/gpl.texi: Likewise.

2005-06-27  Diego Novillo  <dnovillo@redhat.com>

	PR 21959
	* tree-ssa-loop-niter.c (scev_probably_wraps_p): Handle type
	casts between unsigned and signed types with different size
	or precision.

2005-06-28  Jan Hubicka  <jh@suse.cz>

	* tree-optimize.c (exercute_free_datastructures):
	Do not disband implicit edges; do not attempt to build insn list;
	do not free cfg annotations.
	(execute_free_cfg_annotations); Disband implicit edges here;
	free cfg annotations here too.
	(pass_free_cfg_annotations); New pass.
	(init_tree_optimization_passes); Add pass_free_cfg_annotations.
	* tree-ssa-operands.c (free_ssa_operands); Recover; export.
	* tree-ssa-operands.h (free_ssa_operands); declare.
	* tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified;
	kill PHI nodes.
	* tree-ssanames.c (release_defs): Kill addresses_taken.

	* basic-block.h (basic_block_def): Kill rbi.
	(reorder_block_def): Kill; Remove next field (replaced by aux);
	move other fields to ...
	(rtl_bb_info): ... here.
	* bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
	copy_bb, connect_traces, add_labels_and_missing_jumps
	fix_up_fall_thru_edges, fix_crossing_conditional_branches,
	duplicate_computed_gotos, partition_hot_cold_basic-blocks):
	Update to new fields.
	* cfg.c (initialize_bb_rbi): Kill.
	* cfglayout.c (record_effective_endpoints, fixup_reorder_chain,
	fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update.
	* cfgrtl.c (cfg_layout_create_basic_block): Do not initialize rbi.
	(try_redirect_by_replacing_jump): Update rbi references.
	(cfg_layout_split_block): Likewise.
	(cfg_layout_delete_block): Likewise.
	(cfg_layout_merge_blocks): Likewise.
	* function.c (thread_prologue_and_epilogue_insns): Likewise.
	* passes.c (rest_of_handle_sms): Likewise.
	* tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.

2005-06-27  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_file_start): Note PPC405 erratum
	in verbose_asm output.
	* config/rs6000/rs6000.h (PPC405_ERRATUM77): Bracket with
	CONFIG_PPC405CR.
	* config.gcc (powerpc with_which): Define CONFIG_PPC405CR for
	405cr.

2005-06-27  Jakub Jelinek  <jakub@redhat.com>

	* builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
	(DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
	(ATTR_NOTHROW_NONNULL_4, ATTR_NOTHROW_NONNULL_5): Define.
	(ATTR_FORMAT_PRINTF_4_0, ATTR_FORMAT_PRINTF_4_5,
	ATTR_FORMAT_PRINTF_5_0, ATTR_FORMAT_PRINTF_5_6): Define.
	* builtins.c: Include tree-flow.h.
	(expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
	(expand_builtin_object_size, expand_builtin_memory_chk,
	maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning,
	compute_object_offset, compute_builtin_object_size,
	fold_builtin_object_size): New functions.
	(expand_builtin): Handle BUILT_IN_OBJECT_SIZE and BUILT_IN_*_CHK.
	(fold_builtin_1): Likewise.  Handle BUILT_IN_{,V}{,F}PRINTF
	and BUILT_IN_{,F}PRINTF_UNLOCKED.
	(fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
	fold_builtin_strncpy_chk, fold_builtin_strcat_chk,
	fold_builtin_strncat_chk, fold_builtin_sprintf_chk,
	fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf):
	New functions.
	* builtins.def (BUILT_IN_OBJECT_SIZE, BUILT_IN_MEMCPY_CHK,
	BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMSET_CHK,
	BUILT_IN_STPCPY_CHK, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK,
	BUILT_IN_STRNCAT_CHK, BUILT_IN_STRNCPY_CHK, BUILT_IN_SNPRINTF_CHK,
	BUILT_IN_SPRINTF_CHK, BUILT_IN_VSNPRINTF_CHK, BUILT_IN_VSPRINTF_CHK,
	BUILT_IN_FPRINTF_CHK, BUILT_IN_PRINTF_CHK, BUILT_IN_VFPRINTF_CHK,
	BUILT_IN_VPRINTF_CHK): New builtins.
	* builtin-types.def (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_VAR_4):
	Document.
	(BT_FN_SIZE_CONST_PTR_INT, BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
	BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, BT_FN_PTR_PTR_INT_SIZE_SIZE,
	BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
	BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
	BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
	BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
	BT_FN_INT_INT_CONST_STRING_VAR, BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
	BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
	BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR): New types.
	* c-common.c (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_6,
	DEF_FUNCTION_TYPE_VAR_4, DEF_FUNCTION_TYPE_VAR_5): Define.
	* Makefile.in (OBJS-common): Add tree-object-size.o.
	(tree-object-size.o): Add dependencies.
	* tree-pass.h (pass_object_sizes): Add.
	* tree-optimize.c (init_tree_optimization_passes): Add
	pass_object_sizes.
	* tree-object-size.c: New file.
	* tree.h (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
	fold_builtin_strncpy_chk, fold_builtin_snprintf_chk,
	compute_builtin_object_size, init_object_sizes, fini_object_sizes):
	New prototypes.
	* tree-ssa-ccp.c (get_strlen): Rename to ...
	(get_maxval_strlen): ...this function.  Handle also computing of maximum
	string length and maximum integral value.
	(ccp_fold_builtin): Handle BUILT_IN_*_CHK.  Use get_maxval_strlen
	instead of get_strlen.  Pass CALLEE and ARGLIST variables to the
	folding functions instead of computing them again.
	(execute_fold_all_builtins): Retry ccp_fold_builtin if a builtin changed
	into some other builtin.
	* doc/extend.texi (Object Size Checking): Document.

	* regrename.c (copy_value): Fix comment.

	* toplev.c (process_options): Use if (FRAME_GROWS_DOWNWARD)
	instead of preprocessor conditionals.

	* targhooks.c (default_hidden_stack_protect_fail): Fall back to
	default_external_stack_protect_fail if visibility is not supported
	or not flag_pic.
	* config/i386/i386.c (ix86_stack_protect_fail): New function.
	(TARGET_STACK_PROTECT_FAIL): Define.
	* config/i386/i386.md (stack_protect_si): Change CLOBBER into
	SET to zero.
	(stack_protect_di): Likewise.  Use %k2 instead of %2 to avoid
	invalid instruction xorl %rax, %rax.

2005-06-27  Richard Henderson  <rth@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
	* cfgexpand.c: Include params.h.
	(has_protected_decls, has_short_buffer): New.
	(expand_stack_vars): Take a predicate to determine what to expand.
	(defer_stack_allocation): True when flag_stack_protect on.
	(SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
	(SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
	(stack_protect_classify_type, stack_protect_decl_phase): New.
	(stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
	(add_stack_protection_conflicts, create_stack_guard): New.
	(expand_used_vars): Add stack protection logic.
	(tree_expand_cfg): Likewise.
	* common.opt (Wstack-protector): New.
	(fstack-protector, fstack-protector-all): New.
	* function.c: Include predict.h.
	(assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
	wants to copy the parameter into the stack frame.
	(stack_protect_prologue, stack_protect_epilogue): New.
	(expand_function_end): Call stack_protect_epilogue.  Do
	sjlj_emit_function_exit_after after naked_return_label.
	* function.h (struct function): Add stack_protect_guard.
	* params.def (PARAM_SSP_BUFFER_SIZE): New.
	* toplev.c (process_options): Disable flag_stack_protect and/or
	warn_stack_protect based on FRAME_GROWS_DOWNWARD.
	* tree.h (stack_protect_prologue): Declare.

	* target-def.h (TARGET_STACK_PROTECT_GUARD): New.
	(TARGET_STACK_PROTECT_FAIL): New.
	(TARGET_INITIALIZER): Add them.
	* target.h (struct gcc_target): Add stack_protect_guard and
	stack_protect_fail.
	* targhooks.c: Include ggc.h, gty header.
	(stack_chk_guard_decl, default_stack_protect_guard): New.
	(stack_chk_fail_decl, default_external_stack_protect_fail): New.
	(default_hidden_stack_protect_fail): New.
	* targhooks.h (default_stack_protect_guard): Declare.
	(default_external_stack_protect_fail): Declare.
	(default_hidden_stack_protect_fail): Declare.
	* config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
	* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
	(trap): Use ud2.
	(conditional_trap, conditional_trap_1): Remove.
	(stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
	(stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
	* doc/md.texi (stack_protect_set, stack_protect_test): New.
	* doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
	(TARGET_STACK_PROTECT_FAIL): New.

	* libgcc-std.ver (GCC_4.1.0): New.
	* libgcc.h (__stack_chk_guard): Declare.
	(__stack_chk_fail, __stack_chk_fail_local): Declare.
	* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
	* mklibgcc.in (lib2funcs): Add them.

2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR c/21911
	* c-common.c (check_function_sentinel): Pass in named argument
	list, skip over named arguments before looking for a sentinel.
	(check_function_arguments): Pass in named argument list.
	* c-common.h (check_function_arguments): Likewise.
	* c-typeck.c (build_function_call): Likewise.

2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* genautomata.c (decl_mode_check_failed,
	regexp_mode_check_failed): Add noreturn attribute.

2005-06-26  Kazu Hirata  <kazu@codesourcery.com>

	* cfg.c, tree-vect-transform.c, tree.def: Fix comment typos.
	* doc/invoke.texi: Fix typos.

	* builtins.c, c-common.c, c-convert.c, c-decl.c, c-typeck.c,
	convert.c, lambda-code.c, predict.c, tree-cfg.c,
	tree-complex.c, tree-data-ref.c, tree-if-conv.c,
	tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-ccp.c,
	tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
	tree-ssa-loop-manip.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
	tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c,
	tree.c: Use fold_buildN instead of fold (buildN (...)).

2005-06-26  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific): Do not specify the concrete
	versions of GCC provided by Cygwin.  Simplify the part on
	building on Cygwin.

2005-06-26  Kazu Hirata  <kazu@codesourcery.com>

	* config/arc/arc-protos.c: Remove the prototype for
	arc_finalize_pic.
	* config/arc/arc.c (arc_finalize_pic): Remove.
	* config/arc/arc.h (FINALIZE_PIC): Likewise.
	* config/bfin/bfin.h (FINALIZE_PIC): Likewise.
	* config/rs6000/rs6000.h (FINALIZE_PIC): Likewise.

2005-06-26  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/17965
	* calls.c (expand_call, emit_library_call_value_1): Use xmalloc/free
	instead of alloca for really big argument sizes.

	PR middle-end/22028
	* gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
	earlier in the function.

	* regrename.c (copy_value): Don't replace fixed or global
	regs with older regs.

	* defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
	* function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
	instead of preprocessor conditionals.
	(assign_stack_local_1, assign_stack_temp_for_type): Likewise.
	* cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
	depending on if it was or was not defined previously.
	* doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
	definition of FRAME_GROWS_DOWNWARD means frame grows downward.
	* doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
	* config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0.  Update
	comment.
	* config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
	* config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1.  Update
	comment.
	* config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
	* config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
	* config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
	* config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.

2005-06-26  Kazu Hirata  <kazu@codesourcery.com>

	PR tree-optimization/22026
	* tree-vrp.c (extract_range_from_binary_expr): Drop to
	VR_VARYING if a binary expression involving VR_ANTI_RANGE is
	PLUS_EXPR, MINUS_EXPR, or unsigned MULT_EXPR.

2005-06-26  Kazu Hirata  <kazu@codesourcery.com>

	* Makefile.in (OBJS-common): Remove duplicate object file
	names.

2005-06-25  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update profile.
	* cfg.c (update_bb_profile_for_threading): Fix rescaling.

	* passes.c (rest_of_handle_branch_prob): Do not rebuild profiling info
	when not neecesary
	(rest_of_compilation): Fix conditional on branch prob pass.
	* predict.c (tree_estimate_probability): Enable strip_builtin_expect
	when not loop optimizing.

2005-06-25  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.md (ror_one, rol_one, ashrdi3, ashldi3, lshrdi3):
	New patterns.
	(movbi): Add alternative to set CC to zero.
	(compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
	compare_ltu): Now named patterns.

2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>

	* all files: Update FSF address in copyright headers.

2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>

	* gengtype.c: Update FSF address in copyright header.
	(create_file): Update FSF in outputed copyright header.

2005-06-24  Kazu Hirata  <kazu@codesourcery.com>

	* cfglayout.c (block_locators_locs, line_locators_locs,
	line_locators_lines, file_locators_locs): Change the type to
	VEC(int,heap)*.
	(insn_locators_initialize, change_scope, insn_scope,
	locator_line, insn_line, locator_file): Use VEC instead of
	VARRAY.

2005-06-24  Jason Merrill  <jason@redhat.com>

	* tree-nrv.c (tree_nrv): Fix to check assignments to the
	RESULT_DECL rather than just RETURN_EXPRs.
	(finalize_nrv_r): Adjust.

2005-06-24  Jan Hubicka  <jh@suse.cz>

	* tree-optimize.c (init_tree_optimization_passes): Fix flags of
	all_passes and all_ipa_passes.

	* c-common.c: Include cgraph.h
	(handle_externally_visible_attribute): New function.
	(c_common_att): Add "externally_visible" attribute.
	* cgraph.c (decide_is_variable_needed): Obey externally
	visible flag.
	(cgraph_varpool_finalize_decl): Avoid redundant checking.
	* cgraph.h (struct cgraph_node): New flag externally_visible.
	(decide_is_function_needed): Obey externally visible flag.
	(cgraph_finalize_function): Avoid redundant checks.
	(cgraph_function_and_variable_visibility): Bring symbols local
	when asked for.
	* common.opt (fwhole-program): New flag.

	* doc/invoke.texi (-fwhole-program): Document.

2005-06-24  Mark Mitchell  <mark@codesourcery.com>

	PR 22171
	* tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL
	before use.

2005-06-23  Mark Mitchell  <mark@codesourcery.com>

	PR 22000
	* tree-ssa-operands.c (get_expr_operands): Check the volatility of
	the FIELD_DECL and set s_ann->has_volatile_ops accordingly.

2005-06-24  Jan Hubicka  <jh@suse.cz>

	* opts.c (decode_options): Enable unit-at-a-time by default at -O1.

2005-06-23  Jeff Law  <law@redhat.com>

	* tree-optimize.c (init_tree_optimization_passes): Move
	copy prop pass to run just before VRP.
	* tree-vrp.c (remove_range_assertions): Remove copies created
	by ASSERT_EXPR removal.

2005-06-23  Kazu Hirata  <kazu@codesourcery.com>

	PR tree-optimization/22117
	* tree-vrp.c (extract_range_from_binary_expr): Compute a
	correct range when adding two pointers.

2005-06-23  Jason Merrill  <jason@redhat.com>

	PR c++/19317
	Leave the return slot target in the MODIFY_EXPR rather than making
	it an argument, but only use it if the CALL_EXPR has a flag set.
	* tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to
	CALL_EXPR_RETURN_SLOT_OPT.
	* calls.c (expand_call): Adjust.
	* tree-inline.c (expand_call_inline): Adjust.
	* tree-pretty-print.c (dump_generic_node): Adjust.

	And set the flag as appropriate.
	* gimplify.c (gimplify_modify_expr_rhs): Set
	CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe.
	* tree-nrv.c (execute_return_slot_opt): Set
	CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis.
	* tree-pass.h: Declare pass_return_slot.
	* tree-optimize.c (init_tree_optimization_passes): Add it.

2005-06-23  David Edelsohn  <edelsohn@gnu.org>

	PR target/21760
	* config/rs6000/rs6000.h (PPC405_ERRATUM77): New.
	* config/rs6000/rs6000.md: Move atomic instructions to ...
	* config/rs6000/sync.md: Here.
	Change sync_compare_and_swap<mode> to define_expand.  All stwcx
	patterns test PPC405_ERRATUM77.

2005-06-23  Jan Hubicka  <jh@suse.cz>

	* tree-inline.c (copy_body_r): Remap labels correctly.

2005-06-22  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.

2005-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	PR middle-end/20593
	* varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
	the same as the other cast operands.
	(output_addressed_constants): Likewise.

2005-06-21  Jeff Law  <law@redhat.com>

	* tree-vrp.c (extract_range_from_unary_expr): Handle type
	conversions better.

2005-06-21  Dorit Nuzman  <dorit@il.ibm.com>

	* genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
	(reduc_plus_optab): Removed.  Replcaed with...
	(reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
	* optabs.c (optab_for_tree_code): Return reduc_splus_optab or
	reduc_uplus_optab instead of reduc_plus_optab.
	(expand_vec_shift_expr): New function.
	(init_optabs): Initialize new optabs. Remove initialization of
	reduc_plus_optab.
	(optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
	for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
	* optabs.h (OTI_reduc_plus): Removed. Replaced with...
	(OTI_reduc_splus, OTI_reduc_uplus): New.
	(reduc_plus_optab): Removed.  Replcaed with...
	(reduc_splus_optab, reduc_uplus_optab): New optabs.
	(vec_shl_optab, vec_shr_optab): New optabs.
	(expand_vec_shift_expr): New function declaration.

	* tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
	* tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
	* expr.c (expand_expr_real_1): Handle new tree-codes.
	* tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
	* tree-vect-generic.c (expand_vector_operations_1): Add assert.

	* tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
	alternatives for generating reduction epilog code.
	(vectorizable_reduction): Don't fail of direct reduction support is
	not available.
	(vectorizable_target_reduction_pattern): Likewise.

	* config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
	reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
	reduc_plus_v4si, reduc_plus_v4sf): Removed.
	(vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode,
	reduc_splus_<mode>, reduc_uplus_v16qi): New.

2005-06-20  Daniel Berlin  <dberlin@dberlin.org>

	* c-typeck.c (build_function_call): Set fundecl = function again.
	* tree-ssa-alias.c (find_used_portions): Address taking causes the
	entire variable to be used.
	* tree-ssa-structalias.c (do_structure_copy): Fix handling of
	unknown size variables, and structure copies from addressof
	operations.  Simplify how we do *a = *b type structure copies.
	(init_base_vars): Add ANYTHING = &ANYTHING constraint the right
	way.  READONLY's address is not taken by default.
	INTEGER dereference should point to anything.
	(create_variable_info_for): It's okay for the first field to not start
	at 0.

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

	config/sh/linux.h (FUNCTION_PROFILER): Constify a char*.

2005-06-20  Roger Sayle  <roger@eyesopen.com>
	    Fariborz Jahanian <fjahanian@apple.com>

	* combine.c (simplify_set): Simplify setting of CC register
	by removing redundant compare with 0 on RHS.

2005-06-20  Jan Beulich  <jbeulich@novell.com>

	* config/i386/netware-libgcc.def: Update copyright.
	* config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
	__muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
	* config/i386/netware.c (gen_stdcall_decoration,
	gen_fastd_decoration): Merge into ...
	(gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
	WinNT's changes.
	(gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
	(i386_nlm_encode_section_info): Adjust to match WinNT's changes.
	* config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
	libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
	* gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
	use of NX_MUTEX_RECURSIVE.

2005-06-19  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (swap_tree_comparison): Add support for unordered
	floating point comparisons.
	* tree-vrp.c (opposite_comparison): Delete.
	(extract_range_from_assert): Replace calls to opposite_comparison
	with calls to swap_tree_comparison.
	(register_edge_assert_for): Likewise.
	(vrp_evaluate_conditional): Likewise.

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

	* integrate.c (allocate_initial_values): Update the references
	to global_live_at_start	and global_live_at_end.

2005-06-20  Jan Hubicka  <jh@suse.cz>

	* cfgloop.h (DLTHE_RECORD_COPY_NUMBER): New flag.
	* cfgloopmanip.c (duplicate_loop_to_header_edge): Set aux flags only
	when asked for.
	* loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations,
	unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
	Update call of duplicate_loop_to_header_edge.
	(apply_opt_in_copies): Clear out aux pointers.

2005-06-19  Joseph S. Myers  <joseph@codesourcery.com>

	* config/i386/i386.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
	(ix86_mangle_fundamental_type): New.
	* config/ia64/ia64.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
	(ia64_mangle_fundamental_type): New.

2005-06-19  Roger Sayle  <roger@eyesopen.com>

	* c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on
	INTEGER_CST nodes.
	* c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on
	CONSTANT_CLASS_P nodes.

2005-06-19  Richard Henderson  <rth@redhat.com>

	* config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
	the shift is always required.

2005-06-19  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64-modes.def (V4SF): Add.
	* config/ia64/ia64.c (ia64_legitimate_constant_p): Handle CONST_VECTOR.
	* config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Allow vector to
	integer mode changes in fp regs.
	* config/ia64/ia64.md (UNSPEC_VECT_EXTR): New.
	* config/ia64/vect.md (smaxv2sf3, sminv2sf3): Fix typos in names.
	(reduc_plus_v2sf, reduc_smax_v2sf, reduc_smin_v2sf): New.
	(vcondv2sf): Use gen_fpack
	(fpack): Remove * from name.
	(fswap, fmix_l, fmix_r, fmix_lr): New.
	(vec_setv2sf, vec_extractv2sf_0_le, vec_extractv2sf_0_be): New.
	(vec_extractv2sf_1, vec_extractv2sf): New.

2005-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>

	* combine.c (make_compound_operation): Use simplify_subreg.  Delete
	a optimization already done by simplify_subreg.

2005-06-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* loop.c (scan_loop): Do not consider insns setting the frame
	pointer to be candidates for hoisting.

2005-06-19  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, cmpfp_0_xf):
	Remove instruction patterns.
	(*cmpfp_0): New instruction pattern. Set "unit" attribute to "i387".
	(*cmpfp_sf, *cmpfp_df, *cmpfp_xf, *cmpfp_u, *_cmpfp_<mode>):
	Set "unit" attribute to "i387".
	(*pushsf, *pushsf_rex64, *pushdf_nointeger, *pushdf_integer)
	(*pushxf_nointeger, *pushxf_integer): Set "unit" attribute to "i387"
	for alternative 0.
	(*truncdfsf_mixed, *truncdfsf_i387, *truncxfsf2_mixed)
	(*truncxfsf2_i387, *truncxfdf2_mixed, *truncxfdf2_i387): Set "unit"
	attribute to "i387" when "type" attribute equals "multi".
	(*floathisf2_i387, *floatsisf2_mixed, *floatsisf2_i387)
	(*floatdisf2_mixed, *floatdisf2_i387, *floathidf2_i387)
	(*floatsidf2_mixed, *floatsidf2_i387, *floatdidf2_mixed)
	(*floatdidf2_i387, floathixf2, floatsixf2, floatdixf2): Set "unit"
	attribute to "i387" when "type" attribute equals "multi".
	* config/i386/mmx.md (*mov<mode>_internal_rex64)
	(*mov<mode>_internal, *movv2sf_internal_rex64, *movv2sf_internal):
	Set "unit" attribute to "mmx" when "type" attribute equals "ssecvt".
	(mmx_pmovmskb): Correct wrong "type" and "mode" attributes.
	* config/i386/sse.md (sse_cvtps2pi, sse_cvttps2pi, sse_cvtpd2di)
	(sse_cvttpd2pi): Set "unit" attribute to "mmx".
	(sse2_cvtpi2pd): Split register constraints. Set "unit" attribute
	to "mmx" for "y" operand 1.

2005-06-19  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P
	for TARGET_MMX.  Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX
	and SSE registers to determine if regno is valid.
	(ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on
	TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up.

2005-06-18  Richard Henderson  <rth@redhat.com>

	* tree-complex.c (init_dont_simulate_again): Clear DONT_SIMULATE_AGAIN
	for control-altering statements; set it again for returns.
	(complex_visit_stmt): Return SSA_PROP_VARYING for stmts that are
	not MODIFY_EXPR.

2005-06-18  Richard Henderson  <rth@redhat.com>

	PR tree-opt/22116
	* tree-ssa-pre.c (create_expression_by_pieces): Set
	DECL_COMPLEX_GIMPLE_REG_P.
	(insert_into_preds_of_block): Likewise.

2005-06-18  Steven Bosscher  <stevenb@suse.de>

	* Makefile.in: Fix tree-cfgcleanup.c dependencies.

2005-06-18  Richard Henderson  <rth@redhat.com>

	* expr.c (store_constructor): Use store of 0 to indicate value
	death instead of a clobber.

	* config/i386/i386.c (ix86_expand_reduc_v4sf): New.
	* config/i386/i386-protos.h (ix86_expand_reduc_v4sf): Declare.
	* config/i386/sse.md (reduc_plus_v4sf): New.
	(reduc_smax_v4sf, reduc_smin_v4sf): New.

2005-06-18  James A. Morrison  <phython@gcc.gnu.org>

	* fold_const (fold_binary): Fold X % (2**N) to X & (2**N - 1) for
	nonnegative values of X.

2005-06-18  Uros Bizjak  <uros@kss-loka.si>

	* doc/md.texi (Standard Names): Change insn pattern name
	from truncM2 to btruncM2 for 'trunc' built-in description.
	Add rintM2 insn pattern description.

2005-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-decl.c (locate_old_decl): Add format attribute.
	(implicit_decl_warning): Likewise.

	* diagnostic.h (verbatim): Move ...
	* toplev.h (verbatim): ... here.  Add ATTRIBUTE_GCC_DIAG.
	* pretty-print.h (pp_verbatim): Add ATTRIBUTE_GCC_PPDIAG.

2005-06-18  Roger Sayle  <roger@eyesopen.com>

	PR target/22083
	* config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition.

2005-06-18  Dorit Nuzman  <dorit@il.ibm.com>

	* tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): New
	tree-codes.
	* optabs.h (OTI_reduc_smax, OTI_reduc_umax, OTI_reduc_smin,
	OTI_reduc_umin, OTI_reduc_plus): New optabs for reduction.
	(reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
	reduc_plus_optab): New optabs for reduction.
	* expr.c (expand_expr_real_1): Handle new tree-codes.
	* tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
	* tree-pretty-print.c (dump_generic_node, op_prio, op_symbol): Handle
	new tree-codes.
	* optabs.c (optab_for_tree_code): Handle new tree-codes.
	(init_optabs): Initialize new optabs.
	* genopinit.c (optabs): Define handlers for new optabs.

	* tree-vect-analyze.c (vect_analyze_operations): Fail vectorization in
	case of a phi that is marked as relevant. Call vectorizable_reduction.
	(vect_mark_relevant): Phis may be marked as relevant.
	(vect_mark_stmts_to_be_vectorized): The use corresponding to the
	reduction variable in a reduction stmt does not mark its defining phi
	as relevant. Update documentation accordingly.
	(vect_can_advance_ivs_p): Skip reduction phis.
	* tree-vect-transform.c (vect_get_vec_def_for_operand): Takes
	additional argument. Handle reduction.
	(vect_create_destination_var): Update call to vect_get_new_vect_var.
	Handle non-vector argument.
	(get_initial_def_for_reduction): New function.
	(vect_create_epilog_for_reduction): New function.
	(vectorizable_reduction): New function.
	(vect_get_new_vect_var): Handle new vect_var_kind.
	(vectorizable_assignment, vectorizable_operation, vectorizable_store,
	vectorizable_condition): Update call to vect_get_new_vect_var.
	(vect_transform_stmt): Call vectorizable_reduction.
	(vect_update_ivs_after_vectorizer): Skip reduction phis.
	(vect_transform_loop): Skip if stmt is both not relevant and not live.
	* tree-vectorizer.c (reduction_code_for_scalar_code): New function.
	(vect_is_simple_reduction): Was empty - added implementation.
	* tree-vectorizer.h (vect_scalar_var): New enum vect_var_kind value.
	(reduc_vec_info_type): New enum vect_def_type value.
	* config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
	reduc_umax_v4si, reduc_smin_v4si, reduc_umin_v4sf, reduc_smin_v4sf,
	reduc_plus_v4si, reduc_plus_v4sf): New define_expands.

	* tree-vect-analyze.c (vect_determine_vectorization_factor): Remove
	ENABLE_CHECKING around gcc_assert.
	* tree-vect-transform.c (vect_do_peeling_for_loop_bound,
	(vect_do_peeling_for_alignment, vect_transform_loop,
	vect_get_vec_def_for_operand): Likewise.

2005-06-18  Joseph S. Myers  <joseph@codesourcery.com>

	* config/ia64/ia64.c (ia64_function_arg): Set up a PARALLEL for a
	big-endian unnamed __float80 value.

2005-06-18  Richard Henderson  <rth@redhat.com>

	PR tree-opt/22103
	* tree-sra.c (generate_copy_inout): Handle SSA_NAME complex
	destinations.

2005-06-17  Richard Henderson  <rth@redhat.com>

	* tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
	initialize_original_copy_tables and free_original_copy_tables.
	(vect_do_peeling_for_alignment): Likewise.

2005-06-17  Pat Haugen  <pthaugen@us.ibm.com>

	* bb-reorder.c (find_traces_1_round): Use succ block frequency
	instead of edge frequency for calls to better_edge_p.

2005-06-17  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/22105
	* tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST.

2005-06-17  Steve Ellcey  <sje@cup.hp.com>

	PR target/19889
	* config/ia64/hpux.h (FUNCTION_PROFILER): New (dummy).
	(PROFILE_HOOK): New.
	(PROFILE_BEFORE_PROLOGUE): Undef.
	(NO_PROFILE_COUNTERS): New.
	* config/ia64/ia64-protos.h (ia64_profile_hook): New.
	* config/ia64/ia64.c (ia64_compute_frame_size): Add ifdef.
	(gen_mcount_func_rtx): New.
	(ia64_profile_hook): New.
	* config/ia64/ia64.md (ip_value): New.

2005-06-17  Devang Patel  <dpatel@apple.com>

	* config/rs6000/predicates.md (s5bit_cint_operand,
	u5bit_cint_operand): New.
	* config/rs6000/altivec.md (altivec_vspltb, altivec_vsplth,
	altivec_vspltisw_v4sf): Use new 5 bit constant operand predicates.
	* config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Fix signed
	5 bit constant check.

2005-06-17  Richard Henderson  <rth@redhat.com>

	* local-alloc.c (update_equiv_regs): Update reg_equiv_init
	properly when moving an initialization insn.

2005-06-17  Paolo Bonzini  <bonzini@gnu.org>

	* aclocal.m4 (gcc_AC_CHECK_TOOL): Do not overwrite the
	passed variable.
	* configure.ac: Regenerate.

2005-06-17  Jan Hubicka  <jh@suse.cz>

	* tree-optimize.c (execute_ipa_pass_list): New.
	(ipa_passes): Use it.

2005-06-16  Richard Henderson  <rth@redhat.com>

	PR tree-opt/22022
	* tree-complex.c (update_phi_components): Avoid no-op moves.

2005-06-16  Joseph S. Myers  <joseph@codesourcery.com>

	* Makefile.in (cc1-checksum.c): Use
	build/genchecksum$(build_exeext), not build/genchecksum$(exeext).

2005-06-16  Geoffrey Keating  <geoffk@apple.com>

	* gengtype.c (adjust_field_rtx_def): Don't add a skip to
	basic_block types.

	* config/t-slibgcc-darwin (SHLIB_SOVERSION): Rename from
	SHLIB_MINOR.
	(SHLIB_REVISION): Delete.
	(SHLIB_VERSTRING): Update to compensate.
	(SHLIB_SONAME): Just use one '.' in the name.

2005-06-16  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR tree-optimization/22018
	* tree-vrp.c (vrp_int_const_binop): Overhaul handling of overflow.

2005-06-16  Richard Henderson  <rth@redhat.com>

	PR tree-opt/22035
	* builtins.c (fold_builtin_complex_mul): Remove.
	(fold_builtin_complex_div): Remove.
	(fold_builtin_1): Don't call them.
	* fold-const.c (fold_complex_add, fold_complex_mult_parts,
	fold_complex_mult, fold_complex_div_parts, fold_complex_div): Remove.
	(fold_binary): Don't call them.  Don't expand complex comparisons to
	elementary comparisons.
	* tree-complex.c (init_dont_simulate_again): Enhance search for
	stmts that require decomposition.
	(complex_visit_stmt): Handle RETURN_EXPR properly.
	(create_components): Handle no referenced variables properly.
	* tree.h (fold_complex_mult_parts): Remove.
	(fold_complex_div_parts): Remove.

2005-06-16  Richard Guenther  <rguenth@gcc.gnu.org>

	* doc/extend.texi: Document sseregparm target attribute.
	Clarify fastcall and regparm documentation.
	* config/i386/i386.h: Adjust float_in_sse documentation.
	* config/i386/i386.c: Add new target attribute sseregparm.
	(ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute):
	Merge into ...
	(ix86_handle_cconv_attribute): ... here.  Also handle
	sseregparm attribute.
	(ix86_comp_type_attributes): Compare sseregparm attributes.
	(ix86_function_sseregparm): New function, split out from ...
	(init_cumulative_args): ... here.  Use to decide use
	of SSE registers and error in case of missing support.
	(ix86_value_regno): Likewise.
	(function_arg_advance): Do not bail out for DFmode if we need
	to pass doubles in registers.
	(function_arg): Likewise.

2005-06-16  Paolo Bonzini  <bonzini@gnu.org>
	    Daniel Jacobowitz  <dan@codesourcery.com>
	    Alan Modra <amodra.bigpond.net.au>

	* configure.ac (gcc_version): Set near the beginning.
	(as, ld, nm): Do not link in-tree tools.  Set gcc_cv_* if tools are
	found in the tree.  Use gcc_AC_PROG to find the tools in the system.
	(objdump): Do not look for it.
	* Makefile.in (NM_FOR_TARGET): Point to ./nm
	(ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET,
	ORIGINAL_NM_FOR_TARGET): Substitute from autoconf.
	(as, ld, nm): New rules.
	(libgcc.mk): Depend on them.
	* aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL,
	gcc_AC_BUILD_EXEEXT): New.
	(gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT.
	* configure: Regenerate.

2005-06-16  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (rtl_bb_info): Break out head_, end_,
	global_live_at_start, global_live_at_end from ...
	(basic_block_def): ... here; update all references
	(BB_RTL): New flag.
	(init_rtl_bb_info): Declare.
	* cfgexpand.c (expand_gimple_basic_block): Init bb info, set BB_RTL
	flag.
	* cfgrtl.c: Include ggc.h
	(create_basic_block_structure): Init bb info.
	(rtl_verify_flow_info_1): Check BB_RTL flag and rtl_bb_info pointer.
	(init_rtl_bb_info): New function.
	(rtl_merge_block, cfglayout_merge_block): Copy global_live_at_end here.
	* cfghooks.c (merge_block): Do not copy global_live_at_end here.
	* cfg.c (clear_bb_flags): Skip BB_RTL flag.
	(dump_flow_info): Gueard global_live_* dumping.

	* Makefile.in (cfg.o): Add new dependencies.
	* basic-block.h (reorder_block_def): Kill
	original/copy/duplicated/copy_number fields.
	(BB_DUPLICATED): New flag.
	(initialize_original_copy_tables, free_original_copy_tables,
	set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New.
	* cfg.c: Include hashtab.h and alloc-pool.h
	(bb_original, bb_copy, original_copy_bb_pool): New static vars.
	(htab_bb_copy_original_entry): New struct.
	(bb_copy_original_hash, bb_copy_original_eq): New static functions.
	(initialize_original_copy_tables, free_original_copy_tables,
	set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New
	global functions.
	* cfghooks.c (duplicate_block): Update original/copy handling.
	* cfglayout.c (fixup_reorder_chain): Likewise.
	(cfg_layout_initialize): Initialize orignal_copy tables.
	(cfg_layout_finalize): FInalize original_copy tables.
	(can_copy_bbs_p): Use BB_DUPLICATED flag.
	(copy_bbs): Likewise.
	* cfgloopmanip.c (update-single_exits_after_duplication): Likewise.
	(duplicate_loop_to_header_edge): Likewise; update handling of
	copy_number.
	(loop_version): Likewise.
	* dominance.c (get_dominated_by_region): Use BB_DUPLICATED_FLAG.
	* except.c (expand_resx_expr): Check that reg->resume is not set.
	* loop-unroll.c (unroll_loop_constant_iterations,
	unroll_loop_runtime_iterations, apply_opt_in_copies): Update
	copy/original handling.
	* loop-unwitch.c (unswitch_loop): Likewise.
	* tree-cfg.c (create_bb): Do not initialize RBI.
	(disband_implicit_edges): Do not kill RBI.
	(add_phi_args_after_copy_bb): Use new original/copy mapping.
	(add_phi_args_after_copy): Use BB_DUPLICATED flag.
	(tree_duplicate_sese_region): Update original/copy handling.
	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
	* tree-ssa-loop-manip.c (copy_phi_node_args): Likewise.
	* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.

2005-06-15  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/21923
	* tree-ssa.c (tree_ssa_useless_type_conversion_1): Conversions between
	integer types whos ranges are different are not useless.

2005-06-15  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/22024
	* tree-ssa-reassoc.c (init_reassoc): Also give chain decl a distint
	rank.

2005-06-15  Diego Novillo  <dnovillo@redhat.com>

	* tree-ssa-structalias.c (dump_solution_for_var): Reformat
	output.
	(dump_sa_points_to_info): Make extern.
	(debug_sa_points_to_info): New.
	* tree-ssa-structalias.h (TREE_SSA_STRUCTALIAS_H): Rename from
	TREE_ALIAS_COMMON.
	(dump_sa_points_to_info): Declare.
	(debug_sa_points_to_info): Declare.

2005-06-15  Joseph S. Myers  <joseph@codesourcery.com>

	* c-tree.h (default_function_array_conversion): Declare.
	* c-typeck.c (default_function_array_conversion): Export.  Correct
	comment.
	(default_conversion): Do not call
	default_function_array_conversion.  Do not allow FUNCTION_TYPE.
	(build_function_call): Call default_function_array_conversion on
	the function.
	(convert_arguments): Do not call it on the function arguments.
	(build_unary_op): Do not allow ARRAY_TYPE or FUNCTION_TYPE for
	TRUTH_NOT_EXPR.  Call default_function_array_conversion for taking
	address of ARRAY_REF.
	(build_compound_expr): Do not call
	default_function_array_conversion.
	(build_c_cast): Do not call default_function_array_conversion.
	(convert_for_assignment): Do not call default_conversion.
	(digest_init): Call default_function_array_conversion to convert
	string constants and compound literals to pointers, but not
	otherwise.
	(output_init_element): Likewise.
	(build_asm_expr): Do not call default_function_array_conversion.
	(c_process_expr_stmt): Likewise.
	(c_objc_common_truthvalue_conversion): Likewise.  Do not allow
	FUNCTION_TYPE.
	* c-parser.c (c_parser_expression_conv): New.
	(c_parser_asm_operands, c_parser_expr_list): Add convert_p
	argument.  All callers changed.  Call
	default_function_array_conversion if convert_p.
	(c_parser_initializer, c_parser_initval): Call
	default_function_array_conversion except for string constants and
	compound literals.
	(c_parser_initelt): Call default_function_array_conversion for
	ObjC expression received.
	(c_parser_statement_after_labels): Call c_parser_expression_conv
	for return and expression statements.
	(c_parser_paren_condition, c_parser_for_statement,
	c_parser_conditional_expression): Call c_parser_expression_conv.
	(c_parser_expr_no_commas, c_parser_conditional_expression,
	c_parser_binary_expression, c_parser_cast_expression,
	c_parser_unary_expression): Call
	default_function_array_conversion.

2005-06-15  Diego Novillo  <dnovillo@redhat.com>

	* tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
	when the result overflows.

2005-06-15  David Ung  <davidu@mips.com>

	* config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp,
	24k and 24kx.

2005-06-15  Richard Sandiford  <richard@codesourcery.com>

	* doc/invoke.texi (-mips16): Fix typo.

2005-06-15  David Ung  <davidu@mips.com>

	* config/mips/mips.h (GENERATE_MIPS16E): New definition.
	* config/mips/mips.md (zero_extend<SHORT:mode><GPR:mode>2):
	Changed expand condition to exclude generating of "and" if
	GENERATE_MIPS16E is true.
	(*zero_extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for
	matching mips16e zeb/zeh.
	(*extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for matching
	mips16e seb/seh.
	(*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
	GENERATE_MIPS16E.
	* doc/invoke.texi (MIPS Options): Add comment to -mips16
	indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.

2005-06-15  Diego Novillo  <dnovillo@redhat.com>

	PR 22018
	* tree-vrp.c (vrp_int_const_binop): New.
	(extract_range_from_binary_expr): Call it.
	Unify handling division and multiplication.

2005-06-15  Aldy Hernandez  <aldyh@redhat.com>

	* c-common.h (same_scalar_type_ignoring_signedness): Protoize.

	* c-common.c (same_scalar_type_ignoring_signedness): New.

	* c-typeck.c (build_binary_op): Check compatability of vector
	types.  Move error report after switch.
	Do not clobber code[01] on *_DIV_EXPR case.

	* testsuite/gcc.dg/simd-1.c: Update error messages.
	* testsuite/gcc.dg/simd-1b.c: Re-enable tests.  Update error
	messages.
	* testsuite/gcc.dg/simd-2.c: Update error messages.
	* testsuite/gcc.dg/simd-4.c: New.

2005-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>

	* Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
	* local-alloc.c: Include "ggc.h" and "reload.h".
	(struct equivalence): New member is_arg_equivalence.
	(local_alloc): Always call update_equiv_regs.
	(update_equiv_regs): Allocate reg_equiv_init; set reg_equiv_init_size.
	Detect equivalences made by stores to memory in a second pass.
	Return early if not optimizing.
	Initialize reg_equiv_init for all equivalences; treat equivalences for
	REG_EQUIV notes existing before this pass specially.
	(no_equiv): Don't clear reg_equiv_init or remove notes if the
	is_arg_equivalence field is set.
	* reload.h (reg_equiv_init, reg_equiv_init_size): Declare.
	* reload1.c (reg_equiv_init): No longer static.
	(reg_equiv_init_size): New variable.
	(reload): Don't allocate reg_equiv_init; don't free it when done but
	clear it.
	Restructure equivalence set up code not to set reg_equiv_init, but to
	clear it when we can't use an equivalence.
	Undo change disabling equivalences for MEM_READONLY_P memrefs.
	Dump equivalencing insns to dump_file.

2005-06-14  Richard Sandiford  <richard@codesourcery.com>

	* config/mips/mips.c (machine_function): Add varargs_size field.
	(mips_setup_incoming_varargs): Store the amount of extra stack space
	there rather than in *pretend_size.  When saving registers, always
	expect virtual_incoming_args_rtx to point to the start of the
	pretend arguments.
	(mips_va_start): Remove alignment hack.  Handle all
	!EABI_FLOAT_VARARGS_P cases in the same way.
	(compute_frame_size): Handle varargs_size.  Remove the redundant
	!TARGET_OLDABI condition in the handling of pretend_args_size.
	(mips_initial_elimination_offset): Remove the now-redundant check
	of TARGET_NEWABI.

2005-06-14  Jeff Law  <law@redhat.com>

	* tree-vrp.c (local_fold): Remove.
	(simplify_using_ranges): Use fold_convert, not local_fold.  Tweak
	DIV/MOD case slightly for readability.

2005-06-14  Frank Ch. Eigler  <fche@redhat.com>

	PR mudflap/21023
	* tree-mudflap.c (mudflap_finish_file): Exclude non-public
	rather than static objects (!) from libmudflap registration.

2005-06-14  Richard Sandiford  <richard@codesourcery.com>

	* opt-functions.awk (global_state_p, needs_state_p, static_var): New.
	(var_ref): Take the option's flags as a second parameter.  Check
	static_var.
	* optc-gen.awk: Declare local state variables.  Pass flags to var_ref.

2005-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/20301
	* config/sparc/sol2.h (ASM_GENERATE_INTERNAL_LABEL): Emit
	unsigned index numbers.

2005-06-13  Geoffrey Keating  <geoffk@apple.com>

	* Makefile.in (install-man): Doesn't really depend on installdirs.
	(various rules for installing manpages): Do depend on installdirs.

2005-06-14  Nathan Sidwell  <nathan@codesourcery.com>

	* unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in
	read_encoded_value_with_base call.
	* unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
	* unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
	* unwind-dw2.c (extract_cie_info): Fix aliasing in
	read_encoded_value call.
	(execute_cfa_program, uw_frame_state_for): Likewise.

2005-06-13  Roger Sayle  <roger@eyesopen.com>

	PR rtl-optimization/22053
	* reg-stack.c (compensate_edge): Correct mistake in the assertion
	checking of EDGE_ABNORMAL_CALL edges; complex return values can
	result in the top two stack slots, st(0) and st(1), being live.

2005-06-13  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
	simplify DIV, MOD or ABS expressions using VRP information.
	Remove WALK_DATA parameter.  Prototype and all callers updated.
	(eliminate_redundant_computations): Remove WALK_DATA parameter.
	Prototype and all callers updated.
	(optimize_stmt): WALK_DATA parameter is now unused.

	* tree-vrp.c (local_fold): New function.  Like fold, but
	strips useless type conversions in the result.
	(simplify_using_ranges): New function, largely cribbed from
	tree-ssa-dom.c::simplify_rhs_and_lookup_avail_expr.
	(vrp_finalize): Call simplify_using_ranges.

2005-06-13  Mark Mitchell  <mark@codesourcery.com>

	* config/i386/x86-64.h (ASM_SPEC): Explicitly pass --64 to the
	assembler in 64-bit mode.

2005-06-13  David Edelsohn  <edelsohn@gnu.org>

	Revert scc_operand patch.
	* config/rs6000/predicates.md (scc_operand): Delete.
	* config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.

2005-06-13  Zdenek Dvorak  <dvorakz@suse.cz>

	PR middle-end/21985
	* fold-const.c (split_address_to_core_and_offset): Always return
	the address of the base object.

2005-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>

	* doc/invoke.texi (Blackfin Options): Document -mlong-calls.

2005-06-12  Richard Henderson  <rth@redhat.com>

	PR tree-opt/21994
	* tree-complex.c (update_complex_components_on_edge): New.
	(update_parameter_components): Use it.
	(update_phi_components): Likewise.
	(expand_complex_move): Likewise for is_ctrl_altering_stmt.

2005-06-12  James A. Morrison  <phython@gcc.gnu.org>

	PR tree-optimization/14796
	* fold-const (fold_binary): Transform (X << C) >> C into X & (-1>>C)
	for unsigned types.

2005-06-12  Kazu Hirata  <kazu@codesourcery.com>

	* cgraphunit.c, tree-ssa-loop-ivopts.c,
	tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h,
	config/sparc/sparc.c: Fix comment typos.

2005-06-12  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm/ieee754-df.s (aeabi_dcmpeq, aeabi_dcmplt, aeabi_dcmple)
	(aeabi_dcmpge, aeabi_dcmpgt): Maintain 8-byte stack alignment.
	* arm/ieee754-sf.s (aeabi_l2f, aeabi_fcmpeq, aeabi_fcmplt)
	(aeabi_fcmple, aeabi_fcmpge, aeabi_fcmpgt): Likewise.

2005-06-12  James A. Morrison  <phython@gcc.gnu.org>

	PR tree-optimization/14796
	* fold-const.c (fold_binary): Transform (A >> C) << C into
	one BIT_AND_EXPR.
	<shift>: Transform (A OP c1) OP c2 into A OP (c1 + c2).

2005-06-11  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/predicates.md (reg_or_arith_cint_operand): Delete.
	(reg_or_add_cint_operand): Rename from reg_or_add_cint64_operand.
	Handle SImode.
	(reg_or_sub_cint_operand): Likewise.
	(mask_operand): Handle DImode.
	(mask64_operand): Delete.
	(and64_operand): Delete.
	* config/rs6000/rs6000.c (num_insns_constant): Use mask_operand
	instead of mask64_operand.
	(print_operand): Likewise.
	(rs6000_rtx_costs): Use mask_operand and reg_or_add_cint_operand and
	reg_or_sub_cint_operand instead of *64_* variants.
	* config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Use mask_operand
	instead of mask64_operand.
	* config/rs6000/rs6000.md: Use mask_operand and and_operand instead
	of *64_* variants.
	(FP): New.
	(add_op2): Delete.
	(add<mode>3): Use reg_or_add_cint_operand.
	(sub_op2): Delete.
	(sub<mode>3): Use reg_or_sub_cint_operand.
	(udiv<mode>3, div<mode>3, div<mode>3_no_mq, mod<mode>3,
	mov<mode>_internal2, mov<mode>, cmp<mode>, cmp<mode>,
	cmp<mode>_internal1, indirect_jump<mode>, ctr<mode>,
	ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
	ctr<mode>_internal6, save_fpregs_<mode>, return_internal_<mode>,
	return_and_restore_fpregs_<mode>, eh_set_lr_<mode>,
	various unnamed patterns): New.
	(udivsi3, divsi3, divsi3_no_mq, modsi3, movsi_internal2, movsi,
	cmpsi, cmpsi_internal1, indirect_jumpsi, ctrsi, ctrsi_internal1,
	ctrsi_internal2, ctrsi_internal5, ctrsi_internal6, save_fpregs_si,
	return_internal_si, return_and_restore_fpregs_si, eh_set_lr_si,
	udivdi3, divdi3, divdi3_no_mq, moddi3, movdi_internal2, movdi,
	cmpdi, cmpdi_internal1, indirect_jumpdi, ctrdi, ctrdi_internal1,
	ctrdi_internal2, ctrdi_internal5, ctrdi_internal6, save_fpregs_di,
	return_internal_di, return_and_restore_fpregs_di, eh_set_lr_di,
	movhi, movqi, cmpsf, cmpdf, cmptf, various unnamed patterns):
	Delete.

2005-06-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* rtl.h (to_rtx_code): Remove.
	* machmode.h (to_machine_mode): Likewise.
	* read-rtl.c (apply_mode_macro): Replace to_machine_mode with
	explicit cast.
	(apply_mode_maps): Likewise.
	(read_rtx_1): Likewise.
	(apply_code_macro): Replace to to_rtx_code with explicit cast.
	(check_code_macro): Likewise.
	(read_rtx_1): Likewise.

2005-06-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-typeck.c (convert_for_assignment): Avoid checking
	OPT_Wc___compat, as it is always true.

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

	* config/rs6000/rs6000.md (eq<mode>_compare): Restrict to Pmode.

2005-06-11  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/22005
	Fix PR tree-optimization/22025

	* tree-ssa-structalias.c (struct variable_info): Add has_union
	member.
	(create_variable_info_for): Mark variables containing unions.
	Don't sort the field stack if notokay is true.
	(find_what_p_points_to): Convert variables containing unions back
	to their SFT's if necessary.

2005-06-11  Daniel Berlin  <dberlin@dberlin.org>

	* lambda-code.c (replace_uses_equiv_to_x_with_y): Verify the step
	is an INTEGER_CST before calling int_cst_value.

2005-06-10  Uros Bizjak  <uros@kss-loka.si>

	PR target/21981
	* config/i386/i386.c (ix86_function_value_regno_p): Return true
	for FIRST_MMX_REG if TARGET_MMX.
	(ix86_return_in_memory): Return 1 for MMX/3dNow vectors. Delete
	wrong comment.
	(ix86_struct_value_rtx): Emit warning for MMX ABI violations.
	(ix86_value_regno): Return FIRST_MMX_REG for MMX vector modes.

2005-06-10  Daniel Berlin  <dberlin@dberlin.org>

	* lambda-code.c (replace_uses_equiv_to_x_with_y): Check step
	and access function against chrec_dont_know.

2005-06-10  Daniel Berlin  <dberlin@dberlin.org>

	* lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten
	slightly.
	(exit_phi_for_loop_p): New function.
	(can_put_in_inner_loop): Ditto.
	(can_convert_to_perfect_nest): Ditto.
	(perfect_nestify): Create iv with right type.
	Rewrite statements in correct order.

2005-06-10  Keith Besaw  <kbesaw@us.ibm.com>

	* tree-ssa-alias.c (new_type_alias): Use existing type
	tag if VAR has just one in its may_aliases list.

2005-06-10  Fariborz Jahanian <fjahanian@apple.com>

	* rs6000/predicates.md (scc_operand): New.
	* rs6000/rs6000.md : Use scc_operand for eq:SI compares.

2005-06-10  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose
	dependence-distance modulo VF is 0 are recorded in the
	SAME_ALIGN_REFs VEC in each DR.
	(vect_enhance_data_refs_alignment): Avoid 80 column overflow. The
	alignment information of DRs that are in the SAME_ALIGN_REFs VEC of the
	DR we want to peel for, is set to 0.
	* tree-vect-transform.c (vect_do_peeling_for_loop_bound): Fix printout.
	* tree-vectorizer.c (destroy_loop_vec_info): Free the SAME_ALIGN_REFs
	VEC.
	* tree-vectorizer.h (dr_p): New type. Defined to use the VEC API.
	(_stmt_vec_info): Added new field same_align_refs.
	(STMT_VINFO_SAME_ALIGN_REFS): New macro.

2005-06-10  Nathan Sidwell  <nathan@codesourcery.com>

	* vec.h (VEC_safe_grow): Append MEM_STAT_INFO.

2005-06-10  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
	* config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
	* config/rs6000/rs6000.c (output_function_profiler): Obey
	NO_PROFILE_COUNTERS.  Handle TARGET_SECURE_PLT.  Use "bcl 20,31"
	for -fPIC.  Delete save_lr and substitute its value into strings.

2005-06-09  Dale Johannesen  <dalej@apple.com>

	* config/i386/i386.c (optimization_options): Make -fno-math-errno
	the default on Darwin.
	* config/rs6000/rs6000.c (optimization_options): Ditto.
	* doc/invoke.texi (-fno-math-errno): Document.

2005-06-09  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP):
	Change to TARGET_INVALID_WITHIN_DOLOOP.

2005-06-09  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (eq): Convert to define_insn_and_split.
	* config/rs6000/predicates.md (scc_eq_operand): New.

2005-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.md (mextr_rl): Set buffer size properly.
	(*mextr_lr): Likewise.

2005-06-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c/21759
	* c.opt (Wc++-compat): New.
	* doc/invoke.texi (-Wc++-compat): Document.
	* c-typeck.c (convert_for_assignment): Check for implicit
	conversion void* -> T*.

2005-06-09  Gabriel Dos Reis  <gdr@integrable-solutions.edu>

	* machmode.h (to_machine_mode): New.
	* rtl.h (to_rtx_code): Likewise.
	* read-rtl.c (apply_mode_macro): Convert mode to machine_mode.
	(print_c_condition): Convert return value of htab_find().
	(apply_code_macro): Add explicit cast when convertin to enums.
	(apply_mode_maps): Likewise.
	(check_code_macro): Likewise.
	(read_rtx_1): Likewise.

2005-06-09  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
	Use SCALAR_FLOAT_MODE_P.
	* config/ia64/vect.md (vcondv2sf): Remove code check on comparison.
	(fselect): Rename from fpcmp; use %F.
	(fpcmp): New.

2005-06-09  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
	local statics when doing unit-at-a-time.
	(cgraph_varpool_assemble_pending_decls): Output debug info.
	* dwarf2out.c (decls_for_scope): Skip local statics.
	(dwarf2out_decl): Handle local statics.
	* passes.c (rest_of_decl_compilation): Do not differentiate
	local and global statics in unit-at-a-time.
	* tree-inline.c (remap_decls): Put local static into
	unexpanded_vars_list rather than introducing duplicated VAR_DECL
	node.

2005-06-09  Daniel Berlin  <dberlin@dberlin.org>

	* config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Fix
	prototype.

2005-06-08  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.in (OBJS-common): Add tree-ssa-structalias.o.
	* tree-flow.h (find_what_p_points_to): Add prototype.
	(push_fields_onto_fieldstack): Ditto.
	(sort_fieldstack): Ditto.
	* tree-optimize.c (init_tree_optimization_passes): Add
	pass_build_pta and pass_del_pta.
	* tree-pass.h (pass_build_pta): New structure.
	(pass_del_pta): Ditto.
	* tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate
	using new alias analyzer.
	(push_fields_onto_fieldstack): Removed from here.
	(bitpos_of_field): Ditto.
	(fieldoff_compare): Ditto.
	* tree-ssa-structalias.c: New file.
	* tree-ssa-structalias.h: Ditto.

2005-06-09  Nathan Sidwell  <nathan@codesourcery.com>

	* c-typeck.c (build_c_cast): Check type punning on COMPONENT_REF
	too.

2005-06-09  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (enum bfin_builtins): Moved here from...
	* config/bfin/bfin.h (enum bfin_builtins): ... here.

2005-06-09  Adrian Straetling  <straetling@de.ibm.com>

	* target.h (insn_valid_within_doloop): Rename into
	"invalid_within_doloop".  Change return type to "const char *".
	Update Comment.
	* targhooks.h (default_insn_valid_within_doloop): Rename into
	"default_invalid_within_doloop".
	* targhooks.c (default_insn_valid_within_doloop): Likewise.
	Update Comment.
	* target-def.h (TARGET_INSN_VALID_WITHIN_DOLOOP): Rename target hook
	into "TARGET_INVALID_WITHIN_DOLOOP". Default it to
	"default_invalid_within_doloop".
	* hooks.c (hook_constcharptr_rtx_null): New function.
	(hook_bool_rtx_true): Remove.
	* hooks.h (hook_constcharptr_rtx_null): Declare.
	(hook_bool_rtx_true): Remove.
	* loop-doloop.c (doloop_valid_p): Temporarily store return value of
	"invalid_within_doloop" and print error message if non-null.
	Update Comment.
	* doc/tm.texi: Update documentation.
	* config/s390/s390.c: Adjust to new hook name and new default hook.
	* config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Rename
	into "rs6000_invalid_within_doloop".
	(rs6000_invalid_within_doloop): Change return type to "static const
	char *" and replace return values.  Update Comment.

2005-06-09  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.opt (mlong-calls): New.
	* config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF
	if TARGET_LONG_CALLS.

2005-06-09  Richard Henderson  <rth@redhat.com>

	PR tree-opt/20610
	* tree.h (DECL_COMPLEX_GIMPLE_REG_P): New.
	(struct tree_decl): Add gimple_reg_flag.
	* integrate.c (copy_decl_for_inlining): Copy it.
	* gimplify.c (internal_get_tmp_var): Set it.
	(gimplify_bind_expr): Likewise.
	(gimplify_function_tree): Likewise.
	(gimplify_modify_expr_complex_part): New.
	(gimplify_modify_expr): Use it.
	* tree-gimple.c (is_gimple_reg_type): Allow complex.
	(is_gimple_reg): Allow complex with DECL_COMPLEX_GIMPLE_REG_P set.

	* tree-complex.c (complex_lattice_t): New.
	(complex_lattice_values, complex_variable_components): New.
	(some_nonzerop, find_lattice_value, is_complex_reg,
	init_parameter_lattice_values, init_dont_simulate_again,
	complex_visit_stmt, complex_visit_phi, create_components,
	update_complex_components, update_parameter_components,
	update_phi_components, update_all_vops, expand_complex_move): New.
	(extract_component): Handle INDIRECT_REF, COMPONENT_REF, ARRAY_REF,
	SSA_NAME.
	(update_complex_assignment): Use update_complex_components;
	handle updates of return_expr properly.
	(expand_complex_addition): Use complex lattice values.
	(expand_complex_multiplication): Likewise.
	(expand_complex_division): Likewise.
	(expand_complex_libcall): Use update_complex_components.
	(expand_complex_comparison): Use update_stmt.
	(expand_complex_operations_1): Use expand_complex_move, retrieve
	lattice values.
	(tree_lower_complex): Compute lattice values.
	(tree_lower_complex_O0): Duplicate from tree_lower_complex.
	(pass_lower_complex_O0): Rename from pass_lower_complex.
	(pass_lower_complex, gate_no_optimization): New.
	* tree-optimize.c (init_tree_optimization_passes): Update for
	complex pass changes.
	* tree-pass.h (pass_lower_complex_O0): Declare.

2005-06-08  Dale Johannesen  <dalej@apple.com>

	* config/darwin.c (darwin_binds_local_p): New.
	* config/darwin-protos.h (darwin_binds_local_p): Declare it.
	* config/i386/i386.c (TARGET_BINDS_LOCAL_P): Use it for TARGET_MACHO.
	* config/rs6000/rs6000.c (rs6000_binds_local_p): Remove.
	(TARGET_BINDS_LOCAL_P): Change it to darwin_binds_local_p.

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

	* config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
	rs6000_isel, rs6000_spe, rs6000_alignment_string,
	rs6000_sched_restricted_insns_priority_str,
	rs6000_sched_restricted_insns_priority, rs6000_abi_string.

2005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-address.c (addr_for_mem_ref): Use LAST_VIRTUAL_REGISTER
	instead of FIRST_PSEUDO_REGISTER for creating pseudoregisters.
	* tree-ssa-loop-ivopts.c (add_cost, multiply_by_cost,
	multiplier_allowed_in_address_p, get_address_cost): Ditto.

2005-06-08  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
	* config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
	Emit out3 load right after alloc.

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

	* config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
	rs6000_explicit_options.

2005-06-08  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
	* config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
	unwind markup.
	* config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.

2005-06-08  Joseph S. Myers  <joseph@codesourcery.com>

	* config/sol2-c.c (cmn_err_char_table): Allow width for %b
	formats.

2005-06-08  James A. Morrison  <phython@gcc.gnu.org>

	PR target/20666
	* config/sparc/sparc.c (sparc_fold_builtin): New function
	(sparc_vis_mul8x16): New function.
	(sparc_handle_vis_mul8x16): New function.
	(TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.

2005-06-08  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
	CTR to LR.
	(call_indirect_nonlocal_aix64): Same.
	(call_value_indirect_nonlocal_aix32): Same.
	(call_value_indirect_nonlocal_aix64): Same.

	PR target/10588
	(eq): Use CLZ splitter for compare with zero.

2005-06-08  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (bfin_return_in_memory): Simplify; return
	everything larger than 8 bytes in memory.

	* config/bfin/bfin.h (enum bfin_builtins): New.
	* config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
	New constants.
	(csync, ssync): New insn patterns.
	* config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
	New functions.
	(def_builtin): New macro.
	(TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.

	From Jie Zhang  <jie.zhang@analog.com>
	* config/bfin/bfin.h (ASM_OUTPUT_ALIGN): Gas now emulates the
	behavior of the native assembler in VDSP. So change accordingly.

2005-06-08  Sebastian Pop  <pop@cri.ensmp.fr>

	* tree-data-ref.c (compute_estimated_nb_iterations,
	analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
	analyze_subscript_affine_affine, find_data_references_in_loop):
	Fixed to use chrec_contains_undetermined to test the values of
	loop->estimated_nb_iterations.
	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
	Compute the estimation only when loop->estimated_nb_iterations
	has not yet been initialized.
	(convert_step_widening, scev_probably_wraps_p): Add a call to
	estimate_numbers_of_iterations_loop.
	* tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.

2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR debug/21946
	* dwarf2out.c (add_loc_descr_op_piece): Move to the
	DWARF2_DEBUGGING_INFO section.

2005-06-08  Richard Henderson  <rth@redhat.com>

	PR target/21721
	* config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.

2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/21889
	* target.h (gcc_target) <asm_out>: New field output_dwarf_dtprel.
	* target-def.h (TARGET_ASM_OUTPUT_DWARF_DTPREL): New macro.
	(TARGET_ASM_OUT): Add it.
	* doc/tm.texi (Debugging Info): Document it.
	* dwarf2out.c (output_loc_operands) <INTERNAL_DW_OP_tls_addr>:
	Test it instead of ASM_OUTPUT_DWARF_DTPREL.
	(loc_descriptor_from_tree_1) <VAR_DECL>: Likewise.
	* system.h: Poison ASM_OUTPUT_DWARF_DTPREL.
	* config/frv/frv-protos.h (frv_output_dwarf_dtprel): Delete.
	* config/frv/frv.c (frv_output_dwarf_dtprel): Make static and unused.
	(gen_inlined_tls_plt): Remove unused variable MEM.
	(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to frv_output_dwarf_dtprel.
	* config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
	* config/i386/i386-protos.h (i386_output_dwarf_dtprel): Delete.
	* config/i386/i386.c (i386_output_dwarf_dtprel): Make static and
	unused.
	(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to i386_output_dwarf_dtprel.
	* config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
	* config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): Delete.
	* config/ia64/ia64.c (ia64_output_dwarf_dtprel): Make static and
	unused.
	(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to ia64_output_dwarf_dtprel.
	* config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
	* config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Delete.
	* config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Make static and
	unused.
	(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to rs6000_output_dwarf_dtprel
	* config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
	* config/s390/s390-protos.h (s390_output_dwarf_dtprel): Delete.
	* config/s390/s390.c (s390_output_dwarf_dtprel): Make static and
	unused.
	(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to s390_output_dwarf_dtprel.
	* config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
	* config/sparc/sol2-gas.h (TARGET_SUN_TLS): Define to 0.
	(TARGET_GNU_TLS): Define to 1.
	* config/sparc/sparc-protos.h (sparc_output_dwarf_dtprel): Delete.
	* config/sparc/sparc.c (sparc_output_dwarf_dtprel): Make static and
	unused.
	(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to sparc_output_dwarf_dtprel
	if TARGET_GNU_TLS only.
	* config/sparc/sparc.h (ASM_OUTPUT_DWARF_DTPREL): Delete.

	* config.gcc (sparc64-*-solaris2*): Include tm-dwarf2.h last.
	(sparc-*-solaris2*): Likewise on Solaris 7 and up.

2005-06-07  Dale Johannesen  <dalej@apple.com>

	* config/i386/i386.md (movqi_1): Fix case where source
	is memory and destination EDI.

2005-06-08  Kazu Hirata  <kazu@codesourcery.com>

	* config/c4x/c4x.h (PREDICATE_CODES): Remove mem_operand.

2005-06-07  Eric Christopher  <echristo@redhat.com>

	* system.h: Poison EXTRA_CC_MODES.
	* config/frv/frv.h (SELECT_CC_MODE): Rewrite comment.
	* config/ia64/ia64.h (SELECT_CC_MODE): Ditto.
	* doc/md.texi (Jump Patterns): Replace reference to
	EXTRA_CC_MODES with machine-modes.def.
	* doc/rtl.texi (Machine Modes): Ditto.

2005-06-07  Richard Henderson  <rth@redhat.com>

	* varasm.c (initialize_cold_section_name): Fix alloca buffer overflow.
	(assemble_start_function): Fix strcmp confusion.

2005-06-07  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.h (enum ix86_entity): New.
	(enum ix86_stack_slot): New.
	(OPTIMIZE_MODE_SWITCHING): Redefine to use
	ix86_optimize_mode_switching[] array.
	(NUM_MODES_FOR_MODE_SWITCHING): Redefine for 4 entities.
	(MODE_NEEDED): Use ix86_mode_needed() function.
	(EMIT_MODE_SET): Redefine for changed emit_i387_cw_initialization ()
	function.
	(struct machine_function): Use optimize_mode_switching[] array.

	* config/i386/i386.c (MAX_386_STACK_LOCALS): Remove.
	(ix86_mode_needed): New function.
	(emit_i387_cw_initialization): Cleanup. Use mode to calculate
	correct stack positions for stored control words.
	(assign_386_stack_local): Use enum ix86_stack_slot. Change assert.
	(ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR]: Change constant to
	SLOT_TEMP.
	[IX86_BUILTIN_STMXCSR]: Same.

	* config/i386/i386-protos.h (assign_stack_local): Change prototype.
	(emit_i387_cw_initialization): Change prototype.
	(ix86_mode_needed): New prototype.

	* config/i386/i386.md (i387_cw attribute): Change order of elements.
	(truncdfsf2, truncxfsf2, truncxfdf2, fix_trunc<mode>_fisttp_i387_1)
	(*fix_trunc<mode>_i387_1, lrint<mode>2, *fist<mode>2_floor_1)
	(*fist<mode>2_ceil_1): Change constant in call to
	assign_386_stack_local to SLOT_TEMP.
	(*fix_trunc<mode>_i387_1): Change constant in call to
	assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
	Use new ix86_optimize_mode_switching[] array.
	(frndintxf2_floor, *fist<mode>2_floor_1): Change constants in call to
	assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_FLOOR.
	Use new ix86_optimize_mode_switching[] array.
	(frndintxf2_ceil, *fist<mode>2_ceil_1): Change constants in call to
	assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_CEIL.
	Use new ix86_optimize_mode_switching[] array.
	(frndintxf2_trunc): Change constants in call to
	assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
	Use new ix86_optimize_mode_switching[] array.
	(frndintxf2_mask_pm): Change constants in call to
	assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_MASK_PM.
	Use new ix86_optimize_mode_switching[] array.

	(define_peephole2): Change constant from 17 to FLAGS_REG;

2005-06-07  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/21528
	* rtlanal.c (reg_overlap_mentioned_p) <MEM>: Handle 'E' formats.

2005-06-07  Dale Johannesen  <dalej@apple.com>

	* tree-nested.c (finalize_nesting_tree_1): Disable
	warn_padded around layout_type call.

2005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-ivopts.c (rewrite_use_outer): Unshare the expression
	before emiting it.

2005-06-07  Eric Christopher  <echristo@redhat.com>

	* config/mips/predicates.md: Revert previous patch.

2005-06-07  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/21850
	* tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
	from vector types.

2005-06-07  Diego Novillo  <dnovillo@redhat.com>

	* tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
	(thread_stats): New local variable.
	(redirect_edges): Increment count of threaded edges.
	(thread_through_all_blocks): Initialize thread_stats.
	Display number of threaded jumps if TDF_STATS is enabled.

2005-06-07  Kazu Hirata  <kazu@codesourcery.com>

	* sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
	the current bit index with no modulo.

2005-06-07  Sebastian Pop  <pop@cri.ensmp.fr>

	PR 18403 and meta PR 21861.
	* Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
	* tree-chrec.c: Include cfgloop.h and tree-flow.h.
	(evolution_function_is_invariant_rec_p,
	evolution_function_is_invariant_p): New.
	(chrec_convert): Use an extra parameter AT_STMT for refining the
	information that is passed down to convert_step.  Integrate the
	code that was in count_ev_in_wider_type.
	* tree-chrec.h (count_ev_in_wider_type): Removed.
	(chrec_convert): Modify its declaration.
	(evolution_function_is_invariant_p): Declared.
	(evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
	* tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
	(scev_probably_wraps_p): Declared.
	* tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
	(follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
	Use an extra parameter AT_STMT for refining the information that is
	passed down to convert_step.
	(follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
	analyze_scalar_evolution_1): Initialize AT_STMT with the current
	analyzed statement.
	(instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
	* tree-ssa-loop-ivopts.c (idx_find_step): Update the use of
	can_count_iv_in_wider_type to use convert_step.
	* tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move
	code that is independent of the loop over the known iteration
	bounds to convert_step_widening, the rest is moved to
	proved_non_wrapping_p.
	(scev_probably_wraps_p): New.
	(can_count_iv_in_wider_type): Renamed convert_step.
	* tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
	Use scev_probably_wraps_p for computing init_is_max.
	(vrp_visit_assignment): Pass the current analyzed statement to
	adjust_range_with_scev.
	(execute_vrp): Call estimate_numbers_of_iterations for refining the
	information provided by scev analyzer.

2005-06-07  Eric Christopher  <echristo@redhat.com>

	* config/mips/predicates.md (sleu_operand): Use
	IN_RANGE to specify range of operand.

2005-06-07  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/21847
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
	-fnon-call-exceptions, also mark statements inherently
	necessary if they may throw.

2005-06-07  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
	("type"): Add "sem" to 'type' attribute.
	("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
	"sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
	"sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
	"*sync_compare_and_swap_ccsi"): New patterns.
	* config/s390/2064.md: ("z_sem"): New insn_reservation.
	* config/s390/2084.md: ("x_sem"): New insn_reservation.
	* config/s390/s390.c: (s390_compare_emitted): New global variable.
	(s390_emit_compare): Do not emit comparison again after cas.
	* config/s390/s390.h (s390_compare_emitted): Declare.

2005-06-07  Kazu Hirata  <kazu@codesourcery.com>

	* sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
	sbitmap_iter_cond, sbitmap_iter_next): New.
	* bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
	modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
	tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
	uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.

2005-06-07  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-address.c: New file.
	* Makefile.in (tree-ssa-address.o): Add.
	* expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
	INDIRECT_REFs.  Handle TARGET_MEM_REFs.
	* tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
	* tree-flow.h (struct mem_address): New.
	(struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
	(create_mem_ref, addr_for_mem_ref, get_address_description,
	maybe_fold_tmr, multiplier_allowed_in_address_p,
	multiply_by_cost): Declare.
	* tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
	* tree-pretty-print.c (dump_generic_node): Ditto.
	* tree-ssa-loop-im.c (for_each_index): Ditto.
	* tree-ssa-loop-ivopts.c (may_be_unaligned_p,
	find_interesting_uses_address): Ditto.
	(rewrite_address_base, build_addr_strip_iref): Removed.
	(struct affine_tree_combination): Moved to tree-flow.h.
	(get_ref_tag, copy_ref_info): New functions.
	(rewrite_use_address): Produce TARGET_MEM_REFs.
	(tree_ssa_iv_optimize): Do not call update_ssa
	and rewrite_into_loop_closed_ssa.
	(tree_to_aff_combination): Use build_fold_addr_expr instead of
	build_addr_strip_iref.
	(unshare_aff_combination): New function.
	(fold_affine_sum): Removed.
	(get_computation_at): Use get_computation_aff.  Unshare the result.
	(get_computation_aff, multiplier_allowed_in_address_p): New function.
	(multiply_by_cost): Exported.
	(get_address_cost): Use multiplier_allowed_in_address_p.
	* tree-ssa-operands.c (get_tmr_operands): New function.
	(get_expr_operands): Handle TARGET_MEM_REFs.
	* tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
	(build): Handle 7 arguments.
	(build7_stat): New function.
	* tree.def (TARGET_MEM_DEF): New.
	* tree.h (REF_ORIGINAL): Removed.
	(TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
	TMR_TAG, build7): New macros.
	(build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
	* tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
	* doc/c-tree.texi: Document TARGET_MEM_REF.
	* doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.

2005-06-07  Jakub Jelinek  <jakub@redhat.com>

	PR debug/21946
	* dwarf2out.c (add_loc_descr_op_piece): New function.
	(multiple_reg_loc_descriptor, concat_loc_descriptor,
	loc_descriptor): Use it.
	* var-tracking.c: Include regs.h and expr.h.
	(emit_note_insn_var_location): Skip over pieces where offset
	is smaller than previous offset plus previous piece mode size.
	Optimize adjacent hard registers or memory locations.
	* Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).

2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>

	* c-typeck.c (c_finish_if_stmt): Use void_type_node as type
	for COND_EXPR.
	* gimplify.c (gimplify_cond_expr): No need to fix up the
	type of COND_EXPRs.

2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>

	* tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
	comments.

2005-06-07  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/host-darwin.c (segv_handler): Widen the possible
	'stwux' instructions that are considered to be stack decrements.

	* rtlanal.c (subreg_offset_representable_p): Handle objects
	with holes.

2005-06-06  Uros Bizjak  <uros@kss-loka.si>

	* mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
	in call to pre_edge_lcm.

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

	* config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
	(SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
	(SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
	Likewise.
	(SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
	dwarf register number for SHmedia.
	(shmedia_fallback_frame_state): New.
	(MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.

	* config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.

2005-06-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-lex.c (lex_string): Use XOBFINISH.
	* collect2.c (extract_string, dump_file): Likewise.
	* dbxout.c (dbxout_finish_complex_stabs): Likewise.
	* gcc.c (init_spec, build_search_list, convert_filename,
	set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
	* genpreds.c (write_predicate_subfunction): Likewise.
	* genflags.c (main): Likewise.
	* read-rtl.c (mode_attr_index, apply_macro_to_string,
	join_c_conditions, read_quoted_string, read_braced_string,
	read_rtx_1): Likewise.
	* stringpool.c (ggc_alloc_string): Likewise.
	* tlink.c (obstack_fgets, recompile_files): Likewise.

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

	* intl.h (G_): New macro.
	* rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
	instead of msgid for argument name.
	* tree-ssa.c (warn_uninit): Likewise.
	* c-parser.c (c_parser_error): Likewise.
	* config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
	* config/darwin-c.c (BAD): Likewise.
	* config/c4x/c4x-c.c (BAD): Likewise.
	* c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
	* c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
	* c-common.c (c_parse_error): Likewise.
	* diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
	warning0, pedwarn, error, sorry, fatal_error, internal_error):
	Likewise.
	(fnotice): Use cmsgid instead of msgid for argument name.
	* gcov.c (fnotice): Likewise.
	* protoize.c (notice): Likewise.
	* final.c (output_operand_lossage): Likewise.
	* gcc.c (fatal, notice): Likewise.
	(error): Use gmsgid instead of msgid for argument name.
	* collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
	of msgid for argument name.
	(error): Use gmsgid instead of msgid for argument name.
	* c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
	instead of N_().
	* c-typeck.c (readonly_error, convert_for_assignment): Likewise.
	* tree-inline.c (inline_forbidden_p_1): Likewise.
	* ABOUT-GCC-NLS: Require gettext 0.14.5 or later.  Mention the new
	conventions for marking translations.
	* doc/install.texi: Mention gettext 0.14.5 or later requirement.

	* tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
	build2.

	* fold-const.c (operand_equal_p): Don't return 1, if element
	chains for 2 VECTOR_CSTs are not the same length.

	PR regression/21897
	* fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
	not all VECTOR_CST elements are given.

	* combine.c (try_combine): Use hard_regno_nregs array instead of
	HARD_REGNO_NREGS macro.
	* config/rs6000/rs6000.c (rs6000_split_multireg_move,
	rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
	* config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.

2005-06-06  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-reassoc.o: New.
	(OBJS-common): Add tree-ssa-reassoc.o
	* timevar.def: Add TV_TREE_REASSOC
	* tree-optimize.c (pass_reassoc): Add call.
	* tree-pass.h (pass_reassoc): Add.
	* tree-ssa-reassoc.c: New file.

2005-06-06  Eric Christopher  <echristo@redhat.com>

	target/21927
	* expr.c (do_store_flag): Remove check for non-negative BRANCH_COST.

2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
	HAVE_GAS_MAX_SKIP_P2ALIGN.
	(HAVE_AS_DWARF2_DEBUG_LINE): Remove.

2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.in (mips-tfile.o): Add $(srcdir)/../include prefix to
	getopt.h dependency.
	(mips-tdump.o): Likewise.

2005-06-06  Jan Hubicka  <jh@suse.cz>

	* predict.c (tree_predict_edge): Don't drop useless predictions;
	check that it is not called too late in the game.
	(gate_estimate_probability): New gate.
	(pass_profile): Gate.
	* tree-mudflap.c (mf_build_check_statement_for): Do not drop
	predictions; update CFG instead.
	* cfgrtl.c (rtl_verify_flow_info): Check that predcitions are consumed.

2005-06-06  Jie Zhang  <jie.zhang@analog.com>

	* config.gcc (bfin*-uclinux*): New.
	* config/bfin/uclinux.h: New file.

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

	* doc/md.texi (Insn Splitting): Fix some wording.

2005-06-05  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_emit_swdivsf): New function.
	(rs6000_emit_swdivdf): New function.
	* config/rs6000/rs6000.md (fres): New pattern.
	(divsf3): Add approximation through rs6000_emit_swdivsf.
	(fred): New pattern.
	(divdf3): Add approximation through rs6000_emit_swdivdf.
	* config/rs6000/rs6000-protos.h (rs6000_emit_swdivsf): Declare.
	(rs6000_emit_swdivdf): Declare.
	* config/rs6000/rs6000.opt (mswdiv): New option.
	* doc/invoke.texi (RS/6000 and PowerPC Options): Document mswdiv.

2005-06-05  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/21846
	* tree-cfg.c (replace_uses_by): Update information stored at loops.
	* tree-flow.h (substitute_in_loop_info): Declare.
	* tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
	Ensure that chrec_dont_know and chrec_known have a type.
	* tree-ssa-loop-niter.c (substitute_in_loop_info): New function.

2005-06-05  Steven Bosscher  <stevenb@suse.de>

	* config/i386/i386.c (x86_use_loop): Remove.
	* config/i386/i386.h (x86_use_loop): Remove extern decl.
	(TARGET_USE_LOOP): Remove.
	* config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
	Also remove related define_splits.

2005-06-05  Dorit Nuzman  <dorit@il.ibm.com>

	* tree-flow.h (stmt_ann_d): Move aux to ...
	(tree_ann_common_d): ... here.
	* tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
	move_computations_stmt, schedule_sm): Update references to
	aux.
	* tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
	* tree-vect-transform.c (vect_create_index_for_vector_ref): Update
	call to set_stmt_info.
	(vect_transform_loop): Likewise.
	* tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
	Likewise.

	* tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
	bool.
	(vect_mark_relevant): Takes two additional arguments - live_p and
	relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
	(vect_stmt_relevant_p): Differentiate between a live stmt and a
	relevant stmt. Return two values = live_p and relevant_p.
	(vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
	vect_stmt_relevant_p with additional arguments. Phis are no longer
	put into the worklist (analyzed seperately in analyze_scalar_cycles).
	(vect_determine_vectorization_factor): Also check for LIVE_P, because a
	stmt that is marked as irrelevant and live, cause it's only used out
	side the loop, may need to be vectorized (e.g. reduction).
	(vect_analyze_operations): Examine phis. Call
	vectorizable_live_operation for for LIVE_P stmts. Check if
	need_to_vectorize.
	(vect_analyze_scalar_cycles): Update documentation. Don't fail
	vectorization - just classify the scalar cycles created by the loop
	phis. Call vect_is_simple_reduction.
	(vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
	* tree-vect-transform.c (vect_create_index_for_vector_ref): Update
	call to set_stmt_info.
	(vect_get_vec_def_for_operand): Code reorganized - the code that
	classifies the type of use was factored out to vect_is_simple_use.
	(vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
	additional arguments.
	(vectorizable_assignment): Likewise. Also make sure the stmt is relevant
	and computes a loop_vec_def.
	(vectorizable_operation, vectorizable_load, vectorizable_condition):
	Likewise.
	(vectorizable_live_operation): New.
	(vect_transform_stmt): Handle LIVE_P stmts.
	* tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
	STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
	(new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
	(vect_is_simple_use): Determine the type of the def and return it
	in a new function argument. Consider vect_reduction_def and
	vect_induction_def, but for now these are not supported.
	(vect_is_simple_reduction): New. Empty for now.
	* tree-vectorizer.h (vect_def_type): New enum type.
	(_stmt_vec_info): Added new fields - live and _stmt_vec_info.
	(STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
	(vect_is_simple_use): New arguments added to function declaration.
	(vect_is_simple_reduction): New function declaration.
	(vectorizable_live_operation): New function declaration.

	* tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
	(vect_can_advance_ivs_p): Likewise.
	* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.

2005-06-05  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.c (mips_rtx_costs): Remove unused variable.

2005-06-05  Hans-Peter Nilsson  <hp@bitrange.com>

	PR target/21914
	* config/mmix/mmix.md ("*movdicc_real_foldable")
	("*movdfcc_real_foldable", "*bCC_foldable")
	("*bCC_inverted_foldable"): Specify DImode for register being
	compared.

2005-06-04  Roger Sayle  <roger@eyesopen.com>

	* reg-stack.c (struct block_info_def): Correct grammar typo.
	(compensate_edge): Clean-up.  Perform as little work as possible
	when src and dest stacks match.  Avoid modifying block_info.
	Reorder and simplify assertion checks.  Avoid unnecessary copying
	of regstack structure.
	(convert_regs_1): Set the done flag here...
	(convert_regs_2): ... instead of here.

2005-06-04  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/rs6000.c (no_global_regs_above): New.
	(rs6000_emit_prologue): Use it; cosmetic formatting fixes.
	(rs6000_emit_epilogue): Use it; cosmetic formatting fixes.
	(rs6000_conditional_register_usage): Don't put Darwin PIC
	register in global_regs.
	(rs6000_stack_info): Don't set lr_save_p just because Darwin
	PIC reg used.
	(rs6000_emit_prologue): Save LR in R0 around Darwin PIC setup,
	if not done by lr_save_p.
	* config/rs6000/rs6000.md (insnv1_internal1): Back out 05-18 patch.
	Use rotate instead of ashift.
	(call_indirect_nonlocal_sysv): Prefer CTR to LR.
	(call_value_indirect_nonlocal_sysv): Ditto.

2005-06-04  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (cgraph_reset_node): Break out from ...
	(cgraph_finalize_function): ... here.
	(cgraph_finalize_compilation_unit): Reset nodes where backend
	removed the body.

2005-06-04  Richard Henderson  <rth@redhat.com>

	PR target/21888
	* config/alpha/alpha.c (alpha_align_insns): Don't insert nops
	until we've passed initial ldgp.

2005-06-04  Daniel Berlin  <dberlin@dberlin.org>

	* cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
	* dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
	* expr.c (expand_var): Ditto.
	* function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
	* gimplify.c (gimplify_decl_expr): Ditto.
	(gimplify_expr): Ditto.
	* tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
	* tree.c (value_expr_for_decl): New.
	(print_value_expr_statistics): New.
	(init_ttree): Init value_expr_for_decl.
	(decl_value_expr_lookup): New.
	(decl_value_expr_insert): Ditto.
	(copy_node_stat): Copy DECL_VALUE_EXPR status.
	* tree.h (DECL_VALUE_EXPR): Use hashtable.
	(SET_DECL_VALUE_EXPR): New.
	(DECL_HAS_VALUE_EXPR_P): New.

2005-06-04  Steven Bosscher  <stevenb@suse.de>

	* lcm.c: Move all mode-switching related functions from here...
	* mode-switching.c: ...to this new file.
	* doc/passes.texi: Update accordingly.

	* basic-block.h (label_value_list): Remove extern decl.
	* cfgrtl.c (label_value_list): Remove.
	(can_delete_label_p): Don't look at it.
	* cfgcleanup.c (cleanup_cfg): Don't free it.

	* common.opt: Don't refer to non-existing flag_alias_check.

2005-06-04  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.

2005-06-04  Kazu Hirata  <kazu@codesourcery.com>

	* function.c (prologue, epilogue, sibcall_epilogue): Change
	their types to VEC(int,heap)*.
	(free_after_compilation): Free the three vectors above.
	(init_function_for_compilation, record_insns, contains,
	prologue_epilogue_contains, sibcall_epilogue_contains,
	reposition_prologue_and_epilogue_notes): Use VEC instead of
	VARRAY.  (init_function_once): Remove.
	* function.h: Remove the prototype for init_function_once.
	* toplev.c (backend_init): Don't call init_function_once.

2005-06-04  Jan Hubicka  <jh@suse.cz>

	* predict.c (tree_predict_edge): Do not predict entry edge and
	single succestor edge.

2005-06-04  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/21873
	* c-typeck.c (push_init_level): Don't pop levels without braces if
	implicit == 1.

2005-06-03  Sebastian Pop  <pop@cri.ensmp.fr>

	* tree-data-ref.c (compute_self_dependence): New function.
	(compute_all_dependences): Use it.

2005-06-03  Geoffrey Keating  <geoffk@apple.com>

	* c-parser.c (c_parser_parms_declarator): Don't use chainon().
	(c_parser_expr_list): Don't use chainon().

	* config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
	when -isysroot passed.

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

	PR c/21879
	* c-decl.c (start_function): Restore label_context_stack_se and
	label_context_stack_vm  if returning with an error.

2005-06-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* configure.ac: Check declaration for asprintf, needed by
	libiberty.h.
	* configure: Regenerate.
	* config.in: Likewise.

2005-06-03  Diego Novillo  <dnovillo@redhat.com>

	* tree-ssa-dom.c (record_edge_info): Use last_basic_block to
	allocate info array.
	* tree-vrp.c (extract_range_from_unary_expr): Set resulting
	range to varying in cast expressions that change
	TYPE_PRECISION.

2005-06-03  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.opt: Add RejectNegative to divide-breaks and
	divide-traps.

2005-06-03  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (remove_predictions_associated_with_edge): Declare.
	* cfg.c (remove_edge): Use it.
	* predict.c (remove_predictions_associated_with_edge): New function.

2005-06-03  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/rs6000.c (rs6000_conditional_register_usage):
	Clear call_realy_used_regs[r2] when ABI_AIX.

2005-06-03  Richard Guenther  <rguenth@gcc.gnu.org>

	PR middle-end/21858
	* fold-const.c (fold_binary): Fix type mismatches in folding
	of comparisons.

2005-06-03  Kazu Hirata  <kazu@codesourcery.com>

	* cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
	typos.

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

	* collect2.c (maybe_unlink): Use unlink_if_ordinary.

2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>

	* reload1.c (reload): Revert my previous patch.

2005-06-03  Nick Clifton  <nickc@redhat.com>

	* config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
	assembler.

2005-06-03  Kazu Hirata  <kazu@codesourcery.com>

	PR tree-optimization/21849
	* tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.

2005-06-02  Richard Henderson  <rth@redhat.com>

	* Makefile.in (tree-vect-generic.o): New.
	(OBJS-common, GTFILES, s-gtype): Add it.
	* tree-complex.c (build_replicated_const, vector_inner_type,
	vector_last_type, vector_last_nunits, build_word_mode_vector_type,
	elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
	do_negate, expand_vector_piecewise, expand_vector_parallel,
	expand_vector_addition, expand_vector_operation,
	type_for_widest_vector_mode, expand_vector_operations_1,
	gate_expand_vector_operations, expand_vector_operations,
	pass_lower_vector_ssa): Move to tree-vect-generic.c.
	(tree_lower_complex): Rename from tree_lower_operations.
	(pass_lower_complex): Rename from pass_pre_expand.
	* tree-vect-generic.c: New file.
	* tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
	(pass_lower_vector): New.
	* tree-optimize.c (init_tree_optimization_passes): Update to match.

2005-06-02  Richard Henderson  <rth@redhat.com>

	* modulo-sched.c (doloop_register_get): Protect against
	doloop_end not defined.

2005-06-02  Kazu Hirata  <kazu@codesourcery.com>

	* config/sh/sh.c (general_movsrc_operand,
	general_movdst_operand, arith_reg_operand, arith_reg_dest,
	logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
	fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
	xor_operand, cmp_operand, logical_operand, and_operand,
	fpscr_operand, fpul_operand, symbol_ref_operand,
	commutative_float_operator, noncommutative_float_operator,
	unary_float_operator, binary_float_operator,
	binary_logical_operator, equality_comparison_operator,
	greater_comparison_operator, less_comparison_operator,
	shift_operator, logical_operator, target_reg_operand,
	target_operand, mextr_bit_offset, extend_reg_operand,
	trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
	general_extend_operand, ua_address_operand,
	cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
	sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
	shift_count_reg_operand, shift_count_operand,
	unaligned_load_operand): Move to ...
	* config/sh/predicates.md: ... here.
	* config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
	Remove.

2005-06-02  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree.c (build_common_builtin_nodes): Fix the return type on
	__builtin_memcmp.

2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>

	* tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
	(find_interesting_uses_address): Use build_fold_addr_expr instead.
	(strip_offset_1): Likewise.
	(tree_to_aff_combination): Likewise.

2005-06-02  DJ Delorie  <dj@redhat.com>

	* convert.c (convert_to_pointer): Avoid recursion if no conversion
	is needed.

2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>

	* tree-chrec.c (chrec_fold_plus_1): Ensure we build
	binary operations with the correct types.
	* tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
	for all computation.

2005-06-02  Kazu Hirata  <kazu@codesourcery.com>

	* tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
	config/rs6000/rs6000.md: Fix comment typos.  Follow splling
	conventions.
	* doc/install.texi: Fix a typo.

2005-06-02  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (cgraph_function_and_variable_visibility): Extern
	inline functions are not local.

2005-06-02  Kazu Hirata  <kazu@codesourcery.com>

	* gimplify.c (gimplify_ctx): Change the type of case_labels to
	VEC from VARRAY.
	(gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
	of case_labels.

2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>

	* c-typeck.c (build_indirect_ref): Build INDIRECT_REF
	with correct type.

2005-06-02  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
	execute templates.
	(s390_dump_pool): Likewise.
	(s390_mainpool_start, s390_mainpool_finish): Likewise.
	(s390_chunkify_start): Likewise.
	(s390_dump_execute): Remove.
	(s390_reorg): Handle out-of-pool execute templates.

2005-06-02  Adrian Straetling  <straetling@de.ibm.com>

	* optabs.c: (expand_bool_compare_and_swap): Emit barrier after
	  unconditional jump.

2005-06-02  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_node): Maintain master clones.
	(cgraph_remove_node): Likewise.
	(availability_names): New static variable.
	(dump_cgraph_node): Dump availability.
	(dump_cgraph_varpool_node): Likewise.
	(cgraph_is_master_clone, cgraph_master_clone,
	cgraph_function_body_availability,
	cgraph_variable_initializer_availability): New functions.
	* cgraph.h (availability): New enum.
	(struct cgraph_node): Add master_clone.
	(cgraph_is_master_clone, cgraph_master_clone,
	cgraph_function_body_availability,
	cgraph_variable_initializer_availability): Declare.
	* cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
	(cgraph_remove_unreachable_nodes): Remove unreachable nodes.
	* ipa-inline.c (cgraph_decide_inlining): Do not call
	cgraph_remove_unreachable_nodes.

	* cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
	previous patch.

2005-06-02  Diego Novillo  <dnovillo@redhat.com>

	PR 21582
	* tree-vrp.c (nonnull_arg_p): New.
	(get_value_range): Call it.

2005-06-02  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
	add PROCESSOR_MAX.
	(mips_rtx_cost_data): New datatype.
	(MEMORY_MOVE_COST): Use data from structure.
	(BRANCH_COST): Ditto.
	(LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
	* config/mips/mips.md (cpu): Rework for processor_type changes.
	* config/mips/mips.c (mips_cost): New variable.
	(DEFAULT_COSTS): Define.
	(mips_rtx_cost_data): New.
	(mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
	for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
	FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
	(override_options): Set cost data.
	(mips_register_move_cost): Formatting changes.
	(bdesc_arrays): Use PROCESSOR_MAX.
	(mips_init_builtins): Ditto.

2005-06-02  Diego Novillo  <dnovillo@redhat.com>

	PR 21765
	* doc/invoke.texi: Document -ftree-vrp.

2005-06-02  Dorit Nuzman  <dorit@il.ibm.com>

	PR tree-optimization/21734
	* tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
	phi_result when current_def is not available.
	(slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
	available.

2005-06-02  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
	(TARGET_INSN_VALID_WITHIN_DOLOOP): Define.

2005-06-02  Diego Novillo  <dnovillo@redhat.com>

	* tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.

2005-06-02  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (dump_cgraph_node): Print new flags.
	(dump_cgraph_varpool_node): Likewise.
	(decide_variable_is_needed): Initialize externally_visible flag.
	* cgraph.h (cgraph_local_info): Add externally_visible flag.
	(cgraph_varpool_node): Likewise.
	(cgraph_function_flags_ready): Declare.
	* cgraph.c (cgraph_mark_local_functions): Rename to ...
	(cgraph_function_and_variable_visibility) ... this one; handle
	externally_visible flags.
	(decide_is_function_needed): Set externally_visible flag.
	(cgraph_finalize_function): Deal properly with early cleanups.
	(cgraph_optimize): Update call of
	cgraph_function_and_variable_visibility.

2005-06-02 Steven Bosscher  <stevenb@suse.de>
	   Mostafa Hagog <mustafa@il.ibm.com>

	* cfgloop.h (doloop_condition_get): Make external.
	* loop-doloop.c (doloop_condition_get): Generalize to make it
	usable in modulo-sched.c.
	* modulo-sched.c (doloop_register_get): Use
	doloop_condition_get instead of duplicating it.

2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>

	* reload1.c (reload): Undo 2005-04-20 change.  Make sure we detect
	the correct set of init_insns that need deletion.
	* local-alloc.c (update_equiv_regs): When substituting sole definition
	into sole use of a reg, delete it from liveness information.

2005-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.

2005-06-01  Diego Novillo  <dnovillo@redhat.com>

	PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
	PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
	* fold-const.c (invert_tree_comparison): Make extern.
	* tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
	(struct value_range_def): Limewise.
	(get_value_range): Remove.
	(dump_value_range): Remove.
	(dump_all_value_ranges): Remove.
	(debug_all_value_ranges): Remove.
	(vrp_evaluate_conditional): Declare.
	* tree-ssa-propagate.c (struct prop_stats_d): Add field
	num_pred_folded.
	(substitute_and_fold): Add argument use_ranges_p.
	Update all callers.
	If use_ranges_p is true, call fold_predicate_in to fold
	predicates using range information.
	Ignore ASSERT_EXPRs.
	Change debugging output to only show statements that have been
	folded.
	(replace_phi_args_in): Move debugging output code from
	substitute and fold.
	(fold_predicate_in): New local function.
	* tree-ssa-propagate.h (enum value_range_type): Move from
	tree-flow.h.
	(struct value_range_d): Likewise.
	Add field 'equiv'.
	(value_range_t): Rename from value_range.
	* tree-vrp.c (found_in_subgraph): Rename from found.
	(get_opposite_operand): Remove.
	(struct assert_locus_d): Declare.
	(assert_locus_t): Declare.
	(need_assert_for): Declare.
	(asserts_for): Declare.
	(blocks_visited): Declare.
	(vr_value): Declare.
	(set_value_range): Add argument 'equiv'.
	Don't drop to VARYING ranges that cover all values in the
	type.
	Make deep copy of equivalence set 'equiv'.
	(copy_value_range): New local function.
	(set_value_range_to_undefined): New local function.
	(compare_values): Return -2 if either value has overflowed.
	(range_includes_zero_p): New local function.
	(extract_range_from_assert): Flip the predicate code if the
	name being asserted is on the RHS of the predicate.
	Avoid creating unnecessary symbolic ranges if the comparison
	includes another name with a known numeric range.
	Update the equivalnce set of the new range when asserting
	EQ_EXPR predicates.
	(extract_range_from_ssa_name): Update the equivalence set of
	the new range with VAR.
	(extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
	If -fwrapv is used, set the resulting range to VARYING if the
	operation overflows.  Otherwise, use TYPE_MIN_VALUE and
	TYPE_MAX_VALUE to represent -INF and +INF.
	Fix handling of *_DIV_EXPR.
	(extract_range_from_unary_expr): Handle MINUS_EXPR and
	ABS_EXPR properly by switching the range around if necessary.
	(extract_range_from_comparison): New local function.
	(extract_range_from_expr): Call it.
	(adjust_range_with_scev): Do not adjust the range if using
	wrapping arithmetic (-fwrapv).
	(dump_value_range): Also show equivalence set.
	Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
	(build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
	(infer_value_range): Change return value to bool.
	Add arguments 'comp_code_p' and 'val_p'.
	Do not attempt to infer ranges from statements that may throw.
	Store the comparison code in comp_code_p.
	Store the other operand to be used in the predicate in val_p.
	(dump_asserts_for): New.
	(debug_asserts_for): New.
	(dump_all_asserts): New.
	(debug_all_asserts): New.
	(register_new_assert_for): New.
	(register_edge_assert_for): New.
	(find_conditional_asserts): New.
	(find_assert_locations): New.
	(process_assert_insertions_for): New.
	(process_assert_insertions): New.
	(insert_range_assertions): Initialize found_in_subgraph,
	blocks_visited, need_assert_for and asserts_for.
	Call find_assert_locations and process_assert_insertions.
	(remove_range_assertions): Add more documentation.
	(vrp_initialize): Change return type to void.
	Do not try to guess if running VRP is worth it.
	(compare_name_with_value): New.
	(compare_names): New.
	(vrp_evaluate_conditional): Add argument 'use_equiv_p'.  If
	use_equiv_p is true, call compare_names and
	compare_name_with_value to compare all the ranges for every
	name in the equivalence set of the predicate operands.
	Update all callers.
	(vrp_meet): Try harder not to derive a VARYING range.
	If two values meet, the resulting equivalence set is the
	intersection of the two equivalence sets.
	(vrp_visit_phi_node): Call copy_value_range to get the current
	range information of the LHS.
	(vrp_finalize): Create a value vector representing all the
	names that ended up with exactly one value in their range.
	Call substitute_and_fold.
	(execute_vrp): Document equivalence sets in ranges.
	* tree.h (SSA_NAME_VALUE_RANGE): Remove.
	(struct tree_ssa_name): Remove field value_range.
	(invert_tree_comparison): Declare.

2005-06-01  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/21839

	* gimplify.c (zero_sized_field_decl): New function.
	(gimplify_init_ctor_eval): Use it.

2005-06-01  Josh Conner <jconner@apple.com>

	PR 21478
	* gimplify.c (gimplify_init_constructor): Don't spill initializer
	to read-only memory if it's sparse.

2005-06-01  Ramana Radhakrishnan  <ramana@codito.com>

	* doc/rtl.texi: Remove references to NOTE_INSN_SETJMP.
	Add documentation for REG_SETJMP

2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>

	* stmt.c (expand_case): Use build_int_cst.
	(node_has_low_bound): Likewise, and correct type mismatch.
	(node_has_high_bound): Likewise.
	* fold-const.c (fold_binary): Ensure we build trees
	with the correct types - undo what STRIP_NOPS possibly did.

2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>

	* tree.h (fold_indirect_ref_1): Export from fold-const.c.
	* fold-const.c (fold_indirect_ref_1): No longer static.
	* tree-inline.c (copy_body_r): Use fold_indirect_ref_1 for
	folding, if possible.

2005-06-01  Joseph S. Myers  <joseph@codesourcery.com>

	* common.opt (fjump-tables): New.
	* doc/invoke.texi (-fno-jump-tables): Document.
	* stmt.c (expand_end_case_type): Do not emit jump tables unless
	flag_jump_tables.

2005-06-01  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.md (bunordered, bordered, bungt, bunlt, bunge, bunle, buneq)
	(bltgt, arm_buneq, arm_bltgt, sunordered, sordered, sungt, sunge)
	(sunlt, sunle): Enable patterns on VFP.

	* arm.md (attribute 'type'): Add new types - f_loads floadd, f_stores,
	f_stored, f_flag, f_cvt.
	(generic_sched): No-longer used for the arm1020e and arm1022e cores.
	Include arm1020e.md.
	* vfp.md (fmstat): New cpu unit.  Add an exclusion set between it and
	the ds and fmac pipelines.  Re-work all load and store patterns and
	all conversion patterns to use new attributes.  Adjust reservation
	descriptions accordingly.
	* arm1020e.md: New file.
	* t-arm: Add dependency.

2005-06-01  Jan Hubicka  <jh@suse.cz>

	* except.c (struct eh_region): Kill unused fields.
	* basic-block.h (struct basic_block_def): Likewise.

2005-06-01  J"orn Rennecke <joern.rennecke@st.com>

	PR rtl-optimization/21767
	* rtl.h (function_invariant_p): Re-add declaration.
	* reload1.c (function_invariant_p): No longer static.
	* ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that
	might have become invalid.

2005-06-01  Jakub Jelinek  <jakub@redhat.com>

	PR c/21536
	PR c/20760
	* gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
	on variable sizes types if a decl is a pointer to a VLA.
	(gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
	Call gimplify_type_sizes on aggregate fields.  Prevent infinite
	recursion.

	* fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST.

	* config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
	_mm_set_ps, _mm_setr_ps): Add __extension__.
	* config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
	_mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
	_mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
	Likewise.
	(_mm_clflush): Don't use return in void function.

	* config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
	_mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
	Use __inline instead of inline.

2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>

	* fold-const.c (fold_binary): Fix types in strlen vs.
	zero comparison folding.

2005-06-01  Richard Henderson  <rth@redhat.com>

	* configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
	* config.in, configure: Rebuild.
	* config/alpha/alpha.c (print_operand): Add 'j'.
	* alpha.md (divmodsi_internal_er_1): Use it.
	(divmoddi_internal_er_1): Likewise.

2005-06-01  Richard Sandiford  <rsandifo@redhat.com>

	* system.h (TARGET_OPTIONS, TARGET_SWITCHES): Poison.
	* opts.h (print_filtered_help): Delete.
	* opts.c (handle_option, decode_options): Remove calls to
	set_target_switch.
	(print_target_help): New function.
	(common_option, print_help): Call print_target_help instead of
	display_target_options.
	(print_filtered_help): Make static.
	* toplev.h (display_target_options, set_target_switch): Delete.
	* toplev.c (target_switches, target_options, display_target_options)
	(set_target_switch): Delete.
	(print_switch_values): Remove handling of TARGET_SWITCHES and
	TARGET_OPTIONS.
	(default_get_pch_validity): Likewise.  Only treat target_flags
	specially if targetm.check_pch_target_flags is nonnull.
	(pch_option_mismatch): New function.
	(default_pch_valid_p): Use it.  Remove handling of TARGET_SWITCHES
	and TARGET_OPTIONS.  Only treat target_flags specially if
	targetm.check_pch_target_flags is nonnull.
	* config/ia64/ia64.c (ia64_override_options): Don't mention
	TARGET_OPTIONS in comment.
	* config/m68k/m68k-none.h (CC1_SPEC): Likewise.
	* doc/invoke.texi: Remove a reference to TARGET_SWITCHES.
	* doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS): Don't mention the
	interaction with TARGET_SWITCHES.
	(TARGET_@var{featurename}, TARGET_SWITCHES, TARGET_OPTIONS): Delete.

2005-06-01  Richard Sandiford  <rsandifo@redhat.com>

	* config/sh/sh.c (multcosts): Check sh_multcost rather than
	sh_multcost_str.
	(sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str.
	(sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc)
	(cut2_workaround_str): Delete.
	* config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS)
	(TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str)
	(sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete.
	* config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=)
	(mgettrcost=, multcost=): New options.

2005-06-01  Richard Sandiford  <rsandifo@redhat.com>

	* opts.h (cl_option_state): New structure.
	(get_option_state): Declare.
	* opts.c (get_option_state): New function.
	* toplev.c (option_affects_pch_p): New function.
	(default_get_pch_validity): Store the state of all options for which
	option_affects_pch_p returns true.
	(default_pch_valid_p): Check the state of those options here.
	Only check target_flags separately if targetm.check_pch_target_Flags
	is nonnull or if TARGET_SWITCHES is defined.

2005-06-01  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter
	names.

2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>

	* modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138.

2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>

	* gcse.c (compute_transp, load_killed_in_block): Use
	MEM_READONLY_P.

2005-06-01  David.Billinghurst  <David.Billinghurst@riotinto.com>

	PR target/21854
	* config/mips/mips-protos.h: Declare mips_use_ins_ext_p

2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* errors.h (warning, error, fatal, internal_error): Add printf
	attribute.
	* genmodes.c (make_vector_mode): Fix format arguments.

2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
	config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
	lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
	tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
	tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
	tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
	tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
	tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
	tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
	tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
	tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
	tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
	tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
	errors.h and include toplev.h if necessary.

	* rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
	errors.h otherwise include toplev.h.

	* Makefile.in: Update dependencies.

2005-06-01  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/cygming.h (NO_PROFILE_COUNTERS): Define.

2005-05-31  Geoffrey Keating  <geoffk@geoffk.org>

	* config/rs6000/rs6000.md (sync_boolcshort_internal): New.
	* config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
	be complemented for big-endian.  Mask for AND must be rotated,
	not shifted.  Handle short operands with NOT on the memory
	operation.

2005-05-30  Daniel Berlin  <dberlin@dberlin.org>

	* c-objc-common.c (c_tree_printer): Check flag before hashtable.
	Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR.
	* dwarf2out.c (dwarf2out_var_location): Ditto.
	* toplev.c (default_tree_printer): Ditto.
	* tree-outof-ssa.c (create_temp): Ditto.
	* tree-sra.c (instantiate_element): Ditto.
	* var-tracking.c (track_expr_p): Ditto.
	* tree.c (struct tree_map): New structure.
	(debug_expr_for_decl): New.
	(tree_map_eq): New function.
	(tree_map_hash): Ditto.
	(tree_map_marked_p): Ditto.
	(print_debug_expr_statistics): Ditto.
	(decl_debug_expr_lookup): Ditto.
	(decl_debug_expr_insert): Ditto.
	(dump_tree_statistics): Dump debug_expr hashtable stats.
	* tree.h (DECL_DEBUG_EXPR): Change
	(SET_DECL_DEBUG_EXPR): Add.

2005-06-01  Alan Modra  <amodra@bigpond.net.au>

	* configure.ac: Add --enable-secureplt.
	(HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
	* config.in: Regenerate.
	* configure: Regenerate.
	* config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
	rs6000/secureplt.h to tm_file when enable_secureplt.
	* doc/invoke.texi (msecure-plt, mbss-plt): Document.
	* doc/install.texi: Document --enable-targets and --enable-secureplt.
	Correct xrefs to "Using the GNU Compiler Collection (GCC)".
	* config/rs6000/secureplt.h: New file.
	* config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
	(SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
	assembler support.
	(CC1_SECURE_PLT_DEFAULT_SPEC): Define.
	(CC1_SPEC): Delete duplicate mno-sdata.  Invoke cc1_secure_plt_default.
	(SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
	* config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
	* config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
	* config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
	TARGET_SECURE_PLT got register load sequence.
	(rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
	TARGET_SECURE_PLT.
	(rs6000_elf_declare_function_name): Don't emit toc address offset
	word when TARGET_SECURE_PLT.
	* config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
	(load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
	(load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
	(call, call_value): Mark pic_offset_table_rtx used for sysv pic and
	TARGET_SECURE_PLT.
	(call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
	sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
	and -fPIC.
	* config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
	(__trampoline_setup): Likewise.  Init r30 before plt call.

2005-05-31  DJ Delorie  <dj@redhat.com>

	* expr.c (convert_move): When a partial_int requires multiple
	conversion steps, make sure successive steps convert the
	intermediate value, not the original value.

	* expmed.c (expand_mult): Convert partial_int multiplies to
	shift/add combinations too.

	* genmodes.c (mode_data): Add wider_2x.
	(calc_wider_mode): Calculate twice-wider mode too.
	(emit_mode_wider): Emit twice-wider mode too.
	* machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
	* expr.c (expand_expr_real_1): Use it for expanding
	multiplies.

2005-05-31  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/21817
	* tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.

2005-05-31  Pat Haugen  <pthaugen@us.ibm.com>

	* loop.c (loop_invariant_p, valid_initial_value_p): Revert last
	change.

2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/20931
	PR middle-end/20946
	* fold-const.c (fold_checksum_tree): Copy types also if
	TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
	Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
	first.
	Tail recurse TREE_LIST's TREE_CHAIN.

2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/21732
	* tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
	SSA_NAME twice and cause the loop to become finite.  Remove the test
	for val.

2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional
	expression.

2005-05-31  Richard Sandiford  <rsandifo@redhat.com>

	* doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak
	the documentation to make it more future-proof.
	(TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook.
	* target.h (gcc_target): Add check_pch_target_flags.
	* target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro.
	(TARGET_INITIALIZER): Include it.
	* toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags.
	* config/sh/sh-protos.h (sh_pch_valid_p): Delete.
	* config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete.
	(sh_check_pch_target_flags): New function.
	(TARGET_CHECK_PCH_TARGET_FLAGS): Override default.

2005-05-31  Richard Guenther  <rguenth@gcc.gnu.org>

	* fold-const.c (extract_array_ref): Handle more cases,
	do some useful canonicalization of the base.
	(fold_binary): Explicitly deal with arrays of zero-sized
	structures during folding of &a[i] == &a[j].

2005-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/install.texi (sparc-sun-solaris2*): Update note
	about Sun bug 4910101.
	(sparc-sun-solaris2.7): Document bootstrap
	failure with Sun WorkShop 6 99/08/18 as.

2005-05-30  Pat Haugen  <pthaugen@us.ibm.com>

	* loop.c (loop_invariant_p, valid_initial_value_p): Use
	regs_invalidated_by_call instead of call_used_regs.

2005-05-30  Paolo Carlini  <pcarlini@suse.de>

	PR middle-end/21743
	* builtins.def (BUILT_IN_CLOG, BUILT_IN_CLOGF, BUILT_IN_CLOGL):
	Enable.
	* doc/extend.texi: Add clog, clogf, clogl.

2005-05-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/20303
	* c-pragma.c: Include "vec.h".
	(handle_pragma_visibility): Use VEC.

	* doc/invoke.texi: Remove the nested visibility push limit.

2005-05-30  Roger Sayle  <roger@eyesopen.com>

	PR rtl-optimization/15422
	* reg-stack.c (starting_stack_p): New static global.
	(straighten_stack): Delete prototype. Change to update the stack
	before the current insn.
	(subst_stack_regs): Update call to straighten stack.
	(emit_swap_insn): Delete prototype.  For the first insn in a
	basic block, update stack_in instead of emitting a real swap.
	(change_stack): When changing the stack before the first insn
	in a basic block, update stack_in instead of emitting real code.
	(compensate_edges): Clear starting_stack_p during compensation.
	(convert_regs_1): Keep track of starting_stack_p whilst processing
	a basic block.

2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-ccp.c (const_val): Make it static.

2005-05-29  Geoffrey Keating  <geoffk@apple.com>

	PR target/21761
	* config/rs6000/rs6000.md: Remove stray TARGET_32BIT from
	pattern involving `:P'.

	* Makefile.in (install-cpp): Depend on installdirs.

2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-outof-ssa.c (_elim_graph): Change the type of edge_list
	to VEC(int,heap)*.
	(new_elim_graph, clear_elim_graph, delete_elim_graph,
	elim_graph_add_edge, elim_graph_remove_succ_edge,
	FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED): Use VEC
	instead of VARRAY.

2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>

	* cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c,
	opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c,
	tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and
	follow spelling conventions in error/dump messages.

2005-05-29  Roger Sayle  <roger@eyesopen.com>
	    Richard Henderson  <rth@redhat.com>

	* ifcvt.c (noce_emit_move_insn): Construct a SET pattern directly
	if the RHS isn't suitable for calling emit_move_insn.

2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-ccp.c (ccp_fold): Return immediately after calling
	fold_unary and fold_binary.

2005-05-29  Roger Sayle  <roger@eyesopen.com>

	* reg-stack.c (propagate_stack): Always copy the source stack to
	the destination.  This routine is now only called when this is safe.
	(better_edge): New function split out from convert_regs_1 to
	determine which of two edges is better to propagate across.
	(convert_regs_1): We need only search for a best edge if the
	stack layout hasn't been defined yet.  Use better_edge to help
	find beste.  No longer traverse unnecessary edges.

2005-05-29  Keith Besaw  <kbesaw@us.ibm.com>

	* tree-ssa-alias.c (new_type_alias): New procedure to
	create a type memory tag for a pointer with a may-alias
	set determined from a variable declaration.
	* tree-flow.h: export declaration of new_type_alias
	* tree-optimize.c (init_tree_optimization_passes): document
	that pass_may_alias cannot be called after pass_vectorize.
	* tree-vect-transform (vect_create_data_ref_ptr): Call
	new_type_alias when an type memory tag isn't available
	for a reference.
	(vectorizable_store): Use copy_virtual_operands to update
	virtual defs in place (so that loop_version can be called).
	Call mark_for_renaming for the virtual defs in case peeling
	is done and virtual uses outside the loop need to be updated.

2005-05-29  Dorit Naishlos  <dorit@il.ibm.com>

	PR tree-optimization/21639
	* tree-complex.c (pass_lower_vector_s): Remove TODO_ggc_collect.

2005-05-29  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/21562
	* cfgexpand.c (construct_init_block): Deal properly with the case
	of entry edge not pointing to very first basic block.

2005-05-28  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-ccp.c (ccp_fold): Remove code that produces
	non-gimple min invariant.

	* Makefile.in (OBJS-common): Add tree-cfgcleanup.o.
	* tree-flow.h: Add prototypes for start_recording_case_labels
	and end_recording_case_labels.
	* tree-cfg.c (start_recording_case_labels,
	end_recording_case_labels): Export.
	(cleanup_tree_cfg_loop, modified_noreturn_calls,
	cleanup_control_flow, cleanup_control_expr_graph,
	remove_fallthru_edge, phi_alternatives_equal,
	tree_forwarder_block_p, has_abnormal_incoming_edge_p,
	remove_forwarder_block, cleanup_forwarder_blocks,
	remove_forwarder_block_with_phi, merge_phi_nodes,
	gate_merge_phi, pass_merge_phi): Move to ...
	* tree-cfgcleanup.c: ... here.

	* basic-block.h: Remove forward declaration of bb_ann_d.

2005-05-28  Jan Hubicka  <jh@suse.cz>

	* tree-ssa-threadupdate.c: (create_edge_and_update_destination_phis):
	Update profile.
	* value-prof.c (tree_divmod_fixed_value_transform): Be more verbose in
	debug output.
	(tree_mod_subtract): Fix profile updating code.
	(tree_divmod_values_to_profile): Do not produce useless value profilers
	for divisions.

2005-05-28  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-dom.c (vrp_element_p): Define.
	(vrp_hash_elt): Change the type of records to
	VEC(vrp_element_p,heap).
	(vrp_free): New.
	(tree_ssa_dominator_optimize): Pass vrp_free to htab_create.
	Update uses of VRP records.
	(simplify_cond_and_lookup_avail_expr, record_range): Update
	uses of VRP records.

	* tree-inline.c (cfun_stack): Change the type to
	VEC(function_p,heap).
	(push_cfun, pop_cfun): Use VEC instead of VARRAY.

2005-05-27  Ian Lance Taylor  <ian@airs.com>

	* c-decl.c (add_stmt): Add C frontend specific version.
	(stmts_are_full_exprs_p): Remove.
	* c-common.h (STMT_IS_FULL_EXPR_P): Remove.
	(stmts_are_full_exprs_p): Don't declare.
	* c-semantics.c (add_stmt): Remove.

2005-05-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/mips/mips-protos.h (mips_declare_object): Add printf
	attribute.
	* config/mips/mips.c (mips_declare_object_name): Fix format
	argument.

2005-05-27  Roger Sayle  <roger@eyesopen.com>

	* reg-stack.c (compensate_edge): Remove original prototype.
	(propagate_stack): New function to copy the stack layout
	at the start of a basic block from the layout at the end of
	one of its predecessors.
	(compensate_edge): Assume that both source and destination
	blocks have already had their stack layouts defined.
	(compensate_edges): Traverse all non-entry edges in the CFG
	and call compensate_edge on each in turn.
	(convert_regs_1): Change return type to void.  Call
	propagate_stack instead of compensate_edge.
	(convert_regs_2): Change return type to void.  Update call
	to convert_regs_1 to ignore the (now void) return value.
	(convert_regs): Update calls to convert_regs_2 to ignore
	the (now void) return value.  After all the basic blocks have
	been processed, call compensate_edges to actually emit new
	insns.
	(reg_to_stack): Initialize the aux info for each basic block
	with FOR_EACH_BB instead of which FOR_EACH_BB_REVERSE.

2005-05-28  Jan Hubicka  <jh@suse.cz>

	* except.c (can_throw_internal_1, can_throw_external_1): Add
	"is_resx" argument.
	(can_throw_external, can_throw_internal): Bring into sync wrt
	dealing resx.
	* except.h (can_throw_internal_1, can_throw_external_1): Update
	prototype.
	* tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
	Deal properly with resx.

2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>

	* basic-block.h (basic_block_def): Add phi_nodes and
	predictions.  Remove tree_annotations.
	* predict.c (tree_predicted_by_p, tree_predict_edge,
	combine_predictions_for_bb): Adjust references to predictions.
	* tree-cfg.c (init_empty_tree_cfg, create_bb): Don't call
	create_block_annotation.
	(create_block_annotation, free_blocks_annotatios,
	clear_blocks_annotations): Remove.
	(dump_cfg_stats): Don't print out the memory spent on
	bb_ann_d.
	(delete_tree_cfg_annotations): Don't call free_blocks_annotations.
	* tree-flow-inline.h (bb_ann): Remove.
	(phi_nodes, set_phi_nodes): Update references to phi_nodes.
	* tree-flow.h (bb_ann_d): Remove.
	* tree-if-conv.c (process_phi_nodes): Update a reference to
	phi_nodes.
	* tree-phinodes.c (reserve_phi_args_for_new_edge,
	create_phi_node, remove_phi_node): Likewise.
	* tree-pretty-print.c (dump_generic_bb_buff): Don't call bb_ann.
	* tree-ssa-dom.c (threaded_blocks): New.
	(tree_ssa_dominator_optimize): Initialize, clear, and free
	threaded_blocks. Update a call to thread_through_all_blocks.
	(thread_across_edge): Use threaded_blocks instead of setting
	incoming_edge_threaded.
	* tree-ssa-threadupdate.c (threaded_through_all_blocks): Take
	a bitmap of blocks that are threaded through.
	* tree.h: Move the prototype of threaded_through_blocks to
	tree-flow.h.

	* domwalk.c (walk_dominator_tree, init_walk_dominator_tree,
	fini_walk_dominator_tree): Use VEC instead of VARRAY.
	* domwalk.h (dom_walk_data): Change the type of
	block_data_stack and free_block_data to VEC(void_p,heap)*.
	* tree-ssa-dse.c (dse_initialize_block_local_data,
	dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use
	VEC instead of VARRAY.

2005-05-27  Jan Hubicka  <jh@suse.cz>

	* cgraph.c: Include tree-gimple.h
	(cgraph_edge): Rename expr to stmt.
	(cgraph_create_edge): Likewise.
	(cgraph_clone_node): Likewise.
	* cgraph.h (cgraph_node): Use call_stmt instead of call_expr.
	* cgraphunit.c (record_call_1): Rename to ...
	(record_reference): ... this one; do not build edges.
	(cgraph_varpool_analyze_pending_decls): Call record_reference directly.
	(current_basic_block): Kill.
	(cgraph_create_edges): Rewrite to work on gimple statements nicely.
	(verify_cgraph_node): Likewise.
	* tree-inline.c (copy_body_r): Do not mess up with cgraph edges.
	(copy_bb): Mess up with cgraph edges here; simplify EH handling.
	(copy_edges_for_bb): Simplify EH handling.
	(expand_call_inline): Pass statement to cgraph_edge and
	cgraph_create_edge.

2005-05-27  Richard Guenther  <rguenth@gcc.gnu.org>

	* tree-inline.c (copy_body_r): Manually fold *& to deal
	with ADDR_EXPRs with mismatched types for now.

	* gimplify.c (fold_indirect_ref_rhs): New function.
	(gimplify_modify_expr_rhs): Use it instead of pessimistic
	fold_indirect_ref.

	* fold-const.c (fold_indirect_ref_1): Add type argument;
	make sure the resulting expression is of this type.
	(build_fold_indirect_ref, fold_indirect_ref): Adjust callers.

2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/21658
	* tree-ssa-ccp.c (ccp_fold): Call fold_binary instead of
	fold_binary_to_constant.  Likewise, call fold_unary instead of
	fold_unary_to_constant.

2005-05-27  Nathan Sidwell  <nathan@codesourcery.com>

	* vec.h: Implement integral type vector specialization.
	(VEC_T): Define a non-GTY structure.
	(VEC_T_GTY): Define a GTY structure.
	(VEC_TA): Rename to ...
	(VEC_TA_GTY): ... here.
	(DEF_VEC_I, DEF_VEC_ALLOC_I): New.
	(DEF_VEC_P, DEF_VEC_ALLOC_P): Adjust.
	(DEF_VEC_FUNC_P, DEF_VEC_ALLOC_FUNC_P): New, broken out of
	DEF_VEC_P and DEF_VEC_ALLOC_P.
	(DEF_VEC_O, DEF_VEC_ALLOC_O): Adjust.
	(DEF_VEC_FUNC_O, DEF_VEC_ALLOC_FUNC_O): New, broken out of
	DEF_VEC_O and DEF_VEC_ALLOC_O.
	* global.c: Use DEF_VEC_I, DEF_VEC_ALLOC_I.
	* lambda-code.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-ssa-live.c: Likewise.

2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-into-ssa.c (update_ssa): Ensure that the operand cache
	is up-to-date.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
	update_stmt_if_modified before calling update_ssa.

2005-05-27  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/rs6000/t-rtems: Remove roe multilib variant.

2005-05-26  Roger Sayle  <roger@eyesopen.com>

	PR tree-optimization/9814
	* ifcvt.c (noce_emit_move_insn): If we fail to recognize the move
	instruction, add the necessary clobbers by re-expanding the RTL
	for arithmetic operations via optab.c's expand_unop/expand_binop.
	(noce_try_bitop): New function to optimize bit manipulation idioms
	of the form "if (x & C) x = x op C" and "if (!(x & C) x = x op C".
	(noce_process_if_block): Call noce_try_bitop.

2005-05-26  Roger Sayle  <roger@eyesopen.com>

	* reg-stack.c (convert_regs_entry, convert_regs_exit,
	convert_regs_1, convert_regs_2, convert_regs): Delete prototypes.
	(reg_to_stack): Move to end of the file.  Initialize the per
	basic block information here, instead of...
	(convert_regs_entry): Here.
	(convert_regs): Change unused return type to void.

2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>

	* c-pch.c, timevar.c, timevar.h, unwind-compat.c,
	unwind-dw2-fde-compat.c, unwind-dw2-fde.c, config/mmix/mmix.h,
	config/rs6000/eabispe.h, config/rs6000/lynx.h,
	config/sh/elf.h, config/sh/symbian-pre.h,
	config/sparc/sparc-protos.h: Update copyright.

2005-05-26  Mike Stump  <mrs@apple.com>

	* darwin.h (ASM_OUTPUT_LABELREF): Handle quoted non-lazy pointers
	for Objective-C++.

2005-05-26  Richard Guenther  <rguenth@gcc.gnu.org>

	* tree-ssa-forwprop.c (forward_propagate_addr_expr):
	See through ADDR_EXPR in finding place to propagate into.

2005-05-26  Kazu Hirata  <kazu@cs.umass.edu>

	* c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h,
	cfgrtl.c, cgraphunit.c, ddg.c, expr.h, gcse.c, ggc-page.c,
	ggc-zone.c, gimplify.c, ipa-inline.c, longlong.h, targhooks.c,
	tree-flow-inline.h, tree-pass.h, tree-ssa-dse.c,
	tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
	tree-ssa-operands.c, tree-vect-analyze.c,
	tree-vect-transform.c, tree-vectorizer.c, tree.c,
	config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
	config/frv/frv.md, config/i386/i386.c, config/i386/sse.md,
	config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
	config/mcore/mcore.c, config/mips/mips.c, config/mips/mips.md,
	config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
	config/rs6000/rs6000.h, config/sh/sh.c, config/sh/sh.md,
	config/sh/ushmedia.h, config/sparc/sparc.c,
	config/sparc/sparc.md, config/stormy16/stormy-abi: Fix comment
	typos.  Follow spelling conventions.
	* doc/invoke.texi, doc/tm.texi, doc/tree-ssa.texi: Fix typos.
	Follow spelling conventions.

2005-05-26  David Ung  <davidu@mips.com>

	* config/mips/mips.c (mips_use_ins_ext_p): New helper function
	that determines whether the MIPS32/64 R2 ext/ins should be used.
	* config/mips/mips.h (ISA_HAS_EXT_INS): New macro.
	* config/mips/mips.md (extzv): Changed predicate for operand to
	nonimmediate_operand. Add code to generate insn patterns for
	extzvsi and extzvdi.
	(extzv<mode>): New pattern to match mips32/64 r2 ext insn.
	(insv): Similarly for insertion.
	(insv<mode>): Similarly.

2005-05-26  Paolo Bonzini  <bonzini@gnu.org>

	* simplify-rtx.c (avoid_constant_pool_reference): Support
	offsetted addresses in the constant pool.

2005-05-26  Paolo Bonzini  <bonzini@gnu.org>

	* df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
	* df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.

2005-05-26  Jakub Jelinek  <jakub@redhat.com>

	PR target/21716
	* reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
	found in the basic block and last insn in the basic block is not
	INSN_P.  Remove explicit unspec numbers that are no longer valid
	from comments.

2005-05-26  Paolo Bonzini  <bonzini@gnu.org>

	* tree-vect-transform.c (vectorizable_operation): Try word_mode
	vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even
	if a vector mode is available.

2005-05-25  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/21709
	* fold-const.c (const_binop): Check for division by zero during
	complex division.

2005-05-26  Ian Lance Taylor  <ian@airs.com>

	* reload1.c (verify_initial_elim_offsets): Add braces to avoid
	having a declaration after a statement.

2005-05-26  Richard Sandiford  <rsandifo@redhat.com>

	* opt-functions.awk (var_type): New function.
	(var_set): Use CLVC_STRING if var_type returns "const char *".
	* opth-gen.awk: Use var_type to find out the types of variables.
	Don't print comments above each "extern" definition.
	* optc-gen.awk: Use var_type in the same way.
	* opts.h (cl_var_cond): Rename to...
	(cl_var_type): ...this.  Add CLVC_STRING.
	(cl_option): Make "flag_var" a "void *" pointer.  Replace "var_cond"
	with "var_type".
	* opts.c (handle_option, option_enabled): Update after above name
	change.  Cast flag_var before using it.  Handle CLVC_STRING.

	* config/alpha/alpha.h (alpha_tls_size): Delete.
	* config/alpha/alpha.c (alpha_tls_size, alpha_cpu_string)
	(alpha_tune_string, alpha_tp_string, alpha_fprm_string)
	(alpha_fptm_string, alpha_mlat_string): Delete.
	(alpha_handle_option): Don't set the above variables here.  Use the
	integer argument to check the validity of -mtls-size=.
	* config/alpha/alpha.opt (mcpu=, mtune=, mfp-rounding-mode=)
	(mfp-trap-mode=, mtrap-precision=, mmemory-latency=): Add Var()s.
	(mtls-size=): Likewise.  Convert to a UInteger and initialize the
	variable to 32.

	* config/arc/arc.c (arc_cpu_string, arc_text_string)
	(arc_data_string, arc_rodata_string): Delete.
	(arc_handle_option): Don't set the above variables here.
	* config/arc/arc.opt (mcpu=, mtext=, mdata=, mrodata=): Add Var()s
	and initialize them.

	* config/arm/arm.c (target_fpu_name, target_fpe_name)
	(target_float_abi_name, target_abi_name, structure_size_string)
	(arm_pic_register_string): Delete.
	(arm_handle_option): Don't set the above variables here, except
	in the handling of -mhard-float and -msoft-float.
	* config/arm/arm.opt (mabi=, mfloat-abi=, mfp=, mfpe=, mfpu=)
	(mpic-register=, mstructure-size-boundary=): Add Var()s.

	* config/avr/avr.c (avr_init_stack, avr_mcu_name, TARGET_HANDLE_OPTION)
	(avr_handle_option): Delete.
	* config/avr/avr.opt (mmcu=, minit-stack=): Add Var()s and initialize
	them.

	* config/bfin/bfin.c (bfin_library_id): Delete.
	(bfin_handle_option): Don't set it.
	* config/bfin/bfin.opt (mshared-library-id=): Add Var().

	* config/c4x/c4x.h (c4x_rpts_cycles): Delete.
	* config/c4x/c4x.c (c4x_rpts_cycles): Delete.
	(c4x_handle_option): Don't set c4x_rpts_cycles here.
	* config/c4x/c4x.opt (mrpts=): Add Var().

	* config/cris/aout.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't set
	cris_elinux_stacksize_str here.
	* config/cris/aout.opt (melinux-stacksize=): Add Var().
	* config/cris/cris.h (cris_max_stackframe_str, cris_cpu_str)
	(cris_tune_str, cris_elinux_stacksize_str): Delete.
	* config/cris/cris.c (cris_max_stackframe_str, cris_cpu_str)
	(cris_tune_str, cris_elinux_stacksize_str): Delete.
	(cris_handle_option): Don't set the above variables here.
	* config/cris/cris.opt (mcpu=, march=, mtune=, mmax-stackframe=)
	(max-stackframe=): Add Var()s.

	* config/i386/i386.h (ix86_tune_string, ix86_arch_string): Delete.
	* config/i386/i386.c (ix86_cmodel_string, ix86_asm_string)
	(ix86_tls_dialect_string, ix86_tune_string, ix86_arch_string)
	(ix86_fpmath_string, ix86_regparm_string, ix86_align_loops_string)
	(ix86_align_jumps_string, ix86_preferred_stack_boundary_string)
	(ix86_branch_cost_string, ix86_align_funcs_string): Delete.
	(ix86_handle_option): Don't set the above variables here.
	* config/i386/i386.opt (malign-functions=, malign-jumps=)
	(malign-loops=, march=, masm=, mbranch-cost=, mcmodel=, mfpmath=)
	(mpreferred-stack-boundary=, mregparm=, mtls-dialect=, mtune=): Add
	Var()s.

	* config/ia64/ia64.h (ia64_tls_size): Delete.
	* config/ia64/ia64.c (ia64_tls_size): Delete.
	(ia64_handle_option): Treat -mtls-size= as a UInteger option,
	reading the integer argument from the "value" parameter.  Don't
	set ia64_tls_size here.
	* config/ia64/ia64.opt (mtls-size=): Turn into a UInteger option.
	Add Var() and Init().

	* config/m32r/m32r.h (m32r_cache_flush_func): Delete.
	(m32r_cache_flush_trap): Delete.
	* config/m32r/m32r.c (m32r_cache_flush_func): Delete.
	(m32r_cache_flush_trap): Delete.
	(m32r_handle_option): Don't set the above variables when handling
	-mflush-func= and -mflush-trap=.
	* config/m32r/m32r.opt (-mflush-func=, -mflush-trap=): Add Var()s
	and Init()s.

	* config/mips/mips.h (mips_cache_flush_func): Delete.
	* config/mips/mips.c (mips_arch_string, mips_tune_string)
	(mips_cache_flush_func): Delete.
	(mips_handle_option): Don't set the above variables when handling
	-march=, -mtune= and -mflush-func=.
	* config/mips/mips.opt (march=, mflush-func=, mtune=): Add Var()s.

	* config/s390/s390.c (s390_arch_string): Delete.
	(s390_handle_option): Don't set it here.
	* config/s390/s390.opt (march=): Add Var().

	* config/sparc/sparc.h (sparc_cmodel_string): Delete.
	* config/sparc/sparc.c (sparc_cmodel_string): Delete.
	(sparc_handle_option): Don't set it here.
	* config/sparc/sparc.opt (mcmodel=): Add Var().

2005-05-25  Roger Sayle  <roger@eyesopen.com>

	* convert.c (convert_to_integer) <POINTER_TYPE>: Avoid recursive
	call to convert_to_integer by building the NOP_EXPR directly.

2005-05-25  Richard Sandiford  <rsandifo@redhat.com>

	* config/rs6000/rs6000.opt (mprioritize-restricted-insns=): Fix typo.

2005-05-25  Daniel Berlin  <dberlin@dberlin.org>
	    Jeff Law  <law@redhat.com>

	* tree-cfg.c (verify_expr, case ADDR_EXPR): Verify invariant,
	constant and side_effects of the ADDR_EXPR are consistent.

	* tree-nested.c (convert_local_reference): Set CURRENT_FUNCTION_DECL
	appropriately around calls to recompute_tree_invarant_for_addr_expr.

2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (GP_ARG_NUM_REG, FP_ARG_NUM_REG): New defines.
	(s390_function_arg, s390_gimplify_va_arg): Use them.
	(s390_register_info): Save only required subset of argument
	registers into save area for va_list.
	(s390_va_start): Initialize only required elements of va_list struct.
	(s390_build_builtin_va_list): Set va_list_[gf]pr_counter_field.

2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload1.c (verify_initial_elim_offsets): Return boolean status
	instead of aborting.
	(reload): Adapt verify_initial_elim_offsets call site.  Restart
	main loop if some initial elimination offsets changed.

2005-05-25  Adam Nemet  <anemet@lnxw.com>

	* config/rs6000/lynx.h (CC1_SPEC): Use -maix-struct-return instead
	of -mno-svr4-struct-return.

2005-05-25  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/21705

	* tree-ssa-pre.c (in_fre): New static variable.
	(create_value_expr_from): Recursively value number reference ops
	in argument lists.
	(can_value_number_call): Temporary restrict only exists for
	PRE, not FRE.

2005-05-25  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-into-ssa.c (rewrite_into_ssa, update_ssa): Replace
	sizeof (bitmap *) with sizeof (bitmap).

2005-05-25  Daniel Berlin <dberlin@dberlin.org>

	* lambda-code.c (perfect_nestify): Call update_stmt on the exit
	condition.

2005-05-25  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Set to
	hook_bool_rtx_true.

2005-05-25  Jan Hubicka  <jh@suse.cz>

	* Makefile.in (ipa-inline.o): Add COEVERAGE_H dependency.
	* cgraph.c (cgraph_create_node): Reset estimated_growth.
	* cgraph.h (cgraph_global_info): Add estimated_growth.
	* ipa-inline.c: Include coverage.h
	(max_insns, max_count): New static variables.
	(cgraph_estimate_size_after_inlining): Cache the result.
	(cgraph_estimate_growth):
	* passes.c (rest_of_clean_state): Kill coverage_end_function.
	* timevar.def (TV_INLINE_HEURISTICS): New timevar.
	* tree-optimize.c (init_tree_optimization_passes): Move profiling before
	inlining.
	(ipa_passes): Initialize bitmaps.

2005-05-25  Adrian Straetling  <straetling@de.ibm.com>

	* loop-doloop.c: Include "target.h".
	  (doloop_valid_p): Move tests to function in targhooks.c.
	* target.h (struct gcc_target): New target hook
	  "insn_valid_within_doloop".
	* target-def.h: Define default value for "insn_valid_within_doloop".
	  (TARGET_INITIALIZER): Insert new target hook into initializer.
	* targhooks.c (default_insn_valid_within_doloop): New function.
	* targhooks.h (default_insn_valid_within_doloop): Declare.
	* hooks.c (hook_bool_rtx_true): New function.
	* hooks.h (hook_bool_rtx_true): Declare.
	* doc/tm.texi: Add documentation for new target hook.

2005-05-25  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/21412
	* config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): New macro
	* config/sparc/sparc-protos.h (tls_symbolic_operand): Delete.
	(sparc_tls_referenced_p): New prototype.
	* config/sparc/sparc.c (tls_symbolic_operand): Delete.
	(sparc_expand_move): Look for TLS addresses with constant offsets.
	(legitimate_constant_p): Use SPARC_SYMBOL_REF_TLS_P instead of
	tls_symbolic_operand.
	(legitimate_pic_operand_p): Likewise.
	(legitimate_address_p): Likewise.
	(legitimize_address): Likewise.
	(sparc_tls_symbol_ref_1): New function.
	(sparc_tls_referenced_p): New function.
	* config/sparc/predicates.md (tgd_symbolic_operand): Use
	SYMBOL_REF_TLS_MODEL instead of tls_symbolic_operand.
	(tld_symbolic_operand): Likewise.
	(tie_symbolic_operand): Likewise.
	(tle_symbolic_operand): Likewise.

2005-05-24  DJ Delorie  <dj@redhat.com>

	* common.opt (-Wattributes): New.  Default true.
	* doc/invoke.texi (-Wno-attributes): Document.

	* attribs.c (decl_attributes): Move warning control from if() to
	warning(OPT_*).
	* c-common.c (handle_packed_attribute): Likewise.
	(handle_nocommon_attribute): Likewise.
	(handle_common_attribute): Likewise.
	(handle_noreturn_attribute): Likewise.
	(handle_noinline_attribute): Likewise.
	(handle_always_inline_attribute): Likewise.
	(handle_used_attribute): Likewise.
	(handle_unused_attribute): Likewise.
	(handle_const_attribute): Likewise.
	(handle_transparent_union_attribute): Likewise.
	(handle_constructor_attribute): Likewise.
	(handle_destructor_attribute): Likewise.
	(handle_mode_attribute): Likewise.
	(handle_alias_attribute): Likewise.
	(handle_visibility_attribute): Likewise.
	(handle_tls_model_attribute): Likewise.
	(handle_malloc_attribute): Likewise.
	(handle_returns_twice_attribute): Likewise.
	(handle_pure_attribute): Likewise.
	(handle_deprecated_attribute): Likewise.
	(handle_vector_size_attribute): Likewise.
	(handle_nothrow_attribute): Likewise.
	(handle_cleanup_attribute): Likewise.
	(handle_warn_unused_result_attribute): Likewise.
	(handle_sentinel_attribute): Likewise.
	* c-decl.c (diagnose_mismatched_decls): Likewise.
	(start_decl): Likewise.
	(grokdeclarator): Likewise.
	(start_function): Likewise.
	* c-format.c (check_function_format): Likewise.
	* stor-layout.c (place_field): Likewise.
	(finalize_record_size): Likewise.
	* tree.c (handle_dll_attribute)): Likewise.
	* varasm.c (default_assemble_visibility): Likewise.
	* config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
	(darwin_assemble_visibility): Likewise.
	* config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
	* config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
	(arm_handle_isr_attribute): Likewise.
	* config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
	(avr_handle_fndecl_attribute): Likewise.
	* config/bfin/bfin.c (handle_int_attribute): Likewise.
	* config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
	* config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
	(h8300_handle_eightbit_data_attribute): Likewise.
	(h8300_handle_tiny_data_attribute): Likewise.
	* config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
	(ix86_handle_regparm_attribute): Likewise.
	(ix86_handle_struct_attribute): Likewise.
	* config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
	(i386_pe_encode_section_info): Likewise.
	* config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
	* config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
	(ip2k_handle_fndecl_attribute): Likewise.
	* config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
	* config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
	(m68hc11_handle_fntype_attribute): Likewise.
	(m68hc11_encode_section_info): Likewise.
	* config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
	* config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
	* config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
	* config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
	* config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
	(sh_handle_sp_switch_attribute): Likewise.
	(sh_handle_trap_exit_attribute): Likewise.
	* config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
	(sh_symbian_handle_dll_attribute): Likewise.
	* config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
	(xstormy16_handle_below100_attribute): Likewise.
	* config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.

	* c-common.c (unsigned_conversion_warning): Move warning control
	from if() to warning(OPT_*).
	(c_common_truthvalue_conversion): Likewise.
	(c_do_switch_warnings): Likewise.
	* c-decl.c (diagnose_mismatched_decls): Likewise.
	(diagnose_mismatched_decls): Likewise.
	(define_label): Likewise.
	(grokdeclarator): Likewise.
	* c-format.c (check_format_info): Likewise.
	* c-lex.c (interpret_integer): Likwise.
	(lex_string): Likewise.
	* c-opts.c (c_common_post_options): Likewise.
	* c-parser.c (c_parser_unary_expression): Likewise.
	* c-pragma.c (handle_pragma_redefine_extname): Likewise.
	(handle_pragma_extern_prefix): Likewise.
	* c-typeck.c (build_binary_op): Likewise.
	* gcse.c (is_too_expensive): Likewise.
	* opts.c (decode_options): Likewise.
	* stor-layout.c (place_field): Likewise.
	* tree-cfg.c (remove_bb): Likewise.

	* c.opt (-Wreturn-type): Add Var(warn_return_type).
	* flags.h (warn_return_type): Remove.
	* toplev.c (warn_return_type): Likewise.

2005-05-24  Kelley Cook  <kcook@gcc.gnu.org>

	* configure.ac: Don't use gcc_AC_C_LONG_LONG.  Check for
	existence of long long and __int64 before determining their size.
	* aclocal.m4: Delete gcc_AC_C_LONG_LONG.
	* configure, config.h.in: Regenerate.

2005-05-24  Kelley Cook  <kcook@gcc.gnu.org>

	* configure: Regenerate.

2005-05-24  Ziemowit Laski  <zlaski@apple.com>

	* c-common.h (objc_comptypes): Remove prototype.
	(objc_compare_types): New prototype.
	(objc_volatilized_decl): Likewise.
	(objc_type_quals_match): Likewise.
	* c-decl.c (objc_mark_locals_volatile): Streamline by calling
	objc_volatilize_decl().
	* c-typeck.c (comp_target_types): Remove third parameter; do
	not call objc_comptypes().
	(comptypes): Remove calls to objc_comptypes().
	(build_function_call): Extend compatible prototype check to ObjC.
	(build_conditional_expr): Adjust call to comp_target_types().
	(convert_for_assignment): Call objc_compare_types() instead of
	objc_comptypes(); adjust calls to comp_target_types(); call
	objc_type_quals_match() before issuing qualifier mismatch
	warnings.
	(build_binary_op): Call objc_compare_types() before issuing
	pointer mismatch warnings; adjust calls to
	comp_target_types().
	* stub-objc.c (objc_comptypes): Remove stub.
	(objc_compare_types): New stub.
	(objc_volatilized_decl): Likewise.
	(objc_type_quals_match): Likewise.

2005-05-24  Paolo Carlini  <pcarlini@suse.de>

	* config/ia64/ia64intrin.h: Define nothing for C++:
	overloaded builtins have been ported to C++.

2005-05-24  Jeff Law  <law@redhat.com>

	* tree-nested.c (build_addr): New "context" argument.  Temporarily
	set current_function_decl around the call to build the ADDR_EXPR.
	(get_static_chain): Pass proper context to build_addr.
	(convert_nl_goto_reference): Likewise.
	(convert_tramp_reference): Likewise.
	(final_nesting_tree_1): Likewise.
	* tree-profile.c (tree_gen_interval_profiler): Likewise.
	(tree_gen_pow2_profiler): Likewise.
	(tree_gen_one_value_profiler): Likewise.
	* tree-ssa-loop-ivopts.c (build_addr_strip_iref): Likewise.
	* tree.h (build_addr): Update prototype.

2005-05-24  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-flow.h (bb_ann_d): Remove has_escape_site.
	* tree-ssa-alias.c (compute_points_to_addr_escape): Don't
	write to has_escape_site.

2005-05-24  Jeff Law  <law@redhat.com>

	* Makefile.in (tree-cfg.o): Depend on tree-ssa-propagate.h.
	* tree-cfg.c: Include tree-ssa-propagate.h.
	(replace_uses_by): Call recompute_tree_invarant_for_addr_expr as
	needed.

2005-05-24  Nick Clifton  <nickc@redhat.com>

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
	__NO_FPRS__ when 'f' class registers will not be available.

2005-05-24  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>

	* config/m32r/m32r.c (m32r_expand_block_move): Return 0 if
	nothing was done.
	* config/m32r/m32r.md (movmemsi): If m32r_expand_block_move did
	nothing then FAIL.
	* config/m32r/m32r/m32r-protos.h  (m32r_expand_block_move): Update
	prototype.

2005-05-23  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (cprop_into_stmt): Do not call
	recompute_tree_invariant_for_addr_expr here.
	(optimize_stmt): Call it here instead and do so if anything
	at all has changed in the statement and the RHS is an ADDR_EXPR.
	* tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
	needed, call recompute_tree_invariant_for_addr_expr.
	* tree-ssa-propagate.c (substitute_and_fold): Call
	recompute_tree_invariant_for_addr_expr as needed.

2005-05-23  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
	saving less registers than the replacement.

2005-05-23  Jan Hubicka  <jh@suse.cz>

	* tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.

2005-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc-protos.h (sparc_expand_move): New prototype.
	* config/sparc/sparc.c (sparc_expand_move): New function.
	(sparc_emit_set_const64): Rewrite assert condition on entry.
	(legitimate_constant_p) <CONST_VECTOR>: New case.
	(legitimize_pic_address): Use TARGET_ARCH64 to select the mode.
	* config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32,
	movV64, movtf): Use nonimmediate_operand for the first operand.
	Rewrite.  Only invoke sparc_expand_move.
	* config/sparc/predicates.md (input_operand): Reorder tests.

2005-05-23  Jan Beulich  <jbeulich@novell.com>

	* gthr-posix.h (__gthread_recursive_mutex_init_function): Add
	missing return statement.

2005-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
	emit_move_insn for moves to TFmode stack slots.

2005-05-21  Richard Guenther  <rguenth@gcc.gnu.org>

	* tree-stdarg.c (execute_optimize_stdarg): Handle references
	to va_list of the form &va[0].

2005-05-20  Jan Hubicka  <jh@suse.cz>

	* Makefile.in (insn-emit.o): Add basic-block.h dependency.
	* genemit.c (main): Make insn-emit to include basic-block.h too.

2005-05-20  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (cgraph_expand_function): Force function being lowered.

2005-05-19  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
	emit_store_conditional): Split out from ...
	(alpha_split_atomic_op): ... here.
	(alpha_split_compare_and_swap): New; extract from .md file.
	(alpha_split_lock_test_and_set): Likewise.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/sync.md (sync_compare_and_swap<I48MODE>): Move
	split code into alpha.c.
	(sync_lock_test_and_set<I48MODE>): Likewise.

2005-05-19  Richard Henderson  <rth@redhat.com>

	* unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.

2005-05-19  Richard Henderson  <rth@redhat.com>

	* config/i386/sse.md (mulv4si3): Use all register inputs.
	(mulv2di3): Likewise.

2005-05-19  Richard Guenther  <rguenth@gcc.gnu.org>

	* tree-ssa-loop-ivopts.c (determine_base_object): Use
	build_fold_addr_expr to generate trees of correct type.
	Use fold_buildN if possible.

2005-05-19  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (REG_BR_PROB_BASE): Define.
	* cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
	(dump_cgraph_node): Dump count.
	(cgraph_clone_edge): Rescale counts.
	(cgraph_clone_node): Likewise.
	* cgraph.h: Include basic-block.h
	(cgraph_node): Add count.
	(cgraph_edge): Add count and loop_nest.
	(cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
	Update prototypes.
	* cgraphunit.c: Kill now redundant inlining comment.
	(cgraph_create_edges): Make static, maintain current basic block;
	fix pasto.
	(record_call_1): Fill in new fields.
	* ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
	cgraph_clone_node.
	(cgraph_decide_recursive_inlining): Likewise.
	* rtl.h (REG_BR_PROB_BASE): Kill.
	* tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
	(expand_call_inline): Update call of cgraph_create_edge.
	* tree-optimize.c (tree_rest_of_compilation): Likewise.

2005-05-19  Nick Clifton  <nickc@redhat.com>

	* config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
	new rs6000_explicit_options structure.

2005-05-19  Richard Henderson  <rth@redhat.com>

	PR target/21390
	* config/alpha/alpha.c (alpha_emit_conditional_branch): Move
	TFmode code swapping ...
	(alpha_emit_xfloating_compare): ... here.
	(alpha_emit_setcc): Update to match.
	(alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.

2005-05-19  Richard Henderson  <rth@redhat.com>

	PR target/21657
	* config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
	memory indirection in local-dynamic case.

2005-05-18  Jie Zhang  <jie.zhang@analog.com>
	    Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (branch_dest): Add comment why it's
	necessary.
	* config/bfin/bfin.md (attr "length" default): Change the offset of
	forward conditional branch of length 4 from 4096 to 4092.

2005-05-19  Jan Beulich  <jbeulich@novell.com>

	* unwind-compat.c: Include tconfig.h and tsystem.h.
	* unwind-dw2-fde-compat.c: Likewise.

2005-05-18  Richard Henderson  <rth@redhat.com>

	PR 21541
	* ifcvt.c (noce_process_if_block): Avoid conversion when the
	memory destination is readonly.

2005-05-18  Richard Henderson  <rth@redhat.com>

	PR 21541
	* tree-ssa-operands.c (opf_non_specific): New.
	(get_asm_expr_operands): Set it.
	(add_call_clobber_ops, add_call_read_ops): Likewise.
	(add_stmt_operand): Test it instead of opf_kill_def when
	considering unmodifiable variables.

	* tree-ssa-operands.c (get_expr_operands): Fix exact test.

2005-05-19  Kazu Hirata  <kazu@cs.umass.edu>

	* cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
	tree-ssa-forwprop.c: Fix comment typos.
	* doc/invoke.texi: Fix a typo.

2005-05-18  Richard Henderson  <rth@redhat.com>

	* config.gcc (powerpc-*-linux*): Include linux64.opt when
	including linux64.h.

2005-05-18  Richard Henderson  <rth@redhat.com>

	* tree-cfg.c (pass_remove_useless): Revert last change.
	* tree-optimize.c (init_tree_optimization_passes): Initialize
	all_lowering_passes with PROP_gimple_any.

2005-05-18  Devang Patel  <dpatel@apple.com>

	* config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
	the mask end.

2005-05-18  Richard Henderson  <rth@redhat.com>

	* tree-ssa-forwprop.c (cfg_changed): New.
	(tidy_after_forward_propagate_addr): New.
	(forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
	(forward_propagate_addr_into_variable_array_index): Likewise.
	(tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
	edges were removed.

2005-05-18  Geoffrey Keating  <geoffk@apple.com>

	* dummy-checksum.c: New.
	* genchecksum.c: New.
	* c.opt (print_pch_checksum): New flag.
	* c-pch.c (struct c_pch_validity): Make much shorter.
	(no_checksum): New.
	(host_machine): Remove.
	(target_machine): Remove.
	(get_ident): Change PCH version number.
	(pch_init): When -fverbose-asm, print out the compiler fingerprint.
	Don't put triplets or version string in PCH validity data.
	Do put the compiler checksum in the validity data.
	(c_common_valid_pch): Don't check triplets or version string.  Do
	check checksum.
	(c_common_print_pch_checksum): New.
	* c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
	Print fingerprint with -v.
	* c-common.h (c_common_print_pch_checksum): New.
	(executable_checksum): New.
	* Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
	(cc1-dummy): New rule.
	(cc1-checksum.c): New rule.
	(cc1-checksum.o): New rule.
	(cc1): Add checksum support.
	(build/genchecksum): New.
	(build/genchecksum.o): New.
	(dummy-checksum.o): New.
	(genobjnames): Add genchecksum.o.
	(mostlyclean): Remove *-checksum.c.
	(gnucompare): Add libgcc to list of directories checked.
	Make comparison problems in libgcc/ and with checksum files only
	be warnings.
	* doc/invoke.texi (Precompiled Headers): Remove caution.
	Document that it must be the exact same binary.  Add a few
	known-safe flags to the list.

	* rs6000/predicates.md (fix_trunc_dest_operand): New.
	* rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
	Check that a memory operand is valid before trying to use it.

	* tree-cfg.c (pass_remove_useless): This pass works on trees.

2005-05-18  Richard Guenther  <rguenth@gcc.gnu.org>

	* tree.c (build1_stat): Don't try to handle two-operand
	tree codes.

2005-05-18  Richard Sandiford  <rsandifo@redhat.com>

	* config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
	* config/sh/sh.h: Update mask names throughout.
	(target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
	(SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
	(SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
	(HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
	(LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
	(HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
	(INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
	(TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
	(TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
	(TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
	(TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
	(TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
	(TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
	(TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
	(TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
	(TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
	(TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
	(TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
	(TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
	(TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
	(TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
	(TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
	(TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
	(TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
	(TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
	(SUBTARGET_SWITCHES): Delete.
	(TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
	(TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
	(TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
	(TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
	(TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
	(SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
	(SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
	(SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
	(SUPPORT_SH3): Likewise SUPPORT_SH2.
	(SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
	(SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
	SUPPORT_SH4_NOFPU.
	(SUPPORT_SH3E): Likewise SUPPORT_SH2E.
	(SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
	(SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
	(SUPPORT_SH4A): Likewise SUPPORT_SH4.
	(SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
	(SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
	(SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
	(SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
	(SUPPORT_ANY_SH5): New macros.
	(TARGET_NONE): Replace with...
	(MASK_ARCH): ...this new macro.
	* config/sh/elf.h: Update mask names
	* config/sh/linux.h: Likewise.
	* config/sh/little.h: Likewise.
	* config/sh/netbsd-elf.h: Likewise.
	* config/sh/symbian-pre.h: Likewise.
	* config/sh/sh.c (sh_handle_option): New function.
	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
	(calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
	(sh_target_switches, target_switches): Delete.
	(sh_pch_valid_p): Check for specific differences in the target_flags
	settings.
	(sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
	* config/sh/sh.opt: New file.

2005-05-18  Richard Henderson  <rth@redhat.com>

	PR target/21632
	* config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
	small_addr_symbolic_operand.

2005-05-18  Jeff Law  <law@redhat.com>

	* tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
	propagate an ADDR_EXPR if the definition and use sites are
	in different EH regions.

2005-05-18  Ian Lance Taylor  <ian@airs.com>

	* read-rtl.c (mode_attr_index): Use obstack_grow0, not
	obstack_grow.

2005-05-18  Daniel Berlin  <dberlin@dberlin.org>

	* cfgrtl.c (purge_dead_edges): Don't remove fake edges.

2005-05-18  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/21407

	* tree-ssa-operands.c (note_addressable): Change
	COMPONENT_REF handling in response to aliasing
	discussion.

2005-05-18  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
	* config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
	* config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
	* doc/invoke.texi (SPARC options): Document that -mapp-regs is
	the default on Solaris too.

2005-05-17  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
	is okay too.

2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>

	* timevar.def (TV_SCEV_CONST): New timevar.
	* tree-optimize.c (init_tree_optimization_passes): Add
	pass_scev_cprop.
	* tree-pass.h (pass_scev_cprop): Declare.
	* tree-scalar-evolution.c (scev_const_prop): New function.
	* tree-scalar-evolution.h (scev_const_prop): Declare.
	* tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
	New.
	* tree-cfg.c (replace_uses_by): Export.
	* tree-flow.h (replace_uses_by): Declare.

2005-05-17  Ziemowit Laski  <zlaski@apple.com>
	    Mike Stump  <mrs@apple.com>

	Yet more Objective-C++...

	* c-common.h (objc_finish_try_stmt): Add.
	(objc_build_synchronized): Add.
	(objc_generate_write_barrier): Add.
	* stub-objc.c (objc_build_synchronized): Add return value.
	(objc_finish_try_stmt): Likewise.
	(objc_generate_write_barrier): Add.

	* c-common.h (objc_rewrite_function_call): Add.
	* c-typeck.c (build_function_call): Allow objc to rewrite
	FUNCTION_DECLs.
	(build_modify_expr): Allow objc to generate write barriers.
	* c.opt (Wassign-intercept): Add.
	(Wstrict-selector-match): Add.
	(fobjc-call-cxx-cdtors): Add.
	(fobjc-direct-dispatch): Add.
	(fobjc-gc): Add.
	* dbxout.c (get_lang_number): Add Objective-C++ support.
	* doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
	(-Wstrict-selector-match): Likewise.
	(-fobjc-direct-dispatch): Likewise.
	(-Wassign-intercept): Likewise.
	(Overall Options): Likewise.
	* gengtype.c (get_output_file_with_visibility): Likewise.
	* stub-objc.c (objc_rewrite_function_call): Add.
	* config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.

	* c-common.c (flag_objc_exceptions): Remove.
	(flag_objc_sjlj_exceptions): Remove.
	* c-decl.c (objc_mark_locals_volatile): Don't change decls
	that are already ok.
	* c-opts.c (c_common_handle_option, case
	OPT_fobjc_exceptions): Remove.
	(case OPT_fobjc_sjlj_exceptions): Remove
	* c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
	(fobjc-exceptions): Likewise.
	(fobjc-sjlj-exceptions): Likewise.
	* config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
	(OFFS_ASSIGNIVAR_FAST): Add.

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

	* config/sparc/sparc.md (movhi): Do not test constness
	of operand #1 twice.
	(movsi): Likewise.
	(movdi): Unconditionally accept zero as second operand
	when the first is memory.
	(movdi_insn_sp32): Handle above case.
	(DImode splitter): Use predicates.
	(DImode splitter): Use const_zero_operand predicate.
	(movsf_insn): Swap 2 alternatives.

2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
	expand_simple_operations to bases of the ivs.
	(tree_int_cst_sign_bit): Export.
	* tree-flow.h (expand_simple_operations): Declare.
	* tree-ssa-loop-niter.c (number_of_iterations_cond): Use
	tree_int_cst_sign_bit.
	(expand_simple_operations): Export.
	* tree.h (tree_int_cst_sign_bit): Declare.

2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
	merged block.
	(replace_uses_by): New function.
	(tree_merge_blocks): Eliminate the phi nodes in the merged block.
	* tree-flow.h (fold_stmt_inplace): Declare.
	* tree-ssa-ccp.c (fold_stmt_inplace): New function.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
	info after cfg cleanup.

2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>

	* cfgloop.h (just_once_each_iteration_p): Declaration changed.
	* cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
	const.

2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>

	* ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
	* ggc-zone.c (ggc_alloc_zone_1): Ditto.
	* timevar.c (timevar_ggc_mem_total): New variable.
	(GGC_MEM_BOUND): New constant.
	(get_time): Record ggc memory status.
	(timevar_accumulate): Accumulate amount of ggc memory.
	(timevar_print): Print consumption of ggc memory.
	* timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
	TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
	TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
	* timevar.h (struct timevar_time_def): Add ggc_mem field.
	(timevar_ggc_mem_total): Declare.

2005-05-17  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-into-ssa.c (update_ssa): Clean up by shortening the
	live range of DFS.

2005-05-17  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.md (ncond, ocode, rcond): Remove separate
	define_code_attr.
	("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
	("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
	("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
	("s<ocond:code>"): Rename from respectively "b<ncond>",
	"b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
	"*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
	"s<rcond>" and "s<ocond>".
	("b<ocond:code>", "*b<ocond:code>_reversed")
	("*b<rcond:code>_reversed"): Remove extraneous backslashes in
	output statement section.

2005-05-17  Roger Sayle  <roger@eyesopen.com>

	* c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.

2005-05-17  Steven Bosscher  <stevenb@suse.de>
	    Stuart Hastings <stuart@apple.com>
	    Jan Hubicka  <jh@suse.cz>
	    Dale Johannesen  <dalej@apple.com>

	* cgraph.h (cgraph_node): Add 'lowered' state.
	(cgraph_lower_function): Declare.
	* cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
	(cgraph_lower_function): New function.
	(cgraph_create_edges): Deal with lowered function bodies.
	(verify_cgraph_node): Likewise.
	(cgraph_analyze_function): Do lowering job.
	(cgraph_build_static_cdtor): Likewise.
	* function.h (struct function): Add saved_eh and saved_cfg.
	* integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
	* tree-cfg.c (fold_cond_expr_cond): Export.
	* tree-flow.h (fold_cond_expr_cond): Declare.
	* tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
	pointer-set.
	(struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
	in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
	callee_cfun, block, eh_region, eh_region_offset.
	(inlining_p): New predicate.
	(remap_decl): Update for new inline_data; declare newly created inline
	vars in low gimple way.
	(copy_body_r): Update for new datastructure, simplify some of handling
	when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
	deal with RESX_EXPRs.
	(copy_bb): New.
	(copy_edges_for_bb): Likewise.
	(remap_decl_1): New.
	(copy_cfg_body): New.
	(copy_generic_body): Rewrite to work on low gimple.
	(copy_body): Turn into simple wrapper around copy_cfg_body.
	(setup_one_parameter): Insert new statements into given basic block.
	(initialize_initialized_parameters): Likewise, reorganize way things are
	gimplified.
	(declare_return_variable): Update for new inline data datastructure.
	(inline_forbidden_p): Work on low gimple.
	(estimate_num_insns): Likewise.
	(expand_call_inline): Work on CFG.
	(push_cfun, pop_cfun): New functions.
	(cfun_stack): New stack.
	(add_lexical_block): New function.
	(gimple_expand_calls_inline): Work on basic block.
	(optimize_inline_calls): Likewise.
	(clone_body, save_body, unsave_ewpr_now): Update for new
	datastructures.
	(declare_inline_vars): Work on block instead of bind_expr.
	(inlining_p): New predicate.
	* tree-inline.h (push_cfun, pop_cfun): Declare.
	* tree-optimize.c: Include except.h
	(all_lowering_passes): New variable.
	(execute_fixup_cfg, pass_fixup_cfg): New pass.
	(init_tree_optimization_passes): Move some to all_lowering_passes.
	(tree_lowering_passes): New function.
	(tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
	* tree-pass.h (tree_lowering_passes): Declare

2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>

	* unwind-dw2-fde-darwin.c: Include tsystem.h.

2005-05-17  Jeff Law  <law@redhat.com>

	* Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
	* tree-ssa-forwprop.c: Include langhooks.h.
	(forward_propagate_addr_expr_into_variable_array_index): New.
	(forward_propagate_addr_expr): New.
	(tree_ssa_forward_propagate_single_use_vars): Loop over all
	the statements in the block instead of just the last statement.
	Call forward_propagate_addr_expr as needed.
	(pass_forwprop): Update the SSA graph after forward propagation is
	complete.

2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>

	* unwind-dw2-fde-glibc.c (base_from_cb_data,
	_Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
	appropriate.
	* unwind-dw2-fde.c (__deregister_frame_info_bases,
	base_from_object, fde_split, end_fde_sort): Likewise.
	* unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op,
	execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
	uw_init_context_1): Likewise.
	* unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
	_Unwind_Resume_or_Rethrow): Likewise.
	* unwind-pe.h (__gxx_abort): Do not define.
	(size_of_encoded_value, base_of_encoded_value,
	read_encoded_value_with_base): Use gcc_unreachable.
	* unwind.h (_Unwind_GetTextRelBase): Likewise.

2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
	(cfi_end): New macros.
	(RETLDM): Use cfi_pop.  Expect an eight byte stack frame.
	(ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros.  Create
	an eight byte stack frame.
	(__NR_tkill): Define.
	(__div0): Use gettid tkill on GNU/Linux.
	(_arm_return): Add CFI.
	(Lchange_\register, .Lchange_lr): Create an eight byte stack frame.

2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.ac: Remove spaces around assignment to
	gcc_cv_ld_sysroot.
	* configure: Regenerated.

2005-05-17  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
	* config/rs6000/rs6000.c (rs6000_explicit_options): Add
	aix_struct_ret.
	(rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
	Modify aix_struct_return variable, not target_flags.
	(rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
	(rs6000_return_in_memory): Test aix_struct_return.
	* config/rs6000/rs6000.opt (maix-struct-return): Convert to
	independent variable.  Report mxl-compat.

2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.md (eh_return): Add missing DONE.

2005-05-17  Ian Lance Taylor  <ian@airs.com>

	* read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
	field.
	(mode_attr_index): Remove check for defined attribute.  Remove
	infile parameter.  Change all callers.
	(apply_mode_maps): Add unknown parameter.  Change caller.  Always
	return after finding attribute.
	(apply_macro_to_rtx): Add unknown_mode_attr parameter.  Change
	callers.
	(apply_macro_traverse): Set mtd->unknown_mode_attr.
	(read_rtx): Use mtd.unknown_mode_attr to check for an undefined
	attribute used for a mode.

2005-05-17  Paolo Bonzini  <bonzini@gnu.org>

	* tree-ssa-math-opts.c: New file.

2005-05-17  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in: Add tree-ssa-math-opts.c.
	* expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
	* fold-const.c (distribute_real_division): New.
	(fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
	* tree-pass.h (pass_cse_reciprocals): New.
	* tree-optimize.c (init_tree_optimization_passes): Run it.
	* doc/passes.texi: Document the new pass.

2005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>

	PR middle-end/21595
	* builtins.c (fold_builtin_constant_p): Handle
	&"string cst"[0] as constant.

2005-05-17  Richard Henderson  <rth@redhat.com>

	* config/i386/sse.md (mulv16qi3, mulv2di3): New.

2005-05-17  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/21492
	* cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
	src2 if src2 has been split.

	PR tree-optimization/21610
	* c-typeck.c (decl_constant_value_for_broken_optimization): If not
	returning DECL, call unshare_expr.

2005-05-17  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.md: Unquote preparation and output statements.
	(BWD, WD, BW): New, mode-macros.
	(S, s, m, mm, nbitsm1): New, mode-attrs.
	(szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
	(u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
	code-attrs.
	("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
	("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
	("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
	"*cmp_swapexthi".
	("cmp<mode>"): Replace "cmphi" and "cmpqi".
	("movdi"): Move misplaced head comment regarding necessity of
	movdi from movsi to here.
	("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
	"*mov_sidehi_biap".
	("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
	("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
	"*mov_sideqi_biap_mem".
	("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
	"*mov_sidehi_mem".
	("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
	"*clear_sidehi_biap" and "*clear_sideqi_biap".
	("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
	and "*clear_sideqi".
	("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
	"*ext_sidehisi_biap".
	("*ext_side<mode>si"): Replace "*ext_sideqisi" and
	"*ext_sidehisi".
	("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
	("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
	("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
	("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
	("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
	"zero_extendqisi2".
	("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
	"*op_sidehi_biap" and "*op_sidesi_biap".
	("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
	"*op_sidesi".
	("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
	"*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
	("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
	"*op_swap_sidehi" and "*op_swap_sidesi".
	("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
	in the N alternative of "subqi3".
	("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
	"*extophisi_side_biap".
	("*extop<mode>si_side"): Replace "*extopqisi_side" and
	"*extophisi_side".
	("*extop<mode>si_swap_side_biap"): Replace
	"*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
	("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
	"*extophisi_swap_side".
	("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
	("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
	"*extophisi_swap".
	("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
	"mulqihi3", "mulhisi3" and "mulhisi3".
	("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
	("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
	"umulsi3_highpart".
	("xor<mode>3"): Replace "xorhi3" and "xorqi3".
	("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
	("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
	("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
	("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
	("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
	"*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
	("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
	"*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
	("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
	("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
	("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
	"*ashlhi_lowpart".
	("abs<mode>2"): Replace "abshi2" and "absqi2".
	("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
	"bleu".
	("b<ocond>"): Replace "bgt" and "ble".
	("b<rcond>"): Replace "blt" and "bge".
	("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
	"*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
	"*bleu_reversed".
	("*b<ocond>_reversed"): Replace "*bgt_reversed" and
	"*ble_reversed".
	("*b<rcond>_reversed"): Replace "*blt_reversed" and
	"*blt_reversed".
	("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
	"sne".
	("s<rcond>"): Replace "sge" and "slt".
	("s<ocond>"): Replace "sgt" and "sle".
	("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
	[rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
	("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
	clear.w [rx=rx+i] and clear.b [rx=rx+i].

2005-05-17  Jakub Jelinek  <jakub@redhat.com>

	* varasm.c (struct constant_descriptor_tree): Add hash field.
	(const_desc_hash): Just return hash field.
	(const_desc_eq): If hash values are different, return 0 immediately.
	(output_constant_def): Compute hash field of temporary key, use
	htab_find_slot_with_hash instead of htab_find_slot.  Set hash in
	newly built constant descriptor.
	(lookup_constant_def): Compute hash field of temporary key, use
	htab_find_with_hash instead of htab_find.

2005-05-16  Richard Henderson  <rth@redhat.com>

	* config/i386/sse.md (mulv4si3): New.

2005-05-17  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
	tests for noncanonical versions of reg+constant and
	reg+reg*{1,2,4}.

2005-05-16  Richard Henderson  <rth@redhat.com>
	    Steven Bosscher <stevenb@suse.de>

	PR tree-opt/21399
	* tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from
	maybe_clean_eh_stmt; take old stmt parameter.  Update EH
	region data structure to match replacement.
	* tree-flow.h: Update to match.
	* tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
	* tree-ssa-dom.c (optimize_stmt): Likewise.
	* tree-ssa-pre.c (eliminate): Likewise.
	* tree-ssa-propagate.c (substitute_and_fold): Likewise.

2005-05-16  Caroline Tice  <ctice@apple.com>

	* bb-reorder.c (verify_hot_cold_block_grouping): Replace
	internal_error with gcc_assert.
	* dwarf2out.c (dwarf2out_switch_text_section): Likewise.
	* function.h (struct function): Remove space between "*" and
	struct field names.
	* varasm.c (initialize_cold_section_name):  Add gcc_assert;
	modify to use alloca.
	(unlikely_text_section): Add check for flag_function_sections.
	(assemble_start_function): Move call to resolve_section, so it
	comes before first call to unlikely_text_section.
	(assemble_end_function): Add test and call to function_section
	if appropriate.

2005-05-16  Roger Sayle  <roger@eyesopen.com>

	* c-common.c (c_common_truthvalue_conversion): Use fold_build2
	instead of build_binary_op when performing code transformations
	to avoid error messages about constructs not it the user's code.

2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-pre.c: Fix a comment typo.

2005-05-16  Richard Henderson  <rth@redhat.com>

	PR target/21556
	* config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
	load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
	add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
	load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
	add_tprel22): Remove mode from symbolic operand.

2005-05-16  Richard Sandiford  <rsandifo@redhat.com>

	* optc-gen.awk: Include intl.h after the externally-provided files.

2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
	folding a COND_EXPR_COND in a nondestructive manner.

2005-05-16  Fariborz Jahanian <fjahanian@apple.com>

	* config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh,
	altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
	New values for vec_select definitions and bitmask for element
	selection.

2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>

	* dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
	Change the type to VEC(rtx,gc)*.
	(mem_loc_descriptor, add_const_value_attributes,
	dwarf2out_init): Adjust uses of used_rtx_varray.

	* tree-data-ref.c (compute_all_dependences): Change the type
	of dependence_relations to VEC(ddr_p,heap)**.
	(compute_data_dependences_for_loop): Change the type of
	allrelations to VEC(ddr_p,heap)*.

2005-05-16  Richard Sandiford  <rsandifo@redhat.com>

	* Makefile.in (options.c): Tell optc-gen.awk to include config.h,
	system.h, coretypes.h and tm.h.
	(options.o): Update dependencies accordingly.
	* optc-gen.awk: Allow header_name to be a list of filenames.
	Handle the "Condition" flag.
	* opts.h (CL_DISABLED): New flag.
	* opts.c (handle_option): Print an error for CL_DISABLED options.
	* doc/options.texi: Document the "Condition" option flag.

2005-05-16  Paolo Bonzini  <bonzini@gnu.org>

	* tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.

2005-05-15  Roger Sayle  <roger@eyesopen.com>

	* tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
	check for TREE_OVERFLOW on INTEGER_CST trees.
	* tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
	CONSTANT_CLASS_P tree nodes.

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

	PR target/21551
	* config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.

2005-05-15  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/21576

	* tree-ssa-pre.c (expression_node_pool): New pool.
	(comparison_node_pool): Ditto.
	(list_node_pool): Ditto.
	(pool_copy_list): New function.
	(phi_translate): Handle CALL_EXPR.
	(valid_in_set): Ditto.
	(create_expression_by_pieces): Ditto.
	(insert_into_preds_of_block): Ditto.
	(insert_aux): Ditto.
	(compute_avail): Ditto.
	(create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
	(can_value_number_call): New function.
	(find_leader): Update comment.
	(init_pre): Create new pools.
	(fini_pre): Free new pools.
	(pass_pre): Add TODO_update_ssa for the future when we are going
	to need vops.
	* tree-vn.c (expressions_equal_p): Handle TREE_LIST.
	(set_value_handle): Ditto.
	(get_value_handle): Ditto.

2005-05-15  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.

2005-05-15  Andreas Jaeger  <aj@suse.de>

	* gcc.c (pfatal_pexecute): Remove unused local function.

2005-05-15  Richard Sandiford  <rsandifo@redhat.com>

	* optc-gen.awk: Remove excess indentation.
	* opth-gen.awk: Likewise.

2005-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
	of basic_block_info.  Call init_flow and find_basic_blocks
	before dbr_schedule if needed.

2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-optimize.c (init_tree_optimization_passes): Move
	pass_cd_dce in place of the last pass_dce.

	PR tree-optimization/21563
	* tree-vrp.c (compare_value): Return boolean_false_node when
	SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
	strictly larger than CST.

2005-05-14  Nathan Sidwell  <nathan@codesourcery.com>
	    Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
	gcc_assert().
	(rev_cond_name) Likewise.
	(vax_float_literal) Likewise.
	* config/vax/vax.md: Likewise.

2005-05-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
	registers and use them (specifically the stack pointer).
	* config/vax/vax.h: Use above defines right here.

	* config/vax/vax.c: (override_options) Remove 'register' keyword.
	(split_quadword_operands) Likewise. (rev_cond_name) Likewise.
	(vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
	whitespace.
	* config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
	mostly removal of trailing spaces...
	* config/vax/vax-modes.def: Remove trailing whitespace.

	* config/vax/elf.h: Update whitespace.

2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>

	Revert
	2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
	* fold-const.c (fold_indirect_ref_1): Avoid removing
	NOP_EXPRs with type qualifiers like const.

2005-05-14  Jan Hubicka  <jh@suse.cz>

	Patch by Richard Henderson:
	* tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
	Handle RESX expressions properly.

	* tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
	(add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
	(remove_stmt_from_eh_region_fn): Likewise.

	* tree-cfg.c (execute_warn_function_return): Break out noreturn
	warning too..
	(execute_warn_function_noreturn): ... here.
	(pass_warn_function_noreturn): New pass.
	* tree-pass.h (pass_warn_function_noreturn): Declare
	* tree-optimize.c (init_tree_optimization_passes): Move return
	warnings early and add noreturn warnings at place of previous
	return warnings.

2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
	root_var_init, type_var_init): Use VEC instead of VARRAY.
	* tree-ssa-live.h (tree_partition_associator_d): Change the
	type of trees to VEC(tree,heap)*.
	(tpa_tree): Use VEC instead of VARRAY.

2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>

	* fold-const.c (div_if_zero_remainder): New function.
	(try_move_mult_to_index): Use it.

2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-eh.c (leh_tf_state): Change the type of dest_array to
	VEC(tree,heap)*.
	(maybe_record_in_goto_queue, lower_try_finally_onedest,
	lower_try_finally_copy, lower_try_finally_switch,
	lower_try_finally): Use VEC instead of VARRAY.

2005-05-14  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (Node: Register Classes): Remove obsoleted
	comment regarding defined register classes.
	(LEGITIMIZE_RELOAD_ADDRESS): Do not define.

2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-optimize.c (init_tree_optimization_passes): Move
	pass_merge_phi before the first pass_dominator.

2005-05-13  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
	unconditional.

2005-05-13  Josh Conner  <jconner@apple.com>

	* config/arm/arm.c (arm_size_return_regs): New.
	(thumb_unexpanded_epilogue): replace in-line calculation
	of return registers with call to arm_size_return_regs.
	(use_return_insn): Include test of which registers are
	being used to hold return values, to accommodate
	vector return values.

2005-05-11  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/sysv4.opt (mlittle): Handle.

	* config/rs6000/rs6000.c (rs6000_handle_option): Set
	target_flags_explicit when appropriate.

2005-05-13  J"orn Rennecke <joern.rennecke@st.com>

	PR middle-end/20714:
	* optabs.c (no_conflict_data): New struct.
	(no_conflict_move_test): New function.
	(emit_no_conflict_block): Use it.

2005-05-13  Adam Nemet  <anemet@lnxw.com>

	* doc/invoke.texi (Debugging Options): Option
	-fdump-translation-unit only works with C++ now.

2005-05-13  Hans-Peter Nilsson  <hp@axis.com>

	Replace calls to abort in CRIS port.
	* config/cris/cris.h (CRIS_ASSERT): New macro.
	* config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
	internal_error instead of abort.
	("movsi"): Ditto.  Unquote preparation statement section.
	("call", "call_value"): Ditto, but use gcc_assert where
	appropriate.  Tweak comments.
	* config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
	CRIS_ASSERT.
	(cris_op_str): Call internal_error, not abort.
	(cris_print_operand): Tweak "abort" reference to "die" in comment.
	(cris_initial_elimination_offset): Call gcc_unreachable, not abort.
	(cris_notice_update_cc): Call internal_error, not abort.
	(cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
	(cris_emit_movem_store, cris_asm_output_symbol_ref)
	(cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
	(cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
	ENABLE_CHECKING-guarded abort call.
	(cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
	Use internal_error at end of test-chain.

2005-05-13  J"orn Rennecke <joern.rennecke@st.com>

	PR rtl-optimization/20769:
	* bt-load.c (compute_defs_uses_and_gen): Check for the blockage
	pattern emitted by expand_nl_goto_receiver.

	PR middle-end/20793:
	* integrate.c (allocate_initial_values): Update register liveness
	information.

2005-05-13  Josh Conner  <jconner@apple.com>

	* arm.c (arm_return_in_memory): Add handling for vector return types.

2005-05-13  David Ung  <davidu@mips.com>

	* config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
	name.
	* config/mips/mips.c: Add 4km alias.
	* config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
	* config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
	description.

2005-05-13  Jan Hubicka  <jh@suse.cz>

	* c-decl.c (finish_function): Suppress "control reaches end of
	non-void function" when "no return statement in function
	returning non-void" is issued.

	* tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
	* tree-optimize.c (pass_gimple): Kill.
	(init_tree_optimization_passes): Kill pass_gimple.
	* tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
	* tree-dump.c (dump_files): Rename .generic to .gimple.*

2005-05-13  J"orn Rennecke <joern.rennecke@st.com>

	PR rtl-optimization/20756:
	* basic-block.h (PROP_DEAD_INSN): Define.
	* flow.c (propagate_one_insn): Set during mark_set_regs call
	for a dead insn.
	(mark_set_1): Emit a clobber when we are about to delete a dead insn
	that kills a live register.

2005-05-13  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md: ("DBL"): New mode attribute.
	("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
	("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
	("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".

2005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>

	* c-format.c (check_format_arg): Handle string literals of
	the form &"string"[offset].

	* g++.dg/warn/format4.C: New testcase.

2005-05-13  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mips/3000.md, config/mips/4000.md,
	config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
	config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
	config/mips/generic.md, config/pdp11/pdp11.md,
	config/sh/crt1.asm, config/sh/lib1funcs.asm,
	config/sh/sh-modes.def, config/sh/sh-protos.h,
	config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.

2005-05-13  Richard Henderson  <rth@redhat.com>

	* function.c (instantiate_virtual_regs_in_insn): Do not simplify
	addition to move unless dest is a register.  Do not skip
	instantiation in dest on addition simplification.

2005-05-13  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_print_operand) <case 'H'; case
	CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
	output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.

2005-05-13  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (FOR_ALL_BB_FN): New macro.
	(init_flow): Initialize cfg structure.
	* function.c (allocate_struct_function): Do not initialize cfg structure.
	* tree-cfg.c (init_empty_tree_cfg): Break out from ...
	(build_tree_cfg): ... here.
	* tree-flow.h (init_empty_tree_cfg): Declare.

2005-05-12  Steven Bosscher <stevenb@suse.de>

	Fix PR tree-optimization/21520
	* tree-ssa-pre.c (phi_translate): Use fully_constant_expression
	to attempt to fold constants.

2005-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
	only when TARGET_ADJUST_UNROLL_MAX is defined.
	(general_movsrc_operand): Use the C style comment.
	(ua_offset): Use prototype.

2005-05-12  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-im.c (struct mem_ref): Add field "next".
	(struct hmr_data, hoist_memory_reference, memref_del,
	struct fmrv_data): Removed.
	(hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
	(gather_mem_refs, gather_mem_refs_stmt): Add new references to the
	list.
	(find_more_ref_vops): Traverse the list of memory references.
	(determine_lsm_loop): Work with the list of memory references instead
	of traversing the hashtable.

2005-05-12  Steven Bosscher  <stevenb@suse.de>
	    Stuart Hastings <stuart@apple.com>
	    Jan Hubicka  <jh@suse.cz>

	* except.c  (duplicate_eh_region_1, duplicate_eh_region_2,
	duplicate_eh_regions): New functions, based on old
	implementation removed with RTL inliner.
	(reachable_next_level): Modify behaviour pre-inline.
	* except.h (duplicate_eh_regions_map, duplicate_eh_regions):
	Declare.
	* function.h (struct function): Add after_inlining flag.
	* tree-optimize.c (tree_rest_of_compilation): Set it.
	* tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
	when needed.
	* tree-cfg.c (label_to_block_fn): Deal with cases where
	label was never insterted into code.

2005-05-12  Zack Weinberg  <zack@codesourcery.com>

	* doc/cpp.texi: Document that #sccs is a synonym for #ident.

2005-05-12  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/21532
	* tree-ssa-pre.c (create_expression_by_pieces): stmt
	needs to go onto the inserted_exprs list.

2005-05-12  Ian Lance Taylor  <ian@airs.com>

	* c-common.h (statement_code_p): Don't declare.
	(STATEMENT_CODE_P): Don't define.
	(INIT_STATEMENT_CODES): Don't define.
	* c-common.c (statement_code_p): Don't define.

2005-05-12  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.h: Remove dead code.
	* config/sparc/sparc.c (sparc_compute_frame_size): Use
	FIRST_PARM_OFFSET for the size of the register window area.
	(emit_save_regs): Rename into emit_save_or_restore_regs.
	Add 'action' parameter.  Use 4095 as upper bound for the offset.
	Pass 'action' to save_or_restore_regs.
	(emit_restore_regs): Delete.
	(sparc_expand_prologue): Call emit_save_or_restore_regs.
	(sparc_expand_epilogue): Likewise.
	* config/sparc/sparc.md (mode macro P): Move.
	(movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
	(mov<V32:mode> expander): Move to the top of the V32 section.
	(movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
	(movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
	(sibcall_epilogue): Move.

2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>

	PR target/21501
	* arm.c (arm_gen_constant): Sign-extend intermediate values when
	synthesizing a constant of the difference of two immediates.

2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
	(negdf2_vfp): Likewise.  Convert to define_insn_and_split and split
	the alternatives using integer registers into the appropriate
	primitives.

2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>

	* bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
	bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
	* bitmap.h: Fixed comments.

2005-05-11  Richard Henderson  <rth@redhat.com>

	PR target/21412
	* config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
	(ia64_cannot_force_const_mem): New.
	(tls_symbolic_operand_type): New.
	(ia64_legitimate_constant_p): New.
	(ia64_expand_load_address): Return true on success.  Improve
	checks for when we should not split.
	(ia64_expand_tls_address): New addend operand.  Distribute it
	as appropriate to the tls_kind.  Delay referencing gp.
	(ia64_expand_move): Split symbolic addend as necessary.  Handle
	tls symbols with addends.
	* config/ia64/ia64-protos.h: Update.
	* config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
	p0, f0, f1, and r13.
	(LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
	* config/ia64/ia64.md (UNSPEC_DTPMOD): New.
	(symbolic_operand splitter): Pass everything through
	ia64_expand_load_address and FAIL or DONE as appropriate.
	(load_fptr): Only accept after reload.
	(load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
	load_symptr_low, load_ltoff_dtpmod,
	(load_dtpmod): New.
	(load_dtprel): Only accept tls symbols.
	(load_dtprel64, load_dtprel22): Likewise.
	(load_tprel, load_tprel64, load_tprel22): Likewise.
	(load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
	(add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
	(add_dtprel14, add_dtprel22): Likewise.
	(add_tprel, add_tprel14, add_tprel22): Likewise.
	* config/ia64/predicates.md (small_addr_symbolic_operand): New.
	(any_offset_symbol_operand, aligned_offset_symbol_operand): New.
	(got_symbolic_operand): Check CONST offsets.
	(tls_symbolic_operand, ld_tls_symbolic_operand): New.
	(ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
	(move_operand): Don't handle tls here.  Check CONST offsets.

2005-05-11  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
	Remove hilo_operand check.
	(rm7_impy_si_mul): Just match imul3.  Remove hilo_operand check.
	* config/mips/predicates.md (hilo_operand): Delete.

2005-05-11  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/sr71k.md, config/mips/7000.md: Reformat.

2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimizer/18472
	* tree-if-conv.c (tree_if_convert_stmt,
	if_convertible_modify_expr_p): Don't handle GOTO_EXPR.

2005-05-11  Jan Hubicka  <jh@suse.cz>

	* Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
	(GTFILES): add except.h.
	* except.c (eh_status): Add throw_stmt_table.
	(set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
	* except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
	lookup_stmt_eh_region_fn): Declare.
	(throw_stmt_node): New structure.
	(set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
	* gengtype.c (open_base_files): Add except.h to inlines.
	* tree-eh.c (throw_stmt_node): Kill.
	(record_stmt_eh_region): Update.
	(add_stmt_to_eh_region_fn): Break out from ...
	(add_stmt_to_eh_region): ... here.
	(remove_stmt_from_eh_region_fn): Break out from ...
	(remove_stmt_from_eh_region): ... here.
	(lookup_stmt_eh_region_fn): Break out from ...
	(lookup_stmt_eh_region): ... here.
	(honor_protect_cleanup_actions): Use build_resx.
	(lower_try_finally_onedest): Likewise.
	(lower_try_finally_copy): Likewise.
	(lower_try_finally_switch): Likewise.
	(lower_eh_constructs): Update eh table construction.
	* tree.c (build_resx): New.
	* tree.h (build_resx): Declare.

2005-05-11  H.J. Lu  <hongjiu.lu@intel.com>

	* libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
	is needed.

2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c, libgcov.c: Fix comment typos.

	* tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
	redundant code.

2005-05-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
	* config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
	default definition.
	(FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.

2005-05-11  Nathan Sidwell  <nathan@codesourcery.com>

	PR bootstrap/21481
	* crtstuff.c: Include auto-host.h again, for now.

2005-05-11  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/24k.md: Remove trailing whitespace.

2005-05-11  David Ung  <davidu@mips.com>

	* config/mips/mips.md (type): Add imul3.
	(length, hazard, may_clobber_hilo): Check for imul3.
	(mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
	(*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
	* config/mips/24k.md (r24k_int_mul3): Enable this reservation
	for a 3 operand mul and its bypasses.
	* config/mips/3000.md (r3k_imul): Add imul3 to reservations.
	* config/mips/4000.md (r4k_imul): Likewise.
	* config/mips/4100.md (r4100_imul_si, r4100_imul_di): Likewise.
	* config/mips/4130.md (vr4130_class, vr4130_mulsi)
	(vr4130_muldi): Likewise.
	* config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
	* config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
	* config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
	* config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
	(ir_vr54_imadd_si): Likewise.
	* config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di): Likewise.
	* config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
	(rm7_impy_di): Likewise.
	* config/mips/9000.md (rm9k_mulsi, rm9k_muldi): Likewise.
	* config/mips/generic.md (generic_imul): Likewise.
	* config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
	* config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di): Likewise.

2005-05-11  J"orn Rennecke <joern.rennecke@st.com>

	PR middle-end/20371:
	* tree.h (record_layout_info_s): New member prev_packed.
	* stor-layout.c (update_alignment_for_field): Fix comment about
	KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
	we start it properly aligned.
	(place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
	to update_alignment_for_field, and recompute it afterwards using
	the alignment of the record.
	When a packed bitfield precedes an MS bitfield, don't add padding
	at the end of the packed bitfield on behalf of the base type of
	the packed bit field.
	Don't adjust rli->bitpos at the end
	of an MS bitfield run if we already adjusted bitpos/offset for an
	alignment as large or larger than the bitfield type size.
	Take possible record alignment > BIGGEST_ALIGNMENT into account
	when calculating actual_align.
	Only put packed buit fields into rli->prev_field if they end up
	suitably aligned.
	Also set rli->remaining_in_alignment when we re-set rli->prev_field.
	Update rli->remaining_in_alignment when we have already started a
	run of bit fields and we process a packed bit field.

2005-05-11  Sebastian Pop  <pop@cri.ensmp.fr>

	* tree-data-ref.c (find_data_references_in_loop): Give up when
	the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
	may embed arbitrary side effects.
	Remove the assumption that GIMPLE form contains a single array
	access per statement.
	When the statement contains virtual operands, fail if it is not
	a MODIFY_EXPR or a CALL_EXPR.
	Return after the dont know node is inserted.

2005-05-11  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.

2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>

	PR middle-end/19807
	PR tree-optimization/19639
	* fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
	and generic summands for char* as s * delta, too, folding &a[i]
	CODE x to &a[i CODE x/s].  Use tree_int_cst_equal
	for comparison of steps.  Convert types for index addition.
	(fold_binary): Adjust the callers to always dispatch to
	try_move_mult_to_index.
	* tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
	expr with non-gimple ARRAY_REF offset.

2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>

	* fold-const.c (fold_indirect_ref_1): Avoid removing
	NOP_EXPRs with type qualifiers like const.

2005-05-11  Richard Henderson  <rth@redhat.com>

	PR c/21502
	* c-decl.c (finish_decl): Propagate the completed array type of
	a global variable into the binding.

2005-05-10  Matt Kraai  <kraai@ftbfs.org>

	* Makefile.in (gtype-desc.o, build/genautomata.o)
	(build/varray.o): Depend on $(VARRAY_H).

2005-05-10  Diego Novillo  <dnovillo@redhat.com>

	* tree-optimize.c (init_tree_optimization_passes): Re-organize
	optimization passes to do an initial batch of scalar cleanups.

2005-05-10  Ian Lance Taylor  <ian@airs.com>

	* read-rtl.c (struct macro_traverse_data): Define.
	(map_attr_string): New static function, broken out of
	apply_macro_to_string.
	(mode_attr_index, apply_mode_maps): New static functions.
	(apply_macro_to_string): Call map_attr_string.
	(apply_macro_to_rtx): Add mode_maps and infile parameters.  Change
	all callers.
	(apply_macro_traverse): Expect data to point to a struct
	macro_traverse_data.
	(read_rtx): Add mode_maps local variable.  Use mode_traverse_data
	to pass data through htab_traverse.
	(read_rtx_1): Add mode_maps parameter.  Change all callers.
	Handle mode names which are attribute strings.
	* doc/md.texi (Substitutions): Rename from String Substitutions.
	Change references.  Document using attributes as modes.

2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-cfg.c (tree_duplicate_sese_region): Update profile.
	* tree-optimize.c (init_tree_optimization_passes) Swap
	pass_ch and pass_profile.
	* tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
	here.  Remove rewrite_into_loop_closed_ssa call.

2005-05-10  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
	function.
	(legitimate_reload_constant_p): Add check for const double zero.
	* config/s390/s390.md: Add comment for constraint letter 'G'.
	("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
	attributes for new case.
	* config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
	s390_const_double_ok_for_constraint_p.
	* config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
	Add prototype.

2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/21170
	* tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
	rewrite_ssa_into_ssa in comments with update_ssa.

2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-im.c: Include hashtab.h.
	(struct mem_ref_loc): New.
	(struct mem_ref): Describe the set of references with the same
	shape.
	(max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
	maybe_queue_var, fem_single_reachable_address,
	for_each_memref, single_reachable_address,
	is_call_clobbered_ref, determine_lsm_reg): Removed.
	(record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
	hoist_memory_reference, memref_hash, memref_eq, memref_del,
	gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
	New functions.
	(rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
	(determine_lsm_loop): Rewritten.
	(determine_lsm): Do not set stmt uids.

2005-05-10  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md: Add comment lines for 'f' and 't' constraint
	letters.

2005-05-10  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
	("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
	("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.

2005-05-10  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (dom_opt_finalize_block): Do not call
	thread_across_edge for any abnormal edges.

2005-05-10  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_expand_atomic_op): New.
	* config/ia64/ia64-protos.h: Declare it.
	* config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
	(sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
	(sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
	(sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
	(sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
	(cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>.  Zero
	extend result; use release semantics.
	(cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
	(sync_val_compare_and_swap_<IMODE>): Update to match.

2005-05-10  Richard Henderson  <rth@redhat.com>

	* optabs.c (expand_compare_and_swap_loop): Don't clobber old value
	before comparing it for success.

2005-05-10  Richard Henderson  <rth@redhat.com>

	* config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
	no return value pattern.

2005-05-10  Grigory Zagorodnev  <grigory.zagorodnev@intel.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* libgcov.c (create_file_directory): New function. Create
	directory for the given file name.
	(gcov_max_filename): New static var. Keeps size of the longest
	file name.
	(gcov_exit): Always try to create directory for output
	file. Relocate each filename basing on environment vars.
	(__gcov_init): Remember the longest file name.
	* tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
	* doc/gcov.texi (Cross-profiling): New node documenting
	cross-profiling management.
	* doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.

2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (mem_min_alignment): Do not rely
	on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.

2005-05-10  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
	case code to avoid one move instruction.
	(__umodsi3, __modsi3): Merge duplicated code sequences.

2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
	config/sh/sh.md, config/sh/superh.h: Fix comment typos.
	* doc/invoke.texi: Fix typos.

	* tree-data-ref.c (analyze_array_indexes, analyze_array,
	init_data_ref, access_functions_are_affine_or_constant_p,
	free_data_refs): Use VEC instead of VARRAY.
	* tree-data-ref.h (data_reference): Change the type of
	access_fns to VEC(tree,gc)*.
	(DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.

2005-05-10  Gabor Loki <loki@gcc.gnu.org>

	PR c/17913
	* c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
	* fold-const.c (fold): Expand the condition of reducing cond_expr.
	(contains_label_1, contains_label_p): New functions for checking
	labels in a sub-tree.

2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/21342
	* c-decl.c (pushdecl): When there is a declaration in the current
	scope and the declarations are external linkage, check for
	compatibility with the type in the external scope and update the
	type in the external scope with the composite type information.
	Do not form a composite type of the new type and the visible type
	if they are incompatible.

2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>

	* crtstuff.c: Revert part of 2005-05-08 Change.
	(IN_LIBGCC2): Define.

2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
	remove redundant test.
	(fp_mov_p): Accept 0.
	(fp_high_losum_p): Remove redundant test.
	* config/sparc/predicates.md (const_high_operand): Explicitly test
	(not small_int_operand).
	(fp_const_high_losum_operand): New.
	* config/sparc/sparc.md (movsi_insn): Do not emit 'clr'.  Reorder.
	(movdi_insn_sp32_v9): Use canonical predicates.
	(movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
	(movdi_insn_sp64_novis): Delete.
	(movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
	(movsf_insn_novis): Delete.
	(movsf_insn_vis): Rename into movsf_insn.
	(movsf_no_f_insn): Rename into movsf_insn_no_fpu.
	(movsf_lo_sum): Use fp_const_high_losum_operand.
	(movsf_high): Likewise.
	(movsf_high_losum splitter): Likewise.
	(mov<V32:mode> expander): Use register_or_zero_operand.
	(mov<V64:mode> expander): Likewise.
	(movdf_insn_sp32): Use register_or_zero_operand.
	(movdf_no_e_insn_sp32): Use register_or_zero_operand.
	Rename into movdf_insn_sp32_no_fpu.
	(movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
	Rename into movdf_insn_sp32_v9_no_fpu.
	(movdf_insn_v9only_novis): Delete.
	(movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
	(movdf_insn_sp64_novis): Delete.
	(movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
	(movdf_no_e_insn_sp64): Use register_or_zero_operand.
	Rename into movdf_insn_sp64_no_fpu.
	(movtf expander): Use register_or_zero_operand.
	(movtf_insn_sp32): Delete.
	(movtf_insn_vis_sp32): Use register_or_zero_operand.
	Rename into movtf_insn_sp32.
	(movtf_no_e_insn_sp32): Use register_or_zero_operand.
	Rename into movtf_insn_sp32_no_fpu.
	(movtf_insn_hq_sp64): Delete.
	(movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
	Rename into movtf_insn_sp64_hq.
	(movtf_insn_sp64): Delete.
	(movtf_insn_vis_sp64): Use register_or_zero_operand.
	Rename into movtf_insn_sp64.
	(movtf_no_e_insn_sp64): Use register_or_zero_operand.
	Rename into movtf_insn_sp64_no_fpu.

2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>

	* config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
	gcc_assert and gcc_unreachable as appropriate.
	(xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
	xstormy16_output_cbranch_si, xstormy16_split_move,
	xstormy16_initial_elimination_offset,
	xstormy16_encode_section_info, xstormy16_print_operand_address,
	xstormy16_expand_call, xstormy16_expand_arith,
	xstormy16_output_shift, xstormy16_init_builtins): Likewise.

2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-outof-ssa.c (_elim_graph): Change the type of nodes and
	const_copies to VEC(tree,heap)*.
	(new_elim_graph, delete_elim_graph, elim_graph_size,
	elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
	instead of VARRAY.

2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>

	PR other/21052
	* doc/extend.texi (Type Attributes): Correct example syntax.

2005-05-09  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/21160
	* doc/invoke.texi (-Wuninitialized): Update documentation.

2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.c (const_ok_for_arm): Use a faster algorithm.

2005-05-09  David Edelsohn  <edelsohn@gnu.org>

	PR target/21477
	* config/rs6000/rs6000.md (add_op2): New.
	(add<mode>3): Use it.

2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.c (arm_gen_constant): Add new heuristic for generating
	constant integers that can be expressed as the difference of two
	valid immediates.

2005-05-09  Roger Sayle  <roger@eyesopen.com>

	* c-tree.h (parser_build_unary_op): New prototype.
	* c-typeck.c (parser_build_unary_op): New function to construct
	a unary operation in the C parser.
	* c-parser.c (c_parser_unary_expression): Use the new function
	parser_build_unary_op when appropriate.

2005-05-09  Mark Mitchell  <mark@codesourcery.com>

	PR 18655
	* dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
	before outputting DWARF_FRAME_RETURN_COLUMN.

2005-05-09  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.c: (s390_branch_condition_mask,
	s390_branch_condition_mnemonic, s390_extra_constraint_str,
	s390_const_ok_for_constraint_p, s390_expand_plus_operand,
	legitimize_pic_address, s390_emit_tls_call_insn,
	legitimize_tls_address, legitimize_tls_address,
	s390_expand_addcc, print_shift_count_operand, print_operand,
	addr_generation_dependency_p, annotate_constant_pool_refs,
	s390_split_branches, find_constant_pool_ref,
	replace_constant_pool_ref, s390_add_constant, s390_find_constant,
	s390_find_execute, s390_mainpool_start, s390_chunkify_start,
	s390_output_pool_entry, s390_function_value,
	s390_call_saved_register_used, s390_emit_call): Replace
	conditional aborts by gcc_assert and unconditional by gcc_unreachable.
	(s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
	s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
	get_some_local_dynamic_name, s390_function_arg_size,
	s390_function_arg_advance, s390_function_arg,
	s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
	default case by gcc_unreachable.
	* config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
	conditional abort by gcc_assert.
	("doloop_si31"): Replace abort in last else by gcc_unreachable.
	("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.

2005-05-09  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.c: (s390_decompose_address,
	tls_symbolic_operand, legitimate_pic_operand_p,
	legitimate_constant_p, legitimate_reload_constant_p,
	s390_expand_plus_operand, legitimate_address_p,
	legitimate_la_operand_p, ): Remove 'register' from signature.
	(symbolic_reference_mentioned_p,
	tls_symbolic_reference_mentioned_p): Remove 'register' from local
	variable declarations.
	(legitimize_address): Remove 'register' from
	signature and local variable declarations.

2005-05-09  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390-protos.h: (s390_match_ccmode,
	s390_match_ccmode_set, reg_used_in_mem_p,
	symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
	legitimate_la_operand_p, preferred_la_operand_p,
	s390_short_displacement, addr_generation_dependency_p,
	legitimate_reload_constant_p, legitimate_address_p): Change return type
	into 'bool'.
	(s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
	* config/s390/s390.c: (s390_match_ccmode,
	symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
	legitimate_reload_constant_p): Change return type into 'bool'.
	(preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
	Likewise.  Additionally adapted comment.
	(s390_extra_constraint_p): Change Comment to reflect 'int' return type.
	(s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
	(s390_decompose_address): Change the type of the internal flags
	"pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
	(struct s390_address): Change type of "pointer" into bool.
	* config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
	Adapt calls for 's390_tm_ccmode' to the new signature.

2005-05-09  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.c: (s390_match_ccmode_set,
	s390_branch_condition_mnemonic, s390_short_displacement,
	s390_decompose_address, get_thread_pointer, legitimize_tls_address,
	print_shift_count_operand, get_some_local_dynamic_name,
	get_some_local_dynamic_name_1, reg_used_in_mem_p,
	addr_generation_dependency_p, s390_split_branches,
	annotate_constant_pool_refs, find_constant_pool_ref,
	replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
	s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
	s390_register_info, s390_frame_info, s390_init_frame_layout,
	s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
	restore_gprs, s390_function_arg_size, s390_function_arg_float,
	s390_init_machine_status, s390_assemble_integer, s390_handle_option,
	s390_encode_section_info, s390_cannot_force_const_mem,
	s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
	s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
	s390_adjust_priority, s390_issue_rate,
	s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
	s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
	s390_build_builtin_va_list, s390_gimplify_va_arg,
	s390_function_ok_for_sibcall, s390_call_saved_register_used,
	s390_pass_by_reference, s390_fixed_condition_code_regs,
	s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
	s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
	s390_chunkify_cancel, s390_start_pool, s390_end_pool,
	s390_add_pool_insn, s390_find_pool, s390_add_constant,
	s390_find_constant, s390_add_execute, s390_find_execute,
	s390_execute_label, s390_execute_target, s390_dump_pool,
	s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
	Move target macro definitions to the end of the file.  Move several
	functions within the file to assure correct compiling.

2005-05-09  Steven Bosscher  <stevenb@suse.de>

	* calls.c (purge_reg_equiv_notes): Remove, fold into...
	(fixup_tail_calls): ...here.  Only look at insns between the
	start of the function and the FUNCTION_BEG insn note.

	* gcse.c (one_cprop_pass): Fix typos in dumps.

	* tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.

2005-05-09  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
	* config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
	"RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
	Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
	CC_REGNUM)'.
	("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
	'(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
	("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
	REG_SC)'.

2005-05-09  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md: ("gf") New mode attribute.
	("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
	"fixuns_truncsfsi2"): Merge.
	("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
	("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
	"fix_truncsfsi2_ieee"): Merge.

2005-05-09  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md: ("FPR") New mode macro.
	("de", "dee"): New mode attributes.
	("cmpdf", "cmpsf"): Merge.
	("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
	("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
	("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
	("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
	("floatdidf2", "floatdisf2"): Merge.
	("adddf3", "addsf3"): Merge.
	("*adddf3", "*addsf3"): Merge.
	("*adddf3_cc", "*addsf3_cc"): Merge.
	("*adddf3_cconly", "*addsf3_cconly"): Merge.
	("*adddf3_ibm", "*addsf3_ibm"): Merge.
	("subdf3", "subsf3"): Merge.
	("*subdf3", "*subsf3"): Merge.
	("*subdf3_cc", "*subsf3_cc"): Merge.
	("*subdf3_cconly", "*subsf3_cconly"): Merge.
	("*subdf3_ibm", "*subsf3_ibm"): Merge.
	("muldf3", "mulsf3"): Merge.
	("*muldf3", "*mulsf3" "): Merge.
	("*muldf3_ibm", "*mulsf3_ibm"): Merge.
	("*fmadddf", "*fmaddsf"): Merge.
	("*fmsubdf", "*fmsubsf"): Merge.
	("divdf3", "divsf3"): Merge.
	("*divdf3", "*divsf3"): Merge.
	("*divdf3_ibm", "*divsf3_ibm"): Merge.
	("negdf2", "negsf2"): Merge.
	("*negdf2_cc", "*negsf2_cc"): Merge.
	("*negdf2_cconly", "*negsf2_cconly"): Merge.
	("*negdf2", "*negsf2"): Merge.
	("*negdf2_ibm", "*negsf2_ibm"): Merge.
	("absdf2", "abssf2"): Merge.
	("*absdf2_cc", "*abssf2_cc"): Merge.
	("*absdf2_cconly", "*abssf2_cconly"): Merge.
	("*absdf2", "*abssf2"): Merge.
	("*absdf2_ibm", "*abssf2_ibm"): Merge.
	("*negabsdf2_cc", "*negabssf2_cc"): Merge.
	("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
	("*negabsdf2", "*negabssf2"): Merge.
	("sqrtdf2", "sqrtsf2"): Merge.

2005-05-09  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.c: (s390_adjust_priority): Adapt to changed
	attribute names.
	* config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
	"x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
	("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
	"x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
	attribute names.
	* config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
	fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
	"fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
	fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
	("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
	"*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
	"*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
	"*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
	"*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
	"mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
	"*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
	"*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
	"*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
	"*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
	"*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
	"*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
	'type' value.
	("*divsf3"): Additionally rename second pattern to
	"*divsf3_ibm".
	("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
	"*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
	"*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
	"subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
	"subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
	'type values' and rename 'type' value.
	("*addsf3"): Additionally rename second pattern to
	"*addsf3_ibm".

2005-05-09  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md: ("SHIFT"): New mode macro.
	("lr", "shift"): New mode attributes.
	("ashldi3", "lshrdi3"): Merge.
	("*ashldi3_31", "*lshrdi3"_31): Merge.
	("*ashldi3_64", "*lshrdi3"_64): Merge.
	("ashlsi3", "lshrsi3"): Merge.

2005-05-09  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md: ("DSI", "SCOND"): New mode
	macros.
	("E", "g"): New mode attributes.
	("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
	("*adddi3_alc", "*addsi3_alc"): Merge.
	("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
	("*subdi3_slb", "*subsi3_slb"): Merge.
	("adddicc", "addsicc"): Merge.
	("*sconddi", "*scondsi"): Merge.
	("*sconddi_neg", "*scondsi_neg"): Merge.
	("sltu", "sgtu", "sleu", "sgeu"): Merge.
	("negdi2", "negsi2"): Extract expander pattern from
	"negsi2" and merge with "negdi2".
	("*negdi2"): Merge with instruction pattern of "negsi2".
	("*negdi2_cc", "*negsi2_cc"): Merge.
	("*negdi2_cconly", "*negsi2_cconly"): Merge.
	("rotldi3", "rotlsi3"): Merge.

2005-05-09  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md: ("hc"): New mode attribute.
	("extendhidi2", "extendqidi2"): Merge.
	("*extendhidi2", "*extendqidi2"): Merge.
	("extendhisi2", "extendqisi2"): Merge.
	("zero_extendhidi2", "zero_extendqidi2"): Merge.
	("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
	Merged 2 define_split.
	("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
	("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.

2005-05-09  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md: ("COMPARE"): New mode macro.
	("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
	"ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
	"bungt", "bunle", "bunge", "bltgt"): Merge.

2005-05-09  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md: ("INT"): New mode macro.
	("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
	Merge.

2005-05-09  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md: ("GPR", "P"): New mode macros.
	("cmpdi", "cmpsi"): Merge.
	("strlendi", "strlensi"): Merge.
	("*strlendi", "*strlensi"): Merge.
	("movmemdi", "movmemsi"): Merge.
	("clrmemdi", "clrmemsi"): Merge.

2005-05-09  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.md: ("HQI"): New mode macro.
	("icm_lo", "icm_hi", "max_uint"): New mode attributes.
	("*tmhi_full", "*tmqi_full"): Merge.
	("*tsthiCCT", "*tstqiCCT"): Merge.
	("*tsthi", "*tstqi"): Merge.
	("*tsthi_cconly", "tstqi_cconly"): Merge.
	("*sethighhisi", "*sethighqisi"): Merge.

2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>

	* crtstuff.c, integrate.h, tree-scalar-evolution.h,
	config/alpha/unicosmk.h, config/arc/arc.md,
	config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
	config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
	config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
	config/arm/semi.h, config/arm/uclinux-elf.h,
	config/arm/wince-pe.h, config/fr30/fr30.c,
	config/rs6000/altivec.h: Update copyright.

2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>

	* config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
	gcc_assert and gcc_unreachable as appropriate.
	(pdp11_output_function_epilogue, output_move_double,
	output_move_quad, print_operand_address, output_jump,
	output_addr_const_pdp11): Likewise.
	* config/pdp11/pdp11.h (FUNCTION_PROFILER,
	ASM_OUTPUT_ALIGN): Likewise.
	* config/pdp11/pdp11.md: Likewise.
	(extendhisi2, subhi3, subqi3): Likewise.

2005-05-09  David Edelsohn  <edelsohn@gnu.org>

	PR middle-end/21237
	* dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
	to NE_EXPR case.

2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>

	* config/ia64/ia64.c: Fix a comment typo.

2005-05-09  Richard Earnshaw  <rearnsha@arm.com>

	PR target/21397
	* arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
	(arm_override_options): Use them instead of manifest constants.  Don't
	allow -march to override the -mtune setting.

2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>

	* config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
	(gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
	(function_arg_advance, function_arg, save_restore_insns,
	iq2000_expand_prologue, iq2000_output_conditional_branch,
	expand_one_builtin, print_operand):
	* config/iq2000/iq2000.md (tablejump): Likewise.

2005-05-09  David Ung  <davidu@mips.com>

	* config/mips/mips.h (processor_type): Add names for the 24K.
	* config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
	processor family.
	* config/mips/mips.md (cnv_mode): New attribute for recording the
	conversion types of float convert insns.
	(cpu): Add 24k and 24kx.
	(include): Include 24k.md file.
	(truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
	(fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
	(floatdisf2): Setup cnv_mode.
	(fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
	setup cnv_mode.
	* config/mips/24k.md: New file, contains 24k DFA pipeline
	description.

2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>

	* config/sh/sh.c (print_operand_address): Use gcc_assert and
	gcc_unreachable as appropriate.
	(print_operand, prepare_move_operands, prepare_scc_operands,
	output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
	gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
	fixup_mova, gen_far_branch, sh_reorg, split_branches,
	final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
	sh_set_return_address, sh_setup_incoming_varargs,
	initial_elimination_offset, sh_pch_valid_p, get_free_reg,
	sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
	check_use_sfunc_addr): Likewise.
	* config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
	* config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
	* config/sh/symbian.c (sh_symbian_mark_dllexport,
	sh_symbian_mark_dllimport): Likewise.
	* config/sh/sh.md: Likewise.
	(movdicc, call_pop, call_value_pop, casesi_worker_1,
	casesi_worker_2, casesi_shift_media, casesi_load_media,
	return_media): Likewise.

2005-05-08  Roger Sayle  <roger@eyesopen.com>

	PR inline-asm/8788
	* stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
	operands.

2005-05-08  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (adjust_address): Fix typo last change.

2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
	and -1 can happen in reg_renumber when no hard register is assigned.

2005-05-08  Steven Bosscher  <stevenb@suse.de>
	    Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/14841, tree-optimization/15838
	* tree-ssa-ccp.c (fold_const_aggregate_ref): New.
	(evaluate_stmt): Call it.

2005-05-08  Jakub Jelinek  <jakub@redhat.com>

	* config/ia64/ia64.c (ia64_override_options): Don't set
	ia64_flag_var_tracking and clear flag_var_tracking here...
	(ia64_file_start): ... but here.

2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
	and gcc_unreachable as appropriate.
	(expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
	m68hc11_gen_highpart, print_operand, print_operand_address,
	m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
	m68hc11_gen_movhi): Likewise.
	* config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
	* config/m68hc11/m68hc11.md: Reword comment.

2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>

	PR target/21281
	* config/m68hc11/predicates.md (splitable_operand): An immediate is
	allowed.

2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
	the 68HC12 address indirect addressing mode as it is not supported by
	bset and bclr.
	* config/m68hc11/m68hc11-protos.h
	(m68hc11_valid_addressing_p): Declare.
	(m68hc11_add_mode): Declare.
	* config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
	register_indirect_p and export it.
	(m68hc11_z_replacement): Use emit_insn_after when adding the save Z
	instruction so that it is part of the good BB.
	(m68hc11_gen_movhi): Fix invalid generation of indexed indirect
	addressing with movw.
	(m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
	68HC12.
	* config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
	ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
	* config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
	for 68HC11.
	("*movhi_68hc12"): Handle movhi_const0.
	("*subhi3", "subqi3"): Use general_operand for operand 1.
	("*subhi3_zext"): Likewise.

2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>

	PR target/19051
	* config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
	operand 1 and fix constraints.
	("mulqihi3"): Use general_operand for operand 2.

2005-05-08  Julian Brown  <julian@codesourcery.com>
	    H.J. Lu  <hongjiu.lu@intel.com>
	    Paul Brook  <paul@codesourcery.com>

	* configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
	GNU linker. Support linker version x.x.x.x.x. Require GNU linker
	20050308/2.16.0 or newer for comdat group.
	* configure: Regenerated.
	* config.in: Regenerated.
	* varasm.c (default_function_rodata_section): Put .rodata section in
	COMDAT group when necessary.
	(default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
	HAVE_COMDAT_GROUP.
	(default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
	available.

2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
	instead of VARRAY.
	* tree-flow.h (num_referenced_var, referenced_var): Likewise.
	* tree-into-ssa.c (mark_def_site_blocks): Likewise.
	* tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
	* tree-tailcall.c (suitable_for_tail_opt_p): Likewise.

2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>

	PR target/16925
	* config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
	64-bit constants on 64-bit hosts.
	(m68hc11_split_logical): Simplify.
	(m68hc11_split_move): Likewise.

2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
	    Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
	* aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
	* configure.ac (enable_checking): Fix typos in runtime_checking.
	(ENABLE_RUNTIME_CHECKING): Mark as target template.
	(xm_file): Prepend auto-host.h
	(HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
	* mkconfig.sh: Do not automatically define USED_FOR_TARGET in
	tconfig.h.
	* crtstuff.c: Do not include auto-host.h.
	(IN_LIBGCC2): Do not define.
	* gcov-io.h: Include tconfig.h, not auto-host.h.
	* libgcc2.c: Do not include auto-host.h.
	(abort): Do not undefine.
	* libgcov.c: Remove unneeded comment about config.h.
	* unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
	* config.in, configure: Regenerated.

2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
	    Falk Hueffner  <falk@debian.org>

	* config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
	and gcc_unreachable as appropriate.
	(get_aligned_mem, get_unaligned_address,
	alpha_emit_set_long_const, alpha_emit_conditional_branch,
	alpha_emit_setcc, alpha_emit_conditional_move,
	alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
	alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
	alpha_expand_unaligned_load, alpha_expand_block_move,
	alpha_expand_zap_mask, get_trap_mode_suffix,
	get_round_mode_suffix, get_some_local_dynamic_name,
	print_operand_address, function_arg, alpha_return_in_memory,
	function_value, alpha_expand_builtin,
	alpha_initial_elimination_offset, alpha_expand_epilogue,
	summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
	alphaev5_next_group, alpha_align_insns,
	unicosmk_initial_elimination_offset, unicosmk_unique_section,
	unicosmk_ssib_name): Likewise.
	* config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
	* config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
	ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
	* config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
	ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
	* config/alpha/alpha.md (*divmodsi_internal_er,
	*divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
	call_nt, call_umk, call_vms, call_value, sibcall_value,
	call_value_osf, call_value_nt, call_value_vms, call_value_umk,
	*call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
	* config/alpha/predicates.md (input_operand): Likewise.

2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>

	* config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
	gcc_unreachable, as appropriate.
	(frv_function_prologue, frv_alloc_temp_reg,
	frv_initial_elimination_offset, frv_expand_block_move,
	frv_expand_block_clear, frv_print_operand_jump_hint,
	frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
	frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
	frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
	frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
	frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
	frv_in_small_data_p, frv_asm_out_constructor,
	frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
	* config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
	*cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
	*cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
	sibcall_value, casesi): Likewise.

	* config/mn10300/mn10300.c (print_operand): Use gcc_assert and
	gcc_unreachable as appropriate.
	(print_operand_address, mn10300_print_reg_list, expand_prologue,
	expand_epilogue, notice_update_cc, initial_offset,
	mn10300_address_cost_1): Likewise.
	* config/mn10300/mn10300.md: Likewise.
	(absdf2, abssf2, negdf2, negsf2): Likewise.

2005-05-08  Richard Sandiford  <rsandifo@redhat.com>

	PR target/21416
	* config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
	comparisons.
	* config/mips/mips.md (swapped_fcond): New code macro and attribute.
	(sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
	including sunge_<mode> and sungt_<mode>.

2005-05-08  Richard Sandiford  <rsandifo@redhat.com>

	* integrate.h (get_hard_reg_initial_val): Change type of register
	parameter from int to unsigned int.
	(has_hard_reg_initial_val): Likewise.
	* integrate.c (get_hard_reg_initial_val): Likewise.
	(has_hard_reg_initial_val): Likewise.  Remove cast to unsigned int.

2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>

	* except.c (eh_status): Change the type of ttype_data to
	VEC(tree,gc)*.
	(add_ttypes_entry, assign_filter_values,
	output_function_exception_table): Use VEC instead of VARRAY.

2005-05-07  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.

2005-05-07  Paul Brook  <paul@codesourcery.com>

	* Makefile.in: Fix dependencies.
	(GCOV_IO_H, VARRAY_H): Set.

2005-05-07  Anthony Green  <green@redhat.com>

	PR bootstrap/21403
	* configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
	x$STMP_FIXPROTO test.
	* configure: Rebuilt.

2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>

	* config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
	inappropriate feature test macros if flag_iso.

2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>

	* config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.

2005-05-07  Hans-Peter Nilsson  <hp@axis.com>

	PR target/21441
	* config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
	("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
	Handle moved operand being in special register.
	("smulsi3_highpart", "umulsi3_highpart"): Change .error into
	presumed working insn.
	(mover2side): Add FIXME.

2005-05-07  Richard Sandiford  <rsandifo@redhat.com>

	* integrate.c (get_func_hard_reg_initial_val): Delete.
	(has_func_hard_reg_initial_val): Delete.
	(get_hard_reg_initial_val): Inline the old implementation of
	get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
	instead of has_func_hard_reg_initial_val to test for an existing
	pseudo.  Only create an rtx if a new initial value entry is needed.
	(has_hard_reg_initial_val): Scan the initial value list directly.
	Don't create an rtx.

2005-05-07  David Edelsohn  <edelsohn@gnu.org>

	* config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
	from extra_options.
	* config.in (HAVE_AS_POPCNTB): New.
	* configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
	(HAVE_AS_POPCNTB): New.
	* configure: Regenerated.
	* config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
	* config/rs6000/rs6000.c (rs6000_override_options, power5): Add
	MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
	and rs6000_sched_costly_dep.
	* config/rs6000/rs6000.h (TARGET_POPCNTB): New.
	(TARGET_XL_COMPAT): Delete.
	* config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
	(popcount<mode>2): New.
	(popcntb<mode>2): New.
	* config/rs6000/rs6000.opt (mpopcntb): New.

	* opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
	if variable name exists.

2005-05-07  Matt Kraai  <kraai@ftbfs.org>

	* Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.

2005-05-07  Richard Henderson  <rth@redhat.com>

	PR target/21412
	* config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
	with constant offsets.

2005-05-07  Nathan Sidwell  <nathan@codesourcery.com>

	* config/v850/v850.c (print_operand): Use gcc_assert and
	gcc_unreachable, as appropriate.
	(print_operand_address, v850_handle_data_area_attribute,
	v850_encode_data_area, construct_restore_jr, construct_save_jarl,
	v850_insert_attributes, construct_prepare_instruction): Likewise.
	* config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
	* config/v850/v850.md (movsicc, *sasf_1): Likewise.

2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-loop-ivcanon.c, config/i386/i386.c,
	config/rs6000/rs6000.h: Fix comment typos.

2005-05-07  Richard Sandiford  <rsandifo@redhat.com>

	* doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
	* config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
	(mips_scalar_mode_supported_p): Delete.

2005-05-06  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.opt: Remove -mint64 option.
	* config/mips/mips.c (override_options): Remove -mint64
	handling.
	* config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
	* config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
	64-bit integer handling.
	* doc/invoke.texi (Option Summary): Remove -mint64 for
	mips.

2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/19401
	* tree-flow.h (tree_unroll_loops_completely): Declaration changed.
	* tree-ssa-loop-ivcanon.c (enum unroll_level): New.
	(estimated_unrolled_size): New function.
	(try_unroll_loop_completely, canonicalize_loop_induction_variables,
	tree_unroll_loops_completely): Always unroll loops if the code size
	does not increase.
	* tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
	loops should be unrolled completely.
	(gate_tree_complete_unroll): Run complete unrolling unconditionally.

2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>

	PR rtl-optimization/21254
	* loop-iv.c (iv_number_of_iterations): Simplify infiniteness
	assumptions for loops that otherwise do not roll.
	(find_simple_exit): Prefer # of iterations that is guaranteed
	not to be infinite.
	* loop-unroll.c (decide_peel_once_rolling,
	decide_peel_completely): Check whether the loop is infinite.

2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/sysv4.opt: Fix typo.

2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/21329
	* config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
	for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
	Don't use rep; movs{l,q} if the repetition count is really small,
	instead use a sequence of movs{l,q} instructions.

2005-05-06  Jeff Law  <law@redhat.com>

	PR tree-optimization/21380
	* tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
	thread through a block with no preds.

2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
	ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
	add_call_read_ops): Use VEC instead of VARRAY.

2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>

	* config/mcore/mcore.c (mcore_print_operand_address): Use
	gcc_assert and gcc_unreachable as appropriate.
	(mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
	mcore_output_andn, output_inline_const, mcore_output_move,
	mcore_output_movedouble, mcore_expand_block_move,
	layout_mcore_frame, mcore_initial_elimination_offset,
	mcore_expand_prolog, mcore_mark_dllexport,
	mcore_mark_dllimport): Likewise.
	* config/mcore/mcore.h (switch_to_section): Likewise.
	* config/mcore/mcore.md: Likewise.

2005-05-06  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
	TARGET_PROFILE_KERNEL.

	* config/rs6000/rs6000.c (output_profile_hook): Add comment to
	TARGET_PROFILE_KERNEL use.

2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
	and gcc_unreachable, as appropriate.
	(gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
	m32r_expand_prologue, m32r_output_function_epilogue,
	m32r_legitimize_pic_address, m32r_print_operand_address,
	emit_cond_move, m32r_function_symbol,
	m32r_output_block_move): Likewise.
	* config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
	* config/m32r/m32r.md (	*movsi_insn, *zero_branch_insn,
	*rev_zero_branch_insn): Likewise.

2005-05-06  Jakub Jelinek  <jakub@redhat.com>

	PR c++/20961
	* varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
	if both NEWDECL and OLDDECL are already weak.

2005-05-06  Richard Sandiford  <rsandifo@redhat.com>

	* config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.

2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
	and plus_constant.

2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
	    David Edelsohn  <edelsohn@gnu.org>

	* config.gcc: Add .opt magic for the rs6000 ports.

	* doc/invoke.texi: Document -mabi= option properly.  Document
	-misel and -mno-sel.  Document -mspe and -mno-spe.  Document
	-mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
	-misel=.

	* config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
	SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
	TARGET_XL_COMPAT.

	* config/rs6000/aix.opt: New.
	* config/rs6000/aix41.opt: New.
	* config/rs6000/aix64.opt: New.
	* config/rs6000/darwin.opt: New.
	* config/rs6000/linux64.opt: New.
	* config/rs6000/rs6000.opt: New.
	* config/rs6000/sysv4.opt: New.

	* config/rs6000/sysv4.h: Delete definitions of MASK_* and
	associated TARGET_*.  Remove SUBTARGET_OPTIONS,
	SUBTARGET_SWITCHES.
	Define TARGET_USES_SYSV4_OPT.
	* config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
	* config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
	TARGET_USES_AIX64_OPT.
	* config/rs6000/aix51.h: Same.
	* config/rs6000/aix52.h: Same.
	* config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
	MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
	Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
	Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
	* config/rs6000/linux64.h: Use
	rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.

	* config/rs6000/rs6000.c: Remove definitions of
	rs6000_sched_restricted_insns_priority,
	rs6000_long_double_size_string, rs6000_altivec_vrsave,
	rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
	rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
	rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
	rs6000_alignment_string.  Define rs6000_explicit_options.
	(rs6000_parse_abi_options): Remove.
	(rs6000_parse_alignment_option): Remove.
	(rs6000_parse_float_gprs_option): Remove.
	(rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
	TARGET_DEFAULT_TARGET_FLAGS.
	(rs6000_override_options): Revamp to use new .opt machinery.

	* config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
	of new .opt machinery.  Remove target_flags.  Redefine
	TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
	SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
	rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
	rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
	rs6000_longcall_switch, rs6000_default_long_calls,
	rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
	rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
	TARGET_ALTIVEC_VRSAVE.

2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config.gcc (hppa1.1-*-rtems*): Remove.
	* config/pa/rtems.h: Remove.

2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
	Exclude roe/603e multilib variants.

2005-05-04  Denis Chertykov  <denisc@overta.ru>

	PR target/21284
	* config/avr/avr.c (avr_output_addr_vec_elt): Use special section
	for output.

2005-05-05  Richard Sandiford  <rsandifo@redhat.com>

	* config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
	arm/pe.opt to $extra_options.
	* config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
	(target_float_abi_name, target_float_switch, target_abi_name)
	(ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
	(ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
	(ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
	(ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
	(ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
	(THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
	(THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
	(TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
	(TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
	(TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
	(TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
	(TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
	(TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
	(TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
	(arm_pic_register_string): Delete.
	(TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
	TARGET_TPCS_FRAME.
	(TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
	* config/arm/coff.h (TARGET_DEFAULT): Likewise.
	* config/arm/elf.h (TARGET_DEFAULT): Likewise.
	* config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
	* config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
	* config/arm/semi.h (TARGET_DEFAULT): Likewise.
	* config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
	* config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
	* config/arm/pe.h (TARGET_DEFAULT): Likewise.
	(TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
	(SUBTARGET_SWITCHES): Delete.
	* config/arm/arm.c (target_float_switch): Delete.
	(arm_cpu_select): Moved from config/arm/arm.h.
	(target_fpu_name, target_fpe_name, target_float_abi_name)
	(target_abi_name, structure_size_string, arm_pic_register_string)
	(arm_select): Make static.
	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
	(arm_handle_option): New function.
	(arm_override_options): Update target_flags checks for new mask names.
	Remove target_float_switch code.
	(arm_expand_prologue, thumb_expand_prologue): Check
	!TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
	* config/arm/arm.opt, config/arm/pe.opt: New files.

2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>

	* config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
	gcc_unreachable as appropriate.
	(arc_double_limm_p, arc_setup_incoming_varargs,
	arc_compute_function_type, arc_output_function_prologue,
	arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
	output_shift, arc_print_operand, arc_print_operand_address,
	arc_final_prescan_insn): Likewise.
	* config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.

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

	* config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
	comparing Pmode.
	(SDI): New.
	(cmp): Delete.
	(wd): New.
	(add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
	add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
	clz<mode>2, ctz<mode>2, ffs<mode>2): New.
	(addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
	(one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
	(adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
	(one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
	(sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.

2005-05-05  Paul Brook  <paul@codesourcery.com>

	* Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
	cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
	regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
	and tree-data-ref.h with *_H variables.

2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>

	* config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.

2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>

	* system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.

2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.

2005-05-04 Fariborz Jahanian <fjahanian@apple.com>

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
	setting of vrsave register for current function after
	call to save_world is emitted.

2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/predicates.md: New file.
	* config/mmix/mmix.c (mmix_symbolic_or_address_operand)
	(mmix_reg_or_constant_operand, mmix_reg_cc_operand)
	(mmix_foldable_comparison_operator, mmix_comparison_operator)
	(mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
	* config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
	Don't define.
	* config/mmix/mmix.md: Include predicates.md.
	("call", "call_value"): Force address to register if it isn't a
	mmix_symbolic_or_address_operand.

2005-05-04  Andrew MacLeod  <amacleod@redhat.com>

	* tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
	the flags are of appropriate types.
	(num_ssa_operands): Generalize using the generic interface.
	* tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
	iterator.

2005-05-04  Richard Sandiford  <rsandifo@redhat.com>

	* protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
	(keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.

2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-outof-ssa.c (edge_leader, stmt_list,
	analyze_edges_for_bb): Use VEC instead of VARRAY.
	(init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
	(perform_edge_inserts): Call init_analayze_edges_for_bb and
	fini_analayze_edges_for_bb.

2005-05-04  James E Wilson  <wilson@specifixinc.com>

	PR driver/21112
	* gcc.c (process_command): In the second argv scan loop, ignore
	Xassembler and Xpreprocessor, along with their argument.

2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-flow-inline.h, tree-ssa-operands.c,
	tree-ssa-operands.h, tree-ssa-opfinalize.h:
	Likewise. tree-vn.c: Fix comment typos.
	* doc/passes.texi, doc/tree-ssa.texi: Fix typos.

2005-05-04  Paolo Bonzini  <bonzini@gnu.org>

	* doc/tm.texi (Target Hooks): Document
	TARGET_RESOLVE_OVERLOADED_BUILTIN.

2005-05-04  Paul Brook  <paul@codesourcery.com>

	* Makefile.in: Change dependencies on target.h to $(TARGET_H).

2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>

	* dwarf2out.c (incomplete_types, retry_incomplete_types,
	gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
	of VARRAY.

	* loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
	get_expansion, expand_var_during_unrolling,
	insert_var_expansion_initialization,
	combine_var_copies_in_loop_exit, release_var_copies): Use VEC
	instead of VARRAY.

	* tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
	update_stmt.

2004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/15618
	* fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
	the same as INTEGER_TYPE.
	(fold_binary): Fold "bool_var != 0" to bool_var.
	Fold "bool_var == 1" to bool_var.

2004-05-03  Richard Henderson  <rth@redhat.com>

	PR middle-end/21318
	* function.c (instantiate_virtual_regs_in_insn): Use the mode
	from recog_data instead of insn_data.

2005-05-03  DJ Delorie  <dj@redhat.com>

	* common.opt (fdiagnostics-show-option): No variable is needed.
	* diagnostic.h (diagnostic_context): Add show_option_requested flag.
	* diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
	(diagnostic_report_diagnostic): Test for enabled diagnostics here.
	Save and restore original message format.  Use flag in context
	instead of global.
	(warning): Don't test for enabled warnings here.
	* opts.c (common_handle_option): Handle -fdiagnostics-show-option
	here.

2005-05-04  Kelley Cook  <kcook@gcc.gnu.org>

	* config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
	* config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
	* mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
	* aclocal.m4: Don't include accross.m4.
	* configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
	Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
	* configure, config.in: Regenerate.

2005-05-04  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/21265
	* expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
	(clear_storage): Add argument.
	* expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
	Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
	tailcall.
	(emit_block_move): Handle BLOCK_OP_TAILCALL method.
	(clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
	(store_expr, store_constructor): Adjust callers.
	* builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
	to emit_block_move if CALL_EXPR_TAILCALL (exp).
	(expand_builtin_memmove): Add ORIG_EXP argument, copy
	CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
	(expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
	with EXP.  Pass EXP to expand_builtin_memmove.
	(expand_builtin_memset): Add ORIG_EXP argument, pass
	BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
	(expand_builtin_bzero): Replace ARGLIST argument with EXP.
	Pass EXP to expand_builtin_memset.
	(expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
	the new CALL_EXPR.
	(expand_builtin_strncmp): Likewise.
	(expand_builtin_printf): Replace ARGLIST argument with EXP.
	Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
	(expand_builtin_fprintf): Likewise.
	(expand_builtin): Adjust calls to
	expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.

	* config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
	item in V4SF mode.

	PR rtl-optimization/21239
	* combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.

2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-flow.h (tree_ann_common_d): Move aux to ...
	(stmt_ann_d): ... here.
	* tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
	move_computations_stmt, schedule_sm): Update references to
	aux.
	* tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.

	* tree-cfg.c (remove_bb): Remove a redundant call to
	set_bb_for_stmt.
	* tree-if-conv.c (replace_phi_with_cond_modify_expr):
	Likewise.

2005-05-03  Richard Henderson  <rth@redhat.com>

	* config/rs6000/rs6000.c: Remove conflict markers.

	* cfg.c (dump_flow_info): Use max_reg_num, not max_regno.

2005-05-03  James E Wilson  <wilson@specifixinc.com>

	* dwarf2out.c (lookup_filename): Call maybe_emit_file.

2005-05-03  DJ Delorie  <dj@redhat.com>

	* c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
	decide if the warning will be printed.
	* calls.c (expand_call): Likewise.
	* function.c (init-function_start): Likewise.

	* common.opt (-fdiagnostics-show-option): New.
	* opts.c (option_enabled): Accept the option index instead of a
	pointer to the option descriptor.
	* opts.h (option_enabled): Likewise.
	* toplev.c (print_switch_values): Pass option index, not option
	descriptor.
	* diagnostic.h (diagnostic_info): Add option_index.
	* diagnostic.c: Include opts.h.
	(diagnostic_set_info): Initialize option_index.
	(diagnostic_report_diagnostic): Amend option name if appropriate.
	(warning): Check to see if the specified warning is enabled.
	Store option index.
	* doc/invoke.texi (-fdiagnostics-show-options): Document.

2005-05-03  Richard Henderson  <rth@redhat.com>

	* config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
	SPEC_OR_GEN_REGS definitions.

2005-05-03  Alexandre Oliva  <aoliva@redhat.com>

	PR target/16888
	* config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
	for unavailable registers.

2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-cfg.c (tree_forwarder_block_p): Fix a typo.

	* cfglayout.c (block_locators_blocks,
	insn_locators_initialize, insn_scope): Use VEC instead of
	VARRAY.

	* tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
	mudflap_finish_file, mudflap_finish_file): Use VEC instead of
	VARRAY.

2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/predicates.md (const_compl_high_operand): New.
	* config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
	gen_safe_HIGH64.
	(sparc_emit_set_const64_quick1): Adjust for above change.
	(sparc_emit_set_const64_quick2): Likewise.
	(sparc_emit_set_const64_longway): Likewise.
	(sparc_emit_set_const64): Likewise.
	* config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
	movdi_const64_special): Delete.
	(logical constant splitters): Use const_compl_high_operand.

2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>

	* tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
	rather than STRIP_NOPS.

2005-05-03  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/21330
	* loop-unswitch.c (may_unswitch_on): Set *cinsn only when
	returning non-NULL.
	(unswitch_single_loop): Clear cinsn when retrying.

	PR target/21297
	* config/i386/i386.c (legitimize_address): When canonicalizing
	ASHIFT into MULT, multiply by 1 << shift_count instead of
	1 << log2 (shift_count).

2005-05-03  Andrew MacLeod  <amacleod@redhat.com>

	* lambda-code.c (gcc_loop_to_lambda_loop,
	lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
	stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
	generic operand interface.
	* tree-data-ref.c (find_data_references_in_loop): Use generic interface.
	* tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
	generic operand interface.
	* tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
	link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
	next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
	num_imm_uses): Use ssa_use_operand_t.
	(get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
	get_v_must_def_ops): Delete.
	(get_def_from_ptr, get_phi_result_ptr): Get def directly now.
	(get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
	get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
	get_v_must_def_kill_ptr): Delete.
	(delink_stmt_imm_use): Move and use new operand interface.
	(op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
	op_iter_next_tree): Use new operand implementation.
	(clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
	(op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
	type check.
	(op_iter_next_mustdef, op_iter_next_maydef,
	op_iter_next_must_and_may_def): Delete. Replace with...
	(op_iter_next_maymustdef): New.  Combine must and may next operations.
	(op_iter_init_maydef, op_iter_init_mustdef,
	op_iter_init_must_and_may_def): Use new interface.
	(single_ssa_tree_operand ): New.  Process single operands only as trees.
	(single_ssa_use_operand): New.  Process single operands only as uses.
	(single_ssa_def_operand): New.  Process single operands only as defs.
	(zero_ssa_operands): New.  Return TRUE if there are zero operands of the
	specified types.
	(num_ssa_operands): New.  Count the number of specified operands.
	(compare_ssa_operands_equal): New.  Compare two statements' operands.
	(single_phi_def): New.  Return true if PHI has one def of the specified
	operand type.
	(op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
	(op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
	* tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
	(struct stmt_ann_d): Operands field no longer require GTY().
	(vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
	* tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
	* tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
	dump_replaceable_exprs, rewrite_trees): Use generic interface.
	* tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
	Use use_operand_p instead of ssa_imm_use_t *.
	* tree-pretty-print.c (dump_vops): check if operands are active before
	dumping virtual operands.
	* tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
	* tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
	(ccp_fold): Use new interface.
	(ccp_visit_stmt): Remove unused variables and code.
	(convert_to_gimple_builtin): Insert statements before calling
	mark_new_vars_to_rename.
	* tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
	(copy_prop_visit_cond_stmt): Use generic interface.
	* tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
	annotation in table.
	(thread_across_edge): Use generic interface.
	(initialize_hash_element): Initialzie with stmt, not annotation.
	(eliminate_redundant_computations): Use generic interface.
	(record_equivalences_from_stmt): Pass stmt, not annotation.
	(avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
	interface.
	* tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
	* tree-ssa-loop-ivopts.c (find_invariants_stmt,
	find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
	generic operand interface.
	* tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
	interface.
	* tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
	Interface.
	* tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
	(build_defs, build_uses, build_v_may_defs, build_vuses,
	build_v_must_defs): Change type to struct opbuild_list_d.
	(ops_active): New.  Operands active boolean.
	(operand_memory, operand_memory_index): New.  Operand memory managers.
	(allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
	allocate_vuse_optype, allocate_v_must_def_optype): Delete.
	(free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
	Change from functions to static variable list heads.
	(opbuild_initialize_virtual): New.  Initialize a virtual build list.
	(opbuild_initialize_real): New.  Initialize a virtual build list.
	(opbuild_free): New.  Free a build list.
	(opbuild_num_elems): New.  Number of items in a list.
	(opbuild_append_real): New.  Add a real (tree *) operand.
	(opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
	(opbuild_first): New.  Return first element index in a list.
	(opbuild_next): New.  Return next element in a list.
	(opbuild_elem_real): New.  Return real element.
	(opbuild_elem_virtual): New.  Return virtual element.
	(opbuild_elem_uid): New.  Return UID of virtual element.
	(opbuild_clear): New.  Reset an operand list.
	(opbuild_remove_elem): New.  Remove an element form a list.
	(ssa_operands_active): New.  Return true if operand cache is active.
	(init_ssa_operands, fini_ssa_operands): Initialize new implementation.
	(ssa_operand_alloc): New.  Allocate memory from an operand chunk.
	(correct_use_link): Use use_operand_p.
	(finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
	finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
	(cleanup_v_may_defs): Use new implmentation.
	(finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
	implementation.
	(append_def, append_use, append_v_may_def, append_vuse,
	append_v_must_def): Call opbuild_append routine instead of using varray.
	(build_ssa_operands): Simplify to simply use stmt, don't maintain a
	global parse_old_ops variable.
	(free_ssa_operands): New implementation.
	(update_stmt_operands): Move.  Change argument to build_ssa_operands.
	(copy_virtual_operands): Move. New generic implementation.
	(create_ssa_artficial_load_stmt): Move. New implementation.
	(swap_tree_operands): Update for new implementation.
	(get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
	(add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
	rather than a varray.
	(verify_imm_links): Use use_operand_p.
	(dump_immediate_uses_for): If the immediate use variable is a virtual
	variable, show the virtual ops in the stmt.
	* tree-ssa-operands.h (def_operand_p): No longer a structure.
	(NULL_DEF_OPERAND_P): Now a #define.
	(def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
	vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
	(def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
	mustdef_optype_d): New.  Use Linked list representation.
	(SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
	(struct ssa_operand_memory_d): New.  Allocated Chunk node.
	(struct stmt_operands_d): Change to new pointers that are not GTY.
	(STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
	STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
	SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
	STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
	SET_V_MUST_DEF_KILL): Delete.
	(V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
	V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
	(V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
	V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
	(enum ssa_op_iter_type): Operand iterator typechecking values.
	(struct ssa_operand_iterator_d): Use linked lists of operands.
	(SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
	(FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
	FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
	(FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
	(FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
	(FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
	(SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
	SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
	* tree-ssa-opfinalize.h: New.  Function templates for expansion.
	(FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
	alloc_vuse, and alloc_mustdef.
	(FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
	finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
	and finalize_ssa_v_must_def_ops.
	* tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
	(create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
	stmt around.
	(compute_avail): Use generic iterator interface.
	* tree-ssa-propagate.c (first_vdef): Use generic operand interface.
	(stmt_makes_single_load, stmt_makes_single_store): Use
	ZERO_SSA_OPERANDS.
	* tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
	(statement_sink_location): Use generic interface.
	* tree-ssa.c (verify_ssa): Use %p in fprintf.  Use generic interface.
	(delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
	reset the immediate use link nodes.
	(stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
	* tree-ssanames.c (make_ssa_name): Use use_operand_p.
	* tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
	(eliminate_tail_call): Use generic operand interface.
	* tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
	(vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
	interface.
	* tree-vect-transform.c (update_vuses_to_preheader): Use generic
	interface.
	* tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
	* tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
	vuse_optype.
	(vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
	Use statement pointer instead of vuse_optype.  Use generic interface.
	* tree-vrp.c (maybe_add_assert_expr): Use generic interface.
	(stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
	* tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
	(tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
	* doc/tree-ssa.texi: Update documentation for operand interface.

2005-05-03  Nathan Sidwell  <nathan@codesourcery.com>

	* config/darwin.c (machopic_define_symbol): Use gcc_assert or
	gcc_unreachable as appropriate.
	(machopic_function_base_name, machopic_indirect_data_reference,
	machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
	* config/host-darwin.c (darwin_gt_pch_use_address): Likewise
	* config/rs6000/altivec.md (*mov<mode>_internal,
	build_vector_mask_for_load): Likewise.
	* config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
	*call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
	*sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
	* config/rs6000/predicates.md (easy_fp_constant,
	logical_operand): Likewise.
	* config/rs6000/rs6000.c (spe_expand_predicate_builtin,
	compute_save_world_info, rs6000_emit_prologue,
	rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
	* config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
	directly.

2005-05-03  Uros Bizjak  <uros@kss-loka.si>

	PR middle-end/21282
	* convert.c (convert_to_integer): Convert ceil and floor in
	c99 mode only.

2005-04-29  Geoffrey Keating  <geoffk@apple.com>

	PR target/20813
	* config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
	define_insn_and_split.  Split only when memory operand is
	offsettable.  Use adjust_address rather than plus_constant.
	(floatunssidf2_internal): Likewise.
	(fix_truncdfsi2_internal): Split only when memory operand is
	offsettable.  Use adjust_address rather than plus_constant.
	(fix_trunctfsi2_internal): Likewise.
	(floatsidf2_internal): Likewise.

2005-05-02  Diego Novillo  <dnovillo@redhat.com>

	* tree-vrp.c (set_value_range_to_nonnull): Declare inline.
	(set_value_range_to_null): Likewise.
	(set_value_range_to_varying): New function.  Use it in all
	call sites that used to call set_value_range (vr, VR_VARYING, ...).
	(extract_range_from_assert): If the integral type has a
	super-type, and LIMIT is not within MIN and MAX values of that
	type, set the resulting range to VR_VARYING.

2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.opt: New file.
	* config/mmix/mmix.h: Move options-related comments to mmix.opt.
	(mmix_cc1_ignored_option): Don't declare.
	(TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
	(TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
	(TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
	(TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
	(TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
	(TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
	(TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
	(TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
	Don't define.
	(TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
	* config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
	(TARGET_DEFAULT_TARGET_FLAGS): Override default.

2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/15698
	* c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
	* c-decl.c (current_function_prototype_built_in,
	current_function_prototype_arg_types): New.
	(merge_decls): Keep source location of prototype followed by
	nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
	(builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
	(start_function): Always set current_function_prototype_locus,
	current_function_prototype_built_in and
	current_function_prototype_arg_types.  Check for external
	prototype whether or not visible for external function and set
	current_function_prototype_arg_types accordingly.
	(store_parm_decls_oldstyle): Use
	current_function_prototype_arg_types for checking old-style
	definition against prototype.  Give warnings only if
	current_function_prototype_built_in).

2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* ggc.h (ggc_alloc_zone_pass_stat): New macro.
	(ggc_alloc_zone_stat): Don't define.
	* ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
	ggc_alloc_zone_pass_stat.
	* rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
	* tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
	(make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.

2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* calls.c (expand_call): Handle current_function_pretend_args_size
	when checking for sibcalls.

2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/21294
	* tree-vrp.c (vrp_expr_computes_nonzero): New.
	(extract_range_from_expr): Call vrp_expr_computes_nonzero.

2005-05-02  Janis Johnson  <janis187@us.ibm.com>

	PR 19985
	* gcov-io.h: Declare gcov external functions hidden.

2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
	record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
	Use VEC instead of VARRAY.
	(equiv_free): New.

	* tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
	out common code.

2005-05-02  Paolo Bonzini  <bonzini@gnu.org>

	* c-common.c (resolve_overloaded_builtin): Forward to target
	hook for BUILT_IN_MD built-ins.
	* c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
	for all types of built-in.
	* target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
	in the definition of the target hooks struct.
	* target.h (struct gcc_target): Add resolve_overloaded_builtin.
	* config/rs6000/altivec.h: Rewritten.
	* config/rs6000/rs6000-c.c (struct altivec_builtin_types,
	altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
	rs6000_builtin_type, rs6000_builtin_type_compatible,
	altivec_overloaded_builtins, rs6000_builtin_type,
	rs6000_builtin_type_compatible): New.
	* config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
	New.
	(def_builtin): Turn into a function.  Check for duplicates and store
	the builtin into rs6000_builtin_decls.
	(bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
	bdesc_1arg): Add overloaded builtins.
	(altivec_expand_builtin): Check for unresolved overloaded builtins,
	do not support ALTIVEC_COMPILETIME_ERROR.
	(rs6000_init_builtins): Add opaque 128-bit vector, and internal
	nodes to represent front-end types.
	(altivec_init_builtins, rs6000_common_init_builtins): Create builtins
	with opaque arguments and/or return values.
	* config/rs6000/rs6000.h (enum rs6000_builtins): Remove
	ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
	(rs6000_builtin_type_index): New.
	(is_ev64_opaque_type): Rename to...
	(rs6000_is_opaque_type): ... this.
	(rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
	target hook.

2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>

	* function.c (reorder_blocks, reorder_blocks_1): Use VEC
	instead of VARRAY.

2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
	    Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
	print_address_operand, print_operand, legitimize_pic_address,
	asm_conditional_branch, bfin_gen_compare, output_push_multiple,
	output_pop_multiple): Use gcc_assert or gcc_unreachable as
	appropriate.
	* config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.

2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>

	* doc/passes.texi: Document vectorization pass.

2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-scalar-evolution.c (get_exit_conditions_rec,
	select_loops_exit_conditions,
	number_of_iterations_for_all_loops,
	analyze_scalar_evolution_for_all_loop_phi_nodes,
	scev_analysis): Use VEC instead of VARRAY.

2005-05-02  Michael Matz  <matz@suse.de>

	PR c++/19542
	* c-common.c (c_common_nodes_and_builtins): Create global null_node.
	(warn_strict_null_sentinel): Define.
	(check_function_sentinel): Check for null_node as valid sentinel too.
	* c-common.h (c_tree_index): Added CTI_NULL.
	(null_node) Define global_tree[CTI_NULL].
	(warn_strict_null_sentinel): Declare.
	* c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
	* c.opt: (Wstrict-null-sentinel): New C++ option.
	* doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.

2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>

	* gimplify.c (gimplify_compound_lval): Use VEC instead of
	VARRAY.

	* global.c (calculate_reg_pav): Use VEC instead of VARRAY.

	* dwarf2out.c (decl_scope_table, push_decl_scope,
	pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
	instead of VARRAY.

2005-05-01  Mark Mitchell  <mark@codesourcery.com>

	PR C++/14391
	* c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
	if !flag_weak.
	* doc/cpp.texi (__DEPRECATED): Document.
	(__EXCEPTIONS): Likewise.
	(__GXX_WEAK__): Likewise.

	* function.c (INVOKE__main): Do not define.
	(expand_main_function): Check HAS_INIT_SECTION when determining
	whether or not to call __main.

2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-loop-ivopts.c: Fix a comment typo.

2005-01-05  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
	(INITIALIZE_TRAMPOLINE): Use it.
	* config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
	* config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
	* config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.

2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific): Omit dots in the @anchors names
	for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
	Omit underscores for x86_64-*-* and the "all ELF targets" entry.

2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/18316
	PR tree-optimization/19126
	* tree.c (build_int_cst_type): Avoid shift by size of type.
	* tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
	argument.
	* tree-scalar-evolution.h (simple_iv): Declaration changed.
	* tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
	field.
	(dump_cand): Dump depends_on information.
	(determine_biv_step): Add argument to simple_iv call.
	(contains_abnormal_ssa_name_p): Handle case expr == NULL.
	(find_bivs, find_givs_in_stmt_scev): Do not require step to be a
	constant.
	(add_candidate_1): Record depends_on for candidates.
	(tree_int_cst_sign_bit, constant_multiple_of): New functions.
	(get_computation_at, get_computation_cost_at, may_eliminate_iv):
	Handle ivs with nonconstant step.
	(iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
	(iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
	(create_new_iv): Unshare the step before passing it to create_iv.
	(free_loop_data): Free cand->depends_on.
	(build_addr_strip_iref): New function.
	(find_interesting_uses_address): Use build_addr_strip_iref.
	(strip_offset_1): Split the recursive part from strip_offset.
	Strip constant offset component_refs and array_refs.
	(strip_offset): Split the recursive part to strip_offset_1.
	(add_address_candidates): Removed.
	(add_derived_ivs_candidates): Do not use add_address_candidates.
	(add_iv_value_candidates): Add candidates with stripped constant
	offset.  Consider all candidates with initial value 0 important.
	(struct affine_tree_combination): New.
	(aff_combination_const, aff_combination_elt, aff_combination_scale,
	aff_combination_add_elt, aff_combination_add,
	tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
	fold_affine_sum): New functions.
	(get_computation_at): Use fold_affine_sum.
	* tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
	* tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
	to simple_iv call.

2005-04-30  Michael Matz  <matz@suse.de>

	* config/i386/i386.md (movmemsi): Also active when
	TARGET_INLINE_ALL_STRINGOPS.

2005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR bootstrap/20633
	* config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).

2005-04-30  Paul Brook  <paul@codesourcery.com>

	* config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
	thumb mode.
	* config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
	* config/arm/ieee754-sf.S: Ditto.
	* config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
	(FUNC_ALIAS): Use .thumb_set for thumb routines.

2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssanames.c: Fix a comment typo.
	* doc/options.texi: Fix a typo.

2005-04-30  Nathan Sidwell  <nathan@codesourcery.com>

	* config/h8300/h8300.c (byte_reg): Use gcc_assert and
	gcc_unreachable as appropriate.
	(split_adds_subs, cond_string, print_operand,
	h8300_initial_elimination_offset, h8300_classify_operand,
	h8300_unary_length, h8300_short_immediate_length,
	h8300_bitfield_length, h8300_binary_length,
	h8300_insn_length_from_table, compute_mov_length, output_plussi,
	compute_plussi_length, compute_plussi_cc, output_logical_op,
	compute_logical_op_length, compute_logical_op_cc,
	output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
	output_a_shift, compute_a_shift_length, compute_a_shift_cc,
	output_a_rotate, compute_a_rotate_length, fix_bit_operand,
	h8300_regs_ok_for_stm): Likewise.
	* config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
	monitor_prologue): Likewise.

2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>

	* loop-invariant.c (invariants, create_new_invariant,
	get_inv_cost, best_gain_for_invariant,
	find_invariants_to_move, move_invariants,
	init_inv_motion_data, free_inv_motion_data): Use VEC instead
	of VARRAY.

2005-04-29  Richard Henderson  <rth@redhat.com>

	* function.c (instantiate_decls): Remove valid_only argument.
	(instantiate_decls_1, instantiate_decl): Likewise.
	(instantiate_virtual_regs_1): Delete.
	(instantiate_virtual_regs_lossage): Delete.
	(instantiate_virtual_regs_in_rtx): New.
	(safe_insn_predicate): New.
	(instantiate_virtual_regs_in_insn): New.
	(instantiate_virtual_regs): Update to match all that.  Only run
	instantiate_decls once.

2005-04-29  Richard Henderson  <rth@redhat.com>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* gengtype.c (write_func_for_structure): Split out ...
	(output_type_enum): ... new function.  Fix thinko accessing
	TYPE_PARAM_STRUCT data.

2005-04-29  Tom Tromey  <tromey@redhat.com>

	* tree.c (build_block): Removed unused 'tags' argument.
	* tree.h (build_block): Removed argument.

2005-04-29  Michael Matz  <matz@suse.de>

	PR rtl-optimization/21144
	* postreload.c (reload_cse_move2add): Check for VOIDmode.

2005-04-29  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
	flag_reorder_blocks.

2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/21030
	* tree-vrp.c (adjust_range_with_scev): Do not create invalid
	ranges where VR->MAX is smaller than VR->MIN.

2005-04-29  Devang Patel  <dpatel@apple.com>

	PR tree-optimization/21272
	PR tree-optimization/21266
	* tree-if-conv.c (find_phi_replacement_condition): Fix think-o.

2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-flow-inline.h: Fix a comment typo.
	* doc/tree-ssa.texi: Fix a typo.

	* tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.

2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>

	* config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
	gcc_unreachable as appropriate.
	(fr30_expand_epilogue, fr30_setup_incoming_varargs,
	fr30_print_operand, fr30_move_double): Likewise.
	* config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.

2005-04-29  Mark Mitchell  <mark@codesourcery.com>

	* config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
	definition has already been provided.
	(ARM_EABI_DTORS_SECTION_OP): Likewise.
	* config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
	(ARM_EABI_DTORS_SECTION_OP): Likewise.

2005-04-29  Jim Tison  <jtison@us.ibm.com>

	* config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
	trace hooks calls to improve performance.

2005-04-29  Julian Brown  <julian@codesourcery.com>
	    Mark Mitchell  <mark@codesourcery.com>
	    Paul Brook  <paul@codesourcery.com>

	* crtstuff.c: Handle targets that use .init_array.
	* function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
	that INVOKE__main is set correctly.
	(expand_main_function): Test INVOKE__main.
	* libgcc2.c: Do not define __main when using .init_array.
	* config/arm/arm.c (arm_elf_asm_constructor): New function.
	* config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
	libgcc version.
	(DTORS_SECTION_ASM_OP): Likewise.
	(CTOR_LIST_BEGIN): Define specially when in libgcc.
	(CTOR_LIST_END): Likewise.
	(DTOR_LIST_BEGIN): Likewise.
	(DTOR_LIST_END): Likewise.
	* config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
	(FINI_SECTION_ASM_OP): Likewise.
	(INIT_ARRAY_SECTION_ASM_OP): Define.
	(FINI_ARRAY_SECTION_ASM_OP): Likewise.
	* config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
	(SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
	* doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
	(FINI_ARRAY_SECTION_ASM_OP): Likewise.

2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/m68k.c (m68k_initial_elimination_offset): Use
	gcc_assert and gcc_unreachable as appropriate.
	(output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
	const_int_cost, output_move_const_into_data_reg,
	output_move_qimode, output_move_double, find_addr_reg,
	print_operand, print_operand_address): Likewise.
	* config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
	absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
	sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
	bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
	*bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
	conditional_trap): Likewise.
	* config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.

2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>

	* config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
	gcc_unreachable as appropriate.
	(gen_conditional_move, xtensa_split_operand_pair,
	xtensa_split_operand_pair, xtensa_copy_incoming_a7,
	xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
	xtensa_copy_incoming_a7, xtensa_output_literal,
	xtensa_output_literal, xtensa_output_literal): Likewise.
	* config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
	* config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
	*bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
	movsicc_internal1, movsfcc_internal0,
	movsfcc_internal1): Likewise.

2005-04-28  James E Wilson  <wilson@specifixinc.com>

	* config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
	(ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.

2005-04-28  DJ Delorie  <dj@redhat.com>

	* opt-functions.awk (var_set): Emit proper initializer for
	non-target bitfields.

2005-04-28  Devang Patel  <dpatel@apple.com>

	* dbxout.c (have_used_extensions): Remove.
	(dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
	have_used_extensions.

2005-04-28  James E Wilson  <wilson@specifixinc.com>

	* doc/install.texi: Update -enable-languages info.  Correct path to
	html docs.

2005-04-28  DJ Delorie  <dj@redhat.com>

	* optc-gen.awk (END): Make sure no variable is defined more
	than once.
	* opth-gen.awk (END): Allocate bits on a per-variable basis.
	Allow for bitfield variables other than target_flags.
	* doc/options.text (Mask): Document that you may specify a
	variable other than target_flags.

2005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>

	PR rtl-optimization/18877
	* reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
	number in val.start.

2005-04-28  David Edelsohn  <edelsohn@gnu.org>

	PR target/20813
	* config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
	MASK_PPC_GFXOPT.
	* config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
	* config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
	* config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.

2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.c (legitimize_pic_address): Fix sense of assertion test for
	creating pseudos when the base offset is too large.

2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>

	* global.c (earlyclobber_regclass): Change the type to
	VEC(int,heap).
	(check_earlyclobber): Update uses of earlyclobber_regclass.
	(mark_reg_use_for_earlyclobber): Likewise.
	(calculate_local_reg_bb_info): Allocate and free
	earlyclobber_regclass using the VEC API.

2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>

	* tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
	assert.

2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>

	* modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
	(*targetm.foo).

	* config.gcc: Obsolete c4x-* and tic4x-*.

	* tree.h (edge_def): Remove.

	* bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
	function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
	reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
	JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
	where appropriate.

	* attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
	coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
	errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
	genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
	integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
	machmode.def, mips-tfile.c, params.c, pretty-print.c,
	print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
	tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
	config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
	config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
	config/i386/cygming.h, config/i386/djgpp.h,
	config/i386/lynx.h, config/i386/netware.c,
	config/i386/winnt.c, config/ia64/ia64-c.c,
	config/iq2000/iq2000.c, config/m32r/little.h,
	config/m68k/m68k-protos.h, config/m68k/m68k.h,
	config/m68k/m68k.md, config/mcore/mcore.c,
	config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
	config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
	config/mn10300/mn10300.h, config/ns32k/netbsd.h,
	config/ns32k/ns32k.c, config/ns32k/ns32k.h,
	config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
	config/pdp11/pdp11.h, config/rs6000/darwin.h,
	config/rs6000/default64.h, config/rs6000/rs6000-c.c,
	config/s390/2064.md, config/s390/2084.md,
	config/s390/s390-modes.def, config/s390/s390-protos.h,
	config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
	config/stormy16/stormy16.c, config/vax/vax-protos.h,
	config/vax/vax.c, config/vax/vax.h,
	config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
	copyright.

2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>

	* c-typeck.c (build_compound_expr): Correct logic in last change.

2005-04-27  James E. Wilson  <wilson@specifixinc.com>

	* config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
	parameters.  Replace conditional move code with assert checking for
	ar.lc.  Delete obsolete comments.
	(set_src_needs_barrier): Delete cond parameter, and code using it.
	(rtx_needs_barrier): Delete initialization of cond.  Fix typo in
	assert checking for PR_REGS.  Fix calls to update_set_flags and
	set_src_needs_barrier.
	(group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
	callers.  Rewrite explanatory comment before the function.
	(safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
	Fix all callers.

2005-04-27  Mike Stump  <mrs@apple.com>

	* doc/cpp.texi: gcc now implements universal character names.

2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/21159
	* c-typeck.c (build_compound_expr): Don't warn for left-hand side
	being a compound expression whose right-hand side is cast to void.

2005-04-27  Caroline Tice  <ctice@apple.com>

	* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
	Remove targetm.have_named_sections test.
	(fix_edges_for_rarely_executed_code): Likewise.
	(insert_section_boundary_note): Likewise.
	(reorder_basic_blocks): Check partitioning flag before calling
	verify_hot_cold_block_grouping.
	* dbxout.c (dbxout_function_end): Get hot/cold section labels from
	the function struct rather than global variables.
	* dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
	(COLD_END_LABEL): Likewise
	(cold_text_section_label): New static global variable.
	(cold_end_label): Likewise.
	(dwarf2out_switch_text_section): Get hot/cold section labels from
	the function struct rather than global variables; test to make sure
	cfun is defined.
	(output_aranges): Use cold_text_section_label and cold_end_label;
	check partitioning flag before putting out delta.
	(output_ranges): Remove incorrect code attempting to use
	hot/cold labels.
	(output_line_info): Get cold section label from function struct; test
	to make sure cfun is defined.
	(add_location_or_const_value_attribute): Likewise.
	(dwarf2out_var_location): Likewise.
	(dwarf2out_init): Generate cold_text_section_label and cold_end_label;
	write out cold_text_section_label if partition flag is set.
	(dwarf2out_finish): Write out cold_end_label if partition flag is set;
	* function.h (struct function): Add new fields to point to hot/cold
	section labels: hot_section_label, cold_section_label,
	hot_section_end_label and cold_section_end_label; also add new field
	for cold text section name, unlikely_text_section_name.
	* opts.c (decode_options): Turn off partitioning flag if
	!targetm.have_named_sections.
	* output.h (hot_section_label): Remove.
	(hot_section_end_label): Remove.
	(cold_section_end_label): Remove.
	(unlikely_section_label): Remove.
	(unlikely_text_section_name): Remove.
	* passes.c (rest_of_handle_final): Remove extra blank line.
	* varasm.c (unlikely_section_label): Remove.
	(hot_section_label): Remove.
	(hot_section_end_label): Remove.
	(cold_section_end_label): Remove.
	(unlikely_text_section_name): Remove.
	(initialize_cold_section_name): Modify to call
	targetm.strip_name_encoding; to store cold section name in current
	function struct, if it exists; and to only use the decl_section_name
	if flag_named_sections is true.
	(unlikely_text_section): Modify to get section name out of current
	function struct, if there is one; otherwise build it from
	UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
	(in_unlikely_text_section): Likewise.
	(named_section): Modify to get/put cold section name in current function
	struct, if there is one.
	(function_section): Change 'bool unlikely' to 'int reloc'; check
	targetm.have_named_sections before calling named_section.
	(current_function_section): Likewise.
	(assemble_start_function): Modify to get/put unlikely_text_section_name
	in current function struct; modify to get hot/cold section labels
	from function struct; initialize labels using
	ASM_GENERATE_INTERNAL_LABEL;
	test partitioning flag before writing out hot section label.
	(assemble_end_function): Test partitioning flag before writing out
	hot/cold section labels.
	(default_section_type_flags_1): Get cold text section name from
	function struct if there is one; Set flags correctly for
	cold text section if there is not a current function struct.

2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>

	* tree-ssa-propagate.c (set_rhs): Revert last change.

2005-04-27  Steve Ellcey  <sje@cup.hp.com>

	* explow.c (convert_memory_address): Add gcc_assert.

2005-04-27  Mark Mitchell  <mark@codesourcery.com>

	* configure.ac: Check for ld --sysroot support.
	* gcc.c: Document %R specifier for specs.
	(SYSROOT_SPEC): New macro.
	(sysroot_spec): New variable.
	(static_specs): Add sysroot_spec.
	(main): Pass the sysroot spec to the linker if appropriate.
	* configure: Regenerated.
	* config.in: Likewise.

2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>

	* fold-const.c (fold_binary): Use build_fold_addr_expr
	for address calculation and INDIRECT_REF handling.

2005-04-27  Andrew Haley  <aph@redhat.com>

	* postreload-gcse.c (hash_scan_set): Remove bogus assertion.

2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>

	* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
	pointer when thumb backtracing is on.

	* config/fp-bit.c (abort): Revert change.

2005-04-27  Ian Lance Taylor  <ian@airs.com>

	* c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.

2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-dce.c: Fix a comment typo.

2005-04-27  David S. Miller  <davem@davemloft.net>

	* explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
	Kill setjmpless_size.  current_function_calls_setjmp is completely
	computed when we are called, so just use the optimized size value
	instead of using REG_SAVE_AREA notes.
	(optimize_save_area_alloca): Delete....
	* rtl.h (optimize_save_area_alloca): Likewise...
	* passes.c (rest_of_compilation): and don't call it any more.
	* reg-notes.def (SAVE_AREA): Delete.

2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>

	* config/fp-bit.c (abort): Add noreturn attribute.

	* config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
	gcc_unreachable as appropriate.
	(ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
	* config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
	ASM_OUTPUT_REG_POP): Likewise.

2005-04-27  Paolo Bonzini  <bonzini@gnu.org>

	* tree-complex.c (expand_vector_operations_1): Do not build
	VIEW_CONVERT_EXPR's for the lhs.

2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>

	* config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
	unnecessary noncanonical RTL handling.
	* config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
	gcc_assert and gcc_unreachable.

	* config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
	gcc_unreachable as appropriate.
	(THUMB_PRINT_OPERAND_ADDRESS): Likewise.
	* config/arm/arm.c (arm_override_options, arm_compute_func_type,
	use_return_insn, const_ok_for_op, arm_gen_constant,
	arm_canonicalize_comparison, legitimize_pic_address,
	thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
	arm_cirrus_insn_p, cirrus_reorg, minmax_code,
	load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
	emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
	arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
	move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
	dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
	fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
	output_call, output_mov_long_double_fpa_from_arm,
	output_mov_long_double_arm_from_fpa,
	output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
	output_move_double, arithmetic_instr, shift_op, int_log2,
	output_return_instruction, arm_output_function_prologue,
	arm_output_epilogue, arm_output_function_epilogue,
	emit_multi_reg_push, arm_get_frame_offsets,
	arm_compute_initial_elimination_offset, arm_expand_prologue,
	arm_print_operand, arm_assemble_integer, get_arm_condition_code,
	arm_final_prescan_insn, arm_init_iwmmxt_builtins,
	arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
	thumb_compute_initial_elimination_offset,
	thumb_output_function_prologue, thumb_load_double_from_address,
	thumb_output_move_mem_multiple, thumb_reload_out_hi,
	arm_emit_vector_const, arm_dbx_register_number): Likewise.
	* config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
	* config/arm/arm.md (thumb_extendhisi2,
	*thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
	*thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
	thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
	*arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
	* config/arm/cirrus.md (*cirrus_arm_movdi,
	*cirrus_movdf_hard_insn): Likewise.
	* config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.

2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
	(num_ssa_names): Use VEC_length.
	(ssa_names): Use VEC_index.
	* tree-ssanames.c (ssa_names): Change the type to
	VEC(tree,gc).
	(init_ssanames, fini_ssa_names, make_ssanames,
	release_ssa_name): Update uses of ssa_names.

	* dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
	Use fold_buildN instead of fold (buildN (...)).

2005-04-27  Devang Patel <dpatel@apple.com>

	* dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.

2005-04-27  Matt Thomas <matt@3am-software.com>
	    Jan-Benedict Glaw <jbglaw@microdata-pos.de>

	* config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
	(vax_output_mi_thunk): Ditto.
	(vax_notice_cc_update): Ditto.
	(INDEX_REGISTER_P): Add trailing \.
	(BASE_REGISTER_P): Add trailing \.
	(legitimate_address_p): Whitespace cleanup.  Remove trailing \.

2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>

	* tree-ssa-propagate.c (set_rhs): Check operand of
	ADDR_EXPR for gimpliness, too.

2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-pre.c: Fix a comment typo.

2005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/21171
	* tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
	record address uses if the reference is volatile.

2004-04-27  Paolo Bonzini  <bonzini@gnu.org>

	* tree-complex.c (expand_vector_operation): New, extracted from
	expand_vector_operations_1.
	(tree_vec_extract): Build a NOP_EXPR.
	(expand_vec_parallel): Do not care about returning the correct type.
	(expand_vector_operations_1): Call expand_vector_operation.
	Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.

	* tree-complex.c (gate_expand_vector_operations): New.
	(pass_lower_vector_ssa): Use it.
	* tree-optimize.c (init_tree_optimization_passes): Include
	pass_lower_vector_ssa.
	* tree-vect-transform.c (vect_min_worthwhile_factor): New.
	(vectorizable_operation): Use it.
	* tree-vectorizer.c (get_vectype_for_scalar_type): Accept
	integer modes for the vector type.

	* defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
	* tree-vect-analyze.c (vect_enhance_data_refs_alignment):
	Do not cope with UNITS_PER_SIMD_WORD == 0.
	* tree-vectorizer.c (get_vectype_for_scalar_type): Check
	if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
	(vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
	* config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
	* config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
	* config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
	* config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.

	* config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
	* config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
	* config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.

	* doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
	(UNITS_PER_SIMD_WORD): New.

2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>

	* config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
	gcc_unreachable as appropriate.
	(ia64_expand_load_address, ia64_expand_tls_address,
	ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
	ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
	next_scratch_gr_reg, ia64_initial_elimination_offset,
	ia64_expand_prologue, ia64_expand_epilogue,
	ia64_output_dwarf_dtprel, ia64_print_operand,
	ia64_register_move_cost, first_instruction, rws_access_regno,
	update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
	ia64_sched_init, ia64_variable_issue,
	ia64_first_cycle_multipass_dfs_lookahead_guard,
	ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
	ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
	process_for_unwind_directive, ia64_hpux_file_end): Likewise.
	* config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
	* config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
	* config/ia64/predicates.md (got_symbolic_operand,
	sdata_symbolic_operand): Likewise.
	* config/ia64/vect.md (vcondv2sf): Likewise.

2005-04-27  Matt Thomas <matt@3am-software.com>

	* config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
	CONSTANT_ADDRESS_P in config/vax/vax.h
	(legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h.
	(INDEX_REGISTER_P): New.
	(BASE_REGISTER_P): New.
	(indirectable_constant_address_p): New.  Adapted from
	INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
	(indirectable_address_p): New.  Adapted from
	INDIRECTABLE_ADDRESS_P in vax.h.
	(nonindexed_address_p): New.  Adapted from
	GO_IF_NONINDEXED_ADDRESS in vax.h.
	(index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
	(reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
	(legitimate_address_p): New.  Adapted from
	GO_IF_LEGITIMATE_ADDRESS in vax.h.
	(vax_mode_dependent_address_p): New.  Adapted from
	GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
	* config/vax/vax.h (CONSTANT_ADDRESS_P): Use
	legitimate_constant_address_p.
	(CONSTANT_P): Use legitimate_constant_p.
	(INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
	(INDIRECTABLE_ADDRESS_P): Removed.
	(GO_IF_NONINDEXED_ADDRESS): Removed.
	(INDEX_TEMP_P): Removed.
	(GO_IF_REG_PLUS_INDEX): Removed.
	(GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
	definitions, depending on whether REG_OK_STRICT is defined.
	(GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
	Two definitions, depending on whether REG_OK_STRICT is defined.
	* config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
	added.
	(legitimate_constant_p): Prototype added.
	(legitimate_address_p): Prototype added.
	(vax_mode_dependent_address_p): Prototype added.

2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>

	* tree.h (phi_arg_d): Expand a comment in phi_arg_d.

2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/21213
	* c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
	transparent union.

2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/20740
	* c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
	assertion failures, if __gcc_host_wide_int__ is not properly
	defined.
	(init_dynamic_diag_info): Give errors, not assertion failures, if
	location_t, tree or __gcc_host_wide_int__ are not properly
	defined.

2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
	n_iv_uses, iv_use, n_iv_cands, iv_cand,
	tree_ssa_iv_optimize_init, record_use, add_candidate_1,
	prepare_decl_rtl, free_loop_data,
	tree_ssa_iv_optimize_finalize): Use the VEC API instead of
	VARRAY.

	* tree.h (tree_phi_node): Add a comment about the order of PHI
	arguments.

2005-04-26  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.

2005-04-26  Nathan Sidwell  <nathan@codesourcery.com>

	* config/mips.mips.c (mips_legitimize_tls_address): Use
	gcc_unreachable.

	* config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
	* config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
	* config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.

	* config/sparc/sparc.h (enum reg_class): Reword comment to avoid
	'abort'.

2005-04-26  Jeff Law  <law@redhat.com>

	* tree-flow-inline.h (op_iter_next_must_and_may_def): New.
	(op_iter_init_must_and_may_def): Likewise.
	(unmodifiable_var_p): Move to a later point in the file.
	* tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
	* tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
	(dse_record_phis): Directly check for virtual operands rather than
	using need_imm_uses_for.
	(dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
	store has multiple V_{MAY,MUST}_DEF operands.

2005-04-26  Andrew MacLeod  <amacleod@redhat.com>

	* tree-cfg.c (bsi_replace): Delink immediate uses for the original
	stmt.

2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
	call to find_edge outside a loop to go through a PHI chain.

2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>

	PR tree-optimization/17598
	* fold-const.c (fold_binary): Fold comparisons of addresses
	of COMPONENT_REFs which reference the same field to
	comparisons of the addresses of the base objects.

2005-04-26  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.c (arm_return_in_msb): New function.
	(arm_must_pass_in_stack): New function.
	(TARGET_RETURN_IN_MSB): Define target hook.
	(TARGET_MUST_PASS_IN_STACK): Define target hook.
	(arm_function_value): Pad small aggregate return.
	(arm_pad_arg_upward): New function.
	(arm_pad_reg_upward): New function.
	* config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
	(FUNCTION_ARG_PADDING): Define macro.
	(BLOCK_REG_PADDING): Define macro.
	(PAD_VARARGS_DOWN): Correct padding for AAPCS.
	* config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
	(arm_pad_reg_upward): Declare function.

2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>

	* basic-block.h (ei_cond): New.
	(FOR_EACH_EDGE): Call ei_cond.

	PR tree-optimization/21047
	* fold-const.c (fold_binary): Abort on ASSERT_EXPR.
	(fold): Don't handle ASSERT_EXPR.

2005-04-25  Roger Sayle  <roger@eyesopen.com>

	* sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
	all writes to any stack register as a read/write dependency on
	FIRST_STACK_REG.
	(sched_analyze_2): Likewise, for reads from any stack register.

2005-04-25  Richard Henderson  <rth@redhat.com>

	* final.c (output_addr_const): Revert 2005-04-09 change.

2005-04-25  Mike Stump  <mrs@apple.com>

	* config/darwin.c (darwin_encode_section_info): Always set
	MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.

2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
	gensupport.c, protoize.c, toplev.c: Replace calls to
	`unlock_stream' with `unlock_std_streams'.

2005-04-25  Devang Patel <dpatel@apple.com>

	* dbxout.c (dbxout_type): Emit attribute vector.

2005-04-05  Paul Brook  <paul@codesourcery.com>

	* target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
	* target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
	* config/arm/arm.c (arm_cxx_atexit_name): New function.
	(TARGET_CXX_USE_AEABI_ATEXIT): New macro.
	* cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
	(register_dtor_fn): Likewise.
	* doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.

2005-04-25  Ian Lance Taylor  <ian@airs.com>

	* c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
	* c-common.h (EXPR_STMT_EXPR): Don't define.
	(c_common_stmt_codes): Don't define.
	* c-dump.c (c_dump_tree): Remove EXPR_STMT case.
	* c-gimplify.c (gimplify_expr_stmt): Remove.
	(c_gimplify_expr): Remove EXPR_STMT case.
	* c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
	to INIT_STATEMENT_CODES.
	* c-pretty-print.c (pp_c_statement): Just call dump_generic_node.

2005-04-25  Jan Hubicka  <jh@suse.cz>

	* tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.

	* except.c: Include diagnostic.h
	(dump_eh_tree, verify_eh_tree): New functions.
	* except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
	* tree-cfg.c (tree_verify_flow_info): verify eh edges.
	(dump_function_to_file): dump eh tree.
	* tree-eh.c (mark_eh_edge): New function.
	(mark_eh_edge_found_error): New static variable.
	(verify_eh_edges): New function.

2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>

	* tree-ssa-alias.c (fieldoff_t): Remove.
	(fieldoff_s): typedef the structure itself.  Create a vector of
	objects.
	(push_fields_onto_fieldstack): Return count of fields pushed.
	Remove peeling of first field.  Adjust.
	(fieldoff_compare): Adjust.
	(create_overlap_variables_for): Adjust.

2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>

	* doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.

2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>

	PR bootstrap/21215
	* doc/install.texi: Document correct assembler and linker to use
	on i?86-*-solaris2.10.

2005-04-25  Steven Bosscher  <stevenb@suse.de>

	Fix PR tree-optimization/21173

	* tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
	Unshare expression we pass to force_gimple_operand.

2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
	    Stephen Clarke <stevec@superh.com>
	    Roger Sayle <roger@eyesopen.com>

	PR rtl-optimization/20413
	* cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
	VOIDmode for LABEL_REF.
	* final.c (shorten_branches): Likewise.
	* jump.c (mark_all_labels, redirect_exp_1): Likewise.
	* loop.c (reg_dead_after_loop): Likewise.
	* varasm.c (decode_addr_const): Likewise.
	* doc/rtl.texi: Document mode requirement for LABEL_REF.

2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config.gcc (avr-*-*): Remove redundant "case".

2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-vect-analyze.c (vect_mark_relevant): Take
	VEC(tree,heap) instead of varray_type as an argument.
	(vect_mark_stmts_to_be_vectorized): Change the type of
	worklist to VEC(tree,heap).  Adjust uses of worklist.

2005-04-24  Devang Patel  <dpatel@apple.com>

	*  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.

2005-04-24  Ian Lance Taylor  <ian@airs.com>

	* c-semantics.c (build_stmt): Remove test of specific tree codes
	for TREE_SIDE_EFFECTS handling.

2005-04-24  Per Bothner  <per@bothner.com>

	* c-opts.c (finish_options): Make the line-number of the <built-in>
	location 0, as assumed elsewhere, rather than 1.

2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-uncprop.c (equiv_stack): Change the type o
	VEC(tree,heap).
	(tree_ssa_uncprop, uncprop_finalize_block,
	uncprop_initialize_block): Update uses of equiv_stack.

2005-04-24  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/21163
	* simplify-rtx.c (simplify_binary_operation) <IOR>: Check
	for SCALAR_INT_MODE_P instead of not MODE_CC before returning
	constm1_rtx.
	<AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
	<UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
	<DIV, MOD>: Likewise.

2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* collect2.c (main): Unlock the stdio streams.
	* gcc.c (main): Likewise.
	* gcov-dump.c (main): Likewise.
	* gcov.c (main): Likewise.
	* gen-protos.c (main): Likewise.
	* gensupport.c (init_md_reader_args_cb): Likewise.
	* protoize.c (main): Likewise.
	* toplev.c (general_init): Likewise.

2005-04-24  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/20991
	* cgraph.h (cgraph_local_info): Add vtable_method field.
	* varasm.c (mark_decl_referenced): If cgraph_global_info_ready
	and node is vtable_method, finalized and not reachable, don't do
	anything.

2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
	COMPARISON_CLASS_P.
	* tree-ssa-pre.c (create_value_expr_from): Use
	CONSTANT_CLASS_P and REFERENCE_CLASS_P.
	* tree-ssa-propagate.c (stmt_makes_single_load,
	stmt_makes_single_store): Use REFERENCE_CLASS_P.
	* tree-vect-transform.c (vect_is_simple_cond): Use
	COMPARISON_CLASS_P.
	* tree-vrp.c (extract_range_from_assert,
	build_assert_expr_for, fp_predicate, has_assert_expr): Use
	COMPARISON_CLASS_P.

	* tree-ssa-live.c (build_tree_conflict_graph): Change the type
	of tpa_to_clear to VEC(int,heap).  Update uses of
	tpa_to_clear.  Free tpa_to_clear at the end.

2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree.h (TREE_THIS_VOLATILE): Document the effect on a
	function decl.

2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
	and gcc_unreachable as appropriate.
	(num_insns_constant, output_vec_const_move,
	build_mask64_2_operands, rs6000_output_dwarf_dtprel,
	rs6000_emit_set_const, rs6000_emit_move,
	spe_build_register_parallel, function_arg,
	rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
	spe_expand_predicate_builtin, spe_expand_evsel_builtin,
	rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
	rs6000_common_init_builtins, expand_block_clear,
	expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
	extract_ME, rs6000_get_some_local_dynamic_name,
	rs6000_output_function_entry, print_operand,
	print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
	output_cbranch, output_e500_flip_gt_bit,
	rs6000_emit_vector_compare, rs6000_emit_vector_compare,
	rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
	compute_save_world_info, rs6000_stack_info,
	rs6000_emit_load_toc_table, rs6000_frame_related,
	spe_synthesize_frame_save, rs6000_emit_epilogue,
	rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
	output_function_profiler, rs6000_trampoline_size,
	rs6000_initialize_trampoline, find_addr_reg,
	rs6000_machopic_legitimize_pic_address,
	rs6000_initial_elimination_offset,
	rs6000_dbx_register_number): Likewise.
	* config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
	*movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
	*movti_power, *movti_string, call, call_value, sibcall,
	sibcall_value): Likewise.
	* config/rs6000/spe.md (*movdf_e500_double,
	*movv2si_internal): Likewise.
	* config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
	from comment.

2005-04-24  Richard Henderson  <rth@redhat.com>

	PR target/21101
	* config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
	* config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
	Deny modes smaller than 4 bytes.
	* config/i386/i386-protos.h: Update.

2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
	Switch h8300-*-rtems* to ELF.

2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>

	* vec.h (VEC_safe_grow): Replace grow with safe_grow.

2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>

	* ipa-inline.c, tree-ssa-operands.h: Fix comment typos.

2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>

	PR middle-end/21082
	* fold-const.c: Fold &a[i]-&a[j] to i-j.

2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
	definitions of ssa names in condition.  Split recusive part to ...
	(tree_simplify_using_condition_1): New function.
	(expand_simple_operations): New function.

2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
	(find_interesting_uses_cond): Do not use integer_zerop and
	integer_nonzerop to check for integer constants.
	(set_use_iv_cost): Record the value field.
	(determine_use_iv_cost_generic, determine_use_iv_cost_address,
	determine_use_iv_cost_outer): Set the value field of the cost pair.
	(may_eliminate_iv): Do not return the comparison code.
	(iv_elimination_compare): New function.
	(determine_use_iv_cost_condition): Set the value field.  Record
	noneliminable invariants correctly.
	(rewrite_use_compare, rewrite_use_outer): Use the value field.

2005-04-23  DJ Delorie  <dj@redhat.com>

	* diagnostic.c (warning): Accept parameter to classify warning option.
	(warning0): New, for when a pointer to an error() like function is needed.
	* errors.c (warning): Likewise.
	* errors.h (warning, warning0): Adjust prototypes.
	* toplev.h (warning, warning0): Likewise.

	* attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
	c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
	c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
	fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
	genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
	reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
	tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
	tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.

	* config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
	config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
	config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
	config/darwin.c, config/darwin.h, config/h8300/h8300.c,
	config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
	config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
	config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
	config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
	config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
	config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
	config/rs6000/aix52.h, config/rs6000/darwin.h,
	config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
	config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
	config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
	config/stormy16/stormy16.c, config/v850/v850-c.c,
	config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
	callers.

2005-04-23  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/21102
	* simplify-rtx.c (simplify_binary_operation): Fix mode check before
	performing some integral scalar simplifications.

2005-04-23  Richard Henderson  <rth@redhat.com>

	PR target/21099
	* config/i386/i386.c (ix86_split_to_parts): Use proper mode when
	simplifying CONST_VECTOR.

2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-live.c (live_worklist): Take a stack allocated on
	heap as an argument.  Update uses of stack.
	(calculate_live_on_entry): Allocate stack on heap.

	* tree-ssa-live.c (build_tree_conflict_graph): Allocate
	partition_link and tpa_nodes on heap.

	* tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
	(mark_stmt_necessary, propagate_necessity,
	mark_really_necessary_kill_operand_phis): Update uses of
	worklist.
	(tree_dce_init): Allocate worklist using VEC_alloc.
	(tree_dce_done): Free worklist using VEC_free.

2005-04-23  Mike Stump  <mrs@apple.com>

	* config/darwin.c (machopic_indirection_name): Don't use
	quotes needlessly.
	(darwin_emit_unwind_label): Use user_label_prefix instead of
	"_".

2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>

	* final.c, ipa-inline.c, varasm.c: Fix comment typos.

2005-04-23  Hans-Peter Nilsson  <hp@axis.com>

	* config.gcc <cris-*>: Specify .opt files.
	* config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
	config/cris/linux.opt: New files.
	* config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
	(CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
	(TARGET_ELF): Override to 0.
	(CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
	-melinux-stacksize=N.
	* config/cris/cris.c: (cris_handle_option): New function.
	(TARGET_DEFAULT_TARGET_FLAGS): Override.
	(TARGET_HANDLE_OPTION): Override to cris_handle_option.
	(cris_override_options): Use MASK_*, not TARGET_MASK_*.
	* config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
	(TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
	(TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
	(TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
	(TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
	(TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
	(TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
	(TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
	(TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
	(TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
	(TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
	(TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
	(TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
	(CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
	(CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
	(TARGET_LINUX): Define 0.
	(TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
	(CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
	(CRIS_SUBTARGET_DEFAULT): New empty default macro.
	* config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
	(TARGET_LINUX): Override to 1.
	(CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.

2005-04-23  Nathan Sidwell  <nathan@codesourcery.com>

	* haifa-sched.c (schedule_block): Fix thinko in previous
	assertification patch.

2005-04-23  Richard Sandiford  <rsandifo@redhat.com>

	* config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
	$extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
	(hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
	pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
	$extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
	(hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
	pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
	for hpux11.[1-9]*.
	* config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
	(pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
	(MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
	(MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
	(TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
	(MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
	(MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
	(TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
	(TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
	(MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
	(MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
	(TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
	(SUBTARGET_OPTIONS): Delete.
	(TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
	(TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
	instead of a string.
	* config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
	(pa_cpu_string, pa_unix_string): Delete.
	(pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
	(flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
	TARGET_HPUX_10_10.
	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
	(pa_handle_option): New function.
	(override_options): Remove handling of -march=, -mfixed-range=,
	-mschedule= and -munix=.
	* config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
	* config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
	* config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
	* config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
	* config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
	* config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
	* config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
	redefining.
	* config/pa/pa.opt: New file.
	* config/pa/pa-hpux.opt: New file.
	* config/pa/pa-hpux1010.opt: New file.
	* config/pa/pa-hpux1111.opt: New file.
	* config/pa/pa64-hpux.opt: New file.

2005-04-22  David S. Miller  <davem@davemloft.net>

	* rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
	integer when it's mode is VOIDmode not DImode.

2005-04-22  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/rs6000.md (sync_add<mode>_internal,
	sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
	sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
	sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
	sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
	"bne- $-xxx" rather than local labels.
	(sync_lock_release<mode>): Add second operand.
	(lwsync): Use .long rather than a more meaningful opcode.
	* doc/md.texi (Standard Names): Add description of second
	parameter to sync_lock_test_and_set.

2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/21088
	* fold-const.c (fold_unary, fold_binary, fold_ternary):
	Export.
	* tree-vrp.c (compare_values): Use fold_binary to compare
	pointers.  Use boolean_type_node as the type of a comparison
	expression being folded.
	* tree.h: Add prototypes for fold_unary, fold_binary,
	fold_ternary.

	* tree-ssa-dom.c: Fix formatting.

2005-04-22  Diego Novillo  <dnovillo@redhat.com>

	* Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
	* lambda-code.c (perfect_nestify): Mark virtual operands in
	the moved statement for renaming.
	* params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
	(PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
	* params.h (MIN_VIRTUAL_MAPPINGS): Define.
	(VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
	* tree-flow.h (struct var_ann_d): Update comments.
	(rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
	allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
	debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
	debug_tree_ssa_stats, rewrite_ssa_into_ssa,
	dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
	debug_names_replaced_by): Remove declarations.
	(delete_update_ssa, get_current_def, set_current_def): Declare.
	(rewrite_into_loop_closed_ssa): Add new argument.  Update
	all callers.
	* tree-into-ssa.c: Include params.h.
	(old_virtual_ssa_names): Remove.  Update all users.
	(need_to_replace_names_p): Remove.  Update all users.
	(struct update_ssa_stats_d): Declare.
	(update_ssa_stats): New local.
	(dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
	dump_tree_ssa_stats, debug_tree_ssa_stats,
	dump_update_ssa, debug_update_ssa,
	dump_names_replaced_by, debug_names_replaced_by): Declare.
	(get_current_def, set current_def): Make extern.
	(is_old_name, is_new_name): Protect against references
	past the end of the sets.
	(add_new_name_mapping): Assert that OLD and NEW are
	different SSA names for the same symbol.
	When adding a virtual mapping, update stats for virtual
	mapping heuristic.
	(insert_phi_nodes_for): If UPDATE_P is true, create the
	LHS of the new PHI by duplicating SSA name VAR.
	(insert_phi_nodes_1): Remove.  Update all users.
	(insert_phi_nodes): Remove second argument.  Update all
	users.
	(maybe_replace_use, maybe_replace_def): New.
	(rewrite_update_stmt): Call them.
	(mark_def_interesting): Remove calls to is_gimple_reg.
	(prepare_phi_args_for_update): Remove.  Update all users.
	(prepare_block_for_update): Only process virtual operands
	and GIMPLE registers in normal form.
	(prepare_use_sites_for): New.
	(prepare_names_to_update): Rename from prepare_def_sites.
	Call prepare_use_sites_for.
	(dump_update_ssa): Rename from dump_repl_tbl.
	Update all users.
	Show statistics for virtual mapping heuristic.
	(debug_update_ssa): Rename from debug_debug_repl_tbl.
	(init_update_ssa): Initialize UPDATE_SSA_STATS.
	(delete_update_ssa): Make extern.
	(mark_set_for_renaming): If the set is empty, do nothing.
	(release_ssa_name_after_update_ssa): Update comment.
	(insert_updated_phi_nodes_for): Do not remove existing
	PHI nodes for symbols.
	(switch_virtuals_to_full_rewrite_p): New.
	(switch_virtuals_to_full_rewrite): New.
	(update_ssa): Call them.
	Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
	for every statement before updating.
	If all the names in NEW_SSA_NAMES have been marked for
	removal, do nothing.
	Only start at the top of the CFG if there are symbols in
	SYMS_TO_RENAME.
	(ssa_rewrite_finalize_block): Remove.
	(ssa_register_new_def): Remove.
	(ssa_rewrite_stmt): Remove.
	(ssa_rewrite_phi_arguments): Remove.
	(ssa_rewrite_initialize_block): Remove.
	(ssa_mark_def_sites): Remove.
	(ssa_mark_def_sites_initialize_block): Remove.
	(ssa_mark_phi_uses): Remove.
	(rewrite_ssa_into_ssa): Remove.
	* tree-phinodes.c (find_phi_node_for): Remove.
	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
	Call update_ssa.
	* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
	Remove calls to verify_dominators and
	verify_loop_structure.
	(tree_unswitch_single_loop): Call update_ssa.
	* tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
	returns false.
	Call verify_stmts.
	(delete_tree_ssa): Assert that need_ssa_update_p returns
	false.
	* tree-vect-transform.c (vect_transform_loop): Call update_ssa.
	* tree-vectorizer.c (allocate_new_names, rename_def_op,
	free_new_names): Remove.  Update all users.
	(rename_use_op): Call get_current_def.
	(rename_variables_in_bb): Do not handle any real or
	virtual definition.
	(slpeel_update_phis_for_duplicate_loop): Call
	get_current_def and set_current_def instead of using
	SSA_NAME_AUX.
	(slpeel_update_phi_nodes_for_guard2): Reformat comments.
	(slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
	ssa_names_to_replace and delete_update_ssa.
	* doc/invoke.texi: Document --param min-virtual-mappings
	and --param virtual-mappings-ratio.

2005-04-22  Diego Novillo  <dnovillo@redhat.com>

	* tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
	for newly created PHI nodes.
	Call create_new_def_for for every new V_MAY_DEF and
	V_MUST_DEF on the copied statement.
	(struct ssa_name_map_entry): Remove.
	(ssa_name_map_entry_hash): Remove.
	(ssa_name_map_entry_eq): Remove.
	(allocate_ssa_names): Remove.
	(rewrite_to_new_ssa_names_def): Remove.
	(rewrite_to_new_ssa_names_use): Remove.
	(rewrite_to_new_ssa_names_bb): Remove.
	(rewrite_to_new_ssa_names): Remove.
	(tree_duplicate_sese_region): Remove variables ver,
	definitions, phi, ssa_name_map and bi.
	Call need_ssa_update_p instead of any_marked_for_rewrite_p.
	Call update_ssa.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
	update_ssa instead of rewrite_ssa_into_ssa.
	* tree-ssa-loop-manip.c (add_exit_phis_edge): Call
	create_new_def_for.
	(find_uses_to_rename_use): Add argument 'need_phis'.
	(find_uses_to_rename_stmt): Do not scan virtual operands.
	(find_uses_to_rename): Only scan PHI nodes for
	non-virtual names.
	(rewrite_into_loop_closed_ssa): Call update_ssa.
	(check_loop_closed_ssa_use): Ignore virtual operands.
	(check_loop_closed_ssa_stmt): Likewise.
	(verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
	NULL.
	(rename_variables, set_phi_def_stmts): Remove.
	(tree_duplicate_loop_to_header_edge): Reformat comment.
	Remove variables BB, I and DEFINITIONS.
	Call need_ssa_update_p.
	Call update_ssa.
	(lv_adjust_loop_header_phi): Reformat comment.
	* tree-ssanames.c (ssa_names_to_rewrite): Remove.
	(marked_for_rewrite_p, any_marked_for_rewrite_p,
	mark_for_rewrite, unmark_all_for_rewrite,
	marked_ssa_names): Remove.  Update all users.
	(release_ssa_name): If VAR has been registered for SSA
	updating, do nothing.
	* tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
	(build_assert_expr_for): Call register_new_name_mapping.
	(insert_range_assertions): Update call to update_ssa.
	* tree.h (mark_for_rewrite, unmark_all_for_rewrite,
	marked_for_rewrite_p, any_marked_for_rewrite_p,
	marked_ssa_names): Remove.

2005-04-22  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
	(restore_currdefs_to_original_value): Likewise.
	(register_definitions_for_stmt): Likewise.
	(tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
	for each variable.  Do not allocate/free block_defs_stack either.
	Do not iterate if we just thread jumps.  Only iterate if the
	tree_cleanup_cfg does useful work (temporary).
	(dom_opt_initialize_block): No longer push a marker on
	BLOCK_DEFS_STACK.
	(dom_opt_finalize_block): Removal call to restore currdefs.
	Relax restrictions for recording edge equivalences.
	(record_equivalences_from_phis): No longer need to track
	CURRENT_DEF.
	(optimize_stmt): Similarly.
	(thread_across_edge): Simplify by removing the requirement that
	statements in the block we are threading through must be nops.
	(initialize_hash_element): Handle GOTO_EXPR.

2005-04-22  David S. Miller  <davem@davemloft.net>

	* sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
	CONST_DOUBLE_HIGH.
	* config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
	fix check on CONST_DOUBLE mode.  It should be VOIDmode
	when it is representing an integer.

2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>

	* builtins.c (gimplify_va_arg_expr): Reword comments to avoid
	'abort'. Use gcc_assert and gcc_unreachable as appropriate.
	* c-format.c (get_constant, decode_format_attr, get_flag_spec,
	find_char_info_specifier_index,
	find_length_info_modifier_index): Likewise.
	* c-typeck.c (composite_type, pop_init_level): Likewise.
	* combine.c (cant_combine_insn_p, try_combine): Likewise.
	* cse.c (cse_insn): Likewise
	* dominance.c (calc_dfs_tree): Likewise
	dwarf2out.c (loc_descriptor_from_tree_1,
	add_abstract_origin_attribute, force_decl_die,
	force_type_die): Likewise
	emit-rtl.c (operand_subword_force): Likewise
	explow.c (hard_function_value): Likewise
	expmed.c (store_bit_field, expand_divmod,
	emit_store_flag_force): Likewise
	expr.c (emit_move_multi_word, store_expr,
	expand_expr_real_1): Likewise
	final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
	output_operand): Likewise
	flow.c (recompute_reg_usage): Likewise
	* function.c (assign_stack_temp_for_type, assign_temp,
	handle_epilogue_set): Likewise
	* genextract.c (main): Likewise
	* gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
	gimplify_modify_expr_rhs, gimplify_expr): Likewise
	* haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
	ready_remove, rm_line_notes, rm_other_notes,
	schedule_block): Likewise
	mips-tfile.c (copy_object, out_of_bounds): Likewise

2005-04-22 David Edelsohn  <edelsohn@gnu.org>

	PR target/20813
	* config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
	* config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
	rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
	(rs6000_init_libfuncs): Set TFmode optabs to xlq names if
	TARGET_XL_COMPAT.
	* doc/invoke.texi (PowerPC options): Change rs64a to rs64.

2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>

	* lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
	(gcc_tree_to_linear_expression): Convert to heap allocated
	vectors.
	(gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
	lbv_to_gcc_expression, lle_to_gcc_expression,
	lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
	perfect_nestify): Likewise.
	lambda.h (gcc_loopnest_to_lambda_loopnest,
	lambda_loopnest_to_gcc_loopnest): Likewise.
	tree-loop-linear.c (linear_transform_loops): Likewise.

2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/predicates.md (arith_double_operand): Use
	trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
	* config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
	(DImode, DFmode constant splitters): Likewise.  Remove code for
	TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
	(logical constant splitters): Use const_int_operand predicate.
	(lshrsi3_extend): Remove code for TARGET_ARCH64 &&
	HOST_BITS_PER_WIDE_INT < 64.

2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>

	* config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
	gcc_unreachable as appropriate.
	(force_mode, emit_move_sequence, singlemove_string,
	output_move_double, output_fp_move_double, find_addr_reg,
	output_block_move, output_block_clear, output_and,
	output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
	pa_adjust_cost, pa_issue_rate, print_operand,
	output_global_address, output_arg_descriptor, output_cbranch,
	output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
	output_call): Likewise.
	* config/pa/pa.md (call, call_value, sibcall, sibcall_value,
	prefetch, prefetch_cc, prefetch_nocc): Likewise.

2005-04-22  Zdenek Dvorak  <dvorakz@suse.cz>

	* Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
	_gcov_pow2_profiler and _gcov_one_value_profiler.
	(tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
	(GTFILES): Add $(srcdir)/tree-profile.c.
	* gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
	__gcov_one_value_profiler): Declare.
	* gimplify.c (force_gimple_operand): Check whether the statements
	should be produced in ssa form.
	(force_gimple_operand_bsi): New function.
	* libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
	__gcov_one_value_profiler): New functions.
	* rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
	the profiled value is a power of two or not.
	* tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
	* tree-flow.h (in_ssa_p): Declare.
	(force_gimple_operand_bsi): Declare.
	* tree-into-ssa.c (in_ssa_p): New variable.
	(rewrite_into_ssa): Set in_ssa_p.
	* tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
	* tree-profile.c: Include ggc.h and gt-tree-profile.h.
	(gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
	tree_one_value_profiler_fn): New variables.
	(tree_init_edge_profiler): Initialize the profiler function decls.
	(tree_gen_edge_profiler): Use global gcov_type_node.
	(prepare_instrumented_value): New function.
	(tree_gen_interval_profiler, tree_gen_interval_profiler,
	tree_gen_one_value_profiler): Call the library functions instead of
	creating instrumentation code.
	* tree.c (build_fn_decl): New function.
	* tree.h (build_fn_decl): Declare.
	* value-prof.c (rtl_divmod_values_to_profile,
	rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
	tree_mod_pow2_value_transform, tree_find_values_to_profile):
	Do not handle may_be_other and precise values of exponents at pow2
	profiler.
	(tree_mod_subtract_transform): Reflect that value field of
	histogram has changed meaning.
	(tree_divmod_values_to_profile): Record the values correctly.
	(tree_values_to_profile): Update comment.
	* value-prof.h (struct histogram_value_t): Remove pow2 data.

2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>

	* varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
	(decl).

2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>

	* config/i386/i386.md (length_immediate): Use gcc_assert or
	gcc_unreachable, as appropriate.
	(*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
	*pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
	*truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
	*adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
	*addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
	*addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
	*addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
	*addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
	*addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
	*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
	*ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
	*ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
	pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
	pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
	*prefetch_sse_rex): Likewise.
	* config/i386/predicates.md (x86_64_immediate_operand,
	x86_64_zext_immediate_operand, symbolic_operand,
	no_seg_address_operand, aligned_operand,
	memory_displacement_operand): Likewise.
	* config/i386/sse.md (*mov<mode>_internal,
	*movv2df_internal): Likewise.

2005-04-22  Jan Hubicka  <jh@suse.cz>

	* Makefile.in (ipa.o, ipa-inline.o): New files.
	* cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
	cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
	cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
	* cgraphunit.c (cgraph_default_inline_p,
	cgraph_decide_inlining_incrementally,  ncalls_inlined,
	nfunctions_inlined, initial_insns, overall_insns,
	cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
	cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
	cgraph_mark_inline, cgraph_check_inline_limits,
	cgraph_default_inline_p, cgraph_recursive_inlining_p,
	update_callee_keys, lookup_recursive_calls,
	cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
	cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
	cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
	pass_ipa_inline): Move to ipa-inline.c
	(cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
	* ipa.c: New file.
	* ipa-inline.c: New file.

2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/invoke.texi (SPARC options): Document that -mapp-regs
	is turned off by default on Solaris.

2005-04-21  Roger Sayle  <roger@eyesopen.com>

	* c-common.h (objc_build_method_signature): Update prototype.
	* stub-objc.c (objc_build_method_signature): Update the stub
	implementation to accept and ignore additional parameter.
	* c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
	the value of ellipsis to objc_build_method_signature instead
	of setting TREE_OVERFLOW on the parms TREE_LIST node.

2005-04-21  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
	* config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
	gen_rtx_* not gen_rtx_fmt_*.
	(rs6000_emit_vector_select): Likewise.
	(rs6000_emit_sync): New.
	* config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
	(larx, stcx, cmp): New mode substitutions.
	(UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
	UNSPEC_ISYNC): New constants.
	(rlwinm): Give name.
	(memory_barrier, isync, lwsync): New insns.
	(sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
	(sync_lock_release<mode>): New expander.
	(sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
	sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
	sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
	sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
	sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
	sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
	(sync_add<mode>_internal, sync_addshort_internal,
	sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
	sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
	sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.

	* doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
	is the memory before, not after, the operation.  Clarify
	barrier requirements.

2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>

	* cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
	* lambda.h (lambda_vector_min_nz): Likewise.
	* langhooks.h (struct lang_hooks_for_types,
	struct lang_hooks): Likewise.
	* output.h (assemble_integer, this_is_asm_operands): Likewise.
	* tree.h: Likewise.
	* vec.h: Likewise.
	* tree-flow-inline.h (relink_imm_use): Use gcc_assert.

	* optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
	comments to avoid 'abort'.  Use gcc_assert as necessary.
	* opts.c (common_handle_option): Likewise.
	* pretty-print.c (pp_base_format_text): Likewise.
	* print-rtl.c (print_rtx): Likewise.
	* read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
	* regmove.c (try_auto_increment): Likewise.
	* reload.c (find_valid_class, find_reloads_toplev,
	find_equiv_reg): Likewise.
	* reload1.c (reload, forget_old_reloads_1, function_invariant_p,
	merge_assigned_reloads): Likewise.
	* tree-inline.c (inline_forbidden_p_1,
	estimate_num_insns_1): Likewise.
	* tree-optimize.c (execute_todo): Likewise.
	* tree-outof-ssa.c (eliminate_phi): Likewise.
	* tree-ssa-alias.c (add_pointed_to_expr): Likewise.
	* tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
	* tree-ssa-operands.c (parse_ssa_operands,
	get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
	* tree-ssa-pre.c (find_or_generate_expression): Likewise.
	* tree-ssanames.c (release_ssa_name): Likewise.
	* tree.c (int_bit_position, int_byte_position, tree_low_cst,
	walk_tree): Likewise.

	* tree-ssa-operands.c (verify_abort): Fold into ..
	(verify_imm_links): ... here.

2005-04-21  Richard Henderson  <rth@redhat.com>

	* config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
	on non-memory operand for previous inversion.

2005-04-21  Devang Patel  <dpatel@apple.com>

	PR optimization/20994
	* tree-if-conv.c (find_phi_replacement_condition): Avoid generating
	x = !(a == b) : p , q;.
	(pass_if_conversion): Verify stmts and flow.

2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>

	* optabs.c (gen_conditional_trap): Restore #define.

	* alias.c (true_dependence): Remove 'abort' from comments. Use
	gcc_assert and gcc_unreachable as appropriate.
	(canon_true_dependence): Likewise.
	* bb-reorder.c (connect_traces): Likewise.
	* c-common.c (c_add_case_label): Likewise.
	* c-decl.c (finish_function): Likewise.
	* caller-save.c (insert_restore, insert_save): Likewise.
	* cfg.c (update_bb_profile_for_threading): Likewise.
	* cfganal.c (flow_active_insn_p): Likewise.
	* cfgexpand.c (add_reg_br_prob_note): Likewise.
	* cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
	cfg_layout_merge_blocks): Likewise.
	* ifcvt.c (cond_exec_process_insns, merge_if_block,
	find_if_block): Likewise.
	* integrate.c (allocate_initial_values): Likewise.
	* jump.c (reverse_condition, reverse_condition_maybe_unordered,
	swap_condition, unsigned_condition, signed_condition,
	mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
	reg_or_subregno): Likewise.
	* lambda-code.c (lambda_compute_auxillary_space,
	lambda_transform_legal_p): Likewise.
	* lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
	* langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
	lhd_incomplete_type_error, lhd_expand_expr,
	lhd_types_compatible_p, lhd_tree_size): Likewise.
	* lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
	* local-alloc.c (update_equiv_regs): Likewise.
	* loop-unroll.c (peel_loop_completely
	unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
	peel_loop_simple, unroll_loop_stupid,
	analyze_iv_to_split_insn): Likewise.
	* loop.c (gen_prefetch, find_and_verify_loops,
	basic_induction_var): Likewise.
	* modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
	* value-prof.c (tree_find_values_to_profile): Likewise.
	* varasm.c (named_section, default_assemble_integer,
	decode_addr_const): Likewise.

2005-04-21 Alan Modra  <amodra@bigpond.net.au>
	   Fariborz Jahanian <fjahanian@apple.com>

	* config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
	portion of argument passed in fpr.
	* expr.c (emit_push_insn): Fix computation of 'offset' used to
	decide on partial argument save on stack.

2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/sparc/predicates.md, config/sparc/sparc.md: Fix
	comment typos.

2005-04-21  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c: Include tree-pass.h
	(cgraph_decide_recursive_inlining,
	cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
	cgraph_decide_inlining): Dump goes to dump_file.
	(cgraph_optimize): Call ipa passes instead of inliner.
	(cgraph_gate_inlining, pass_ipa_inline): New.
	* tree-optimize.c (all_ipa_passes): New static variable.
	(register_one_dump_file): Dead with IPA passes.
	(register_dump_files): Likewise.
	(init_tree_optimization_passes): Initialize IPA passes.
	(execute_todo): Do cgraph dump when asked to, do not dump function body
	for IPA pass.
	* tree-pass.h (TODO_dump_cgraph): New macro.
	(ipa_passes): Declare.
	* Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h

2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>

	* config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
	gcc_assert instead of abort.
	(classify_argument, examine_argument, construct_container,
	contains_128bit_aligned_vector_p, ix86_check_movabs,
	standard_80387_constant_opcode, standard_80387_constant_rtx,
	ix86_initial_elimination_offset, ix86_compute_frame_layout,
	pro_epilogue_adjust_stack, ix86_expand_epilogue,
	ix86_address_cost, legitimate_address_p, legitimize_pic_address,
	legitimize_tls_address, output_pic_addr_const,
	i386_output_dwarf_dtprel, put_condition_code, print_reg,
	get_some_local_dynamic_name, print_operand, print_operand_address,
	output_387_binary_op, emit_i387_cw_initialization,
	output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
	ix86_expand_clear, ix86_expand_binary_operator,
	ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
	ix86_cc_modes_compatible, ix86_fp_comparison_codes,
	ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
	ix86_expand_branch, ix86_expand_setcc,
	ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
	ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
	ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
	memory_address_length, ix86_attr_length_immediate_default,
	ix86_attr_length_address_default, ix86_agi_dependant,
	x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
	ix86_expand_binop_builtin, ix86_force_to_memory,
	ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
	x86_emit_floatuns): Likewise.
	* config/i386/netware.c (gen_regparm_prefix,
	i386_nlm_strip_name_encoding): Likewise.
	* config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.

2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>

	* optabs.c (gen_condiational_trap): Remove #define.
	(add_equal_note): Assertify. Remove explicit indirection from
	call via function pointer.
	(expand_ternary_op, expand_simple_binop, expand_binop,
	expand_twoval_unop, expand_twoval_binop,
	expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
	emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
	prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
	prepare_float_lib_cmp, emit_conditional_move,
	emit_conditional_add, gen_add2_insn, gen_add3_insn,
	have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
	expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
	vector_compare_rtx, expand_vec_cond_expr): Likewise.

2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>

	* vec.h: Update API to separate allocation mechanism from type.
	(VEC_safe_grow): New.
	* vec.c (calculate_allocation): New.
	(vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
	(vec_gc_free, vec_heap_free): Remove.
	* gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
	(VEC): Likewise.
	(mangle_macro_name): New.
	(struct macro_def): New.
	(struct macro): Add multiple argument values.
	(macro_expans_end): New.
	(push_macro_expansion): Chain on new macro. Process multiple
	args, create follow on expansion. Return follow on argument.
	(macro_input): Deal with multiple arguments.

	* tree.h: Define VEC(tree,heap) and VEC(tree,gc).
	(struct tree_binfo): Adjust.
	* basic-block.h: Define VEC(edge,gc).
	(struct edge_def): Adjust.
	(struct basic_block_def, struct edge_iterator): Likewise.
	(ei_container, ei_start_1, ei_last_1): Likewise.
	* cfg.c (connect_src, connect_dest): Likewise.
	* cfgrtl.c (force_nonfallthru_and_redirect)
	* dbxout.c (dbxout_type)
	* dwarf2out.c (gen_member_die)
	* lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
	(gcc_tree_to_linear_expression): Adjust.
	(gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
	lbv_to_gcc_expression, lle_to_gcc_expression,
	lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
	perfect_nestify): Likewise.
	* lambda.h (gcc_loopnest_to_lambda_loopnest,
	lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
	* profile.c (instrument_values): Adjust.
	* tree-cfg.c (modified_noreturn_calls): Adjust.
	(remove_fallthru_edge): Likewise.
	* tree-dump.c (dequeue_and_dump): Adjust.
	* tree-flow-inline.h (mark_stmt_modified): Adjust.
	* tree-flow.h (modified_noreturn_calls): Adjust.
	(tree_on_heap): Remove. (yay!)
	(register_new_def): Adjust.
	* tree-into-ssa.c: Define VEC(int,heap).
	(block_defs_stack): Adjust.
	(find_idf, insert_phi_nodes, register_new_def,
	rewrite_initialize_block, rewrite_finalize_block,
	register_new_update_single, rewrite_update_init_block,
	rewrite_update_fini_block, rewrite_blocks,
	ssa_rewrite_finalize_block, ssa_register_new_def,
	ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
	* tree-loop-linear.c (linear_transform_loops): Adjust.
	* tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
	(push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
	* tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
	stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
	vrp_variables_stack): Adjust declarations.
	(tree_ssa_dominator_optimize): Adjust.
	(dom_opt_initialize_block, remove_local_expressions_from_table,
	restore_nonzero_vars_to_original_value,
	restore_vars_to_original_value,
	restore_currdefs_to_original_value, dom_opt_finalize_block,
	record_var_is_nonzero, record_cond, record_const_or_copy_1,
	optimize_stmt, update_rhs_and_lookup_avail_expr,
	lookup_avail_expr, record_range): Likewise.
	* tree-ssa-pre.c: Define VEC(basic_block,heap).
	(compute_antic_aux): Adjust.
	(inserted_exprs, create_expression_by_pieces,
	insert_into_preds_of_block, eliminate, mark_operand_necessary,
	remove_dead_inserted_code, fini_pre): Likewise.
	* tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
	(varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
	ssa_prop_init): Likewise.
	* tree-ssa.c: Define VEC(bitmap,heap).
	(verify_name_tags): Adjust.
	* value-prof.c (rtl_divmod_values_to_profile): Adjust.
	(insn_prefetch_values_to_profile, rtl_find_values_to_profile,
	tree_divmod_values_to_profile, tree_find_values_to_profile,
	value_profile_transformations): Likewise.
	* value-prof.h: Define VEC(histogram_value,heap).
	* varasm.c: Remove alias_pair pointer typedef, define
	VEC(alias_pair,gc).
	(finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.

	* config/pa/pa.c (typedef extern_symbol): Typedef the structure,
	not a pointer to it.  Create an object vector.
	(extern_symbols): Turn into an object vector.
	(pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.

2005-04-21  Sebastian Pop  <pop@cri.ensmp.fr>

	PR/20742
	* Makefile.in (tree-chrec.o): Depend on params.h.
	* params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
	default value 20.
	* tree-chrec.c: Depend on params.h.  Replace build with buildN,
	and fold build with fold_buildN.
	(chrec_fold_plus_1): Fail with a chrec_don_know when the size of
	the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
	(tree_contains_chrecs): Compute an estimation of the size of the
	given expression.
	* tree-chrec.h (tree_contains_chrecs): Modify its declaration.
	(tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
	* tree-scalar-evolution.c (simple_iv): Ditto.
	* doc/invoke.texi (scev-max-expr-size): Documented.

2005-04-21  Richard Sandiford  <rsandifo@redhat.com>

	* config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
	(i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
	(i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
	(i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
	(i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
	(i[34567]86-*-uwin*): Likewise i386/cygming.opt.
	* config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
	(darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
	* config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
	(darwin_fix_and_continue_switch): Delete.
	* config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
	(SUBTARGET_SWITCHES): Delete.
	* config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
	(MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
	(MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
	(MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
	(MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
	(MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
	(MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
	(MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
	(TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
	(TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
	(TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
	(TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
	(TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
	(TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
	(TARGET_64BIT): Undef before redefining.
	(TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
	(TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
	(TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
	(TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
	(TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
	(ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
	(ix86_asm_string, ix86_regparm, ix86_regparm_string)
	(ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
	(ix86_debug_arg_string, ix86_debug_addr_string)
	(ix86_align_loops_string, ix86_align_jumps_string)
	(ix86_align_funcs_string): Delete.
	* config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
	(TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
	* config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
	(SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
	* config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
	* config/i386/sco5.h (MASK_COFF, TARGET_ELF)
	(SUBTARGET_SWITCHES): Delete.
	* config/i386/i386.c (ix86_debug_arg_string): Delete.
	(ix86_debug_addr_string): Delete.
	(ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
	(ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
	(ix86_align_loops_string, ix86_align_jumps_string)
	(ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
	(ix86_align_funcs_string): Make static.
	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
	(ix86_handle_option): New function.
	(TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
	(ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
	* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
	of darwin_fix_and_continue_switch.
	(darwin_one_byte_bool): Delete.
	* config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
	* config/rs6000/rs6000.c (rs6000_override_options): Update assignment
	to darwin_one_byte_bool.
	* config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
	* config/i386/djgpp.opt, config/i386/i386.opt,
	* config/i386/sco5.opt: New files.

2005-04-21  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (reg_or_0_operand, const1_operand,
	fp_zero_operand, fp_register_operand, intreg_operand,
	fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
	call_operand, call_operand_address, tgd_symbolic_operand,
	tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
	symbolic_operand, symbolic_memory_operand, label_ref_operand,
	sp64_medium_pic_operand, data_segment_operand,
	text_segment_operand, splittable_symbolic_memory_operand,
	reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
	eq_or_neq, normal_comp_operator, noov_compare_op,
	noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
	cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
	const64_operand, const64_high_operand, arith11_operand,
	arith10_operand, arith_double_operand, arith_double_4096_operand,
	arith_double_add_operand, arith11_double_operand,
	arith10_double_operand, small_int, small_int_or_double,
	uns_small_int, uns_arith_operand, clobbered_register,
	input_operand, compare_operand): Delete.
	(sparc_emit_set_const32): Use predicates in assertion.  Remove special
	code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
	(sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
	(GEN_HIGHINT64, GEN_INT64): Delete.
	(sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
	gen_safe_XOR64): Adjust for above deletion.
	(sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
	Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
	(legitimate_constant_p): Use const_zero_operand instead.
	(sparc_extra_constraint_check): Likewise.
	* config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
	(PREFERRED_RELOAD_CLASS): Use const_zero_operand.
	(PREDICATE_CODES): Delete.
	* config/sparc/sparc.md: Include predicates.md.
	(All patterns): Adjust for new predicate names.
	(cmpdi, cmpdi_sp64): Use arith_operand predicate.
	(movhi_const64_special, movsi_const64_special): Add 'K' constraint.
	(movdi): Use general_operand predicate.
	(movdi_sp64_dbl): Delete.
	(movdi_const64_special): Add 'N' constraint.
	(movdicc): Use arith10_operand predicate.
	(movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
	(movdi_cc_reg_sp64): Use arith10_operand predicate.
	(movdi_cc_reg_sp64_trunc): Delete.
	(cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
	(adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
	(subdi3_sp32): Delete.
	(subdi3_insn_sp32): Change to define_insn_and_split.
	(subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
	(muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
	(smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
	umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
	small_int_operand predicate.
	(divdi3, udivdi3): Use arith_operand predicate.
	(udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
	(and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
	xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
	(xordi3_sp64_dbl): Delete.
	(cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
	cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
	cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
	cmp_ccx_set_not): Use arith_operand predicate.
	(ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
	* config/sparc/predicates.md: New file.

2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/14846
	* fold-const.c (fold_single_bit_test_into_sign_test): New,
	split out from ...
	(fold_single_bit_test): ... here.
	(fold_binary): Call fold_single_bit_test_into_sign_test
	instead of fold_single_bit_test.

2005-04-20  James E Wilson  <wilson@specifixinc.com>

	PR c++/20805
	* dwarf2out.c (gen_variable_die): Don't emit a specification if this
	is another declaration.

2005-04-21  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/predicates.md: New file.
	* config/cris/cris-protos.h (cris_store_multiple_op_p)
	(cris_movem_load_rest_p): Declare.
	* config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
	(cris_movem_load_rest_p): Ditto.  Globalize.
	(cris_bdap_operand, cris_bdap_biap_operand,
	cris_orthogonal_operator, cris_commutative_orth_op,
	cris_operand_extend_operator,
	cris_additive_operand_extend_operator, cris_extend_operator,
	cris_plus_or_bound_operator, cris_mem_op,
	cris_general_operand_or_symbol,
	cris_general_operand_or_gotless_symbol,
	cris_general_operand_or_plt_symbol, cris_mem_call_operand,
	cris_load_multiple_op): Remove predicate functions.
	(cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
	abort, for UNSPECs other than CRIS_UNSPEC_PLT.
	* config/cris/cris.h (PREDICATE_CODES): Don't define.
	* config/cris/cris.md: Include predicates.md.
	("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.

2005-04-20  Ian Lance Taylor  <ian@airs.com>

	* c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
	* c-common.h (STMT_EXPR_STMT): Don't define.
	(STMT_EXPR_NO_SCOPE): Don't define.
	* c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
	* c-pretty-print.c (pp_c_primary_expression): Likewise.
	(pp_c_expression): Likewise.

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

	PR target/21100
	* config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.

2005-04-20  Jeff Law  <law@redhat.com>

	* reload1.c (reload): Ignore equivalences between pseudos and
	read only memory.

2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/12913
	* c-tree.h (struct c_label_list): Update comment.
	(struct c_label_context): Rename to struct c_label_context_se.
	(label_context_stack): Rename to label_context_stack_se.
	(C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
	c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
	c_end_vm_scope): New.
	(C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
	* c-decl.c (pop_scope): Call c_end_vm_scope.
	(pushdecl): Call c_begin_vm_scope for variably modified
	declarations.
	(define_label): Check for jumping into scope of identifier with
	variably modified type.  Push label on stack for those defined at
	current context of identifiers with variably modified type.
	(start_function): Create stack level for context of identifiers
	with variably modified type.
	(finish_function): Pop stack level for context of identifiers with
	variably modified type.
	* c-typeck.c (label_context_stack): Rename to
	label_context_stack_se.
	(label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
	(c_finish_goto_label): Check for jumping into scope of identifier
	with variably modified type.  Push label on stack for those jumped
	to from current context of identifiers with variably modified
	type.
	(struct c_switch): Add blocked_vm.
	(c_start_case): Initialize blocked_vm.
	(do_case): Check blocked_vm.
	(c_finish_case): Add comment.
	(c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
	variable label_context_stack.

2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
	conditional_replacement, value_replacement, abs_replacement,
	minmax_replacement.
	(replace_phi_edge_with_variable): Remove argument BB.
	(conditional_replacement, value_replacement,
	minmax_replacement, abs_replacement): Remove argument PHI_BB.
	Update a call to replace_phi_edge_with_variable.

	* tree-ssa-phiopt.c: Fix comments.

2005-04-20  Michael Matz  <matz@suse.de>

	PR20973
	* reload.c (push_reload, find_dummy_reload): Check for uninitialized
	pseudos.

2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-phiopt.c: Fix comment typos.

	PR tree-optimization/21116
	* tree-ssa-phiopt.c: Fix a typo.

2005-04-19  Richard Henderson  <rth@redhat.com>

	* builtins.c (expand_builtin_sync_operation): Revert last change.
	* optabs.c (expand_bool_compare_and_swap): Compare vs old value,
	not vs new value.
	(expand_compare_and_swap_loop): Likewise.
	(expand_sync_operation): Remove fallback from NAND to AND; invert
	memory operand when expanding from cmpxchg.
	(expand_sync_fetch_operation): Likewise.
	* doc/extend.texi (Atomic Builtins): Fix docs for nand and
	compare-and-swap.

	* config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
	when implementing NAND.  Fix double-add for AFTER.
	* config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
	(sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
	(sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
	memory value.
	(sync_lock_test_and_set<I48MODE>): Remove extra label and last
	memory barrier.

	* config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
	to return old memory value.
	(sync_compare_and_swap_cc<IMODE>): Likewise.

	* config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
	return pre-reload.  Don't consider output or anti dependencies.
	* config/ia64/sync.md (IMODE): New.
	(modesuffix): Add QI and HI.
	(memory_barrier): Simplify expansion.
	(sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
	(cmpxchg_acq_<IMODE>): Likewise.
	(sync_lock_test_and_set<IMODE>): Likewise.
	(sync_lock_release<IMODE>): Likewise.

2005-04-19  James A. Morrison  <phython@gcc.gnu.org>

	* fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
	~X or ~Y simplify.

2005-04-19  James A. Morrison  <phython@gcc.gnu.org>

	* fold-const (fold_binary): Fold ~X ^ ~ Y to X ^ Y.

2005-04-20  Michael Pogue  <michael.pogue@sun.com>
	    Joseph S. Myers  <joseph@codesourcery.com>

	* c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
	* c-typeck.c (build_c_cast): Check these options.
	* doc/invoke.texi: Document these options.

2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-phiopt.c: Update a comment about the pass.

2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
	config/mcore/mcore.c: Fix comment typos.

2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>

	* Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
	* mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.

2005-04-19  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_init_libfuncs): Clear mod optabs.

2005-04-19  Andrew Haley  <aph@redhat.com>

	PR java/21022
	* dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
	looking at a field's bitpos.

2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* system.h (fopen, fdopen, freopen): Define these to the unlocked
	libiberty functions.

2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/21096
	* tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.

2005-04-19  Alan Modra  <amodra@bigpond.net.au>

	PR target/21098
	* config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
	* config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.

2005-04-19  Alexandre Oliva  <aoliva@redhat.com>

	* tree-cfg.c (dump_function_to_file): Use cfun info only if it
	refers to the function being dumped.

2005-04-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* varasm.c (assemble_start_function): Remove reset of in_section.

2005-04-18  James A. Morrison  <phython@gcc.gnu.org>

	PR tree-optimization/21085
	* fold-const (fold_binary): Don't change X % -C to X % C if C has
	overflowed.

2005-04-19  Ben Elliston  <bje@au.ibm.com>

	* doc/invoke.texi (Optimize Options): Refer to the correct
	optimisation flag -ftree-dominator-opts, not -ftree-dom.

2005-04-18  Christopher Jaillet <christophe.jaillet@wanadoo.fr>

	* config/rs6000/rs6000.c (machopic_output_stub): Increase
	alloca argument to be big enough.

2005-04-18  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/21049
	* tree-cfg.c (dump_function_to_file): Do not crash if cfun or
	cfun->cfg are NULL.

2005-04-18  Tom Tromey  <tromey@redhat.com>

	* cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
	typo.

2005-04-18  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_split_atomic_op): New.
	(alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
	(alphaev4_insn_pipe): Likewise.  Correct IST and LDSYM pipes.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
	(UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
	(attr type): Add ld_l, st_c, mb.
	(andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
	iornotsi3, xorsi_internal, xornotsi3): New.
	* config/alpha/ev4.md (ev4_ld): Add ld_l.
	(ev4_ist_c, ev4_mb): New.
	* config/alpha/ev5.md (ev5_st): Add st_c, mb.
	(ev5_ld_l): New.
	* config/alpha/ev6.md (ev6_ild): Add ld_l.
	(ev6_ist): Add st_c.
	(ev6_mb): New.
	* config/alpha/sync.md: New file.

2005-04-18  Richard Henderson  <rth@redhat.com>

	* builtins.c (expand_builtin_sync_operation): Fold nand to and
	for constants.

	* optabs.c (expand_sync_operation): Fix typo expanding nand to and.

2005-04-18  Devang Patel  <dpatel@apple.com>

	* config/rs6000/atlivec.md (mulv4si3): New pattern.

2005-04-18  James A. Morrison  <phython@gcc.gnu.org>

	PR tree-optimization/20922
	* fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
	Fold X + c >= X and fold X - c <= X to true.

2005-04-18  James A. Morrison  <phython@gcc.gnu.org>

	* config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
	unsigned int.
	(emergency_labeled_state_free): Likewise.

2005-04-18  Nick Clifton  <nickc@redhat.com>

	* config/h8300/h8300.md (jump): Remove prescan parameter from
	calls to final_scan_insn.

	* config/arc/arc.c (arc_output_function_epilogue): Remove prescan
	parameter from calls to final_scan_insn.

	* config.gcc (m68hc12): Use the m68hc11.opt file for target
	specific options.
	(v850e, v850e1): Use the v850.opt file for target specific
	options.

2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/21001
	* tree-optimize.c (init_tree_optimization_passes): Move the
	first pass_forwprop immediately before pass_vrp.

2005-04-17  Ian Lance Taylor  <ian@airs.com>

	* c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
	* c-common.c (c_sizeof_or_alignof_type): Change second parameter
	from enum tree_code op to bool is_sizeof.
	* c-common.h (c_sizeof_or_alignof_type): Update declaration.
	(c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
	* c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
	case.
	(pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
	cases.
	(pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
	ALIGNOF_EXPR cases.

2005-04-17  Ian Lance Taylor  <ian@airs.com>

	* system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.

2005-04-17  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (va_list_skip_additions): Only define if
	TARGET_ABI_OSF.
	(TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
	(alpha_stdarg_optimize_hook): Likewise.  Allow for one more round
	of indirection through ssa names while looking for the gpr counter
	field.
	(alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
	saved va_list_gpr_size and va_list_fpr_size.

2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
	both pointers or both integers.

	* tree-vrp.c (maybe_add_assert_expr): Don't assert
	ASSERT_EXPRs for single-use variable.

	* tree-into-ssa.c: Fix a comment typo.

2005-04-17  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
	-mipsN before forcing a default of -mips2.

2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>

	* predict.h (IS_TAKEN): Remove.
	* rtl.h (NOTE_PREDICTION): Likewise.

	* modulo-sched.c (CFG_HOOKS): Remove.

	* c-parser.c (N_C_TTYPES): Remove.

	* tree-flow-inline.h (get_stmt_operands): Remove.
	* lambda-code.c, tree-ssa-loop-unswitch.c,
	tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
	tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
	tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
	calls to get_stmt_operands.
	* doc/tree-ssa.texi: Don't mention get_stmt_operands.

2005-04-17  Richard Henderson  <rth@redhat.com>

	PR target/20375
	* config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
	of CUMULATIVE_ARGS past the last named argument.
	(alpha_va_start): Expect pretend_args_size only if strictly less than
	6 named arguments.

2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>

	PR middle-end/21024
	* builtins.c (expand_builtin_strcat): Convert the result of
	strlen to the right type.
	* fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
	avoid creating type mismatches.
	<GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
	type mismatches.

	* c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.

2005-04-16  Richard Henderson  <rth@redhat.com>

	PR target/21051
	* builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
	Use the mode of boolean_type_node when the user doesn't provide one.
	* config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.

2005-04-16  Alexandre Oliva  <aoliva@redhat.com>

	PR target/20126
	* loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
	(const)).

	* tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
	comment.

2005-04-16  Roger Sayle  <roger@eyesopen.com>
	    Steven Bosscher  <stevenb@suse.de>

	* fold-const.c (fold_binary_to_constant): Delete obsolete comment.
	(fold_unary_to_constant): Likewise.

2005-04-16  Kazu Hirata  <kazu@cs.umass.edu>

	* basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
	PROP_ASM_SCAN.

2005-04-16  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific): Avoid using asterisks in @anchor
	names related to target triplets.
	Remove i?86-*-esix from platform directory.
	Remove powerpc-*-eabiaix from platform directory.

2005-04-16  Joseph S. Myers  <joseph@codesourcery.com>

	PR middle-end/20491
	* config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
	falling through from SUBREG case to REG.

2005-04-15  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_relational_hi_lo): Delete function and prototype.
	(fold_binary): Update comment mentioning fold_relational_hi_lo.
	(fold_binary_to_constant): Simplify using fold_binary.
	(fold_unary_to_constant): Likewise, simplify using fold_unary.

2005-04-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* gthr-posix.c (pthread_cancel): Define.
	(pthread_mutexattr_init): Likewise.
	(pthread_mutexattr_settype): Likewise.
	(pthread_mutexattr_destroy): Likewise.

2005-04-15  David S. Miller  <davem@davemloft.net>

	PR target/20673
	* config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).

2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/21031
	* tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
	(forward_propagate_into_cond_1): Call it.  Forward propagate
	integer-integer casts into COND_EXPRs.

2005-04-15  Dave Korn  <dave.korn@artimi.com>

	* gcc.c (default_compilers): Clarify obscure error message when
	reading from standard input.

2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>

	* basic-block.h (PROP_EQUAL_NOTES): Remove.
	* flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.

	* tree-ssa-alias.c (init_alias_info): Remove a call to
	get_stmt_operands.

2005-04-15  Andrew MacLeod  <amacleod@redhat.com>

	* tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
	of non-virtual PHI nodes like we use to.

2005-05-15  Paolo Bonzini  <bonzini@gnu.org>

	* genattrtab.c (ATTR_EQ_ATTR_P): Remove.
	(attr_copy_rtx): Do not use it.

2005-04-15  Andrew Macleod  <amacleod@redhat.com>

	* doc/tree-ssa.texi: Grammer/abbreviation updates.

2005-04-15  Diego Novillo  <dnovillo@redhat.com>

	* tree-vect-transform.c (vectorizable_store): Mark necessary
	objects in the vectorized store needing renaming.  Update the
	SSA graph for V_MAY_DEF operands in the original store.

2005-04-14  Daniel Berlin <dberlin@dberlin.org>

	* tree-ssa-pre.c (compute_avail): It's okay to have
	TREE_INVARIANT's here, and value number the resulting expressions.
	(create_expression_by_pieces): Make sure operands that were
	min_invariant when we started, stay that way.

2005-04-15  David Edelsohn  <edelsohn@gnu.org>

	* doc/install.texi (*-ibm-aix*): Add comment about system limits.

2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/20936.
	* tree-ssa-ccp.c (visit_assignment): Fix a typo.

2005-04-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* doc/invoke.texi: Fix typos.
	* doc/md.texi: Likewise.
	* doc/rtl.texi: Likewise.
	* doc/sourcebuild.texi: Likewise.
	* doc/tm.texi: Likewise.

2005-04-15  Uros Bizjak  <uros@kss-loka.si>

	PR tree-optimization/21004
	* convert.c (convert_to_integer): Convert ceilf, ceill, floorf
	and floorl in c99 mode only.
	* builtins.c (expand_builtin_int_roundingfn): Assert that
	fallback_fndecl is not NULL_TREE.

2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>

	* cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
	* basic-block.h: Update the prototype for
	purge_all_dead_edges.
	* cfgexpand.c (tree_expand_cfg): Update a call to
	purge_all_dead_edges.
	* combine.c (combine_instructions): Likewise.
	* passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
	rest_of_handle_cse2, rest_of_handle_gcse,
	rest_of_handle_postreload): likewise.

2005-04-15  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/20739
	* gimplify.c (gimplify_addr_expr): Compensate for removal of
	e.g. cv-qualification conversions.

2005-04-14  Mike Stump  <mrs@apple.com>

	* config/darwin-c.c (framework_construct_pathname): We must
	find all headers of a framework in the first instance of it
	found in the seach path.

2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/21021
	* tree-vrp.c (compare_values): Work around a bug in the front
	end that produces a comparison of mismatched types.

2004-04-14  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.h (enum fetchop_code): Remove.
	(enum ia64_builtins): Move ...
	* config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
	members except BSP and FLUSHRS.
	(ia64_init_builtins): Remove __sync builtins.
	(ia64_expand_builtin): Likewise.
	(ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
	(ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
	(ia64_expand_lock_release): Remove.
	* config/ia64/ia64.md (mf): Move to sync.md.
	(mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
	cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
	* config/ia64/sync.md: New file.
	(memory_barrier): Rename from mf.
	(fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
	(cmpxchg_acq_<I48MODE>): Likewise.
	(sync_lock_test_and_set<I48MODE>): Likewise.

	* config/ia64/ia64intrin.h: Define nothing for C; limit #defines
	to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.

2004-04-14  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
	(ix86_compare_emitted): New.
	(ix86_expand_compare): Use ix86_compare_emitted if set.
	(ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
	and ix86_compare_op0 are set.
	* config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
	(TARGET_CMPXCHG, TARGET_XADD): New.
	(ix86_compare_emitted): Declare.
	* config/i386/i386.md: Include sync.md
	(UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
	(UNSPECV_XCHG, UNSPECV_LOCK): New.
	* config/i386/sync.md: New file.

2004-04-14  Richard Henderson  <rth@redhat.com>

	PR middle-end/14311
	* builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
	BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
	BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
	BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
	BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
	BT_FN_I8_VPTR_I8_I8): New.
	* builtins.def (DEF_SYNC_BUILTIN): New.
	(BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
	BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
	BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
	BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
	BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
	BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
	BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
	BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
	BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
	BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
	BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
	BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
	BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
	BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
	BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
	BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
	BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
	BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
	BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
	BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
	BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
	BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
	BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
	BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
	BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
	BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
	BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
	BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
	BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
	BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
	BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
	BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
	BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
	BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
	BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
	BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
	BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
	BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
	BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
	BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
	BUILT_IN_SYNCHRONIZE: New.
	* builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
	as a function.  Accept __sync_ as a prefix as well.
	(expand_builtin_sync_operation, expand_builtin_compare_and_swap,
	expand_builtin_lock_test_and_set, expand_builtin_synchronize,
	expand_builtin_lock_release): New.
	(expand_builtin): Call them.
	* c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
	neither BOTH_P nor FALLBACK_P are defined.
	(builtin_type_for_size): New.
	(sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
	(resolve_overloaded_builtin): New.
	* c-common.h (resolve_overloaded_builtin): Declare.
	(builtin_type_for_size): Declare.
	* c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
	* expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
	sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
	sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
	sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
	sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
	sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
	sync_compare_and_swap_cc, sync_lock_test_and_set,
	sync_lock_release): New.
	* optabs.h: Declare them.
	* expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
	expand_sync_operation, expand_sync_fetch_operation,
	expand_sync_lock_test_and_set): Declare.
	* genopinit.c (optabs): Add sync optabs.
	* optabs.c (init_optabs): Initialize sync optabs.
	(expand_val_compare_and_swap_1, expand_val_compare_and_swap,
	expand_bool_compare_and_swap, expand_compare_and_swap_loop,
	expand_sync_operation, expand_sync_fetch_operation,
	expand_sync_lock_test_and_set): New.
	* doc/extend.texi (Atomic Builtins): New section
	* doc/md.texi (Standard Names): Add sync patterns.

2005-04-14  Alexandre Oliva  <aoliva@redhat.com>

	* tree-eh.c (lower_try_finally_copy): Generate new code in
	response to goto_queue entries as if the queue was sorted by
	index, not pointers.
	(lower_try_finally_switch): Likewise.

2005-04-14  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
	(ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
	register.
	(ix86_expand_fp_movcc): Update to match.
	(ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
	* config/i386/i386-protos.h: Update.
	* config/i386/sse.md (vcondv4sf, vcondv2df): New.
	(vcond<SSEMODE124>, vcondu<SSEMODE12>): New.

2005-04-14  Joseph S. Myers  <joseph@codesourcery.com>

	* doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
	refer to 4.0.

2005-04-14  Julian Brown  <julian@codesourcery.com>

	* Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
	link failures on ppc64 Linux.

2005-04-14  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config.gcc: Set cpu_type for s390.

2005-04-14  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/20963
	* tree-ssa-pre.c (compute_avail): Remove special case for
	TREE_INVARIANT.
	(create_expression_by_pieces): Add value numbers for forced out
	statements.

2005-04-14  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.md: Replace references to (reg:SI 16) with
	(reg:SI CRIS_SRP_REGNUM).

2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/20657
	* tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
	create an appropriate range from it.

2005-04-14  Uros Bizjak  <uros@kss-loka.si>

	* reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
	<UNSPEC_FIST_CEIL> case.

	* config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
	(*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
	(fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
	to implement lfloor and llfloor built-ins as x87 intrinsic function.
	(fistdi2_floor, fist<mode>2_floor splitters): New splitters.
	(lfloor<mode>2): New expanders.
	(*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
	(fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
	to implement lceil and llceil built-ins as x87 intrinsic function.
	(fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
	(lceil<mode>2): New expanders.

2005-04-14  Uros Bizjak  <uros@kss-loka.si>

	* convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
	and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.

2005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>

	PR target/20927
	* config/s390/s390-modes.def: Define TFmode.

2005-04-13  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
	(JUMP_TABLES_IN_TEXT_SECTION): Define.
	* config/mips/mips.c (mips16_insn_length): Remove reference to
	JUMP_TABLES_IN_TEXT_SECTION.

2005-04-13 Fariborz Jahanian <fjahanian@apple.com>

	* simplify-rtx.c (simplify_binary_operation_1): Return
	scalar or vector of constant 0, depending on the xor's
	mode.

2005-04-13  Dale Johannesen  <dalej@apple.com>

	* objc/Make-lang.in (objc-lang.o): Depend on tree-gimple.h.
	(objc-act.o): Ditto.
	* objc/objc-act.c (objc_gimplify_expr): New.
	(objc_get_callee_fndecl): New.
	* objc/objc-act.h: Include tree-gimple.h.  Declare new functions.
	* objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR): Define.
	(LANG_HOOKS_GET_CALLEE_FNDECL): Define.

2005-04-13  Devang Patel  <dpatel@apple.com>

	* tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
	temp variables.

2005-04-13  Hans-Peter Nilsson  <hp@axis.com>

	CRIS prologue as RTL.
	* config/cris/cris-protos.h (cris_emit_movem_store)
	(cris_expand_prologue): Prototype.
	* config/cris/cris.c (struct machine_function): New member
	stdarg_regs.
	(cfa_label_num, cris_target_asm_function_prologue): Remove.
	(TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
	(cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
	(cris_load_multiple_op, cris_return_address_on_stack)
	(cris_return_address_on_stack_for_return): ISO-Cify.
	(cris_store_multiple_op): New predicate function.
	(cris_expand_prologue, cris_emit_movem_store): New functions.
	(cris_print_operand) <case 'O'>: Handle modifications other than
	post-increment.
	(cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
	(cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
	(cris_gen_movem_load): Rearrange slightly to make local variable
	src a parameter, removing osrc.
	(cris_setup_incoming_varargs): Set machine_function member
	stdarg_regs to correspond to the number of registers that need to
	be saved.
	* config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
	CRIS_UNSPEC_GOT.
	(PREDICATE_CODES): Add cris_store_multiple_op.  Make
	cris_general_operand_or_gotless_symbol accept UNSPEC.
	* config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
	("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
	("*cris_store_multiple"): New pattern.  Tweak common comment above
	this and "*cris_load_multiple".
	("prologue"): New define_expand.

	* config/cris/cris.md ("epilogue"): Conditionalize on
	TARGET_PROLOGUE_EPILOGUE.

2005-04-13  Steve Ellcey  <sje@cup.hp.com>

	PR target/20924
	* config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
	fpsr 0 instead of fpsr 1.
	(divsf3_internal_thr): Ditto.
	(divdf3_internal_lat): Ditto.
	(divdf3_internal_thr): Ditto.
	(divxf3_internal_lat): Ditto.
	(divxf3_internal_thr): Ditto.

2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/20913
	* tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.

	PR tree-optimization/20702
	* tree-vrp.c (maybe_add_assert_expr): Recurse into
	dominator children that haven't been walked into.

2005-04-13  Julian Brown  <julian@codesourcery.com>

	* config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
	being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
	is true.

2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>

	* basic-block.h, tree-ssa-uncprop.c, varasm.c,
	config/i386/sse.md: Fix comment typos.

	* genattrtab.c (NULL_ATTR): Remove.
	* ifcvt.c (NULL_EDGE): Likewise.

	* rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.

	* rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
	NOTE_PREDICT): Remove.

2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
	* configure: Regenerate.
	* config.in: Likewise.
	* system.h: Declare vsnprintf if not already declared.

2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* optc-gen.awk: Handle stand-alone Mask records.
	* opth-gen.awk: Likewise.
	* doc/options.texi (Option file format): Document them.
	* config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
	sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
	(sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
	* config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
	MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
	MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
	MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
	MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
	MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
	(TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
	TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
	TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
	TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
	TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
	TARGET_LONG_DOUBLE_128): Likewise.
	(TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
	(TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
	* config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
	* config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
	* config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
	* config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
	* config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
	* config/sparc/sparc.c (fpu_option_set): New global.
	(sparc_handle_option): New function.
	(sparc_override_options): Test fpu_option_set.
	(TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
	(TARGET_HANDLE_OPTION): Set to sparc_handle_option.
	* config/sparc/sparc.opt: New file.
	* config/sparc/little-endian.opt: Likewise.
	* config/sparc/long-double-switch.opt: Likewise.

2005-04-13  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (bfin_lib_id_given): New static variable.
	(bfin_handle_options): Set it if -mshared-library-id= is seen.
	* config/bfin/bfin.opt (mshared-library-id=): Lose
	Var(bfin_lib_id_given).

2005-04-13  Matt Thomas  <matt@3am-software.com>

	* config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
	defining.

2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>

	* rtl.h (CLEAR_RTX_FLAGS): Remove.

	* cgraphunit.c (INSNS_PER_CALL): Remove.

	* tree-ssa-forwprop.c (vars,
	record_single_argument_cond_exprs,
	substitute_single_use_vars): Remove.
	(forward_propagate_into_cond_1, forward_propagate_into_cond):
	New.
	(tree_ssa_forward_propagate_single_use_vars): Call
	forward_propagate_into_cond for each COND_EXPR.

	* tree-inline.c (INSNS_PER_STMT): Remove.

2005-04-12  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
	(ix86_expand_sse_fp_minmax): ... from ...
	(ix86_expand_fp_movcc): ... here.
	(ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
	(sse_setccsf, sse_setccdf): Allow before reload.
	(movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
	(movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
	(ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
	* config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
	(anddf3, nanddf3, iordf3, xordf3): New.

2005-04-12  Jeff Law  <law@redhat.com>

	* Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
	(tree-ssa-uncprop.o): Add dependencies.
	* tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
	* tree-flow.h (remove_useless_stmts): Remove prototype.
	* tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
	remove_useless_stmts.
	* timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
	* tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
	* tree-pass.h (pass_uncprop): Declare.
	* tree-ssa-uncprop.c: New file.

2005-04-12  James E. Wilson  <wilson@specifixinc.com>

	PR target/20670
	* unwind-ia64.c (uw_intall_context): Add missing load of r27.

2005-04-12  Caroline Tice  <ctice@apple.com>

	Temporary fix for partitioning problems.
	* passes.c (rest_of_handle_final): Remove code that
	frees unlikely_text_section_name,
	* varasm.c (assemble_start_function): Test for partitioning
	flag before writing out section labels.
	(assemble_end_function): Test for partitioning flag before
	writing out section labels.

2005-04-12  Steven Bosscher  <stevenb@suse.de>
	    Stuart Hastings <stuart@apple.com>
	    Jan Hubicka  <jh@suse.cz>

	* Makefile.in: Add function.h to BASIC_BLOCK_H.  Remove all
	references to gt-tree-cfg.h.
	* basic-block.h (struct basic_block_def): Don't skip rbi
	for garbage collection.
	(struct reorder_block_def): Make GTY-able.
	(struct control_flow_graph): New structure.
	(n_edges, n_basic_blocks, last_basic_block, basic_block_info,
	BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
	but instead defines to the control_flow_graph for cfun.
	(label_to_block_map): New define, points to the label map of
	the control_flow_graph for cfun.
	(n_edges_for_function, n_basic_blocks_for_function,
	last_basic_block_for_function, basic_block_info_for_function,
	EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
	basic_block_info_for_function, label_to_block_map_for_function):
	Counterparts for the above, taking a struct function as an extra
	argument.
	(alloc_rbi_pool, free_rbi_pool): Remove prototypes.
	* cfg.c: (n_edges, n_basic_blocks, last_basic_block,
	basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
	(alloc_rbi_pool, free_rbi_pool): Remove.
	(initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
	* cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
	here...
	(cfg_layout_finalize) ... and don't free it here.
	* cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
	garbage collected.
	* flow.c (free_basic_block_vars): Set label_to_block_map and
	n_edges to zero too.
	* function.h (struct function): Add cfg field.
	* function.c (allocate_struct_function): Allocate the cfg.
	* tree-cfg.c (label_to_block_map): Remove.
	(build_tree_cfg): Don't allocate the rbi pool here...
	(delete_tree_cfg_annotations): ...and don't free it here.
	Also don't nullify label_to_block_map for cfun.

2005-04-12  Caroline Tice  <ctice@apple.com>

	* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
	Revert my patch from April 9.
	(fix_edges_for_rarely_executed_code): Revert my patch from April 9.
	(reorder_basic_blocks): Revert my patch from April 9.
	(insert_section_boundary_note): Revert my patch from April 9.
	* dbxout.c (dbxout_function_end): Revert my patch from April 9.
	* dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
	(COLD_END_LABEL): Revert my patch from April 9.
	(cold_text_section_label): Revert my patch from April 9.
	(cold_end_label): Revert my patch from April 9.
	(dwarf2out_switch_text_section): Revert my patch from April 9.
	(output_aranges): Revert my patch from April 9.
	(output_ranges): Revert my patch from April 9.
	(output_line_info): Revert my patch from April 9.
	(add_location_or_const_value_attribute): Revert my patch from April 9.
	(dwarf2out_var_location): Revert my patch from April 9.
	(dwarf2out_init): Revert my patch from April 9.
	(dwarf2out_finish): Revert my patch from April 9.
	* function.h (struct function): Revert my patch from April 9.
	* opts.c (decode_options): Revert my patch from April 9.
	* output.h (unlikely_section_label, hot_section_label,
	hot_section_end_label, cold_section_end_label,
	unlikely_text_section_name): Revert my patch from April 9.
	* passes.c (rest_of_handle_final): Revert my patch from April 9.
	* varasm.c (unlikely_section_label, hot_section_label,
	hot_section_end_label, cold_section_end_label,
	unlikely_text_section_name): Revert my patch from April 9.
	(initialize_cold_section_name): Revert my patch from April 9.
	(unlikely_text_section): Revert my patch from April 9.
	(in_unlikely_text_section): Revert my patch from April 9.
	(named_section): Revert my patch from April 9.
	(function_section): Revert my patch from April 9.
	(current_function_section): Revert my patch from April 9.
	(assemble_start_function): Revert my patch from April 9.
	(assemble_end_function): Revert my patch from April 9.
	(default_section_type_flags_1): Revert my patch from April 9.

2005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
	* config/sparc/sparc.md (untyped_call): Save the registers manually.

	* config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.

2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>

	PR middle-end/20917
	* config/s390/s390.md ("*set_tp"): Use SET in pattern.
	("set_tp_64", "set_tp_31"): Adapt expanded pattern.

2004-04-12  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
	UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
	UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
	(UNSPEC_*, UNSPECV_*): Renumber.

2005-04-12  Frank Ch. Eigler  <fche@redhat.com>

	PR mudflap/19266
	From Richard Henderson <rth@redhat.com>:
	* tree-mudflap.c (mf_build_check_statement_for): Correct block
	splitting logic.

2005-04-12  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.

2005-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin.c (bfin_library_id_string): Remove.
	(bfin_library_id): New variable.
	(bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
	instead of bfin_library_id_string.
	(bfin_handle_option): New function.
	(override_options): Remove most code to deal with shared library IDs,
	just check they aren't used without -mid-shared-library.
	(TARGET_HANDLE_OPTION): Define.
	* config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
	* config/bfin/bfin.opt (mshared-library-id=): New.

2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-vect-transform.c: Fix comment typos.

2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>

	* postreload-gcse.c (eliminate_partially_redundant_load): Don't
	split critical edges when not possible/profitable.

2005-04-12  Richard Sandiford  <rsandifo@redhat.com>

	* config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
	(MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
	(MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
	(TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
	(TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
	(TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
	(OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
	* config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
	MASK_NO_BITFIELD.
	* config/ns32k/ns32k.c (ns32k_handle_option): New function.
	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
	* config/ns32k/ns32k.opt: New file.

2005-04-12  Richard Sandiford  <rsandifo@redhat.com>

	* config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
	* config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
	(MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
	(TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
	(MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
	(TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
	(MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
	(MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
	(MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
	(TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
	(TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
	(TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
	(MASK_COLDFIRE): Formatting fixes.
	(TARGET_COLDFIRE): Turn into a boolean value for consistency.
	* config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
	* config/m68k/m68k.c (m68k_library_id_string): Initialize to
	"_current_shared_library_a5_offset_".
	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
	(MASK_ALL_CPU_BITS): New macro.
	(m68k_handle_option): New function.
	(override_options): Remove handling of m68k_library_id_string.
	* config/m68k/m68k.opt: New file.
	* config/m68k/ieee.opt: New file.

2005-04-11  Mark Mitchell  <mark@codesourcery.com>

	* target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
	(TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
	(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
	(TARGET_CXX): Adjust accordingly.
	* target.h (struct gcc_target): Remove epxort_class_data.  Add
	determine_class_data_visibility and class_data_always_comdat.
	* doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
	(TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
	(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
	* config/arm/arm.c (arm_cxx_export_class_data): Remove.
	(arm_cxx_determine_class_data_visibility): New.
	(arm_cxx_class_data_always_comdat): Likewise.
	(TARGET_CXX_EXPORT_CLASS_DATA): Remove.
	(TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
	(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
	* config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
	* config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
	Define.

2005-04-11  Devang Patel  <dpatel@apple.com>

	* tree-data-ref.c (build_classic_dist_vector,
	compute_subscript_distance): Make externally visible.
	* tree-data-ref.h (build_classic_dist_vector,
	compute_subscript_distance): Same.
	* tree-vect-analyze.c (vect_analyze_data_ref_dependence):
	Check distance vector against vectorization factor.
	(vect_analyze_loop): Determine vectorizaion factor before
	analyzing data dependences.
	* tree-vectorizer.c (loops_num): Make it externally visible and
	rename ...
	* tree-vectorizer.c (vect_loops_num): ... new name.
	* tree-vectorizer.h  (vect_loops_num): New.

2005-04-11  Devang Patel  <dpatel@apple.com>

	* tree-vect-analyze.c (vect_analyze_operations): Check
	vectorizable codition.
	* tree-vect-transform.c (vect_is_simple_cond): New function.
	(vectorizable_condition): New function.
	(vect_transform_stmt): Handle condition_vec_info_type.
	* tree-vectorizer.h (enum stmt_vec_info_type): Add
	condition_vec_info_type.
	(vectorizable_condition): New.

2005-04-11  Geoffrey Keating  <geoffk@apple.com>

	* config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
	* config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
	* config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.

	* config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
	(SUBTARGET_EXTRA_SPECS): Always 'i386'.

	* dwarf2out.c (output_line_info): Don't try to dereference
	a NULL current_function_decl.

	* config/t-slibgcc-darwin: Don't put shared libraries in
	directories other than $(slibdir).
	* config/rs6000/darwin.h: Find -m64 libgcc under the name the
	OS uses for it.

2005-04-11  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/20933
	* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
	logic to reject aliases between read-only and writable
	variables ...
	(may_alias_p): ... here.
	(get_tmt_for): Do not associate read-only tags to pointers
	whose pointed-to type is not read-only.
	* tree-ssa.c (verify_ssa): Check that memory stores have at
	least one V_MAY_DEF or V_MUST_DEF.

2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR/17092
	* configure.ac (gcc_UNLOCKED_FUNCS): New.
	(AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
	* system.h (putchar, getc, getchar, clearerr, feof, fileno,
	fflush, fgetc, fgets, ferror, fread): Redefine to the associated
	_unlocked function.
	(fwrite_unlocked): Fix prototype.

	* configure, config.in: Regenerate.

2005-04-11  David Edelsohn  <edelsohn@gnu.org>

	* tree-ssa-loop-im.c: Include real.h.
	(determine_invariantness_stmt): If real division divisor is
	invariant and flag_unsafe_math_optimizations enabled, generate
	invariant reciprocal for hoisting.
	* Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.

2005-04-11  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/20926

	* tree-ssa-alias.c (add_type_alias): Handle subvars.

2005-04-11  Devang Patel  <dpatel@apple.com>

	* config/rs6000.c (rs6000_emit_vector_select): Fix vector select
	operand ordering.

2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>

	* fold-const.c (fold_binary_op_with_conditional_arg):
	use fold_buildN instead of "fold (buildN" in some
	non obvious places.
	(fold_unary): Likewise.
	(fold_binary): Likewise.

2005-04-11  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/20612
	* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
	handling
	(perfect_nestify): preheaderbb is *not* part of loop of the
	old destination.

2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree-ssa-alias.c (may_alias_p): If the variable
	is a global variable and the pointer is parameter
	and -fargument-noalias-global is used, then
	the pointer cannot alias the variable.

2005-04-11  James A. Morrison  <phython@gcc.gnu.org>

	* config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
	* config/sparc/sparc.h: Likewise.
	* config/sparc/sparc.md: Likewise.

2005-04-11  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-vrp.c (maybe_add_assert_expr): Move a comment.

	* tree-vrp.c: Fix a comment typo.

2005-04-11  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/20920
	* tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
	SSA_NAME flows through an abnormal edge.
	* tree-vrp.c (infer_value_range): Ignore SSA names that flow
	through abnormal edges.
	(maybe_add_assert_expr): Likewise.

2005-04-11  Richard Sandiford  <rsandifo@redhat.com>

	* config/s390/s390.h (s390_tune_string, s390_arch_string)
	(s390_warn_framesize_string, s390_warn_dynamicstack_string)
	(s390_stack_size_string, s390_stack_guard_string, target_flags)
	(MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
	(MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
	(MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
	(TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
	(TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
	(TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
	(TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
	* config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
	(TARGET_HANDLE_OPTION): Likewise.
	(s390_tune): Initialize to PROCESSOR_max.
	(s390_arch_string): Make static.
	(s390_tune_string, s390_warn_framesize_string): Delete.
	(s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
	(s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
	(s390_handle_arch_option, s390_handle_option): New functions.
	(override_options): Remove parsing of option strings.
	* config/s390/s390.opt: New file.

2005-04-11  Paolo Bonzini  <bonzini@gnu.org>

	* tree-complex.c (expand_vector_operations): Call
	update_stmt_if_modified.

2005-04-11  Paolo Bonzini  <bonzini@gnu.org>

	* tree-vect-analyze (vect_determine_vectorization_factor):
	Do not use GET_MODE_NUNITS.
	* tree-vect-transform.c (vect_get_vec_def_for_operand,
	(vectorizable_load, vect_transform_loop): Likewise.

2005-04-11  Uros Bizjak  <uros@kss-loka.si>

	* builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
	(BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
	* optabs.h (enum optab_index): Add new OTI_lceil.
	(lceil_optab): Define corresponding macro.
	* optabs.c (init_optabs): Initialize lceil_optab.
	* genopinit.c (optabs): Implement lceil_optab using lceilsi2
	and lceildi2 patterns.
	* builtins.c (expand_builtin_int_roundingfn): Handle
	BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
	(fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
	BUILT_IN_LLCEIL{,F,L}.
	(fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
	BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
	(mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
	(expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
	BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
	* convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
	into lceil built-in function and (long long int)ceil{,f,l} into
	llceil built-in function.
	* fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
	BUILT_IN_LLCEIL.

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

	* pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
	zero.

2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arm/arm.c: Fix a comment typo.
	* doc/tree-ssa.texi: Fix a typo.

2005-04-10  Steven Bosscher  <stevenb@suse.de>

	* cselib.c (clear_table): Rename to cselib_clear_table.
	* cselib.h (cselib_clear_table): Add prototype.
	* gcse.c (gcse_main): Make 'f' argument unused.
	(alloc_gcse_mem): Do not walk the insn chain, walk the contents
	of each basic block instead.
	(compute_sets, compute_hash_table_work): Likewise.
	(constprop_register): Change int 'alter_jumps' argument to bool.
	(do_local_cprop): Likewise.
	(local_cprop_pass): Likewise.  Also walk basic blocks instead of
	the insn chain.  Explicitly clear the cselib tables after finishing
	one basic block.  Make sure there are no unterminated libcall blocks.
	Update compute_sets call.
	(cprop): Walk basic blocks instead of the insn chain.
	(one_cprop_pass, compute_ld_motion_mems, compute_store_table):
	Likewise.
	(bypass_jumps): Update alloc_gcse_mem, compute_sets, and
	one_cprop_pass calls.

2005-04-10  Richard Sandiford  <rsandifo@redhat.com>

	* combine.c (combine_simplify_rtx): Remove a transformation that
	relies on an invalid assumption about rtl sign-extension semantics.

2005-04-10  Richard Sandiford  <rsandifo@redhat.com>

	* value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
	to build_int_cst_wide.

2005-04-09  Alexandre Oliva  <aoliva@redhat.com>

	PR target/20126
	* loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
	set the original address pseudo to the correct value before the
	original insn, if possible, and leave the insn alone, otherwise
	create a new pseudo, set it and replace it in the insn.
	* recog.c (validate_change_maybe_volatile): New.
	* recog.h (validate_change_maybe_volatile): Declare.

2005-04-09  Caroline Tice  <ctice@apple.com>

	* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
	Remove targetm.have_named_sections test.
	(fix_edges_for_rarely_executed_code): Likewise.
	(insert_section_boundary_note): Likewise.
	(reorder_basic_blocks): Check partitioning flag before calling
	verify_hot_cold_block_grouping.
	* dbxout.c (dbxout_function_end): Get hot/cold section labels from
	the function struct rather than global variables.
	* dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
	(COLD_END_LABEL): Likewise
	(cold_text_section_label): New static global variable.
	(cold_end_label): Likewise.
	(dwarf2out_switch_text_section): Get hot/cold section labels from
	the function struct rather than global variables.
	(output_aranges): Use cold_text_section_label and cold_end_label;
	check partitioning flag before putting out delta.
	(output_ranges): Remove incorrect code attempting to use
	hot/cold labels.
	(output_line_info): Get cold section label from function struct.
	(add_location_or_const_value_attribute): Likewise.
	(get_subprogram_die): Get hot/cold section labels from function struct.
	(dwarf2out_var_location): Likewise.
	(dwarf2out_init): Generate cold_text_section_label and cold_end_label;
	write out cold_text_section_label if partition flag is set.
	(dwarf2out_finish): Write out cold_end_label if partition flag is set;
	* function.h (struct function): Add new fields to point to hot/cold
	section labels: hot_section_label, cold_section_label,
	hot_section_end_label and cold_section_end_label; also add new field
	for cold text section name, unlikely_text_section_name.
	* opts.c (decode_options): Turn off partitioning flag if
	!targetm.have_named_sections.
	* output.h (hot_section_label): Remove.
	(hot_section_end_label): Remove.
	(cold_section_end_label): Remove.
	(unlikely_section_label): Remove.
	(unlikely_text_section_name): Remove.
	* passes.c (rest_of_handle_final): Remove code that frees
	unlikely_text_section_name.
	* varasm.c (unlikely_section_label): Remove.
	(hot_section_label): Remove.
	(hot_section_end_label): Remove.
	(cold_section_end_label): Remove.
	(unlikely_text_section_name): Remove.
	(initialize_cold_section_name): Modify to call
	targetm.strip_name_encoding; to store cold section name in current
	function struct, if it exists; and to only use the decl_section_name
	if flag_named_sections is true.
	(unlikely_text_section): Modify to get section name out of current
	function struct, if there is one; otherwise build it from
	UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
	(in_unlikely_text_section): Likewise.
	(named_section): Modify to get/put cold section name in current function
	struct, if there is one.
	(function_section): Change 'bool unlikely' to 'int reloc'; check
	targetm.have_named_sections before calling named_section.
	(current_function_section): Likewise.
	(assemble_start_function): Modify to get/put unlikely_text_section_name
	in current function struct; modify to get hot/cold section labels
	from function struct; initialize labels using
	ASM_GENERATE_INTERNAL_LABEL;
	test partitioning flag before writing out hot section label.
	(assemble_end_function): Test partitioning flag before writing out
	hot/cold section labels.
	(default_section_type_flags_1): Modify to use array instead of
	 char* for unlikely_text_section_name; set flags correctly for
	 cold text section if there is not a current function decl.

2005-04-09  Jakub Jelinek  <jakub@redhat.com>

	* tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
	and TI_VA_LIST_FPR_COUNTER_FIELD.
	(va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
	* tree-pass.h (pass_stdarg): Add.
	* tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
	* tree-stdarg.c: New file.
	* tree-stdarg.h: New file.
	* Makefile.in (OBJS-common): Add tree-stdarg.o.
	(tree-stdarg.o): Add dependencies.
	* function.h (struct function): Add va_list_gpr_size and
	va_list_fpr_size fields.
	* function.c (allocate_struct_function): Initialize them.
	* target.h (struct gcc_target): Add stdarg_optimize_hook.
	* target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
	(TARGET_INITIALIZER): Add it.

	* config/i386/i386.c (ix86_build_builtin_va_list): Initialize
	va_list_{g,f}pr_counter_field.
	(ix86_setup_incoming_varargs): Don't do anything if reg_save
	area will not be used.  Only save registers that tree-stdarg.c
	detected they need saving.
	(ix86_va_start): Don't set up fields that won't be used.

	* config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
	va_list_{g,f}pr_counter_field.
	(setup_incoming_varargs): Don't do anything if reg_save
	area will not be used.  Only save registers that tree-stdarg.c
	detected they need saving.
	(rs6000_va_start): Don't set up fields that won't be used.

	* config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
	(alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
	(va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
	(TARGET_STDARG_OPTIMIZE_HOOK): Define.

2005-04-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/20795
	* config/i386/i386.c (construct_container): Pass empty aligned
	struct, union or class in memory.

2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>

	* dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
	tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
	config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
	config/rs6000/predicates.md: Fix comment typos.

	* sched-int.h (haifa_insn_data): Remove blockage and units.
	(INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
	ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
	MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.

2005-04-09  Jan Hubicka  <jh@suse.cz>
	    Steven Bosscher  <stevenb@suse.de>

	* cfglayout.c (copy_bbs): Rename n_edges to num_edges.
	* cfgloop.c (get_loop_exit_edges): Likewise.
	* cfgloopmanip.c (fix_irreducible_loops): Likewise.
	(unloop): Likewise.
	* loop-unroll.c (analyze_insns_in_loop): Likewise.
	* tree-cfg.c (dump_cfg_status): Likewise.

2005-04-09  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/predicates.md (altivec_register_operand): Remove
	redundant match_code test.
	(gpc_reg_operand): Same.
	(cc_reg_operand): Same.
	(cc_reg_not_cr0_operand): Same.

2005-04-09  Jan Hubicka  <jh@suse.cz>

	Forgotten hunk from my last merge patch:
	* final.c (output_addr_const): Do not call mark_referenced.

2005-04-09  Andrew MacLeod  <amacleod@redhat.com>

	* doc/tree-ssa.texi: Add immediate use documentation.

2005-04-09  Richard Earnshaw <richard.earnshaw@arm.com>

	* arm.c (FL_WBUF): Define.
	(arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
	(arm_is_6_or_7): Delete.
	(arm_tune_wbuf): New.
	(arm_override_options): Set arm_tune_wbuf.
	* arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
	(arm_is_6_or_7): Delete declaration.
	(arm_tune_wbuf): New declartion.
	* arm.md (is_strongarm): Derive from arm_tune_strongarm.
	(model_wbuf): Derive from arm_tune_wbuf.
	* arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
	(arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
	(arm740t): Mark CPUs as having a write buffer.

2005-04-09  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
	of 'const_double_operand' in operand 2 constraints.  Update enable
	condition.

2005-04-09  Uros Bizjak  <uros@kss-loka.si>

	* builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
	(BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
	* optabs.h (enum optab_index): Add new OTI_lfloor.
	(lfloor_optab): Define corresponding macro.
	* optabs.c (init_optabs): Initialize lfloor_optab.
	* genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
	and lfloordi2 patterns.
	* builtins.c (expand_builtin_int_roundingfn): New prototype.
	(expand_builtin_int_roundingfn): New function.
	(fold_builtin_int_roundingfn): New prototype.
	(fold_builtin_int_roundingfn): New function, renamed from
	fold_builtin_lround.
	Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
	BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
	(fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
	BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
	(mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
	(expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
	BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
	* convert.c (convert_to_integer): Convert (long int)floor{,f,l},
	into lfloor built-in function and (long long int)floor{,f,l} into
	llfloor built-in function.
	* fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
	BUILT_IN_LLFLOOR.

2005-04-08  Ian Lance Taylor  <ian@airs.com>

	* c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
	CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
	* c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
	(DO_COND, DO_BODY): Likewise.
	(FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
	(SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
	(c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
	BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
	(build_continue_stmt, build_break_stmt): Don't declare.
	(c_do_switch_warnings): Update declaration.
	* c-gimplify.c (enum bc_t): Remove.
	(struct c_gimplify_ctx, ctxp): Remove.
	(push_context, pop_context): Remove static functions.
	(c_genericize): Don't call push_context or pop_context.
	(begin_bc_block, finish_bc_block): Remove static functions.
	(build_bc_goto): Likewise.
	(gimplify_c_loop): Likewise.
	(gimplify_for_stmt, gimplify_while_stmt): Likewise.
	(gimplify_do_stmt, gimplify_switch_stmt): Likewise.
	(c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
	DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
	* c-common.c (c_do_switch_warnings): Rename from
	c_do_switch_warnings_1.
	(c_do_switch_warnings) [old version]: Remove.
	(c_do_switch_expr_warnings): Remove.
	* c-typeck.c (c_finish_case): Call new c_do_switch_warnings
	function instead of c_do_switch_expr_warnings.
	* c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
	CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
	* c-pretty-print.c (pp_c_statement): Likewise.
	* c-semantics.c (build_break_stmt, build_continue_stmt): Remove.

2005-04-08  Devang Patel  <dpatel@apple.com>

	* tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
	While selecting replacement condition pay attention to loop header.

2005-04-08  Diego Novillo  <dnovillo@redhat.com>

	Merge from tree-cleanup-branch: VRP, store CCP, store
	    copy-prop, incremental SSA updating of FUD chains and
	    newly exposed symbols.

	* Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
	(OBJS-common): Add tree-vrp.o.
	(tree-vrp.o): New rule.
	* basic-block.h (nearest_common_dominator_for_set): Declare.
	* common.opt (ftree-store-ccp): New flag.
	(ftree-copy-prop): New flag.
	(ftree-vrp): New flag.
	(ftree-store-copy-prop): New flag.
	* dominance.c (nearest_common_dominator_for_set): New.
	* domwalk.c (walk_dominator_tree): Only traverse
	statements in blocks marked in walk_data->interesting_blocks.
	* domwalk.h (struct dom_walk_data): Add field interesting_blocks.
	* fold-const.c (fold): Handle ASSERT_EXPR.
	* opts.c (decode_options): Set flag_tree_copy_prop at -O1.
	Set flag_tree_store_ccp, flag_tree_store_copy_prop and
	flag_tree_vrp at -O2.
	* timevar.def (TV_TREE_VRP): Define.
	(TV_TREE_COPY_PROP): Define.
	(TV_TREE_STORE_COPY_PROP): Define.
	(TV_TREE_SSA_INCREMENTAL): Define.
	(TV_TREE_STORE_CCP): Define.
	* tree-cfg.c (tree_can_merge_blocks_p): Remove reference
	to kill_redundant_phi_nodes from comment.
	(verify_expr): Handle ASSERT_EXPR.
	* tree-dfa.c (mark_new_vars_to_rename): Remove second
	argument.  Update all users.
	(mark_call_clobbered_vars_to_rename): Remove.  Update all
	users.
	* tree-flow-inline.h (unmodifiable_var_p): New.
	* tree-flow.h (enum value_range_type): Declare.
	(struct value_range_def): Declare.
	(value_range): Declare.
	(remove_all_phi_nodes_for): Remove.  Update all users.
	(find_phi_node_for): Declare.
	(add_type_alias): Declare.
	(count_uses_and_derefs): Declare.
	(kill_redundant_phi_nodes): Remove.
	(rewrite_into_ssa): Remove.
	(rewrite_def_def_chains): Remove.
	(update_ssa, register_new_name_mapping, create_new_def_for,
	need_ssa_update_p, name_registered_for_update_p,
	release_ssa_name_after_update_ssa, dump_repl_tbl,
	debug_repl_tbl, dump_names_replaced_by,
	debug_names_replaced_by, mark_sym_for_renaming,
	mark_set_for_renaming, get_current_def, set_current_def,
	get_value_range, dump_value_range, debug_value_range,
	dump_all_value_ranges, debug_all_value_ranges,
	expr_computes_nonzero, loop_depth_of_name,
	unmodifiable_var_p): Declare.
	* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
	ASSERT_EXPR.
	* tree-into-ssa.c (block_defs_stack): Update comment.
	(old_ssa_names, new_ssa_names, old_virtual_ssa_names,
	syms_to_rename, names_to_release, repl_tbl,
	need_to_initialize_update_ssa_p, need_to_update_vops_p,
	need_to_replace_names_p): New locals.
	(NAME_SETS_GROWTH_FACTOR): Define.
	(struct repl_map_d): Declare.
	(struct mark_def_sites_global_data): Add field
	interesting_blocks.
	(enum rewrite_mode): Declare.
	(REGISTER_DEFS_IN_THIS_STMT): Define.
	(compute_global_livein): Use last_basic_block instead of
	n_basic_blocks.
	(set_def_block): Remove last argument.  Update all callers.
	(prepare_use_operand_for_rename): Remove.  Update all callers.
	(prepare_def_operand_for_rename): Remove.  Update all callers.
	(symbol_marked_for_renaming): New.
	(is_old_name): New.
	(is_new_name): New.
	(repl_map_hash): New.
	(repl_map_eq): New.
	(repl_map_free): New.
	(names_replaced_by): New.
	(add_to_repl_tbl): New.
	(add_new_name_mapping): New.
	(mark_def_sites): Assume that all the operands in the
	statement are in normal form.
	(find_idf): Assert that the block in the stack is valid.
	(get_default_def_for): New.
	(insert_phi_nodes_for): Add new argument 'update_p'.
	Add documentation.
	If update_p is true, add a new mapping between the LHS of
	each new PHI and the name that it replaces.
	(insert_phi_nodes_1): Only call find_idf if needed.
	(get_reaching_def): Call get_default_def_for.
	(rewrite_operand): Remove.
	(rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
	and REWRITE_THIS_STMT are false.
	Assume that all the operands in the statement are in
	normal form.
	(rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
	(rewrite_virtual_phi_arguments): Remove.
	(invalidate_name_tags): Remove.
	(register_new_update_single, register_new_update_set,
	rewrite_update_init_block, replace_use,
	rewrite_update_fini_block, rewrite_update_stmt,
	rewrite_update_phi_arguments): New.
	rewrite_blocks): Remove argument 'fix_virtual_phis'.
	Add arguments 'entry', 'what' and 'blocks'.
	Initialize the dominator walker according to 'what' and
	'blocks'.
	Start the dominator walk at 'entry'.
	(mark_def_site_blocks): Add argument 'interesting_blocks'.
	Use it to configure the dominator walker.
	(rewrite_into_ssa): Remove argument 'all'.
	Make internal.
	(rewrite_all_into_ssa): Remove.
	(rewrite_def_def_chains): Remove.
	(mark_def_interesting, mark_use_interesting,
	prepare_phi_args_for_update, prepare_block_for_update,
	prepare_def_site_for, prepare_def_sites,
	dump_names_replaced_by, debug_names_replaced_by,
	dump_repl_tbl, debug_repl_tbl, init_update_ssa,
	delete_update_ssa, create_new_def_for,
	register_new_name_mapping, mark_sym_for_renaming,
	mark_set_for_renaming, need_ssa_update_p,
	name_registered_for_update_p, ssa_names_to_replace,
	release_ssa_name_after_update_ssa,
	insert_updated_phi_nodes_for, update_ssa): New.
	* tree-loop-linear.c (linear_transform_loops): Call
	update_ssa instead of rewrite_into_ssa.
	* tree-optimize.c (vars_to_rename): Remove.
	Update all users.
	(init_tree_optimization_passes): Replace
	pass_redundant_phi with pass_copy_prop.
	Add pass_vrp.
	Replace pass_ccp with pass_store_ccp.
	Add pass_store_copy_prop after pass_store_ccp.
	(execute_todo): If the TODO_ flags don't include updating
	the SSA form, assert that it does not need to be updated.
	Call update_ssa instead of rewrite_into_ssa and
	rewrite_def_def_chains.
	If TODO_verify_loops is set, call verify_loop_closed_ssa.
	(tree_rest_of_compilation):
	* tree-pass.h (TODO_dump_func, TODO_ggc_collect,
	TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
	TODO_cleanup_cfg): Renumber.
	(TODO_verify_loops, TODO_update_ssa,
	TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
	TODO_update_ssa_only_virtuals): Define.
	(pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
	Declare.
	* tree-phinodes.c (make_phi_node): Update documentation.
	(remove_all_phi_nodes_for): Remove.
	(find_phi_node_for): New.
	* tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
	* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
	(interpret_rhs_modify_expr): Likewise.
	* tree-sra.c (decide_instantiations): Mark all symbols in
	SRA_CANDIDATES for renaming.
	(mark_all_v_defs_1): Rename from mark_all_v_defs.
	(mark_all_v_defs): New function.  Update all users to call it
	with the whole list of scalarized statements, not just the
	first one.
	* tree-ssa-alias.c (count_ptr_derefs): Make extern.
	(compute_flow_insensitive_aliasing): If the tag is
	unmodifiable and the variable isn't or vice-versa, don't
	make them alias of each other.
	(setup_pointers_and_addressables): If the type tag for
	VAR is about to change, mark the old one for renaming.
	(add_type_alias): New.
	* tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
	(ccp_lattice_t): Rename from latticevalue.
	(value): Remove.  Update all users.
	(const_val): New local variable.
	(do_store_ccp): New local variable.
	(dump_lattice_value): Handle UNINITIALIZED.
	(debug_lattice_value): New.
	(get_default_value): Re-write.
	(set_lattice_value): Re-write.
	(def_to_varying): Remove.  Update all users.
	(likely_value): Return VARYING for statements that make
	stores when STORE_CCP is false.
	Return VARYING for any statement other than MODIFY_EXPR,
	COND_EXPR and SWITCH_EXPR.
	(ccp_initialize): Re-write.
	(replace_uses_in, replace_vuse_in, substitute_and_fold):
	Move to tree-ssa-propagate.c.
	(ccp_lattice_meet): Handle memory stores when
	DO_STORE_CCP is true.
	(ccp_visit_phi_node): Likewise.
	(ccp_fold): Likewise.
	(evaluate_stmt): Likewise.
	(visit_assignment): Likewise.
	(ccp_visit_stmt): Likewise.
	(execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
	into DO_STORE_CCP.
	(do_ssa_ccp): New.
	(pass_ccp): Use it.
	(do_ssa_store_ccp): New.
	(gate_store_ccp): New.
	(pass_store_ccp): Declare.
	* tree-ssa-copy.c: Include tree-ssa-propagate.h.
	(may_propagate_copy): Reformat.
	Don't abort if ORIG is a virtual and DEST isn't.
	If NEW does not have alias information but DEST does,
	copy it.
	(copy_of, cached_last_copy_of, do_store_copy_prop, enum
	copy_prop_kind, which_copy_prop): Declare.
	(stmt_may_generate_copy, get_copy_of_val,
	get_last_copy_of, set_copy_of_val, dump_copy_of,
	copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
	copy_prop_visit_stmt, copy_prop_visit_phi_node,
	init_copy_prop, fini_copy_prop, execute_copy_prop,
	gate_copy_prop, do_copy_prop, gate_store_copy_prop,
	store_copy_prop): New.
	(pass_copy_prop, pass_store_copy_prop): Declare.
	* tree-ssa-dom.c (struct opt_stats_d): Add fields
	'num_const_prop' and 'num_copy_prop'.
	(cprop_operand): Update them.
	(dump_dominator_optimization_stats): Dump them.
	(tree_ssa_dominator_optimize): Call update_ssa instead of
	rewrite_into_ssa.
	(loop_depth_of_name): Declare extern.
	(simplify_cond_and_lookup_avail_expr): Guard against NULL
	values for LOW or HIGH.
	(cprop_into_successor_phis): Only propagate if NEW != ORIG.
	(record_equivalences_from_stmt): Call expr_computes_nonzero.
	(cprop_operand): Only propagate if VAL != OP.
	* tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
	statement for renaming.
	* tree-ssa-loop-im.c (move_computations): Call update_ssa.
	* tree-ssa-loop-ivopts.c (rewrite_address_base): Call
	add_type_alias if necessary.
	Call mark_new_vars_to_rename.
	(tree_ssa_iv_optimize): If new symbols need to be renamed,
	mark every statement updated, call update_ssa and
	rewrite_into_loop_closed_ssa.
	* tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
	from LIVEIN if VAR is a virtual.
	* tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
	* tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
	(get_call_expr_operands): Reformat statement.
	(add_stmt_operand): Don't create V_MAY_DEFs for read-only
	symbols.
	* tree-ssa-propagate.c (ssa_prop_init): Initialize
	SSA_NAME_VALUE for every name.
	(first_vdef, stmt_makes_single_load, stmt_makes_single_store,
	get_value_loaded_by): New.
	(replace_uses_in, replace_vuses_in, replace_phi_args_in,
	substitute_and_fold): Move from tree-ssa-ccp.c.
	* tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
	first_vdef, stmt_makes_single_load, stmt_makes_single_store,
	get_value_loaded_by, replace_uses_in, substitute_and_fold):
	Declare.
	* tree-ssa.c (verify_use): Fix error message.
	(propagate_into_addr, replace_immediate_uses, get_eq_name,
	check_phi_redundancy, kill_redundant_phi_nodes,
	pass_redundant_phi): Remove.  Update all users.
	* tree-vect-transform.c (vect_create_data_ref_ptr): Call
	add_type_alias, if necessary.
	* tree-vectorizer.h (struct _stmt_vect_info): Update
	documentation for field 'memtag'.
	* tree-vrp.c: New file.
	* tree.def (ASSERT_EXPR): Define.
	* tree.h (ASSERT_EXPR_VAR): Define.
	(ASSERT_EXPR_COND): Define.
	(SSA_NAME_VALUE_RANGE): Define.
	(struct tree_ssa_name): Add field 'value_range'.
	(PHI_REWRITTEN): Remove.
	(struct tree_phi_node): Remove field 'rewritten'.
	* doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
	-ftree-store-copy-prop): Document.
	* doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
	Document usage of update_ssa.

2005-04-08  David Edelsohn  <edelsohn@gnu.org>

	PR target/20814
	* config/rs6000/predicates.md (altivec_register_operand): Accept
	SUBREG.
	(and64_operand): Do not limit CONST_INT to mask64_operand.
	(and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
	(and_operand): Do not limit CONST_INT to mask_operand.

2005-04-09  Hans-Peter Nilsson  <hp@axis.com>

	PR rtl-optimization/20466
	* flow.c (invalidate_mems_from_set): Handle a MEM by checking it
	for overlap of the address of each list member.
	(mark_set_1): Call invalidate_mems_from_set for MEMs too.

2005-04-08  Mike Stump  <mrs@apple.com>

	* config/darwin.c (indirect_data): Fix typo in strncmp logic.

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
	instead of 4.

2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>

	* c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.

	* function.c (push_function_context_to): Don't set
	contains_functions.
	* function.h (function): Remove contains_functions.
	(current_function_contains_functions): Remove.

	* function.h (function): Remove instrument_entry_exit.
	(current_function_instrument_entry_exit): Remove.

	* function.h (nonlocal_labels): Remove.

	* tree.h (STRIP_MAIN_TYPE_NOPS): Remove.

	* genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
	(check_attr_value, write_attr_get, write_expr_attr_cache,
	find_attr, make_internal_attr): Don't reference negative_ok or
	unsigned_p.
	* genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
	ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
	(ATTR_STATIC): Adjust the value.

	* c-common.h (C_ARTIFICIAL_STRING_P): Remove.

2005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/tpf.h (ASM_SPEC): Define.

2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-flow.h: Remove the prototype for
	redirect_immediate_uses.
	(TDFA_USE_OPS, TDFA_USE_VOPS): Remove.

2005-04-08  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.c (arm_const_double_by_parts): New function.
	* arm-protos.h (arm_const_double_by_parts): Add prototype.
	* arm.md (define_split for 64-bit constants): Add another one.

2005-04-08  Andrew MacLeod  <amacleod@redhat.com>

	* tree-ssa-operands.c (correct_use_link): Remove linear scan.

2005-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* system.h: Revert last change.

2005-04-08  Richard Sandiford  <rsandifo@redhat.com>

	* config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
	(MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
	(TARGET_SWITCHES): Delete.
	* config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
	* config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
	TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
	* config/xtensa/xtensa.opt: New file.

2005-04-08  Ben Elliston  <bje@au.ibm.com>

	* config/fp-bit.c: Include L_mul_tf in #endif comment.
	* config/fp-bit.h: Tidy comments.

2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* system.h: Poison PARAMS.

2005-04-07  Richard Sandiford  <rsandifo@redhat.com>

	* config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
	(MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
	(TARGET_SWITCHES): Delete.
	* config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
	* config/vax/vax.opt: New file.

2005-04-07  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.

2005-04-07  Ian Lance Taylor  <ian@airs.com>

	* config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
	define.
	* config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
	* config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
	Likewise.

2005-04-07  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
	all immediate uses in PHI nodes.

2005-04-07  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.c (arm_const_double_inline_cost): Handle any constant by
	using gen_lowpart and gen_highpart_mode.
	(note_invalid_constants): All constants in an RTX with a constraint
	that permits memory are now pushed to the constant pool.
	(output_move_double): Delete code to handle reg to reg and
	constant to reg moves.
	(const_double_needs_minipool, output_mov_immediate): Delete.
	* arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
	CONST_INT and CONST_VECTOR.
	* arm.md (ANY64): New mode macro.
	(arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
	(movdf_soft_insn): Split reg-reg and const-reg moves.
	(split patterns for 64-bit constant and register moves): New.
	* cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
	(cirrus_movdf_hard_insn): Likewise.
	* fpa.md (movdf_fpa): Likewise.
	* iwmmxt.md (iwmmxt_arm_movdi): Likewise.
	(movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
	constraints.
	(movv2si_internal_2): Likewise.
	* vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
	(movdf_vfp): Likewise.
	* arm-protos.h (output_mov_immediate): Delete prototype.

2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>

	PR target/20093
	* simplify-rtx.c (simplify_unary_operation_1): Check
	SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.

2005-04-06  James E Wilson  <wilson@specifixinc.com>

	PR target/20717
	* cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
	ADDR_EXPR.

2004-04-06  Richard Sandiford  <rsandifo@redhat.com>

	* coverage.h (GCOV_TYPE_NODE): Delete.
	* coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
	(build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
	* tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
	(tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
	* value-prof.c (tree_divmod_fixed_value_transform): Delete.

2004-04-06  Richard Sandiford  <rsandifo@redhat.com>

	PR other/20792
	* Makefile.in (gcc.pot): Remove options.c dependency.
	* optc-gen.awk: Don't quote help strings with N_().

2005-04-06  James A. Morrison  <phython@gcc.gnu.org>

	* c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
	the function returns a pointer type.

2005-04-06  Daniel Berlin  <dberlin@dberlin.org>

	* params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
	* params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
	* doc/invoke.texi: Documnet salias-max-implicit-fields.
	* tree-ssa-alias.c (struct used_part): Add implicit_uses and
	explicit_uses members.
	(get_or_create_used_part_for): Initialize new fields.
	(fieldoff_compare): New function.
	(create_overlap_variables_for): Count number of fields, use
	heuristic to determine whether to create subvars for vars with
	only implicit uses.
	Sort the field list by offset and avoid creating duplicate SFT's.

2005-04-06  Richard Sandiford  <rsandifo@redhat.com>

	* c.opt (-F): Remove trailing whitespace from help string.
	(-finput-charset): Use a tab to separate the switch name and help
	string.
	* common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
	(-ftree-vectorizer-verbose): Likewise.

2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
	a PHI argument where a use occurs instead of all PHI arguments.

2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>

	* c-decl.c (finish_decl): Apply pending #pragma weak regardless of
	scope.

2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
	tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
	config/bfin/bfin.h: Fix comment typos.

2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>

	* doc/install.texi: Update the URL for Jacks.
	* doc/sourcebuild.texi: Likewise.

2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/17245
	* config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
	Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.

2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.

2005-04-06  Richard Sandiford  <rsandifo@redhat.com>

	* config/v850/v850-protos.h (override_options): Delete.
	* config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
	(MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
	(MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
	(MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
	(TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
	(TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
	(TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
	(TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
	(OVERRIDE_OPTIONS): Delete.
	(MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
	(small_memory_info): Remove the value field.
	(CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
	TARGET_NO_APP_REGS.
	* config/v850/v850.c (small_memory): Remove the value field.
	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
	(override_options): Delete.
	(v850_handle_memory_option, v850_handle_option): New functions.
	* config/v850/v850.opt: New file.

2005-04-06  Geoffrey Keating  <geoffk@apple.com>

	* config.host: Add a section for generic hosts, and a subsection
	for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
	* config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
	* config/host-darwin.h: New.
	* config/x-darwin: New.
	* config/i386/host-i386-darwin.c: New.
	* config/i386/x-darwin: New.
	* config/rs6000/host-darwin.c: Include host-darwin.h.
	(darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
	(darwin_rs6000_gt_pch_use_address): Likewise.
	* config/rs6000/x-darwin: Change name of .o built, update
	dependencies for changes to rs6000/host-darwin.c.

2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>

	PR target/17824
	* config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.

2005-04-06  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vect-analyze.c (vect_analyze_loop_form): Call
	split_loop_exit_edge instead of loop_split_edge_with.

2005-04-06  Paolo Bonzini  <bonzini@gnu.org>

	* config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
	UNSPEC_SET_VSCR): New constants, used throughout.
	(*andc3_v4sf): New.
	(altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
	Replace with...
	(altivec_vspltis<VI_char>): ... this pattern, using
	a QImode const_int_operand for the immediate.
	(abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
	define_expands.

2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>

	PR target/17822
	* config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.

2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.

2005-04-06  Ben Elliston  <bje@au.ibm.com>

	* gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
	DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
	macros as living in "this file" and not gcc.h.

2005-04-06  Ben Elliston  <bje@au.ibm.com>

	* doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
	-ftree-live_range_split.  Perhaps renamed at some point?

2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>

	PR target/20625
	* tree-ssa-loop-ivopts.c (generic_type_for): New function.
	(add_candidate_1): Use generic_type_for instead of unsigned_type_for.

2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-flow.h (number_of_iterations_cond): Declaration removed.
	* tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
	(number_of_iterations_special): New function.
	(number_of_iterations_exit): Use number_of_iterations_special.
	Use simplify_using_outer_evolutions only at -O3.
	(number_of_iterations_cond, tree_simplify_using_condition,
	simplify_using_initial_conditions, loop_niter_by_eval,
	compare_trees, can_count_iv_in_wider_type_bound,
	simplify_using_outer_evolutions): Use fold_build.

2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* doc/install.texi (Configuration): Document --with-java-home.

2005-04-05  Richard Henderson  <rth@redhat.com>

	PR target/20342
	PR target/20447
	* config/i386/i386.c (print_operand): Handle vector zeros.
	(ix86_split_to_parts): Handle CONST_VECTOR.
	(ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
	(ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
	what modes to tie for MMX and SSE registers.
	* config/i386/i386.h (MMX_REG_MODE_P): Remove.
	* config/i386/i386.md: Extend move 0 -> xor peephole to apply
	to vector modes as well.
	* config/i386/predicates.md (const0_operand): Handle VOIDmode
	properly as an input mode.

2005-04-05  Andrew MacLeod  <amacleod@redhat.com>

	* tree-ssa-operands.c (verify_abort): Use %p for pointers.

2005-04-05  Andrew MacLeod  <amacleod@redhat.com>

	* tree-pretty-print.c (dump_generic_node): Use %p for pointer.

2005-04-05  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
	and local functions, set sse_nregs to 8 and float_in_sse.
	(function_arg_advance, function_arg): If float_in_sse, pass
	SFmode and DFmode arguments in SSE registers.
	* config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.

	* config/i386/i386.c (ix86_value_regno): Only optimize local functions
	of -funit-at-a-time.

2005-04-05  Paolo Bonzini  <bonzini@gnu.org>

	* config/i386/i386-protos.h (ix86_function_value): Accept two
	arguments, like the target macro.
	* config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
	* config/i386/i386.c (ix86_function_value): Accept the second
	argument of the target macro.
	(ix86_function_ok_for_sibcall): Pass a function pointer to
	ix86_function_value.
	(ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
	call to ix86_value_regno).
	(ix86_value_regno): Add support for returning floating point values
	in SSE registers.

2005-04-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/20076
	* tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
	that call __builtin_return or __builtin_apply_args.

2005-04-05  Andrew MacLeod  <amacleod@redhat.com>

	* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
	Use immediate use iterator.
	(stmt_is_bumper_for_loop): Use immediate use iterator.
	* predict.c (strip_builtin_expect): Use update_stmt.
	* tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
	on all elements of a STATEMENT_LIST.
	(bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
	(bsi_remove): Remove imm_use links and mark the stmt as modified.
	(bsi_replace): Mark stmt as modified and the update it.
	* tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
	(expand_complex_libcal): Call update_stmt.
	(expand_complex_comparison): Call mark_stmt_modified.
	(expand_complex_operations_1): Call update_stmt_if_modified.
	(expand_vector_operations_1): Call mark_stmt_modified.
	* tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
	compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
	add_immediate_use, redirect_immediate_use,
	redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
	dump_immediate_uses_for, debug_immediate_uses_for): Delete.
	(mark_new_vars_to_rename): Call update_stmt.
	* tree-dump.c (dump_option_value_in): Add "stmtaddr".
	* tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.
	Ignore PHI nodes.
	(unmodify_stmt): Delete.
	(update_stmt): New.  Force an update of a stmt.
	(update_stmt_if_modified): update a stmt if it is out of date.
	(get_stmt_operands): Verify stmt is NOT modified.
	(stmt_modified_p): Update comment.
	(delink_imm_use): Remove a use node from its immuse list.
	(link_imm_use_to_list): Link a use node to a specific list.
	(link_imm_use): Link a node to the correct list.
	(set_ssa_use_from_ptr): Set a use node to a specific value, and insert
	it in the correct list, if appropriate.
	(link_imm_use_stmt): Link a use node, and set the stmt pointer.
	(relink_imm_use): Link a use node in place of another node in a list.
	(relink_imm_use_stmt): LInk a node in place of another node, and set
	the stmt pointer.
	(end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
	(end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
	(first_safe_imm_use): New.  Initialize a safe immuse iterator.
	(next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
	(end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
	(first_readonly_imm_use): New.  Initialize a fast immuse iterator.
	(next_readonly_imm_use): New.  Get the next fast immuse iterator value.
	(has_zero_uses): New.  Return true if there are no uses of a var.
	(has_single_use): New.  Return true if there is only a single use of a
	variable.
	(single_imm_use): New.  Return the simgle immediate use.
	(num_imm_uses): New.  Return the number of immediate uses.
	(get_v_must_def_ops): Use is now a pointer.
	(use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
	get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of
	the use node.
	(get_immediate_uses, num_immediate_uses, immediate_use): Delete.
	(delink_stmt_imm_use): Delink all immuses from a stmt.
	(phi_arg_index_from_use): New.  Return a phi arg index for a use.
	* tree-flow.h (struct dataflow_d): Delete.
	(immediate_use_iterator_d): New.  Immediate use iterator struct.
	(FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
	(FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
	(BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe
	iteration.
	(struct stmt_ann_d): Remove dataflow_t from struct.
	* tree-if-conv.c (tree_if_conversion).  Don't call free_df.
	(if_convertible_phi_p): Use FAST immuse iterator.
	(if_convertible_loop_p): Don't call compute_immediate_uses.
	(replace_phi_with_cond_modify_expr): Call update_stmt.
	* tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call
	update_stmt_if_modified.
	(rewrite_all_into_ssa): Initialize ssa operands.
	* tree-loop-linear.c (linear_transform_loops): Don't call free_df or
	compute_immediate_uses.
	* tree-optimize.c (execute_todo): Call verify_ssa whenever the
	ssa_property is available.
	(execute_one_pass): Change parameters passed to execute_todo.
	* tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
	(remove_ssa_form): Call fini_ssa_operands.
	(insert_backedge_copies): Delete call to modify_stmt.
	* tree-phinodes.c (make_phi_node): Initialize use nodes.
	(release_phi_node): Delink any use nodes before releasing.
	(resize_phi_node): Relink any use nodes.
	(remove_phi_arg_num): Delink the use node.
	(remove_phi_node): Release the ssa_name AFTER releasing the phi node.
	(remove_all_phi_nodes_for): Release phi node first.
	* tree-pretty-print.c (dump_generic_node): Print stmt address.
	* tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
	(scalarize_use, scalarize_copy): Call update_stmt.
	* tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
	(compute_points_to_and_addr_escape): Call mark_stmt_modified.
	* tree-ssa-cpp.c (need_imm_uses_for): Delete.
	(ccp_initialize): Remove call to compute_immediate_uses.
	(substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified
	stmts.
	(simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
	(simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
	(eliminate_redundant_computations): Call mark_stmt_modified.
	(cprop_operand): Call mark_stmt_modified.
	(optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
	* tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
	(dse_optimize_stmt): Use new immuse interface.
	(tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
	* tree-ssa-forwprop.c (need_imm_uses_for): Delete.
	(substitute_single_use_vars): Use new immuse interface.
	(tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
	and compute_immediate_uses.
	* tree-ssa-loop-im.c (single_reachable_address): Use new immuse
	interface.
	(rewrite_mem_refs): Call update_stmt.
	(determine_lsm): Remove call to compute_imm_uses and free_df.
	* tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
	(try_unroll_loop_completely): Call update_stmt.
	* tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
	(rewrite_use_compare): Call update_stmt.
	(compute_phi_arg_on_exit): Insert each stmt before trying to process.
	(rewrite_use) : Call update_stmt.
	* tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
	* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call
	update_stmt.
	* tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
	(allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
	(free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
	use nodes.
	(initialize_vuse_operand): New.  Initialize a vuse operand.
	(initialize_v_may_def_operand): New.  Initialize a maydef operand.
	(initialize_v_must_def_operand): New.  Initialize a mustdef operand.
	(finalize_ssa_defs): Use stmt parameter.
	(correct_use_link): Ensure a use node is in the correct list, and has
	the correct stmt pointer.
	(finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
	finalize_ssa_v_must_defs): Also initialize use nodes.
	(finalize_ssa_stmt_operands): Pass extra stmt operands.
	(build_ssa_operands): Seperate parsing from final operand construction.
	(parse_ssa_operands): New.  Parse entry point for operand building.
	(swap_tree_operands): New.  Swap 2 tree operands.
	(update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
	operands.
	(get_expr_operands): Call swap_tree_operands when needed.
	(copy_virtual_operands): Use initialize routines for virtual use ops.
	(create_ssa_artficial_load_stmt): Add extra stmt parameter.
	(verify_abort): New.  Issue imm_use error.
	(verify_imm_links): New Verify imm_use links for a var.
	(dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
	(dump_immediate_uses): New.  Dump imm_uses for all vars to file.
	(debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
	(debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
	* tree-ssa-operands.h (struct use_operand_ptr): Delete.
	(NULL_USE_OPERAND_P) Define.
	(use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
	use node.
	(struct vuse_operand_type): New struct.
	(SET_USE): Call set_ssa_use_from_ptr.
	(USE_STMT): Define.
	(PHI_ARG_INDEX_FROM_USE): Define.
	* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi
	argument via SET_USE, not PHI_ARG_DEF_TREE.
	* tree-ssa-pre.c (eliminate): Call update_stmt.
	* tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
	call free_df.
	* tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
	(nearest_common_dominator_of_uses): Use imm_use iterator.
	(statement_sink_location): Use imm_use iterator and interface.
	(execute_sink_code): Don't call compute_immediate_uses or free-df.
	* tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
	PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
	* tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
	(verify_ssa): Ensure no stmt is marked modify after optimization pass
	if new parameter is true.
	(init_tree_ssa): Don't initialize operand cache here.
	(delete_tree_ssa): Don't destroy operand cache here.
	(propagate_into_addr): Pass in a use pointer, return true if anything
	was changed.
	(replace_immediate_uses): Use imm_use iterator, call update_stmt.
	(check_phi_redundancy): Use imm_use iterator.
	(kill_redundant_phi_nodes): Don't call compute_immediate_uses or
	free_df.
	* tree-ssanames.c (make_ssa_name): Initialize imm_use node.
	(release_ssa_name): Delink node and all elements in its imm_use list.
	* tree-tailcall.c (adjust_return_value): Call update_stmt.
	* tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
	* tree-vectorizer.c (need_imm_uses_for): Delete.
	(vectorize_loops): Dont call compute_immediate_uses or free_df.
	* tree.h (struct ssa_imm_use_d): Define.
	(SSA_NAME_IMM_USE_NODE): Define.
	(struct tree_ssa_name): Add imm_use node.
	(PHI_DF): Delete.
	(PHI_ARG_IMM_USE_NODE): Define.
	(struct phi_arg_d): Add imm_use node.
	(struct tree_phi_node): Remove struct dataflow_d element.
	(TDF_STMTADDR): Define.

2005-04-05  Dale Johannesen  <dalej@apple.com>

	* doc/invoke.texi (Optimization Options): Remove
	duplicate -fcse-follow-jumps.  Add -fweb.
	(-ftree-lim): Fix spelling (-ftree-loop-im, invariants).
	(-fivcanon): Fix spelling (-ftree-loop-ivcanon).

2005-04-05  Per Bothner  <per@bothner.com>

	* tree-ssa.c (execute_early_warn_uninitialized): Pass context node
	to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
	(warn_uninit): Get EXPR_LOCUS from context now instead.
	This fixes a USE_MAPPED_LOCATION testsuite failure.

	* tree-ssa.c (warn_uninitialized_var): Remove useless local.

2005-04-05  Per Bothner  <per@bothner.com>

	* c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
	of the artification 'return 0' in main() to BUILTINS_LOCATION.
	* tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
	before warning.

2004-04-05  Devang Patel  <dpatel@apple.com>

	* config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
	(lhsr<mode>3): ... new name.
	(altivec_vsra<VI_char>): Rename to ..
	(ashr<mode>3): ... new name.
	* config/rs6000/rs6000.c (builtin_description): Rename shift
	operations.

2004-04-05  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
	gen_lowpart_for_combine.
	* cse.c (gen_lowpart_if_possible): Move...
	* rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
	gen_lowpart_SUBREG.
	(gen_lowpart_no_emit_general): Use it.

2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
	overriding.

2005-04-05  Paolo Bonzini  <bonzini@gnu.org>

	* system.h: Fix typo.

2005-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>

	* config/bfin/bfin-modes.def: New file.
	* config/bfin/bfin-protos.h: New file.
	* config/bfin/bfin.c: New file.
	* config/bfin/bfin.h: New file.
	* config/bfin/bfin.md: New file.
	* config/bfin/bfin.opt: New file.
	* config/bfin/crti.s: New file.
	* config/bfin/crtn.s: New file.
	* config/bfin/elf.h: New file.
	* config/bfin/lib1funcs.asm: New file.
	* config/bfin/predicates.md: New file.
	* config/bfin/t-bfin: New file.
	* config/bfin/t-bfin-elf: New file.
	* doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
	Document new attributes.
	(interrupt, interrupt_handler, saveall): Update documentation for
	these attributes.
	* doc/install.texi (Specific): Add entry for the Blackfin.
	* doc/invoke.texi (Blackfin Options): New section.
	* doc/md.texi (Blackfin family): New section to document constraints.
	* config.gcc: Add bfin*-* and bfin*-elf configurations.

2005-04-05  Olivier Hainque  <hainque@adacore.com>

	* config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
	match what the system unwinder expects.
	* config/mips/mips.c (mips_frame_set): If we're saving the return
	address register and the dwarf return address column number differs
	from the hard register number, adjust the note reg to refer to the
	former.

2004-04-05  Richard Sandiford  <rsandifo@redhat.com>

	* config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
	* config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
	(TARGET_SWITCHES, TARGET_DEFAULT): Delete.
	(processor_type): New enum.
	(mn10300_processor): New variable.
	(TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
	(PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
	* config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
	(PROCESSOR_DEFAULT): New macro.
	* config/mn10300/mn10300.c (mn10300_processor): New variable.
	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
	(mn10300_handle_option, mn10300_override_options): New functions.
	* config/mn10300/mn10300.opt: New file.

2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
	    Sebastian Pop <sebastian.pop@cri.ensmp.fr>

	PR tree-optimization/19903
	* tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
	that don't fit in their type after conversion.

2005-04-05  Uros Bizjak <uros@kss-loka.si>

	PR target/20421
	* config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
	(frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
	Allocate local stack slots here.  Set ix86_optimize_mode_switching.
	flag here. Implement using define_insn_and_split.
	(frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
	(frndintxf2_mask_pm_i387): New insn patterns.
	(floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
	Do not set ix86_optimize_mode_switching flag.
	(ceilsf2, ceildf2, ceilxf2): Same.
	(btruncsf2, btruncdf2, btruncxf2): Same.
	(nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.

2005-04-05  Ian Lance Taylor  <ian@airs.com>

	PR debug/9963
	* config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
	i386_pe_record_external_function.
	(i386_pe_record_external_function): Update declaration.
	* config/i386/winnt.c (struct extern_list): Add decl field.
	(i386_pe_record_external_function): Add decl parameter.
	(i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
	identifier.
	* config/i386/i386-protos.h (i386_pe_record_external_function):
	Update declaration.

2005-04-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m68k/m68k-protos.h: Add a prototype for
	valid_dbcc_comparison_p_2.
	* config/m68k/m68k.c (not_sp_operand, symbolic_operand,
	extend_operator, const_uint32_operand, const_sint32_operand,
	general_src_operand, nonimmediate_src_operand,
	memory_src_operand, post_inc_operand, pre_dec_operand,
	pcrel_address): Move to predicates to predicates.md.
	* config/m68k/m68k.h (PREDICATE_CODES): Remove.
	* config/m68k/m68k.md: Include predicates.md.
	* config/m68k/predicates.md: New.

2005-04-04  Roger Sayle  <roger@eyesopen.com>

	* config/i386/i386.md (*truncdfsf2_i387_1): New pattern.

	* fold-const.c (maybe_lvalue_p): Delete orphaned comment.

2005-04-04  Ian Lance Taylor  <ian@airs.com>

	* c-typeck.c (struct c_switch): Rename switch_stmt field to
	switch_expr.
	(c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
	(do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
	(c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
	Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
	* c-common.c (c_do_switch_warnings_1): New static function broken
	out of c_do_switch_warnings.
	(c_do_switch_warnings): Call c_do_switch_warnings_1.
	(c_do_switch_expr_warnings): New function.
	* c-common.h (c_do_switch_expr_warnings): Declare.

2005-04-04  David Edelsohn  <edelsohn@gnu.org>
	    Daniel Jacobowitz  <dan@codesourcery.com>

	* tree-eh.c (tree_could_trap_p): Allow non-constant floating point
	trapping divide.
	* rtlanal.c (may_trap_p): Same.

2005-04-04  Dale Johannesen  <dalej@apple.com>

	* ChangeLog: remove reference to ChangeLog.12.

2005-04-05  Hans-Peter Nilsson  <hp@axis.com>

	CRIS epilogue as RTL.
	* config/cris/cris.md: Change all 0 in unspec 0 to
	CRIS_UNSPEC_PLT.
	(CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
	("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
	patterns.
	("return"): Change to define_expand.  Call cris_expand_return for
	actual expansion.
	("*return_expanded"): New pattern.
	("epilogue"): New define_expand.
	* config/cris/cris.h (PREDICATE_CODES): Add
	cris_load_multiple_op.
	* config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
	type.
	(enum cris_retinsn_type): New.
	(struct machine_function): New member return_type.
	(TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
	(cris_target_asm_function_epilogue): Remove, moving RTLified
	contents to...
	(cris_expand_epilogue): New function.
	(cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
	(cris_gen_movem_load, cris_load_multiple_op)
	(cris_return_address_on_stack_for_return, cris_expand_return): New
	functions.
	(cris_target_asm_function_prologue)
	(cris_initial_frame_pointer_offset): Call
	cris_reg_saved_in_regsave_area instead of complicated expression.
	Call cris_return_address_on_stack instead of an expression.
	(cris_print_operand) <case 'o', case 'O'>: New cases.
	(cris_return_address_on_stack): Change return-type to bool.
	(cris_simple_epilogue): Ditto.  Return false if registers are
	saved.
	* config/cris/cris-protos.h (cris_simple_epilogue)
	(cris_return_address_on_stack): Adjust prototype return type.
	(cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
	(cris_return_address_on_stack_for_return): New prototypes.

2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>

	* config/frv/frv.h (PREDICATE_CODES): Add CONST to
	gpr_or_int12_operand.

	* config/frv/frv-protos.h: Add a prototype to
	frv_legitimate_memory_operand and frv_const_unspec_p.
	(frv_unspec): Move from frv.c.
	* config/frv/frv.c (frv_unspec): Move to frv-protos.h.
	(frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
	(ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
	gpr_or_fpr_operand, gpr_or_int12_operand,
	gpr_fpr_or_int12_operand, fpr_or_int6_operand,
	gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
	int6_operand, int5_operand, uint5_operand, uint4_operand,
	uint1_operand, int_2word_operand, uint16_operand,
	upper_int16_operand, integer_register_operand,
	gpr_no_subreg_operand, fpr_operand, even_reg_operand,
	odd_reg_operand, even_gpr_operand, odd_gpr_operand,
	quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
	dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
	move_destination_operand, movcc_fp_destination_operand,
	frv_function_symbol_referenced_p, move_source_operand,
	condexec_dest_operand, condexec_source_operand,
	reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
	const_unspec_operand, gpr_or_memory_operand,
	gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
	icc_operand, fcc_operand, cc_operand, icr_operand,
	fcr_operand, cr_operand, call_operand, sibcall_operand,
	symbolic_operand, relational_operator,
	integer_relational_operator, float_relational_operator,
	ccr_eqne_operator, minmax_operator,
	condexec_si_binary_operator, condexec_si_media_operator,
	condexec_si_divide_operator, condexec_si_unary_operator,
	condexec_sf_conv_operator, condexec_sf_add_operator,
	condexec_memory_operand, intop_compare_operator, acc_operand,
	even_acc_operand, quad_acc_operand, accg_operand: Move to
	predicates.md.
	* config/frv/frv.h (PREDICATE_CODES): Remove.
	* config/frv/frv.md: Include predicates.md.
	* config/frv/predicates.md: New.

2004-04-04  Richard Sandiford  <rsandifo@redhat.com>

	PR target/19537
	* Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
	* tree-ssa-loop-ivopts.c: Include langhooks.h.
	(add_standard_iv_candidates_for_size): New function, extracting code
	from add_standard_iv_candidates and parameterizing it by type size.
	(add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.

2004-04-04  Richard Sandiford  <rsandifo@redhat.com>

	* system.h (GCOV_SIZE_TYPE): Unposion.
	* gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
	(GCOV_TYPE_SIZE): ...this new macro.
	* coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
	* coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
	(rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
	(build_fn_info_type, build_fn_info_value, build_ctr_info_type)
	(build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
	instead of unsigned_intSI_type_node.
	* rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
	(rtl_gen_one_value_profiler_no_edge_manipulation)
	(rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
	* value-prof.c: Include coverage.h.

2005-04-02  Daniel Berlin  <dberlin@dberlin.org>
	    Diego Novillo <dnovillo@redhat.com>

	Fix PR tree-optimization/20703
	Fix PR tree-optimization/20725

	* tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
	(create_expression_by_pieces): Ditto.
	(valid_in_set): Ditto. Also handle tcc_declaration.
	(find_or_generate_expression): Handle comparison class.
	(insert_into_preds_of_block): Ditto.
	(insert_aux): Ditto.
	(create_value_expr_from): Handle comparison class, recursively
	handle reference nodes.
	(compute_avail): Handle comparison classes, rewrite a little cleaner.
	(execute_pre): Fix spacing.
	(do_fre): Renamed to execute_fre.

2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/invoke.texi (SPARC options): Document that
	-mlittle-endian is not supported on Linux either.

2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/4198
	PR target/12027
	* config.gcc (Obsolete configurations): Remove
	sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
	(sparclite-*-coff*): Delete.
	(sparclite-*-elf*): Likewise.
	(sparc86x-*-elf*): Likewise.
	(target_cpu_default) <sparc*-*-*>: Remove sparc86x.
	* config/sparc/lite.h: Delete.
	* config/sparc/litecoff.h: Likewise.
	* config/sparc/liteelf.h: Likewise.
	* config/sparc/sp86x-elf.h: Likewise.
	* config/sparc/t-sparclite: Likewise.
	* config/sparc/t-sp86x: Likewise.

2005-04-04  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390-protos.h: (s390_comparison,
	s390_alc_comparison, s390_slb_comparison, const0_operand,
	consttable_operand, larl_operand, s_operand,
	shift_count_operand, bras_sym_operand, load_multiple_operation,
	store_multiple_operation, s390_plus_operand): Remove prototypes.
	(s390_legitimate_address_without_index_p): New prototype.
	* config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
	to s390.h.
	(s390_comparison, s390_alc_comparison, s390_slb_comparison,
	const0_operand, consttable_operand, larl_operand, s_operand,
	shift_count_operand, bras_sym_operand, load_multiple_operation,
	store_multiple_operation, s390_plus_operand): Move to
	predicates.md.
	(check_mode): Remove.
	(s390_branch_condition_mask): Remove 'static'. Move prototype to
	s390-protos.h.
	(s390_legitimate_address_without_index_p): New.
	* config/s390/s390.h (PREDICATE_CODES): Remove.
	* config/s390/s390.md: Include predicates.md.
	* config/s390/predicates.md: New.

2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/20446
	* config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
	* config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
	(NEED_INDICATE_EXEC_STACK): Define to 1.
	* config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
	(NEED_INDICATE_EXEC_STACK): Define to 1.
	* config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
	(add_pc_to_pic_symbol): Rename into pic_helper_symbol.
	(add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
	(pic_helper_emitted_p): New global.
	(emit_pic_helper): New function extracted from...
	(load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
	Do not call emit_pic_helper if delay_pic_helper is true.
	(sparc_expand_prologue): Pass 'false' to load_pic_register.
	(sparc_output_mi_thunk): Pass 'true' to load_pic_register.
	(sparc_file_end): New function.

2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mcore/mcore-protos.h: Remove the prototypes for
	mcore_arith_reg_operand, mcore_general_movsrc_operand,
	mcore_general_movdst_operand, mcore_reload_operand,
	mcore_arith_J_operand, mcore_arith_K_operand,
	mcore_arith_K_operand_not_0, mcore_arith_M_operand,
	mcore_arith_K_S_operand, mcore_arith_imm_operand,
	mcore_arith_any_imm_operand, mcore_arith_O_operand,
	mcore_literal_K_operand, mcore_addsub_operand,
	mcore_compare_operand, mcore_load_multiple_operation,
	mcore_store_multiple_operation, mcore_call_address_operand.
	Add a prototype for const_ok_for_mcore.
	* config/mcore/mcore.c (mcore_call_address_operand,
	mcore_general_movsrc_operand, mcore_general_movdst_operand,
	mcore_arith_reg_operand, mcore_reload_operand,
	mcore_arith_J_operand, mcore_arith_K_operand,
	mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
	mcore_arith_M_operand, mcore_arith_imm_operand,
	mcore_arith_any_imm_operand, mcore_arith_O_operand,
	mcore_literal_K_operand, mcore_addsub_operand,
	mcore_compare_operand, mcore_load_multiple_operation,
	mcore_store_multiple_operation): Move to predicates.md.
	(const_ok_for_mcore): Export.
	* config/mcore/mcore.h (PREDICATE_CODES): Remove.
	* config/mcore/mcore.md: Include predicates.md.
	* config/mcore/predicates.md: New.

	* config/mcore/predicates.md: Fix a comment typo.

2005-04-04  Andreas Krebbel  <krebbel1@de.ibm.com>
	    Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
	* config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
	* config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
	attribute.
	("imul"): Removed from "type" attribute.
	("*muldi3_sign", "muldi3"): Changed type to imuldi.
	("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"):
	Changed type to imulsi.
	("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.

2005-04-04  Richard Sandiford  <rsandifo@redhat.com>

	* config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
	(RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
	(SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
	(TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
	(TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
	(TARGET_SWITCHES, mcore_stack_increment_string)
	(TARGET_OPTIONS): Delete.
	(TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
	than *_BIT constants.
	(TARGET_8ALIGN): #undef old definition before redefining to 1.
	* config/mcore/mcore.c (mcore_stack_increment_string): Delete.
	(TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
	(mcore_override_options): Delete mcore_stack_increment code.
	Change use of M340_BIT to MASK_M340.
	* config/mcore/mcore.opt: New file.

2005-04-04  Ian Lance Taylor  <ian@airs.com>

	* config/arm/arm.c (replace_symbols_in_block): Remove static
	function.

2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>

	* config/fr30/fr30-protos.h: Remove the prototypes for
	stack_add_operand, add_immediate_operand,
	high_register_operand, low_register_operand, call_operand,
	di_operand, and nonimmediate_di_operand.
	* config/fr30/fr30.c (stack_add_operand,
	add_immediate_operand, high_register_operand,
	low_register_operand, call_operand, di_operand,
	nonimmediate_di_operand): Move to predicates.md.
	* config/fr30/fr30.h (PREDICATE_CODES): Remove.
	* config/fr30/fr30.md: Include predicates.md.
	* config/fr30/predicates.md: New.

	* config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
	LABEL_REF to mcore_general_movsrc_operand.  Add SYMBOL_REF to
	mcore_call_address_operand.

	* config/sh/sh.h (PREDICATE_CODES): Add CONST to
	general_movsrc_operand.

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

	* passes.c (rest_of_handle_final): NULL unlikely_text_section_name
	after freeing.

2005-04-04  Richard Earnshaw  <richard.earnshaw@arm.com>

	PR target/14812
	* arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
	a negated value.

2005-04-04  Richard Henderson  <rth@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/16104
	* fold-const.c (fold_unary): Fix folding of vector conversions.

2005-04-04  Richard Sandiford  <rsandifo@redhat.com>

	* config.gcc (xstormy16-*-elf): Set extra_options.
	* config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
	* config/stormy16/stormy16.opt: New file.

2005-04-04  Richard Sandiford  <rsandifo@redhat.com>

	* config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
	(TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
	(TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
	(TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
	(TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
	(TARGET_UNIX_ASM): Delete.
	(TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
	* config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
	* config/pdp11/pdp11.c (pdp11_handle_option): New function.
	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
	* config/pdp11/pdp11.opt: New file.

2005-04-03  Roger Sayle  <roger@eyesopen.com>
	    Alexandre Oliva  <aoliva@redhat.com>

	PR c++/19199
	* fold-const.c (non_lvalue): Split tests into...
	(maybe_lvalue_p): New function.
	(fold_cond_expr_with_comparison): Preserve lvalue-ness for the
	C++ front-end prior to lowering into gimple form.

2005-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
	BUILT_IN_STRNCASECMP): New.
	* doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
	and strndup.

2005-04-03  Richard Earnshaw  <richard.earnshaw@arm.com>

	PR target/14812
	* arm.md (addsi3_compare0_for_combiner): Delete.
	(addsi3_compare0_scratch_for_combiner): Delete.
	(cmpsi_neg_shiftsi): Delete.
	(compare_negsi_si): New pattern.
	(cmpsi_negshiftsi_si): New pattern.
	(negated_cbranchsi4): Restrict to equality_operator.

	* arm.md (movhi_insn_arch4): delete trailing white space from assembler
	template.

2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>

	* cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
	Fix comment typos.

	* doc/install.texi: Fix a typo.

2005-04-03  Steven Bosscher  <stevenb@suse.de>

	PR middle-end/20648
	* bb-reorder.c (duplicate_computed_gotos): Do not unfactor
	a computed goto if the edge to the computed goto block has
	incoming abnormal edges.  Clarify how the function works.

2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>

	* params.c (set_param_value): Use gcc_assert & gcc_unreachable.
	* passes.c (open_dump_file, rest_of_handle_final): Likewise.
	* postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
	hash_scan_set, reg_set_between_after_reload_p,
	reg_used_between_after_reload_p, get_avail_load_store_reg,
	eliminate_partially_redundant_load): Likewise.
	* postreload.c (reload_cse_simplify_set,
	reload_combine_note_use): Likewise.
	* predict.c (predict_insn, expected_value_to_br_prob,
	propagate_freq, expensive_function_p): Likewise.
	* print-rtl.c (print_rtx): Likewise.
	* profile.c (instrument_edges, instrument_values,
	compute_branch_probabilities, branch_prob, union_groups,
	tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
	* protoize.c (in_system_include_dir, file_could_be_converted,
	file_normally_convertible, gen_aux_info_file, seek_to_line,
	do_cleaning): Likewise.
	* tree-ssa-alias.c (collect_points_to_info_r): Likewise.
	* tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
	* tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.

2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>

	* cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
	* modulo-sched.c (undo_replace_buff_elem): New structure.
	(kernel_number_of_cycles, ps_unschedule_node,
	undo_generate_reg_moves,free_undo_replace_buff,
	undo_permute_partial_schedule,	loop_single_full_bb_p,
	SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
	build_loops_structure, get_sched_window): New.
	(generate_reg_moves): Return undo_replace_buff_elem and other
	fixes.
	(generate_prolog_epilog): Remove old loop versioning.
	(sms_schedule): Use loop information and loop_version.
	(sms_schedule_by_order): Split part of it to get_sched_window.
	* passes.c (rest_of_handle_sms): call cfg_layout_initialize
	cfg_layout_finalize and free_dominance_info before/after SMS.

2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>

	* cfghooks.c (lv_flush_pending_stmts,
	cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
	lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
	* cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
	lv_add_condition_to_bb,
	lv_adjust_loop_header_phi, extract_cond_bb_edges,
	flush_pending_stmts): New in cfg_hooks structure.
	(cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
	extract_cond_bb_edges, lv_adjust_loop_header_phi,
	lv_add_condition_to_bb): New declarations.
	* cfgloop.h (duplicate_loop_to_header_edge): Change return type to
	bool.
	(loop_version): Declare.
	* cfgloopmanip.c (cfghooks.h): Include.
	(duplicate_loop_to_header_edge): Change return type to bool.
	(loop_version, lv_adjust_loop_entry_edge): Move here.
	* cfgrtl.c (cfgloop.h): Include.
	(rtl_verify_flow_info_1): Fix.
	(rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
	(rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
	initialization.
	* tree-cfg.c (tree_lv_adjust_loop_header_phi,
	tree_lv_add_condition_to_bb): New.
	(tree_cfg_hooks): Add new hooks to initialization.
	* tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
	lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.

2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>

	* config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
	xstormy16_below100_or_register,
	xstormy16_splittable_below100_or_register, and
	nonimmediate_nonstack_operand.

	* config/stormy16/stormy16-protos.h: Remove the prototypes for
	xstormy16_ineqsi_operator, equality_operator,
	inequality_operator, shift_operator,
	xstormy16_below100_operand, xstormy16_below100_or_register,
	xstormy16_splittable_below100_or_register,
	xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
	* config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
	equality_operator, inequality_operator,
	xstormy16_below100_operand, xstormy16_below100_or_register,
	xstormy16_splittable_below100_or_register,
	xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
	nonimmediate_nonstack_operand, shift_operator): Move to
	predicates.md.
	* config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
	* config/stormy16/stormy16.md: Include predicates.md.
	* config/stormy16/predicates.md: New.

2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
	small_int, large_int, reg_or_0_operand, simple_memory_operand,
	equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
	move_operand, power_of_2_operand): Move to predicates.md.
	* config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
	PREDICATE_CODE): Remove.
	* config/iq2000/iq2000.md: Include predicates.md.
	* config/iq2000/predicates.md: New.

2005-04-02  Richard Sandiford  <rsandifo@redhat.com>

	* config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
	(MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
	(MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
	(TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
	(TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
	(TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
	(SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
	(m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
	(TARGET_M68HC11): Delete.
	(TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
	* config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
	* config/m68hc11/m68hc11.c (m68hc11_regparm_string)
	(m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
	(nb_soft_regs): Delete.
	(TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
	(m68hc11_override_options): Remove the code that caters for MASK_M6811
	and MASK_M6812 being set simultaneously.  Change the code that sets
	the default m68hc11_soft_reg_count to use integers instead of strings.
	(m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
	m68hc11_soft_reg_count (which now has an int type) as the number
	of soft registers.
	* config/m68hc11/m68hc11.opt: New file.

2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/fr30/fr30.h (PREDICATE_CODES): Remove
	fp_displacement_operand, sp_displacement_operand.

	* config/m68hc11/m68hc11-protos.h: Add a prototype for
	m68hcc_auto_inc_p.
	Remove the prototypes for tst_operand, cmp_operand,
	stack_register_operand, d_register_operand,
	hard_addr_reg_operand, splitable_operand,
	m68hc11_logical_operator, m68hc11_arith_operator,
	m68hc11_non_shift_operator, m68hc11_shift_operator,
	m68hc11_unary_operator, m68hc11_eq_compare_operator,
	non_push_operand, hard_reg_operand, and
	reg_or_some_mem_operand.
	* config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
	extern.
	(tst_operand, cmp_operand, non_push_operand,
	splitable_operand, reg_or_some_mem_operand,
	stack_register_operand, d_register_operand,
	hard_addr_reg_operand, hard_reg_operand,
	m68hc11_eq_compare_operator, m68hc11_logical_operator,
	m68hc11_arith_operator, m68hc11_non_shift_operator,
	m68hc11_shift_operator, m68hc11_unary_operator): Move to
	predicates.md.
	* config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
	* config/m68hc11/m68hc11.md: Include predicates.md.
	* config/m68hc11/predicates.md: New.

2005-04-02  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/19345
	* dwarf2out.c (add_abstract_origin_attribute): Revert accidental
	change checked in along with 2005-03-03's patch for debug/20253.
	* tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
	(remap_decl): Insert type decl in map earlier.

2005-04-02  Alexandre Oliva  <aoliva@redhat.com>

	PR tree-optimization/20640
	* tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
	post-dominator if it has phi nodes.
	(eliminate_unnecessary_stmts): Remove dead phis in all blocks
	before dead statements.

2005-04-02  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/20491
	* final.c (alter_subreg): Don't call subreg_regno for a non-REG.

2005-04-02  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/20290
	* loop.c (for_each_insn_in_loop): Don't assume the loop body runs
	in every iteration if the entry point is the exit test.

2005-04-02  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.md (attribute "length"): Define.

2005-04-02  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/predicates.md (indexed_or_indirect_operand): New.
	(word_offset_memref_operand): New.
	* config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
	(indexed_or_indirect_operand): Delete.
	* config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
	(indexed_or_indirect_operand): Delete.

	* config/rs6000/t-darwin8: Comment out ppc64 multilib.

	PR 20650
	* config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
	a register.

	* config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
	* config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.

2005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/vax/vax.md: Spellcheck, fix whitespace.

2005-04-01  Ian Lance Taylor  <ian@airs.com>

	* gcc.c: Don't include <sys/resource.h> or declare getrusage.
	(rus, prus): Remove static variables.
	(execute): Use pex_run/pex_get_status rather than pexecute/pwait.
	(process_command): Permit report_times and use_pipes together.

2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>

	* c-decl.c (validate_proto_after_old_defn): Look at
	TYPE_MAIN_VARIANT of argument types.

2005-04-01  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (thumb_call_via_label): Include space for SP.
	(arm_output_function_epilogue): Allow call_via_SP.
	(thumb_call_via_reg, arm_file_end): Ditto.
	* config/arm/arm.h (struct machine_function): Include space for SP.
	(thumb_call_via_label): Update declaration.

2005-04-01  Ian Lance Taylor  <ian@airs.com>

	* final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
	doing a peephole optimization, once again put any notes in the
	proper position.

2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>

	* bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.

2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>

	* local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
	(block_alloc, find_free_reg): Likewise.
	* loop-doloop.c (doloop_modify): Likewise.
	* loop-invariant.c (record_use): Likewise.
	* loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
	get_iv_value, canon_condition, eliminate_implied_condition,
	eliminate_implied_condition, simplify_using_initial_values,
	shorten_into_mode, canonicalize_iv_subregs,
	iv_number_of_iterations): Likewise.
	* loop-unroll.c (expand_var_during_unrolling): Likewise.
	* loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
	unswitch_loop): Likewise.
	* loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
	move_movables, replace_call_address, find_and_verify_loops,
	rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
	record_giv, final_giv_value, general_induction_var,
	simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
	loop_giv_dump): Likewise.

	* gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
	GCOV_CHECK_WRITING): Remove.
	(gcov_position, gcov_rewrite): Use gcc_assert.
	* gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
	gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
	* libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
	gcc_assert.

2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-inline.c: Fix a typo.

2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>

	* configure.ac (enable-checking): Explicitly set all variables for
	collective switch values.  Alphabetize variables. Rename
	ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
	synonym for 'no'.
	* doc/install.texi (enable-checking): Update documentation.
	* configure: Rebuilt.

2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
	possible.

2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.c (adjacent_mem_locations): Reject volatile memory refs.
	Also reject cases where this pattern will cause load delay stalls
	unless optimizing for size and it will produce a shorter sequence.
	* arm.md (arith_adjacent_mem): Make better use of ldm addressing
	variants to avoid pre-adjusting the base when possible.

2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>

	* arm.md (minmax_arithsi): Reject all eliminable registers, not just
	the frame and argument pointers.
	(strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
	(loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
	(strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
	(strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
	(loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
	(loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.

2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
	with entry for selectany attribute.
	* config/i386/i386-protos.h (ix86_handle_selectany_attribute):
	Declare.
	* config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
	(i386_pe_asm_named_section): Handle sections generated by
	selectany attribute.
	* doc/extend.texi (selectany): Document attribute.

2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
	    Jan Hubicka  <jh@suse.cz>

	* config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
	to fix addresses involving EBP and ESP.
	(aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
	for SUBREGed registers.
	(legitimate_address_p): Accept SUBREGed registers.

2005-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR c++/19406
	* dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
	(dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
	for FIELD_DECLs.

2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.

2005-04-01  James E Wilson  <wilson@specifixinc.com>

	PR c++/20505
	* dwarf2out.c (rtl_for_decl_init): New function.
	(rtl_for_decl_location): Extracted from here.
	(tree_add_const_value_attribute): Call rtl_for_decl_init and
	add_const_value_attribute.  Delete initializer_constant_valid_p call.

2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>

	* cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
	lambda-code.c, loop.c, machmode.def, mips-tfile.c,
	modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
	tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
	config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
	config/i386/i386.md, config/rs6000/predicates.md,
	config/rs6000/rs6000.c, config/s390/fixdfdi.h,
	config/s390/s390.c, config/stormy16/stormy16.c,
	config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
	typos.

2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/17855
	* gimplify.c (gimplify_expr): Create a temporary for lvalue
	COND_EXPR and CALL_EXPR.

2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/20632
	* genautomata.c (first_cycle_unit_presence): Check all alternative
	states for unit presence.

	* doc/md.texi: Remove remark about impossibility to query unit
	presence in non nondeterministic automaton state.

	* config/ia64/ia64.c (get_template): Change order of unit querying.

2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-dom.c (cprop_into_successor_phis): Remove an
	obsolete comment.

2005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>

	* cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
	flag for edges outside any loops.

2005-03-31  Janis Johnson  <janis187@us.ibm.com>

	* doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.

2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-alias.c: Follow spelling conventions.
	* doc/tree-ssa.texi: Fix a typo.

2005-03-31  J"orn Rennecke <joern.rennecke@st.com>

	* postreload-gcse.c: Include target.h.
	(gcse_after_reload_main): Return early if we cannot modify jumps.
	* Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).

2005-03-31  David Edelsohn  <edelsohn@gnu.org>

	* tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
	expensive operations.

2005-03-31  Ian Lance Taylor  <ian@airs.com>

	* collect2.c (lderrout): New variable.
	(collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
	if it is set, to stderr.
	(handler): Unlink lderrout if it is set.
	(dump_file): Add "to" parameter.  Change all callers.
	(main): Initialize lderrout.
	(collect_execute): Add errname parameter.  Change all callers.
	Rename redir parameter to outname.  Never pass
	PEX_STDERR_TO_STDOUT to pex_run.
	* collect2.h (collect_execute, dump_file): Update declarations.
	* tlink.c (tlink_execute): Add errname parameter.  Change all
	callers.
	(do_tlink): Check lderrout as well as ldout.

2005-03-31  Caroline Tice  <ctice@apple.com>

	* Makefile.in (varasm.o): Add basic-block.h to list of requirements.
	(bb-reorder.o): Add errors.h to list of requirements.
	(STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
	profiledbootstrap flags.
	* bb-reorder.c (errors.h): Add new include.
	(struct bbro_basic_block_data_def): Add new field, in_trace.
	(add_unlikely_executed_notes): Remove function.
	(mark_bb_for_unlikely_executed_section): Remove function.
	(insert_section_boundary_note): New function.
	(verify_hot_cold_block_grouping): New function.
	(push_to_next_round_p): Remove variables and tests that push all
	cold blocks to last round.
	(find_traces): Remove code that added extra round of trace finding
	when doing partitioning.
	(find_traces_1_round) : Remove variable last_round;  add code to
	update new struct field, in_trace; correct trace_length where it was
	incorrect before (after call to copy_bb); change code that pushed all
	cold blocks to last round. Instead verify that all blocks going into
	a trace belong in the same partition.
	(connect_traces): Modify to connect the traces in two passes, if the
	function contains both hot and cold blocks.  The first pass connects
	all the traces for blocks in the partition that the first block in
	the function belongs to; the second pass connnects all the traces
	containing blocks that belong in the other partition.
	(find_rarely_executed_basic_blocks_and_crossing_edges): Remove
	code that automatically put the first block in a function into the
	hot partition if the function had any hot blocks.
	(fix_crossing_unconditional_branches): Check number of succ edges
	before attempting to get one.
	(fix_edges_for_rarely_executed_code): Update comment describing
	function.
	(reorder_basic_blocks): Add code to initialize new field (in_trace);
	remove call to add_unlikely_executed_notes; add call to
	verify_hot_cold_block_grouping.
	(duplicate_computed_gotos): Don't change computed goto if it's a
	crossing edge.
	(partition_hot_cold_basic_blocks): Update function comment.
	* cfgcleanup.c (try_simplify_condjump): Remove redundacy from
	condition.
	(try_forward_edges): Likewise.
	(merge_blocks_move_predecessor_nojumps): Likewise.
	(merge_blocks_move_successor_nojumps): Likewise.
	(merge_blocks_move): Likewise.
	(try_crossjump_bb): Likewise.
	* cfglayout.c (update_unlikely_executed_notes): Remove function.
	(fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
	notes to cold bb's; remove call to update_unlikely_executed_notes.
	(duplicate_insn_chain): change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
	NOTE_INSN_SWITCH_TEXT_SECTIONS.
	* cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
	function declaration.
	* cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
	from consideration.
	(rtl_can_merge_blocks): Remove redundancy from condition.
	(try_redirect_by_replacing_jump): Likewise.
	(force_nonfallthru_and_redirect): Remove code for adding
	UNLIKELY_EXECUTED_CODE notes to cold bb's.
	(commit_one_edge_insertion): Likewise.
	(cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
	* dbxout.c (FORCE_TEXT): Replace function_section with
	current_function_section.
	(struct dbx_debug_h): Add do_nothing function for new debug_hooks
	function, switch_text_section.
	(struct xcoff_debug): Likewise.
	(dbxout_function_end): Add code to put out label diffs for both
	hot and cold sections.
	* debug.c (struct do_nothing_debug_hooks): Add do_nothing function
	for new debug_hooks funciton, switch_text_section..
	* debug.h (struct gcc_debug_hooks): Add new function to debug_hooks,
	switch_text_section.
	* dwarf2out.c (struct dw_fde_struct): Add five new fields:
	dw_fde_hot_section_label, dw_fde_hot_section_end_label,
	dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and
	dw_fde_switched_sections.
	(output_call_frame_info): Add test to see if function switches text
	sections in the middle; if so, use appropriate extra hot and cold
	section labels to compute size deltas for the hot and cold sections.
	(dwarf2out_begin_prologue): Add code to initialize new fields in
	dw_fde_struct.
	(dwarf2out_switch_text_section): New function (invoked through
	debug_hook); updates new fields in dw_fde_struct appropriately and
	increments separate_line_info_table_in_use.
	(dwarf2_debug_hooks): Initialize switch_text_section function to be
	dwarf2out_switch_text_section.
	(struct var_loc_node): Add new field, section_label.
	(output_aranges): Add code to check whether in hot or cold section and
	use the appropriate label in calculating deltas.
	(output_ranges): Likewise.
	(output_line_info): Add code to check which section we're in and
	use appropriate hot/cold label.
	(add_location_or_constant_value_attribute): Likewise.
	(gen_subprogam_die): Modify arange attributes to use correct labels.
	(dwarf2out_begin_block): Change call to function_section into call to
	current_function_section.
	(dwarf2out_end_block): Likewise.
	(dwarf2out_source_line): Likewise.
	(dwarf2out_var_location): Add code to check whether in hot or cold
	section and use the appropriate label.
	* except.c (output_function_exception_table): Change call to
	function_section into call to current_function_section.
	* final.c (profile_function): Likewise.
	(scan_ahead_for_unlikely_executed_note): Remove function.
	(final_scan_insn): Remove calls to
	scan_ahead_for_unlikely_executed_note, and related code for switching
	to cold section, except for the single time
	NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to
	debug_hooks->switch_text_sections; replace appropriate calls to
	function_section with calls to current_function_section.
	* ifcvt.c (find_if_case_1): Remove redundancy from condition, add
	test_bb to condition.
	(find_if_case_2): Likewise.
	* insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
	NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
	* opts.c (decode_options): Change warning about hot/cold partitioning
	with exceptionss to inform (so as not to cause bootstrap failures);
	remove warning about partitioning with DWARF debug info.
	* output.h (current_function_section): Add new function decl.
	(insert_section_boundary_note): Likewise.
	(enum in_section): Move this declaration here from varasm.c.
	(unlikely_section_label): Likewise.
	(unlikely_text_section_name): Likewise.
	(last_text_section_name): New global variable.
	(last_text_section): Likewise.
	(hot_section_label): Likewise.
	(hot_section_end_label): Likewise.
	(cold_section_end_label): Likewise.
	* passes.c (rest_of_handle_final): Free unlikely_text_section_name.
	* print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
	to NOTE_INSN_SWITCH_TEXT_SECTIONS.
	* reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note
	insn from consideration.
	* sdbout.c (sdb_debug_hooks): Add do_nothing for new function,
	switch_text_section.
	* varasm.c (basic-block.h): Add new include.
	(unlikely_section_label_printed): Remove global variable.
	(unlikely_section_label): Make global variable not be static any more.
	(unlikely_text_section_name): Likewise.
	(hot_section_end_label): New global variable (not static)
	(first_function_block_is_cold): Likewise.
	(hot_section_label): Likewise.
	(cold_section_end_label): Likewise..
	(last_text_section): New global variable, not static.
	(last_text_section_name): New global variable, not static.
	(initialize_cold_section_name): New function.
	(enum in_section): Move declaration to output.h.
	(text_section): Update last_text_section.
	(unlikely_text_section): Replace code to determine cold section name
	with call to initialize_cold_section_name; Add code to update
	last_text_section; remove code for printing out label.
	(named_section_real): Add code to update last_text_section and
	last_text_section_name as appropriate.
	(function_section): Change test for 'unlikely' to depend on
	first_function_block_is_cold (moved old test to
	current_function_section).
	(current_function_section): New function.
	(assemble_start_function): Move code that frees
	unlikely_text_section_name; initialize hot_section_end_label;
	print hot and cold section labels at the start of the function;
	set first_function_block_is_cold, if appropriate; initialize l
	ast_text_section; add call to insert_section_boundary_note.
	(assemble_end_function): Add code to write out hot and cold section
	end labels.
	*vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
	switch_text_section.
	* config/darwin.c (machopic_select_section): Replace incorrect
	function in base_funs; update reloc for cold sections if necessary.
	* config/darwin.h (SECTION_FUNCTION): Add code to update
	last_text_section if appropriate.
	(text_unlikely_section): Remove.
	* config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
	* config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
	* config/xtensa/xtensa.c (override_options): Turn off hot/cold
	partitioning for this architecture.

2005-03-31  Olivier Hainque  <hainque@adacore.com>

	* dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
	defined and non-zero.

2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR c++/18644
	* doc/invoke.texi (-Wsynth): Don't document, as it now is void of
	semantics.

2005-03-31  Alan Modra  <amodra@bigpond.net.au>

	PR target/20611
	* config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
	label operand.  Remove (use (unspec..)).  Don't emit a label on
	the offset word.
	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
	generate inline label for load_toc_v4_PIC_1b.
	(rs6000_emit_load_toc_table): Likewise.

2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>

	* config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
	ns32k-*-netbsdelf*, and ns32k-*-netbsd*.

2005-03-29  Devang Patel  <dpatel@apple.com>

	* tree-sra.c (decide_block_copy): Disable scalarization of
	sub-elements.

2005-03-30  Stuart Hastings  <stuart@apple.com>
	    Dale Johannesen  <dalej@apple.com>

	* Makefile.in (print-tree.o): Depend on tree-iterator.h.
	* print-tree.c (print_node): Add case STATEMENT_LIST.

2005-03-31  Alan Modra  <amodra@bigpond.net.au>

	* config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
	(powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
	(powerpc-*-linux*): Build a biarch compiler when --enable-targets
	is given with "powerpc64*" or "all", or when --with-cpu chooses
	a 64-bit cpu.

2005-03-30  James E. Wilson  <wilson@specifixinc.com>

	PR debug/20268
	* dwarf2out.c (add_high_low_attributes): New function, extracted from
	gen_lexical_block_die.
	(gen_lexical_block_die, gen_inlined_subroutine_die): Call it.

2005-03-31  Jan Hubicka  <jh@suse.cz>

	2004-11-02  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_varpool_node_name): New function.
	(dump_cgraph_varpool_node): New function.
	(dump_varpool): New function.
	* cgraphunit.c (cgraph_optimize): Dump varpool.

	2004-10-16  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (decide_is_variable_needed): New function.
	(cgraph_varpool_finalize_decl): Use it.
	* cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
	unit-at-a-time.
	* final.c (output_addr_const): Do not call mark_referenced.
	* passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
	always go via cgraph.
	* toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
	(check_global_declarations): Ifdef out code clearing DECL_RTL.
	* tree-optimize.c (execute_inline): Mark functions called.
	* i386.c (output_pic_addr_const): Do not call mark_decl_referenced.

	2004-10-11  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
	(cgraph_varpool_last_needed_node): New static variable.
	(enqueue_needed_varpool_node): Break out from ...; add items to the
	end of queue; update first pointers.
	(cgraph_varpool_mark_needed_node): ... here.
	(cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
	(cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
	* cgraph.h (cgraph_varpool_node): Add analyzed field.
	(cgraph_varpool_first_unanalyzed_node): Declare.
	* cgraphunit.c: Include output.h.
	(cgraph_varpool_analyze_pending_decls): New function.
	(cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
	for errors, analyze pending decls.
	(cgraph_finalize_compilation_unit): Only analyze decls.
	(cgraph_optimize): Assemble the decls after expanding.

2005-03-30  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
	subvars get marked properly in tags for grouping.
	(add_pointed_to_var): Mark only actual pointed to
	variables/subvars in addresses needed.
	(create_overlap_variables_for): Clear call clobbered on original
	variable.
	* tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
	addresable vars with subvars into list.
	* tree-ssa.c (verify_ssa_name): Verify original is not used where
	subvar should be.

2005-03-30  Richard Henderson  <rth@redhat.com>

	* cgraph.h (struct cgraph_node): Add alias.
	* varasm.c (assemble_alias): Set it.
	* cgraphunit.c (cgraph_assemble_pending_functions): Check it and
	avoid calling cgraph_expand_function.

2005-03-30  Tom Tromey  <tromey@redhat.com>

	* tree.def (FILE_TYPE): Removed.
	* typeclass.h (enum type_class): Removed file_type_class.
	* dwarf2out.c (is_base_type): Updated.
	(gen_type_die): Likewise.
	* dbxout.c (dbxout_type): Updated.
	* builtins.c (type_to_class): Updated.
	* tree.c (type_contains_placeholder_1): Updated.
	* config/sparc/sparc.c (sparc_type_code): Updated.
	* config/ia64/ia64.c (hfa_element_mode): Updated.
	* expr.c (count_type_elements): Updated.
	* stor-layout.c (layout_type): Updated.
	* tree-inline.c (remap_type): Updated.
	* tree-pretty-print.c (dump_generic_node): Updated.

2005-03-30 Fariborz Jahanian <fjahanian@apple.com>

	* builtins.c (expand_builtin_powi): Fix mode of
	2nd argument to match int.
	* libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
	2nd argument type to int.
	* libgcc2.c: Change prototype of __powi* functions to use
	int.

2005-03-30  Dale Johannesen  <dalej@apple.com>

	PR middle-end/19225
	* calls.c (expand_call): Flush pending deferrals before
	throwing call.

2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/772
	PR c/17913
	* c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
	C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
	c_label_context, label_context_stack): New.
	* c-decl.c (define_label): Check for jumps into statement
	expressions.  Add label to list of defined labels.
	(start_function): Push context on label_context_stack.
	(finish_function): Pop context from label_context_stack.
	* c-typeck.c (label_context_stack): New.
	(c_finish_goto_label): Check for jumps into statement
	expressions.  Add label to list of jumped to labels.
	(struct c_switch): Add blocked_stmt_expr.
	(c_start_case): Initialize it.
	(do_case): Check it.
	(c_finish_case): Verify !blocked_stmt_expr.
	(c_begin_stmt_expr): Push context on label_context_stack.
	Increment blocked_stmt_expr.  Mark labels jumped to from outside
	as undefinable.
	(c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
	defined in the statement expression and no longer jumpable to.
	Mark labels jumped to from just outside the statement expression
	as again definable.  Pop context from label_context_stack.
	* doc/extend.texi (Statement Exprs): Update.

2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/20368
	* c-decl.c (start_function): Check for old_decl being
	error_mark_node.

2005-03-30  Ian Lance Taylor  <ian@airs.com>

	* final.c (final): Remove prescan parameter.  Change all callers.
	(final_scan_insn): Remove prescan parameter.  Change all callers.

2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-vectorizer.c: Fix comment typos.

2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>

	* tree-scalar-evolution.c (instantiate_parameters_1): Return
	as soon as a chrec_dont_know is detected.

2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>

	Merge from csl-arm-branch.
	2004-02-12  Mark Mitchell  <mark@codesourcery.com>

	* tlink.c (recompile_files): Do not assume that "rename" can
	overwrite an existing file.

2005-03-31  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
	* configure: Regenerate.

2005-03-30  Alan Modra  <amodra@bigpond.net.au>

	* doc/install.texi: Update binutils requirement for powerpc*-linux.

	* config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.

	* calls.c (struct arg_data): Update "partial" comment.
	(load_register_parameters): Update "nregs" comment.

2005-03-30  Richard Sandiford  <rsandifo@redhat.com>

	* config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
	(MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
	(TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
	(TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
	(TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
	(TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
	than target_flags & 0.
	* config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
	(iq2000_arch, iq2000_parse_cpu): Delete.
	(TARGET_HANDLE_OPTION): Override default.
	(iq2000_handle_option): New function.
	(override_options): Remove -march= and -mcpu= handling.
	* config/iq2000/iq2000.opt: New file.

2005-03-30  Richard Sandiford  <rsandifo@redhat.com>

	* config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
	* config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
	(RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
	(RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
	(LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
	(PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
	(C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
	(TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
	(TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
	(TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
	(TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
	(TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
	(c4x_rpts_cycles_string, c4x_cpu_version_string)
	(TARGET_OPTIONS): Delete.
	(c4x_rpts_cycles, c4x_cpu_version): Declare.
	(TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
	(TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
	* config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
	(c4x_cpu_version_string): Delete.
	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
	(c4x_handle_option): New function.  Map -m3x and -m4x options to the
	equivalent -mcpu= option.
	(c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
	Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
	TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
	or clearing the appropriate MASK_* bit.
	(c4x_file_start): Use c4x_cpu_version.
	* config/c4x/c4x.opt: New file.

2005-03-30  Richard Sandiford  <rsandifo@redhat.com>

	* doc/options.texi: Document the new MaskExists flag.
	* opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
	if the option has the MaskExists flag.

2005-03-30  Richard Sandiford  <rsandifo@redhat.com>

	* opt-functions.awk (flag_set_p, test_flag): New functions.
	(switch_flags): Use them.
	* opth-gen.awk: Use flag_set_p to check for flags.
	* optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.

2005-03-30  Ian Lance Taylor  <ian@airs.com>

	* config.host (i[34567]86-*-mingw32*): Don't set
	host_can_use_collect2 to no.

2005-03-30  Alan Modra  <amodra@bigpond.net.au>

	PR target/20203
	* builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
	Remove convert_memory_address call duplicating that in memory_address.

2005-03-29  Richard Henderson  <rth@redhat.com>

	PR c/20519
	* c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
	(build_compound_literal): Likewise.  Propagate decl type into the
	initializer.
	(finish_decl): Likewise.  Use new return value from complete_array_type
	for zero sized arrays.
	(complete_array_type): Move ...
	* c-common.c (complete_array_type): ... here.  Change first argument
	to pointer-to-type-node.  Consistently use sizetype for the index
	except for zero sized arrays.  Detect zero sized arrays for pedantic
	mode diagnostics.  Create a new type node instead of modifying the
	old node in place.
	* c-tree.h (complete_array_type): Move decl ...
	* c-common.h (complete_array_type): ... here.

2005-03-29  Richard Henderson  <rth@redhat.com>

	PR tree-opt/19108
	* tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.

2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>

	* builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
	debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
	rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
	tree-profile.c, tsystem.h, value-prof.h: Update copyright.

2005-03-29  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
	truthvalue conversion removal.

2005-03-29  Ian Lance Taylor  <ian@airs.com>

	PR bootstrap/14316
	* collect2.c: Never include <vfork.h>.
	(VFORK_STRING, vfork): Don't define.
	(pid): Remove global variable.
	(handler): Call raise instead of kill (getpid(), ...).
	(collect_wait): Add pex parameter.  Change all callers.  Use
	pex_get_status rather than pwait.
	(do_wait): Add pex parameter.  Change all callers.
	(collect_execute): Return struct pex_obj * rather than void.  Use
	pex routines rather than pexecute.
	(fork_execute): Get pex_obj from collect_execute, and pass it to
	do_wait.
	(scan_prog_file): Use pex routines rather than pipe/vfork/exec.
	Only declare quit_handler if SIGQUIT is defined.
	(scan_libraries): Likewise.
	* collect2.h (collect_execute): Update declaration.
	(collect_wait): Update declaration.
	* tlink.c (tlink_execute): Get pex_obj from collect_execute, and
	pass it to collect_wait.

2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/20672
	* c-parser.c (c_parser_compound_statement_nostart): Give error
	message for EOF instead of just setting parser->error.

2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
	(slpeel_update_phi_nodes_for_guard1): New function.
	(slpeel_update_phi_nodes_for_guard2): New function.
	(slpeel_tree_peel_loop_to_edge): Call above new functions instead
	of slpeel_update_phi_nodes_for_guard.
	(vectorize_loops): Remove call to loop_closed_rewrite.
	* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
	assertion.

2005-03-29  Richard Sandiford  <rsandifo@redhat.com>

	* config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
	(TARGET_LITTLE_ENDIAN): New macro.
	* config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
	(TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
	(TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
	(TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
	(TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
	(TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
	(TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
	(TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
	(m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
	(TARGET_OPTIONS): Delete.
	(M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
	(CACHE_FLUSH_TRAP): Turn into an integer.
	(TARGET_LITTLE_ENDIAN): Define to 0 by default.
	(INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
	-mflush-trap is in use.
	* config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
	(m32r_cache_flush_trap_string): Delete.
	(m32r_model) Initialize to M32R_MODEL_DEFAULT.
	(m32r_sdata): Likewise M32R_SDATA_DEFAULT.
	(m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
	(m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
	-mmodel= and -msdata= handling from...
	(m32r_init): ...here.
	* config/m32r/m32r.opt: New file.

2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>

	* tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
	(duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
	* tree-vect-analyze.c (vect_object_analysis): additional parm
	pass back a "struct ptr_info_def *" with the points-to info.
	(vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
	statement using info returned from vect_object_analysis.
	* tree-vect-transform.c (update_vuses_to_preheader): New function.
	(vect_create_data_ref_ptr): Remove updates to vars_to_rename
	for virtual uses and defs when creating a replacement vector
	reference.  Call duplicate_ssa_name_ptr_info to define points-to
	info for vector pointer replacement using STMT_VINFO_PTR_INFO.
	(vectorizable_store): copy_virtual_operands and update
	definition statements.
	(vectorizable_load): copy_virtual_operands.  Remove call to
	mark_call_clobbered_vars_to_rename for call to "const" builtin.
	* tree-vectorizer.c (vectorize_loops): Remove calls to
	rewrite_into_ssa and bitmap_clear (vars_to_rename).
	(new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
	* tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
	define macro STMT_VINFO_PTR_INFO for use in accessing.
	* tree.h add export of duplicate_ssa_name_ptr_info.
	* rs6000.c (altivec_init_builtins): Declare builtin function
	__builtin_altivec_mask_for_load to be "const".

2005-03-29  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/20622
	* cgraph.h (struct cgraph_varpool_node): Add alias field.
	* cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
	assemble_variable on aliases.
	* varasm.c (assemble_alias): Set node->alias.
	* toplev.c (wrapup_global_declarations): Don't call
	rest_of_decl_compilation on aliases again.

2005-03-29  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
	* config/arm/arm.c (arm_dbx_register_number): New function.
	* config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.

2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR middle-end/20263
	* varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
	the DECL_NAME, not the DECL_ASSEMBLER_NAME.

2005-03-29  Dale Johannesen <dalej@apple.com>

	* Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
	$(TREE_H) and $(COVERAGE_H).
	* coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
	* opts.c (common_handle_option): Enable tree-based value transforms.
	* toplev.c (process_options): Ditto.
	* value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
	refers to references to this type.
	* tree-flow.h: (struct stmt_ann_d): Add histograms field.
	* rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
	for may_be_more, may_be_less.
	(rtl_gen_pow2_profiler): Adjust.
	(rtl_gen_one_value_profiler_no_edge_manip): Adjust.
	(rtl_gen_one_value_profiler): Adjust.
	(rtl_gen_const_delta_profiler): Adjust.
	* tree-profile.c (tree_gen_interval_profiler): Implement.
	(tree_gen_pow2_profiler): Ditto.
	(tree_gen_one_value_profiler): Ditto.
	(tree_profiling): New.
	(pass_tree_profile): Reference it.
	* value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
	tree.h, gcov-io.h.
	(insn_divmod_values_to_profile): Rename to
	rtl_divmod_values_to_profile. Adjust.
	(insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
	(insn_prefetch_values_to_profile): Adjust.
	(rtl_value_profile_transformations): Adjust.
	(gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
	(gen_mod_pow2): Rename to rtl_mod_pow2.
	(gen_mod_subtract): Rename to rtl_mod_subtract.
	(divmod_fixed_value_transform): Rename to
	rtl_divmod_fixed_value_transform.
	(mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
	(mod_subtract_transform): Rename to rtl_mod_subtract_transform.
	(rtl_find_values_to_profile): Adjust.
	(tree_value_profile_transformations): Implement.
	(tree_divmod_values_to_profile): New.
	(tree_values_to_profile): New.
	(tree_divmod_fixed_value): New.
	(tree_mod_pow2): New.
	(tree_mod_subtract): New.
	(tree_divmod_fixed_value_transform): New.
	(tree_mod_pow2_value_transform): New.
	(tree_mod_subtract_transform): New.
	(tree_find_values_to_profile): Implement.
	* profile.c (instrument_values): Free histograms.
	(compute_value_histograms): Adjust. Implement tree version.

2005-03-29  Uros Bizjak  <uros@kss-loka.si>

	* reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
	* config/i386/i386.c (output_fix_trunc): Add new round_mode
	variable.  Output "fldcw" depending on round_mode.
	* config/i386/i386.md (UNSPEC_FIST): New.
	(fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
	New isns patterns to implement lrint and llrint built-ins as x87
	intrinsic function.
	(fistdi2, fist<mode>2 splitters): New splitters.
	(lrint<mode>2): New expanders.

2005-03-28  Ian Lance Taylor  <ian@airs.com>

	* config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
	0 when calling final_scan_insn.

2005-03-28  Jan Hubicka  <jh@suse.cz>

	PR middle-end/20635
	* varasm.c (mark_decl_referenced): Do not mark extern inline functions
	as needed.

	* tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
	types where possible.

2005-03-26  Per Bothner  <per@bothner.com>

	Make -f[no-]show-column also control non-cpp diagnostics.
	* c.opt (fshow-column): Move option from here ...
	* common.opt (fshow-column): ... to here.
	* diagnostic.c (diagnostic_build_prefix): Only print column number
	if flag_show_column.

2005-03-27  Steven Bosscher  <stevenb@suse.de>

	* vax-protos.h (vax_output_int_move, vax_output_int_add,
	vax_output_conditional_branch): New prototypes.
	* vax.c (vax_output_int_move, vax_output_int_add): New functions,
	extracted from vax.md mov and add patterns.
	(vax_output_conditional_branch): New function to output conditional
	branch instructions.
	* vax.md: Use mode macros for arithmetic and mov patterns.
	Use code macros for the jump patterns.

2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>

	* Makefile.in (libbackend.o): Depend on version files;
	add custom generation command.

2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/20636
	* config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
	sure that we have a REG before getting its REGNO.

2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
	* builtins.def (BUILT_IN_STRNDUP): New.

2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>

	PR tree-optimization/20470
	* fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
	ABS(x-y).

2005-03-25  Mike Stump  <mrs@apple.com>

	* config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
	sized objects.

2005-03-25  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
	Use our own structure definitions.

	* config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
	(fix_truncdfsi2): Allow registers or memory as destination.
	When TARGET_PPC_GFXOPT, generate simplified pattern.
	(fix_truncdfsi2_internal): Use define_insn_and_split.
	(fix_truncdfsi2_internal_gfxopt): New.
	(fctiwz): Don't confuse register allocation by giving it no choices.
	(stfiwx): New.
	* config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
	(EXTRA_MEMORY_CONSTRAINT): Likewise.
	* config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
	* config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.

2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>

	* dominance.c (free_dominance_info): Speed up by freeing et
	data structures without maintaining other nodes.
	* et-forest.c (et_free_tree_force): New.
	* et-forest.h: Add a prototype for et_free_tree_force.

	* tree.c (get_set_constructor_bits,
	get_set_constructor_bytes): Remove.
	* tree.h: Remove the corresponding prototypes.

2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>

	PR target/15491
	* vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
	(vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
	FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
	PRE_DEC, NEG and NOT.

2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c: Convert uses of fold (build (...)) to
	fold_buildN.

2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>

	PR rtl-optimization/20249
	* cse.c (insert_regs): Do not record equivalence of registers in
	different modes.

2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>

	* emit-rtl.c (reverse_comparison): Remove.
	* rtl.h: Remove the corresponding prototype.

2005-03-24  James E Wilson  <wilson@specifixinc.com>

	* doc/install.texi (--enable-altivec): Delete docs.

2005-03-24  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/predicates.md (easy_fp_constant): Return 0 for
	SFmode and DFmode before reload when
	flag_unsafe_math_optimizations not enabled.

2005-03-24  Geoffrey Keating  <geoffk@apple.com>

	* c.opt (fvisibility-inlines-hidden): Allow for ObjC++.

	* config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
	MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.

2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>

	* configure.ac (enable-checking): Add 'runtime' option.
	* doc/install.texi (enable-checking): Document 'runtime' checking.
	* tsystem.h (gcc_assert, gcc_unreachable): Define.
	* config.in: Regenerated.
	* configure: Regenerated.

2005-03-23  Uros Bizjak  <uros@kss-loka.si>

	* optabs.h (enum optab_index): Remove OTI_llrint.
	(llrint_optab): Remove macro.
	* optabs.c (init_optabs): Remove llrint_optab initialization.
	* genopinit.c (optabs): Remove llrint_optab implementation.
	* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
	using lrint_optab.

2005-03-24  Alexandre Oliva  <aoliva@redhat.com>

	PR rtl-optimization/20532
	* simplify-rtx.c (simplify_binary_operation_1): Protect from
	overflow when adding coefficients for PLUS or MINUS.
	(simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
	two as multiplier.

2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>

	* langhooks.h (truthvalue_conversion): Remove.
	* langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
	LANG_HOOKS_TRUTHVALUE_CONVERSION.
	* system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
	* gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
	* c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.

2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>

	* params.def: Fix a typo.
	* config/mips/mips.c: Follow the spelling convensions.
	* doc/invoke.texi: Fix typos.

2005-03-23  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/20601

	* tree-ssa-pre.c (insert_aux): Add missing condition to
	constification.

2005-03-23  Ian Lance Taylor  <ian@airs.com>

	* final.c (final_scan_insn): Don't remove no-op instructions.
	* reload1.c (reload): Remove simple no-op instructions even when
	not optimizing.

2005-03-23  Dorit Naishlos  <dorit@il.ib.com>

	PR tree-optimization/20501
	* tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
	reporting that peeling for alignment is applied moved to...
	* (vect_analyze_data_refs_alignment): Here.

2005-03-23  Ian Lance Taylor  <ian@airs.com>

	* reorg.c (dbr_schedule): Remove #if 0 code to call final.

2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
	Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.

2005-03-23  Hans-Peter Nilsson  <hp@axis.com>

	* doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
	imply that this is called once, independent of asms in code.
	Adjust to now being pased output and input lists.  Mention helper
	function decl_overlaps_hard_reg_set_p.
	* hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
	hook_tree_tree_identity and to take three trees, returning third.
	* hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
	prototype.
	* stmt.c: include hard-reg-set.h before tree.h.
	(decl_overlaps_hard_reg_set_p): New function, broken out from...
	(decl_conflicts_with_clobbers_p): Call
	decl_overlaps_hard_reg_set_p.
	(expand_asm_operands): Pass output and input lists in call to
	targetm.md_asm_clobbers.
	* target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
	hook_tree_tree_tree_tree_3rd_identity.
	* target.h (struct gcc_target.md_asm_clobbers): Take three tree
	parameters.
	* tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
	* config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
	parameters, first two unused.
	* config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
	parameters.  Only add MOF to clobbers if there's no 'h' mentioned
	in constraint letters and MOF is not mentioned as a asm-declared
	register in neither of the input and output lists.

2005-03-23  DJ Delorie  <dj@redhat.com>

	* optabs.c (expand_binop): Make sure the first subword's result
	gets stored.

2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>

	* c-common.c (c_common_truthvalue_conversion): Adjust comment.
	Call c_common_truthvalue_conversion rather than
	lang_hooks.truthvalue_conversion.
	* c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
	* c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
	c-typeck.c.
	* c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
	c_common_truthvalue_conversion.
	* c-parser.c (c_parser_paren_condition, c_parser_for_statement,
	c_parser_conditional_expression, c_parser_binary_expression): Call
	c_objc_common_truthvalue_conversion.
	* c-typeck.c (build_unary_op): Call
	c_objc_common_truthvalue_conversion.
	(build_conditional_expr): Do not call
	lang_hooks.truthvalue_conversion.
	(build_binary_op): Call c_common_truthvalue_conversion.
	(c_objc_common_truthvalue_conversion): Moved from
	c-objc-common.c.  Call default_function_array_conversion instead
	of default_conversion.

2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>

	* c-common.h (default_conversion): Remove.
	(perform_integral_promotions): Add.
	* c-tree.h (default_conversion): Add.
	* c-typeck.c (perform_integral_promotions): New, split out from
	default_conversion.
	* c-common.c (check_case_value): Use perform_integral_promotions,
	not default_conversion.
	(c_add_case_label): Don't continue processing case label after
	found to be pointer.

2005-03-23  Mark Mitchell  <mark@codesourcery.com>

	* gcc.c (do_spec_1): Do not add a -L path for a directory in
	the prefix list if we have already added a multilib directory
	based on that path.
	(main): Do not add MD_EXEC_PREFIX to the list of directories to
	search with -L.

2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>

	* reload1.c (indirect_symref_ok, reload_obstack): Make them
	static.
	* reload.h: Remove the prototype for indirect_symref_ok.

	* reload1.c (indirect_symref_ok): Make it global.
	* reload.h: Add a prototype for indirect_symref_ok.

2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
	ashlhi3 expander.

2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>

	* tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.

2005-03-22  Daniel Berlin  <dberlin@dberlin.org>

	* c-opts.c (c_common_parse_file): Only start/end main source file
	if debug hooks says the writer wants it.
	* dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
	member.
	(xcoff_debug_hooks): Ditto.
	* debug.c (do_nothing_hooks): Ditto.
	* debug.h (gcc_debug_hooks): Ditto.
	* dwarf2out.c (dwarf2_debug_hooks): Ditto.
	* sdbout.c (sdb_debug_hooks): Ditto.
	* vmsdbgout.c (vmsdbg_debug_hooks): Ditto.

2005-03-22  Mark Mitchell  <mark@codesourcery.com>

	* doc/extend.texi: Deprecate C++ min/max operators.

2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
	artificial original candidates.

2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
	    Jan Hubicka  <jh@suse.cz>
	    Steven Bosscher <stevenb@suse.de>

	* cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
	call cost based on argument sizes.
	(cgraph_mark_inline_edge): Avoid inline unit from shrinking by
	inlining.
	* params.def: (max-inline-inssn-single): Set to 450.
	(max-inline-insns-auto): Set to 90.
	(max-inline-insns-recursive): Set to 450
	(max-inline-insns-recursive-auto): Set to 450.
	(large-function-insns): Set to 2700.
	(inline-call-cost): New parameter.
	* tree-inline.c (estimate_move_cost): New function.
	(estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
	for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
	based on arguments.
	* tree-inline.h (estimate_move_cost): Declare.
	* invoke.texi: (max-inline-inssn-single): Change default to 450.
	(max-inline-insns-auto): Change default to 90.
	(max-inline-insns-recursive): Change default to 450
	(max-inline-insns-recursive-auto): Change default to 450.
	(large-function-insns): Change default to 2700.
	(inline-call-cost): Document new parameter.

2005-03-22  Richard Sandiford  <rsandifo@redhat.com>

	* config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
	(TARGET_DEFAULT): Delete.
	* config/i860/i860.opt: New file.

2005-03-22  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
	(frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
	(frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
	(frv_sched_lookahead): Delete.
	* config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
	(target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
	(MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
	(MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
	(MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
	(MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
	(MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
	(MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
	(MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
	(TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
	(TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
	(TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
	(TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
	(TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
	(TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
	(TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
	(TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
	(TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
	(TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
	(TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
	(TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
	(DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
	* config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
	(frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
	(frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
	(frv_sched_lookahead): Delete.
	(MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
	(frv_handle_option): New function.  Move -mcpu= handling from...
	(frv_override_options): ...here.  Remove handling of other
	TARGET_OPTIONS.
	(frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
	TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
	(frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
	and TARGET_NO_MULTI_CE.
	(frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
	!TARGET_VLIW_BRANCH.
	* config/frv/frv.opt: New file.

2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c (fold_ternary): Take decomposed arguments of
	CALL_EXPR.
	(fold): Update a call to fold_ternary.

	* fold-const.c (fold_build1, fold_build2, fold_build3): New.
	* tree.h: Add corresponding prototypes.

2005-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/20561
	* cfglayout.c (reemit_insn_block_notes): Don't put block notes in
	between jump table and its label.
	* final.c (shorten_branches): Handle notes in between ADDR_VEC
	resp. ADDR_DIFF_VEC and the label preceeding it.
	(final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
	is emitted in the right section.

2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c (fold_unary, fold_binary): Update comments
	about arguments.

2005-03-22  Hans-Peter Nilsson  <hp@axis.com>

	PR rtl-optimization/20527
	* combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
	REG_INC note, test that the register also isn't mentioned in PRED
	or SUCC.

2005-03-22  Ben Elliston  <bje@au.ibm.com>

	* dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
	and definition.

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

	* varasm.c (default_assemble_visibility): Remove extra ().

2005-03-21  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/20557
	* bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
	to determine whether a block can be duplicated, rather than test
	whether the block contains noncopyable insns ourselves.

2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
	predicates.

2005-03-21  Richard Sandiford  <rsandifo@redhat.com>

	* config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.

2005-03-21  Richard Sandiford  <rsandifo@redhat.com>

	* config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
	(TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
	* config/fr30/fr30.opt: New file.

2005-03-18  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/20542

	* tree-flow-inline.h (overlap_subvar): Move to here.
	* tree-ssa-operands.c: From here.
	* tree-flow.h (overlap_subvar): Declare.
	* tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
	* tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
	for variables with subvars.

2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>

	PR middle-end/20177
	* ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
	* modulo-sched.c (const_iteration_count): Return on NULL
	pre-header.
	(print_node_sched_params): Return on NULL dump_file.
	(generate_reg_moves): Handle reg-anti dependencies and disregard
	closing branch when generating register moves.
	(sms_schedule): Mark the SMSed block dirty.
	* passes.c (rest_of_handle_sms): Call update_life_info for all
	basic-blocks.
	* testsuite/gcc.dg/20050321-1.c: New test.

2005-03-21  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
	* config/xtensa/xtensa.md (movsi_internal, movhi_internal,
	movqi_internal): Likewise.

2005-03-21  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
	xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
	xtensa_b4const): Delete prototypes.
	(xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
	xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
	(xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
	xtensa_extra_constraint): New prototypes.
	(add_operand, arith_operand, nonimmed_operand, mem_operand,
	mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
	lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
	move_operand, const_float_1_operand, fpmem_offset_operand,
	branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
	* config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
	(xtensa_b4const_or_zero): ...this.  Change return type to bool and
	argument type to HOST_WIDE_INT.
	(xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
	xtensa_mask_immediate): Likewise.
	(xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
	Likewise.  Also make these functions static.
	(xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
	(xtensa_const_ok_for_letter_p): New.
	(add_operand, arith_operand, nonimmed_operand, mem_operand,
	mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
	lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
	move_operand, const_float_1_operand, fpmem_offset_operand,
	branch_operator, ubranch_operator, boolean_operator): Move to
	predicates.md.
	(smalloffset_mem_p): Inline code from xtensa_lsi4x4.
	(xtensa_mem_offset): Change return type to bool.
	(xtensa_extra_constraint): New.
	(gen_int_relational): Update type of const_range_p function pointer.
	Use xtensa_b4const_or_zero.
	* config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
	xtensa_const_ok_for_letter_p.  Update comments.
	(EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
	(PREDICATE_CODES): Delete.
	* config/xtensa/xtensa.md: Include predicates.md.
	* config/xtensa/predicates.md: New file.

2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/v850/v850-protos.h: Remove the prototypes for
	reg_or_int9_operand, reg_or_const_operand,
	pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
	reg_or_0_operand, reg_or_int5_operand, call_address_operand,
	movsi_source_operand, power_of_two_operand,
	not_power_of_two_operand, special_symbolref_operand,
	pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
	register_is_ok_for_epilogue.
	* config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
	reg_or_int9_operand, reg_or_const_operand,
	call_address_operand, special_symbolref_operand,
	movsi_source_operand, power_of_two_operand,
	not_power_of_two_operand, register_is_ok_for_epilogue,
	pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
	pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
	predicates.md.
	* config/v850/v850.h (PREDICATE_CODES): Remove.
	* config/v850/v850.md: Include predicates.md.
	* config/v850/predicates.md: New.

2005-03-21  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
	(BASEVER_c, DEVPHASE_c, DATESTAMP_c)
	(BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
	(itoolsdir, itoolsdatadir): Move definition above new first use.
	(install-itoolsdirs): New rule.
	(install-mkheaders): Depend on install-itoolsdirs, not
	install-include-dir.

2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-into-ssa.c: Remove obsolete comments.

2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>

	* tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
	unrolling if -fpeel-loops is specified, too.
	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
	Remove superfluous check for flag_unroll_loops.

2005-03-21  Uros Bizjak  <uros@kss-loka.si>

	* optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
	(lrint_optab, llrint_optab): Define corresponding macros.
	* optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
	* genopinit.c (optabs): Implement lrint_optab using lrintsi2
	pattern and llrint_optab using llrintdi2 patterns.
	* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
	using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
	(expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
	BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
	flag_unsafe_math_optimizations is set.

2005-03-21  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c (combine_simplify_rtx, simplify_if_then_else,
	simplify_logical, if_then_else_cond, known_cond,
	simplify_comparison): Adjust calls to reverse_comparison.
	Don't use combine_reversed_comparison_code).
	(combine_reversed_comparison_code): Remove.
	(reversed_comparison): Using reversed_comparison_code, move it...
	* jump.c (reversed_comparison): ... here.
	* rtl.h (reversed_comparison): Add prototype.

2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c (fold_builtin): Take decomposed arguments of
	CALL_EXPR.
	* fold-const.c (fold_ternary): Update a call to fold_builtin.
	* gimplify.c (gimplify_call_expr): Likewise.
	* tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
	* tree.h: Update the prototype of fold_builtin.

2005-03-21  Paolo Bonzini  <bonzini@gnu.org>

	* rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
	* rtlhooks.c (gen_lowpart_no_emit_general): New.
	* rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
	(RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
	* simplify-rtx.c (simplify_binary_operation_1): Use it.

2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c (fold_builtin_1): Take decomposed arguments of
	CALL_EXPR.
	(fold_builtin): Update a call to fold_builtin_1.

2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>

	PR other/20564
	* gcov.c (output_lines): Only output function block summary when
	outputting branch information.
	* doc/gcov.texi: Document format of preamble and additional block
	information lines.

2005-03-21  Richard Sandiford  <rsandifo@redhat.com>

	* libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
	(LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
	the defaults false if BITS_PER_UNIT != 8.
	(SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
	(__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
	than BITS_PER_UNIT != 8.
	(L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
	(L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
	(L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
	#undefs.
	* libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
	(__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.

2005-03-20  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/20539
	* fold-const.c (fold_binary): Fix type mismatch between
	TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
	(fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
	for non-truth-valued expressions.

	* c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
	and FUNCTION_DECL in the main switch.
	<TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
	TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
	we also need to convert their operands to match.
	<TRUTH_NOT_EXPR>: Likewise.

2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>

	* c-common.c (lvalue_or_else): Replace by lvalue_error; only give
	diagnostic without checking whether an lvalue.
	* c-common.h (lvalue_p): Remove.
	(enum lvalue_use): Update comment.
	(lvalue_or_else): Replace by lvalue_error.
	* c-typeck.c (lvalue_p): Make static.
	(lvalue_or_else): New.  Call lvalue_error.

2005-03-21  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_parm_start): New function.
	(function_arg_advance): Use rs6000_parm_start.
	(function_arg, rs6000_arg_partial_bytes): Likewise.

2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>

	* c-common.c (check_case_value): Adjust comment about stripping
	NOPs.
	(handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
	* c-typeck.c (default_conversion, convert_arguments,
	build_modify_expr, convert_for_assignment, store_init_value,
	digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
	manually.  Remove inaccurate comments.

2005-03-20  Roger Sayle  <roger@eyesopen.com>
	    Joseph S. Myers  <joseph@codesourcery.com>

	* varasm.c (do_assemble_alias): Restore comment describing function.
	Annotate the target parameter as potentially unused.

2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	PR target/18551
	* config/avr/avr.c (avr_output_function_prologue): Do not use
	current_function_name() in a label, use a local label instead.

2005-03-20  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_generate_compare): Test
	flag_finite_math_only, not flag_unsafe_math_optimizations.

2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c (fold_builtin_1): Update a call to
	targetm.fold_builtin.
	* hooks.c (hook_tree_tree_bool_null): Rename to
	hook_tree_tree_tree_bool_null.  Take one more argument of type
	tree.
	* hooks.h: Update the prototype of hook_tree_tree_bool_null.
	* target-def.h (TARGET_FOLD_BUILTIN): Define it as
	hook_tree_tree_tree_bool_null.
	* target.h (gcc_target): Update the prototype of fold_builtin.
	* config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
	arguments of CALL_EXPR.
	* doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
	new prototype.

2005-03-20  Jan Hubicka  <jh@suse.cz>

	* cgraph.h (cgraph_node): Add prev_clone pointer.
	* cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
	(cgraph_clone_node): Produce doubly linked chain.

2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>

	* c-common.c (handle_aligned_attribute, check_function_sentinel,
	get_nonnull_operand, handle_sentinel_attribute,
	check_function_arguments_recurse): Do not strip NOPS from
	INTEGER_CSTs.
	* c-decl.c (check_bitfield_type_and_width, build_enumerator):
	Likewise.
	* c-format.c (get_constant): Likewise.
	* c-parser.c (c_parser_postfix_expression): Likewise.
	* c-typeck.c (set_init_index): Likewise.
	(convert_arguments): Don't check for NOP_EXPR containing integer
	constant.

2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
	fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
	Take decomposed arguments of CALL_EXPR.
	(fold_builtin_1): Update calls to the functions mentioned
	above.

2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>

	* c-decl.c (check_bitfield_type_and_width): Require bit-field
	width to have integer type.
	(build_enumerator): Require enumerator value to have integer type.

2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>

	* doc/extend.texi (__builtin_inf): Move statement about INFINITY
	to __builtin_inff.

2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>

	* c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
	std=iso9899:199x): Correct descriptions.

2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>

	* config.gcc: Consistently use solaris2.1[0-9]* instead of
	solaris2.1[0-9].

2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c (fold_builtin_memcpy): Take decomposed arguments
	of CALL_EXPR.
	(expand_builtin_memcpy, fold_builtin_1): Update calls to
	fold_builtin_memcpy.

	* builtins.c (fold_trunc_transparent_mathfn): Take decomposed
	arguments of CALL_EXPR.
	(fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
	fold_builtin_found, fold_builtin_1): Update calls to
	fold_trunc_transparent_mathfn.

2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/20493
	* fold-const.c (fold_widened_comparison): Don't optimize casts of
	function pointers on targets that require function pointer
	canonicalization.
	(fold_sign_changed_comparison): Likewise.

2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>

	* combine.c (try_combine): When changing the mode of a hard reg, make
	sure that doing so is valid.

2005-03-19  Richard Sandiford  <rsandifo@redhat.com>

	* config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
	(TARGET_HANDLE_OPTION): Override default.
	(avr_handle_option): New function.
	* config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
	(MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
	(MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
	(TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
	(TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
	(TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
	(TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
	(TARGET_OPTIONS): Delete.
	* config/avr/avr.opt: New file.

2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r-protos.h: Remove the prototypes for
	call_address_operand, symbolic_operand, seth_add3_operand,
	cmp_int16_operand, uint16_operand, reg_or_int16_operand,
	reg_or_uint16_operand, reg_or_cmp_int16_operand,
	two_insn_const_operand, move_src_operand,
	move_double_src_operand, move_dest_operand,
	eqne_comparison_operator, signed_comparison_operator,
	large_insn_p, conditional_move_operand, carry_compare_operand,
	m32r_block_immediate_operand, extend_operand,
	reg_or_eq_int16_operand, int8_operand, and
	reg_or_zero_operand.
	* config/m32r/m32r.c (call_address_operand, symbolic_operand,
	seth_add3_operand, int8_operand, cmp_int16_operand,
	uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
	reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
	reg_or_zero_operand, two_insn_const_operand, move_src_operand,
	move_double_src_operand, move_dest_operand,
	eqne_comparison_operator, signed_comparison_operator,
	extend_operand, small_insn_p, large_insn_p,
	conditional_move_operand, carry_compare_operand,
	m32r_block_immediate_operand): Move to predicates.md.
	(MAX_MOVE_BYTES): Move to m32r.h.
	* config/m32r/m32r.h (PREDICATE_CODES): Remove.
	* config/m32r/m32r.md: Include predicates.md.
	* config/m32r/predicates.md: New.

2005-03-18  James E Wilson  <wilson@specifixinc.com>

	PR c++/19769
	* dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
	origin.

2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mn10300/mn10300-protos.h: Remove the prototypes for
	call_address_operand, const_8bit_operand.
	* config/mn10300/mn10300.c (call_address_operand,
	const_8bit_operand, const_1f_operand): Move to predicates.md.
	* config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
	* config/mn10300/mn10300.md: Include predicates.md.
	* config/mn10300/predicates.md: New.

2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>

	* c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
	declarations in diagnostics and %E for identifiers, not %s.

2005-03-18  Jan Hubicka  <jh@suse.cz>
	    Dale Johannesen  <dalej@apple.com>

	* basic-block.h (scale_bbs_frequencies_int,
	scale_bbs_frequencies_gcov_type): Declare.
	* cfg.c (RDIV): New macro.
	(update_bb_frequency_for_threading): Fix.
	* basic-block.h (scale_bbs_frequencies_int,
	scale_bbs_frequencies_gcov_type): New.
	* cfgloopmanip.c (scale_bbs_frequencies): Kill.
	(scale_loop_frequencies, duplicate_loop_to_header_edge): Use
	scale_bbs_frequencies_int.
	* tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.

2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r-protos.h: Remove the prototypes for
	call_address_operand, symbolic_operand, seth_add3_operand,
	cmp_int16_operand, uint16_operand, reg_or_int16_operand,
	reg_or_uint16_operand, reg_or_cmp_int16_operand,
	two_insn_const_operand, move_src_operand,
	move_double_src_operand, move_dest_operand,
	eqne_comparison_operator, signed_comparison_operator,
	large_insn_p, conditional_move_operand, carry_compare_operand,
	m32r_block_immediate_operand, extend_operand,
	reg_or_eq_int16_operand, int8_operand, and
	reg_or_zero_operand.
	* config/m32r/m32r.c (call_address_operand, symbolic_operand,
	seth_add3_operand, int8_operand, cmp_int16_operand,
	uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
	reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
	reg_or_zero_operand, two_insn_const_operand, move_src_operand,
	move_double_src_operand, move_dest_operand,
	eqne_comparison_operator, signed_comparison_operator,
	extend_operand, small_insn_p, large_insn_p,
	conditional_move_operand, carry_compare_operand,
	m32r_block_immediate_operand): Move to predicates.md.
	(MAX_MOVE_BYTES): Move to m32r.h.
	* config/m32r/m32r.h (PREDICATE_CODES): Remove.
	* config/m32r/m32r.md: Include predicates.md.
	* config/m32r/predicates.md: New.

	* config/pa/pa-protos.h: Add prototypes for magic_milli and
	shadd_constant_p.
	* config/pa/pa.c (reg_or_0_operand, call_operand_address,
	symbolic_operand, symbolic_memory_operand,
	reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
	indexed_memory_operand, move_dest_operand, move_src_operand,
	prefetch_cc_operand, prefetch_nocc_operand,
	reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
	arith_operand, arith11_operand, pre_cint_operand,
	post_cint_operan, arith_double_operand, ireg_or_int5_operand,
	ireg_operand, int5_operand, uint5_operand, int11_operand,
	uint32_operand, arith5_operand, and_operand, ior_operand,
	lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
	pc_or_label_operand, div_operand, plus_xor_ior_operator,
	shadd_operand, movb_comparison_operator,
	cmpib_comparison_operator): Move to predicates.md.
	(magic_milli, shadd_constant_p): Make it extern.
	* config/pa/pa.h (PREDICATE_CODES): Remove.
	* config/pa/pa.md: Include predicates.md.
	* config/pa/predicates.md: New.

	* config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
	predicate.

2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>

	* hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
	config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
	config/alpha/freebsd.h, config/alpha/linux.h,
	config/alpha/netbsd.h, config/alpha/osf5.h,
	config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
	config/h8300/h8300-protos.h, config/h8300/h8300.c,
	config/h8300/h8300.h, config/ia64/unwind-ia64.c,
	doc/cppopts.texi: Update copyright.

2005-03-18  Jan Hubicka  <jh@suse.cz>

	PR middle-end/20225
	* cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
	too late.
	* varasm.c (find_decl_and_mark_needed): Mark needed only when not
	called too late.

2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
	VEC_safe_push.

2005-03-18  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c (gen_binary): Remove.
	(known_cond, simplify_shift_const, find_split_point,
	combine_simplify_rtx, simplify_if_then_else, simplify_set,
	simplify_logical, expand_field_assignment, extract_left_shift,
	force_to_mode, if_then_else_cond, apply_distributive_law,
	simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
	simplify_comparison, reversed_comparison): Replace with
	simplify_gen_binary, simplify_gen_relational or
	distribute_and_simplify_rtx.
	(distribute_and_simplify_rtx): New function.

2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
	    Paolo Bonzini  <gcc.gnu.org>

	* calls.c (setjmp_call_p, special_function_p): Update comments
	at the head of the functions.

2005-03-18  Jan Hubicka  <jh@suse.cz>

	* tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.

	* cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
	function body should be released; do not proactively release function
	bodies in non-unit-at-a-time mode.

2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
	mno-fp-ret-in-387 multilib variants.

2005-03-18  Richard Sandiford  <rsandifo@redhat.com>

	* common.opt (m): Remove.
	* opts.c (handle_option): Pass 'm' options to set_target_switch if
	table lookup fails.
	(common_handle_option): Remove OPT_m case.

2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c (fold_builtin_bitop): Take decomposed arguments
	of CALL_EXPR.
	(fold_builtin_1): Update a call to fold_builtin_bitop.

	* builtins.c (fold_builtin_signbit): Take decomposed arguments
	of CALL_EXPR.
	(fold_builtin_1): Update a call to fold_builtin_signbit.

2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>

	PR tree-optimization/20474
	* tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
	size_type of the relevant pointer. Check for COMPLETE_TYPE_P.

2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Remove prototypes for
	general_operand_src, general_operand_dst, single_one_operand,
	single_zero_operand, call_insn_operand,
	two_insn_adds_subs_operand, small_call_insn_operand,
	jump_address_operand, bit_operand, bit_memory_operand,
	stack_pointer_operand, const_int_gt_2_operand,
	const_int_ge_8_operand, const_int_qi_operand,
	const_int_hi_operand, incdec_operand, bit_operator,
	nshift_operator, eqne_operator, gtle_operator,
	gtuleu_operator, iorxor_operator.
	Add prototypes for h8sx_shift_type h8sx_classify_shift and
	h8300_ldm_stm_parallel.
	* config/h8300/h8300.c (h8sx_shift_type,): Move to
	h8300-protos.h.
	(SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
	SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
	(h8300_ldm_stm_parallel): Make it extern.
	(h8300_ldm_parallel, h8300_stm_parallel,
	h8300_return_parallel, general_operand_src,
	general_operand_dst, h8300_dst_operand, h8300_src_operand,
	nibble_operand, reg_or_nibble_operand, single_one_operand,
	single_zero_operand, call_insn_operand,
	two_insn_adds_subs_operand, small_call_insn_operand,
	jump_address_operand, bit_operand, bit_memory_operand,
	stack_pointer_operand, const_int_gt_2_operand,
	const_int_ge_8_operand, const_int_qi_operand,
	const_int_hi_operand, incdec_operand, eqne_operator,
	gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
	h8sx_binary_memory_operator, h8sx_unary_memory_operator,
	h8sx_unary_shift_operator, h8sx_binary_shift_operator,
	nshift_operator): Move to predicates.md.
	* config/h8300/h8300.h (PREDICATE_CODES): Remove.
	* config/h8300/h8300.md: Include predicates.md.
	* config/h8300/predicates.md: New.

2005-03-17  Richard Henderson  <rth@redhat.com>

	* config.gcc (ia64*-*-hpux*): Add extra_options.
	* config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
	(TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
	* config/ia64/ia64.c (ia64_fixed_range_string): Remove.
	(ia64_tls_size_string, ia64_tune_string): Remove.
	(ia64_tune): Init to PROCESSOR_ITANIUM2.
	(TARGET_DEFAULT_TARGET_FLAGS): New.
	(TARGET_HANDLE_OPTION): New.
	(ia64_override_options): Move options parsing ...
	(ia64_handle_option): ... here.  New.
	* config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
	MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
	MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
	MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
	MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
	MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
	MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
	TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
	TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
	TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
	TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
	TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
	TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
	TARGET_EARLY_STOP_BITS): Remove.
	(TARGET_ILP32): Default false.
	(TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
	(enum ia64_inline_type): New.
	(TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
	* config/ia64/ia64.md: Update for new definitions of
	TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
	* config/ia64/ia64.opt: New file.
	* config/ia64/ilp32.opt: New file.

2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/18380
	* config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.

2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
	instead of MASK_H8300S.
	* config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
	MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
	MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
	MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
	TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
	TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
	TARGET_SWITCHES): Remove.
	(TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
	TARGET_H8300SX.
	* config/h8300/h8300.opt: New.

	* config/alpha/alpha.opt, config/arc/arc.opt,
	config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
	notices.

2005-03-17  Ian Lance Taylor  <ian@airs.com>

	* gmon.c: Remove.

2005-03-17  Richard Sandiford  <rsandifo@redhat.com>

	* config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
	(arc_text_string, arc_data_string, arc_rodata_string): Make static.
	(TARGET_HANDLE_OPTION): Override default.
	(arc_handle_option): New function.
	(arc_init): Remove code to set arch_cpu_string.
	* config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
	(TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
	(TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
	(TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
	(TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
	(SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
	(arc_rodata_string, TARGET_OPTIONS): Delete.
	* config/arc/arc.opt: New file.

2005-03-17  Richard Henderson  <rth@redhat.com>

	* doc/extend.texi (Weak Pragmas): New section.
	(attribute alias): Clarify that target must be in the same
	translation unit.

2005-03-17  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.opt: New file.
	* config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
	of alpha_cpu.
	(alpha_cpu_string, alpha_tune_string, alpha_tp_string,
	alpha_fprm_string, alpha_fptm_string): Make static.
	(alpha_tls_size_string): Remove.
	(alpha_handle_option): New.
	(override_options): Update for alpha_cpu/alpha_tune split.
	(alpha_file_start): Likewise.
	(TARGET_DEFAULT_TARGET_FLAGS): New.
	(TARGET_HANDLE_OPTION): New.
	* config/alpha/alpha.h (alpha_tune): Declare.
	(MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
	MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
	MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
	TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
	TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
	TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
	MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
	MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
	TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
	TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
	(TARGET_SWITCHES, TARGET_OPTIONS): Remove.
	(TARGET_DEFAULT): Remove MASK_FP.
	(TARGET_FP): Redefined based on TARGET_SOFT_FP.
	(TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
	(alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
	alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
	alpha_tls_size_string): Remove.
	* config/alpha/alpha.md (prefetch): Use alpha_cpu.
	(attribute tune): Rename from attribute cpu.
	* config/alpha/ev4.md: Update to match.
	* config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
	* config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
	* config/alpha/linux.h (TARGET_DEFAULT): Likewise.
	* config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
	* config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
	* config/alpha/vms.h (TARGET_DEFAULT): Likewise.

2005-03-16  James E. Wilson  <wilson@specifixinc.com>

	* config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
	and return without creating new state if before_nops_num is nonzero.
	* config/ia64/ia64.md (first_insn): New attribute.
	(alloc): Set it to yes.

2005-03-16  Daniel Berlin  <dberlin@dberlin.org>

	* tree-vectorizer.c (new_vec_stmt_info): Initialize
	STMT_VINFO_SUBVARS to NULL.
	* tree-vect-analyze.c (vect_analyze_data_refs): Ditto.

2005-03-16 Dale Johannesen  <dalej@apple.com>

	* rtlanal.c (find_first_parameter_load): Rewrite to
	return actual first param load or the call if none,
	instead of first in block, when not all loads exist.

2005-03-16  Roger Sayle  <roger@eyesopen.com>

	* optabs.c (expand_copysign_absneg): Make static.
	* optabs.h (expand_copysign_absneg): Delete prototype.
	* config/rs6000/rs6000.md (copysigntf3): Delete pattern.

2005-03-16  Richard Henderson  <rth@redhat.com>

	PR middle-end/15700
	* varasm.c (struct alias_pair): Rename from struct output_def_pair.
	(alias_pairs): Rename from output_defs.
	(find_decl_and_mark_needed): Split out from assemble_alias.
	(do_assemble_alias): New.
	(assemble_output_def): Remove.
	(finish_aliases_1, finish_aliases_2): New.
	(process_pending_assemble_output_defs): Remove.
	(assemble_alias): Defer aliases for which we don't yet have a
	non-external decl for the target symbol.
	* passes.c (rest_of_decl_compilation): Register variables with cgraph.
	* cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
	* toplev.c (compile_file): Use finish_aliases_2 instead of
	process_pending_assemble_output_defs.
	* tree.h (finish_aliases_1, finish_aliases_2): Declare.
	(process_pending_assemble_output_defs): Remove.

2005-03-16  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/20489

	* tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
	for empty structures.

2005-03-16  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/20490

	* tree-ssa-pre.c (create_expression_by_pieces): Use
	force_gimple_operand on result of fold.

2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
	of closing parenthesis.

2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c (expand_movstr): Update a call to
	fold_builtin_strcpy.
	(expand_builtin_strncpy): Update a call to
	fold_builtin_strncpy.
	(fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
	arguments of CALL_EXPR.
	(fold_builtin_1): Update calls to fold_builtin_strcpy and
	fold_builtin_strncpy.
	* tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
	* tree.h: Update the prototypes of fold_builtin_strcpy and
	fold_builtin_strncpy.

2005-03-16  Steven Bosscher  <stevenb@suse.de>
	    Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
	UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
	error.

2005-03-16  Steven Bosscher  <stevenb@suse.de>

	* tree-inline.c (walk_type_fields, walk_tree,
	walk_tree_without_duplicates): Move from here...
	* tree.c: ...to here.

2005-03-15  Zack Weinberg  <zack@codesourcery.com>

	* BASE-VER, DATESTAMP, DEV-PHASE: New files.
	* Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
	(BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
	(BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
	(version): Define using $(BASEVER_c).
	(Makefile, config.status, build/gcov-iov.o): No longer depends on
	version.c.
	(version.o): Depend on version files; add custom generation command.
	(prefix.o): Define BASEVER on command line.
	(s-iov): Depend on version files; adjust command.
	(TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
	Add gcc-vers.texi.
	(gcc-vers.texi): New rule.
	(doc/%.info, doc/%.dvi): Add -I . to command line.
	(doc/gccinstall.dvi): Likewise.
	(PACKAGE): Delete.  All uses replaced with "gcc".
	* aclocal.m4: Do not include gcc-version.m4.
	* configure.ac: Do not invoke TL_AC_GCC_VERSION.
	Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
	Set is_release based on contents of DEV-PHASE.
	Set gcc_version based on contents of BASE-VER.
	Define WIN32_REGISTRY_KEY only if the user overrode the default.
	* config.in, configure: Regenerate.
	* gccbug.in: Determine version of GCC in use at runtime.
	* gcov-iov.c: Get version number and development phase from
	command line, not by including version.c.
	* intl.c: Replace all uses of PACKAGE with "gcc".
	* libada-mk.in: Delete unused "gcc_version" variable.
	* prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
	* version.c: (VERSUFFIX): New hook for redistributors; adjust
	commentary to match.
	(version_string): Put together from pieces.
	* config/alpha/x-vms: Do not use $(gcc_version).
	* config/i386/t-nwld: Likewise.
	* doc/include/gcc-common.texi: Include gcc-vers.texi for
	version-GCC and DEVELOPMENT.

2005-03-15  Roger Sayle  <roger@eyesopen.com>

	PR tree-optimization/17454
	* tree.c (tree_size): Add case for TREE_BINFO.
	* fold-const.c (fold_checksum_tree): Only clear the overloaded
	field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.

2005-03-15  Roger Sayle  <roger@eyesopen.com>

	* optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
	op1 whilst expanding the signed widenening multiply variant.

2005-03-15  Richard Sandiford  <rsandifo@redhat.com>

	* toplev.c (display_target_options): Avoid unused variable warning if
	TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
	* config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
	(mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
	(mips_isa): Initialize to MIPS_ABI_DEFAULT.
	(mips_isa_info): New variable.
	(mips_parse_cpu): Remove the first argument and leave the caller
	to report errors.
	(TARGET_HANDLE_OPTION): Override default.
	(mips_handle_option): New function.  Move option validation code from...
	(override_options): ...here.  Update calls to mips_parse_cpu.
	* config/mips/mips.h (mips_arch_string, mips_tune_string)
	(mips_isa_string, mips_abi_string, TARGET_OPTIONS)
	(SUBTARGET_TARGET_OPTIONS): Delete.
	* config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
	(mno-flush-func, mtune=): New options.

2005-03-15  Roger Sayle  <roger@eyesopen.com>
	    Richard Henderson  <rth@redhat.com>

	* real.c (c4x_single_format, c4x_extended_format): Provide values
	for signbit_ro for c4x's single and extended floating point formats.
	* optabs.c (expand_copysign): Use the floating point format's
	signbit_ro for expanding via expand_copysign_absneg, and it's
	signbit_rw field for expanding via expand_copysign_bit.

2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
	known_alignment_for_access_p.
	(known_alignment_for_access_p): New.
	(do_peeling_for_alignment): Field made int instead of bool and renamed
	to peeling_for_alignment.
	(LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
	* tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
	functionality used to be in vect_analyze_operations.
	(vect_analyze_operations): Code to determine vectorization factor was
	moved to vect_determine_vectorization_factor.
	(vect_enhance_data_refs_alignment): Update to correct alignment when it
	is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
	factor.
	(vect_analyze_loop): Call vect_determine_vectorization_factor (used to
	be part of vect_analyze_operations).
	* tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
	creating the guard condition, as the number of iterations may be
	constant.
	(slpeel_tree_peel_loop_to_edge): Use new name of
	LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
	* tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
	alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
	(vect_do_peeling_for_alignment): Use fold.
	(vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.

	(vect_update_inits_of_dr): Renamed to
	vect_update_init_of_dr.
	(vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
	(vectorizable_store): Fix assertion to use == instead of =.

2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
	call_used_regs for wCG registers.

2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
	for non-offsettable memory references to cope with outstanding reload
	replacements, take 2.

2005-03-15  Uros Bizjak  <uros@kss-loka.si>

	PR target/18668
	* config/i386/i386.h (x86_fisttp): New.
	(TARGET_FISTTP): New macro.
	* config/i386/i386.c (x86_fisttp): Set for NOCONA.
	(output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
	instruction when fisttp flag is set.
	* config/i386/i386-protos.h (output_fix_trunc): Change declaration.

	* config/i386/i386.md (type attribute): Add fisttp.
	(unit attribute): Set to i387 for fisttp type.
	(X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
	(fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
	TARGET_FISTTP.
	(fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
	Generate fisttp patterns for TARGET_FISTTP. Implement using mode
	macros.
	(fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
	patterns for TARGET_FISTTP.  Enable patterns for
	(TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
	(fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
	fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
	implement fisttp x87 insn.
	(fix_trunc*_i387_fisttp splitters): New patterns.
	(*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
	Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
	Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
	clobber.
	(fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
	Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
	Implement using mode macros. Disable patterns for TARGET_FISTTP.
	(fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
	fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
	fix_trunc<mode>_i387_with_temp. Implement using mode macros.
	Disable patterns for TARGET_FISTTP.
	(fix_trunc*_i387 splitters): Implement usign mode macros.
	(fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
	fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
	(fix_trunx*_sse peephole2s): Implement using mode macros.

2005-03-15  J"orn Rennecke <joern.rennecke@st.com>

	PR rtl-optimization/20291
	* combine.c (try_combine): If splitting fails, re-try with
	original combined pattern, i.e. before clobber stripping.

2005-03-14  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
	STACK_GROWS_DOWNWARD.

2005-03-14  Roger Sayle  <roger@eyesopen.com>

	* real.h (struct real_format): Split the signbit field into two
	two fields, signbit_ro and signbit_rw.
	* real.c (ieee_single_format, mips_single_format, ieee_double_format,
	mips_double_format, ieee_extended_motorola_format,
	ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
	ieee_extended_intel_128_format, ibm_extended_format,
	mips_extended_format, ieee_quad_format, mips_quad_format,
	vax_f_format, vax_d_format, vax_g_format, i370_single_format,
	i370_double_format, c4x_single_format, c4x_extended_format,
	real_internal_format): Update initializers for new field.
	* builtins.c (expand_builtin_signbit): Use signbit_ro field of the
	real_format structure.
	* optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
	field of the real_format structure.

2005-03-14  Daniel Berlin <dberlin@dberlin.org>

	Fix PR tree-optimization/20458

	* tree-flow-inline.h (mark_call_clobbered): Don't fiddle
	DECL_EXTERNAL on STRUCT_FIELD tags.
	(clear_call_clobbered): Ditto.
	* tree-ssa-operands.c (note_addressable): Make sure the original
	variable doesn't slip into the addressable list if we have
	subvars.
	* tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
	tags too.

2005-03-14  Geoffrey Keating  <geoffk@apple.com>

	* doc/cppopts.texi (-fexec-charset): Add concept index entry.
	(-fwide-exec-charset): Likewise.
	(-finput-charset): Likewise.
	* doc/invoke.texi (Warning Options): Document -Wnormalized=.
	* c-opts.c (c_common_handle_option): Handle -Wnormalized=.
	* c.opt (Wnormalized): New.

2005-03-14  Devang Patel  <dpatel@apple.com>

	* doc/invoke.texi: Add reference to Visibility document.

2005-03-14  Richard Sandiford  <rsandifo@redhat.com>

	* config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
	MASK_SPLIT_ADDRESSES.
	* config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
	(MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
	(MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
	(MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
	(MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
	(MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
	(MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
	(MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
	(MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
	(MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
	(MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
	(MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
	(TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
	(TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
	(TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
	(TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
	(TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
	(TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
	(TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
	(TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
	(TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
	(TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
	(TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
	(TARGET_EXPLICIT_RELOCS): Delete.
	(TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
	(TARGET_OPTIONS): Remove entry for -mfix-vr4130.
	* config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
	(override_options): Set MASK_LONG64 if -mint64 is given and no
	-mlongXX option is.  Complain about -mint64 -mlong32.
	(override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
	MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
	* config/mips/mips.opt: New file.

2005-03-14  Richard Sandiford  <rsandifo@redhat.com>

	* config.gcc (extra_options): New variable for listing option files.
	Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
	* configure.ac (extra_opt_files): New AC_SUBST variable.
	(tm_file_list, tm_include_list): Include options.h first.
	* configure: Regenerate.
	* Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
	(s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
	(s-options-h): New rule.
	(options.h): Depend on it.
	(TEXI_GCCINT_FILES): Add options.texi.
	* hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
	* hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
	* target.h (gcc_target): Add default_target_flags and handle_option.
	* target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
	(TARGET_HANDLE_OPTION): New macros.
	(TARGET_INITIALIZER): Include them.
	* opt-functions.awk (opt_args, nth_arg): New functions.
	(switch_flags): Handle the "Target" flag.
	(var_args): Delete.
	(var_name): Use opt_args and nth_arg.
	(var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
	* opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
	macros for the "Mask" and "InverseMask" options.
	* opts.h (cl_var_cond): New enum.
	(cl_option): Replace the "has_set_value" and "set_value" fields with
	"var_cond" and "var_value".
	(CL_TARGET): New macro.
	(option_enabled, print_filtered_help): Declare.
	(decode_options): Move definition.
	* opts.c (handle_option): Search for the original option before
	removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
	var_cond and var_value fields.  Use targetm.handle_option to handle
	target options.
	(decode_options): Set target_flags to targetm.default_target_flags.
	(print_filtered_help): Make global.  Handle CL_TARGET.
	(option_enabled): New function.
	* toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
	(display_target_options, set_target_switch, print_switch_values)
	(default_pch_valid_p): Guard uses of target_switches with
	#ifdef TARGET_SWITCHES.  Also...
	(display_target_options): Display the CL_TARGET entries in cl_options.
	(set_target_option): Don't complain about the "" option when
	TARGET_SWITCHES is undefined.
	(print_switch_values): Use option_enabled.
	(default_pch_valid_p): Check cl_options[] when looking for something
	that has changed the value of target_flags.
	* c.opt: Remove documentation from top of file.
	* doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
	* doc/sourecebuild.texi: Refer to the new options documentation
	instead of c.opt.  Document machine-specific .opt files.
	* doc/tm.texi (target_flags): Say that this variable is declared
	by options.h.
	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
	(TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
	an alternative.
	* doc/options.texi: New file.

2005-03-14  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/18628
	* cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
	register.

2005-03-14  Alexandre Oliva  <aoliva@redhat.com>

	PR c++/20280
	* gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
	temporary variable of pointer type if an lvalues is required.
	(gimplify_modify_expr_rhs): Request an rvalue from it.
	(gimplify_expr): Pass fallback on.

2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>

	* cfgbuild.c: Update comments.

2005-03-14  Roger Sayle  <roger@eyesopen.com>

	PR rtl-optimization/17236
	* optabs.c (expand_doubleword_mult): New helper function split out
	from expand_binop.  Permute the order in which instructions are
	emitted to minimize the number of simultaneously live registers.
	(expand_binop): Call expand_doubleword_mult to synthesize a double
	word multiplication.

2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>

	* basic-block.h: Update the prototypes of cached_make_edge and
	rtl_make_eh_edge.
	* cfg.c (cached_make_edge): Take edge_cache representing one
	row of the adjacency matrix of edges.
	* cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
	(make_edges): Initialize edge_cache to represent one row of
	the adjacency matrix of edges.

2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
	New functions.
	(tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
	Remove unused removed_phis variable.
	(conditional_replacement): Use build1/build2.
	(abs_replacement): Use last_and_only_stmt and build1/build2.

2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>

	* builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
	ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
	* builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
	(BUILT_IN_PREFETCH): Set the NOVOPS attribute.
	* c-common.c (handle_novops_attribute): New function.
	(c_common_attribute_table): Add "no vops" entry.
	* c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
	* calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
	* tree-ssa-operands.c (get_call_expr_operands): Do not
	create virtual operands for calls with ECF_NOVOPS flag.
	* tree.h (DECL_IS_NOVOPS): New macro.
	(struct tree_decl): Add novops_flag.
	(ECF_NOVOPS): New constant.

2005-03-14  Uros Bizjak  <uros@kss-loka.si>

	PR target/17688
	* config/i386/i386.c (x86_use_himode_fiop): New.
	(x86_use_simode_fiop): Rename from x86_use_fiop.
	* config/i386/i386.h (x86_use_himode_fiop): Declare.
	(TARGET_USE_HIMODE_FIOP): New.
	(x86_use_simode_fiop): Rename from x86_use_fiop.
	(TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.

	* config/i386/i386.md (X87MODEI12): New mode macro define.
	(*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
	to implement x87 FP compare with HImode input operands.
	(*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
	Use X87MODEI12 mode macro to handle HImode input operands.
	(*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
	*fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
	Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
	*fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
	macro to implement x87 operators with HImode input operands.
	(fop splitters): Use X87MODEI12 mode macro to handle HImode
	input operands.

2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
	integer_zerop.
	* tree-gimple.c (is_gimple_min_invariant): Consider overflowed
	constants invariant.

2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>

	* basic-block.h (BB_VISITED): Removed.
	* cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.

2005-03-14  Falk Hueffner  <falk@debian.org>

	PR bootstrap/20424
	* config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.

2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>

	* ggc-zone.c: Fix comment typos.

	* alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
	stringpool.c, config/mips/mips-protos.h: Update copyright.

2005-03-14  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
	throughout with its typedef, "rtx".
	* config/rs6000/rs6000.c: Likewise.  Formatting fixes.
	(rs6000_tls_symbol_ref_1): Remove inline keyword.
	* config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
	regs in comment to match code.

2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>

	* except.c (check_handled): Make it static.
	* except.h: Remove the corresponding prototype.

	* function.c (get_func_frame_size): Make it static.
	* function.h: Remove the corresponding type.

	* regclass.c (reg_class_superclasses, reg_class_subclasses):
	Make them static.
	* hard-reg-set.h: Remove the corresponding declarations.

	* tree-cfg.c (verify_stmts): Check that
	bb_for_stmt (stmt) == bb for every PHI node and statement.

2005-03-14  Alan Modra  <amodra@bigpond.net.au>

	* config.gcc: Remove excess indentation.
	(powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.

2005-03-13  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/19331
	* tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
	* fold-const.c (fold_sign_changed_comparison): Likewise.
	(fold_binary): Optimize comparisons against widened operands if
	the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.

2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (struct_value_alias_set): New global variable.
	(sparc_override_options): Initialize it.
	(sparc_struct_value_rtx): Set it on the MEM to be returned.

2005-03-13  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
	(reg_or_none500mem_operand): New predicate.
	(zero_reg_mem_operand): New predicate.
	* config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
	to reg_or_none500mem_operand.
	(extendsfdf2_fpr): Add MEM alternative.
	(extenddftf2_internal): Change operand2 predicate to
	zero_reg_mem_operand.

2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* ggc-zone.c: Rewritten.

	* alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
	if there are none.
	* configure.ac: Define GGC_ZONE for --with-gc=zone.
	* config.in: Regenerated.
	* configure: Regenerated.
	* gengtype.c (write_types_process_field, write_func_for_structure):
	Pass new argument to gt_pch_note_object.
	* ggc-common.c (struct ptr_data): Add TYPE.
	(gt_pch_note_object): Take TYPE argument and save it.
	(call_count): Update call to ggc_pch_count_object.
	(call_alloc): Update call to ggc_pch_alloc_object.
	(gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
	file.
	* ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
	* ggc-page.c (rtl_zone, tree_zone, garbage_zone)
	(ggc_alloc_zone_stat): Delete.
	(ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
	* ggc.h (gt_pch_note_object, ggc_pch_count_object)
	(ggc_pch_alloc_object): Update prototypes.
	(garbage_zone): Delete.
	(tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
	GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
	pointers.
	(tree_id_zone): New variable.
	(ggc_alloc_cleared_zone): Remove unused.
	(ggc_alloc_zone): Define.
	(ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
	* rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
	ggc_alloc_zone_stat.
	* stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
	* tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
	(tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
	(make_node_stat): Likewise.  Use tree_id_zone.

2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
	    Joseph S. Myers  <joseph@codesourcery.com>

	* configure.ac: Check for MIPS TLS.
	* configure: Regenerated.
	* config/mips/mips-protos.h (enum mips_symbol_type): Add
	SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
	SYMBOL_GOTTPREL, and SYMBOL_TPREL.
	* config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
	(TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
	(mips_classify_symbol, mips_symbolic_constant_p)
	(mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
	(mips_tls_operand_p, mips_call_tls_get_addr)
	(mips_legitimize_tls_address, mips_cannot_force_const_mem)
	(mips_tls_symbol_ref_1): New functions.
	(mips_legitimize_address, mips_legitimize_const_move): Call
	mips_legitimize_tls_address.
	(override_options): Handle V1_REG and TLS symbols.  Disable TLS
	for MIPS16.
	* config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
	(REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
	(mips_char_to_class): Document V1_REG.
	(HAVE_AS_TLS): Provide default.
	* config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
	constants.
	(load_got<mode>): Renamed from *load_got<mode>.  Allow when
	!TARGET_ABICALLS.
	(tls_get_tp_<mode>): New instruction.

2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.ac: Update checks for target tools.
	* configure: Regenerated.

2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.

2005-03-13  Roger Sayle  <roger@eyesopen.com>

	* expmed.c (expand_mult): Use synthetic multiplication sequences for
	more classes of DImode multiplication by constant.  Allow both
	multiplication by small negative constants (by performing a
	multiplication by a positive constant and negating the result) and
	multiplications by large powers of two, by using a left shift.

2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-into-ssa.c (find_idf): Speed up by putting the indexes
	of basic blocks into work_stack.

	* builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
	config/mips/vr.h: Update copyright.

	* c-decl.c (c_init_decl_processing): Remove useless calls to
	build_function_type.

	* builtins.c (fold_trunc_transparent_mathfn,
	fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
	fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
	fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
	fold_builtin_strcpy, fold_builtin_strncpy,
	fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
	TREE_TYPE (exp).

	* builtins.c (expand_builtin_mathfn_3): Remove local variable
	before_call.

	* lambda-code.c (lambda_compute_auxillary_space): Remove local
	variable determinant.

	* tree-cfg.c (group_case_labels): Remove local variable type.

	* tree-ssa-live.c (build_tree_conflict_graph): Remove local
	variable ann.

	* tree-ssa-phiopt.c (value_replacement): Remove local variable
	result.

2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>

	PR target/18251
	* config/avr/avr.md (movmemhi): Rewrite as RTL loop.
	(*movmemqi_insn): Delete.
	(*movmemhi): Delete.

2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c (fold_builtin_classify): Take decomposed
	arguments of CALL_EXPR.
	(fold_builtin_1): Update a call to fold_builtin_classify.

2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/20402
	* c-parser.c (c_parser_struct_or_union_specifier): Don't fall
	through into call to parser_xref_tag after parse error.
	(c_parser_struct_declaration): Consistently return NULL_TREE on
	error.

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

	* tree-flow-inline.h (ref_contains_array_ref): New function.
	(lookup_subvars_for_var): Ditto.
	(get_subvars_for_var): Ditto.
	(var_can_have_subvars): Ditto.

	* tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
	(struct subvar): New type.

	* tree-dfa.c (okay_component_ref_for_subvars): New function.

	* tree-optimize.c (init_tree_optimization_passes): Call
	pass_create_structure_vars.

	* tree-ssa-alias.c: Include vec.h.
	(init_alias_info): Don't auto-clear call clobbered on struct-field
	tags.
	(compute_flow_insensitive_aliasing): Handle subvars.
	(group_aliases): Handle STRUCT_FIELD aliases.
	(setup_pointers_and_addressables): Ditto.
	Don't mark variables non-addressable if they still have
	addressable subvars.
	Also mark subvars addressable when the real variable is marked
	addressable.
	(add_pointed_to_var): Try to prune the pointed-to set by only
	pointing to subvars when possible.
	Otherwise, make sure we set addresses_needed and pt_vars to
	properly include subvars.
	(bitpos_of_field): New function.
	(push_fields_onto_fieldstack): Ditto.
	(get_or_create_used_part_for): Ditto.
	(create_overlap_variables_for): Ditto.
	(find_used_portions): Ditto.
	(create_structure_vars): Ditto.
	(pass_create_structure_vars): New structure.

	* tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
	(get_expr_operands): Handle subvars.  Also try to turn
	COMPONENT_REF accesses into must-defs now that we can accurately
	portray it.
	(note_addressable): Try to only mark as addressable those subvars
	we know a COMPONENT_REF touches.
	(overlap_subvar): New function.

	* tree-vect-analyze.c (vect_object_analysis): Add new parameter.
	Handle subvar storing.
	(vect_address_analysis): Update caller of vect_object_analysis.

	* tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.

	* tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
	(STMT_VINFO_SUBVARS): New macro.

	* common.opts: add flag_tree_salias.

	* opts.c (decode_options): flag_tree_salias defaults to on.

	* doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.

	* doc/tree-ssa.texi: Document structural alias analysis.

2005-03-12  Steven Bosscher  <stevenb@suse.de>

	* tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
	* tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	(get_expr_operands): Likewise for ERROR_MARK.

2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
	var.

	* tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
	removed_phis.

	* tree-ssa-pre.c (compute_avail): Remove local variable val.
	(mark_operand_necessary): Remove local variable ver.

	* tree-vect-transform.c (vect_get_new_vect_var): Remove local
	variable prefix_len.

	* value-prof.c (mod_subtract_transform): Remove local variable
	value.

	* builtins.c (fold_builtin_exponent): Take decomposed
	arguments of CALL_EXPR.
	(fold_builtin_1): Update a call to fold_builtin_exponent.

	* builtins.c (fold_builtin_logarithm): Take decomposed
	arguments of CALL_EXPR.
	(fold_builtin_1): Update a call to fold_builtin_logarithm.

	* c-decl.c (c_init_decl_processing): Remove local variables
	ptr_ftype_void and ptr_ftype_ptr.

	* gimplify.c (gimplify_expr): Remove local variables r0 and
	r1.

	* reg-stack.c (move_for_stack_reg): Remove local variable
	push_insn.
	(compare_for_stack_reg): Remove local variable flags_user.
	(convert_regs_1): Remove local variable deleted.

	* tree-if-conv.c (tree_if_convert_cond_expr): Remove local
	variable new_cond.
	(combine_blocks): Remove local variables exits and new_e.

	* tree-inline.c (expand_call_inline): Remove local variable
	decl.

	* tree-ssa-live.c (create_ssa_var_map,
	calculate_live_on_entry): Remove local variable snn.

2005-03-12  Geoffrey Keating  <geoffk@apple.com>

	* c-lex.c (c_lex_with_flags): Add parameter to call to
	cpp_spell_token.

2005-03-11  Per Bothner  <per@bothner.com>

	* c-tree.h (struct c_declarator): New id_loc field.
	* c-pragma.h (c_lex_with_flags): Take position reference.
	* c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
	iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
	(c_lex): Pass dummy location to c_lex_with_flags.
	* c-parser.c (c_lex_one_token): Set c_token's location using
	c_lex_with_flags, instead of input_location, which might be "ahead".
	(c_parser_direct_declarator): Set declarator's id_loc from
	c_token's id_loc.
	* c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
	declarator's id_loc, rather than probably-imprecise input_location.
	(build_id_declarator): Initialize c_declarator's id_loc field.

2005-03-11  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/20419
	* builtins.c (expand_builtin_signbit): Force the signbit's word
	into an integer register to avoid SUBREGs of floating point modes.

2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>

	* cfglayout.c, loop-doloop.c, profile.c, target-def.h,
	target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
	config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.

2005-03-11  David Edelsohn  <edelsohn@gnu.org>

	PR rtl-optimization/20306
	* expr.c (emit_move_complex): Set try_int false if mode is
	MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
	emit_block_move if try_int is true.

2005-03-11  Richard Henderson  <rth@redhat.com>

	PR target/20415
	* config/i386/mmx.md (vec_dupv4hi): Fix predicate.
	* config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
	to match.

2005-03-11  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (mips_fix_vr4130_string): Declare.
	(TARGET_FIX_VR4130): New macro.
	(TARGET_OPTIONS): Add -mfix-vr4130.
	(ISA_HAS_MACCHI): New macro.
	(ASM_SPEC): Add -mfix-vr4130.
	* config/mips/mips.c (mips_fix_vr4130_string): New variable.
	(override_options): Handle mips_fix_vr4130_string.
	(mips_avoid_hazards): Clear all_noreorder_p
	if we're working around VR4130 errata and the macc alternatives
	are not available.
	* config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
	(*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
	* config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
	(MULTILIB_DEFAULTS): Remove leading "march=".
	(DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
	if no architecture option is given.
	* config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
	VR4130 multilibs.
	(MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
	* doc/invoke.texi: Document -mfix-vr4130.

2005-03-11  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (override_options): Only warn about -mint64
	deprecation if TARGET_INT64.

2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
	ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
	ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
	are non-specific regarding the nonnull parameter positions.
	(ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
	ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
	ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
	ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.

	* builtins.def: Use the non-specific "nonnull" attibute lists.

2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>

	* basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
	single_pred_edge, single_succ, single_pred): Improve comments.

2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>

	* basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
	single_pred_edge, single_succ, single_pred): New inline functions.
	* bb-reorder.c (rotate_loop, find_traces_1_round,
	add_labels_and_missing_jumps, fix_up_fall_thru_edges,
	duplicate_computed_gotos): Use the single_succ/pred functions.
	* cfganal.c (forwarder_block_p): Ditto.
	* cfgbuild.c (compute_outgoing_frequencies): Ditto.
	* cfgcleanup.c (try_simplify_condjump, try_forward_edges,
	outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
	merge_seq_blocks): Ditto.
	* cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
	* cfglayout.c (fixup_reorder_chain): Ditto.
	* cfgloop.c (mark_single_exit_loops, update_latch_info,
	canonicalize_loop_headers, verify_loop_structure): Ditto.
	* cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
	mfb_update_loops, create_preheader, force_single_succ_latches,
	create_loop_notes): Ditto.
	* cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
	force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
	commit_one_edge_insertion, purge_dead_edges,
	cfg_layout_can_merge_blocks_p): Ditto.
	* except.c (sjlj_emit_function_enter): Ditto.
	* flow.c (init_propagate_block_info): Ditto.
	* function.c (thread_prologue_and_epilogue_insns): Ditto.
	* gcse.c (find_implicit_sets, bypass_conditional_jumps,
	insert_insn_end_bb): Ditto.
	* ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
	find_if_case_2): Ditto.
	* lambda-code.c (perfect_nestify): Ditto.
	* lcm.c (optimize_mode_switching): Ditto.
	* loop-doloop.c (doloop_modify): Ditto.
	* loop-init.c (loop_optimizer_init): Ditto.
	* loop-iv.c (simplify_using_initial_values): Ditto.
	* loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
	* loop-unswitch.c (unswitch_loop): Ditto.
	* modulo-sched.c (generate_prolog_epilog): Ditto.
	* predict.c (combine_predictions_for_insn, estimate_probability,
	tree_estimate_probability, last_basic_block_p,
	estimate_bb_frequencies): Ditto.
	* profile.c (branch_prob): Ditto.
	* regrename.c (copyprop_hardreg_forward): Ditto.
	* sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
	* tracer.c (layout_superblocks): Ditto.
	* tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
	cfg_remove_useless_stmts_bb, cleanup_control_flow,
	cleanup_control_expr_graph, disband_implicit_edges,
	tree_find_edge_insert_loc, bsi_commit_edge_inserts,
	tree_verify_flow_info, tree_make_forwarder_block,
	tree_forwarder_block_p, remove_forwarder_block,
	remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
	* tree-if-conv.c (tree_if_conversion): Ditto.
	* tree-mudflap.c (mf_build_check_statement_for): Ditto.
	* tree-ssa-dce.c (remove_dead_stmt): Ditto.
	* tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
	copy_loop_headers): Ditto.
	* tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
	* tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
	* tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
	lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
	* tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
	* tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
	* tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
	* tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
	* tree-ssa-threadupdate.c (redirect_edges): Ditto.
	* tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
	eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
	* tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
	* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
	* tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
	slpeel_add_loop_guard): Ditto.

2005-03-11  James A. Morrison  <phython@gcc.gnu.org>

	PR tree-optimization/15784
	* fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
	and -1 - A to ~A.

	* stmt.c (expand_case): Don't change index_type.  Convert minval
	to the proper type.

	PR tree-optimization/20130
	* fold-const.c (fold): Fold x * -1 into -x.

2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR rtl-optimization/20331
	* rtlanal.c (modified_between_p): Check its address first for MEM.
	(modified_in_p): Likewise.

2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>

	* config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.

2005-03-10  Steven Bosscher  <stevenb@suse.de>

	* expr.c (expand_expr_real_1): If possible, use a conditional
	move for expanding MIN_EXPR and MAX_EXPR.
	Use temp for moving around rtx-en.

2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>

	PR rtl-opt/20412
	* simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
	correct mode.

2005-03-10  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (expand_builtin_signbit): Extend to handle floating
	point modes wider than the largest integer type, using the
	operand_subword_force function to obtain the signbit's word.

2005-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/20322
	* combine.c (try_combine): If recog_for_combine added CLOBBERs
	to NEWI2PAT, fail to combine if they are used by NEWPAT.

2005-03-10  Aldy Hernandez  <aldyh@redhat.com>

	* doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.

2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-outof-ssa.c (analyze_edges_for_bb): Make the return
	type void.
	(perform_edge_inserts): Unconditionally call
	free_dominator_info.

	* tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.

2005-03-10  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.

2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>

	* bitmap.c (bitmap_copy): Remove manual loop unrolling.

	* value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
	gcc_unreachable.
	(rtl_register_value_prof_hooks,
	tree_value_profile_transformations,
	tree_register_value_prof_hooks): Likewise.
	* var-tracking.c (stack_adjust_offset_pre_post,
	variable_htab_free, variable_union, dataflow_set_different_2,
	count_uses, variable_was_changed, set_frame_base_location,
	set_variable_part, emit_note_insn_var_location, vt_emit_notes,
	vt_add_function_parameters): Likewise.
	* varasm.c (named_section_real, named_section, make_decl_rtl,
	asm_emit_uninitialised, assemble_integer, decode_addr_const,
	const_hash_1, compare_constant, copy_constant, force_const_mem,
	output_constant_pool_2, output_constant_pool_1, output_constant,
	output_constructor, make_decl_one_only, decl_tls_model,
	default_no_named_section, default_elf_select_section_1,
	default_unique_section_1): Likewise.
	* vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
	* vmsdbgout.c (addr_const_to_string): Likewise.

	PR c++/20375
	* function.c (struct assign_parm_data_one): Remove last_named
	field.
	(assign_parm_find_data_types): Don't determine last_named.
	Reorder named_parm determination.
	(assign_parms): Only setup varargs on the last non-varadic
	parameter.

2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>

	* config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
	sda base address on medium model.

2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>

	* Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
	* cfgloop.c (flow_loop_nodes_find): Export.
	* cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
	Declare.
	* cfgloopmanip.c (fix_loop_structure): New function.
	* predict.c (predict_loops): Clean up the loops information.
	* tree-cfg.c (cleanup_tree_cfg_loop): New function.
	(tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
	loop structure.
	* tree-flow.h (cleanup_tree_cfg_loop): Declare.
	(rewrite_into_loop_closed_ssa): Declaration changed.
	* tree-loop-linear.c (linear_transform_loops): Add argument to
	rewrite_into_loop_closed_ssa call.
	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
	* tree-ssa-loop-im.c (move_computations): Ditto.
	* tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
	* tree-vectorizer.c (vectorize_loops): Ditto.
	* tree-optimize.c: Include cfgloop.h.
	(execute_todo): Choose whether to call cleanup_tree_cfg or
	cleanup_tree_cfg_loop.
	* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
	(tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
	* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
	cleanup_tree_cfg_loop call.
	* tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
	(find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
	work on part of cfg.

2005-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR inline-asm/20314
	* gimplify.c (gimplify_asm_expr): Handle input/output constraints
	with multiple alternatives.

	* stmt.c (parse_output_constraint): Fix a typo.

2005-03-09  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
	assembly directive instead of deprecated "no-generics".

2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
	for non-offsettable memory references to cope with outstanding reload
	replacements.
	* config/s390/s390.md ("reload_outti"): Call find_replacement to
	avoid losing outstanding address reloads.
	("reload_outdi", "reload_outdf"): Likewise.

2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
	code.  Add more cbrt transformations.

2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.

2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c (fold_unary, fold_binary, fold_ternary): Return
	NULL_TREE when a given tree is not simplified.
	(fold): Return the original tree when any of the functions
	mentioned above NULL_TREE.

	* fold-const.c (fold_unary, fold_binary): Take decomposed
	arguments, code, type, op0, and op1 in case of fold_binary.
	(fold): Update calls to fold_unary and fold_binary.

2005-03-09  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (fold_builtin_unordered_cmp): Change prototype to take
	a fndecl and an arglist instead of a CALL_EXPR, exp.

2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>

	* cfglayout.c (fixup_reorder_chain): Remove old_bb.

	* cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.

	* expr.c (expand_assignment): Remove orig_to_rtx.

	* fold-const.c (int_const_binop): Remove no_overflow.

	* ifcvt.c (noce_emit_move_insn): Remove inmode.

	* loop-iv.c (get_biv_step_1): Remove lhs.

	* loop-unroll.c (analyze_insns_in_loop): Remove preheader.

	* real.c (real_nan): Remove neg.

	* function.c (thread_prologue_and_epilogue_insns): Remove i
	and newinsn.

	* tree-data-ref.c (array_base_name_differ_p): Remove ta and
	tb.

	* tree-eh.c (tree_could_trap_p): Remove idx.

	* tree-into-ssa.c (ann): Remove ann.

	* tree-outof-ssa.c (num_nodes): Remove num_nodes.

	* tree-sra.c (decide_block_copy): Remove inst_count.

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

	* tree-ssa-loop-im.c (lhs): Remove.

	* cfgbuild.c (state, STATE, SET_STATE,
	BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
	make_edges.
	(make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
	(find_basic_blocks): Set the state of each basic block to
	BLOCK_NEW.

2005-03-08  Jeff Law  <law@redhat.com>

	* tree-cfg.c (cleanup_control_flow): If removal of a computed
	goto results in the removal of edges in the CFG, then we need
	to recompute dominators.

2005-03-09  Ben Elliston  <bje@au.ibm.com>

	* c-common.c (c_do_switch_warnings): Comment fix.

2005-03-08  Julian Brown  <julian@codesourcery.com>

	* Patch from 2005-03-08 reverted for causing regressions and
	ppc-darwin bootstrap failure.

2005-03-08  Fariborz Jahanian <fjahanian@apple.com>

	* config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
	Define the real function for ppc-darwin.
	* c-typeck.c (convert_arguments): Check for target-specific
	invalid argument call to unprototyped function.
	* target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
	New Macro.
	* target.h (invalid_arg_for_unprototyped_fn): New field
	in struct calls.
	* targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
	default target hook.
	* targhooks.h (hook_invalid_arg_for_unprototyped_fn):
	Declare.

2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>

	* c-typeck.c (constructor_stack, constructor_range_stack,
	initializer_stack): Make them static.

	* cfg.c (rbi_pool): Make it static.

	* gimple-low.c (lower_stmt_body): Make it static.
	* tree-flow.h: Remove the corresponding prototype.  Don't
	declare lower_data.

	* sched-deps.c (cache_size): Make it static.

	* stor-layout.c (lang_adjust_rli): Make it static.

2005-03-08  Julian Brown  <julian@codesourcery.com>

	* config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
	from being used for symbols with vague linkage when
	HAVE_GAS_COMDAT_GROUP is true.

2005-03-08  J"orn Rennecke <joern.rennecke@st.com>

	* jump.c (invert_jump_1): Don't call redirect_jump_1 with
	nlabel == JUMP_LABEL (jump).

2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>

	* c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
	gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
	tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
	tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.

2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>

	PR c/14411
	* calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
	* c-common.c (handle_returns_twice): New function.
	(c_common_attribute_table): Declare eturns_twice' attribute.
	* doc/extend.texi: Document eturns_twice' attribute.
	* tree.h (DECL_IS_RETURNS_TWICE): New macro.
	(struct tree_decl): Add returns_twice_flag.

2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-phiopt.c: Fix a comment typo.

	* c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
	loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
	config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
	copyright.

2005-03-08  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (code_for_builtin): Replace special-case
	builtin codes with ctzdi2, clzdi2, popcountdi2.
	(struct alpha_builtin_def): Add is_const.
	(zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
	(alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
	(alpha_init_builtins): Init them.  Set nothrow and const attributes
	on builtins.
	(alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
	alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
	alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
	alpha_fold_vector_minmax, alpha_fold_builtin_perr,
	alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
	alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
	alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
	alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
	(TARGET_FOLD_BUILTIN): New.
	* config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
	(UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
	(ffsdi2): Use ctz.
	(cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.

2005-03-08  Ira Rosen  <irar@il.ibm.com>

	PR tree-optimization/20122
	* tree-vect-analyze.c (vect_object_analysis): Analyze initial
	condition of access function instead of base.

2005-03-07  Jeff Law  <law@redhat.com>
	    Steven Bosscher  <stevenb@suse.de>

	* tree-cfg.c (find_taken_edge_computed_goto): New function.
	(find_taken_edge): Call find_taken_edge_computed_goto as
	appropriate.  Allow any gimple invariant rather than just
	INTEGER_CST for VAL.
	(cleanup_control_flow): Cleanup a computed goto which has turned
	into a simple goto.
	(tree_merge_blocks): If block B has any forced labels, move
	them to the start of block A.
	* tree-ssa-dom.c (thread_across_edge): Allow threading across
	computed gotos as well.
	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
	removal of unnecessary computed gotos too.
	(lookup_redirection_data): Fix type of INSERT argument.  Callers
	updated.

2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-phiopt.c: Update copyright.  Fix indentations.
	Remove trailing spaces.

	* gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
	unshare_all_trees): Make them static.
	* tree-gimple.h: Remove the corresponding prototypes.

	* diagnostic.h: Remove unused prototype
	debug_output_buffer.
	* modulo-sched.c: Remove unused prototype
	set_row_column_for_ps.

	* tree-ssa-phiopt.c (tree_ssa_phiopt,
	replace_phi_edge_with_variable): Remove unused variable i.

2005-03-07  Per Bothner  <per@bothner.com>

	* tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.

2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/17671
	* tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
	bbs on the COND_EXPR instead of the PHI_NODEs.
	(candidate_bb_for_phi_optimization): Remove.
	(replace_phi_with_stmt): Rename to ...
	(replace_phi_edge_with_variable): this and change so that we
	replace the phi argument instead of removing the PHI.
	(conditional_replacement): Change so we deal with PHI with more
	than two arguments.
	(value_replacement): Likewise.
	(abs_replacement): Likewise.

2005-03-07  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
	output_e500_flip_gt_bit.

	* config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
	as bit 31.
	(rs6000_generate_compare): Fix logic to look at the correct bits.
	(output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
	Look at GT bit.
	(rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
	gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
	gen_move_from_CR_gt_bit.

	* config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
	("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
	(UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.

	* config/rs6000/spe.md ("e500_cr_ior_compare"): New.
	(E500_CR_IOR_COMPARE): New constant.

2005-03-08  Earl Chew <earl_chew@agilent.com>
	    David Billinghurst <David.Billinghurst@riotinto.com>

	* config/i386/host-cygwin.c: New file to support precompiled
	headers on cygwin
	* config/i386/x-cygwin: Use host-cygwin.c on cygwin host
	* config.host: Use above files for cygwin host.

2005-03-07  David Edelsohn  <edelsohn@gnu.org>

	* fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
	ordering ops from earlier change.

2005-03-07  Per Bothner  <per@bothner.com>

	Various fixes to allow us to again build if --enable-mapped-location:
	* c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
	unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
	* tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
	local variable loc. Change logic appropriately.
	* tree-vect-transform.c (vect_finish_stmt_generation): Use
	EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
	* c-parser.c (c_parser_for_statement): Initialize loc variable.
	* tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
	DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.

2005-03-07  Richard Sandiford  <rsandifo@redhat.com>

	PR rtl-optimization/19683
	* reload1.c (choose_reload_regs): Pass the number of bits, not the
	number of bytes, to smallest_int_for_mode.  Fix arguments to
	REG_CANNOT_CHANGE_MODE_P.

2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* reorg.c (relax_delay_slots): Check that the jump is
	conditional before trying to invert it.

2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>

	* bb-reorder.c (max_entry_frequency, max_entry_frequency):
	Make them static.

	* calls (stack_arg_under_construction): Make it static.

	* flow.c (regs_live_at_setjmp): Make it static.
	* flow.h: Remove the corresponding prototype.

	* reload1.c (reload_startobj, reload_firstobj,
	something_needs_operands_changed, reload_inherited,
	reload_inheritance_insn, reload_override_in,
	reload_spill_index): Make them static.

	* recog.c (verify_changes): Make it static.
	* recog.h: Remove the corresponding prototype.

	* cfgbuild.c (find_sub_basic_blocks): Remove.
	* basic-block.h: Remove the corresponding prototype.
	* cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
	in comments.
	* doc/cfg.texi: Don't mention find_sub_basic_blocks.

	* tree-ssa-operands.c (check_build_stmt): Remove.

	* stor-layout.c (set_alignment): Remove.
	* tree.h: Remove the corresponding prototype.

	* tree-ssa-pre.c (has_abnormal_preds): Make it static.

	* tree-ssa-dce.c (control_dependence_map,
	visited_control_parents): Make them static.

	* cfghooks.c (verify_flow_info): Remove local variable
	num_bb_notes.

	* cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
	last_bb_seen.

	* loop-unswitch.c (unswitch_loop): Remove local variable src.

2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>

	* config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.

2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>

	* config/ia64/hpux.h (LINK_SPEC): Add -z.
	* config/ia64/ia64.c (ia64_function_value): Return a REG not a
	PARALLEL for an empty structure.

2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c (fold_binary): Remove handling of RANGE_EXPR.

	* fold-const.c (fold_binary): Unroll the very first "for"
	loop.

2005-03-06  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/predicates.md (branch_comparison_operator): Remove
	redundant match_code test.
	(scc_comparison_operator): Swap match_operand and match_code
	tests.
	(branch_positive_comparison_operator): Same.
	(trap_comparison_operator): Use comparison_operator and swap with
	match_code test.

2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	PR target/20288
	* config/avr/avr.c (print_operand): Add 'p' and 'r'.
	(out_movhi_r_mr): Read low byte of volatile MEM first.
	(out_movhi_mr_r): Write high byte of volatile MEM first.

2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>

	* cselib.c (reg_values, reg_values_size): Make them static.

	* cse.c (cse_reg_info_table): Make it static.

	* fold-const.c (fold_unary): Use build1 instead of copy_node.

2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>

	* cse.c (find_best_addr): Use canon_for_address.

2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (fold_rtx_subreg, fold_rtx_mem): New.
	(fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
	SUBREG and MEM, respectively.

	* fold-const.c (fold_binary): Use code instead of t.

	* fold-const.c (optimize_minmax_comparison): Take decomposed
	arguments code, type, op0, and op1 instead of t.
	(fold_binary): Update a call to optimize_minmax_comparison.

	* fold-const.c (fold_range_test): Take decomposed arguments
	code, type, op0, and op1 instead of t.
	(fold_binary): Update a call to fold_range_test.

	* fold-const.c (fold_binary_op_with_conditional_arg): Take
	decomposed arguments code, type, op0, and op1 instead of t.
	(fold_binary): Update a call to fold_range_test.

2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c (fold_binary): Avoid directly using the original
	expression t as much as possible.

2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>

	* c-semantics.c (build_stmt): Use TYPE_P instead of
	IS_NON_TYPE_CODE_CLASS.
	* tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
	(NON_TYPE_CHECK): Use TYPE_P instead of
	IS_NON_TYPE_CODE_CLASS.

	* fold-const.c (fold): Remove handling of binary expressions.

2005-03-05  James A. Morrison  <phython@gcc.gnu.org>

	* doc/c-tree.texi: Wrap comments in @r{}.
	* doc/cpp.texi: Likewise.
	* doc/cppinternals.texi: Likewise.
	* doc/extend.texi: Likewise.
	* doc/md.texi: Likewise.
	* doc/objc.texi: Likewise.
	* doc/sourcebuild.texi: Likewise.
	* doc/tm.texi: Likewise.
	* doc/tree-ssa.texi

2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>

	* predict.c (apply_return_prediction): Standardize PHI chain
	walking.
	* tree-ssa.c (ssa_redirect_edge): Likewise.

	* genattrtab.c, genemit.c, genoutput.c, genrecog.c,
	gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
	Update copyright.

	* tree-phinodes.c (remove_phi_node): Drop the last argument.
	* tree-flow.h: Adjust the prototype for remove_phi_node.
	* lambda-code.c (perfect_nestify): Adjust a call to
	remove_phi_node.
	* tree-cfg.c
	(remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
	* tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
	Likewise.
	* tree-ssa-dce.c (remove_dead_phis): Likewise.
	* tree-ssa-loop-ivopts.c (remove_statement): Likewise.
	* tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
	* tree-ssa.c (kill_redundant_phi_nodes): Likewise.

	* combine.c (simplify_and_const_int): Use gen_int_mode instead
	of GEN_INT (trunc_int_for_mode (...)).
	* loop-iv.c (iv_number_of_iterations): Likewise.
	* postreload.c (reload_cse_move2add): Likewise.
	* simplify-rtx.c (simplify_const_unary_operation,
	simplify_const_binary_operation): Likewise.
	* stor-layout.c (get_mode_bounds): Likewise.

	* fold-const.c (fold_binary): New.
	(fold): Call fold_binary on binary expressions.

2005-03-05  Richard Sandiford  <rsandifo@redhat.com>

	* doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
	* config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
	(TARGET_SWITCHES): Add -msym32 and -mno-sym32.
	(ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
	(ASM_SPEC): Pass down -msym32 and -mno-sym32.

2005-03-04  Devang Patel  <dpatel@apple.com>

	PR tree-optimization/18815
	* tree-if-conv.c (combine_blocks): Adjust loop header edges for
	loops with zero exit edges.

2005-03-04  Devang Patel  <dpatel@apple.com>

	* doc/invoke.texi: Remove reference to webpage that does not exist.

2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
	    Joseph S. Myers  <joseph@codesourcery.com>

	PR c++/19797
	* pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
	(ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
	* pa-protos.h (pa_hpux_asm_output_external): Add prototype.
	* pa.c (get_plabel): Change argument to symbol_ref.  Call
	maybe_get_identifier instead of get_identifier.
	(pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
	(struct deferred_plabel): Replace name field with symbol field.
	(TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
	ASM_OUTPUT_EXTERNAL_REAL is defined.
	(output_global_address): Use output_addr_const for output of all
	symbol_refs.
	(output_deferred_plabels): Use symbol_ref instead of name for address
	output.
	* pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
	ASM_OUTPUT_SYMBOL_REF): New macros.
	* som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
	comment.
	(ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
	label.

2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>

	* config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
	*-*-hpux11.[1-9]*, not just for *-*-hpux11.11.

2005-03-04  Jeff Law  <law@redhat.com>

	* basic-block.h (rediscover_loops_after_threading): Declare.
	* tree-ssa-dom.c: Include cfgloop.h.
	(tree_ssa_dominator_optimize): Discover loops and some basic
	properties.  Remove forwarder blocks recreated by loop header
	canonicalization.  Also mark backedges in the CFG.
	* tree-ssa-threadupdate.c: Include cfgloop.h
	(rediscover_loops_after_threading): Define.
	(struct local_info): New field, JUMP_THREADED.
	(prune_undesirable_thread_requests): New function.
	(redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
	then record that fact for the callers of redirct_edges.
	(thread_block): If BB has incoming backedges, then call
	prune_undesirable_thraed_requests.  Note when we are
	going to have to rediscover loop information.  Return a
	boolean indicating if any jumps were threaded.
	(thread_through_all_blocks): Bubble up boolean indicating
	if any jumps were threaded.
	* Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
	(tree-ssa-threadupdate.o): Similarly.

2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c (fold_ternary): Unroll the "for" loop to
	extract operands.

2005-03-04  Andrew Haley  <aph@redhat.com>

	* unwind-dw2-fde-glibc.c (struct
	unw_eh_callback_data.check_cache): New field.
	(frame_hdr_cache): New.
	(_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
	Cache frame header info.

2005-03-04  Richard Sandiford  <rsandifo@redhat.com>

	* rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
	(print_c_condition): Declare.
	* read-rtl.c (ptr_loc): New structure.
	(ptr_locs, ptr_loc_obstack, joined_conditions)
	(joined_conditions_obstack): New variables.
	(leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
	(get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
	(join_c_conditions, print_c_condition): New functions.
	(apply_macro_to_string): Associate the new string with the same
	source location as the old one.
	(add_condition_to_string): Use join_c_conditions.
	(read_string): Use set_rtx_ptr_loc to record a filename and line
	number for the string.
	(read_rtx): Initialize the new variables above.
	* genattrtab.c (write_test_expr, write_attr_value): Use
	print_c_condition.
	* genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
	comment above the GCC_VERSION check.
	(write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
	Inline the definition of MAYBE_EVAL.
	* genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
	* genoutput.c (process_template): Likewise.
	* genpreds.c (write_predicate_subfunction): Likewise.
	(write_predicate_expr): Use print_c_condition.
	* genrecog.c (write_cond): Likewise.
	* gensupport.c (process_rtx): Use join_c_conditions to join the
	conditions of a define_insn_and_split.  Record a source location
	for the string after the "&&".
	(alter_test_for_insn): Use join_c_conditions.

2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>

	Revert for now:
	2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
	PR tree-optimization/15784
	* fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
	and -1 - A to ~A.

2005-03-04  Ben Elliston  <bje@au.ibm.com>

	* gcc.c (option_map): Add --coverage.
	(LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
	(cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
	* config/darwin.h: Pass -lgcov for `coverage'.
	* doc/invoke.texi (Debugging Options): Document --coverage.

2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>

	* gcse.c (bypass_block): Use find_edge wherever possible.

2005-03-03  Daniel Berlin <dberlin@dbrelin.org>

	Fix PR debug/20253

	* c-opts.c (c_common_parse_file): Call start_source_file
	and end_source_file at the approriate times.

	* dwarf2out.c (dwarf2out_finish): Don't auto-end
	the main file, it will be done for us now.

2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c (fold_ternary): New.
	(fold): Call fold_ternary on ternary expressions.  Remove
	handling of ternary expressions.

2005-03-03  James A. Morrison  <phython@gcc.gnu.org>

	PR tree-optimization/15784
	* fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
	and -1 - A to ~A.

2005-03-03  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/predicates.md (branch_comparison_operator):
	Convert from C block to conditional format.

2005-03-03  Jan Hubicka  <jh@suse.cz>

	* tree-dfa.c (add_referenced_var): Don't walk initializer of external
	and non-constant public variables.

2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
	with LABEL_EXPR.

	* cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
	EDGE_I.

	* tree-phinodes.c (remove_phi_node): Clean up by factoring out
	calls to release_ssa_name and release_phi_node.

	* fold-const.c (fold): Remove handling of unary expressions.

	* fold-const.c (fold_unary): Avoid directly using the original
	expression t as much as possible.

2005-03-03  Roger Sayle  <roger@eyesopen.com>
	    Andrew Pinski  <pinskia@physics.uc.edu>

	* jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
	RETURN rtx, and not a LABEL_REF containing a NULL pointer.

2005-03-03  Hans-Peter Nilsson  <hp@axis.com>

	Describe special registers SRP and MOF as allocatable registers.
	* config/cris/cris.c (cris_md_asm_clobbers): New function.
	(TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
	(cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
	TARGET_HAS_MUL_INSNS.
	(cris_print_operand) <case 'd'>: New case.
	<case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
	* config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
	define.
	(FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
	(REG_ALLOC_ORDER): Update for MOF.
	(enum reg_class): New members MOF_REGS, GENERAL_REGS and
	SPECIAL_REGS.
	(GENERAL_REGS): No longer a define of ALL_REGS.
	(REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
	(PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
	Adjust accordingly.
	(CRIS_SPECIAL_REGS_CONTENTS): New macro.
	(REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
	(SECONDARY_RELOAD_CLASS): Define.
	(STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
	(FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
	(ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
	(STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
	(REGISTER_MOVE_COST): Define.
	(PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
	* config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
	(CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
	(CRIS_MOF_REGNUM): New define_constants.
	("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
	special registers.
	("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
	New patterns.
	("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
	("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
	Adjust for MOF being properly described as a register.
	(indir_to_reg_split): Name this split.  Conditionalize on the
	destination register being a general register.
	(movei): Conditionalize on on operands 0 and 1 having the same
	register class.

2005-03-03  Alan Modra  <amodra@bigpond.net.au>

	PR target/20277
	* config/rs6000/rs6000.c (rs6000_override_options): Don't allow
	-mcpu to override any other explicitly given flags.

2005-03-02  J"orn Rennecke <joern.rennecke@st.com>

	* recog.c (verify_changes, confirm_change_group): New functions,
	broken out of apply_change_group.
	(apply_change_group): Use them.
	* recog.h (verify_change, confirm_change_group): Declare.
	* rtl.h (redirect_jump_2): Declare.
	* jump.c (redirect_exp, invert_exp): Delete.
	(invert_exp_1): Take second parameter.  Return value.  Changed caller.
	(redirect_jump_2): New function, broken out of redirect_jump.
	(redirect_jump): Use redirect_jump_1 and redirect_jump_2.
	(invert_jump): Use invert_jump_1 and redirect_jump_2.
	* ifcvt.c (dead_or_predicable): Use redirect_jump_2.

2005-03-02  Geoffrey Keating  <geoffk@apple.com>

	* varasm.c (named_section): Use xstrdup rather than doing it by
	hand.

	* config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.

2005-03-02  Devang Patel  <dpatel@apple.com>

	Undo PR tree-optimization/18815 fix.

2005-03-02  Devang Patel  <dpatel@apple.com>

	PR tree-optimization/18815
	* tree-if-conv.c (combine_blocks): Adjust loop header edges for
	loops with zero exit edges.

2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>

	* cfg.c (connect_src, connect_dest, disconnect_src,
	disconnct_dest): New.
	(unchecked_make_edge, remove_edge, redirect_edge_succ,
	redirect_edge_pred): Use the new functions.

	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
	free_dominance_info only when needed.

2005-03-02  David Edelsohn  <edelsohn@gnu.org>

	PR target/20276
	* config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
	(reg_or_sub_cint64_operand): Same.

2005-03-02  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
	CFG_ALTERED in the main DOM iteration loop.

2005-03-02  Mark Mitchell  <mark@codesourcery.com>

	PR c++/19916
	* varasm.c (initializer_constant_valid_p): Allow conversions
	between OFFSET_TYPEs.  Tidy.

2005-03-02  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.md ("return"): Remove epilogue delay list
	sanity check.

2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
	for Thumb.
	* config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.

2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>

	* cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
	loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
	config/m68k/m68k.c, config/mips/mips.h,
	config/rs6000/rs6000-protos.h, doc/contrib.texi,
	doc/include/gcc-common.texi: Update copyright.

	PR middle-end/18029 and PR middle-end/18030
	* expr.c (optimize_bitfield_assignment_op): Add a special case
	to handle BIT_IOR_EXPR and BIT_XOR_EXPR.

	* fold-const.c (fold_unary): New.
	(fold): Call fold_unary on unary expressions.

2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>

	* cgraph.h (struct cgraph_edge): Add prev_caller and
	prev_callee fields.
	(cgraph_node_remove_callees): Export.
	* cgraph.c (cgraph_create_edge): Initialize prev_caller
	and prev_callee.
	(cgraph_edge_remove_callee): New function.
	(cgraph_edge_remove_caller): Likewise.
	(cgraph_remove_edge): Use.
	(cgraph_redirect_edge_callee): Likewise.
	(cgraph_node_remove_callees): New function.
	(cgraph_node_remove_callers): Likewise.
	(cgraph_remove_node): Use.
	* tree-optimize.c (tree_rest_of_compilation): Use
	cgraph_node_remove_callees instead of manual loop.
	* cgraphunit.c (cgraph_finalize_function): Likewise.
	(cgraph_expand_function): Likewise.
	(cgraph_remove_unreachable_nodes): Likewise.

2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/8927
	* c-tree.h (undeclared_variable, build_external_ref): Add extra
	argument.
	* c-decl.c (undeclared_variable): Take location as argument.
	* c-typeck.c (build_external_ref): Likewise.
	* c-parser.c (c_parser_postfix_expression): Pass location of
	identifier to build_external_ref.

2005-03-01  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
	CCEQ mode for branch_positive_comparison_operator test.
	* config/rs6000/predicates (branch_comparison_operator): Revert to
	define_predicate.
	(scc_comparison_operator): Same.
	(branch_positive_comparison_operator): Same.

2005-03-01  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_eligible_for_epilogue_delay)
	(cris_delay_slots_for_epilogue): Remove.
	(save_last): Move into cris_target_asm_function_epilogue.
	(cris_target_asm_function_epilogue): Remove tests for file being
	NULL.
	* config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
	(cris_delay_slots_for_epilogue): Remove prototypes.
	* config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
	(ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.

2005-03-01  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/predicates.md (branch_comparison_operator): Change
	to define_special_predicate.
	(scc_comparison_operator): Same.
	(branch_positive_comparison_operator): Same.

2005-03-01  Daniel Berlin <dberlin@dberlin.org>

	* Makefile.in (tree-ssa-sink.o): New.
	(OBJS-common): Add tree-ssa-sink.o.
	* common.opt: Add -ftree-sink
	* opts.c (decode_options): flag_tree_sink is set at O1 or higher.
	* timevar.def (TV_TREE_SINK): new timevar.
	* tree-flow.h (is_hidden_global_store): Prototype.
	* tree-optimize.c (init_tree_optimization_passes): Add
	pass_sink_code.
	* tree-pass.h (pass_sink_code): New.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
	for non-obvious global store store to is_hidden_global_store, and
	call that new function.
	* tree-ssa-sink.c: New file.
	* doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
	* doc/passes.texi: Document forward store motion.
	* testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
	* testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
	* testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
	* testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test

2005-03-01  Per Bothner  <per@bothner.com>

	* diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
	and we have a non-zero column-number, add it to the message.
	Also factor out the diagnostic_kind_text.

2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>

	* cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
	flow_loop_pre_header_scan, flow_loop_pre_header_find,
	flow_loop_scan): Removed.
	(flow_loop_dump): Do not dump removed fields.
	(flow_loop_free): Do not free removed fields.
	(flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
	(loop_exit_edge_p): New function.
	* cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
	num_pre_header_edges, entry_edges, num_entries, exit_edges,
	num_exits, exits_doms.
	(LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
	LOOP_EDGES, LOOP_ALL): Removed.
	(flow_loop_scan): Declaration removed.
	(loop_exit_edge_p, mark_loop_exit_edges): Declare.
	* cfgloopmanip.c (create_loop_notes): Do not pass flags to
	flow_loops_find.
	* ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
	(if_convert): Call flow_loops_find and flow_loops_free
	when calling mark_loop_exit_edges.
	* cfgloopanal.c (mark_loop_exit_edges): Moved from
	ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
	free_dominance_info calls.
	* loop-init.c (flow_loops_find): Ditto.
	* passes.c (rest_of_handle_branch_prob): Ditto.
	* lambda-code.c (perfect_nestify): Do not call flow_loops_find.
	* loop-unroll.c (analyze_insns_in_loop): Do not use
	EDGE_LOOP_EXIT.
	* predict.c (predict_loops): Do not call flow_loop_scan.
	Use get_loop_exit_edges.
	(tree_estimate_probability): Do not pass flags to flow_loops_find.
	* tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
	Do not use EDGE_LOOP_EXIT.
	(tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
	to bb_with_exit_edge_p.
	(if_convertible_loop_p): Do not call flow_loop_scan.  Use
	loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
	to bb_with_exit_edge_p.
	(combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
	EDGE_LOOP_EXIT.
	* tree-loop-linear.c (linear_transform_loops): Do not call
	flow_loop_scan.  Use loop->single_exit.
	* tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
	(vect_analyze_loop_form): Do not call flow_loop_scan.
	* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
	loop->single_exit.
	(vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
	loop->single_exit.
	* tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
	slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
	slpeel_tree_duplicate_loop_to_edge_cfg,
	slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
	Use loop_preheader_edge and loop->single_exit.  Do not call
	flow_loop_scan.

2005-03-01  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.c (thumb_find_work_register): Check all of the
	argument registers to see if they are free, and a couple of
	special cases where the last argument register but can be proved
	to be available during the function's prologue.
	(print_multi_reg, arm_compute_save_reg0_reg12_mask,
	output_return_instruction, emit_multi_reg_push, thumb_pushpop,
	thumb_unexpanded_epilogue): Use unsigned long as the type for the
	register bit-mask.
	(thumb_compute_save_reg_mask): Likewise.  Also use
	thumb_find_work_register() to ensure that there is agreement about
	which work register is going to be used in the prologue.
	(thumb_output_function_prologue): Use unsigned long as the type
	for the register bit-mask.  Also delay pushing the link register if
	other high registers are going to be pushed.
	(thumb_compute_save_reg_mask, emit_multi_reg_push,
	print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
	redundant prototypes.

2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>

	PR target/19819
	* pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
	and after reload in REG+REG indexed addresses without REG_POINTER
	set in the base and not set in the index.

2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
	Don't undefine here.
	(HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
	(NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
	(TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
	(LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
	LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
	Delete.
	* config.gcc (sh*-*-linux*): Use config/linux.h.

2005-02-28  Dale Johannesen  <dalej@apple.com>
	    Stan Shebs  <shebs@apple.com>

	Rewrite of 64-bit Darwin structure-by-value pass/return.
	* config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
	intoffset, use_stack, named.
	* config/rs6000/rs6000.c (rs6000_darwin64_function_arg): Remove.
	(rs6000_darwin64_record_arg_advance_flush): New.
	(rs6000_darwin64_record_arg_advance_recurse): New.
	(rs6000_darwin64_record_arg_flush): New.
	(rs6000_darwin64_record_arg_recurse): New.
	(rs6000_darwin64_record_arg): New.
	(rs6000_return_in_memory): Remove AGGREGATE_TYPE_P check.
	(function_arg_boundary): Handle 128-bit aligned structs.
	(function_arg_advance): Rewrite darwin64 struct handling.
	(function_arg): Call rs6000_darwin64_record_arg.
	(function_arg_partial_nregs): Handle darwin64 structs.
	(rs6000_darwin64_function_value): Remove.
	(rs6000_function_value): Call rs6000_darwin64_record_arg.

2005-02-28  Roger Sayle  <roger@eyesopen.com>

	PR tree-optimization/20216
	* tree-chrec.c (tree_fold_factorial): Delete.
	(tree_fold_binomial): Change argument list to take a return type
	and change the type of K to unsigned int.  Rewrite to avoid explicit
	evaluation of factorials, and (recursively) calling fold to perform
	compile-time arithmetic.  Return NULL on (internal) overflow.
	(chrec_evaluate): Change type of K to an unsigned int.  Avoid
	calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
	if any intermediate calculation overflows.
	(chrec_apply): Update call to chrec_evaluate.

2005-02-28  James E Wilson  <wilson@specifixinc.com>

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

2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/20245
	* c-parser.c (c_parser_compound_statement): Return error_mark_node
	instead of NULL_TREE on error.

2005-02-28  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
	(EASY_VECTOR_15_ADD_SELF): Remove.
	(num_insns_constant_wide): Not static.
	(validate_condition_mode): Not static.
	(toc_relative_expr_p): Not static.
	(legitimate_indirect_address_p): Not static.
	(macho_lo_sum_memory_operand): Not static.
	(invalid_e500_subreg): Not static.
	(easy_vector_same): Not static.
	(easy_vector_splat_const): Not static.
	(RS6000_SYMBOL_REF_TLS_P): Remove.
	(any_operand): Delete.
	(any_parallel_operand): Delete.
	(count_register_operand): Delete.
	(altivec_register_operand): Delete.
	(xer_operand): Delete.
	(s8bit_cint_operand): Delete.
	(short_cint_operand): Delete.
	(u_short_cint_operand): Delete.
	(non_short_cint_operand): Delete.
	(exact_log2_cint_operand): Delete.
	(gpc_reg_operand): Delete.
	(cc_reg_operand): Delete.
	(cc_reg_not_cr0_operand): Delete.
	(reg_or_short_operand): Delete.
	(reg_or_neg_short_operand): Delete.
	(reg_or_aligned_short_operand): Delete.
	(reg_or_u_short_operand): Delete.
	(reg_or_cint_operand): Delete.
	(reg_or_arith_cint_operand): Delete.
	(reg_or_add_cint64_operand): Delete.
	(reg_or_sub_cint64_operand): Delete.
	(reg_or_logical_cint_operand): Delete.
	(got_operand): Delete.
	(got_no_const_operand): Delete.
	(easy_fp_constant): Delete.
	(easy_vector_constant): Delete.
	(easy_vector_constant_add_self): Delete.
	(zero_constant): Delete.
	(zero_fp_constant): Delete.
	(volatile_mem_operand): Delete.
	(offsettable_mem_operand): Delete.
	(mem_or_easy_const_operand): Delete.
	(add_operand): Delete.
	(non_add_cint_operand): Delete.
	(logical_operand): Delete.
	(non_logical_cint_operand): Delete.
	(mask_operand): Delete.
	(mask_operand_wrap): Delete.
	(mask64_operand): Delete.
	(mask64_2_operand): Delete.
	(and64_operand): Delete.
	(and64_2_operand): Delete.
	(and_operand): Delete.
	(reg_or_mem_operand): Delete.
	(lwa_operand): Delete.
	(symbol_ref_operand): Delete.
	(call_operand): Delete.
	(current_file_function_operand): Delete.
	(input_operand): Delete.
	(rs6000_nonimmediate_operand): Delete.
	(rs6000_tls_symbol_ref): Delete.
	(save_world_operation): Delete.
	(restore_world_operation): Delete.
	(load_multiple_operation): Delete.
	(store_multiple_operation): Delete.
	(vrsave_operation): Delete.
	(mfcr_operation): Delete.
	(mtcrf_operation): Delete.
	(lmw_operation): Delete.
	(stmw_operation): Delete.
	(branch_comparison_operator): Delete.
	(branch_positive_comparison_operator): Delete.
	(scc_comparison_operator): Delete.
	(trap_comparison_operator): Delete.
	(boolean_operator): Delete.
	(boolean_or_operator): Delete.
	(min_max_operator): Delete.
	* config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
	(EASY_VECTOR_15): Moved to here.
	(EASY_VECTOR_15_ADD_SELF): Move to here.
	(PREDICATE_CODES): Delete.
	* config/rs6000/rs6000-protos.h: Delete predicate functions.
	Declare functions no longer static.
	* config/rs6000/predicates.md: New.
	* config/rs6000/rs6000.md: Include predicates.md

2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>

	* calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
	(emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
	REG_ALWAYS_RETURN.
	* cfgrtl.c (need_fake_edge_p): Likewise.
	* combine.c (distribute_notes): Likewise.
	* emit-rtl.c (try_split): Likewise.
	* recog.c (peephole2_opimize): Likewise.
	* reg-notes.def (ALWAYS_RETURN): Remove.
	* rtl.h (LCT_ALWAYS_RETURN): Remove.
	* tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
	* tree.h (ECF_ALWAYS_RETURN): Remove.

2005-02-28  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/19874
	* tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
	between different machine modes is never a "useless" conversion.

2005-02-28  Geert Bosch  <bosch@gnat.com>

	PR ada/15977
	* doc/contrib.texi: List contributors for Ada front end

2005-02-28 Paolo Bonzini <bonzini@gnu.org>

	* simplify-rtx.c (simplify_unary_operation_1,
	simplify_const_unary_operation): New, extracted from...
	(simplify_unary_operation): ... this one.
	(simplify_binary_operation_1,
	simplify_const_binary_operation): New, extracted from...
	(simplify_binary_operation): ... this one.
	* rtl.h (simplify_const_unary_operation,
	simplify_const_binary_operation): Add prototypes.

2005-02-28  Julian Brown  <julian@codesourcery.com>

	* config/elfos.h: Revert my patch from 2005-02-25 since it broke
	building libjava and caused PR regression/20228.

2005-02-28  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/17383
	* Makefile.in (host_subdir): New.
	(build_objdir): New.  Replace ../$(build_subdir) with it throughout.
	* configure: Regenerate.

2005-02-27  Zack Weinberg  <zack@codesourcery.com>

	* config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
	* config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
	installation directory first.

2005-02-28  Hans-Peter Nilsson  <hp@axis.com>

	PR target/19065.
	* config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
	not including (reg). Do not check for reg being CRIS_PC_REGNUM.
	(EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
	* config/cris/cris.md: Tweak comments referring to Q.
	("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
	("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
	("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
	("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
	("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
	Insert spaces in constraints to align alternatives vertically for
	readability.
	("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
	operand 1: "M".

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

	PR rtl-optimization/17728
	* pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
	operand 0 from general_operand to move_dest_operand.

2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
	instead of trying to save and restore TREE_SYMBOL_REFERENCED.
	* pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
	(ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.

2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
	* configure: Regenerate.
	* libada-mk.in: Remove CC; rename
	cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.

2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/20188
	* tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
	for the lhs, also walk over the tree.  Likewise for rhs.

2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-dom.c (simple_iv_increment_p): New function.
	(simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
	Do not propagate value of iv before increment over the increment.

2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>

	* c-parser.c: New file.
	* c-parse.in: Remove.
	* Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
	Remove.
	(c-parser.o): Add dependencies.
	(C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
	maintainer-clean, TAGS): Update.
	* c-config-lang.in (gtfiles): Update.
	* gengtype-lex.l: Don't handle "@@".
	* stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
	objc_build_synchronized, objc_begin_try_stmt,
	objc_begin_catch_clause, objc_finish_catch_clause,
	objc_build_finally_clause, objc_finish_try_stmt): New.
	* c-tree.h (struct c_declspecs): Add declspecs_seen_p and
	type_seen_p.
	(c_parse_init): Update comment.
	* c-decl.c (c_init_decl_processing): Update comment.
	(build_null_declspecs, declspecs_add_qual, declspecs_add_type,
	declspecs_add_scspec, declspecs_add_attrs): Initialize and update
	new c_declspecs members.

2005-02-25  Julian Brown  <julian@codesourcery.com>

	* config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
	from being used for symbols with vague linkage when
	HAVE_GAS_COMDAT_GROUP is true.

2005-02-25  Mark Mitchell  <mark@codesourcery.com>

	* doc/include/gcc-common.texi (version-GCC): Update to 4.1.

2005-02-25  Steve Ellcey  <sje@cup.hp.com>

	PR target/19930
	* doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
	(LIBGCC2_HAS_DF_MODE): New.
	(LIBGCC2_HAS_XF_MODE): New.
	(LIBGCC2_HAS_TF_MODE): New.
	* libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
	(LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
	* libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
	(LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
	(LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
	* config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
	and add _fixtfdi, _fixunstfdi, _floatditf
	* lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
	L_fixunstfdi, L_floatditf.
	* config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
	(LIBGCC2_HAS_TF_MODE): Define.

2005-02-25  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/20204
	* tree-into-ssa.c (insert_phi_nodes_for): Do not use
	REWRITE_THIS_STMT markers on PHI nodes.
	(rewrite_initialize_block): Likewise.

2005-02-25  Mark Mitchell  <mark@codesourcery.com>

	* version.c (version_string): Update to 4.1.

2005-02-25  Paolo Carlini  <pcarlini@suse.de>

	* doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
	Clarify that the alternative way doesn't work in GNU C++.

2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/19937
	* tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
	to the type of the induction variable.

2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR rtl-optimization/20117
	* bb-reorder.c (duplicate_computed_gotos): Don't duplicate
	the block including noncopyable insn.

2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (delete_trivially_dead_insns): Speed up by minimizing
	calls to find_reg_note.

2005-02-24  Richard Henderson  <rth@redhat.com>

	PR tree-opt/20127
	* tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
	the type.

2005-02-24  Fariborz Jahanian <fjahanian@apple.com>

	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
	vector types if to use base reg for misaligned non-word ld/std.

2005-02-24  Hans-Peter Nilsson  <hp@axis.com>

	PR target/14619
	* config/cris/cris.c (cris_target_asm_function_prologue): Create
	dwarf2 label manually and put it after, not before the prologue.

2005-02-24  David Edelsohn  <edelsohn@gnu.org>

	PR target/19019
	* reload.c (operands_match_p): Only increment register number for
	SCALAR_INT_MODE_P modes in multiple hard registers.

	* config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
	Fix formatting.

2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* ChangeLog.5: Fix log message typo(s).
	* ChangeLog.7: Likewise.
	* ChangeLog.tree-ssa: Likewise.
	* cfgexpand.c: Fix comment typo(s).
	* conflict.c: Likewise.
	* defaults.h: Likewise.
	* dwarf2out.c: Likewise.
	* gcse.c: Likewise.
	* ggc-page.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-ssa-dom.c: Likewise.

2005-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR target/19019
	* mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
	* config/rs6000/darwin-ldouble.c: Only use the .symver directives
	if SHARED is defined.

	PR target/20196
	* config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
	allow splitting only if operands 0 and 3 don't overlap.

2005-02-24  Richard Henderson  <rth@redhat.com>

	PR middle-end/19953
	* builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
	(fold_builtin_1): Call them.
	* fold-const.c (fold_complex_mult_parts): Split out from ...
	(fold_complex_mult): ... here.  Fix typo in both imaginary case.
	(fold_complex_div_parts, fold_complex_div): New.
	(fold): Use them.
	* tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.

2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* tree-ssa-ccp.c (visit_assignment): Verify that result of
	VIEW_CONVERT_EXPR is_gimple_min_invariant.

	* print-tree.c (print_node_brief): Print LABEL_DECL_UID.
	(print_node): Likewise.
	Print TYPE_SIZES_GIMPLIFIED.

2005-02-24  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
	("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
	operands as commutative in constraints.

2005-02-24  Diego Novillo  <dnovillo@redhat.com>

	* tree-into-ssa.c: Re-organize internal functions.

2005-02-24  Richard Henderson  <rth@redhat.com>

	PR middle-end/18902
	* c-opts.c (c_common_post_options): Set flag_complex_method to 2
	for c99.
	* common.opt (fcx-limited-range): New.
	* opts.c (set_fast_math_flags): Set flag_cx_limited_range.
	* toplev.c (flag_complex_method): Initialize to 1.
	(process_options): Set flag_complex_method to 0 if
	flag_cx_limited_range.
	* doc/invoke.texi (-fcx-limited-range): New.

2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (delete_trivially_dead_insns): Speed up by using
	NEXT_INSN and PREV_INSN directly instead of next_real_insn and
	prev_real_insn.

2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>

	* config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
	functions when -mid-shared-library is being used.

2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>

	* doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
	(LINK_LIBGCC_SPECIAL_1): Don't mention it.
	* gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
	* system.h: Poison LINK_LIBGCC_SPECIAL.

2005-02-23  James E Wilson  <wilson@specifixinc.com>

	* gengtype.c (note_insn_name): Make 1 element larger.

2005-02-23  Roger Sayle  <roger@eyesopen.com>

	PR target/20018
	PR rtl-optimization/20097
	* simplify-rtx.c (simplify_relational_operation_1): Avoid creating
	BImode SUBREGs of SImode registers which confuse the ia64 backend.

2005-02-23  David Edelsohn  <edelsohn@gnu.org>

	* t-aix43 (SHLIB_INSTALL): Create directory for shared library.
	* t-aix52 (SHLIB_INSTALL): Same.

2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>

	* genpreds.c: Update copyright.

2005-02-23  Michael Beach  <michaelb@ieee.org>

	PR target/20159
	* config/sparc/t-elf (startup files): Assemble with CPP.

2005-02-23  Paolo Bonzini  <bonzini@gnu.org>

	* genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
	(write_predicate_expr): Likewise.

2005-02-22  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/20100
	PR tree-optimization/20115
	* tree-optimize.c (init_tree_optimization_passes): Remove
	pass_maybe_create_global_var.
	* tree-pass.h (pass_maybe_create_global_var): Remove.
	* tree-ssa-alias.c (aliases_computed_p): Declare.
	(struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
	(count_calls_and_maybe_create_global_var): Remove.
	(pass_maybe_create_global_var): Remove.
	(init_alias_info): Do not declare aliases_computed_p.
	(maybe_create_global_var): If the function contains no
	call-clobbered variables and a mix of pure/const and regular
	function calls, create .GLOBAL_VAR.
	Mark all call-clobbered variables for renaming.
	(merge_pointed_to_info): Update comment.
	(add_pointed_to_var): Likewise.
	(is_escape_site): Likewise.
	Accept struct alias_info * instead of size_t *.
	Update all users.
	Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
	as necessary.
	* tree-ssa-operands.c (get_call_expr_operands): If
	ALIASES_COMPUTED_P is false, do not add call-clobbering
	operands.
	* tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
	(delete_tree_ssa): Likewise.

2005-02-22  James E Wilson  <wilson@specifixinc.com>

	* toplev.c (backend_init): Don't call init_adjust_machine_modes here.
	(do_compile): Do call it here.

2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>

	PR rtl-optimization/20017.
	* passes.c (rest_of_handle_combine, rest_of_handle_cse,
	rest_of_handle_cse2, rest_of_handle_gcse): Call
	delete_dead_jumptables immediately before calling cleanup_cfg.

2005-02-22  Devang Patel  <dpatel@apple.com>

	PR 19952
	* tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
	all labels

2005-02-22  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix.h (WINT_TYPE): Define.

2005-02-22  Stan Shebs  <shebs@apple.com>

	* config/rs6000/rs6000.c (rs6000_override_options): Default to
	natural alignment for 64-bit Darwin.
	(rs6000_parse_alignment_option): Warn about uses of -malign-power
	on 64-bit Darwin.
	* doc/invoke.texi: Document this.

2005-02-22  DJ Delorie  <dj@redhat.com>

	* c-common.c (c_common_type_for_mode): Pass the mode's precision
	to make_[un]signed_type, not the mode itself.

2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>

	* cfg.c (cached_make_edge): Call make_edge if edge cache is
	not available.  Use tail calls wherever possible.
	(make_edge): Call unchecked_make_edge to create an edge.

	* tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
	(coalesce_ssa_name): Don't check for
	SSANORM_USE_COALESCE_LIST.
	(rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.

2005-02-22  Diego Novillo  <dnovillo@redhat.com>

	* tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
	(rewrite_into_ssa): ... here.

2005-02-21  Alexandre Oliva  <aoliva@redhat.com>

	PR tree-optimization/19786
	* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
	tag to another's may-alias bitmap when adding to the other's list.

2005-02-21  DJ Delorie  <dj@redhat.com>

	* tree-ssa-loop-ivopts.c (computation_cost): Start register
	numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
	registers in unsupported ways.
	* expmed.c (init_expmed): Likewise.

2005-02-21  Stan Cox  <scox@redhat.com>

	* config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.

2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-cfg.c (fold_cond_expr_cond): New.
	(make_edges): Call fold_cond_expr_cond.
	(find_taken_edge): Accept nothing but INTEGER_CST.
	(find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
	and 1.
	(find_taken_edge_switch_expr): Remove a check for INTEGER_CST.

	* flow.c (delete_dead_jumptables): Speed up by scanning insns
	that do not belong to any basic block.

2005-02-21  Jeff Law  <law@redhat.com>

	* cfganal.c (find_unreachable_blocks): Manually CSE load of
	e->dest.

2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
	(SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
	Adjust their definitions.
	(remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
	(rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.

	* c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
	genautomata.c, langhooks.c, langhooks.h, system.h,
	config/arm/lib1funcs.asm: Update copyright.

2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* dbxout.c (dbxout_function_end): Emit Lscope label always.

2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>

	PR bootstrap/13770
	* doc/install.texi: Document --with-gc.

2005-02-21  Paolo Bonzini  <bonzini@gnu.org>

	* simplify-rtx.c (simplify_unary_operation): Add a missing
	"break" statement.

2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR tree-optimization/18663
	* tree-ssa-dom.c (extract_range_from_cond): Return 0
	if the type has variable bounds.

2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>

	* gcse.c: Remove an obsolete comment.

	* cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.

2005-02-20  Hans-Peter Nilsson  <hp@axis.com>

	* doc/extend.texi (Function Attributes) <Attribute const>: The
	attribute "pure" is below this text, not above.

2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (pa_assemble_integer, get_plabel): Small cleanups.
	(pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
	* som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.

2005-02-20  Zack Weinberg  <zack@codesourcery.com>

	PR 18785
	* langhooks.h (struct lang_hooks): Add to_target_charset.
	* langhooks.c (lhd_to_target_charset): New function.
	* langhooks-def.h: Declare lhd_to_target_charset.
	(LANG_HOOKS_TO_TARGET_CHARSET): New macro.
	(LANG_HOOKS_INITIALIZER): Update.
	* c-common.c (c_common_to_target_charset): New function.
	* c-common.h: Declare it.
	* c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
	c_common_to_target_charset.

	* defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
	(TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
	Delete definitions.
	* system.h: Poison them.
	* doc/tm.texi: Don't discuss them.
	* builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
	* c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
	(pp_c_char): Do not attempt to generate letter escapes for
	newline, tab, etc.
	* config/arm/arm.c (output_ascii_pseudo_op): Likewise.
	* config/mips/mips.c (mips_output_ascii): Likewise.

2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>

	PR tree-optimization/19951
	* tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
	is abnormal.

2005-02-19  Steven Bosscher  <stevenb@suse.de>

	PR middle-end/19698
	* function.h (struct function): New field `max_loop_depth'.
	* cfgloop.c (establish_preds): Update maximum loop depth seen so far.
	(flow_loops_find): Reset the max loop depth count before finding loops.
	* flow.c (MAX_LIVENESS_ROUNDS): New constant.
	(update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
	(calculate_global_regs_live): Make sure the loop will terminate
	when the initial sets are not empty.

2005-02-19  Zack Weinberg  <zack@codesourcery.com>

	* mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
	object inside.
	* config/ia64/hpux.h: Don't define LIBGCC_SPEC.

2005-02-19  Richard Sandiford  <rsandifo@redhat.com>

	PR other/19525
	* doc/invoke.texi: Remove documentation of %M spec.
	* gcc.c: Likewise.
	(init_spec): Remove %M suffix from -lgcc_s.
	(do_spec_1): Remove 'M' case.
	* mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
	to put shared libraries in the multilib directory.  Remove the
	shlib_so_soname substitution variable.  Don't add a multilib encoding
	to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
	reported by -print-multi-os-directory.  Pass @multilib_dir@ to
	SHLIB_INSTALL as well as SHLIB_LINK.
	* config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
	(SHLIB_NAME): Delete.
	(SHLIB_DIR): New macro.
	(SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
	(SHLIB_INSTALL): Adjust accordingly.
	* config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
	* config/t-slibgcc-sld: Likewise.
	* config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
	(SHLIBUNWIND_SONAME): Use @shlib_base_name@.
	(SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
	in $(SHLIB_DIR).
	(SHLIBUNWIND_INSTALL): Adjust accordingly.
	* config/i386/t-nwld (SHLIB_SONAME): Delete.
	(SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
	Use @shlib_base_name@ instead of @shlib_so_name@.
	* config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
	and @shlib_base_name@.so in @multilib_dir@.
	(SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
	to the install path.
	* config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
	(SHLIB_LINK): Remove previous workaround.
	* config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
	(SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
	(SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
	the install path.
	* config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
	@multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
	(SHLIB_INSTALL): Adjust accordingly.
	(SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
	* config/rs6000/t-aix52: As for config/rs6000/t-aix43.
	* config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
	config/t-slibgcc-elf-ver.

2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
	    Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/19828
	* tree-ssa-loop-im.c: Add a TODO comment.
	(movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
	without side-effects.

2005-02-18  James A. Morrison  <phython@gcc.gnu.org>

	* tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
	call fold_convert.

2005-02-18  James E. Wilson  <wilson@specifixinc.com>

	* doc/invoke.texi (IA-64 Options): Delete -mb-step.
	* config/ia64/ia64.c (last_group, group_idx): Delete variables.
	(errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
	functions.
	(ia64_reorg): Delete fixup_errata call.
	* config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
	(TARGET_SWITCHES): Delete -mb-step entry.

2005-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/20043
	* c-typeck.c (composite_type): Handle quals in transparent unions.
	(type_lists_compatible_p): Likewise.

2005-02-18  Stan Shebs  <shebs@apple.com>

	* config/darwin.c (machopic_select_rtx_section): Don't put relocatable
	expressions in the .literal8 section.

2005-02-18  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.

2005-02-18  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (constant_boolean_node): Always create values of the
	specified type, don't bother calling truthvalue_conversion.

2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>

	* except.c (output_function_exception_table): Call
	assemble_external_libcall (eh_personality_libfunc).

2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>

	PR target/19886
	* config/ia64/ia64.h (struct machine_function): Add state_num.
	* config/ia64/ia64.c (process_epilogue,
	process_for_unwind_directive): Use new unwind state numbers each
	time rather than state 1.

2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>

	PR target/20054
	* config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
	before the "*llgt_didi" pattern.

2005-02-18  Jason Merrill  <jason@redhat.com>

	* gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.

2005-02-18  Richard Earnshaw  <rearnsha@arm.com>

	* arm/lib1funcs.asm (FUNC_ALIAS): New macro.
	(div0): Use it in place of ARM_FUNC_ALIAS.
	(lshrdi3, ashrdi3, ashlrdi3): Likewise.

2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/20030
	* fold-const.c (fold_indirect_ref_1): Use the correct index for zero
	access, the lower bound of the array type if it exists.

2005-02-18  Alexandre Oliva  <aoliva@redhat.com>

	PR c++/20008
	* stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
	cases that are out-of-range for the index type.

2005-02-18  James A. Morrison  <phython@gcc.gnu.org>

	* stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
	(estimate_case_costs): Don't call convert.
	* expmed.c (expand_shift): Likewise.
	(make_tree): Call fold_convert instead of convert.

2005-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/19813
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
	that ref to be marked MEM_READONLY_P doesn't have base that needs
	constructing.

2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>

	* genautomata.c (output_get_cpu_unit_code_func,
	output_cpu_unit_reservation_p): Don't generate old-style function
	definitions.

2005-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/20023
	PR tree-optimization/20009
	* convert.c (convert_to_integer): Revert 2005-02-16 change.

	PR tree-optimization/18947
	* cgraphunit.c (cgraph_finalize_function): When redefining an extern
	inline, remove all nodes that are inlined into the extern inline
	being redefined.

2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>

	* bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
	loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
	tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
	config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
	Update copyright.

2005-02-17  Roger Sayle  <roger@eyesopen.com>

	PR tree-optimization/19917
	* tree-eh.c (tree_could_trap_p): Consider calls to weak functions
	to be potentially trapping.

2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>

	* libgcc2.c, tree-vect-analyze.c: Fix comment typos.

2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>

	* builtins.c (expand_builtin_return_addr): Remove tem parameter.
	tem becomes a local variable which is set to the value of the
	back end defined INITIAL_FRAME_ADDRESS macro.
	(expand_builtin_frame_address): Omit the base parameter to
	expand_builtin_return_addr.
	(expand_builtin_profile_func): Likewise.
	* config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
	(DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
	* doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.

2005-02-17  Jakub Jelinek  <jakub@redhat.com>

	* config/s390/s390.c (s390_alloc_pool, s390_free_pool,
	s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
	* config/frv/frv.c (frv_function_epilogue): Likewise.

2005-02-17  Daniel Berlin  <dberlin@dberlin.org>

	* lambda-code (perfect_nestify): Remove mark/unmark
	for rewriting hack.
	* tree-loop-linear.c (linear_transform_loops): Add
	rewrite_into_ssa call so that ssa is correct for
	rewriting into loop closed.

2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>

	* bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
	* bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
	BITMAP_FREE.
	* bt-load.c (btr_def_live_range, combine_btr_defs,
	migrate_btr_def, migrate_btr_defs): Likewise.
	* cfgcleanup.c (thread_jump): Likewise.
	* cfgloop.c (get_loop_body_in_bfs_order): Likewise.
	* df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
	df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
	df_rd_local_compute, df_reg_info_compute): Likewise.
	* dominance.c (init_dom_info, free_dom_info): Likewise.
	* flow.c (init_propagate_block_info,
	free_propagate_block_info): Likewise.
	* gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
	* global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
	modify_reg_pav): Likewise.
	* loop-invariant.c (find_defs, find_invariant_insn,
	find_invariants, free_inv_motion_data): Likewise.
	* predict.c (tree_predict_by_opcode,
	estimate_bb_frequencies): Likewise.
	* stmt.c (expand_case): Likewise.
	* tree-cfg.c (tree_duplicate_sese_region): Likewise.
	* tree-dfa.c (mark_new_vars_to_rename): Likewise.
	* tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
	* tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
	get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
	rewrite_ssa_into_ssa): Likewise.
	* tree-optimize.c (tree_rest_of_compilation): Likewise.
	* tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
	analyze_edges_for_bb, perform_edge_inserts): Likewise.
	* tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
	* tree-sra.c (tree_sra): Likewise.
	* tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
	* tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
	* tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
	* tree-ssa-dse.c (tree_ssa_dse): Likewise.
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
	Likewise.
	* tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
	calculate_live_on_entry, calculate_live_on_exit,
	build_tree_conflict_graph): Likewise.
	* tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
	record_important_candidates, set_use_iv_cost, find_depends,
	determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
	tree_ssa_iv_optimize_finalize): Likewise.
	* tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
	find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
	tree_duplicate_loop_to_header_edge): Likewise.
	* tree-ssa-pre.c (init_pre, fini_pre): Likewise.
	* tree-ssa.c (verify_flow_insensitive_alias_info,
	verify_name_tags, verify_ssa, init_tree_ssa,
	delete_tree_ssa): Likewise.
	* tree-ssanames.c (marked_ssa_names, init_ssanames,
	fini_ssanames): Likewise.
	* tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.

2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/rs6000/t-rtems: Completely reworked.

2005-02-17  Ira Rosen  <irar@il.ibm.com>

	* tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.

2005-02-17  Ira Rosen  <irar@il.ibm.com>

	* tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
	POINTER_TYPE_P when checking that type is a pointer.
	(vect_get_memtag): Remove.
	(vect_address_analysis): Use POINTER_TYPE_P. Call
	vect_object_analysis with dummy parameter for memtag.
	(vect_object_analysis): Extract memtag (functionality that
	used to be in vect_get_memtag and moved here). Fix printings.
	(vect_analyze_data_refs): Fix comment. Call vect_object_analysis
	with correct parameters. Remove call to vect_get_memtag.

2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>

	* Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
	(tree-vectorizer.o): Added missing dependencies.

	* tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
	decleration.
	(slpeel_tree_peel_loop_to_edge): Function externalized (had a static
	declaration in tree-vectorizer.c, now has an extern declaration in
	tree-vectorizer.h).
	(slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
	slpeel_verify_cfg_after_peeling, vect_strip_conversion,
	get_vectype_for_scalar_type, vect_is_simple_use,
	vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
	vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
	new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
	vectorizable_store, vectorizable_operation, vectorizable_assignment,
	vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
	find_loop_location): Likewise.

	* tree-vectorizer.c (langhooks.h): #include removed.
	(slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
	moved to tree-vectorized.h.
	(slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
	slpeel_verify_cfg_after_peeling, vect_strip_conversion,
	get_vectype_for_scalar_type, vect_is_simple_use,
	vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
	vect_supportable_dr_alignment, new_loop_vec_info,
	destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
	vect_set_verbosity_level, find_loop_location): Likewise.

	(vect_analyze_loop): Function externalized. Declaration moved to
	tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
	(vect_analyze_loop_form): Moved to tree-vect-analyze.c.
	(vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
	vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
	vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
	vect_enhance_data_refs_alignment, vect_analyze_operations,
	exist_non_indexing_operands_for_use_p, vect_mark_relevant,
	vect_stmt_relevant_p, vect_get_loop_niters,
	vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
	vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
	vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
	vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
	vect_get_memtag): Likewise.

	(vectorizable_load): Function externalized. Declaration moved to
	tree-vectorized.h. Function definition moved to tree-vect-transform.c.
	(vectorizable_store, vectorizable_operation, vectorizable_assignment,
	vect_transform_loop): Likewise.
	(vect_transform_stmt): Moved to tree-vect-transform.c.
	(vect_align_data_ref, vect_create_destination_var,
	vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
	vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
	vect_get_vec_def_for_operand, vect_init_vector,
	vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
	vect_build_loop_niters, vect_update_ivs_after_vectorizer,
	vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
	vect_update_inits_of_drs, vect_do_peeling_for_alignment,
	vect_do_peeling_for_loop_bound): Likewise.

	* tree-vect-analyze.c: New file.
	* tree-vect-transform.c: New file.

2005-02-17  Jason Merrill  <jason@redhat.com>

	PR mudflap/19319, c++/19317
	* gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
	slot explicit.

2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Specific): Update link for Darwin-specific
	tool binary site.

2005-02-16  James A. Morrison  <phython@gcc.gnu.org>

	* fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
	constant_boolean_node.

2005-02-16  David Edelsohn  <edelsohn@gnu.org>

	PR target/19019
	* config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
	* config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.

2005-02-16  Richard Henderson  <rth@redhat.com>

	PR 19920
	* libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
	with W_TYPE_SIZE.
	(HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
	replace uses with Wtype_MAXp1_F.
	(L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
	L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
	L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
	L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
	and HAVE_TFMODE as appropriate.
	(__fixunssfDI): Provide an implementation that doesn't need DFmode.
	(__floatdisf): Likewise.
	* libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
	(HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
	(Wtype_MAXp1_F): New.
	(DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
	__powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.

2005-02-16  Richard Earnshaw  <rearnsha@arm.com>

	* PR target/19162
	* arm.c (arm_apply_result_size): New function.
	* arm.h (APPLY_RESULT_SIZE): Define.
	* arm-protos.h (arm_apply_result_size): Add prototype.
	* arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
	(movxf): New expand.
	(ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
	(call_value_symbol): Remove predicate for operand 0.
	(call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
	(untyped_call): Rework to correclty return values for any type.
	(untyped_return): New expand.
	* fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.

2005-02-16  Stan Shebs  <shebs@apple.com>

	* config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
	* config/rs6000/t-darwin8: New, for 64-bit multilib.

2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/install.texi (sparc-sun-solaris2*): Document required GMP
	configure settings on Solaris 7 and later.

2005-02-16  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/19865
	* tree-optimize.c (init_tree_optimization_passes): Run
	pass_may_alias after pass_sra.

2005-02-16  Richard Henderson  <rth@redhat.com>
	    Stuart Hastings  <stuart@apple.com>

	PR debug/19521
	* dbxout.c (dbxout_function_end): Take decl parameter; update callers.
	Do nothing if debug info suppressed for this function.
	(dbxout_begin_function): Early exit if debug info suppressed for
	this function.

2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>

	PR target/20007
	* config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
	find_basic_blocks.
	* config/sh/sh.c (sh_output_mi_thunk): Likewise.

	PR tree-optimization/19967
	* builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
	expand_builtin_strchr, expand_builtin_strrchr): Take a new
	argument TYPE.  Adjust calls to fold_builtin_XXX.
	(expand_builtin, fold_builtin_1): Adjust calls to
	expand_builtin_XXX.
	(fold_builtin_strchr, fold_builtin_strpbrk,
	fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
	result to a requested type TYPE.

2005-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/19857
	* fold-const.c (fold): Don't optimize (T)(x & cst) to
	(T)x & (T)cst if (T)cst overflows.
	* convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
	TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.

2005-02-15  Jeff Law  <law@redhat.com>

	* gcse.c (blocks_with_calls): New bitmap.
	(alloc_gcse_mem): Allocate it.
	(free_gcse_mem): Free it.
	(clear_modifY_mem_tables): Clear it.
	(record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
	when we encounter CALL_INSNs.
	(compute_transp, case MEM): Handle blocks with calls separate
	from blocks without calls.  Use bitmap iterators rather than
	FOR_EACH_BB.

2005-02-15  Peter O'Gorman  <peter@pogma.com>

	PR bootstrap/18810
	* mklibgcc.in (vis_hide): Use a temporary object file, not
	-o /dev/null.

2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>

	PR target/19924
	* config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
	access optimization.

2005-02-15  David Edelsohn  <edelsohn@gnu.org>
	    Alan Modra  <amodra@bigpond.net.au>

	PR target/19019
	* config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
	(_xlqsub): Rename to __gcc_qsub.
	(_xlqmul): Rename to __gcc_qmul.
	(_xlqdiv): Rename to __gcc_qdiv.
	Provide versioned symbol aliases with old names.
	* config/rs6000/libgcc-ppc64.ver: Rename symbols.
	* config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
	* config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
	* config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
	* config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.

2005-02-15  James A. Morrison  <phython@gcc.gnu.org>

	* fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
	Fold ~(A - 1) and ~(A + -1) to -A.

2005-02-15  James A. Morrison  <phython@gcc.gnu.org>

	PR pch/14940
	PR target/19300
	* config/host-linux.c (linux_gt_pch_use_address): Copy from
	config/pa/pa-host.c:pa_gt_pch_use_address.

2005-02-15  Daniel Berlin  <dberlin@dberlin.org>

	* tree-vn.c (get_value_handle): Make sure that given an
	is_gimple_min_invariant expression, we always return it.

2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>

	* passes.c (rest_of_handle_gcse): Fix a comment.

2005-02-15  Jeff Law  <law@redhat.com>

	* gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
	bitmap.
	(alloc_gcse_mem, free_gcse_mem): Corresponding changes.
	(canon_list_insert, record_last_mem_set_info): Similarly.
	(clear_modify_mem_tables): Similarly.

2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>

	* bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
	tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
	config/mips/mips.md, config/rs6000/aix.h,
	config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.

2005-02-15  Richard Henderson  <rth@redhat.com>

	* bb-reorder.c (find_traces_1_round): Force fallthru edge from a
	call to be best_edge.

2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>

	* basic-block.h: Adjust the prototype for find_basic_blocks.
	* cfgbuild.c (find_basic_blocks): Remove unused arguments.
	* passes.c (rest_of_handle_loop_optimize): Adjust the call to
	find_basic_blocks.

	* flow.c (recompute_reg_usage): Remove all arguments.
	* passes.c (rest_of_compilation): Adjust the call to
	recompute_reg_usage.
	* rtl.h: Adjust the prototype for recompute_reg_usage.

2005-02-14  Daniel Berlin  <dberlin@dberlin.org>

	* tree-dump.c (dump_files): Update to reflect new member
	of dump_file_info.
	(dump_register): Add new argument.
	Set glob name.
	(dump_switch_p_1): Check against glob name if doglob was passed.
	(dump_switch_p): Check against regular first, then glob if
	we didn't have any hits on the dump name.
	* tree-optimize.c (register_one_dump_file):
	Pass in glob name as well.
	* tree-pass.h (struct dump_file_info): Add glob
	member.

2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>

	PR preprocessor/16323
	* doc/invoke.texi: Document that -Wendif-labels is on by default.

2005-02-14  David Edelsohn  <edelsohn@gnu.org>

	PR target/19019
	* config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
	(trunctfdf2_internal1): New.
	(trunctfdf2_internal2): Renamed from trunctfdf2.

2005-02-14  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/19853
	* tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.

2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>

	* passes.c (rest_of_handle_loop_optimize): Remove calls to
	delete_dead_jumptables and cleanup_cfg.

2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload.c (find_reloads): Swap address_reloaded flags when
	swapping commutative operands.

2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>

	* lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
	Use standard_iv_increment_position for computing the bsi position
	for create_iv.
	* tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
	the bsi position.

2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>

	PR target/17428
	* cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
	life range of hard registers.
	* value-prof.c (insn_prefetch_values_to_profile): Only
	scan normal insns.

	* value-prof.c (rtl_find_values_to_profile): Do not look for values to
	profile in libcalls.

2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>

	* bitmap.h (bitmap_and_compl_into): Return bool.
	* bitmap.c (bitmap_and_compl_into): Return changed flag.

2005-02-13  James A. Morrison  <phython@gcc.gnu.org>

	PR tree-optimization/19944
	* fold-const.c (fold): Re-add ABS_EXPR folding.

2005-02-13  David Edelsohn  <edelsohn@gnu.org>

	PR target/19019
	* config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
	{TARGET,MASK}_XL_COMPAT.
	(SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
	MASK_XL_COMPAT.
	* config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
	* config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
	TARGET_XL_COMPAT.
	(rs6000_arg_partial_bytes): Same.
	(rs6000_generate_compare): Generate PARALLEL for compare if TFmode
	and XL compatibility enabled.
	* config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
	* config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
	test to final condition.
	(cmptf_internal2): New.
	* doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
	xl-compat.  Add TFmode information to description.

2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>

	* flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.

2005-02-13  Jason Merrill  <jason@redhat.com>

	PR c++/16405
	* fold-const.c (fold_indirect_ref_1): Split out from...
	(build_fold_indirect_ref): Here.
	(fold_indirect_ref): New fn.
	* tree.h: Declare it.
	* gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
	(gimplify_modify_expr_rhs): Likewise.
	(gimplify_expr): Likewise.

2005-02-13  James A. Morrison  <phython@gcc.gnu.org>

	PR tree-optimization/14303
	PR tree-optimization/15784
	* fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
	Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
	ABS_EXPR<x> != 0 to x != 0.

2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>

	* c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
	simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
	spelling conventions.

	* passes.c (rest_of_handle_gcse): Don't run cse_main and
	delete_trivially_dead_insns too many times.

	* passes.c (rest_of_handle_gcse): Remove dead assignments to
	tem and tem2.

2005-02-12  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.c (vect_get_base_and_offset): Remove.
	(vect_is_simple_iv_evolution): Remove redundant parameter
	and step check.
	(vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
	without last parameter.
	(vect_analyze_pointer_ref_access): Get access_fn as parameter.
	Return pointer step. Call vect_is_simple_iv_evolution without
	last parameter. Check only that the step is multiple of size
	type. Remove stmt_vinfo updates.
	(vect_get_memtag_and_dr): Remove.
	(vect_get_memtag): New function.
	(vect_address_analysis): New function.
	(vect_object_analysis): New function.
	(vect_analyze_data_refs): Call vect_object_analysis and
	vect_get_memtag. Update stmt_vinfo fields.

2005-02-12  Ira Rosen  <irar@il.ibm.com>

	* tree-data-ref.c (array_base_name_differ_p): Check that the bases
	exist and are objects. Remove checks for pointer.
	* tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
	STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
	(vect_create_data_ref_ptr): Likewise.
	(vect_base_addr_differ_p): New function.
	(vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
	(vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
	Don't set the DR_BASE_NAME field of data-ref.
	(vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.

2005-02-12  Uros Bizjak  <uros@kss-loka.si>

	* optabs.h (enum optab_index): Add new OTI_ldexp.
	(ldexp_optab): Define corresponding macro.
	* optabs.c (init_optabs): Initialize ldexp_optab.
	* genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
	patterns.
	* builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
	using ldexp_optab.
	(expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
	expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.

	* config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
	to implement ldexpf, ldexp and ldexpl built-ins as inline x87
	intrinsics.

2005-02-12  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
	to base_address.
	* tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
	stmt_vec_info.
	(vect_get_base_and_offset): Always return an address.
	(vect_create_addr_base_for_vector_ref): Remove treatment for
	different data reference types.
	(vect_compute_data_ref_alignment): Rename base to base_address in
	stmt_vec_info. Get the object in order to force its alignment.
	(vect_get_memtag_and_dr): Rename base to base_address in
	stmt_vec_info. Extract the object for memtag analysis.

2005-02-12  Hans-Peter Nilsson  <hp@axis.com>

	PR regression/19898.
	* config/cris/cris.c (cris_notice_update_cc): When testing if insn
	changes cc_status, use apply modified_in_p to part of cc_status
	and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
	body.

2005-02-11  Richard Henderson  <rth@redhat.com>

	* tree-complex.c (expand_complex_libcall): New.
	(expand_complex_multiplication): Use it for c99 compliance.
	(expand_complex_division): Likewise.
	* fold-const.c (fold_complex_add, fold_complex_mult): New.
	(fold): Call them.
	* builtins.c (built_in_names): Remove const.
	* tree.c (build_common_builtin_nodes): Build complex arithmetic
	builtins.
	* tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
	(BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
	(built_in_names): Remove const.
	* c-common.c (c_common_type_for_mode): Handle complex modes.
	* flags.h, toplev.c (flag_complex_method): Rename from
	flag_complex_divide_method.
	* libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
	__mulsc3, __muldc3, __mulxc3, __multc3): New.
	* libgcc2.h: Declare them.
	* libgcc-std.ver: Export them.
	* mklibgcc.in (lib2funcs): Build them.

2005-02-11  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/19876
	Partially revert my change from 2005-01-14
	* tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
	(compute_antic): ...and remove the loop here.

2005-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/19858
	* fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
	is number of inner's bits, avoid creating a BIT_FIELD_REF.

	* config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
	crtend.o if -pie.  Use %{x:a;:b} spec syntax.

2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
	offsets for the big-endian 32-bit case.

2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>

	* config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.

2005-02-11  Dale Johannesen  <dalej@apple.com>

	* cselib.c (cselib_process_insn): Clear out regs where
	HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
	* reload.c (find_equiv_reg): Ditto.

2005-02-11  Ian Lance Taylor  <ian@airs.com>

	* read-rtl.c (read_rtx_1): Give fatal error if we see a vector
	with no elements.

	* tree.c (build_function_type_list): Work correctly if there are
	no arguments.

2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
	"*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
	("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
	TARGET_ZARCH instead of TARGET_64BIT.

2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/rs6000/t-rtems:
	(MULTILIB_OPTIONS): Remove mcpu=602.
	(MUTLILIB_DIRNAMES): Remove m602.
	(MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
	Let mcpu=602 match mcpu=603.
	(MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.

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

	* pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
	signal trampolines.

2005-02-10  David Daney  <ddaney@avtrex.com>

	* config/alpha/linux-unwind.h: Add exception clause to copyright.
	* config/i386/linux-unwind.h: Likewise.
	* config/ia64/linux-unwind.h: Likewise.
	* config/mips/linux-unwind.h: Likewise.
	* config/pa/linux-unwind.h: Likewise.
	* config/rs6000/linux-unwind.h: Likewise.
	* config/s390/linux-unwind.h: Likewise.
	* config/sh/linux-unwind.h: Likewise.
	* config/sparc/linux-unwind.h: Likewise.

2005-02-10  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/17549
	* tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
	TER to replace a DEF with its expression if the DEF and the
	rhs of the expression we replace into have the same root
	variable.

2005-02-10  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.md: Fix the placement of the match_scratch in the
	lea64 peephole2.

2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
	Fix comment typos.

2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
	(strip_offset): Handle addresses.
	(add_address_candidates): Use strip_offset.
	(difference_cost): Reflect strip_offset change.
	(force_var_cost, difference_cost): Strip nops.

2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>

	* df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.

	* builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
	tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
	config/cris/cris-protos.h, config/cris/cris.c: Update
	copyright.

2005-02-10  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
	(lookup_avail_expr): Similarly.

2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>

	* builtins.c (fold_builtin_powi): New function.
	(fold_builtin_1): Call it.

2005-02-10  Steven Bosscher  <stevenb@suse.de>

	PR documentation/19309
	* doc/cpp.texi: The __GNUC__ and related predefined macros
	are also defined for the "standalone" cpp.
	Some non-GCC compilers may also define __GNUC__.

2005-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR c/19342
	* c-typeck.c (common_type): New routine.  Old common_type renamed
	to...
	(c_common_type): ...this.
	(build_conditional_expr, build_binary_op): Use c_common_type instead
	of common_type.

2005-02-10  Steven Bosscher  <stevenb@suse.de>

	* doc/md.texi: Replace @samp{length} with @code{length}.

2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/18687
	* tree-flow.h (find_loop_niter): Declare.
	* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
	Try using scev even for loops with more than one exit.
	* tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
	(struct ivopts_data): Added niters field.
	(struct nfe_cache_elt): New.
	(nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
	functions.
	(tree_ssa_iv_optimize_init): Initialize niters cache.
	(determine_number_of_iterations): Removed.
	(find_induction_variables): Do not call determine_number_of_iterations.
	Access niters for single exit through niter_for_single_dom_exit.
	(add_iv_outer_candidates): Access niters for single exit through
	niter_for_single_dom_exit.
	(may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
	number_of_iterations_cond.
	(iv_period): New function.
	(determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
	(may_replace_final_value): Take data argument.  Use
	niter_for_single_dom_exit.
	(determine_use_iv_cost_outer): Pass data to may_replace_final_value.
	(rewrite_use_compare): Pass data to may_eliminate_iv.
	(rewrite_use_outer): Pass data to may_replace_final_value.
	(free_loop_data): Clean up the niters cache.
	(tree_ssa_iv_optimize_finalize): Free the niters cache.
	(tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
	* tree-ssa-loop-niter.c (find_loop_niter): New function.
	(find_loop_niter_by_eval): Use tree_int_cst_lt.
	(num_ending_zeros): Moved to tree.c.
	* tree.h (num_ending_zeros): Declare.
	* tree.c (num_ending_zeros): Moved from tree.c.

2005-02-09  Richard Henderson  <rth@redhat.com>

	* builtins.c (DEF_BUILTIN): Add COND argument.
	* tree.h (DEF_BUILTIN): Likewise.
	* builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
	DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
	match.
	(DEF_BUILTIN_STUB): New.
	(BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
	BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
	BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
	* c-common.c (DEF_BUILTIN): Add COND argument.
	* tree.c (local_define_builtin): New.
	(build_common_builtin_nodes): New.

2005-02-09  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_strip_sign_ops): New function to simplify a
	floating point expression ignoring the sign of the result.
	(fold) <ABS_EXPR>: Use it to simplify fabs(x).
	(fold) <MULT_EXPR>: Use it to simplify x*x.
	* tree.h (fold_strip_sign_ops): Prototype here.
	* builtins.c (fold_builtin_copysign): Take an additional FNDECL
	argument.  Use fold_strip_sign_ops to simplify the first argument.
	(fold_builtin_pow): Use fold_strip_sign_ops to simplify the
	first argument when the second argument is an even integer
	constant, but only with -funsafe_math_optimizations.
	(fold_builtin_1): Update call to fold_builtin_copysign.

2005-02-09  Ian Lance Taylor  <ian@airs.com>

	PR middle-end/19583
	* gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
	just check whether EH_FILTER_FAILURE falls through.

2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>

	* haifa-sched.c (schedule_block): Make queued sched group
	insns return to ready list in the next turn.

2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>

	PR middle-end/19402
	* builtins.def: New __builtin_powi[lf].
	* builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
	(expand_builtin_powi): New function.
	(expand_builtin): Dispatch to expand_builtin_powi.
	* libgcc2.h: Add prototypes for __builtin_powi[lf].
	* libgcc2.c: Add __builtin_powi[lf] implementation.
	* mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
	* optabs.h: Add powi_optab.
	* optabs.c (init_optabs): Initialize powi_optab.
	* doc/extend.texi: Document __builtin_powi[lf].

2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
	exists.

2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>

	PR middle-end/19854
	* fold-const.c (try_move_mult_to_index): Remove redundant
	type argument.  Create ADDR_EXPR with correct type.
	(fold): Update callers of try_move_mult_to_index.  Convert
	result to the appropriate type.

2005-02-09  Roger Sayle  <roger@eyesopen.com>

	PR target/19597
	* config/avr/avr.c (default_rtx_costs): Delete.
	(avr_operand_rtx_cost): New function.
	(avr_rtx_costs): Completely rewrite.

2005-02-08  Hans-Peter Nilsson  <hp@axis.com>

	PR target/19806
	* config/cris/cris.c (in_code): New variable.
	(cris_output_addr_const): Now a static function, a wrapper for
	output_addr_const.
	(cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
	case from old cris_output_addr_const.
	(cris_asm_output_label_ref): Similar for LABEL_REF.
	(cris_output_addr_const_extra): Similar for UNSPEC.
	* config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
	(ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
	* config/cris/cris-protos.h (cris_output_addr_const): Remove
	declaration.
	(cris_asm_output_symbol_ref, cris_output_addr_const_extra)
	(cris_asm_output_label_ref): Declare.

2005-02-08  Paolo Bonzini  <bonzini@gnu.org>

	PR preprocessor/19801
	* doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
	filenames that changed when libcpp was moved to the toplevel.

2005-02-07  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (simplify_relational_operation_1): Avoid creating
	zero extensions of BImode operands.  Call lowpart_subreg instead
	of gen_lowpart_common and gen_lowpart_SUBREG.

2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>

	PR ada/19489
	* libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
	* configure.ac: Set cc_for_cross_gnattools.
	* configure: Regenerate.

2005-02-08  Alan Modra  <amodra@bigpond.net.au>

	PR target/19803
	* predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.

2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR debug/19327
	* dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
	of nested functions.

2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>

	* doc/extend.texi: Document deprecated extensions allowing
	static floating-point members to have initializers and allowing
	floating-point literals in integral constant expressions.

2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>

	* cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
	config/darwin7.h, config/mips/mips.c,
	config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
	Update copyright.

	* cse.c: Update comments.

2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>

	PR middle-end/19775
	* builtins.c (fold_builtin_sqrt): Transform
	sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
	pow(x,y*0.5).

2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
	    Dorit Naishlos  <dorit@il.ibm.com>

	* doc/invoke.texi (ftree-vectorizer-verbose): New.
	* opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
	* common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
	was added.
	* tree.h (vect_set_verbosity_level): New extern function declaration
	added.
	* tree-vectorizer.h (verbosity_levels): New enum type.
	* tree-vectorizer.c (vect_debug_stats): Function removed.
	(vect_debug_details): Likewise.
	(vect_verbosity_level): Global variable was defined and initialized.
	(vect_dump): Global variable definition.
	(vect_print_dump_info): New function.
	(vect_set_dump_settings): New function.
	(vect_set_verbosity_level): New function.
	(vectorize_loops): Add call to vect_set_dump_settings.

	(slpeel_make_loop_iterate_ntimes): Dump condition was changed.
	(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
	(slpeel_tree_peel_loop_to_edge): Likewise.

	(vect_analyze_offset_expr): Call to vect_print_dump_info with
	appropriate verbosity level instead of call to vect_debug_details
	or vect_debug_stats.
	(vect_get_base_and_offset):
	(vect_create_addr_base_for_vector_ref):
	(get_vectype_for_scalar_type):
	(vect_create_data_ref_ptr):
	(vect_init_vector):
	(vect_get_vec_def_for_operand):
	(vect_finish_stmt_generation):
	(vectorizable_assignment):
	(vectorizable_operation):
	(vectorizable_store):
	(vectorizable_load):
	(vect_transform_stmt):
	(vect_update_ivs_after_vectorizer):
	(vect_do_peeling_for_loop_bound):
	(vect_update_inits_of_drs):
	(vect_do_peeling_for_alignment):
	(vect_transform_loop):
	(vect_is_simple_use):
	(vect_analyze_operations):
	(vect_is_simple_iv_evolution):
	(vect_analyze_scalar_cycles):
	(vect_analyze_data_ref_dependence):
	(vect_analyze_data_ref_dependences):
	(vect_compute_data_ref_alignment):
	(vect_enhance_data_refs_alignment):
	(vect_analyze_data_refs_alignment):
	(vect_analyze_data_ref_access):
	(vect_analyze_data_ref_accesses):
	(vect_analyze_pointer_ref_access):
	(vect_get_memtag_and_dr):
	(vect_analyze_data_refs):
	(vect_mark_relevant):
	(vect_stmt_relevant_p):
	(vect_mark_stmts_to_be_vectorized):
	(vect_can_advance_ivs_p):
	(vect_get_loop_niters):
	(vect_analyze_loop_form):
	(vect_analyze_loop):
	(vectorize_loops): Likewise.

	(vect_do_peeling_for_loop_bound): Dump format slightly changed.
	(vect_update_inits_of_drs):
	(vect_do_peeling_for_alignment):
	(vect_transform_loop):
	(vect_analyze_operations):
	(vect_analyze_scalar_cycles):
	(vect_analyze_data_ref_dependences):
	(vect_analyze_data_refs_alignment):
	(vect_analyze_data_ref_accesses):
	(vect_analyze_data_refs):
	(vect_mark_stmts_to_be_vectorized):
	(vect_get_loop_niters):
	(vect_analyze_loop_form):
	(vect_analyze_loop): Likewise.
	(vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.

2005-02-07  Richard Sandiford  <rsandifo@redhat.com>

	PR bootstrap/19796
	Revert:
	2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
	* config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
	either -ffast-math or -funsafe-math-optimizations is in use.

	2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
	* config/mips/irix-csr.c: New file.
	* config/mips/t-iris6 (irix-csr.o): New rule to build it.
	(EXTRA_MULTILIB_PARTS): Add irix-csr.o.
	* config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
	executables.

2005-02-07  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
	redundant, incorrect definitions.

	* config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
	expand.
	("*tls_indirect_call"): New, reference hard regs directly.
	* config/frv/frv.c (gen_inlined_tls_plt): Adjust.

2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
	Let !-mhard-float !-msoft-float imply -mfpu=softfpa.

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

	PR rtl-optimization/19800
	* simplify_rtx.c (simplify_relational_operation_1): Explicitly
	call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
	gen_lowpart.

2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.

2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>

	PR other/17135
	* doc/invoke.texi: Correct documentation of -freorder-functions.

2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>

	PR other/14402
	* doc/invoke.texi: Don't mention gccbug.

2005-02-06  Roger Sayle  <roger@eyesopen.com>
	    Andrew Pinski  <pinskia@physics.uc.edu>
	    Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>

	* simplify-rtx.c (simplify_relational_operation_1): Simplify
	(ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
	into just (zero_extract:SI FOO (const_int 1) BAR).

2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>

	* doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
	macro locally.  Don't give last revision date.  Use GCC version
	number from gcc-common.texi.
	* doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
	revision date.  Use GCC version number from gcc-common.texi.
	Describe being a library as current state rather than as 3.x
	history.
	* doc/gcc.texi: Remove last update date.
	* doc/gccint.texi: Likewise.  Update copyright dates.
	* doc/install.texi: Update copyright dates.

2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>

	PR other/7549
	* doc/invoke.texi: Mention for each option included in -Wall that
	it is included in -Wall.
	* doc/gcc.texi: Update copyright and last modification date.

2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
	unnecessary cast to original induction variable increments.

2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/18219
	* tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
	in distributed form.

2005-02-06  Richard Sandiford  <rsandifo@redhat.com>

	* expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
	Set bitpos and offset later in the function.  Do nothing if the
	target is a register and if the bitfield lies completely outside
	that register.
	(extract_bit_field): Make the same SUBREG, bitpos and offset changes
	here.  Return an uninitialised register if the source value is stored
	in a register and the bitfield lies completely outside that register.

2005-02-06  Steven Bosscher  <stevenb@suse.de>

	* df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
	not SET_DEST.

2005-02-06  Marcin Dalecki  <martin@dalecki.de>

	* diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.

2005-02-06  Geoffrey Keating  <geoffk@apple.com>

	* config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
	* config/darwin8.h: New.
	* config/darwin7.h: Update comment.

2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
	    Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.h (LOC): New type.
	(UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
	(loop_line_number): New field in struct _loop_vec_info.
	(LOOP_VINFO_LOC, LOOP_LOC): New macros.

	* tree-vectorizer.c (input.h): Included.
	(find_loop_location): New function.
	(vect_debug_stats): Argument changed from loop to LOC. Computation of
	loop line number removed.
	(vect_debug_details): Likewise.
	(new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.

	(slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
	call to vect_debug_details/stats changed from loop to loop_loc.
	(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
	(slpeel_tree_peel_loop_to_edge): Likewise.

	(vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
	changed from NULL to UNKNOWN_LOC.
	(vect_get_base_and_offset):
	(vect_create_addr_base_for_vector_ref):
	(get_vectype_for_scalar_type):
	(vect_create_data_ref_ptr):
	(vect_init_vector):
	(vect_get_vec_def_for_operand):
	(vect_finish_stmt_generation):
	(vectorizable_assignment):
	(vectorizable_operation):
	(vectorizable_store):
	(vectorizable_load):
	(vect_transform_stmt):
	(vect_update_ivs_after_vectorizer):
	(vect_do_peeling_for_loop_bound):
	(vect_do_peeling_for_alignment):
	(vect_transform_loop):
	(vect_is_simple_use):
	(vect_analyze_operations):
	(vect_is_simple_iv_evolution):
	(vect_analyze_scalar_cycles):
	(vect_analyze_data_ref_dependences):
	(vect_compute_data_ref_alignment):
	(vect_enhance_data_refs_alignment):
	(vect_analyze_data_ref_access):
	(vect_analyze_data_ref_accesses):
	(vect_analyze_pointer_ref_access):
	(vect_get_memtag_and_dr):
	(vect_analyze_data_refs):
	(vect_mark_relevant):
	(vect_stmt_relevant_p):
	(vect_mark_stmts_to_be_vectorized):
	(vect_can_advance_ivs_p):
	(vect_get_loop_niters):
	(vect_analyze_loop):
	(vectorize_loops): Likewise.

	(vectorizable_load): Argument in call to vect_debug_details/stats
	changed from loop to LOOP_LOC (loop_vinfo).
	(vect_transform_loop):
	(vect_analyze_operations):
	(vect_analyze_scalar_cycles):
	(vect_analyze_data_ref_dependence):
	(vect_enhance_data_refs_alignment):
	(vect_analyze_data_ref_accesses):
	(vect_analyze_pointer_ref_access):
	(vect_analyze_data_refs):
	(vect_analyze_loop): Likewise.

	(vect_analyze_loop_form): Argument in call to vect_debug_details/stats
	changed from loop to loop_loc.

	(vect_enhance_data_refs_alignment): Removed unused variable loop.

2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
	    Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
	declaration added.
	(vect_analyze_data_ref_dependences): Likewise.

	(vect_is_simple_use): Argument changed from loop structure to
	loop_vect_info structure.
	(vect_can_advance_ivs_p): Likewise.
	(vect_create_index_for_vector_ref): Likewise.
	(vect_update_ivs_after_vectorizer): Likewise.
	(new_stmt_vec_info): Likewise.

	(new_loop_vec_info): Second argument in call to new_stmt_vec_info was
	changed from loop to loop_vinfo.
	(vect_create_data_ref_ptr): First argument in call to
	vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
	(vectorizable_assignment): Second argument in call to vect_is_simple_use
	was changed from loop to loop_vinfo.
	(vectorizable_operation): Likewise.
	(vectorizable_store): Likewise.
	(vect_mark_stmts_to_be_vectorized): Likewise.
	(vect_do_peeling_for_loop_bound): First argument in call to
	vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
	(vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
	was changed from loop to loop_vinfo.
	(vect_analyze_data_ref_dependences): Third argument in call to
	vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.

	(vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
	(vect_create_data_ref_ptr): Likewise.
	(vect_init_vector): Likewise.
	(vect_get_vec_def_for_operand): Likewise.
	(vectorizable_assignment): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_store): Likewise.
	(vectorizable_load): Likewise.
	(vect_update_ivs_after_vectorizer): Likewise.
	(vect_is_simple_use): Likewise.
	(vect_analyze_data_ref_dependence): Likewise.
	(vect_analyze_pointer_ref_access): Likewise.
	(vect_can_advance_ivs_p): Likewise.

	* tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
	before _stmt_vec_info.
	(_stmt_vec_info): Loop field replaced by loop_vec_info.
	(STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
	(new_stmt_vec_info): Argument changed from loop structure to
	loop_vect_info structure

	(vect_analyze_data_ref_dependences): Unnecessary line was removed.
	(vect_analyze_offset_expr): Avoid 80 columns overflow.
	(vect_create_addr_base_for_vector_ref): Likewise.
	(vect_analyze_pointer_ref_access): Likewise.

2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/19768
	* tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
	phi flag if the phi is abnormal.

2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-opt/19736
	* tree-ssa.c (replace_immediate_uses): Update the immediate_uses
	information for the new statement.

2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>

	PR driver/19117
	* gcc.c (main): Include the target in -v output.

2005-02-03  Alexandre Oliva  <aoliva@redhat.com>

	* combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
	Do not drop the extend if we'd have to add a paradoxical subreg
	later.  Include optabs.h and insn-codes.h.
	* Makefile.in (combine.o): Depend on $(OPTABS_H).

2005-02-02  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/19405
	* real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
	* fold-const.c (const_binop): Avoid constant folding floating
	point operations in modes that use composite representations.
	* simplify-rtx.c (simplify_binary_operation): Likewise.

2005-02-02  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/altivec.md (altivec_dst): Make the first operand
	a REG, not a MEM.
	(altivec_dstt): Likewise.
	(altivec_dstst): Likewise.
	(altivec_dststt): Likewise.
	* config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
	of first operand.

2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
	EXPR_LOCUS from orig_cond to the new cond_stmt.
	(vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
	the new vec_stmt.

2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
	standard_iv_increment_position. Remove call to bsi_next
	(no need to bump the iterator anymore).
	(vect_create_index_for_vector_ref): Call
	standard_iv_increment_position. Remove second function argument.
	(vect_finish_stmt_generation): Remove call to bsi_next
	(no need to bump the iterator anymore).
	(vect_create_data_ref_ptr): Remove second argument (bsi) in call
	to vect_create_index_for_vector_ref.

2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
	phis are used out of the loop.

2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>

	PR c/17807
	* c-decl.c (undef_nested_function): New variable.
	(pop_scope): Diagnose undefined nested functions.
	(finish_function): Don't attempt cgraph processing or genericizing
	if current top-level function contained an undefined nested
	function.  Reset undef_nested_function at the end of a top-level
	function.

2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree.c (build_int_cst_type): Take sign of the value into account
	when deciding whether sign extend the value.

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

	PR c/18502
	* gcc.c (cpp_unique_options): Remove %{trigraphs}.
	(cpp_options, cc1_options): Change %{std*&ansi} to
	%{std*&ansi&trigraphs}.

2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c: Update comments.

2005-02-02  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
	arguments go on the stack.  Do not put complex doubles in odd/even
	pairs.

2005-02-02  Steven Bosscher  <stevenb@suse.de>

	* doc/invoke.texi: Update the options enabled at -O1, -O2,
	and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
	-ftree-pre, and -fthread-jumps.

2005-02-02  Richard Sandiford  <rsandifo@redhat.com>

	PR tree-optimization/19578
	* tree-flow.h (modified_noreturn_calls): Declare.
	(noreturn_call_p): Declare.
	* tree-flow-inline.h (noreturn_call_p): New function.
	(modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
	* tree-cfg.c (modified_noreturn_calls): New variable.
	(cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
	that contain a mid-block noreturn call.
	* tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.

2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>

	* df.c (df_def_record_1, df_uses_record): Don't use
	DF_FOR_REGALLOC.
	* df.h (DF_FOR_REGALLOC): Remove.

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

	PR c/19435
	* c-typeck.c (really_start_incremental_init): Reset
	constructor_max_index for arrays of incomplete type.

2005-02-02  Jeff Law  <law@redhat.com>

	* gcse.c (struct reg_set): Store the block index where the register
	was set rather than the setting insn.
	(record_one_set, compute_transp): Corresponding changes.
	(pre_insert_copy_insn): Do not call replace_one_set.
	(replace_one_set): Remove.

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

	PR other/15514
	* doc/gcov.texi: Fix typo.

2005-02-01  Richard Henderson  <rth@redhat.com

	PR target/19680
	* config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
	* config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
	type to bool.
	(ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
	* config/i386/i386-protos.h: Update.

2005-02-01  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/19217
	* tree-cfg.c (verify_expr): Use the data field to see if TP was
	seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
	(verify_stmts): Pass (void*)1 as data to verify_expr to signal
	that it is walking a PHI node.

2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>

	* doc/extend.texi (Nested Functions): Update.

2005-02-01  Richard Henderson  <rth@redhat.com>

	PR 19696
	* optabs.c (expand_copysign_absneg): Export.
	* optabs.h (expand_copysign_absneg): Declare.
	* config/rs6000/rs6000.md (copysigntf3): New.

2005-02-01  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/19633
	* tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
	* tree-ssa-alias.c (init_alias_info): Initialize.
	(merge_pointed_to_info): Set.
	(add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
	(dump_points_to_info_for): Show value of pt_null.
	(struct count_ptr_d): Declare.
	(find_ptr_dereference): Remove.
	(ptr_is_dereferenced_by): Remove.
	(count_ptr_derefs): New local function.
	(count_uses_and_derefs): New local function.
	(compute_points_to_and_addr_escape): Call it.  If the number
	of dereferences is greater than zero, mark the pointer as
	dereferenced.  If there are fewer dereferences than uses of
	the pointer, the pointer's value escapes.

2005-02-01  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/19670
	* tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
	here...
	(verify_use): ... set it here, instead.

2005-02-01  Janis Johnson  <janis187@us.ibm.com>

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

	* doc/sourcebuild.texi (Test directives): Describe selector
	expressions.

2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>

	* config.gcc (powerpc64-*-linux*): Default to -m64 also for
	specific 64-bit CPUs.

2005-02-01  Richard Earnshaw  <rearnsha@arm.com>

	PR target/16201
	* arm.c (arm_eliminable_register): New function.
	(adjacent_mem_locations): Don't allow eliminable registers.  Use
	HOST_WIDE_INT for address offsets.
	* arm-protos.h (arm_eliminable_register): Add prototype.

2005-02-01  Steven Bosscher  <stevenb@suse.de>

	PR optimization/15242
	* params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
	* basic-block.h (duplicate_computed_gotos): Add prototype.
	* bb-reorder.c (duplicate_computed_gotos): New function to
	duplicate sufficiently small blocks ending in a computed jump.
	* passes.c (rest_of_compilation): Call duplicate_computed_gotos
	if not optimizing for size.
	* cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
	never do tail merging for blocks ending in a computed jump.
	* doc/invoke.texi: Document the max-goto-duplication-insns param.

2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>

	Patch from Richard Sandiford <rsandifo@redhat.com>
	* reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
	from inheriting a subreg equivalence with a non-spill register.

	* tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.

2005-02-01  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (movcc_fp_destination_operand): New.
	(gpr_or_memory_operand): Fix typo in comment.
	(gpr_or_memory_operand_with_scratch): New.
	* config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
	* config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
	movcc_fp_destination_operand.
	(reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
	Legitimize memory addresses using a scratch register.

2005-01-31  Jeff Law  <law@redhat.com>

	* tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
	bitmap a sparse bitmap instead of a simple bitmap.
	(mark_def_sites_initialize_block): Corresponding changes.
	(ssa_mark_def_sites_initialize_block): Likewise.
	(ssa_mark_phi_uses): Likewise.
	(mark_def_site, ssa_mark_def_sites): Likewise.
	(mark_def_site_blocks): Likewise.
	(rewrite_ssa_into_ssa): Likewise.

	* tree-ssa-dom.c (record_cond): Pass correct variable type
	for last argument to htab_find_slot_with_hash.

	* fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
	effects when optimizing 0 % X.  Do not try to optimize X % 0.

2005-01-31  James E. Wilson  <wilson@specifixinc.com>

	* config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
	1_mmalua.

2005-02-01  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.c (override_options): Warn if -mint64
	is used.
	* doc/invoke.texi (MIPS Options): Document that -mint64 is
	deprecated.

2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
	timestamp.
	(cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
	REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
	cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
	(cached_regno): Initialize to INVALID_REGNUM.
	(cse_reg_info_table_size,
	cse_reg_info_table_first_uninitialized,
	cse_reg_info_timestamp): New.
	(REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
	get_cse_reg_info.
	(init_cse_reg_info, get_cse_reg_info_1): New.
	(get_cse_reg_info): Cache the last look-up.
	(new_basic_block): Update the code to clear mappings from
	registers to cse_reg_info entries.
	(cse_main): Call init_cse_reg_info.

	* cse.c (get_cse_reg_info): Update a comment.

2005-01-31  Steven Bosscher  <stevenb@suse.de>

	PR c/19333
	* c-decl.c (start_decl): Do not warn about arrays of elements with
	an incomplete type here.
	(grokdeclarator): Do it here by making a pedwarn an error.
	* c-typeck.c (push_init_level): If there were previous errors with
	the constructor type, do not warn about braces for initializers.
	(process_init_element): Likewise for excess initializer elements.

2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (delete_trivially_dead_insn): Don't iterate.

2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/rs6000.md (copysignsf3): New expand.
	(copysigndf3): Likewise.

2005-01-31  Steven Bosscher  <stevenb@suse.de>

	* recog.c (constrain_operands): Only look for earlyclobber operand
	conflicts if an '&' constraint was seen.

2005-01-31  Marc Espie <espie@openbsd.org>

	* config.gcc: Don't include embedded systems fragment, switches default
	debugging format to ELF.
	* config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
	longer pick it up there.

2005-01-31  Dale Johannesen  <dalej@apple.com>

	* doc/extend.texi (nested functions): Fix linkage description.
	Clarify that static is not allowed.

2005-01-31  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/darwin.md (movsf_low_di): Make work.
	(movdf_low_di): Make work.

2005-01-31  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/darwin-tramp.asm (__trampoline_setup):
	Make work for 64 bit.

2005-01-31  Roger Sayle  <roger@eyesopen.com>
	    Dale Johannesen  <dalej@apple.com>

	PR middle-end/19650
	* fold-const.c (fold_binary_op_with_conditional_arg):
	Make types match original operands, before STRIP_NOPS.

2005-01-31  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/linux-unwind.h (struct gcc_vregs): New.
	(struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
	(struct gcc_sigcontext): Delete.  Merge contents to..
	(struct gcc_ucontext): ..here.
	(get_sigcontext): Delete.
	(get_regs): New function, like get_sigcontext but return regs ptr.
	64-bit version finds regs from r1 to support vdso.
	(ppc_linux_aux_vector): New function.
	(ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
	and vector regs.

2005-01-31  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
	sizetype.
	(vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
	redundant fold. Fix misalignment for MINUS_EXPR.
	(vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
	(vect_analyze_pointer_ref_access): Likewise.
	(vect_get_memtag_and_dr): Likewise.

2005-01-31  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
	(absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
	absnegdf2_i387, absnegxf2_i387): Likewise.

2005-01-31  Richard Henderson  <rth@redhat.com>

	PR 19696
	* optabs.c (expand_copysign_absneg): New.
	(expand_copysign_bit): Split out from ...
	(expand_copysign): ... here.  Use expand_copysign_absneg.

2005-01-30  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/19697
	* config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
	constant as the second operand and a register as the third.

2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>

	PR target/19704
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Also check
	that dllimport'd functions do not use all call-clobbered registers
	to pass parameters.

2005-01-30  Richard Henderson  <rth@redhat.com>

	PR 19696
	* optabs.c (expand_absneg_bit): Split out from expand_unop and
	expand_abs_nojump and generalize.  Use operand_subword and
	emit_no_conflict_block.  Support large modes.
	(expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
	back to maximum.
	(expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
	negation to subtraction.
	(expand_copysign): Check that the format has signed zeros.
	Use operand_subword and emit_no_conflict_block.  Support large modes.

2005-01-30  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/19624

	* Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
	* tree-ssa-pre.c: Add cfgloop.h.
	Update comment.
	(pre_stats): New member, constified.
	(inserted_exprs): New static variable.
	(NECESSARY): New macro.
	(create_expression_by_pieces): Fold the expression, and
	mark it as defaulting to not necessary. Also put in
	inserted_exprs.
	(fully_constant_expression): New function.
	(insert_into_preds_of_block): Modify to not insert phis when we
	are playing with induction variables.
	Push phis onto the inserted_exprs vector, and mark them as not
	necessary by default.
	(insert_aux): Call fully_constant_expression on eprime.
	If all edges produce the same value, mark it constant.
	(mark_operand_necessary): New function.
	(remove_dead_inserted_code): New function.
	(init_pre): Init loop optimizer to get loop info.
	(fini_pre): Free loop_optimizer, and inserted_exprs vec.
	(execute_pre): Commit edge inserts, then remove dead code.

2005-01-30  Richard Henderson  <rth@redhat.com>

	* rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
	* varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.

2005-01-30  Richard Henderson  <rth@redhat.com>

	PR target/19700
	* config/i386/i386.c (ix86_expand_copysign): New.
	(ix86_split_copysign_const): New.
	(ix86_split_copysign_var): Rename from ix86_split_copysign,
	rearrange op1/nmask operands.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
	(copysigndf3): Likewise.
	(copysignsf3_const, copysigndf3_const): New.
	(copysignsf3_var): Rename from copysignsf3, split out splitter
	and fix split predicate for X constraint.
	(copysigndf3_var): Similarly.

2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>

	* optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
	doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
	doc/tm.texi, doc/tree-ssa.texi: Update copyright.

2005-01-29  Richard Henderson  <rth@redhat.com>

	PR target/19690
	* config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
	of # and * in constraints.

2005-01-29  Richard Henderson  <rth@redhat.com>

	PR middle-end/19689
	* expr.c (store_field): Don't strip sub-mode cast when the input
	data is even smaller.

2005-01-29  Richard Henderson  <rth@redhat.com>

	PR middle-end/19687
	* expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
	union being empty.

2005-01-29  Richard Henderson  <rth@redhat.com>

	* combine.c (make_field_assignment): Fix argument order
	to gen_int_mode.

2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>

	PR tree-optimization/15791
	* fold-const.c (extract_array_ref): New function.
	(fold): Fold comparisons between &a[i] and &a[j] or
	semantically equivalent trees.

2005-01-29  Jeff Law  <law@redhat.com>

	* gcse.c (insert_expr_in_table): Revamp handling of available
	and anticipatable occurrence lists to avoid unnecessary list
	walking.
	(insert_set_in_table): Similarly.

2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>

	* c-common.c (fix_string_type): Just use c_build_qualified_type to
	build string type.
	(c_build_qualified_type): Build qualified array types with
	TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
	* c-decl.c (c_make_fname_decl): Build unqualified array type
	before qualified type.
	(grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
	type is qualified, not just if type itself is.  Don't apply
	qualifiers to array type when declarator is processed.  Apply
	qualifiers to field type whether or not it is an array type.
	Don't handle array types specially for applying qualifiers to
	variables.
	* c-typeck.c (composite_type): Build unqualified element type and
	array type when forming composite of array types.
	(common_pointer_type, comptypes, comp_target_types,
	type_lists_compatible_p, build_indirect_ref, build_array_ref,
	convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
	types.
	(type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
	(args2) in variables a1 and a2.

2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (n_elements_made, max_elements_made): Remove.
	(insert): Don't touch n_elements_made.
	(cse_main): Don't touch n_elements_made or max_elements_made.

2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>

	PR target/15384
	* config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
	configuration part of dp-bit.c to be lost.

2005-01-28  Roger Sayle  <roger@eyesopen.com>

	* expmed.c (expand_mult_highpart_optab): When attempting to use
	a non-widening multiplication in a wider mode, the operands need
	to be converted (zero or sign extended) to that mode.

2005-01-28  Ian Lance Taylor  <ian@airs.com>

	PR middle-end/16558
	PR middle-end/19583
	* gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
	through if both operands fall through.

2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (fold_rtx) <PC>: Don't optimize.

2005-01-28  Jeff Law  <law@redhat.com>

	* fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
	(case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.

2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
	cse_reg_info_used_list_end): Remove.
	(cse_reg_info_list, cse_reg_info_list_free): New.
	(get_cse_reg_info): When allocating an instance of
	cse_reg_info, add it to the beginning of the cse_reg_info_list
	list.  Remove code to maintain cse_reg_info_used_list.
	(new_basic_block): Reset the free list to the beginning of
	cse_reg_info_list.

2005-01-28  Richard Sandiford  <rsandifo@redhat.com>

	* config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
	(frv_init_builtins): Change its prototype to take 4 uhalf arguments.
	(frv_expand_mdpackh_builtin): New function.
	(frv_expand_builtin): Use it to expand __MDPACKH.
	* doc/extend.texi (__MDPACKH): Update documentation.

2005-01-28  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
	SSE_FLOAT_MODE_P for use_sse computation.

2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>

	PR target/19663
	* config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.

2005-01-27  Richard Henderson  <rth@redhat.com>

	* builtins.c (expand_builtin_copysign): New.
	(expand_builtin): Call it.
	* genopinit.c (optabs): Add copysign_optab.
	* optabs.c (init_optabs): Initialize it.
	(expand_copysign): New.
	* optabs.h (OTI_copysign, copysign_optab): New.
	(expand_copysign): Declare.

	* config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
	(copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.

	* config/i386/i386.c (ix86_build_signbit_mask): Split from ...
	(ix86_expand_fp_absneg_operator): ... here.
	(ix86_split_copysign): New.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.md (UNSPEC_COPYSIGN): New.
	(copysignsf3, copysigndf3): New.

	* config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
	(copysignsf3, ncopysignsf3): New.
	(copysigndf3, ncopysigndf3): New.
	(copysignxf3, ncopysignxf3): New.
	* config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.

2005-01-27  Arend Bayer  <arend.bayer@web.de>
	    Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c: (find_best_addr): Don't call copy_rtx before calling
	fold_rtx.  Save cost recomputation if fold_rtx did nothing.
	(fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
	NULL_RTX.

2005-01-27  Jeff Law  <law@redhat.com>

	* tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
	definitions of SSA_NAMEs which are not being rewritten.
	(rewrite_ssa_into_ssa): Only initialize the current definition
	of an SSA_NAME if that SSA_NAME has been marked for rewriting.
	If checking is enabled, assert that SSA_NAME_AUX is clear for all
	SSA_NAMEs before returning.

2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>

	* c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
	cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
	tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
	config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
	config/mips/iris6.h, config/sh/sh.c: Update copyright.

2005-01-27  Steven Bosscher  <stevenb@suse.de>

	PR middle-end/17278
	* opts.c (decode_options): Move flag_thread_jumps from -O1 and
	higher to -O2 and higher.  Likewise for tree PRE.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
	and better.

2005-01-27  Ian Lance Taylor  <ian@airs.com>

	PR middle-end/19583
	* gimple-low.c (try_catch_may_fallthru): New static function.
	(block_may_fallthru): Handle TRY_CATCH_EXPR.
	* tree-inline.c (expand_call_inline): Don't warn about reaching
	the end of a non-void function being inlined if the function uses
	a return slot.

2005-01-27  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.

	PR c/18946
	* c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
	(pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
	(implicitly_declare): Handle error_mark_node.

2005-01-27  Richard Henderson  <rth@redhat.com>

	PR tree-opt/14329
	* tree.h (struct tree_decl): Add debug_expr_is_from.
	(DECL_DEBUG_EXPR_IS_FROM): New.
	(DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
	* dwarf2out.c (dwarf2out_var_location): Update to match.
	* tree-outof-ssa.c (create_temp): Likewise.
	* var-tracking.c (track_expr_p): Likewise.
	* tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
	* c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
	* toplev.c (default_tree_printer): Likewise.

2005-01-27  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
	GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.

2005-01-27  Steven Bosscher  <stevenb@suse.de>

	* tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
	CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
	ASM_CLOBBERS): Add tree checks.

	* c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
	(SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
	* c-common.def (SWITCH_STMT): Update to match.
	* c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
	macros instead of SWITCH_EXPR ones.
	* c-dump.c (c_dump_tree): Likewise.
	* c-gimplify.c (gimplify_switch_stmt): Likewise.
	* c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.

	* doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.

2005-01-27  Alan Modra  <amodra@bigpond.net.au>

	* unwind-dw2.c (execute_stack_op): Add missing cases for
	DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.

2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config.gcc (Obsolete configurations): Remove 'dummy', add
	sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
	sparc-*-openbsd*.

2005-01-26  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/19633
	* tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
	CALL_EXPRs.
	(maybe_create_global_var): Do not create .GLOBAL_VAR if there
	are no call-clobbered variables.
	* tree-outof-ssa.c (check_replaceable): Return false for calls
	with side-effects.

2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>

	* dbxout.c (dbxout_symbol_location): Resolve constant pool references
	even for variables with NULL DECL_INITIAL.

2005-01-26  Stuart Hastings  <stuart@apple.com>

	* gimplify.c (shortcut_cond_expr): Re-compute side-effects.

2005-01-26  Richard Henderson  <rth@redhat.com>

	PR middle-end/18008
	* c-decl.c (finish_struct): Set DECL_MODE after resetting a
	field's type.
	* expr.c (store_field): Strip conversions to odd-bit-sized types
	if the destination field width matches.

2005-01-26  Richard Henderson  <rth@redhat.com>

	* c-decl.c, expmed.c, expr.c: Revert last change.

2005-01-26  Richard Henderson  <rth@redhat.com>

	PR middle-end/18008
	* c-decl.c (finish_struct): Set DECL_MODE after resetting a
	field's type.
	* expmed.c (store_fixed_bit_field): Create a paradoxical subreg
	if we don't need the bits above those present in the current mode.
	* expr.c (store_field): Strip conversions to odd-bit-sized types
	if the destination field width matches.

2005-01-26  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
	either -ffast-math or -funsafe-math-optimizations is in use.

2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	PR target/19293
	PR target/19329
	* config/avr/avr.c (notice_update_cc): Only set condition code for
	ashrqi3 if shift count > 0.
	(out_shift_with_cnt): Handle shift count <= 0 as a no-op.
	(ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
	ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
	count <= 0 as a no-op, and shift count >= width by copying zero
	or sign bit to all bits of the result.
	* config/avr/avr.md (all shifts): Add alternatives for zero shift
	count, with attribute "length" set to 0 and "cc" set to "none".

2005-01-26  Aldy Hernandez  <aldyh@redhat.com>

	* doc/invoke.texi: Document -mTLS.

	* testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
	* testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
	* testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
	* testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
	* testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
	* testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
	* testsuite/gcc.target/frv/all-tls-local-exec.c: New.
	* testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.

	* configure.ac: Check for a TLS capable gas.

	* configure: Regenerate.

2005-01-26  Richard Henderson  <rth@redhat.com>

	PR middle-end/18008
	* combine.c (make_field_assignment): Simplify store to zero_extract
	from a source with an overlapping mask.

2005-01-26  Aldy Hernandez  <aldyh@redhat.com>

	2004-11-11  Eric Christopher  <echristo@redhat.com>

	* config/frv/frv.md: Add fr400_integer automaton. Don't
	allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
	to TYPE_MACC.

2005-01-26  Steven Bosscher  <stevenb@suse.de>

	PR middle-end/16585
	* cfgbuild.c (make_edges): Do not clear or set
	current_function_has_computed_jump.
	* function.h (struct function): Remove the has_computed_jump field.
	(current_function_has_computed_jump): Do not define.
	* sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
	in a computed jump.  Ignore current_function_has_computed_jump.

2005-01-26  Richard Henderson  <rth@redhat.com>

	PR middle-end/19515
	* expr.c (categorize_ctor_elements): New argument p_must_clear.
	(categorize_ctor_elements_1): Likewise.  Detect a union that isn't
	fully initialized.
	(mostly_zeros_p): Update for new categorize_ctor_elements argument.
	* gimplify.c (gimplify_init_constructor): Likewise.  Only shove
	objects into static storage if they have more than one non-zero value.
	* tree.h (categorize_ctor_elements): Update decl.

2005-01-26  Steven Bosscher  <stevenb@suse.de>

	PR middle-end/19616
	* tree.h (CALL_EXPR_TAILCALL): Add comment.
	* calls.c (check_sibcall_argument_overlap_1): Revert the change
	to this function from 2004-07-10.
	* tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
	the current function for tail call optimizations if the address
	of one of it its arguments is taken.

2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (fold_rtx): Call equiv_constant only when necessary.

2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>

	* function.c (expand_function_end): If current_function_calls_alloca,
	emit stack restore in a place that is reached when the function falls
	through at the end.

2005-01-26  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
	rule to avoid matching inappropriate suffix rule.

2005-01-26  Jan Hubicka  <jh@suse.cz>

	PR tree-optimization/19241
	* tree-inline.c (copy_body_r): Do not walk subtrees after substituting.

2005-01-26  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
	-lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
	of doubling.
	(STARTFILE_SPEC): Add crti.o, before crtbegin.o.
	<sim*>: Always use crt1.o, regardless of N in simN.
	<!sim>: Drop support for -pg and -p variants; always use crt0.o.
	(ENDFILE_SPEC): Add crtn.o, after crtend.o.
	(CRT_CALL_STATIC_FUNCTION): Remove.
	* config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
	use crt1.o, regardless of N in simN.
	<!sim>: Drop support for -pg and -p variants; always use crt0.o.
	(LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
	(CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
	case isystem setting.
	(MAX_OFILE_ALIGNMENT): Correct to 32, not 16.

2005-01-25  Ian Lance Taylor  <ian@airs.com>

	* gimple-low.c (block_may_fallthru): Correct handling of
	SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.

2005-01-26  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
	handlers to match indentation; nested under the mtune=* handler.
	Similar for mcpu= and march=.

2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
	* config/mips/linux64.h (LIB_SPEC): Likewise.
	* config/mn10300/linux.h (LIB_SPEC): Likewise.
	* config/sh/linux.h (LIB_SPEC): Likewise.

2005-01-25  Aldy Hernandez  <aldyh@redhat.com>

	* config/frv/frv.c (frv_legitimize_tls_address): New.
	(TARGET_HAVE_TLS): Define.
	(FRV_SYMBOL_REF_TLS_P): Define.
	(frv_override_options): Handle new register classes.
	(frv_legitimate_address_p): Reject tls addresses.
	(frv_legitimize_address): Handle TLS addresses.
	(gen_inlined_tls_plt): New.
	(gen_tlsmoff): New.
	(frv_legitimize_tls_address): New.
	(unspec_got_name): Add TLS entries.
	(got12_operand): Add R_FRV_TLSMOFF12 case.
	(frv_emit_move): Fixup TLS addresses.
	(frv_emit_movsi): Legitimize TLS addresses.

	* config/frv/frv.h (MASK_BIG_TLS): New.
	(TARGET_BIG_TLS): New.
	(HAVE_AS_TLS): Define.
	(TARGET_SWITCHES): Add -mTLS and -mtls options.
	(enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
	(REG_CLASS_NAMES): Same.
	(REG_CLASS_CONTENTS): Same.
	(CONSTRAINT_LEN): New.
	(REG_CLASS_FROM_CONSTRAINT): New.
	(PREDICATE_CODES): Add symbolic_operand.

	* config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
	UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
	UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
	UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
	R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
	R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
	R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
	GR9_REG, GR14_REG, LRREG.
	(type): Add load_or_call attribute.
	("load_or_call"): New reservation.
	("call_gettlsoff"): New.
	("tls_indirect_call"): New.
	("tls_load_gottlsoff12"): New.
	("tlsoff_hilo"): New.
	("tls_tlsdesc_ldd"): New.
	("tls_tlsoff_ld"): New.
	("tls_lddi"): New.

	* config/frv/frv-protos.h (symbolic_operand): Protoize.

	2005-01-25  Alexandre Oliva  <aoliva@redhat.com>

	* config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
	* config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
	* config/frv/frv.c (TLS_BIAS): Define.
	(frv_output_dwarf_dtprel): New.

2005-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/19579
	* ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
	both A and B, see if they don't clobber registers the other expr uses.

2005-01-25  J"orn Rennecke <joern.rennecke@st.com>

	* real.c (do_add): Initialize signalling and canonical members.

	* real.c (real_from_integer): Zero out destination.

2005-01-18  Jan Hubicka  <jh@suse.cz>

	PR tree-optimize/19337
	* tree-inline.c (initialize_inlined_parameters): Copy
	saved_static_chain_decl only.

2005-01-25  Richard Henderson  <rth@redhat.com>

	PR target/19556
	PR target/19584
	* config/i386/i386.c (x86_inter_unit_moves): Zero.
	(ix86_preferred_reload_class): Rewrite fp-constant section, with
	80387 enabled, to return a proper subclass.  Return the subset that
	overlaps with GENERAL_REGS for PLUS.
	* config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.

2005-01-25  Richard Henderson  <rth@redhat.com>

	PR middle-end/19609
	* tree-complex.c (expand_complex_div_wide): Use the correct formulae.

2005-01-25  Roger Sayle  <roger@eyesopen.com>

	* expmed.c (choose_multiplier): Change interface to return the
	multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
	(expand_divmod): Update calls to choose_multiplier.

2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR middle-end/19330
	* expmed.c (extract_bit_field): Use adjust_address instead of
	gen_lowpart when op0 is a MEM.

2005-01-24  Steven Bosscher  <stevenb@suse.de>

	* cfgexpand.c (expand_gimple_tailcall): Fix typo.

2005-01-24  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/irix-csr.c: New file.
	* config/mips/t-iris6 (irix-csr.o): New rule to build it.
	(EXTRA_MULTILIB_PARTS): Add irix-csr.o.
	* config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
	executables.

2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR bootstrap/19364
	* config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
	sparc/elf.h, add sparc/sp-elf.h.
	(sparc-*-rtems*): Likewise.
	(sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
	tm-dwarf2.h, add sparc/sp-elf.h.
	(sparc86x-*-elf): Likewise.
	(sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
	* config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
	TARGET_OS_CPP_BUILTINS.
	* config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
	* config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
	Undefine it.
	* config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
	* config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
	(SWITCH_TAKES_ARG): Likewise.
	(LOCAL_LABEL_PREFIX): Likewise.
	(ASM_GENERATE_INTERNAL_LABEL): Likewise.
	(TARGET_N_FORMAT_TYPES): Delete.
	(TARGET_FORMAT_TYPES): Likewise.
	(ASM_DECLARE_FUNCTION_SIZE): Likewise.
	* config/sparc/elf.h: Delete.
	* config/sparc/sp-elf.h: New file.

2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-flow-inline.h (phi_arg_from_edge): Remove.
	* tree-flow.h: Remove the corresponding prototype.
	* tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
	tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.

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

	PR target/17751
	* config/rs6000/rs6000.c (rs6000_file_start): Create toc section
	for AIX ABI or ELF -fPIC.
	(rs6000_emit_load_toc_table): Don't create toc_section here.
	(rs6000_xcoff_file_start): Nor here.

2005-01-24  J"orn Rennecke <joern.rennecke@st.com>

	* sh.c (ra.h): Don't #include.
	(hard_regs_intersect_p): New function, resurrected from ra.c.

	* sh.c: Fix 1996 Copyright.

2005-01-24  Richard Henderson  <rth@redhat.com>
	    Aldy Hernandez  <aldyh@redhat.com>

	* regrename.c (note_sets): Handle subregs.

2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>

	PR bootstrap/18058
	* genconditions.c (write_header, write_conditions): Elide file if
	not GCC >= 3.0.1.

2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* c-opts.c, expmed.c, gengtype.c, tree-complex.c,
	config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
	Update copyright.

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

	* builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
	expand_builtin_printf, expand_builtin_fprintf,
	expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
	checking against POINTER_TYPE.
	(validate_arglist): Handle POINTER_TYPE code by checking
	POINTER_TYPE_P.

2005-01-24  Paolo Bonzini  <bonzini@gnu.org>

	* rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
	init_rtlanal): New.
	(for_each_rtx): Call for_each_rtx_1.
	* rtl.h (init_rtlanal): Declare.
	* toplev.c (backend_init): Call init_rtlanal.

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

	* flow.c (propagate_one_insn): Formatting.

	PR middle-end/19551
	* flow.c (libcall_dead_p): Be more conservative if unsure.
	If there are any instructions between insn and call, see if they are
	all dead before saying the libcall is dead.

2005-01-24  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
	operand constraint for operand 0.

2005-01-23  Richard Henderson  <rth@redhat.com>

	PR 19486
	* tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
	edges leading to join block.

2005-01-23  Roger Sayle  <roger@eyesopen.com>

	* expmed.c (expand_mult_highpart): Make static.  Change type of
	constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
	(expand_divmod): Updates calls to expand_mult_highpart by using
	gen_int_mode to pass a CONST_INT rtx.
	* rtl.h (expand_mult_highpart): Remove prototype.

2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>

	* flow.c (regset_bytes, regset_size): Remove.

	* cfganal.c: Fix a reference to Harvey's paper.

2005-01-23  Steven Bosscher  <stevenb@suse.de>

	PR rtl-optimization/19464
	* tree-optimize.c (init_tree_optimization_passes): Add one more
	copyrename pass just before out-of-ssa.

2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>

	PR bootstrap/18058
	* recog.c (recog_memoized): Don't define if GENERATOR_FILE.
	* ggc-none.c (ggc_free): Define.

2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (max_reg, max_insn_uid): Remove.
	(cse_main): Don't access max_reg or max_insn_uid.

	* c-common.c (explicit_flag_signed_bitfields,
	lang_statement_code_p, lang_expand_function_end): Remove.
	* c-common.h: Remove the corresponding declarations.
	* c-opts.c (c_common_handle_option): Remove all write access
	to explicit_flag_signed_bitfields.

	* cgraph.c (cgraph_varpool_n_nodes): Remove.
	(cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
	* cgraph.h: Remove the corresponding declaration.

	* gcse.c (null_pointer_info): Remove.

2005-01-23  Roger Sayle  <roger@eyesopen.com>
	    Eric Botcazou  <ebotcazou@libertysurf.fr>

	* combine.c (simplify_logical): Only simplify logical expressions
	of the form ior(and(x,y),z) by the inverse distributive law if the
	result is cheaper than the original.

2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>

	* alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
	fold-const.c, gimplify.c, params.h, tree-data-ref.c,
	tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
	tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
	config/freebsd-spec.h, config/arm/arm.h,
	config/h8300/h8300.md, config/i386/i386.md,
	config/i386/predicates.md, config/i386/sse.md,
	config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
	config/vax/vax.md: Fix comment typos.  Follow spelling
	conventions.

2005-01-23  Steven Bosscher  <stevenb@suse.de>

	* gengtype.c (walk_type): Produce `not equal to' compares for loop
	tests, instead of `less than'.

2005-01-23  Richard Sandiford  <rsandifo@redhat.com>

	* function.c (assign_parm_setup_block): When creating a new stack slot
	for a parameter, get its alignment from the parameter's DECL_ALIGN
	rather than the type's TYPE_ALIGN.  Make sure that the parameter
	is at least word aligned.

2005-01-22  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/19378
	* config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.

2005-01-22  Richard Henderson  <rth@redhat.com>

	PR target/19506
	* config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
	in both compare operands.
	(movdfcc_1_sse_max): Likewise.
	(movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
	(movdfcc_1_sse): Likewise.
	* config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
	scratch register as needed.

2005-01-22  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.md (smaxsf3): Fix mnemonic typo.

	* config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.

2005-01-22  Richard Henderson  <rth@redhat.com>

	* genopinit.c (optabs): Use smin/smax for floating point too.
	* doc/md.texi: Update to match.  Clarify that floating point
	results are undefined for +0/-0 and NaN.
	* doc/rtl.texi: Likewise.
	* rtl.def (SMIN, SMAX): Likewise
	* tree.def (MIN_EXPR, MAX_EXPR): Likewise.

	* config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
	leading 's' to the name.
	* config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
	smaxxf3, sminxf3): Likewise.
	* config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
	Likewise.

2005-01-22  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.

2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>

	* config/s390/s390.c (struct processor_costs): New fields
	dlgr, dlr, dr, dsgfr, dsgr.
	(z900_cost, z990_cost): Values for new fields.
	(s390_rtx_costs): New cases MEM und COMPARE in switch
	statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
	DIV, MOD, UDIV, UMOD.

2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("doloop_si64"): Reload input value directly
	into the register being decremented.
	("doloop_si31", "doloop_di"): Likewise.
	("*doloop_si_long"): Adapt pattern.

2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
	access registers.
	(CLASS_MAX_NREGS): Likewise.

2005-01-21  Daniel Berlin  <dberlin@dberlin.org>

	* doc/tree-ssa.texi (Statement Operands): Add example for new
	must-def macro. Note deprecation of old operands interface.

2005-01-22  Richard Sandiford  <rsandifo@redhat.com>

	PR tree-optimization/19484
	* tree-cfg.c (remove_fallthru_edge): New function.
	(cleanup_control_flow): Remove fallthru edges from calls that are
	now known not to return.

2005-01-20  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/19038
	* tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
	copies with loop variant ones.

2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>

	* cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
	config/alpha/alpha-protos.h, config/alpha/alpha.h,
	config/alpha/alpha.md, config/alpha/predicates.md,
	config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
	config/sparc/sol2.h: Update copyright.

	* tree-cfg.c (remove_forwarder_block_with_phi): Look at the
	first label to see if it is a nonlocal label.

2005-01-22  David Edelsohn  <edelsohn@gnu.org>
	    Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/19491
	* config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
	maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.

2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/rs6000/rtems.h: Update copyright.

2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>

	PR target/19548
	* config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
	(CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
	(SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.

2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c/18809
	* c-typeck.c (convert_arguments): Check for error_mark_node.

2005-01-21  Ian Lance Taylor  <ian@airs.com>

	PR tree-optimization/13000
	* tree-inline.c: Include "tree-flow.h".
	(expand_call_inline): If warn_return_type, warn if non-void inline
	function falls through.
	* tree-cfg.c (execute_warn_function_return): Don't warn about
	control reaching end if TREE_NO_WARNING is set.  Set
	TREE_NO_WARNING.
	* gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
	has been lowered.
	* gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
	branch if we don't need one.
	* c-typeck.c: Include "tree-flow.h"
	(c_finish_bc_stmt): Don't add a goto if the current statement
	list doesn't fall through to the current point.

2005-01-21  Roger Sayle  <roger@eyesopen.com>

	PR rtl-optimization/576
	* real.c (real_arithmetic): Change return type from void to bool
	to return an indication that the result may be inexact.
	* real.h (real_arithmeric): Update prototype.
	* fold-const.c (const_binop): Don't constant fold floating
	point expressions when the user specifies -frounding-math and
	the result may depend upon the run-time rounding mode.
	(fold_convert_const_real_from_real): Clean-up.
	(fold_initializer): Ignore flag_rounding_math for initializers.
	* simplify-rtx.c (simplify_binary_operation): Likewise, don't
	constant fold FP operations with flag_rounding_math if the
	result may depend upon the run-time rounding mode.

2005-01-21  Tom Tromey  <tromey@redhat.com>

	* c-cppbuiltin.c (define__GNUC__): Correct assertion.

2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-cfg.c: Fix comment typos.

2005-01-21  J"orn Rennecke <joern.rennecke@st.com>

	* passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
	around the call to rest_of_handle_branch_target_load_optimize.

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

	* config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
	(sparc64-*-openbsd*): Likewise.
	(sparclite-*-elf*): Include tm-dwarf2.h.
	(sparc86x-*-elf*): Likewise.
	(sparc64-*-elf*): Likewise.
	* config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
	(DBX_DEBUGGING_INFO): Likewise.
	* config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
	(PREFERRED_DEBUGGING_TYPE): Likewise.
	* config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
	* config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
	(PREFERRED_DEBUGGING_TYPE): Likewise.
	* config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
	(PREFERRED_DEBUGGING_TYPE): Likewise.
	* config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.

2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>

	PR target/18701
	* combine.c (combine_simplify_rtx): Revert change of 2004-12-31.

2005-01-20  Paul Brook  <paul@codesourcery.com>

	* doc/rtl.texi: Document value extension requirements for CONST_INT.

2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
	label is first in a sequence of labels.

	* tree-cfg.c (tree_verify_flow_info): Fix a typo.

2005-01-20  Janis Johnson  <janis187@us.ibm.com>
	    Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	* doc/sourcebuild.texi (Test Directives): New.

2005-01-20  Roger Sayle  <roger@eyesopen.com>

	* real.c (real_floor): Don't leave the result uninitialized when
	mode is VOIDMode, but return the unrounded intermediate value.
	(real_ceil): Likewise.

2005-01-20  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md (insv): Use gen_int_mode.

2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
	* config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
	* config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
	* config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
	* config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.

2005-01-20  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR debug/19124
	* dwarf2out.c (concat_loc_descriptor): We don't know we can use
	fbreg, so we have to assume we can't.
	(loc_descriptor_from_tree_1): Ditto.
	(containing_function_has_frame_base): New function.
	(add_location_or_const_value_attribute): Use it.
	Also try to generate a frame_base from a single element location
	list.

2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/15349
	* timevar.def (TV_TREE_MERGE_PHI): New.
	* tree-cfg.c (tree_forwarder_block_p): Add a new argument
	PHI_WANTED.
	(remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
	calls to tree_forwarder_block_p.
	(remove_forwarder_block_with_phi, merge_phi_nodes,
	gate_merge_phi, pass_merge_phi): New.
	* tree-optimize.c (init_tree_optimization_passes): Add
	pass_merge_phi.
	* tree-pass.h: Add an extern for pass_merge_phi;

2005-01-20  Richard Henderson  <rth@redhat.com>

	PR target/19418
	* config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
	(_mm_castps_pd, _mm_castps_si128): New.
	(_mm_castsi128_ps, _mm_castsi128_pd): New.

2005-01-20  Richard Henderson  <rth@redhat.com>

	PR target/19530
	* config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
	__builtin_ia32_vec_init_v2si.
	(_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
	* config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
	(ix86_init_mmx_sse_builtins): Create it.
	(ix86_expand_builtin): Expand it.
	(ix86_expand_vector_set): Handle V2SFmode and V2SImode.
	* config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
	(vec_extractv2si_0, vec_extractv2si_1): New.

2005-01-20  Richard Henderson  <rth@redhat.com>

	PR target/16533
	* config/i386/i386.c (ix86_expand_push): New.
	* config/i386/mmx.md (push<MMXMODE>1): New.
	* config/i386/sse.md (push<SSEMODE>1): New.
	* config/i386/i386-protos.h: Update.

2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>

	* params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
	copyright.

2005-01-20  Richard Henderson  <rth@redhat.com>

	* rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
	* rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.

2005-01-19  Richard Henderson  <rth@redhat.com>

	PR target/19350
	* config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
	to V4SFmode in SSE1 fallback load path.

2005-01-19  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
	in QImode expansion to ix86_expand_vector_set.
	(ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.

2005-01-19  Richard Henderson  <rth@redhat.com>

	PR target/19511
	* config/i386/i386.c (ix86_preferred_reload_class): Return a proper
	subclass of the input class.
	(ix86_secondary_memory_needed): Always true for cross-MMX classes.
	Always true for cross-SSE1 classes.  Rationalize conditionals.
	* config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
	* config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
	for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
	(movdi_2): Add MMX/SSE zeros.
	(movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
	(movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
	(zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
	(movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
	(movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
	(zero_extendsidi2_rex64_1): Remove.
	(MOV0 peephole): Check GENERAL_REG_P.

2005-01-19  Richard Henderson  <rth@redhat.com>

	PR target/19427
	* config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
	shufps elements.
	(ix86_expand_vector_extract): Likewise.

2005-01-19  Richard Henderson  <rth@redhat.com>

	PR middle-end/19304
	* expr.c (emit_move_change_mode): New argument force; use
	simplify_gen_subreg if true.
	(emit_move_via_alt_mode): Merge into ...
	(emit_move_via_integer): ... here.
	(emit_move_ccmode): Use emit_move_change_mode directly.

2005-01-19  Richard Henderson  <rth@redhat.com>

	PR target/19518
	* config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
	(alpha_preferred_reload_class): Handle CONST_VECTOR.
	(alpha_emit_set_const_1): Add no_output parameter; don't emit
	rtl if true.
	(alpha_emit_set_const): Likewise.  Make static.
	(alpha_emit_set_long_const): Make static.
	(alpha_extract_integer): Split out from alpha_expand_mov.
	(alpha_split_const_mov): Likewise.
	(alpha_expand_mov): Use them.  Handle CONST_VECTOR.
	(alpha_legitimate_constant_p): New.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
	(LEGITIMATE_CONSTANT_P): Re-implement with a function.
	* config/alpha/alpha.md (movsi): Add n alternative.
	(movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
	(mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
	(splitters for all of the above): Use alpha_split_const_mov.
	* config/alpha/predicates.md (non_add_const_operand): New.
	(non_zero_const_operand): New.
	(input_operand): Use alpha_legitimate_constant_p after reload.

2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/19038
	* tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
	(add_candidate): Add ivs with increment in latch only if
	allow_ip_end_pos_p is true.
	(determine_iv_cost): Use empty_block_p.

2005-01-19  Daniel Berlin  <dberlin@dberlin.org>

	* cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
	(compute_dominance_frontiers): Ditto.

2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>

	PR target/19529
	* config/sh/t-rtems: New.
	* config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.

2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>

	* tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
	the offset of the selected field.

2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-cfg.c (remove_forwarder_block): Fix the check to
	prevent a nonlocal label from appearing in the middle of a
	basic block.

2005-01-19  Hans-Peter Nilsson  <hp@axis.com>

	PR rtl-optimization/19462
	* reorg.c (find_end_label): Create return insn only if
	current_function_epilogue_delay_list is empty.

2005-01-19  Paolo Bonzini  <bonzini@gnu.org>

	* doc/passes.texi: Remove paragraph mentioning new-ra.

2005-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/15139
	* combine.c: Include params.h.
	(count_rtxs): New function.
	(record_value_for_reg): If replace_rtx would replace at least
	2 occurrences of REG in VALUE and TEM is really large, replace REG with
	(clobber (const_int 0)) instead of TEM.
	* params.def (PARAM_MAX_LAST_VALUE_RTL): New.
	* params.h (MAX_LAST_VALUE_RTL): New.
	* Makefile.in (combine.o): Depend on $(PARAMS_H).
	* doc/invoke.texi (--param max-last-value-rtl=N): Document.

	PR c/17297
	* c-typeck.c (digest_init): Only call build_vector if all constructor
	elements are *_CST nodes.
	* gimplify.c (gimplify_init_constructor): Likewise.

	PR middle-end/19164
	* c-typeck.c (digest_init): Only call build_vector if inside_init
	is a CONSTRUCTOR.

2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>

	* toplev.c (init_asm_output): Remove dead #ifdef.

2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.

2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
	accessing DECL_FUNCTION_CODE.
	* dojump.c (do_jump): Likewise.
	* gimplify.c (gimplify_call_expr): Likewise.
	* predict.c (expr_expected_value): Likewise.
	(strip_builtin_expect): Likewise.
	* tree-inline.c (estimate_num_insns_1): Likewise.
	* tree-ssa-loop-im.c (stmt_cost): Likewise
	* fold-const.c (fold): Test for BUILT_IN_NORMAL.
	(tree_expr_nonnegative_p): Likewise.

2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (load_pic_register): Emit the appropriate
	variant of the load_pcrel_sym pattern.
	* config/sparc/sparc.md (P macro): Move to the top.
	(load_pcrel_sym): Macroize using P.
	(save_register_window): Likewise.

2005-01-18  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md ("sunordered"): Disable for e500.
	("sordered"): Same.

2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>

	PR C/19472
	* c-typeck.c (build_asm_expr): Strip nops off
	input memory operands.

2005-01-18  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
	_XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
	* config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
	* config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.

2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>

	PR target/19379
	* config/i386/i386.c (override_options): If the 80387 is disabled,
	then do not return FP values using FP registers.

2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>

	* basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
	c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
	combine.c, config.gcc, coverage.h, cse.c, cselib.c,
	defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
	flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
	gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
	output.h, postreload-gcse.c, postreload.c, recog.c,
	resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
	targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
	tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
	tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
	tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
	tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
	tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
	unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.

	* config/darwin.c, config/darwin.h, config/freebsd-spec.h,
	config/alpha/alpha.c, config/arm/vfp.md,
	config/i386/emmintrin.h, config/i386/i386-modes.def,
	config/i386/i386-protos.h, config/i386/i386.h,
	config/i386/pmmintrin.h, config/i386/ppro.md,
	config/i386/predicates.md, config/i386/xmmintrin.h,
	config/i860/i860.c, config/ia64/ia64-modes.def,
	config/ia64/ia64-protos.h, config/ia64/ia64.h,
	config/ia64/ia64.md, config/ia64/itanium1.md,
	config/ia64/itanium2.md, config/ia64/predicates.md,
	config/iq2000/iq2000.h, config/mips/linux64.h,
	config/rs6000/aix41.h, config/rs6000/aix43.h,
	config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
	config/rs6000/rs6000.c, config/rs6000/rs6000.h,
	config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
	config/sparc/linux64.h, config/sparc/litecoff.h,
	config/sparc/sp64-elf.h, config/sparc/sparc.c,
	config/sparc/sparc.h, config/sparc/sparc.md,
	config/sparc/sysv4-only.h: Update copyright.

2005-01-18  Richard Henderson  <rth@redhat.com>

	PR target/19496
	* config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.

2005-01-18  Marc Espie  <espie@openbsd.org>
	* config/i386/openbsdelf.h: Typo.

2005-01-18  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
	special case for sse.
	* config/i386/predicates.md (sse_comparison_operator): Likewise.

2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-inline.c (estimate_num_insns_1): Added cases for
	ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.

2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/19296
	* combine.c (simplify_comparison): Rewrite the condition under
	which a non-paradoxical SUBREG of a PLUS can be lifted when
	compared against a constant.

2005-01-18  Andi Kleen <ak@muc.de>

	* c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
	* c.opt (-Wpointer-sign): Add.
	* doc/invoke.texi: (-Wpointer-sign): Add.

2005-01-18  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.c (override_options): Revert 2004-11-24 change.
	* config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
	*tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
	logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
	exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
	nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
	for TARGET_MIX_SSE_I387.
	(fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
	sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
	atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
	log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
	floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
	(TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
	TARGET_MIX_SSE_I387.
	(atan2sf3, atan2df3, atan2xf3): Remove register constraints
	from expander.

2005-01-18  Uros Bizjak  <uros@kss-loka.si>

	PR target/19424
	* config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
	Add movaps alternative for xmm reg->reg move.

2005-01-17  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
	at the end of the main DOM loop rather than just before DOM exits.

2005-01-17  Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/19121
	* tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
	adding aliases to a name tag, also add them to the pointer's
	type tag.
	* tree-ssa-copy.c (merge_alias_info): Do not merge flow
	sensitive alias info at all.  Only check that the two pointers
	have compatible pointed-to sets.
	* tree-ssa.c (verify_name_tags): Verify that the alias set of
	a pointer's type tag is a superset of the alias set of the
	pointer's name tag.

2005-01-17  James E Wilson  <wilson@specifixinc.com>

	PR target/19357
	* config/ia64/ia64.md (movxf): Handle general register source.  Adjust
	comment to document why.

2005-01-17  Richard Henderson  <rth@redhat.com>

	* config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
	sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
	sse2_vmsmaxv2df3_finite, sminv2df3_finite,
	sse2_vmsminv2df3_finite): New.
	(smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
	sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
	Force op1 into register.

2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
	bubblestrap from always rebuilding build directory.

2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("*clc"): Remove incorrect '='.
	("*cmpmem_short"): Likewise.

2005-01-17  Steven Bosscher  <stevenb@suse.de>

	* basic-block.h: Document BB_* flags.
	* regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
	use an sbitmap instead.
	* sched-rgn.c (compute_trg_info): Likewise.

2005-01-17  Richard Sandiford  <rsandifo@redhat.com>

	* config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
	redundant target_cpu_default and extra_parts lines.  Use the default
	"from-abi" ISA.
	* config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
	(SUBTARGET_EXTRA_SPECS): Delete.
	(DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
	(SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
	* config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
	and "n32" for -mabi=n32.

2005-01-17  Ian Lance Taylor  <ian@airs.com>

	PR c/5675
	* c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
	fold constant variables into initial values.

2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.

	* tree-cfg.c (tree_forwarder_block_p): Speed up by walking
	through the statements backward.

2005-01-17  Ian Lance Taylor  <ian@airs.com>

	PR middle-end/13127:
	* tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
	a variable set to the return value of the inlined function.

2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>

	* rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
	when modes are tieable.

2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>

	* gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
	of pthread_create to find out if threads are enabled.
	* gthr-posix95.h (__gthread_active_p): Likewise.

2005-01-17  Paolo Bonzini  <bonzini@gnu.org>

	* common.opt (-fnew-ra): Remove.
	* ra*.*: Remove.
	* toplev.h (flag_new_regalloc): Remove.
	* Makefile.in (ra*.*): Don't mention.
	* passes.c (rest_of_handle_new_regalloc): Remove.
	(rest_of_handle_combine, rest_of_compilation): Always consider
	flag_new_regalloc as false.
	* doc/invoke.texi: Don't document -fnew-ra.

2005-01-17  Paolo Bonzini <bonzini@gnu.org>

	* bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
	last parameter to reg_scan.
	* loop.c (loop_optimize): Likewise.
	* passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
	rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
	rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
	rest_of_handle_gcse, rest_of_handle_loop_optimize,
	rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
	* regclass.c (reg_scan): Likewise, for the declaration.
	* rtl.h (reg_scan): Likewise, for the prototype.

2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
	mark_dfs_back_edges.

2005-01-16  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (add_to_sets): s1 may be NULL.
	(compute_avail): Uses don't go in tmp_gen.

2005-01-16  Steven Bosscher  <stevenb@suse.de>

	* ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
	loop to look for a free slot in a page entry.

2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/16304
	* defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
	* toplev.c (compile_file): Call process_pending_assemble_output_defs
	just before targetm.asm_out.file_end.
	* tree.h (process_pending_assemble_output_defs): Declare.
	* varasm.c (assemble_output_def, process_pending_assemble_output_defs):
	New functions.
	(assemble_alias): Defer generation of assembly code for defines when
	TARGET_DEFERRED_OUTPUT_DEFS is true.
	* config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
	* config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
	* doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.

2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/19336
	* pa.c (pa_scalar_mode_supported_p): New function.
	(TARGET_SCALAR_MODE_SUPPORTED_P): Define.
	* pa.h (MIN_UNITS_PER_WORD): Add comment.

	* pa-protos.h (prefetch_operand): Delete.
	(prefetch_cc_operand, prefetch_nocc_operand): New declations.
	* pa.c (prefetch_operand): Delete.
	(prefetch_cc_operand, prefetch_nocc_operand): New functions.
	* pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
	(PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
	and prefetch_nocc_operand.
	* pa.md (prefetch): Rework to avoid reload problems handling short
	displacements when a cache control completer needs to be provided.
	(prefetch_32, prefetch_64): Delete.
	(prefetch_cc, prefetch_nocc): New patterns.

2005-01-15  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.

2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR ada/19388
	* pa.c (pa_asm_output_aligned_common): Warn if specified alignment
	exceeds maximum alignment for global common data.
	* pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
	* som.h (MAX_OFILE_ALIGNMENT): Likewise.

2004-01-15  Roger Sayle  <roger@eyesopen.com>

	* tree-ssa-dom.c (extract_range_from_cond): Correct condition.

2004-01-15  Roger Sayle  <roger@eyesopen.com>

	* harg-reg-set.h (reg_class_names): Prototype global array.
	* regclass.c (reg_class_names): Declare here and initialize to
	REG_CLASS_NAMES.
	(dump_regclass): Remove local declaration of reg_class_names.
	(regclass): Likewise.
	* cfg.c (dump_flow_info): Likewise.
	* ra-debug.c (reg_class_names): Likewise.
	* regrename.c (reg_class_names): Likewise.
	* reload.c (reg_class_names): Likewise.
	* reload1.c (spill_failure): Likewise.
	* config/m68hc11/m68hc11.c (reg_class_names): Likewise.

2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("reload_outti"): Remove predicate for
	output operand.  Abort if operand is not a MEM.
	("reload_outdi", "reload_outdf"): Likewise.

2005-01-15  Marc Espie  <espie@openbsd.org>

	* config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
	(i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
	* config/openbsd.h: Fix C++ includes for native configurations.
	Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
	Add trampoline support.
	* config/i386/openbsdelf.h: New.

2005-01-15  Marc Espie  <espie@openbsd.org>

	* collect2.c (main): Explicitly parse -dynamic-linker option.

2005-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/19060
	* tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
	Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
	(simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
	and handle extract_range_from_cond returning false.
	* fold-const.c (fold): Optimize comparisons with min/max even for
	width > HOST_BITS_PER_WIDE_INT.

2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>

	* config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
	* config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
	Remove little endian multilib variants.
	Add mips32 multilib variant.

2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* explow.c (copy_all_reg, stabilize): Remove.
	* expr.h: Remove the corresponding prototypes.

	* rtlanal.c (regs_set_between_p): Remove.
	* rtl.h: Remove the corresponding prototype.

2005-01-14  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
	to rs6000_nonimmediate_operand.
	* config/rs6000/rs6000.h (PREDICATE_CODES): Rename
	rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
	* config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
	rs6000_nonimmediate_operand.
	* config/rs6000/spe.md (movdf_e500_double): Rename predicate to
	rs6000_nonimmediate_operand.

2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.

2005-01-14  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
	on e500v2.
	(CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
	(PREDICATE_CODES): Add rs6k_nonimmediate_operand.

	* config/rs6000/rs6000.c (invalid_e500_subreg): New.
	(rs6k_nonimmediate_operand): New.
	(rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
	correctly.
	(legitimate_lo_sum_address_p): Same.
	(rs6000_legitimize_address): Same.
	(rs6000_legitimize_reload_address): Same.
	(rs6000_legitimate_address): Same.
	(spe_build_register_parallel): Pass DF and DC modes in a DI
	register.

	* config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
	to rs6k_nonimmediate_operand.

	* config/rs6000/spe.md ("*frob_df_di"): New.
	("*frob_di_df"): New.
	("*frob_di_df_2"): New.
	("*mov_sidf_e500_subreg0"): New.
	("*mov_sidf_e500_subreg4"): New.
	("*movdf_e500_double"): Change predicate to
	rs6k_nonimmediate_operand.

2005-01-14  Aldy Hernandez  <aldyh@redhat.com>

	* postreload.c (move2add_note_store): Only call
	trunc_int_for_mode on scalar integers.

2005-01-14  Steven Bosscher  <stevenb@suse.de>

	* tree-ssa-dce.c (visited_control_parents): New sbitmap to
	replace BB_VISITED uses.
	(find_obviously_necessary_stmts): Don't clear BB_VISITED.
	(propagate_necessity): Check the bitmap instead of BB_VISITED.
	(tree_dce_done): Free visited_control_parents.
	(perform_tree_ssa_dce): Allocate and clear it.
	* tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
	(compute_antic): Iterate from here using a DFS.  Use an sbitmap
	instead of BB_VISITED.

2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
	rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
	Remove unused prototypes.

2005-01-14  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
	64-bit register usage.
	(spe_func_has_64bit_regs_p): Add FIXME note.

2005-01-14  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_generate_compare): Replace
	flag_finite_math_only with flag_unsafe_math_optimizations.

2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>

	* config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
	end-of-stack check.
	(__tpf_eh_return): Copy TPF private stack area from the module
	boundary stack frame.  Add check for when module addresses are
	equal, but no stub address is found.

2005-01-14  Richard Earnshaw  <rearnsha@arm.com>

	PR target/7525
	* arm.h (struct machine_function): Add call_via field.
	(thumb_call_via_label): Declare.
	* arm.c (thumb_call_via_label): New variable.
	(thumb_call_reg_needed): New variable.
	(arm_output_function_epilogue): For Thumb code, output any per-function
	call-indirect trampolines.
	(thumb_call_via_reg): New function.
	(arm_file_end): New function.
	(TARGET_ASM_FILE_END): Call arm_file_end.
	(aof_file_end): Likewise.
	* arm-protos.h (thumb_call_via_reg): Declare.
	* arm.md (call_reg_thumb, call_value_reg_thumb): Call
	thumb_call_via_reg in normal case.

2005-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/19084
	PR rtl-optimization/19348
	* recog.c (peephole2_optimize): Do global life update if some peephole
	decides it doesn't need at least one of its inputs and that change
	influences liveness at the start of the basic block.

	* basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
	arguments instead of 1.

2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR middle-end/18820
	* varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
	zero for nested functions needing a static chain or functions
	with a non-constant address.

2005-01-13  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
	(and (sign_extend X) C) into (zero_extend (and X C)).

2005-01-13  David O'Brien  <obrien@FreeBSD.org>

	* config/freebsd-spec.h: Make KSE pthread lib logic the default.

2005-01-13  Richard Henderson  <rth@redhat.com>

	PR target/19009
	PR target/19250
	PR target/19252
	* config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
	bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
	not just TARGET_SSE.
	(cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
	(cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
	(cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
	(cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
	(fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
	(fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
	(fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
	fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
	(movdicc_c_rex64): Rename with '*'.
	(movsfcc, movdfcc): Add checks for 387 and sse math to condition.
	(movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
	(movsfcc_1_387): Rename from movsfcc_1.
	(movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
	(movdfcc_1, movdfcc_1_rex64): Add check for 387.
	(sminsf3, smaxsf3, smindf3, smaxdf3): New.
	(minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
	mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
	maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
	sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
	sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
	sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
	sse_movdfcc_const0_4): Remove.
	* config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
	recognize min/max early.  Update for changed sse cmove patterns.
	(ix86_split_sse_movcc): New.
	* config/i386/i386-protos.h: Update.

2005-01-13  Steven Bosscher  <stevenb@suse.de>

	* tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
	(fix_stmt_v_may_defs): Likewise.

2005-01-13  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
	for converting the mask.

2005-01-13  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
	definition to 600.

2005-01-13  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
	IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
	IX86_BUILTIN_MOVDQ2Q): Remove.
	(IX86_BUILTIN_VEC_EXT_V4SI): New.
	(ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
	(ix86_expand_vector_extract): For V4S[FI], extract element 0 after
	shuffling.
	* config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
	(sse2_pextrw): Fix immediate constraint.
	(sse2_loadq, sse2_loadq_rex64): Remove.
	* config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
	Use __builtin_ia32_vec_ext_<size>.
	(_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.

2005-01-13  Aldy Hernandez  <aldyh@redhat.com>

	* function.c (assign_parm_setup_block): Look inside original
	entry_parm when inspecting PARALLEL.

2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
	    Joel Sherrill  <joel@oarcorp.com>

	PR target/19399
	* gthr-rtems.h (__gthread_recursive_mutex_t): New type.
	(__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
	rtems_gxx_recursive_mutex_init.
	(__gthread_recursive_mutex_lock): New function.
	(__gthread_recursive_mutex_trylock): Likewise.
	(__gthread_recursive_mutex_unlock): Likewise.

2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>

	* config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.

2005-01-13  Jan Beulich  <jbeulich@novell.com>

	* config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
	(ashrti3_internal): Indicate output is early clobber. Generate result
	into output rather than first input. Use move for low word of output
	if shift count is exactly 64.
	(lshrti3_internal): Likewise.

2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>

	PR target/18329
	PR target/18330
	* reload1.c (delete_output_reload): Don't delete an output reload
	if the pseudo lives longer than a single basic block.  Adjust and
	improve wording of comment.

2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/19334
	* config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
	of TYPE_SIZE where we mean the number of bytes.

2005-01-12  Aldy Hernandez  <aldyh@redhat.com>

	* function.c (assign_parm_setup_block): Relax condition on
	multi-register optimization.

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

	* config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
	an "in_delay_slot" attribute of "no" to prevent them being used in
	delay slots.  This is forbidden because they might generate
	exceptions.

2005-01-12  Alan Modra  <amodra@bigpond.net.au>

	PR target/19389
	* config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
	with r->Y and Y->r.

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

	* config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
	passed on to GAS) but do not define, as GAS no longer supports or
	needs the -m2000 option.

2005-01-11  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (fold_builtin_fabs): Convert argument to the appropriate
	type as args of unprototyped builtins aren't automatically promoted.
	(fold_builtin_abs): Likewise.

2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in: Set a `build-warn' variable.

2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/17949
	* tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
	(find_interesting_uses_address): Use it.

2005-01-11  Aldy Hernandez  <aldyh@redhat.com>

	* regrename.c (kill_value): Handle subreg's that won't simplify.

2005-01-11  Richard Henderson  <rth@redhat.com>

	PR target/13366
	* config/i386/i386.h (enum ix86_builtins): Move ...
	* config/i386/i386.c: ... here.
	(IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
	IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
	IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
	IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
	IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
	IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
	IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
	IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
	IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
	IX86_BUILTIN_LOADDDUP): Remove.
	(IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
	IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
	IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
	IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
	IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
	(ix86_init_builtins): Make static.
	(ix86_init_mmx_sse_builtins): Update for changed builtins.
	(ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
	if all the modes match.  Otherwise, fake it.
	(get_element_number, ix86_expand_vec_init_builtin,
	ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
	(ix86_expand_builtin): Make static.  Update for changed builtins.
	(ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
	operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
	(ix86_expand_vector_init_duplicate): New.
	(ix86_expand_vector_init_low_nonzero): New.
	(ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
	Split out from ix86_expand_vector_init; handle integer modes.
	(ix86_expand_vector_init): Use them.
	(ix86_expand_vector_set, ix86_expand_vector_extract): New.
	* config/i386/i386-protos.h: Update.
	* config/i386/predicates.md (reg_or_0_operand): New.
	* config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
	(movv2sf_internal): Likewise.  And a splitter to match them all.
	(vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
	vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
	vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
	vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
	(mmx_pinsrw): Fix operand ordering.
	* config/i386/sse.md (movv4sf splitter): Use direct pattern,
	rather than sse_loadss expander.
	(movv2df splitter): Similarly.
	(sse_loadss, sse_loadlss): Remove.
	(vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
	(vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
	(vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
	(sse3_movddup): Rename with '*'.
	(sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
	(sse2_loadsd): Remove.
	(vec_dupv2df_sse3): Rename from sse3_loadddup.
	(vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
	(sse2_pinsrw): Fix argument ordering.
	(sse2_loadld, sse2_loadq): Add sse1 alternatives.
	(sse2_stored): Remove 'r' destination.
	(vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
	vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
	vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
	vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
	vec_extractv16qi, vec_initv16qi): New.

	* config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
	(_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
	_mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
	constructor form.
	(_mm_load_pd, _mm_store_pd): Use plain dereference.
	(_mm_load_si128, _mm_store_si128): Likewise.
	(_mm_load1_pd): Use _mm_set1_pd.
	(_mm_load_sd): Use _mm_set_sd.
	(_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
	(_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
	(_mm_set_epi64): Use _mm_set_epi64x.
	(_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
	_mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
	_mm_setr_epi8): Use _mm_set_foo form.
	(_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
	(_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
	(_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
	(_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
	* config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
	(_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
	(_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
	(_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
	(_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
	* config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
	(_mm_movedup_pd): Use _mm_shuffle_pd.
	* config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
	_mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
	(_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
	_mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
	Use _mm_setzero_ps.
	(_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
	(_mm_load_ps, _mm_loadr_ps): Use raw dereference.
	(_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
	(_mm_store_ps): Use raw dereference.
	(_mm_store1_ps): Use _mm_storeu_ps.
	(_mm_storer_ps): Use _mm_store_ps.
	(_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
	(_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.

2005-01-11  Stan Shebs  <shebs@apple.com>

	* config/rs6000/rs6000.c (machopic_output_stub): Issue
	ldu instead of lwzu if 64-bit -mdynamic-no-pic.

2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/18761
	* config/rs6000/rs6000.c (rs6000_special_round_type_align):
	Skip all DECLs except for FIELD_DECLs.

2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (override_options): Return error if
	-mbackchain, -mpacked-stack and -mhard-float are used together.
	(s390_va_start): Remove the backchain && packed-stack special case.
	(s390_gimplify_va_arg): Likewise.
	* doc/invoke.texi: Remove the ABI incompatibility note.

2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c (struct s390_frame_layout): Remove
	save_backchain_p.
	(s390_frame_info, s390_emit_prologue): Replace occurrences of
	save_backchain_p with TARGET_BACKCHAIN.

2005-01-11  Alan Modra  <amodra@bigpond.net.au>

	PR target/18916
	* builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
	* expr.h (struct locate_and_pad_arg_data): Add "boundary".
	* function.c (locate_and_pad_parm): Set new field.
	(assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
	Tweak where_pad test to include "none".  Always set mem align for
	stack_parm.
	(assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
	not sufficient for type.
	(assign_parm_setup_block): If stack_parm is zero on entry, always
	make a new stack local.  Block move old stack parm if necessary
	to new aligned stack local.
	(assign_parm_setup_stack): Use a block move to handle
	potentially misaligned entry_parm.
	(assign_parms_unsplit_complex): Specify required alignment when
	creating stack local.
	* calls.c (compute_argument_addresses): Override alignment of stack
	arg calculated from its type with the alignment given by
	FUNCTION_ARG_BOUNDARY.
	(store_one_arg): Likewise.

2005-01-11  Jan Beulich  <jbeulich@novell.com>

	* config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
	Change respective itanium_class attribute to ialu.
	(shladdp4_internal): New.
	* config/ia64/predicates.md (shladd_log2_operand): New.

2005-01-11  Richard Henderson  <rth@redhat.com>

	* expr.c (store_constructor): Use rtvec_alloc instead of
	alloca+gen_rtvec_v, and an incorrect number passed to alloca.

2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>

	* config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.

2005-01-11  Alan Modra  <amodra@bigpond.net.au>

	* varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
	* config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
	(TARGET_RWRELOC): Define.
	(ia64_rwreloc_section_type_flags): Delete.
	(ia64_section_type_flags): New function.
	* config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
	(TARGET_RWRELOC): Define.

2005-01-10  David Mosberger  <davidm@hpl.hp.com>

	PR target/18987
	* config/ia64/ia64.c (process_set): For alloc insn, only call
	process_epilogue is !frame_pointer_needed.

2005-01-10  Roger Sayle  <roger@eyesopen.com>

	PR c++/19355
	* c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
	unary operator and can't be treated as a binary/comparison operator.

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

	* config/i386/i386.c (ix86_function_value): Use type_natural_mode.
	(ix86_return_in_memory): Likewise.
	(function_arg_advance): Likewise.  Mirror structure in function_arg
	for choosing register to advance.

2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-vectorizer.c, tree.def: Fix comment typos.

2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>

	* config/s390/s390.c (struct processor_costs): 4 new fields:
	ddbr, ddr, debr, der.
	(s390_rtx_costs): More precise handling of divide instructions.

2005-01-10  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.

2005-01-10  Jan Beulich  <jbeulich@novell.com>

	* config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
	names resulting from -ffunction-sections/-fdata-sections and linkonce
	ones.
	* varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
	based on the section name. Rearrange the section name comparison logic
	slightly so that each section name is compared against at most once.

2005-01-10  Ben Elliston  <bje@au.ibm.com>

	* doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
	targets for which -fPIC reduces limitations on the GOT size.

2005-01-09  Falk Hueffner  <falk@debian.org>

	* fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
	X/C1 cmpop C2.

2005-01-09  David Edelsohn  <edelsohn@gnu.org>

	PR target/18720
	* collect2.c (main): Set aixrtl_flag for -brtl option.
	(resolve_lib_name): Search for .so file extension before .a
	if aixrtl_flag set.

2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>

	* tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
	(vect_analyze_data_refs_alignment): Add dump prints.

2005-01-09  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.c (vect_analyze_offset_expr): Use
	expr_invariant_in_loop_p.
	Initialize outputs first thing in the function.
	(vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
	(vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
	(vect_analyze_pointer_ref_access): Check that the initial condition of
	the access function is loop invariant.

2005-01-09  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
	(ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
	just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
	* config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
	mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
	movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
	movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
	sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
	ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
	mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
	mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
	sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
	mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
	mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
	gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
	ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
	mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
	mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
	mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
	eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
	pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
	pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
	pswapdv2sf2): Move to mmx.md; rename as necessary with leading
	mmx_ prefix.
	(mmx_clrdi, pavgusb): Remove.
	(ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
	with leading sse_ prefix.
	* config/i386/sse.md: Receive them.
	* config/i386/mmx.md: New file.
	(MMXMODE12, MMXMODE24, mmxvecsize): New.
	(subrv2sf3): Turn into expander for normal subtraction.
	(mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
	mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
	mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
	mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
	commutative; use ix86_binary_operator_ok.
	(mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
	mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
	mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
	mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
	mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
	Macroize from existing patterns; use ix86_binary_operator_ok.
	(mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
	(mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
	mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
	with vec_select+vec_concat.
	(mmx_pshufw, mmx_pshufw_1): Likewise.
	(mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
	(mmx_uavgv4hi3): Model correctly.
	* config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
	_mm_xor_si64): Remove casts.

2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>

	PR tree-optimization/19224
	* tree-scalar-evolution.c (get_instantiated_value,
	set_instantiated_value): New functions.
	(instantiate_parameters_1): Cache the results.
	(instantiate_parameters, resolve_mixers): Initialize and free
	the cache.

2005-01-08  David Edelsohn  <edelsohn@gnu.org>

	* config/i386/i386.md (addhi_4): Correct reference in comment.
	(addqi_4): Same.

2005-01-08  Richard Henderson  <rth@redhat.com>

	* config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
	(_mm_cvtsi128_si64x): Likewise.
	(_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
	_mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
	the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
	* config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.c (print_operand): Add 'H'.
	(ix86_fixup_binary_operands): Split out from ...
	(ix86_expand_binary_operator): ... here.
	(ix86_fixup_binary_operands_no_copy): New.
	(ix86_expand_fp_absneg_operator): Handle vector mode results.
	(bdesc_2arg): Update names for sse{,2,3}_ prefixes.
	(ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
	(safe_vector_operand): Use CONST0_RTX.
	(ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
	(ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
	CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
	expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
	special cases.
	* config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
	(IX86_BUILTIN_CMPNGESS): New.
	* config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
	(attr type): Add sselog1.
	(attr unit, attr memory): Handle it.
	(movti, movti_internal, movti_rex64): Move near other integer moves.
	(movtf, movtf_internal): Move near other fp moves.
	(SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
	vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
	movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
	movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
	sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
	sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
	sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
	mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
	rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
	sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
	sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
	sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
	vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
	smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
	cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
	cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
	vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
	vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
	sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
	sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
	cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
	cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
	cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
	cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
	ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
	subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
	smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
	sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
	sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
	sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
	gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
	ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
	ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
	sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
	sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
	sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
	sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
	sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
	sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
	sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
	mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
	addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
	movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
	non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
	same time.
	(SSEPUSH, push<SSEPUSH>): Remove.
	(MMXPUSH, push<MMXPUSH>): Remove.
	(sse_movaps, sse_movaps_1, sse_movups): Remove.
	(sse2_movapd, sse2_movdqa, sse2_movq): Remove.
	(sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
	(sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
	(maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
	(maskncmpv2df3, vmmaskncmpv2df3): Remove.
	(ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
	(lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
	* config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
	(athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
	* config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
	(ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
	(ppro_sse_log_V4SF): Handle sselog1.
	* config/i386/predicates.md (const_0_to_1_operand): New.
	(const_0_to_255_mul_8_operand): New.
	(const_1_to_31_operand): Rename from const_int_1_31_operand.
	(const_2_to_3_operand, const_4_to_7_operand): New.
	* config/i386/sse.md: New file.
	(SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
	(sse_movups): Rename from sse_movups_1.
	(sse_loadlss): Rename from sse_loadss_1.
	(andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
	from the name.
	(negv4sf2): Use ix86_expand_fp_absneg_operator.
	(absv4sf2, negv2df, absv2df): New.
	(addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
	(subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
	iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
	smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
	umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
	(sse3_addsubv4sf3): Model correctly.
	sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
	sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
	(sse_movhlps): Model with vec_select+vec_concat.
	(sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
	sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
	sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
	sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
	sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
	sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
	sse2_pshufhw_1): Likewise.
	(neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
	(add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
	sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
	ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
	sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
	ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
	(addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
	sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
	mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
	sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
	sminv8hi3): Mark commutative
	operands.  Use ix86_binary_operator_ok.
	(sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
	sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
	sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
	sse2_punpcklqdq): Allow operand2 in memory.
	(sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
	sse2_movsd): Add memory alternatives.
	(sse_storelps): Turn expander into an insn; split after reload.
	(sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
	(sse2_storehpd, sse2_storelpd): Add non-xmm outputs.

2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* configure.ac (DWARF-2 debug_line): Use objdump.
	* configure: Regenerate.

2005-01-08  Jeff Law  <law@redhat.com>
	    Diego Novillo  <dnovillo@redhat.com>

	PR tree-optimization/18241
	* tree-nrv.c (tree_nrv): Ignore volatile return values.
	* tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
	statements with volatile operands.
	* tree-ssa-operands.c (add_stmt_operand): Do add volatile
	operands after marking a statement with has_volatile_ops.

2005-01-08  Roger Sayle  <roger@eyesopen.com>

	* tree.c (int_fits_type_p): Always honor integer constant
	TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.

2005-01-08  Roger Sayle  <roger@eyesopen.com>

	* ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
	the latent bug in rtl_delete_block has been resolved.

2005-01-08  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
	(MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.

2005-01-08  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
	library as @multilib_dir@/$(SHLIB_SONAME).

2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
	* configure: Regenerate.

2005-01-07  Jakub Jelinek  <jakub@redhat.com>

	* c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
	TYPE_MODE.

2005-01-07  David Edelsohn  <edelsohn@gnu.org>

	PR target/13674
	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
	Convert non-word aligned offset address using ld/std into
	indirect address.

2005-01-07  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.

2005-01-07  Richard SAndiford  <rsandifo@redhat.com>

	* tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.

2005-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/19283
	* fold-const.c (fold_widened_comparison): Return NULL if shorter_type
	is not shorter than the original type.

	PR rtl-optimization/19012
	* config/i386/i386.md (addqi_1_slp): Set memory attribute.

	PR rtl-optimization/18861
	* cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
	(FULL_STATE): Define.
	(mark_tablejump_edge): New function.
	(purge_dead_tablejump_edges): New function.
	(find_bb_boundaries): Use it.

	PR tree-optimization/18828
	* builtins.c (expand_builtin_next_arg): Remove argument and all
	the argument checking.
	(expand_builtin): Adjust caller.
	(expand_builtin_va_start): Likewise.  Remove error for too many
	arguments.
	(fold_builtin_next_arg): Issue error for too many arguments.
	After checking arguments, replace them with magic arguments that
	prevent further checking of the args.

2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.

2005-01-06  Roger Sayle  <roger@eyesopen.com>

	PR target/6077
	* gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
	and %{.S:...} (and their negative variants) to test whether the
	input file is assembler or pre-processed-assembler independent of
	the actual filename extension.

2005-01-06  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
	of sign or zero extended values.

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

	* c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
	for IBM long double format correctly.

2005-01-06  Daniel Berlin <dberlin@dberlin.org>

	Fix PR tree-optimization/18792

	* tree-data-ref.c (build_classic_dist_vector): Change first_loop
	to first_loop_depth, and use loop depth instead of loop number.
	(build_classic_dir_vector): Ditto.
	(compute_data_dependences_for_loop): Use depth, not loop number.
	* tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
	number. Pass in loops, instead of loop numbers.
	(gather_interchange_stats): Ditto.
	(linear_transform_loops): Ditto.

2005-01-06  Richard Sandiford  <rsandifo@redhat.com>

	PR rtl-opt/13299
	* loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
	biv_fits_mode_p, extension_within_bounds_p): New functions.
	(check_ext_dependent_givs): Use them.

2005-01-06  Roger Sayle  <roger@eyesopen.com>

	* cfgrtl.c (rtl_delete_block): A basic block may be followed by
	more than one barrier, in which case we should delete them all.

2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* gcc.c (process_command): Change year in 'gcc --version' to 2005.

2005-01-05  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR middle-end/19286
	Fix PR debug/19267
	* dwarf2out.c (gen_subprogram_die): If we've already tried to
	output this subprogram, simply ignore this attempt to do it again.
	(add_abstract_origin_attribute): Don't abort trying to add the abstract
	origin attribute if it's not possible.
	(gen_block_die): Don't ignore subblocks of "unused" blocks.
	(decls_for_scope): Ditto.
	* gimple-low.c (mark_blocks_with_used_subblocks): Remove.
	(mark_used_blocks): Don't call mark_blocks_with_used_subblocks.

2005-01-05  Richard Henderson  <rth@redhat.com>

	PR target/11327
	* config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
	(bdesc_2arg): Use it.
	(ix86_expand_binop_builtin): Force operands into registers
	when optimizing.
	(ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
	ix86_expand_sse_compare, ix86_expand_sse_comi,
	ix86_expand_builtin): Likewise.

2005-01-05  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
	and VEC_SELECT.
	* config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
	(mulv4hi3): Set itanium_class mmmul.
	(fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
	(fpack): Rename from fpack_sfsf.

2005-01-05  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/10692
	* reload1.c (do_input_reload): Restrict the optimization deleteing
	a previous output reload to RELOAD_FOR_INPUT.

2005-01-05  Steven Bosscher  <stevenb@suse.de>

	* combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
	comment that we fall through after case.
	(mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
	(distribute_links): Likewise.
	* cse.c (cse_insn): Likewise.
	* cselib.c (cselib_invalidate_mem): Likewise.
	* df.c: Update comments at the top of the file.
	(read_modify_subreg_p): Update comments here too.
	(df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
	* flow.c (mark_set_1): Likewise.
	(mark_used_regs): Likewise.
	* gcse.c (mems_conflict_for_gcse_p): Likewise.
	(canon_list_insert): Likewise.
	(mark_set): Likewise.
	(try_replace_reg): Likewise.
	(store_killed_in_insn): Likewise.
	* loop.c (count_one_set): Likewise.
	(basic_induction_var): Likewise.
	* postreload-gcse.c (find_mem_conflicts): Likewise.
	* postreload.c (reload_combine_note_store): Likewise.
	(move2add_note_store): Likewise.
	* reload.c (find_equiv_reg): Likewise.
	(mark_referenced_resources): Likewise.
	* rtlanal.c (set_noop_p): Likewise.
	(note_stores): Likewise.
	(note_uses): Likewise.
	* sched-deps.c (sched_analyze_1): Likewise.
	* sched-rgn.c (check_live_1): Likewise.
	(update_live_1): Likewise.
	* config/i860/i860.c: Likewise.

	* rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
	an lvalue.
	(ZERO_EXTRACT): Mention that this one can be an lvalue.

	* doc/rtl.texi: Update documentation for bit-fields and SET.

2005-01-05  Roger Sayle  <roger@eyesopen.com>

	* ifcvt.c (find_if_case_1): Revert 2005-01-04 change.

2005-01-05  Jan Hubicka  <jh@suse.cz>
	    Richard Henderson  <rth@redhat.com>

	PR target/18910
	* config/i386/i386.c (ix86_expand_move): Handle tls symbols
	with an offset.

2005-01-05  Richard Henderson  <rth@redhat.com>

	PR target/12902
	* config/i386/i386.md (sse_movhps, sse_movlps): Remove.
	(sse_shufps): Change operand 3 to const_int_operand.
	(sse2_storelps): Fix typo in template.
	(sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
	* config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
	(ix86_expand_builtin): Likewise.

2005-01-05  Julian Brown  <julian@codesourcery.com>

	* config/arm/arm.c (arm_return_in_memory): Treat complex types
	as aggregates for AAPCS ABIs.

2005-01-05  Stan Shebs  <shebs@apple.com>

	* unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
	Mach-O getters if ppc64.
	* config/darwin.c (darwin_asm_output_dwarf_delta): Obey
	size argument.
	* config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
	signed four-byte field for global code case.
	(STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.

2005-01-05  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/19100
	* c-common.c: Include real.h.
	(c_common_truthvalue_conversion): Avoid destructively modifying expr.
	Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
	Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
	* Makefile.in (c-common.o): Update dependencies.

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

	* c-parse.in (asm_string): Add trailing semicolon.

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

	* c-parse.in (asm_string): New.  Don't allow wide strings in
	'asm'.
	(simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
	asm_string instead of STRING.

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

	* c-typeck.c (constructor_no_implicit): Remove.
	(set_designator, process_init_element): Don't check
	constructor_no_implicit.

2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
	    Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/16482
	* lcm.c (create_pre_exit): New.
	(optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
	ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.

2004-01-05  Richard Earnshaw  <rearnsha@arm.com>

	* arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
	-msoft-float in target_float_switch.
	* arm.c (arm_override_options): Fix processing of target_float_switch.

2004-01-05  Richard Earnshaw  <rearnsha@arm.com>

	* arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
	preferencing.

2004-01-05  Uros Bizjak  <uros@kss-loka.si>

	* doc/invoke.texi (Intel 386 and AMD x86-64 Options):
	Replace i387 with 'i386 compiler' in -mfpmath=sse option.

2005-01-04  Roger Sayle  <roger@eyesopen.com>

	* ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
	if deleting the then-block allows the test-block to fallthru to the
	else-block.

2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c/19152
	* c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
	after the full declaration if the are in two different TUs.

2005-01-04  Richard Henderson  <rth@redhat.com>

	PR tree-opt/19158
	* tree-sra.c (generate_one_element_init): Just
	call gimplify_and_add.
	(generate_element_init): Record the
	new referenced variables and mark them for renaming
	and split out to ...
	(generate_element_init_1): This.
	(scalarize_init): Don't call push_gimplify_context/
	pop_gimplify_context.

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

	* toplev.c (get_src_pwd): Handle failure of getpwd().

2005-01-04  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_single_bit_test): Delete unreachable handling
	of TRUTH_NOT_EXPR.
	(fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
	all the cases handled by it are inverted by invert_truthvalue.

2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.md (save_register_windowdi): Add missing mode.
	(save_register_windowsi): Likewise.

2005-01-04  Richard Henderson  <rth@redhat.com>

	* tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.

2005-01-04  Uros Bizjak  <uros@kss-loka.si>

	PR middle-end/17767
	* cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
	any simplifications of vector mode comparison operators.
	* simplify-rtx.c (simplify_relational_operation): Fix variable name.

2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
	    Devang Patel  <dpatel@apple.com>

	PR tree-optimization/18308
	* tree-if-conv.c (add_to_dst_predicate_list): Gimplify
	the operands before creating a new expression.
	* dojump.c (do_jump): Make drop_through_label available
	for all cases.  Add expansion of COND_EXPR.

2005-01-04  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.c (vect_analyze_offset_expr): Test for
	INTEGER_CST instead of TREE_CONSTANT.
	(vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
	instead of TREE_CONSTANT.
	(vect_analyze_pointer_ref_access): Test for INTEGER_CST
	instead of TREE_CONSTANT.

2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* tree-eh.c (replace_goto_queue): Return early if the queue is empty.

2005-01-04  Uros Bizjak  <uros@kss-loka.si>

	PR target/19240
	* config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
	(*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).

2005-01-03  Richard Henderson  <rth@redhat.com>

	* fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
	(fold_convert_const_int_from_int, fold_convert_const_int_from_real,
	fold_convert_const_real_from_real): Split out from ...
	(fold_convert_const): ... here.

2005-01-03  Richard Henderson  <rth@redhat.com>

	PR target/19235
	* config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
	(mov<MMXMODEI>_internal): Likewise.
	(movdf_nointeger): Prefer Y while not preferring, but allowing, x.
	Add V2SF case; use it for SSE1; don't use TI.
	(movdf_integer): Likewise.
	(mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.

2005-01-03  Ira Rosen  <irar@il.ibm.com>

	* tree-vectorizer.c (vect_strip_conversions): New function.
	(vect_analyze_offset_expr): Call vect_strip_conversions. Add
	check for binary class.

2005-01-03  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR debug/17924
	Fix PR debug/19191
	* dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
	is a decl.
	* gimple-low.c (mark_blocks_with_used_vars): New function.
	(mark_blocks_with_used_subblocks): Ditto.
	(mark_used_blocks): Ditto.
	(pass_mark_used_blocks): New pass.
	* tree-inline.c: Include debug.h.
	(expand_call_inline): Call outlining_inline_function here.
	* tree-optimize.c (init_tree_optimization_passes): Add
	pass_mark_used_blocks.
	* tree-pass.h (pass_mark_used_blocks): New.
	* Makefile.in (tree-inline.o): Add debug.h dependency.

2005-01-03  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.c (darwin_handle_weak_import_attribute): Permit
	VAR_DECLs to have weak_import attribute.

	* config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
	'struct ucontext'.

2004-01-03  Steven Bosscher  <stevenb@suse.de>

	* passes.c (rest_of_compilation): Don't run regmove if only
	flag_expensive_optimizations, require flag_regmove instead.

2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
	register "sparc".
	* config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
	* config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
	* config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
	* config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.

2005-01-03  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
	(ia64_const_ok_for_letter_p): New.
	(ia64_const_double_ok_for_letter_p): New.
	(ia64_extra_constraint): New.
	(ia64_expand_vecint_compare): New.
	(ia64_expand_vcondu_v2si): New.
	(ia64_expand_vecint_cmov): New.
	(ia64_expand_vecint_minmax): New.
	(ia64_print_operand): Add 'v'.
	(ia64_preferred_reload_class): New.
	(ia64_vector_mode_supported_p): New.
	* config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
	(PREFERRED_RELOAD_CLASS): Move to function.
	(CONST_OK_FOR_LETTER_P): Move to function.
	(CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
	(CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
	(CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
	(EXTRA_CONSTRAINT): Move to function.
	* config/ia64/ia64.md: Include vect.md.
	(itanium_class): Add mmalua.
	(type): Handle it.
	* config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
	(1b_mmalua): New.
	* config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
	* config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
	CONST0_RTX.
	(const_int_2bit_operand): New.
	(fr_reg_or_0_operand): New.
	* config/ia64/ia64-modes.def: Add vector modes.
	* config/ia64/ia64-protos.h: Update.
	* config/ia64/vect.md: New file.

2005-01-03  Richard Henderson  <rth@redhat.com>

	* simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.

2005-01-03  Uros Bizjak  <uros@kss-loka.si>

	PR target/19236
	* config/i386/i386.c (log1psf2): Change mode of operands[0,1]
	to SFmode.
	(log1pdf2): Change mode of operands[0,1] to DFmode.

2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
	* config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
	* config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
	* config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
	SPARC_RELAXED_ORDERING.

2005-01-03  Richard Henderson  <rth@redhat.com>
	    Uros Bizjak  <uros@kss-loka.si>

	PR target/14631
	* config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
	IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
	* config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
	handling.
	(*mmx_pinsrw, *sse2_pinsrw): New patterns.
	* config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
	const_pow2_1_to_128_operand): New predicates.

2005-01-02  Greg McGary  <greg@mcgary.org>

	* tree-mudflap.c (mf_varname_tree): decl_printable_name handles
	anonymous decls.
	(mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
	object.  [ptr_type]: Remove unused variable.
	Remember nearest addressable array-element or record-component
	when checking bitfield components.  Tolerate empty BIND_EXPR.

2005-01-01  Richard Henderson  <rth@redhat.com>

	* tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
	that don't narrow the value.  Fail for other conversions.

2005-01-01  Richard Henderson  <rth@redhat.com>

	PR c/19031
	* c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
	* c-lang.c (finish_file): Don't do it here.
	* objc/objc-act.c (objc_finish_file): Likewise.

	* cgraph.c (decl_assembler_name_equal): New.
	(cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
	(cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
	* cgraph.h (struct cgraph_varpool_node): Add next.
	(cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
	* varasm.c (assemble_alias): Mark the target as needed.

2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/19221
	* function.c (get_arg_pointer_save_area): Use entry_of_function
	instead of get_insns.

2005-01-01  Roger Sayle  <roger@eyesopen.com>
	    Andrew Pinski  <pinskia@physics.uc.edu>
	    James E. Wilson  <wilson@specifixinc.com>

	PR rtl-optimization/12092
	* loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
	is zero.

2005-01-01  Roger Sayle  <roger@eyesopen.com>
	    Olivier Hainque  <hainque@act-europe.fr>

	* tree.c (int_fits_type_p): A narrower type always fits in a
	wider one, except for negative values into unsigned types.

2005-01-01  Roger Sayle  <roger@eyesopen.com>

	* tree.c (int_fits_type_p): Compare the result of force_fit_type
	with the original constant rather than require TREE_OVERFLOW.

2005-01-01  Steven Bosscher  <stevenb@suse.de>

	PR middle-end/17544
	* c-decl.c (finish_function): If compiling C99, annotate the
	compiler generated return with the current file name and line 0.
	* tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
	the source line is greater than 0.
	(remove_bb): Likewise.
