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

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

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

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

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

2005-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/.

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

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

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

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

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

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

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

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

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

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

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

	* tree-ssa-dom.c (extract_range_from_cond): Correct condition.

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

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

2005-01-05  Richard Earnshaw  <rearnsha@arm.com>

	* arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
	preferencing.

2005-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'.

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


Copyright (C) 2005 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
