2004-06-30  Roger Sayle  <roger@eyesopen.com>

	* expmed.c (expand_shift): Consider expanding LSHIFT_EXPR by a
	constant as a sequence of additions depending upon the rtx_costs.
	(synth_mult): Update the "observed" cost of a shift, based upon
	the above optimization.

2004-06-28  Geoffrey Keating  <geoffk@apple.com>
	    Andreas Tobler  <a.tobler@schweiz.ch>

	PR 15813
	* dwarf2out.c (reg_save): Output DW_CFA_same_value when a
	register is saved in itself.
	(initial_return_save): If the return address is a register,
	it's already there, don't bother to mention it in the CFI.
	(struct queued_reg_save): Add field saved_reg.
	(struct reg_saved_in_data): New.
	(regs_saved_in_regs): New.
	(num_regs_saved_in_regs): New.
	(queue_reg_save): Add extra parameter to specify register saved
	in register.  Remove duplicate entries from queue.  Add comment
	for function.
	(flush_queued_reg_saves): Handle registers saved in registers.
	Update regs_saved_in_regs.  Add comment for function.
	(clobbers_queued_reg_save): Add comment for function.  Allow
	for regs_saved_in_regs.
	(reg_saved_in): New.
	(dwarf2out_frame_debug_expr): Handle saving registers in other
	registers.
	(dwarf2out_frame_debug): Reset regs_saved_in_regs.
	* unwind-dw2.c (execute_cfa_program): Correct handling of
	DW_CFA_same_value.  Add FIXME comment about incorrect implementation
	of DW_CFA_restore_extended.
	* config/rs6000/rs6000.c (rs6000_emit_prologue): Let
	dwarf2out_frame_debug_expr see instructions that save registers
	in other registers or save those other registers in memory.

	* unwind-dw2.c (DWARF_FRAME_REGISTERS): Move to unwind-dw2.h.
	(_Unwind_FrameState): Likewise.
	* unwind-dw2.h: New.
	* Makefile.in (LIB2ADDEHDEP): Add unwind-dw2.h.
	* config/rs6000/darwin-fallback.c: New file.
	* config/rs6000/darwin.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
	* config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add darwin-fallback.o.

2004-07-01  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_mixed_function_arg): Rewrite.
	(function_arg): Use rs6000_arg_size rather than CLASS_MAX_NREGS in
	calculating gpr size for altivec.  Simplify and correct
	rs6000_mixed_function_arg calls.  Call rs6000_mixed_function_arg
	for ABI_V4 gpr case too.  Fix off-by-one error in long double
	reg test.  Generate the correct PARALLEL to handle long double
	for ABI_AIX 32-bit.  Use this for -m32 -mpowerpc64 fpr case too.
	(function_arg_partial_nregs): Align before calculating regs left.
	Don't return info on partial fprs when we need info on gprs.
	Correct long double fpr off-by-one error.

2004-06-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa-protos.h (prefetch_operand): Add prototype.
	* pa.c (prefetch_operand): New function.
	* pa.h (prefetch_operand): Add to PREDICATE_CODES.
	* pa.md (prefetch, prefetch_32, prefetch_64): New prefetch patterns.

2004-06-30  Richard Henderson  <rth@redhat.com>

	* function.h (struct function): Remove x_whole_function_mode_p.
	* c-decl.c (store_parm_decls): Don't set it.
	* tree-optimize.c (tree_rest_of_compilation): Likewise.
	* passes.c (rest_of_compilation): Don't check it.
	* stmt.c (expand_fixup): Likewise.
	* function.c (fixup_var_refs_insn): Remove unused variable.

2004-06-30  Richard Henderson  <rth@redhat.com>

	* tree.h (immediate_size_expand): Delete.
	* stor-layout.c (immediate_size_expand): Delete.
	(variable_size): Don't look at it.
	* c-decl.c (push_parm_decl): Don't frob immediate_size_expand.
	(start_function): Likewise.
	* cfgexpand.c (construct_exit_block): Likewise.
	* function.c (init_function_start, expand_function_end): Likewise.
	* tree-optimize.c (tree_rest_of_compilation): Likewise.

2004-06-30  Richard Henderson  <rth@redhat.com>

	* gimplify.c (gimplify_compound_lval): Take fallback argument
	instead of want_lvalue.
	(gimplify_call_expr): Take want_value argument instead of test
	function.  Gimplify arguments to val only if reg_type; otherwise
	allow lvalue forms.
	(gimplify_expr): Update gimplify_compound_lval and gimplify_call_expr
	calls.
	* tree-gimple.c: Update GIMPLE grammer.  Use true/false not 1/0.
	Tidy commentary globally.
	(get_call_expr_in): Remove RETURN_EXPR handling.  Tidy.
	* tree-gimple.h (is_gimple_call_addr): Mark extern.

	* gimplify.c (gimplify_modify_expr_to_memcpy): Fix typo.

2004-06-30  Richard Henderson  <rth@redhat.com>

	* tree-gimple.c (right_assocify_expr): Kill
	(rationalize_compound_expr): Kill.
	* tree-gimple.h: Likewise.
	* tree-inline.c (expand_call_inline): Don't call it.

	* function.h (struct function): Remove x_last_parm_insn,
	inl_last_parm_insn.
	(last_parm_insn): Remove.
	* function.c (free_after_compilation): Don't clear them.
	(fixup_var_refs_insn, assign_parms): Don't set them.

	* function.c, rtl.h (get_first_nonparm_insn): Remove.

2004-06-30  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-common.h (check_function_format): Remove first parameter.
	* c-format.c (format_check_context): Remove status.
	(check_format_info, check_format_info_main,
	maybe_read_dollar_number, avoid_dollar_number,
	finish_dollar_format_checking, check_format_types,
	check_function_format): Remove first parameter.  Don't use
	status_warning.
	(check_format_arg): Don't use status_warning.
	(status_warning): Remove.
	* c-common.c (check_function_arguments): Update call to
	check_function_format.

2004-06-30  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc-protos.h (output_cbranch): Constify return
	value.
	(output_v9branch): Likewise.
	(sparc_v8plus_shift): Likewise.  Rename into output_v8plus_shift.
	* config/sparc/sparc.c (output_cbranch): Constify return value.
	Prettify output for delay slots.
	(output_v9branch): Likewise.
	(sparc_v8plus_shift): Constify return value.  Rename into
	output_v8plus_shift.
	* config/sparc/sparc.md (ashldi3_v8plus): Adjust call to
	sparc_v8plus_shift.
	(ashrdi3_v8plus): Likewise.
	(lshrdi3_v8plus): Likewise.
	(call_address_struct_value_sp32): Prettify output for delay slots.
	(call_symbolic_struct_value_sp32): Likewise.
	(call_address_untyped_struct_value_sp32): Likewise.
	(call_symbolic_untyped_struct_value_sp32): Likewise.

2004-06-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* common.opt (ftree-loop-optimize): New flag.
	* tree-flow.h (kill_redundant_phi_nodes): Declare.
	* tree-optimize.c (init_tree_optimization_passes): Add pass_loop.
	* tree-pass.h (pass_loop_init, pass_loop_done): Declare.
	* tree-ssa-loop.c (current_loops): New variable.
	(tree_loop_optimizer_init, gate_loop, tree_ssa_loop_init,
	tree_ssa_loop_done): New functions.
	(pass_loop, pass_loop_init, pass_loop_done): New passes.
	* tree-ssa.c (kill_redundant_phi_nodes): Export.
	* doc/invoke.texi (-ftree-loop-optimize): Document.

2004-06-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* tree-ssa-loop-ch.c: New file.
	* Makefile.in (tree-ssa-loop-ch.o): Add.
	(tree-into-ssa.o): Add GGC_H dependency.
	* tree-cfg.c (tree_duplicate_bb): Copy virtual arguments.
	* tree-flow.h (rewrite_into_ssa): Declaration changed.
	(rewrite_ssa_into_ssa, compute_global_livein, duplicate_ssa_name):
	Declare.
	* tree-into-ssa.c: Include ggc.h.
	(struct def_blocks_d): Add phi_blocks field.
	(struct mark_def_sites_global_data): Add names_to_rename field.
	(struct ssa_name_info): New.
	(compute_global_livein): Export.
	(set_def_block, insert_phi_nodes, mark_def_sites, set_livein_block,
	insert_phi_nodes_1, rewrite_finalize_block, insert_phi_nodes_for,
	register_new_def, get_reaching_def, def_blocks_free,
	get_def_blocks_for, rewrite_into_ssa): Modified to work with
	rewrite_ssa_into_ssa.
	(get_ssa_name_ann, get_phi_state, set_phi_state, get_current_def,
	set_current_def, ssa_mark_def_sites_initialize_block,
	ssa_mark_phi_uses, ssa_mark_def_sites, duplicate_ssa_name,
	ssa_register_new_def, ssa_rewrite_initialize_block,
	ssa_rewrite_phi_arguments, ssa_rewrite_finalize_block,
	ssa_rewrite_stmt, rewrite_ssa_into_ssa, rewrite_all_into_ssa): New
	functions.
	(pass_build_ssa): Call rewrite_all_into_ssa.
	* tree-optimize.c (execute_todo, execute_one_pass,
	tree_rest_of_compilation): Allocate vars_to_rename only once.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Provide parameter
	to rewrite_into_ssa.
	* tree-ssa-loop.c (should_duplicate_loop_header_p,
	mark_defs_for_rewrite, duplicate_blocks, do_while_loop_p,
	copy_loop_headers, gate_ch, pass_ch): Moved to tree-ssa-loop-ch.c.
	Use rewrite_ssa_into_ssa.
	* tree-ssa-operands.c (copy_virtual_operands): New function.
	* tree-ssa-operands.h (copy_virtual_operands): Declare.
	* tree.h (struct tree_ssa_name): Add aux field.
	(SSA_NAME_AUX): New macro to access it.

2004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>

	* prefix.c (lookup_key): Cast buffer to LPBYTE.

2004-06-30  Per Bothner  <per@bothner.com>

	Conditionally compile support for --enable-mapped_location.
	* input.h:  #include line-map.h for source_location typedef.
	(BUILTINS_LOCATION, UNKNOWN_LOCATION, expand_location,
	LOCATION_FILE, LOCATION_LINE):  New macros and functions.
	(expanded_location, source_locus):  New typedefs.
	(push_srcloc):  Change parameter list if USE_MAPPED_LOCATION.
	* rtl.def (NOTE, ASM_OPERANDS):  Modify specifcation, if
	USE_MAPPED_LOCATION.
	* rtl.h (NOTE_DELETED_LABEL_NAME):  New macro.
	(NOTE_SOURCE_LOCATION, NOTE_EXPNDED_LOCATION, SET_INSN_DELETED):
	New conditional macros.
	(ASM_OPERANDS_SOURCE_FILE, ASM_OPERANDS_SOURCE_LINE):  Replace
	by ASM_OPERANDS_SOURCE_LOCATION if USE_MAPPED_LOCATION.
	* tree.h (EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_HAS_LOCATION,
	EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LINENO,
	DECL_IS_BUILTIN):  New macros, most depending on USE_MAPPED__LOCATION.
	(tree_exp):  Change type of locus to use new source_locus typedef.
	* tree.c (build1_stat):  Use SET_EXPR_LOCATION.
	(annotate_with_locus, annotate_with_file_line):  Conditionalize.
	(expand_location):  New function.
	* toplev.c (unknown_location):  New static, when USE_MAPPED_LOCATION.
	(push_srcloc, pop_loc):  Adjust parameter handling.
	(process_options):  Don't set input_filename by itself.
	(lang_dependent_init):  Save, set input_location to <built-in>.
	(warn_deprecated_use):  Use expand_location.

	* basic-block.h (struct edge_def):  Use new source_locus typedef.
	* c-common.c (fname_decl):  Update save/clear/store of input_location.
	(c_do_switch_warnings):  Update for USE_MAPPED_LOCATION case.
	* c-decl.c:  Likewise.
	* c-dump.c (dump_stmt):  Likewise.
	* c-gimplify.c (c-gimplify.c):  Generalize using SET_EXPR_LOCATION.
	* c-lex.c (cb_line_change):  If USE_MAPPED_LOCATION use token's	src_loc
	to set input_location direction, rather than using linemap_lookup.
	(fe_file_change, cb_def_pragma):  Again use source_location directly.
	* c-opts.c (saved_lineno):  Remove static variable.
	(c_common_post_options, c_common_init):  Don't bothner to save,
	clear and restore input_Location - now handled by lang_dependent_init.
	* function.c (init_function_start):  Use new DECL_IS_BUILTIN macro.
	* xcoffout.c (xcoff_assign_fundamental_type_number):  Likewise.
	* tree-mudflap.c (mf_file_function_line_tree):  Take a location_t
	rather than a pointer to one.  Use expand_location.
	(mf_varname_tree):  Use expand_location.
	* tree-dump.c:  Use expand_location on DECL_SOURCE_LOCATION.
	* coverage.c:  Likewise.
	* print-tree.c:  Likewise.
	* c-aux-info.c (gen_aux_info_record):  Likewise.
	* c-parse.in:  Use SET_EXPR_LOCATION macro.
	* gimple-low.c:  Likewise.
	* tree-mudflap.c:  Likewise.
	* gimplify.c:  Likewise.  Also use EXPR_LOCATION and EXPR_HAS_LOCATION.
	* c-ppoutput.c:  Use new source_location typedef instead of fileline.
	* c-semantics.c:  Use new macros.
	* c-typeck.c:  Likewise.
	* cfgexpand.c:  Handle USE_MAPPED_LOCATION case for function_end_locus.
	* cfglayout.c (insn_locators_initialize):  Const cleanup.  New macros.
	* cfgrtl.c (delete_insn):  Use new NOTE_DELETED_LABEL_NAME macro.
	* print-rtl.c (print_rtx):  Likewise.
	* emit-rtl.c:  Don't clear NOTE_SOURCE_FILE if USE_MAPPED_LOCATION.
	* combine.c:  Use new SET_INSN_DELETED macro.
	* flow.c:  Likewise.
	* haifa-sched.c:  Likewise.
	* ifcvt.c:  Likewise.
	* recog.c:  Likewise.
	* reload1.c:  Likewise.
	* diagnostic.c:  Use expand_location macro.
	* pretty-print.c (pp_base_format_text):  Likewise.
	* profile.c:  Likewise.
 	* dwarf2out.c:  Likewise.  Also use expand_location, DECL_IS_BUILTIN.
 	* dwarf2out.c (dwarf2out_decl:  Use BUILTINS_LOCATION.
	* emit-rtl.c (emit_line_note):  Simplify if USE_MAPPED_LOCATION.
	(force_next_line_note, insn_emit):  Handle USE_MAPPED_LOCATION case.
	* final.c (final):  Likewise.
	* haifa-sched.c:  Likewise.
	* integrate.c:  Likewise.
	* jump.c:  Likewise.
	* rtl-error.c:  Likewise.
	* stmt.c (check_seenlabel):  Likewise.
	* tree-pretty-print.c:  Likewise.
	* gengtype-lex.l:  Temporary kludge to avoid duplicate typedef.
	* gengtype.c:  Update for now typdefs in input.h.  More kludges.
	* modulo-sched.c (sms_schedule):  Use NOTE_EXPANDED_LOCATION macro.
	* ra-debug.c (ra_print_rtl):  Likewise.
	* sched-rgn.c:  Likewise.
	* sched-vis.c:  Likewise.
	* rtl.h (gen_rtx_ASM_OPERANDS):  Redefine if USE_MAPPED_LOCATION.
	* stmt.c (expand_asm_operands):  Adjust calls to gen_rtx_ASM_OPERANDS.
	* tree-cfg.c:  Use new macros and typedefs.
	* tree-flow-inline.h:  Likewise.

2004-06-30  Richard Sandiford  <rsandifo@redhat.com>
	    Eric Christopher  <echristo@redhat.com>

	* config/mips/3000.md: Improve description.

2004-06-30  Paul Brook  <paul@codesourcery.com>

	* config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn,
	cirrus_movdf_hard_insn): Set pool ranges for coprocessor loads.

2004-06-30  Sebastian Pop  <pop@cri.ensmp.fr>

	* Makefile.in (OBJS-common): Add tree-chrec.o.
	(tree-chrec.o): New rule.
	(GTFILES): Add tree-chrec.h.
	* gengtype.c (open_base_files): Add tree-chrec.h.
	* tree-chrec.c: New file.
	* tree-chrec.h: New file.
	* tree.def (SCEV_KNOWN, SCEV_NOT_KNOWN, POLYNOMIAL_CHREC): New nodes.

2004-06-30  Roger Sayle  <roger@eyesopen.com>

	* combine.c: Include "output.h" to define dump_file.
	(uid_insn_cost, last_insn_cost): New global variables.
	(combine_insn_cost): New function to estimate cost of an insn.
	(combine_validate_cost): New function to determine whether a
	try_combine replacement sequence is cheaper than the original.
	(combine_instructions): Allocate and populate uid_insn_cost
	array at the start of the combine pass, and deallocate it after.
	(try_combine): Check combine_validate_cost to determine whether
	a "recombination" should be rejected as being more expensive.
	* Makefile.in (combine.o): Add dependency upon output.h.

2004-06-30  Roger Sayle  <roger@eyesopen.com>

	* config/rs6000/rs6000.c (rs6000_rtx_costs) <MINUS_EXPR>: Handle
	subtractions identically to additions, always COSTS_N_INSNS (1).

2004-06-30  J"orn Rennecke <joern.rennecke@superh.com>

	* expmed.c (expand_smod_pow2): Fix sign of mask.

2004-06-29  Diego Novillo  <dnovillo@redhat.com>

	* tree-ssa-pre.c (phi_trans_add): Use is_gimple_min_invariant
	to check for constants.
	(set_remove): Likewise.
	(value_replace_in_set): Likewise.
	(find_leader): Likewise.
	* tree-vn.c (set_value_handle): Likewise.
	(vn_lookup): Likewise.
	(vn_lookup_or_add): Likewise.

2004-06-30  Eric Botcazou  <ebotcazou@libertysurf.fr>

	RTL prologue/epilogue for SPARC
	* config/sparc/sparc-protos.h (sparc_emitting_epilogue): Delete.
	(sparc_skip_caller_unimp): Likewise.
	(load_pic_register): Likewise.
	(leaf_return_peephole_ok): Likewise.
	(compute_frame_size): Rename into sparc_compute_frame_size.
	(sparc_expand_prologue): New prototype.
	(sparc_expand_epilogue): Likewise.
	(output_return): Likewise.
	(eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
	* config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Adjust call to
	compute_frame_size.  Move comment up.
	(DELAY_SLOTS_FOR_EPILOGUE): Delete.
	(ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
	(EPILOGUE_USES): Return true for %g1 if the function uses EH return.
	* config/sparc/sparc.md (UNSPECV_SAVEW): New constant.
	(type attribute): Add 'return' and 'savew'.
	(eligible_for_return_delay): New attribute.
	(return): New delay_slot.
	(sibcall_epilogue): Call sparc_expand_epilogue.
	(prologue): Likewise.  Move up.
	(save_register_window): New expander.
	(save_register_windowsi): New pattern.
	(save_register_windowdi): Likewise.
	(epilogue): New expander.
	(return_internal): New pattern.
	(Return peepholes): Delete.
	* config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): New macro.
	(sparc_emitting_epilogue): Delete.
	(sparc_skip_caller_unimp): Likewise.
	(sparc_sr_alias_set): New global variable.
	(frame_base_name): Delete.
	(frame_base_reg): New global variable.
	(sparc_override_options): Get new alias set for save/restore.
	(leaf_return_peephole_ok): Delete.
	(eligible_for_epilogue_delay): Rename into eligible_for_return_delay.
	Factor out code into eligible_for_restore_insn_delay.
	(eligible_for_restore_insn_delay): New function extraced from above.
	Use IN_UNCOND_BRANCH_DELAY_TRUE instead of IN_BRANCH_DELAY_TRUE.
	(eligible_for_sibcall_delay): Use SIBCALL_SLOT_EMPTY_P.
	Factor out code into eligible_for_restore_insn_delay.
	(load_pic_register): Make static.  Remove check.
	(save_regs): Delete.
	(restore_regs): Likewise.
	(compute_frame_size): Rename into sparc_compute_frame_size.
	Rename leaf_function into leaf_function_p.
	(build_big_number): Delete.
	(save_or_restore_regs): New function.
	(emit_save_regs): Likewise.
	(emit_restore_regs): Likewise.
	(emit_stack_pointer_increment ): Likewise.
	(emit_stack_pointer_decrement): Likewise.
	(sparc_expand_prologue): Likewise.
	(sparc_function_prologue): Rename into sparc_asm_function_prologue.
	Remove all code to emit instructions.
	(sparc_expand_epilogue): New function.
	(sparc_function_epilogue): Rename into sparc_asm_function_epilogue.
	Remove all code to emit instructions.
	(output_restore): New function.
	(output_return): Likewise.
	(output_sibcall): Factor out code into output_restore.
	(print_operand): Adjust for frame_base_reg.
	* target.h (struct gcc_target): New field 'late_rtl_prologue_epilogue'.
	* target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): New define.
	(TARGET_INITIALIZER): Add it.
	* passes.c (rest_of_compilation): Set the conditional predicate
	'current_function_uses_only_leaf_regs' before sched2.  If target
	has 'late_rtl_prologue_epilogue', emit RTL prologue/epilogue right
	before sched2.
	* reorg.c (return_insn_p): New predicate.
	(find_end_label): Use it.
	(relax_delay_slots): Do not thread an unconditional jump that points
	to the end return label.
	* doc/tm.texi (Registers) <Leaf Functions>: Clarify the validity
	domain of 'current_function_uses_only_leaf_regs'.
	(Stack and Calling) <Function Entry>: Document new target hook
	TARGET_LATE_RTL_PROLOGUE_EPILOGUE.

2004-06-30  Jakub Jelinek  <jakub@redhat.com>

	* simplify-rtx.c (simplify_binary_operation): Simplify
	((A & N) + B) & M -> (A + B) & M if M is pow2 minus 1 constant and
	N has at least all bits in M set as well.

	PR tree-optimization/15310
	* expr.c (expand_assignment): Optimize += or -= on a bit field in
	most significant bits.

2004-06-30  Steven Bosscher  <stevenb@suse.de>

	* config/c4x/c4x.md: Fix comment.

2004-06-30  Akos Kiss  <akiss@inf.u-szeged.hu>

	* arm.md (cond_return_inverted): Add "length" attribute.

2004-06-29  Per Bothner  <per@bothner.com>

	* config/i386/winnt.c (i386_pe_encode_section_info):  Smash rtlname's
	XSTR in place, so we don't lose SYMBOL_REF_DECL info.

2004-06-29  Zack Weinberg  <zack@codesourcery.com>

	* config/ia64/hpux.h: Target does too support thread-local storage.

2004-06-29  Zack Weinberg  <zack@codesourcery.com>

	* combine.c (distribute_notes): Don't look at global_regs for
	pseudos.

2004-06-29  Richard Henderson  <rth@redhat.com>

	* gimplify.c (gimplify_modify_expr_rhs): Move immediately before
	gimplify_modify_expr.
	(gimplify_init_constructor): Likewise.  Gimplify the null
	CONSTRUCTOR assignment.
	(gimplify_modify_expr_to_memcpy): New.
	(gimplify_modify_expr_to_memset): New.
	(gimplify_modify_expr): Use them.

2004-06-29  Roman Zippel <zippel@linux-m68k.org>

	* web.c (union_defs): use all defs of an instruction to create a
	union with a read/write use

2004-06-29  Richard Henderson  <rth@redhat.com>

	PR middle-end/16216
	* builtins.c (gimplify_va_arg_expr): Check for valist being
	an error_mark_node.

2004-06-29  Jakub Jelinek  <jakub@redhat.com>

	PR target/16195
	* config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
	r30 fixed if TARGET_TOC && TARGET_MINIMAL_TOC.
	(first_reg_to_save): Pretend call_used_regs[30] is 0 if
	TARGET_TOC && TARGET_MINIMAL_TOC.
	(rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.

2004-06-29  J"orn Rennecke <joern.rennecke@superh.com>

	Fix gcc.dg/builtin-apply2.c failures:
	* sh.h (TARGET_VARARGS_PRETEND_ARGS): Define.
	* sh.c (extra_push): Delete.
	(sh_expand_prologue): Don't do extra stack adjustment for
	current_function_pretend_args_size if it comes from varargs setup.
	Use TARGET_VARARGS_PRETEND_ARGS.  Don't set extra_push.
	(sh_expand_epilogue): Don't use extra_push.
	(sh_setup_incoming_varargs): Set pretend_arg_size when necessary.

2004-06-29  Roger Sayle  <roger@eyesopen.com>

	* expmed.c (expand_smod_pow2): Provide alternate implementations
	that avoid conditional jumps, and choose between them based upon
	the target's rtx_costs.

2004-06-29  Andrew Pinski  <apinski@apple.com>

	* tree-sra.c: Include expr.h for definition of MOVE_RATIO.
	* Makefile.in (tree-sra.c): Update dependencies.

2004-06-29  Richard Henderson  <rth@redhat.com>

	* tree-sra.c: Rewrite from scratch.  Handle nested aggregates.

2004-06-29  Nathan Sidwell  <nathan@codesourcery.com>

	* vec.h (VEC_T_safe_push, VEC_T_safe_insert): Tweak for when
	size_t is bigger than int.

2004-06-29  Paul Brook  <paul@codesourcery.com>

	* target-def.h (TARGET_CXX_GET_COOKIE_SIZE,
	TARGET_CXX_COOKIE_HAS_SIZE): Define.
	(TARGET_CXX): Use them.
	* target.h (struct gcc_target): Add cxx.get_cookie_size and
	cxx.cookie_has_size.
	* targhooks.c (default_cxx_get_cookie_size): New fucntion.
	* targhooks.h (default_cxx_get_cookie_size): Add prototype.
	* config/arm/arm.c (TARGET_CXX_GET_COOKIE_SIZE,
	TARGET_CXX_COOKIE_HAS_SIZE): Define.
	(arm_get_cookie_size, arm_cookie_has_size): New functions.
	* Make-lang.in (cp/init.o): Add dependency on $(TARGET_H).
	* doc/tm.texi: Document TARGET_CXX_GET_COOKIE_SIZE and
	TARGET_CXX_COOKIE_HAS_SIZE.

2004-06-29  J"orn Rennecke <joern.rennecke@superh.com>

	* cfglayout.c (fixup_reorder_chain): Don't do anything for
	e_fall->dest == EXIT_BLOCK_PTR.

2004-06-28  Richard Henderson  <rth@redhat.com>

	* tree-cfg.c (verify_stmt): Add last_in_block parameter.  Verify
	that eh stmts can throw.
	(verify_stmts): Update verify_stmt call.
	(tree_purge_dead_eh_edges, tree_purge_all_dead_eh_edges): New.
	* tree-eh.c (remove_stmt_from_eh_region): New.
	(lower_eh_constructs): Fix throw_stmt_table delete routine.
	(tree_could_trap_p): Match may_trap_p.
	(maybe_clean_eh_stmt): New.
	* tree-flow.h: Update decls.
	* tree-ssa-ccp.c (pass_ccp): Add TODO_verify_stmts.
	(substitute_and_fold): Clean eh edges.
	* tree-ssa-dce.c (mark_control_dependent_edges_necessary): Handle
	empty basic blocks.
	* tree-ssa-dom.c (need_eh_cleanup): New.
	(tree_ssa_dominator_optimize): Allocate it.  Cleanup eh edges.
	(optimize_stmt): Cleanup eh stmts; set need_eh_cleanup.

2004-06-29  Alan Modra  <amodra@bigpond.net.au>

	* function.c (assign_parms): Don't abort with zero size stack
	parm failing the PARM_BOUNDARY check.

2004-06-28  Diego Novillo  <dnovillo@redhat.com>

	* common.opt (ftree-fre): New flag.
	* flags.h (flag_tree_fre): Declare.
	* opts.c (decode_options): Set.
	* timevar.def (TV_TREE_FRE): Define.
	* tree-flow-inline.h (may_propagate_copy): Re-arrange for
	readability.  Handle destinations that are not SSA_NAMEs.
	* tree-flow.h (struct ptr_info_def): Move from tree.h
	(cprop_into_stmt, cprop_into_successor_phis): Remove.
	(vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Add
	vuse_optype parameter.
	* tree-pass.h (pass_fre): Declare.
	* tree-ssa-copy.c (cprop_operand): Move to tree-ssa-dom.c
	(cprop_into_stmt): Likewise.
	(cprop_into_successor_phis): Likewise.
	* tree-ssa-dom.c (eliminate_redundant_computations): Fix
	argument ordering in call to may_propagate_copy.
	* tree-ssa-pre.c (is_undefined_value): Assume hard registers
	to be always defined.
	(add_to_sets): New local function.
	(create_value_expr_from): New local function.
	(compute_avail): Call them.
	(eliminate): Don't ignore statements with virtual operands.
	(init_pre): New local function.
	(fini_pre): New local function.
	(execute_pre): Call them.
	Add argument DO_FRE.  Don't do insertion if DO_FRE is true.
	(do_pre): New function.
	(do_fre): New function.
	(gate_fre): New function.
	(pass_fre): Declare.
	* tree-ssa.c (init_tree_ssa): Don't call vn_init.
	(delete_tree_ssa): Don't call vn_delete.
	* tree-vn.c (val_expr_pair_d): Add documentation.
	(vn_compute): Add VUSES argument to incorporate in computing
	hash values.  Update all callers.
	(expressions_equal_p): Call operand_equal_p with
	OEP_PURE_SAME.
	(vn_add): Add VUSES argument.  Update all callers.
	(vn_lookup): Likewise.
	(vn_lookup_or_add): Likewise.
	* doc/invoke.texi: Document -ftree-fre and -fdump-tree-fre.

2004-06-28  Steven Bosscher  <stevenb@suse.de>

	* config/m32r/m32r.c (m32r_sched_odd_word_p, m32r_adjust_cost,
	m32r_sched_init, m32r_sched_reorder, m32r_variable_issue): Remove.
	(TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
	TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Don't define.
	* config/m32r/m32r.md: Rewrite the pipeline description as a DFA.

2004-06-28  Richard Henderson  <rth@redhat.com>

	* tree.def (REALPART_EXPR, IMAGPART_EXPR): Change class to 'r'.
	* fold-const.c (operand_equal_p <case 'r'>): Add REALPART_EXPR,
	IMAGPART_EXPR.
	* tree-dump.c (dequeue_and_dump): Handle REALPART_EXPR and
	IMAGPART_EXPR explicitly.
	* tree-inline.c (estimate_num_insns_1): Don't handle REALPART_EXPR
	and IMAGPART_EXPR specially.
	* tree.c (build1_stat): Copy TREE_THIS_VOLATILE into class 'r'.

2004-06-28  J"orn Rennecke <joern.rennecke@superh.com>

	* config.gcc (sh*-*elf*): Remove dead assignment of sh_multilibs.

2004-06-28  Joseph S. Myers  <jsm@polyomino.org.uk>

	* builtins.def (execl, execlp, execle, execv, execvp, execve,
	fork): Change to DEF_EXT_LIB_BUILTIN.

2004-06-28  Roger Sayle  <roger@eyesopen.com>

	* expmed.c (expand_smod_pow2): New function to expand signed
	remainder by a constant power of 2, such as "x % 16".
	(expand_divmod): Call new expand_smod_pow2 when appropriate.
	Minor corrections to comments, e.g. wrapping long lines.

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

	* Makefile.in (vec.o): Fix dependencies.

2004-06-28  Andreas Tobler <a.tobler@schweiz.ch>

	* Makefile.in: Fix parallel make dependency problem on vec.o.

2004-06-28  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>

	PR target/14041
	* config/h8300/h8300.h (ASM_OUTPUT_ALIGNED_BSS): Define.

2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>

	* tree.h (tree_check_failed): Make varadic.
	(tree_not_check_failed): New prototype.
	(tree_check2_failed, tree_check3_failed,
	tree_check4_failed, tree_check5_failed): Remove.
	(TREE_CHECK, TREE_CHECK2, TREE_CHECK3, TREE_CHECK4,
	TREE_CHECK5): Adjust.
	(TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4,
	TREE_NOT_CHECK5): New.
	(TREE_VEC_ELT_CHECK, PHI_NODE_ELT_CHECK, TREE_OPERAND_CHECK_CODE,
	TREE_RTL_OPERAND_CHECK): Adjust.
	* tree.c (tree_check_failed): Make varadic.
	(tree_not_check_failed): New.
	(tree_check2_failed, tree_check3_failed,
	tree_check4_failed, tree_check5_failed): Remove.

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

	* combine.c (can_combine_p): Do not prevent building insns that use
	and clobber the same fixed hard register.
	(reg_dead_at_p): Likewise.

2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* tree-sra.c (is_sra_candidate_ref): Remove second arg; all callers
	changed.
	(is_sra_candidate_complex_ref): New function.
	(scalarize_modify_expr): Call it and check for LHS also.

	* tree-pretty-print.c (dump_function_declaration): New.
	(dump_generic_node, case FUNCTION_TYPE): Call it.
	(dump_generic_node, case RECORD_TYPE): Don't output dup semicolon.
	(dump_generic_node, case DECL_EXPR): New case.
	(dump_generic_node, case PLACEHOLDER_EXPR): Handle.
	(print_declaration): Handle type and function declarations.

	* tree-nested.c (create_tmp_var_for): Allow ARRAY_TYPE.
	(convert_nonlocal_reference, convert_local_reference): Properly
	convert nest of handled component references.

2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>

	* vec.h, vec.c: New, type safe vector API.
	* Makefile.in (OBJS-common): Add vec.o.
	(vec.o): New target.
	(gengtype-lex.o): Depend on vec.h.

2004-06-28  Paolo Bonzini  <bonzini@gnu.org>

	* fold-const.c (fold_cond_expr_with_comparison): Add ARG1
	parameter.  Use it instead of ARG00 to produce the result.

2004-06-28  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300-protos.h (legitimate_address_p): Declare.
	* config/mn10300/mn10300.c (legitimate_address_p): New.  Test that
	index is legitimate, compared with code moved from...
	* config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): here.
	(REG_STRICT): Define, according to REG_OK_STRICT.
	(REGNO_IN_RANGE_P, REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P,
	REGNO_EXTENDED_P, REGNO_AM33_P, REGNO_FP_P): Introduce strict
	argument.
	(REGNO_STRICT_OK_FOR_BASE_P, REGNO_STRICT_OK_FOR_BIT_BASE_P,
	REGNO_STRICT_OK_FOR_INDEX_P): New.
	(REGNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGNO_OK_FOR_BIT_BASE_P,
	REG_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P,
	RTX_OK_FOR_BASE_P): Use them.

2004-06-28  Ben Elliston  <bje@au.ibm.com>

	* doc/cfg.texi (Basic Blocks): Define dominators.

2004-06-27  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/16205
	* c-common.c (warn_for_collisions_1): Warn for only decls which
	have a name.

	PR c++/15145
	* c.opt (Wsequence-point): Enable for C++ and ObjC++.

	PR c/14963
	* c-decl.c (start_decl): Check for null types.

2004-06-27  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
	Accept TOC addresses.

2004-06-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390-protos.h (s390_load_got): Update prototype.
	* config/s390/s390.c (struct machine_function): Add member base_reg.
	(s390_decompose_address): Accept UNSPEC_LTREF.  Simplify logic.
	(s390_split_branches): Annotate late pool references.
	(annotate_constant_pool_refs): New function.
	(find_constant_pool_ref): Work on annotated pool references.
	(replace_constant_pool_ref): Likewise.  Use explicit base.
	(replace_ltrel_base): Use explicit base.
	(s390_mainpool_start): Reflect main_pool pattern change.
	(s390_mainpool_finish): Use base register from main_pool.
	Update calls to replace_ltrel_base and replace_constant_pool_ref.
	(s390_chunkify_start): Use base_reg from struct machine_function.
	(s390_chunkify_finish): Remove base_reg argument.  Update calls
	to replace_ltrel_base and replace_constant_pool_ref.
	(s390_reorg): Don't decide upon base register.  Update calls.
	(s390_load_got): Remove MAYBE_DEAD handling.  Do not emit insns
	but return sequence instead.
	(s390_emit_prologue): Decide upon base register to use.  Annotate
	all literal pool references.  Adapt to main_pool pattern change.
	Update s390_load_got call; move MAYBE_DEAD handling here.
	(s390_emit_epilogue): Annotate late literal pool references.
	Remove barrier before register restore instruction.
	* config/s390/s390.md (UNSPEC_LTREF): New constant.
	("builtin_setjmp_receiver"): Update s390_load_got call.
	("main_pool"): Explicitly reference base register.

2004-06-27  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold) <BIT_IOR_EXPR>: Optimize ~X|X and X|~X as -1.
	<BIT_XOR_EXPR>: Optimize ~X|X and X|~X as -1.
	<BIT_AND_EXPR>: Optimize ~X&X and X&~X as 0.
	<TRUTH_AND_EXPR, TRUTH_ANDIF_EXPR>: Optimize !X&&X and X&&!X as false.
	<TRUTH_OR_EXPR, TRUTH_ORIF_EXPR>: Optimize !X||X and !X||X as true.
	<TRUTH_XOR_EXPR>: Optimize !X^X and X^X! as true.  Now that
	TRUTH_XOR_EXPR is a commutative tree code, don't test whether arg0
	is a constant.

2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* c-common.c (c_safe_from_p, c_walk_subtrees): Deleted.
	* c-common.def (DECL_STMT): Remove.
	* c-common.h (DECL_STMT_DECL): Deleted.
	(COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL.
	(c_safe_from_p, c_walk_subtrees): Deleted.
	* c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR.
	* c-dump.c (c_dump_tree, case DECL_STMT): Deleted.
	* c-gimplify.c (gimplify_decl_stmt): Deleted.
	(gimplify_compound_literal_expr): Use DECL_EXPR_DECL
	and gimplify_and_add.
	(c_gimplify_expr, case DECL_EXPR): New case.
	(c_gimplify_expr, case DECL_STMT): Deleted.
	* c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise.
	(LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
	* expr.c (safe_from_p, case 's'): New case.
	* gimplify.c (gimplify_decl_expr): New function.
	(gimplify_expr, case DECL_EXPR): New case.
	* tree-inline.c (walk_tree): Walk into all fields of a type and
	decl only if they are in a DECL_EXPR.
	(mark_local_for_remap_r): Minor code cleanup.
	* tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else.
	* tree.c (has_cleanups, case DECL_EXPR): New case.
	* tree.def (DECL_EXPR): New code.
	* tree.h (DECL_EXPR_DECL): New macro.

	* objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted.

2004-06-26  Andrew Pinski  <pinskia@physics.uc.edu>

	PR 13334
	* doc/install.texi: Document non-standard CFLAGS and bootstrap
	failures and warnings.

2004-06-26  Andrew Haley  <aph@redhat.com>

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Check
	TREE_THIS_NOTRAP when setting MEM_NOTRAP_P.
	* tree-eh.c (tree_could_trap_p): Check TREE_THIS_NOTRAP.
	* tree.h (TREE_THIS_NOTRAP): New.

2004-06-26  Kaz Kojima  <kkojima@gcc.gnu.org>

	* genattrtab.c (write_test_expr): Put a unsigned cast before
	the first operand for GEU, GTU, LEU and LTU.

2004-06-26  Kazu Hirata  <kazu@cs.umass.edu>

	* c-typeck.c, cfgexpand.c, ddg.c, ddg.h, df.c, fold-const.c,
	gcov.c, gimplify.c, modulo-sched.c, passes.c, tree-cfg.c,
	tree-mudflap.c, tree-nrv.c, tree-outof-ssa.c, tree-ssa-dom.c,
	tree-ssa-dse.c, tree-ssa-operands.c, tree-ssa-pre.c,
	tree-tailcall.c: Fix comment typos.  Follow spelling
	conventions.

2004-06-25  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.md: Add back scheduling exclusion info.

2004-06-25  Roger Sayle  <roger@eyesopen.com>

	* ifcvt.c (seq_contains_jump): Delete function.
	(end_ifcvt_sequence): Replace call to seq_contains_jump with an
	inline test for a jump instruction in the existing "insn" loop.
	(block_fallthru): Document function.

2004-06-25  Philip Blundell  <philb@gnu.org>

	PR wrong-code/15089
	* loop.c (scan_loop): Do not move user-specified register
	assignments.

2004-06-25  DJ Delorie  <dj@redhat.com>

	* c-common.h (warn_cast_qual, warn_missing_format_attribute,
	warn_pointer_arith, warn_missing_prototypes, warn_parentheses,
	warn_missing_braces, warn_sign_compare, warn_long_long,
	warn_redundant_decls, warn_float_equal, warn_char_subscripts,
	warn_conversion, warn_format_y2k, warn_format_extra_args,
	warn_format_zero_length, warn_format_nonliteral,
	warn_format_security, mesg_implicit_function_declaration,
	warn_bad_function_cast, warn_traditional,
	warn_declaration_after_statement, warn_strict_prototypes,
	warn_missing_declarations, warn_nested_externs,
	warn_sequence_point, warn_init_self, warn_div_by_zero,
	warn_implicit_int, warn_nonnull, warn_old_style_definition,
	warn_selector, warn_undeclared_selector, warn_protocol,
	warn_abi, warn_invalid_offsetof, warn_ctor_dtor_privacy,
	warn_overloaded_virtual, warn_nonvdtor, warn_reorder,
	warn_synth, warn_pmf2ptr, warn_ecpp, warn_sign_promo,
	warn_old_style_cast, warn_nontemplate_friend,
	warn_deprecated): Remove explicit declarations.
	* c-common.c: Likewise, remove explicit definitions.
	* c-opts.c: Likewise, remove explicit assignments.
	* c.opts: Likewise, add implicit declare/define/assign.

2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case.
	(build_addr_expr_with_type): Deleted.
	(build_addr_expr): Deleted; callers changed to build_fold_addr_expr.
	(gimplify_compound_lval): Make two passes over reference nest.

	* tree-nested.c (build_addr): Merge real/imagpart with
	handled_component_p.
	(convert_nonlocal_reference, convert_local_reference): Process extra
	args to COMPONENT_REF and ARRAY_REF.
	* tree-outof-ssa.c (discover_nonconstant_array_refs_r): Check for
	lower bound and field offset being constant.

2004-06-25  Mark Mitchell  <mark@codesourcery.com>

	PR wrong-code/16129
	* alias.c (get_alias_set): Adjust setting of
	DECL_POINTER_ALIAS_SET for pointers to aggregates.

2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* tree-inline.c (remap_type): Arrange to have just one pointer type
	for each type, mode, and 'can alias' value.
	(setup_one_parameter): Remap type when making VAR_DECL for PARM_DECL.
	(estimate_num_insns_1): Minor code reformatting.
	(inline_forbidden_p_1): Likewise; add; missing return statement.

2004-06-25  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/15825
	* ifcvt.c (unshare_ifcvt_sequence): Rename to end_ifcvt_sequence.
	Use get_isns and end_sequence instead of accepting a seq argument.
	Scan the instruction sequence for unrecognizable or jump insns.
	(noce_try_move, noce_try_store_flag, noce_try_store_flag_constants,
	noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
	noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
	noce_try_sign_mask): Use end_ifcvt_sequence to factor common code.

2004-06-24  Jeff Law  <law@redhat.com>

	* gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS
	after gimplifying the innermost component.

2004-06-25  Richard Sandiford  <rsandifo@redhat.com>

	PR target/16176
	* config/mips/mips.c (mips_expand_unaligned_load): Use a temporary
	register for the destination of the lwl or ldl.

2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* tree-dfa.c (get_virtual_var): Merge real/imaginary parts with
	handled_component_p handling.
	* tree-gimple.c (get_base_address): Likewise and fix typo that
	caused both recursion and looping.

	* tree-cfg.c (verify_expr): Add macro CHECK_OK.
	Properly test for nest of handled_components in LHS context.

2004-06-25  Devang Patel  <dpatel@apple.com>

	* doc/tree-ssa.texi: Document info about MODIFY_EXPR's type

2004-06-25  Paul Brook  <paul@codesourcery.com>

	* target-def.h (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT,
	TARGET_CXX): Define.
	(TARGET_INITIALIZER): Use TARGET_CXX.
	* target.h (struct gcc_target): Add struct cxx.
	* targhooks.h (default_cxx_guard_type): Add prototype.
	* targhooks.c (default_cxx_guard_type): New function.
	* config/arm/arm.c (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT):
	Define.
	(arm_cxx_guard_type, arm_cxx_guard_mask_bit): New functions.
	* doc/tm.texi: Document TARGET_CXX_GUARD_TYPE and
	TARGET_CXX_GUARD_MASK_BIT.

2004-06-25  Devang Patel  <dpatel@apple.com>

	* config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull.
	* config/i386/darwin.h (CC1_SPEC): Same.

2004-06-25  Mark G. Adams  <mark.g.adams@sympatico.ca>

	* dbxout.h: Add include guards

2004-06-25  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__.

2004-06-25  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_arch4t): New variable.
	(arm_override_options): Initialize it.  If compiling for armv5 or
	higher clear TARGET_INTERWORK.
	(output_call): Abort if called for armv5.  Use BX if it's available.
	(output_call_mem): Use BLX if available and ensure that all armv5
	code is interworking safe.
	(output_return_instruction): Always use BX in preference to MOV if
	it's available.
	(arm_output_epilogue): Likewise.
	(arm_final_prescan_insn): Never conditionally call a subroutine
	on armv5.
	* arm.h (arm_arch4t): Declare.
	* arm.md (call_reg_armv5, call_value_reg_armv5): New.
	(call_reg_arm, call_value_reg_arm): Renamed from call_reg and
	call_value_reg respectively.
	(call_reg_thumb_v5, call_value_reg_thumb_v5): New.
	(call_reg_thumb, call_value_reg_thumb): Renamed from call_indirect
	and call_value_indirect respectively.

2004-06-25  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (reg_or_const_float_1_operand): Reimplement
	in terms of const_float_1_operand.

2004-06-25  Richard Sandiford  <rsandifo@redhat.com>

	PR target/16144
	* config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand
	is 1.0; force it into a register instead.

2004-06-25  Bernardo Innocenti  <bernie@develer.com>

	* config/m68k/m68k.h: Restore valid comment removed by mistake with
	the recent m68k comments cleanup.

2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* c-gimplify.c (gimplify_for_stmt): Use gimplify_and_add.
	* gimplify.c (internal_get_tmp_var, gimplify_return_expr): Likewise.
	(gimplify_loop_expr, gimplify_init_constructor): Likewise.
	(gimplify_self_mod_expr, gimplify_cond_expr): Likewise.

	PR/16131
	* gimplify.c (voidify_wrapper_expr): Allow TARGET_EXPR.

	* gimplify.c: Remove unneeded forward declarations.

	* gimplify.c (append_to_compound_expr): Deleted.
	* tree-gimple.h (append_to_compound_expr): Deleted.

	* fold-const.c (fold_addr_expr_with_type): Look through all
	valid LHS modifiers to find a base to mark addressable.

	* tree.h (debug_find_tree): Add declaration.
	* tree-inline.c (debug_find_tree): Remove extern declaration.

2004-06-24  Eric Christopher  <echristo@redhat.com>

	* config/rs6000/rs6000.md: Apply change mistakenly
	deleted with 2004-06-22 patch.

2004-06-24  Richard Henderson  <rth@redhat.com>

	* c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove.
	(c_break_label, c_cont_label): New.
	(start_function): Update initializations.
	(c_push_function_context): Update saves.
	(c_pop_function_context): Update restores.
	* c-parse.in: Update expected conflicts.
	(stmt_count, compstmt_count): Remove.  Remove all updates.
	(if_prefix, simple_if, do_stmt_start): Remove.
	(lineno_labeled_stmt): Remove.
	(lineno_labels): New.
	(c99_block_lineno_labeled_stmt): Use it.
	(lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling
	annotate_with_locus.
	(select_or_iter_stmt): Replace by ...
	(condition, if_statement_1, if_statement_2, if_statement,
	start_break, start_continue, while_statement, do_statement,
	for_cond_expr, for_incr_expr, for_statement, switch_statement): New.
	(stmt): Split out ...
	(stmt_nocomp): ... this.  Use c_finish_bc_stmt, c_finish_goto_label,
	c_finish_goto_ptr.
	* c-semantics.c (add_stmt): Don't add line numbers to labels.
	* c-tree.h: Update prototypes.
	(struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt;
	add x_break_label, x_cont_label, x_switch_stack.
	(c_switch_stack): Declare.
	* c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New.
	(c_finish_return): Return the statement.
	(c_switch_stack): Rename from switch_stack; export.
	(if_elt, if_stack, if_stack_space, if_stack_pointer): Remove.
	(c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else,
	c_finish_else): Remove.
	(c_finish_if_stmt): Rewrite to perform the entire operation.
	(c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt,
	c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
	c_finish_for_stmt_incr, c_finish_for_stmt): Remove.
	(c_finish_loop): New.
	(c_finish_bc_stmt): New.
	(c_finish_expr_stmt): Return the statement.  Split out...
	(c_process_expr_stmt): ... this.  Don't add locus to error marks.
	* gimplify.c (gimplify_cond_expr): Accept NULL type statements.
	* tree-gimple.c (is_gimple_stmt): Likewise.
	* tree-pretty-print.c (dump_generic_node <COND_EXPR>): Likewise.
	(print_struct_decl): Delete empty compound statement.
	* objc/objc-act.c (objc_build_throw_stmt): Return the statement.
	* objc/objc-act.h: Update decl.

2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* tree-pretty-print.c (dump_generic_node, case TYPE_DECL):
	Don't look at TYPE_METHODS unless RECORD_TYPE or UNION_TYPE.

2004-06-24  Andrew Pinski  <apinski@apple.com>

	* objc-act.c (build_objc_method_call): Save the lookup_object
	so we do not call it twice.

2004-06-24  Richard Henderson  <rth@redhat.com>

	* tree-ssa-dom.c (real_avail_expr_hash): New.
	(tree_ssa_dominator_optimize): Use it in the htab.

2004-06-24  Frank Ch. Eigler  <fche@redhat.com>

	* tree-mudflap.c (mx_register_decls): Add third (type) argument
	to synthesized __mf_unregister call.

2004-06-24  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/15239
	* expmed.c (expand_mult): Remove artificial restriction on the
	maximum cost of a synthetic multiplication sequence.

2004-06-24  Eric Christopher  <echristo@redhat.com>

	* combine.c (distribute_notes): Don't delete sets to
	global register variables.

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

	* config/i386/i386.md (ffsdi2, clzdi2): New expanders.
	(ffs_rex64): New splitter.
	(ffsdi_1, ctzdi2, bsr_rex64): New instructions.

2004-06-24  Andrew Pinski  <apinski@apple.com>

	* config/darwin7.h (MATH_LIBRARY): Remove.
	(LIB_SPEC): Define.
	* config/darwin.h (MATH_LIBRARY): Define always to empty.
	(LIB_SPEC): Only define if not already defined.

2004-06-24  Revital Eres  <eres@il.ibm.com>

	* loop-iv.c (iv_analyze, simple_set_p): Support for identifying
	shifts of induction variable.
	(iv_shift): New function.

2004-06-24  Richard Henderson  <rth@redhat.com>

	* gimplify.c (gimplify_body): Watch for body vanishing.

2004-06-24  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (record_dominating_conditions): New function.
	(dom_opt_finalize_block, get_eq_expr_value): Use it.

2004-06-24  Richard Sandiford  <rsandifo@redhat.com>

	* calls.c (shift_returned_value): Fix handling of non-integer
	TYPE_MODEs.

2004-06-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN.
	* system.h (DEFAULT_MAIN_RETURN): Poison.
	* doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation.

2004-06-24  Ben Elliston  <bje@au.ibm.com>

	* doc/cfg.texi (Edges): Fix typo.

2004-06-24  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_output_epilogue): Remove excess checks.

2004-06-23  Andrew Pinski  <apinski@apple.com>

	PR middle-end/15988
	* fold-const.c (fold_convert): Types which are compatible
	can be converted with only a NOP_EXPR.

2004-06-24  Alan Modra  <amodra@bigpond.net.au>

	* calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and
	pass raw n_named_args to it.
	* targhooks.c: Formatting.
	(hook_bool_CUMULATIVE_ARGS_false): Correct comment.

2004-06-23  Richard Henderson  <rth@redhat.com>

	* c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside
	non-constant size check.  Gimplify the type too.  Tidy building
	BUILT_IN_STACK_ALLOC call.

2004-06-23  Roger Sayle  <roger@eyesopen.com>

	* c-common.c (expand_unordered_cmp): Delete.
	(expand_tree_builtin): Delete.
	* c-common.h (expand_tree_builtin): Delete function prototype.
	* c-typeck.c (build_function_call): Don't call expand_tree_builtin.

2004-06-23  Richard Henderson  <rth@redhat.com>

	* gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or
	COMPONENT_REF variable fields unless they're non-constant.

2004-06-23  Robert Millan  <robertmh@gnu.org>

	* config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu.
	* config/i386/linux.h: Allow overriding of LINK_EMULATION,
	  DYNAMIC_LINKER and register names in sc_ structure.
	* config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h.
	* config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu.
	* config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu.
	* config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu.

	* config/kfreebsdgnu.h: Remove.
	* config/t-kfreebsd-gnu: Likewise.
	* config/i386/kfreebsdgnu.h: Likewise.

2004-06-23  Eric Christopher  <echristo@redhat.com>

	* fold-const.c (make_range): Cleanup type checking through function.
	Remove orig_type. Replace with checks to exp_type and arg0_type.
	Clarify comment when converting from unsigned to signed.

2004-06-23  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000.
	* config/mips/mips.md: Remove R3000 scheduling description.
	* config/mips/3000.md: New file.

2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390-protos.h (s390_emit_compare): Add prototype.
	(s390_emit_jump): Likewise.
	* config/s390/s390.c (s390_emit_compare): New function.
	(s390_emit_jump): Likewise.
	* config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu",
	"bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq",
	"bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare
	and s390_emit_jump.
	("cjump"): Remove, replace by ...
	("*cjump_64", "*cjump_31"): ... these insns.  Improve length default.
	("icjump", "*icjump_64", "*icjump_31"): Likewise.
	("trap"): Fix type attribute.
	("conditional_trap"): Use s390_emit_compare.
	("doloop_si"): Remove, replace by ...
	("doloop_si64", "doloop_si31"): ... these new insn_and_split.
	Merge existing splitter into insn_and_split.  Improve length default.
	("doloop_di"): Merge with existing splitter into insn_and_split.
	("doloop"): Adapt.
	("jump"): Convert to expander.  Use s390_emit_jump.
	("*jump_64", "*jump_31"): New insns.  Improve length default.

2004-06-23  Wu Yongwei  <adah@sh163.net>

	* gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
	(__gthr_i486_lock_cmp_xchg): New inline assembly function.
	(__GTHR_W32_InterlockedCompareExchange): New macro to choose a
	suitable function for interlocked compare-and-exchange.
	(__gthread_mutex_trylock): Use
	__GTHR_W32_InterlockedCompareExchange.
	(__gthread_mutex_init_function, __gthread_mutex_lock,
	__gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the
	initial counter value to work correctly under Windows 95.
	* config/i386/gthr-win32.c: Adjust include order.
	Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including
	gthr-win32.h.
	(__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock,
	__gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust
	to match inline versions in gthr-win32.h.

2004-06-23  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete.
	(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1.
	(insvdi_rshift_rlwimi_p): New function.
	* config/rs6000/rs6000.md (insvdi_internal2/3): New patterns.
	(extendsfdf2): Convert to define_insn_and_split.
	* config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype.

2004-06-23  Andrew Pinski  <apinski@apple.com>

	* c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have
	type qualifiers at all.
	If both of the type domains are null and the new element type is
	the same as one of the, return the one which the element type.
	matches.
	Do not call qualify_type on the new type.

2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove.

2004-06-23  Roger Sayle  <roger@eyesopen.com>

	* convert.c (strip_float_extension): Skip both NOP_EXPR and
	CONVERT_EXPR floating point extensions.

2004-06-23  Diego Novillo  <dnovillo@redhat.com>

	* Makefile.in (tree-vn.o): New.
	(tree-ssa-pre.o): Don't depend on RTL_H.
	* tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa.
	* tree-flow.h (struct var_ann_d): Remove field expr_set.
	(add_to_value, expressions_equal_p, get_value_handle, vn_compute,
	vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare.
	* tree-optimize.c (execute_init_datastructures): New local function.
	(pass_init_datastructures): New local variable.
	(init_tree_optimization_passes): Sequence pass_init_datastructures.
	* tree-pretty-print.c (MASK_POINTER): Remove.
	(dump_generic_node): Handle VALUE_HANDLE.
	* tree-ssa-pre.c: Move all value numbering routines to tree-vn.c.
	Update callers to use new function names.
	Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of
	variable annotations.
	* tree-ssa.c (init_tree_ssa): Call vn_init.
	(delete_tree_ssa): Call vn_delete.
	* tree-vn.c: New file.
	* tree.c (tree_size): Handle VALUE_HANDLE.
	(tree_node_structure): Likewise.
	(iterative_hash_expr): Likewise.
	* tree.def (VALUE_HANDLE): New code.
	* tree.h (struct tree_value_handle): New.
	(VALUE_HANDLE_ID): Define.
	(VALUE_HANDLE_EXPR_SET): Define.
	(enum tree_node_structure_enum): Add TS_VALUE_HANDLE.
	(union tree_node): Add struct tree_value_handle.

2004-06-23  Andrew Pinski  <apinski@apple.com>

	* c-typeck.c (composite_type):
	<case POINTER_TYPE>: Build a qualified type of
	the new type.
	<case ARRAY_TYPE>: Likewise.
	<case FUNCTION_TYPE>: Likewise.

2004-06-23  Pat Haugen  <pthaugen@us.ibm.com>

	PR optimization/15633
	* value-prof.c (divmod_fixed_value_transform): Compute probability
	of taking optimal path and pass along to gen_ routine.
	(mod_pow2_value_transform): Same.
	(mod_subtract_transform): Same.
	(gen_divmod_fixed_value): Add new probability parameter.
	Add probability to newly created jump.
	(gen_mod_pow2): Same.
	(gen_mod_subtract): Same.

2004-06-23  Richard Earnshaw  <rearnsha@arm.com>

	* PR target/15948
	* arm.md (bicsi3_cbranch): Add alternative to handle tying operands
	one and two.

2004-06-23  Richard Earnshaw  <rearnsha@arm.com>

	PR target/15927
	* arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary
	reload if CLASS is BASE_REGS.

2004-06-23  Richard Sandiford  <rsandifo@redhat.com>

	* gengtype-yacc.y (option): Avoid use of non-constant struct
	initializer.

2004-06-23  Nathan Sidwell  <nathan@codesourcery.com>

	* doc/extend.texi (Function Attributes): Alphabetize.

2004-06-23  Richard Henderson  <rth@redhat.com>

	* c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call.
	Use gimplify_and_add.
	* c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt.
	* gimplify.c (build_and_jump, gimplify_exit_expr,
	gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup,
	gimplify_stmt, gimplify_expr): Likewise.
	(shortcut_cond_expr): Handle NULL arms of COND_EXPR.
	(gimplify_statement_list): Remove NULL entries.
	(gimplify_to_stmt_list): Handle NULL results.
	(gimplify_type_sizes): Add list_p argument.
	(gimplify_one_sizepos): Don't use internal pre/post queue.
	* tree-gimple.h (gimplify_type_sizes): Update.

2004-06-22  Eric Christopher  <echristo@redhat.com>

	* config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns.

2004-06-22  Pat Haugen  <pthaugen@us.ibm.com>

	* cfghooks.c (make_forwarder_block): Decrement count on fallthru edge
	when redirecting back edges.

	* cfghooks.c (split_block): Call make_single_succ_edge so that edge
	count/probability are set correctly.

2004-06-22  Richard Henderson  <rth@redhat.com>

	* c-typeck.c (emit_side_effect_warnings): Ignore error marks.
	(c_finish_stmt_expr): Likewise.

	* config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New.
	(ix86_return_in_memory): Move SSE vector return warning ...
	(ix86_struct_value_rtx): ... here.  New.

2004-06-22  Richard Henderson  <rth@redhat.com>

	* tree.def (VTABLE_REF): Remove.
	(OBJ_TYPE_REF): New.
	(TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'.
	* expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF.
	* fold-const.c (non_lvalue): Likewise.
	* gimplify.c (gimplify_expr): Likewise.
	(gimplify_call_expr): Use is_gimple_call_addr.
	* langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
	* langhooks.h (fold_obj_type_ref): New.
	* tree-gimple.c (is_gimple_call_addr): New.
	* tree-gimple.h (is_gimple_call_addr): Declare.
	* tree-inline.c (inlinable_function_p): Fix merge error.
	(estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	(print_call_name): Handle OBJ_TYPE_REF.
	* tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF.
	* tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF.
	* tree.h (OBJ_TYPE_REF_EXPR): New.
	(OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New.
	* doc/c-tree.texi (VTABLE_REF): Remove.
	* objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF.

2004-06-22  Richard Henderson  <rth@redhat.com>

	PR middle-end/16026
	* function.c (assign_parms): Don't abort for overaligned PARALLEL.

2004-06-22  Joseph S. Myers  <jsm@polyomino.org.uk>

	* Makefile.in (distclean): Don't try to remove empty directories.

2004-06-22  Richard Sandiford  <rsandifo@redhat.com>

	PR target/15869
	* config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow.

2004-06-22  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu
	operands.

2004-06-22  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/rs6000.c (legitimate_offset_address_p): Make
	global, rename rs6000_legitimate_offset_address_p.
	(rs6000_legitimate_address_p): Adjust calls to it.
	(lmw_operation): Ditto.
	(stmw_operation): Ditto.
	* config/rs6000/rs6000-protos.h: Declare it.
	* config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
	instead of offsettable_memref_p.

2004-06-22  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
	[reg+reg] mode for TFmode memory accesses.
	(rs6000_eliminate_indexed_memrefs): New.
	(rs6000_emit_move): Call preceding for TImode and TFmode.

2004-06-22  Paolo Bonzini  <bonzini@gnu.org>

	* tree-cfg.c (pass_warn_function_return): It needs
	CFG, not SSA.

2004-06-22  Nathan Sidwell  <nathan@codesourcery.com>

	* doc/invoke.texi (Machine Dependent Options): Alphabetize.
	(Submodel Options): Likewise.

2004-06-21  Andrew Pinski  <apinski@apple.com>

	Radar #: 3701874
	* c-decl.c (push_file_scope): Return early if we already
	have a file scope.

2004-06-21  Geoffrey Keating  <geoffk@apple.com>

	* c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
	* c-common.h (flag_pch_preprocess): Declare.
	(c_common_pch_pragma): Likewise.
	* c-common.c (flag_pch_preprocess): New.
	* c-pch.c (c_common_read_pch): Support -fpreprocess-only.
	(c_common_pch_pragma): New.
	* c-ppoutput.c (cb_read_pch): New.
	(init_pp_output): Support -fpch-preprocess.
	* c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
	* c.opt (fpch-preprocess): New.
	* gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
	* doc/cppopts.texi: Document -fpch-preprocess.
	* doc/invoke.texi (Precompiled Headers): Mention that
	-fpreprocessed is safe for PCH.  Mention that if an option is
	listed as safe that doesn't mean it does what you expect.

2004-06-22  Ben Elliston  <bje@au.ibm.com>

	* tree-ssa.c (ssa_redirect_edge): Correct leading comment.

2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* Makefile.in (gimplify.o): Add cgraph.h.
	* alias.c (adjust_offset_for_component_ref): Use
	component_ref_field_offset.
	* c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
	* c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
	(gimplify_decl_stmt): Call gimplify_type_sizes for type.
	For decl, call gimplify_one_sizepos and use statement list.
	(gimplify_compound_literal_expr): New arg PRE_P.
	Add statement to PRE_P list and return DECL.
	(c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
	gimplify_compound_literal_expr.
	* c-tree.h (getdecls): Deleted.
	* c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
	(build_array_ref): Add two operands for ARRAY_REF.
	(build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
	COMPOUND_LITERAL_EXPR.
	* coverage.c (tree_coverage_counter_ref): Add new operands
	for ARRAY_REF.
	* emit-rtl.c (component_ref_for_mem_expr): Add new operand
	for COMPONENT_REF.
	(set_mem_attributes_minus_bitpos): Use array_ref_low_bound
	and array_ref_element_size.
	(widen_memory_access):Use component_ref_field_offset.
	* explow.c (update_nonlocal_goto_save_area): Add two operands
	for ARRAY_REF.
	* expr.c (array_ref_element_size, array_ref_low_bound): New functions.
	(component_ref_field_offset): Likewise.
	(get_inner_reference): Use them.
	(expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
	* fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
	(fold_read_from_constant_string): Use array_ref_low_bound.
	Verify that result is a character type.
	(build_fold_indirect_ref): Add two operands for ARRAY_REF.
	* function.c (expand_function_start): Likewise.
	* gimple-low.c (expand_var_p): Delete duplicated line.
	* gimplify.c: Add static decls for local functions.
	(cgraph.h): Now included.
	(create_tmp_var): Remove check for ARRAY_TYPE.
	(copy_if_shared_r): Look at bounds and sizes of types.
	(build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
	(gimplify_exit_expr, shortcut_cond_expr): Likewise.
	(gimplify_save_expr, gimple_push_cleanup): Likewise.
	(gimplify_init_constructor): Likewise.
	WANT_VALUE now bool.
	If empty list with no result wanted, return GS_UNHANDLED.
	Add additional operands for ARRAY_REF and COMPONENT_REF.
	(canonicalize_component_ref): Convert to &array[L].
	(gimplify_array_ref_to_plus): Use array_ref_element_size and
	array_ref_lower_bound.
	(build_addr_expr_with_type, build_addr_expr): New functions.
	(gimplify_compound_lval): WANT_LVALUE now bool.
	Major rework to allow handle_component_p and initialize and
	gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
	COMPONENT_REF.
	(gimplify_array_ref): Deleted.
	(gimplify_self_mod_expr): WANT_VALUE now bool.
	(gimplify_modify_expr): Gimplify to_p and from_p later.
	Factor out code into gimplify_modify_expr_rhs and call twice.
	Move variable-size code earlier and handle PLACEHOLDER_EXPR.
	(gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
	(gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
	(gimplify_expr, case ARRAY_REF): Delete special case.
	Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
	IMAGPART, and REALPART the same way.
	(gimplify_expr, case VIEW_CONVERT_EXPR): New case.
	(gimplify_expr): Call gimplify_variable_sized_compare if applicable.
	Call alloc_stmt_list instead of build_empty_stmt.
	Deal with _REF that's volatile.
	(gimplify_type_sizes, gimplify_one_sizepos): New functions.
	(unshare_body, unvisit_body): New functions.
	(gimplify_body): Call them.
	* stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
	* stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
	* tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
	* tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
	like ARRAY_REF.
	(verify_expr, case ADDR_EXPR): Use handled_component_p.
	* tree-dfa.c (get_virtual_var): Likewise.
	* tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
	New cases to dump new operands; likewise for ARRAY_RANGE_REF.
	* tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
	* tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
	and INDIRECT_REF.
	(get_base_address): Use handled_component_p.
	* tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
	* tree-inline.c (walk_tree): Walk more things for types and decls.
	* tree-mudflap.c (mf_build_check_statement_for): Add new operands
	for ARRAY_REF and COMPONENT_REF.
	(mx_xform_derefs_1): Clean up usage of decl sizes.
	* tree-nested.c (build_addr): Use handled_component_p.
	(walk_stmts, case CATCH_EXPR): Add missing "break".
	(get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
	(finalize_nesting_tree_1): Likewise.
	(convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
	and process additional operands.
	(convert_local_reference): Likewise.
	* tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
	ARRAY_RANGE_REF similarly to ARRAY_REF.
	* tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
	like RECORD_TYPE.
	(dump_generic_node, case COMPONENT_REF): Print offset operand.
	(dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
	and print lower bound and element size for both.
	(op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
	* tree-sra.c (csc_build_component_ref): Add new operand.
	(scalarize_call_expr): Use get_base_address.
	* tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
	(maybe_fold_offset_to_array_ref): Rework to handle input having an
	ARRAY_REF, refine handling of lower bound, and add new operands
	for ARRAY_REF.
	(maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
	(maybe_fold_stmt_indirect): Only fold *&B to B if types match.
	(maybe_fold_stmt_addition): Only handle constant lower bound.
	* tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
	Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
	Look at new offset operand of COMPONENT_REF.
	* tree-ssa.c (set_is_used): Use handled_component_p.
	* tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
	(stabilize_reference, case COMPONENT_REF): Likewise.
	(stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
	(recompute_tree_invariant_for_addr_expr): Completely rework to
	be more precise.  Also set TREE_SIDE_EFFECTS.
	(build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
	(build2_stat, build3_stat, build4_stat): For references,
	propagate TREE_THIS_VOLATILE.
	(get_unwidened): Add new operand for COMPONENT_REF.
	(get_narrower): Likewise; use host_integerp for DECL_SIZE.
	* tree.def (COMPONENT_REF): Add new operand.
	(ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
	* tree.h (array_ref_element_size, array_ref_low_bound): New decls.
	(component_ref_field_offset): Likewise.
	* config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
	(alpha_gimplify_va_arg): Likewise.
	* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
	* config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
	* config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
	* config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
	* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
	Likewise.
	* config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
	* config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
	* config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
	Likewise.
	(xstormy16_expand_builtin_va_arg): Likewise.
	* config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
	* objc/objc-act.c (generate_static_references): Likewise.
	(generate_strings, build_method_prototype_list_template): Likewise.
	(generate_protocol_list): Likewise.

2004-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR rtl-optimization/14782
	* pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
	the address checks for secondary reloads for loads from and stores
	to floating-point registers.
	* pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
	in the address check.  Move work around for ELF32 targets to
	GO_IF_LEGITIMATE_ADDRESS.
	(GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
	correctly aligned for DImode loads and stores.  Don't allow long
	SFmode displacements on ELF32.

2004-06-21  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/16114
	* cse.c (merge_equiv_classes): Also rehash in response to
	delete_reg_equiv changes.
	(rehash_using_reg): Don't exclude REGs from rehashing.

2004-06-21  Richard Henderson  <rth@redhat.com>

	* c-common.def (RETURN_STMT): Remove.
	* c-common.h (RETURN_STMT_EXPR): Remove.
	(c_expand_return, build_return_stmt): Remove.
	(c_common_stmt_codes): Remove RETURN_STMT.
	* c-dump.c (dump_next_stmt): Remove.
	(c_dump_tree): Remove RETURN_STMT.
	* c-decl.c (finish_function): Use c_finish_return.
	* c-parse.in (stmt): Likewise.
	* c-gimplify.c (gimplify_return_stmt): Remove.
	(c_gimplify_expr): Remove RETURN_STMT.
	* c-pretty-print.c (pp_c_statement): Likewise.
	* c-semantics.c (build_return_stmt): Remove.
	* c-tree.h (c_finish_return): Declare.
	* c-typeck.c (c_finish_return): Rename from c_expand_return.
	Return void.  Build RETURN_EXPR directly.
	* tree-dump.h (dump_next_stmt): Remove.

2004-06-21  Zack Weinberg  <zack@codesourcery.com>

	* c-decl.c (start_function): Don't call make_decl_rtl.  Don't
	look at TREE_ADDRESSABLE of symbol name.

2004-06-21  Kelley Cook  <kcook@gcc.gnu.org>

	PR target/15551
	* config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
	(allocate_stack_worker): Make unspec_volatile.
	(allocate_stack_worker_rex64):  Likewise.
	(allocate_stack_worker_postreload):  Likewise.
	(allocate_stack_worker_rex64_postreload):  Likewise.

2004-06-21  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR optimization/15982
	* tree-ssa-pre.c: Update a few comments and todos to
	reflect constants change.
	(get_value_handle): Constants now value number to themselves.
	(lookup): Constants lookup to themselves.
	(add_to_value): Adjust to always be on.
	(set_contains_value): Adjust for constants change.
	(find_leader): Ditto.
	(phi_translate): 'r' nodes are never ANTIC right now.
	(valid_in_set): Ditto.
	(get_expr_set): New function.
	(find_or_generate_expression): New function, broken out from
	insert_aux.
	(create_expression_by_pieces): Ditto, plus additional
	machinery to handle complex values.
	(compute_avail): Remove dead RETURN_EXPR handling.

2004-06-21  Steven Bosscher  <stevenb@suse.de>

	* config/i386/i386.c: Include insn-codes.h
	* config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
	define here.
	* config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
	DIRFLAG_REG): New define_constants.  Use them everywhere.

2004-06-21  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/t-linux (MULTILIB_OPTIONS): Remove.

2004-06-21  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionally define.
	(SUPPORT_SH4_SINGLE): Likewise.
	(TARGET_SWITCHES): Break out switches for cpu subtargets:
	(TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
	(TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
	(TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
	(TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
	(TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
	(TARGET_SWITCHES_SH5_32MEDIA): Likewise.
	(TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
	(SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
	(SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
	(SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
	(SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
	(SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
	(ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
	* sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
	(TARGET_DEFAULT): Likewise.
	* config/sh/t-elf: Amend comment.
	* config/sh/t-1e, config/sh/t-mlib-sh1: New files.
	* config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
	* config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
	* config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
	* config/sh/t-mlib-sh4-single: Likewise.
	* config/sh/t-mlib-sh4-single-only: Likewise.
	* config/sh/t-mlib-sh5-32media: Likewise.
	* config/sh/t-mlib-sh5-32media-nofpu: Likewise.
	* config/sh/t-mlib-sh5-64media: Likewise.
	* config/sh/t-mlib-sh5-64media-nofpu: Likewise.
	* config/sh/t-mlib-sh5-compact: Likewise.
	* config/sh/t-mlib-sh5-compact-nofpu: Likewise.
	* config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
	(MULTILIB_CPUS): Define.
	(MULTILIB_OPTIONS): Use MULTILIB_CPUS.
	(MULTILIB_MATCHES): Use some shell code to calculate it.
	(MULTILIB_EXCEPTIONS): Change to ml/m1.
	* config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
	* config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
	(LINK_DEFAULT_CPU_EMUL): Don't redefine.
	(NO_PROFILE_COUNTERS): Define to 1.
	* config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
	(MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
	* config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
	(MULTILIB_MATCHES): Don't zap.
	(MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
	* config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
	(MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
	(MULTILIB_RAW_DIRNAMES): Define.
	(MULTILIB_DIRNAMES): Use it.
	* config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
	(sh*linux configurations): Merge into:
	(sh*elf / sh*kaos configurations).  Support --with-endian, --with-cpu,
	--with-multilib-list options.  Support sh-superh-elf configuration.
	(sh*-netbsd*): Use SELECT_SH* macros.
	(supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
	Merge sh*-*-netbsd* configurations into sh-elf configurations.
	* config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete.
	* config/sh/t-monolib: Likewise.

2004-06-21  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
	not imply FPA.

2004-06-21  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (operand_equal_p): Pass flags in recursive calls for
	binary and relational operations.  Add support for TRUTH_ANDIF_EXPR,
	TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
	* tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
	ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
	and TRUTH_XOR_EXPR.

2004-06-21  Paolo Bonzini  <bonzini@gnu.org>

	* rtlanal.c (may_trap_p): Mark LTGT as trapping.

2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>

	* tree-alias-common.h (struct tree_alias_ops): Change ip and
	ip_partial to unsigned int.

2004-06-21  Richard Henderson  <rth@redhat.com>

	* c-common.c (verify_sequence_points): Export.
	(c_expand_expr_stmt): Move to c-typeck.c.
	* c-common.h (c_expand_expr_stmt): Remove.
	(verify_sequence_points): Declare.
	* c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
	* c-parse.in (for_init_stmt, stmt): Likewise.
	* c-tree.h (c_finish_expr_stmt): Declare.
	(c_tree_expr_nonnegative_p): Remove.
	* c-typeck.c (c_tree_expr_nonnegative_p): Remove.
	(build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
	(emit_side_effect_warnings): New.
	(c_finish_expr_stmt): Rename from c_expand_expr_stmt.  Use it.
	(c_finish_stmt_expr): Work without EXPR_STMT.  Handle eh regions.
	Use emit_side_effect_warnings.
	(push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
	* fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
	* gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
	with void initializer.
	(gimplify_target_expr): Handle void BIND_EXPR initializer.
	* tree-inline.c (estimate_num_insns_1): Fix type lookup for
	INIT_EXPR and MODIFY_EXPR.
	* objc/objc-act.c (build_module_descriptor): Use add_stmt
	instead of c_expand_expr_stmt.

2004-06-21  Paolo Bonzini  <bonzini@gnu.org>

	* fold-const.c (fold_cond_expr_with_comparison):
	New function, extracted from fold.
	(fold): Extract code to fold A op B ? A : C, use
	it to fold A op B ? C : A.  Really optimize
	A & N ? N : 0 where N is a power of two.  Avoid
	relying on canonicalization and recursion for
	foldings of COND_EXPR to happen.

2004-06-20  David Ayers  <d.ayers@inode.at>

	* objc/objc-act.h (get_object_reference): Rename to
	get_protocol_reference.
	(super_type): Rename to objc_super_type.
	(selector_type): Rename to objc_selector_type.
	(id_type): Rename to objc_id_type.
	(instance_type): Rename to objc_instance_type.
	(protocol_type): Rename to objc_protocol_type.
	(IS_ID): Update reference to id_type.
	* objc/objc-act.c (get_object_reference): Rename to
	get_protocol_reference; add documentation; update references to
	id_type.
	(lookup_method_in_protocol_list): Rename class_meth to
	is_class; add documentation.
	(finish_message_expr): Rename is_class to class_tree.
	(synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
	next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
	build_next_objc_exception_stuff, get_arg_type_list,
	build_objc_method_call): Update references to id_type.
	(synth_module_prologue, build_objc_symtab_template,
	build_selector_reference_decl, build_selector,
	build_selector_translation_table, build_typed_selector_reference,
	get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
	synth_self_and_ucmd_args): Update references to selector_type.
	(build_private_template, build_ivar_reference):	Update references
	to instance_type.
	(synth_module_prologue, build_protocol_reference,
	build_protocol_expr, start_protocol): Update references to
	protocol_type.
	(synth_module_prologue, get_arg_type_list, build_objc_method_call):
	Update references to super_type.
	* c-parse.in: (typespec_nonreserved_nonattr): Update
	references to get_object_reference.
	* objc/objc-tree.def: Add C mode identifier sequence.

2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* loop-invariant.c: New file.
	* Makefile.in (loop-invariant.o): New.
	* cfgloop.h (global_cost_for_size, init_set_costs,
	move_loop_invariants): Declare.
	* cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
	functions.
	(avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
	variables.
	* common.opt (floop-optimize2, fmove-loop-invariants): New options.
	* loop-init.c (loop_optimizer_init): Call init_set_costs.
	* passes.c (rest_of_handle_loop2): Call move_loop_invariants.
	(rest_of_compilation): Check flag_loop_optimize2.
	* toplev.c (process_options): Handle flag_loop_optimize2.
	* doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
	* doc/passes.texi (loop-invariant.c): Document.

2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.

2004-06-20  Richard Henderson  <rth@redhat.com>

	* stmt.c (warn_if_unused_value): Add locus argument.
	* tree.h (warn_if_unused_value): Update decl.
	* c-typeck.c (internal_build_compound_expr): Update call.
	* c-gimplify.c (gimplify_expr_stmt): Likewise.

2004-06-20  Andrew Pinski  <pinskia@physics.uc.edu>

	PR middle-end/16089
	* builtins.c (entry_of_function): Move to ...
	* cfgrtl.c (entry_of_function): Here and make non-static.
	* integrate.c (emit_initial_value_sets): Use entry_of_function.
	* rtl.h (entry_of_function): Prototype.

2004-06-20  Roger Sayle  <roger@eyesopen.com>

	* config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
	(ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
	TARGET_DECOMPOSE_LEA.

2004-06-20  Richard Henderson  <rth@redhat.com>

	* c-common.h (add_decl_stmt): Move to cp-tree.h.
	* c-decl.c (finish_decl): Don't use add_decl_stmt.
	* c-parse.in: Likewise.
	* c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
	(gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
	* c-semantics.c (add_decl_stmt): Move to cp/semantics.c.

2004-06-20  Richard Henderson  <rth@redhat.com>

	* c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
	* c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
	CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
	(c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
	* c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
	* c-pretty-print.c (pp_c_statement): Similarly.
	* c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
	gimplify_if_stmt): Move to cp-gimplify.c.
	(c_genericize, c_gimplify_expr): Don't call them.
	* c-semantics.c (push_cleanup): Move to cp/semantics.c.
	* c-typeck.c (push_cleanup): New.
	(c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
	c_finish_if_stmt): Use COND_EXPR.
	* tree.h (CLEANUP_EH_ONLY): Update documentation.

2004-06-20  Zack Weinberg  <zack@codesourcery.com>

	* c-common.h (has_c_linkage): New interface.
	* c-cppbuiltin.c: Include target.h.
	(c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
	__PRAGMA_EXTERN_PREFIX when appropriate.
	* c-pragma.c: Include target.h.
	Document clarified semantics of symbol-renaming #pragmas.
	(handle_pragma_redefine_extname, handle_pragma_extern_prefix)
	(maybe_apply_renaming_pragma): Rewrite according to clarified
	semantics.  Always recognize, but do not necessarily execute.
	(init_pragma): Unconditionally register symbol-renaming pragmas.
	* system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
	and HANDLE_PRAGMA_EXTERN_PREFIX.
	* target.h (struct gcc_target): Add handle_pragma_redefine_extname
	and handle_pragma_extern_prefix flags.
	* target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
	and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
	* Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
	* config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
	not HANDLE_PRAGMA_REDEFINE_EXTNAME.
	(TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
	(TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
	* config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
	not HANDLE_PRAGMA_EXTERN_PREFIX.
	(TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
	* doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
	into one section "Symbol-Renaming Pragmas"; clarify; document
	adjusted semantics.

	* builtins.c (expand_builtin): Do not issue error for a builtin
	with no special case code and no DECL_ASSEMBLER_NAME; just do the
	library call.
	* c-decl.c (builtin_function): Don't call make_decl_rtl.
	* c-objc-common.c (has_c_linkage): Stub implementation.
	* cgraphunit.c (cgraph_expand_function)
	(cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.

2004-06-19  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
	instead of both an ARGLIST and a result TYPE.  Handle these C99
	comparison functions as "polymorphic" builtins.  Also handle
	lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
	(fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
	Move handling of BUILT_IN_ISUNORDERED from here to there.

2004-06-19  Richard Henderson  <rth@redhat.com>

	* c-common.c, c-common.h (lang_gimplify_stmt): Remove.
	* c-gimplify.c: Remove unnecessary prototypes.
	(c_gimplify_stmt): Merge into ...
	(c_gimplify_expr): ... here.  Don't play with prep_stmt.
	* c-semantics.c (prep_stmt): Remove.
	* gimplify.c (annotate_one_with_locus): Break out from ...
	(annotate_all_with_locus): ... here.
	(gimplify_expr): Add locus to expressions even if pre/post queues
	are not present.

2004-06-19  Richard Henderson  <rth@redhat.com>

	PR target/15941
	* function.c (assign_parms): If not padding upward or intentionally
	forcing upward padding, take offset_rtx into account when determining
	the alignment for stack_parm.

2004-06-19  Richard Henderson  <rth@redhat.com>

	PR target/15550
	* ifcvt.c (noce_try_move): Recognize all generated instructions.

2004-06-19  Jan Hubicka  <jh@suse.cz>

	* function.c (free_after_compilation): Do not free computed_goto_common*.
	* function.h (struct function): Kill computed_goto_common*.
	* stmt.c (expand_computed_goto): Do not commonize the computed gotos.
	* tree-cfg.c (disband_implicit_edges): Do not forward across the
	commonized computed goto.

2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
	in binutils.

2004-06-19  Andrew Pinski  <apinski@apple.com>

	PR c++/15721
	* toplev.c (wrapup_global_declarations): Do not check
	TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
	cgraph_varpool_node's needed field.

2004-06-19  Jan Hubicka  <jh@suse.cz>
	    Steven Bosscher  <stevenb@suse.de>

	CFG transparent RTL expansion:
	* Makefile.in (cfgexpand.o): New object file.
	(builtins.o): Add dependency on basic-block.h
	* builtins.c: Include basic-block.h
	(entry_of_function): New function.
	(expand_builtin_apply_args, expand_builtin_saveargs): Use it.
	* cfgexpand.c: New file.
	* expr.c (execute_expand, pass_expand): Kill.
	* pass.c (rest_of_compilation): Do not build CFG unless called from
	coverage code.
	* tree-cfg.c (delete_tree_cfg): Rename to..
	(delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
	* tree-flow.h (delete_tree_cfg_annotations): Declare.
	(dleete_tree_cfg): Kill.
	* tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
	(execute_del_cfg): Rename to...
	(execute_free_datastructures): This one...
	(pass_del_cfg): Rename to...
	(pass_free_datastructures): ... this one; Do not kill PROP_cfg.
	(init_tree_optimization_passes): Make cfg build and profiling to happen
	unconditionally.

2004-06-19  Steven Bosscher  <stevenb@suse.de>

	* tree-mudflap.c (mf_decl_cache_locals): Skip labels before
	inserting the cache variables.

	* tree-mudflap.c: Include headers to make basic_block available.
	Move functions around such that related functions are near each
	other.  Add prototypes for all static functions.  Add comments
	briefly explaining what IR the mudflap1 and mudflap2 work on and
	what they do.
	(mudflap_function_decls): Rename to execute_mudflap_function_decls.
	(mudflap_function_ops): Rename to execute_mudflap_function_ops.
	(pass_mudflap_1, pass_mudflap_2): Update.
	(mf_decl_cache_locals): Make it work on the CFG instead of the saved
	function tree.
	(mf_build_check_statement_for): Make it work on the CFG.
	(mf_xform_derefs_1): Likewise.  Cleanup code style.
	(mf_xform_derefs): Likewise.

2004-06-19  Jan Hubicka  <jh@suse.cz>

	* tree-cfg.c (label_to_block): Invent the label destination for
	undefined labels.
	(cleanup_dead_labels): Update table in the case label_to_block added
	new label.

2004-06-18  Richard Henderson  <rth@redhat.com>

	PR c++/16036
	* gimple-low.c (lower_function_body): Generate return statement for
	fall off the end of the function here ...
	* tree-cfg.c (make_edges): ... instead of here.
	* gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.

2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* tree-ssa.c (raise_value): Removed.
	(get_eq_name, check_phi_redundancy): New functions.
	(kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.

2004-06-18  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
	UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
	constant folding for unordered comparison tree nodes.  If both
	operands are real constants, call fold_relational_const.  If either
	operand is a NaN, evaluate the other for side-effects and return a
	constant.  Optimize (double)float1 CMP (double)float2 into the
	equivalent float1 CMP float2.
	(nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
	ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
	LTGT_EXPR>: Call fold_relational_const for constant operands.
	(fold_relational_const): Add support for unordered comparison tree
	nodes.  Don't constant fold "ordered" floating point comparisons
	against NaN if when flag_trapping_math is set.

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

	* fold-const.c (build_range_check): If !in_p and recursive call
	fails, exit immediately.  If high - low overflows and etype is
	a signed type, retry with unsigned etype.
	(merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
	to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.

2004-06-18  Richard Henderson  <rth@redhat.com>

	* c-gimplify.c (gimplify_condition): Remove.
	(gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
	call it.

2004-06-18  Richard Henderson  <rth@redhat.com>

	* tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
	switch estimates.

2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
	(NORMAL_TEXT_SECTION_NAME): Define.
	(UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
	(SECTION_FORMAT_STRING): Define.

2004-06-18  Steven Bosscher  <stevenb@suse.de>

	* config/xtensa/xtensa.c
	(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
	* xtensa.md: Replace the old pipeline description with a DFA model.

2004-06-18  Steven Bosscher  <stevenb@suse.de>
	    Ulrich Weigand <Ulrich.Weigand@de.ibm.com>

	* config/s390/s390.md: Remove the generic pipeline description.
	* config/s390/2064.md: Make all insn reservations apply to
	the z900, g5 and g6.
	* config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
	(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
	Define to hook_int_void_1.
	(s390_adjust_cost): Cleanup.  Don't check address dependency here.
	(s390_first_cycle_multipass_dfa_lookahead): Always return 4.

2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
			Diego Novillo  <dnovillo@redhat.com>

	* tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
	(create_stmt_ann): Ditto.
	(create_tree_ann): New function.
	(create_cst_ann): Remove.
	(create_expr_ann): Ditto.

	* tree-flow-inline.h (cst_ann): Remove.
	(get_cst_ann): Ditto.
	(get_expr_ann): Ditto.
	(expr_ann): Ditto.
	(get_tree_ann): New function.
	(tree_ann): Ditto.
	(ann_type): tree_ann -> tree_ann_t.
	* tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
	(struct cst_ann_d): Removed.
	(struct expr_ann_d): Ditto.
	(union tree_ann_d): Removed cst and expr.
	(tree_ann): Renamed to tree_ann_t.
	* tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
	* tree-ssa-pre.c (get_value_handle): Rewrite for single common
	annotation.
	(set_value_handle): Ditto.
	(phi_translate): Ditto.
	* tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.

2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/t-linux64: New file.
	* config.gcc: Add it to tmake_file for sh64*-*-linux*.

2004-06-18  Paolo Bonzini  <bonzini@gnu.org>

	* emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
	(unshare_all_rtl_again): Call unshare_all_rtl_1.
	(unshare_all_rtl): New.
	* function.c (instantiate_virtual_regs): Remove parameters.
	* function.h (instantiate_virtual_regs): Add prototype.
	* rtl.h (unshare_all_rtl): Add prototype.
	* tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
	prototype.
	* passes.c: Remove assertions on the parameters to
	rest_of_handle_* functions.  Remove the parameters to
	the functions, replacing decl with current_function_decl
	and insns with get_insns ().

2004-06-17  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (constant_boolean_node): Handle boolean_type_node
	directly, return either boolean_true_node or boolean_false_node.

2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>

	* opts.sh: Delete.  Break out generated code to next four files.
	* opt-gather.awk: New file.
	* optc-gen.awk: New file.
	* opth-gen.awk: New file.
	* opt-functions.awk: New common file.
	* Makefile.in: Update for above.
	* configure.ac: Update comment.
	* configure: Regenerate.

2004-06-17  Richard Henderson  <rth@redhat.com>

	* c-common.c (flag_objc_sjlj_exceptions): New.
	* c-common.h (flag_objc_sjlj_exceptions): Declare.
	* c-opts.c (c_common_handle_option): Set it.
	(c_common_post_options): Handle interation of different
	objective-c exception and runtime switches.
	* c-decl.c (c_eh_initialized_p): New.
	(finish_decl): Use it instead of local eh_initialized_p.
	* c-parse.in (nested_function, notype_nested_function): Record
	the result of compstmt.
	(compstmt_or_error): Likewise.
	(compstmt): Don't add_stmt the result.
	(stmt): Don't return anything.  Rewrite objc try and sync rules.
	(objc_try_stmt, objc_catch_list): Remove.
	(objc_catch_block, objc_finally_block): Remove.
	(objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
	(objc_try_catch_clause, objc_finally_clause): New.
	(objc_try_catch_stmt): Rewrite.
	* c-tree.h (c_eh_initialized_p): Declare.
	* c-opt (fobjc-sjlj-exceptions): New.
	* except.c (output_function_exception_table): Don't call cgraph
	on non-decls.
	* objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
	UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
	catch_count_stack, exc_binding_stack, if_nesting_count,
	blk_nesting_count, objc_enter_block, objc_exit_block,
	objc_declare_variable, val_stack_push, val_stack_pop,
	objc_build_try_enter_fragment, objc_build_extract_expr,
	objc_build_try_exit_fragment, objc_build_extract_fragment,
	objc_build_try_prologue, objc_build_try_epilogue,
	objc_build_catch_stmt, objc_build_catch_epilogue,
	objc_build_finally_prologue, objc_build_finally_epilogue,
	objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
	objc_build_synchronized_epilogue): Remove.
	(objc_create_temporary_var, struct objc_try_context, cur_try_context,
	objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
	next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
	next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
	next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
	objc_begin_catch_clause, objc_finish_catch_clause,
	objc_build_finally_clause, objc_finish_try_stmt,
	objc_build_synchronized): New.
	(objc_is_object_id, objc_is_class_id): New.
	(objc_comptypes): Use them.
	(build_next_objc_exception_stuff): Break NeXT sjlj out from
	build_objc_exception_stuff.
	(synth_module_prologue): Update to match.
	(objc_build_throw_stmt): Use cur_try_context to decide if
	we're in a @catch.
	* objc/objc-act.h: Update prototypes.
	(OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.

2004-06-17  Andrew Pinski <apinski@apple.com>

	* c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
	Use TYPE_FIELDS instead of TYPE_VALUES.

2004-06-17  Jason Merrill  <jason@redhat.com>

	PR c++/16015
	* gimplify.c (gimplify_target_expr): Handle void initializer.
	* expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
	* doc/c-tree.texi (Expression trees): Update TARGET_EXPR
	and AGGR_INIT_EXPR.

2004-06-17  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_relational_const): Use constant_boolean_node.

2004-06-17  Jan Hubicka  <jh@suse.cz>

	PR target/15433
	* i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
	operand numbering in the output template.
	(SSE DF cmov 0 splitter): The conditional is VOIDmode.

2004-06-17  Jan Hubicka  <jh@suse.cz>

	* except.c (can_throw_internal): Recognize RESX expresisons.

2004-06-17  Jan Hubicka  <jh@suse.cz>

	* cfgbuild.c (make_edges): Do not use label_value_list.
	(find_basic_blocks_1): Do not collect label_value_list.
	(find_sub_basic_blocks): Update call of make_edges.

2004-06-17  Andrew MacLeod  <amacleod@redhat.com>

	* tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
	* tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
	(get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
	(get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
	(get_v_may_def_result_ptr):  Return a def_operand_p.
	(get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
	(get_v_must_def_op_ptr):  Return a def_operand_p.
	(get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
	(get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
	(phi_element_for_edge):  Remove.
	* tree-flow.h (propagate_value, replace_exp):  Change prototype.
	(propagate_tree_value):  Add new prototype.
	(phi_element_for_edge):  Remove prototype.
	* tree-into-ssa.c (mark_def_sites):  Use new operand types.
	(prepare_operand_for_rename):  Split into two functions.
	(prepare_use_operand_for_rename):  Prepare use operands.
	(prepare_def_operand_for_rename):  Prepare def operands.
	(rewrite_stmt):  Use new operand types.
	(rewrite_operand):  Use new operand types, change parameter type.
	* tree-outof-ssa.c (replace_variable):  Split into two functions.
	(replace_use_variable):  Rewrite uses.
	(replace_def_variable):  Rewrite defs.
	(rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
	* tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
	(add_phi_arg, remove_phi_arg_num):  Use new operand types.
	* tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
	(ccp_fold, replace_uses_in):  Use new operand types.
	* tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
	and no longer set the value, change parameter type.
	(replace_exp_1):  Use new operand types.
	(propagate_value):  Change parameter type, use new operand types.
	(propagate_tree_value):  Propagate_value without SSA operands.
	(replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
	(cprop_into_successor_phis):  Use new operand types.
	* tree-ssa-dom.c (thread_across_edge):  Use new operand types.
	(eliminate_redundant_computations):  Use new operand types.
	* tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
	(fix_stmt_v_may_defs):  Use new operand_types.
	* tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
	(build_tree_conflict_graph):  Use new operand_types.
	* tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
	* tree-ssa-operands.c (struct freelist_d):  Remove.
	(check_optype_freelist, add_optype_freelist):  Remove.
	(allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
	allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
	(free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
	Call ggc_free instead of add_optype_freelist.
	(init_ssa_operands, fini_ssa_operands):  Remove free list code.
	(finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
	* tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
	(struct use_optype_d):  Change underlying type.
	(def_operand_p, use_operand_p):  New types for pointers to operands.
	(USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
	V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
	(USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand
	pointer types.
	(SET_USE, SET_DEF):  New macros to set operands from their pointer.
	(SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
	SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
	(PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
	PHI result as an operand.
	(PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
	PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
	* tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
	* tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
	PHI_ARG_DEF_FROM_EDGE.
	* tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
	(PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.

2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	PR tree-optimization/15991
	* tree-cfg.c (tree_block_label): Export.
	* tree-flow-inline.h (bsi_after_labels): New function.
	* tree-flow.h (bsi_after_labels, tree_block_label): Declare.
	* tree-ssa.c (propagate_into_addr): New function.
	(replace_immediate_uses): Handle propagation of pointer constants.
	(raise_value): Do not restrict propagation of pointer constants.
	* tree-ssanames.c (duplicate_ssa_name): New function.
	* tree.h (duplicate_ssa_name): Declare.

2004-06-17  David Ayers  <d.ayers@inode.at>

	* c-parse.in: Unify Objective-C token names.

2004-06-17  Zack Weinberg  <zack@codesourcery.com>

	Bug 14610
	* Makefile.in (min-insn-modes.o): Correct dependencies.
	* real.c (encode_ieee_extended, decode_ieee_extended): Always
	produce/consume 12-byte little-endian Intel format.
	(encode_ieee_extended_128, decode_ieee_extended_128): Delete.
	(encode_ieee_extended_motorola, decode_ieee_extended_motorola)
	(encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
	(encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
	New functions which convert between 12-byte little-endian Intel
	format and the desired format.
	(ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
	(ieee_extended_intel_96_format, ieee_extended_intel_128_format):
	Update.

2004-06-17  Zack Weinberg  <zack@codesourcery.com>

	* expmed.c (expand_mult_const): In sanity check, compare only
	the bits of val and val_so_far that are significant in the
	result mode.

2004-06-17  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c:  Update comments.
	(val_expr_pair_eq): Factor code from here.
	(expr_pred_trans_eq): and here.
	(expressions_equal_p): To here.
	(print_value_set): Print value for expression.
	(phi_trans_lookup): Rename some variables.
	(lookup): Ditto.
	(value_exists_in_set_bitmap): Ditto.
	(value_remove_from_set_bitmap): Ditto.
	(value_insert_into_set_bitmap): Ditto.

2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390-modes.def (CCL3mode): New machine mode.
	* config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
	(s390_alc_comparison, s390_slb_comparison): Likewise.
	(s390_branch_condition_mask): Likewise.
	* config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
	("*subsi3_cc2", "*subsi3_cconly2"): New.

	* config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
	ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
	* config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
	Handle SIGN_EXTEND and ZERO_EXTEND.

	* config/s390/s390-protos.h (s390_expand_addcc): New prototype.
	* config/s390/s390.c (s390_expand_addcc): New function.
	* config/s390/s390.md ("adddicc", "addsicc"): New expanders.
	("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
	("sltu", "sgtu", "sleu", "sgeu"): New expanders.

2004-06-17  Ben Elliston  <bje@au.ibm.com>

	* tree-alias-common.c: Add whitespace.
	* tree-inline.c: Correct comment about this file's purpose.
	* tree-optimize.c: Likewise.
	* tree-tailcall.c: Likewise.

	* tree-alias-ander.h: Add standard top-of-file comment.
	* tree-alias-common.h: Likewise.
	* tree-alias-type.h: Likewise.

2004-06-16  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (compute_avail): Value number uses as well.
	Strip useless type conversions.
	Casts have to be treated slightly different than normal unaries.

2004-06-16  Richard Henderson  <rth@redhat.com>

	* c-common.def (COMPOUND_STMT): Remove.
	* c-common.c (finish_fname_decls): Don't look through it.
	* c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
	* c-common.h (COMPOUND_BODY): Remove.
	(c_common_stmt_codes): Remove COMPOUND_STMT.
	* c-dump.c (c_dump_tree): Likewise.
	* c-gimplify.c (c_gimplify_stmt): Likewise.
	* c-pretty-print.c (pp_c_statement): Likewise.
	* tree.h (DECL_SAVED_TREE): Update commentary.
	* doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
	(CASE_LABEL_EXPR): Rename from CASE_LABEL.
	(GOTO_EXPR): Rename from GOTO_STMT.
	(GOTO_FAKE_P): Remove.
	(COMPOUND_STMT): Remove.
	(HANDLER): Update wrt COMPOUND_STMT.
	(STMT_EXPR): Likewise.
	(LABEL_EXPR): Rename from LABEL_STMT.
	(SCOPE_STMT): Remove.
	* objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
	through COMPOUND_STMT.

2004-06-16  Richard Henderson  <rth@redhat.com>

	* c-common.h (c_begin_if_stmt, c_begin_while_stmt,
	c_finish_while_stmt_cond): Remove decls.
	* c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
	* c-typeck.c (c_begin_if_stmt): Return void.
	(c_begin_else): Tidy.  Save stmt_count.
	* c-tree.h (c_begin_if_stmt): Update decl.

	* objc/objc-act.c (objc_build_try_enter_fragment,
	objc_build_extract_fragment, objc_build_try_epilogue,
	objc_build_catch_stmt, objc_build_catch_epilogue,
	objc_build_finally_prologue, objc_build_finally_epilogue): Update
	for if builder function changes.

2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (struct machine_function):  New member
	last_restore_gpr.
	(s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
	Do not modify machine->save_return_addr_p or regs_ever_live.
	Fill in machine->last_restore_gpr.
	(s390_optimize_prolog): Use s390_frame_info to compute registers
	to save/restore, remove duplicated code.
	(s390_arg_frame_offset): Use s390_frame_info to compute frame
	size, remove duplicated code.
	(s390_emit_prologue): Adapt s390_frame_info call.  Update
	machine->save_return_addr_p and regs_ever_live.
	(s390_emit_epilogue): Use machine->last_restore_gpr instead of
	machine->last_save_gpr.

2004-06-16  Richard Henderson  <rth@redhat.com>

	* c-parse.in (if_stmt_locus): Remove.
	(if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
	(select_or_iter_stmt): Move empty if warnings to c-typeck.c.
	* c-typeck.c (if_elt): Sort by expected size.  Rename locus to
	empty_locus.  Add stmt_count, saw_else.
	(c_begin_if_stmt): Push if_stack here.
	(c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
	(c_finish_then, c_finish_else): Record empty_locus.
	(c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
	(c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
	if or else body.
	* c-tree.h: Update prototypes.

2004-06-16  Steven Bosscher  <stevenb@suse.de>

	* tree.h (PHI_CHAIN): New.
	* (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
	tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
	tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
	tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
	tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
	when traversing a list of PHI_NODEs.

2004-06-16  Bernardo Innocenti  <bernie@develer.com>

	PR target/13292
	* config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
	on -msoft-float.
	(TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
	68040 and soft-float.
	* config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
	in the TARGET_68040_ONLY case.

2004-06-16 Peter Barada  <peter@the-baradas.com>

	* config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
	(movsi_cf): Make named, don't match TARGET_CFV4.
	(pushexthisi_const): Use mov3q if possible.
	(extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
	to special case mvz.w for ColdFire V4.
	(extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
	to special case mvz.b for ColdFire V4.
	(udivmodhi4, divmodhi4): Use mvz to zero extend arg for
	divide.
	(iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
	* config/m68k/m68k.c(valid_mov3q_const):  New function.
	(const_method): SWAP is valid for ColdFire.
	(MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
	* config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.

2004-06-16  Richard Henderson  <rth@redhat.com>

	* c-common.def (CASE_LABEL): Remove.
	* c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
	(match_case_to_enum_1): Likewise.
	* c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
	* c-dump.c (c_dump_tree): Likewise.
	* c-gimplify.c (c_gimplify_stmt): Likewise.
	* c-pretty-print.c (pp_c_statement): Likewise.
	* c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
	* tree.h (CASE_LOW): Update commentary.

2004-06-16  Richard Henderson  <rth@redhat.com>

	* c-common.def (ASM_STMT): Remove.
	* c-common.h (c_common_stmt_codes): Remove ASM_STMT.
	* c-dump.c (c_dump_tree): Likewise.
	* c-gimplify.c (c_gimplify_stmt): Likewise.
	* c-pretty-print.c (pp_c_statement): Likewise.
	* c-typeck.c (build_asm_expr): Use ASM_EXPR.
	* tree.h: Fix commentary.

2004-06-16  Richard Henderson  <rth@redhat.com>

	* c-common.def (GOTO_STMT, LABEL_STMT): Remove.
	* c-common.c (c_add_case_label): Use LABEL_EXPR.
	* c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
	(c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
	* c-dump.c (c_dump_tree): Likewise.
	* c-gimplify.c (c_gimplify_stmt): Likewise.
	* c-pretty-print.c (pp_c_statement): Likewise.
	* c-parse.in (stmt): Use GOTO_EXPR.
	(label): Use LABEL_EXPR.
	* c-semantics.c (build_stmt): Set TREE_TYPE to void.
	* tree-inline.c (copy_body_r): Don't build empty BLOCKs.

2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>

	* cfgcleanup.c (try_simplify_condjump): Update test to make
	sure we have a conditional branch around am unconditional branch.

2004-06-16  Daniel Berlin  <dberlin@dberlin.org>

	* tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.

2004-06-16  Dale Johannesen  <dalej@apple.com>

	* loop.c (loop_givs_reduce): Avoid miscompilation of
	loops entered at bottom.

2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>

	* cfglayout.c (fixup_reorder_chain): Handle case where the
	destination of E_FALL is EXIT_BLOCK_PTR.

2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/15653
	* config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
	after shifts before asm.

2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	PR tree-optimization/15993
	* tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
	destination is unchanged.

2004-06-16  Andreas Jaeger  <aj@suse.de>

	* doc/install.texi (Configuration): Update description for
	--enable-version-specific-runtime-libs.

2004-06-16  Paolo Bonzini  <bonzini@gnu.org>

	* doc/install.texi: boehm-gc now uses automake 1.8.5.

2004-06-16  Paolo Bonzini  <bonzini@gnu.org>

	* toplev.h (rest_of_compilation): Adjust prototype.

2004-06-16  Paolo Bonzini  <bonzini@gnu.org>

	* coverage.c: Remove argument to rest_of_compilation.
	* expr.c (execute_expand, set_save_expr_context, pass_expand): New.
	* passes.c (rest_of_compilation): Remove argument.
	(pass_rest_of_compilation): New.
	(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_regrename
	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_web, rest_of_handle_branch_prob
	rest_of_handle_value_profile_transformations, rest_of_handle_cfg
	rest_of_handle_addressof, rest_of_handle_jump_bypass
	rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
	Check that the two arguments are actually superfluous.
	* tree-optimize.c (register_dump_files): Add properties argument.
	Track validity of passes.  Only initialize dump files for
	tree-based passes.  Store the full set of provided passes in
	the pass.
	(init_tree_optimization_passes): Register pass_expand and
	pass_rest_of_compilation.
	(execute_one_pass): Do not track the presence of required properties
	here.  Set in_gimple_form.  Do not update current_properties.
	(current_properties): Remove.
	(set_save_expr_context): Remove.
	(tree_rest_of_compilation): Do not set in_gimple_form.  Do not
	expand to RTL here, and do not call rest_of_compilation.  Push
	GGC context even before gimplification.
	* tree-pass.h (PROP_rtl, PROP_trees): New flags.
	(pass_expand, pass_rest_of_compilation): Declare.

2004-06-15  Jeff Law  <law@redhat.com>

	* fold-const.c (swap_tree_comparison): No longer static.
	(tree_swap_operands_p): Similarly.  Return true if both operands
	are SSA_NAMEs and the first operand has a higher version number than
	the second operand.
	* tree.h (swap_tree_comparison): Prototype.
	(tree_swap_operands_p): Prototype.
	* tree-ssa-operands.c (get_expr_operands): For commutative
	operators and relational comparisons, canonicalize the
	order of the operands.

2004-06-15  Richard Henderson  <rth@redhat.com>

	* c-common.c (lang_gimplify_stmt): Remove next_p argument.
	(if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
	c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
	c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
	(finish_fname_decls, fname_decl): Use statement_lists.
	(c_expand_expr_stmt): Don't set last_expr_type.
	(c_type_hash): Fix indentation.
	(c_safe_from_p): Don't follow TREE_CHAIN.
	(c_tree_chain_matters_p): Remove.
	* c-common.def (SCOPE_STMT): Remove.
	(CLEANUP_STMT): Redefine to contain its own body.
	* c-common.h (struct stmt_tree_s): Remove x_last_stmt,
	x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
	Add x_cur_stmt_list.
	(last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
	(cur_stmt_list): New.
	(STATEMENT_LIST_STMT_EXPR): New.
	(SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
	SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
	(CLEANUP_BODY): New.
	(CLEANUP_DECL): Move to operand 2.
	(c_common_stmt_codes): Remove SCOPE_STMT.
	(COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
	* c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
	(c_push_function_context, c_pop_function_context): Don't save it.
	(finish_decl): Set TREE_USED on the decl for a cleanup.
	Use push_cleanup.
	(store_parm_decls): Use statement lists.
	(finish_function): Remove compstmt rule workaround.  Use statement
	lists.  Call finish_fname_decls after finalizing the body.
	(c_begin_compound_stmt): Move to c-typeck.c.
	* c-dump.c (c_dump_tree): Remove SCOPE_STMT.
	* c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
	(c_genericize): Invoke them.
	(c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
	(c_build_bind_expr): Export.
	(gimplify_block, gimplify_cleanup): Remove.
	(gimplify_condition): Use gimplify_stmt.
	(gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
	(gimplify_if_stmt): Remove recursion hack.
	(c_gimplify_expr): Remove STMT_EXPR handling.
	(stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
	(is_last_stmt_of_scope): Remove.
	* c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
	* c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
	c_end_compound_stmt.
	* c-objc-common.c (build_cdtor): Likewise.
	* c-parse.in (primary): Use c_finish_stmt_expr.
	(push_scope, pop_scope): Remove.
	(c99_block_start, compstmt_start): Use c_begin_compound_stmt.
	(c99_block_end, compstmt): Use c_end_compound_stmt.
	(c99_block_lineno_labeled_stmt): Likewise.
	(compstmt_primary_start): Use c_begin_stmt_expr.
	(simple_if, select_or_iter_stmt): Update calls to stmt builders.
	(do_stmt_start): Fill in body directly.
	(lineno_stmt): Avoid setting lineno on constants.
	* c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
	Remove SCOPE_STMT.
	* c-semantics.c (begin_stmt_tree): Remove.
	(push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
	(add_stmt): Use statement lists.
	(add_scope_stmt, finish_stmt_tree): Remove.
	(push_cleanup): New.
	* c-tree.h: Move some decls from c-common.h.
	* c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
	(do_case, c_finish_case): Likewise.
	(c_finish_then): Take body for then as argument.
	(c_finish_else): Similarly.
	(c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
	c_finish_for_stmt_incr, c_finish_for_stmt): New.
	(c_begin_stmt_expr, c_finish_stmt_expr): New.
	(c_begin_compound_stmt): Do scope management.
	(c_end_compound_stmt): New.
	* fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
	* gimplify.c (voidify_wrapper_expr): Accept temporary argument.
	Look through exception handling constructs.
	(gimplify_bind_expr): Accept temporary argument.
	(gimplify_target_expr): Special case BIND_EXPR bodies.
	(gimplify_expr): Handle fallback == fb_none like a statement.
	* langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
	* langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
	* langhooks.h (tree_chain_matters_p): Remove.
	* stub-objc.c (objc_clear_super_receiver): New.
	* tree-gimple.h (voidify_wrapper_expr): Update decl.
	(append_to_statement_list, append_to_statement_list_force): Move
	to tree-iterator.h.
	* tree-inline.c (expand_call_inline): Update call.
	(clone_body): Use statement lists.
	(walk_tree): Don't check tree_chain_matters_p.
	(copy_tree_r): Likewise.
	* tree-iterator.c (alloc_stmt_list): Clear lang bits.
	(tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
	* tree-iterator.h (append_to_statement_list,
	append_to_statement_list_force): Moved from tree-gimple.h.
	* tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
	* objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
	(objc_enter_block): Likewise.
	(objc_exit_block): Use c_end_compound_stmt.
	(objc_build_try_enter_fragment): Add #error and comment for
	rewriting for OBJCPLUS.
	(objc_build_extract_fragment, objc_build_try_epilogue,
	objc_build_catch_stmt, objc_build_finally_prologue,
	objc_build_finally_epilogue): Update for C statement builders.
	* objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
	Remove.

2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* df.c (df_reg_clobber_gen): Removed.
	(df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
	Make more effective for hard regs.
	* ra-build.c (livethrough_conflicts_bb): Check contains_call.

2004-06-15  Alexandre Oliva  <aoliva@redhat.com>

	* c-pragma.h (c_lex_string_translate): Change type to int.
	* c-parse.in: Change all assignments of c_lex_string_translate
	to true and false to 1 and 0.
	* c-lex.c (c_lex_string_translate): Likewise.
	(lex_string): Convert string without translation in the -1
	case.

2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>

	* convert.h: Add include guards

2004-06-15  Daniel Berlin  <dberlin@dberlin.org>

	* tree-flow-inline.h: Document all functions.

2004-06-15  Daniel Berlin  <dberlin@dberlin.org>

	* tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
	* tree-dfa.c (create_stmt_ann): Ditto.
	* tree-pretty-print.c (dump_generic_node): Remove E* node handling.
	* tree-inline.c (estimate_num_insns_1): Ditto.
	* tree.c (tree_size): Ditto.
	(make_node_stat): Ditto.
	(tree_node_structure): Ditto.
	(ephi_node_elt_check_failed): Remove.
	(is_essa_node): Ditto.
	* tree.def (EPHI_NODE): Ditto.
	(EEXIT_NODE): Ditto.
	(EUSE_NODE): Ditto.
	(EKILL_NODE): Ditto.
	* tree.h (EREF_NODE_CHECK): Remove.
	(EPHI_NODE_ELT_CHECK): Ditto.
	(struct tree_eref_common): Ditto.
	(struct tree_euse_node): Ditto.
	(struct ephi_arg_d): Ditto.
	(struct tree_ephi_node): Ditto.
	(ephi_node_elt_check_failed): Remove prototype.
	(is_essa_node): Ditto.
	(enum tree_node_structure_enum): Remove TS_E*_NODE.
	(union tree_node): Remove E*_NODE uses.

2004-06-15  Jerry Quinn  <jlquinn@optonline.net>

	* alias.c (record_set, record_base_value, canon_rtx, get_addr,
	nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
	* bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
	Likewise.
	* builtins.c (expand_builtin_setjmp, expand_builtin_apply,
	expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
	expand_builtin_strcmp, expand_builtin_strncmp,
	expand_builtin_frame_address): Likewise.
	* caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
	insert_one_insn): Likewise.
	* calls.c (prepare_call_address, precompute_register_parameters,
	precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
	* cfganal.c (flow_active_insn_p): Likewise.
	* combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
	combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
	subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
	make_extraction, recog_for_combine, gen_lowpart_for_combine,
	simplify_comparison, record_dead_and_set_regs_1,
	record_dead_and_set_regs, record_promoted_value,
	check_promoted_subreg, get_last_value_validate, get_last_value,
	reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
	unmentioned_reg_p_1): Likewise.
	* conflict.c (mark_reg): Likewise.
	* cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
	mention_regs, insert_regs, lookup, lookup_for_remove, insert,
	merge_equiv_classes, flush_hash_table, invalidate,
	remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
	invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
	cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
	record_jump_cond, cse_insn, addr_affects_sp_p,
	invalidate_from_clobbers, cse_process_notes, cse_around_loop,
	cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
	cse_cc_succs, cse_condition_code_reg): Likewise.
	* cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
	cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
	cselib_record_set, cselib_record_sets): Likewise.
	* dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
	dbxout_block): Likewise.
	* df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
	* dojump.c (do_jump): Likewise.
	* dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
	is_based_loc, rtl_for_decl_location): Likewise.
	* emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
	set_decl_incoming_rtl, mark_user_reg): Likewise.
	* explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
	copy_to_suggested_reg, allocate_dynamic_stack_space,
	probe_stack_range, hard_function_value): Likewise.
	* expmed.c (store_bit_field, store_fixed_bit_field,
	store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
	extract_split_bit_field, expand_divmod, emit_store_flag_force):
	Likewise.
	* expr.c (convert_move, convert_modes,
	block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
	use_group_regs, emit_move_insn, emit_move_insn_1,
	compress_float_constant, push_block, emit_single_push_insn,
	emit_push_insn, get_subtarget, expand_assignment, store_expr,
	store_constructor, store_field, force_operand, safe_from_p,
	expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
	Likewise.
	* final.c (profile_function, final_scan_insn, alter_subreg,
	get_mem_expr_from_op, output_asm_operand_names, output_operand,
	only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
	* flow.c (verify_wide_reg_1, mark_regs_live_at_end,
	find_regno_partial, propagate_one_insn, init_propagate_block_info,
	insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
	attempt_auto_inc, find_auto_inc, mark_used_regs,
	count_or_remove_death_notes_bb): Likewise.
	* function.c (find_temp_slot_from_address, update_temp_slot_address,
	preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
	fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
	put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
	purge_single_hard_subreg_set, instantiate_decl,
	instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
	promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
	setjmp_protect, setjmp_protect_args, fix_lexical_addr,
	expand_function_start, diddle_return_value, clobber_return_register,
	expand_function_end, keep_stack_depressed, handle_epilogue_set,
	update_epilogue_consts): Likewise.
	* genemit.c (gen_exp, gen_insn): Likewise.
	* genrecog.c (make_insn_sequence): Likewise.
	* global.c (global_conflicts, expand_preferences, mark_reg_store,
	mark_reg_conflicts, set_preference, reg_becomes_live,
	build_insn_chain, mark_reg_change): Likewise.
	* haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
	Likewise.
	* ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
	Likewise.
	* integrate.c (copy_rtx_and_substitute, try_constants,
	subst_constants, mark_stores, allocate_initial_values): Likewise.
	* jump.c (reversed_comparison_code_parts, delete_prior_computation,
	delete_computation, rtx_renumbered_equal_p, true_regnum,
	reg_or_subregno): Likewise.
	* lcm.c (reg_dies, reg_becomes_live): Likewise.
	* local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
	update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
	wipe_dead_reg, no_conflict_p): Likewise.
	* loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
	iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
	simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
	* loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
	move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
	find_single_use_in_loop, count_one_set, loop_bivs_init_find,
	loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
	valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
	loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
	maybe_eliminate_biv_1, record_initial, update_reg_last_use,
	canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
	try_swap_copy_prop): Likewise.
	* optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
	expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
	Likewise.
	* postreload.c (reload_cse_simplify, reload_cse_simplify_set,
	reload_cse_simplify_operands, reload_combine,
	reload_combine_note_store, reload_combine_note_use,
	reload_cse_move2add, move2add_note_store): Likewise.
	* print-rtl.c (print_rtx): Likewise.
	* ra-build.c (copy_insn_p, remember_move, init_one_web_common,
	contains_pseudo, handle_asm_insn): Likewise.
	* ra-debug.c (ra_print_rtx_object, dump_constraints,
	dump_static_insn_cost): Likewise.
	* ra-rewrite.c (slots_overlap_p, emit_colors,
	remove_suspicious_death_notes): Likewise.
	* recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
	register_operand, scratch_operand, nonmemory_operand,
	constrain_operands): Likewise.
	* reg-stack (check_asm_stack_operands, remove_regno_note,
	emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
	subst_asm_stack_regs): Likewise.
	* regclass.c (scan_one_insn, record_reg_classes, copy_cost,
	record_address_regs, reg_scan_mark_refs): Likewise.
	* regmove.c (discover_flags_reg, replacement_quality,
	copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
	fixup_match_1): Likewise.
	* regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
	kill_set_value, copyprop_hardreg_forward_1): Likewise.
	* reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
	reload_inner_reg_of_subreg, can_reload_into, push_reload,
	combine_reloads, find_dummy_reload, hard_reg_set_here_p,
	operands_match_p, decompose, find_reloads, find_reloads_toplev,
	find_reloads_address, subst_indexed_address, find_reloads_address_1,
	find_reloads_subreg_address, find_replacement,
	refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
	refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
	* reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
	find_reg, delete_dead_insn, alter_reg, eliminate_regs,
	elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
	forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
	emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
	do_output_reload, emit_reload_insns, gen_reload,
	delete_address_reloads_1, inc_for_reload): Likewise.
	* reorg.c (update_reg_dead_notes, fix_reg_dead_note,
	update_reg_unused_notes, fill_slots_from_thread): Likewise.
	* resource.c (update_live_status, mark_referenced_resources,
	mark_set_resources, mark_target_live_regs): Likewise.
	* rtlanal.c (nonzero_address_p, get_jump_table_offset,
	global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
	reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
	note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
	find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
	parms_set, find_first_parameter_load, keep_with_call_p,
	hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
	num_sign_bit_copies1): Likewise.
	* rtlhooks.c (gen_lowpart_general): Likewise.
	* sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
	sched_analyze): Likewise.
	* sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
	Likewise.
	* sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
	* simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
	simplify_binary_operation, simplify_const_relational_operation,
	simplify_subreg): Likewise.
	* stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
	expand_end_stmt_expr, expand_return, expand_decl,
	expand_anon_union_decl): Likewise.
	* unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
	find_splittable_regs, find_splittable_givs, find_common_reg_term,
	loop_iterations): Likewise.
	* var-tracking.c (variable_union, variable_part_different_p,
	variable_different_p, count_uses, add_uses, add_stores,
	compute_bb_dataflow, set_variable_part, delete_variable_part,
	emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
	Likewise.
	* varasm.c (assemble_variable): Likewise.

2004-06-15  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
	definition.
	* config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
	#undef and #if 0'd definition.

2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>

	* combine.c (distribute_notes): Comment typo fix.

2004-06-15  Roger Sayle  <roger@eyesopen.com>

	* expmed.c (synth_mult): Mask bits of the multiplier to the
	machine mode of the multiplication.  Don't consider shifts
	by more than (or equal to) the width of the operation's mode.

2004-06-15  Paolo Bonzini  <bonzini@gnu.org>

	* doc/install.texi: Yet another update for autoconf
	and automake versions.

2004-06-15  Paolo Bonzini  <bonzini@gnu.org>

	* function.h (struct function): Remove cannot_inline field.
	(current_function_cannot_inline): Remove.
	* passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
	Simplify conditionals to ignore warn_return_type.
	* tree-optimize.c (tree_rest_of_compilation): Do not reset
	DECL_DEFER_OUTPUT.
	* objc/objc-act.c (build_module_descriptor, finish_method_def):
	Do not set current_function_cannot_inline.

2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>

	* cfglayout.c (fixup_reorder_chain): Handle case where the
	destination of E_TAKEN is EXIT_BLOCK_PTR.

2004-06-15  Diego Novillo  <dnovillo@redhat.com>

	* tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.

2004-06-15  Paolo Bonzini  <bonzini@gnu.org>

	* fold-const.c (operand_equal_p): Update comment.

2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
	(INCOMING_RETURN_ADDR_RTX): Define.
	* config/m32r/m32r-protos.h (m32r_return_addr): Added.
	* config/m32r/m32r.c (m32r_exppand_prologue): Changed for
	__builtin_return_address(0).
	(m32r_return_addr): Added for __builtin_return_address(0).
	(m32r_reload_lr): Ditto.

	* longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.

2004-06-15  Paolo Bonzini  <bonzini@gnu.org>

	* doc/install.texi (Prerequisites): Update libbanshee,
	fastjar, libcpp, libjava/libltdl entries to
	automake 1.8.5.

2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
	    Olivier Hainque  <hainque@act-europe.fr>

	* function.c (fixup_var_refs): Also adjust the start of sequence
	after fixing up the insns.

2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	* gccbug.in: Update optimization -> tree-optimization/rtl-optimization.

2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>

	* doc/install.texi (Prerequisites): Update libstdc++ entry to
	automake 1.8.5.

2004-06-14  Eric Christopher  <echristo@redhat.com>

	* config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
	to -mtpf-trace (-mno-tpf-trace).
	* doc/invoke.texi (S/390 and zSeries Options): Add tpf option
	documentation.

2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* real.c: Fix bit count in head comment.

2004-06-14  Jeff Law  <law@redhat.com>

	* tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
	PHIs where the destination or an argument is marked with
	SSA_NAME_OCCURS_IN_ABNORMAL_PHI.

2004-06-14  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/15945
	* simplify-rtx.c (simplify_binary_operation): Don't optimize out
	Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.

2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* opts.sh (var_args): Fix regexp.

2004-06-14  Jakub Jelinek  <jakub@redhat.com>

	PR target/15178
	* config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.

2004-06-14  Paul Brook  <paul@codesourcery.com>

	* dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.

2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* Makefile.in (FLAGS_H): New.
	(flags.h): Replace by FLAGS_H.
	* c.opt: Document Var, VarExists, Init and Report attributes.
	* common.opt: Fill the values of the attributes.
	* diagnostic.c (flag_fatal_errors): Do not define.
	* except.c (flag_non_call_exceptions): Do not define.
	* flags.h: Include options.h.  Remove declarations conflicting with
	the automatically defined ones.
	* opts.c: Remove automatically defined variables.
	(handle_option): Perform default initialization.
	(common_handle_option): Do not handle options covered by the
	default initialization.
	* opts.h (struct cl_option): Add flag_var, has_set_value and set_value
	fields.
	(CL_REPORT): New.
	* opts.sh: Generate variable declarations, handle CL_REPORT.
	* toplev.c: Remove automatically defined variables.
	(f_options): Removed.
	(print_switch_values): Use cl_options instead of f_options.
	* toplev.h (version_flag): Declaration removed.

2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>

	* config/sparc/sparc.h: Correct comment about availability of
	little endian option.

	* config.gcc: Remove sparc64-*-aout*.
	* config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
	* config/sparc/sp64-aout.h: Remove.
	* config/sparc/aout.h: Remove.

2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c: Include "tree-gimple.h".
	(s390_gimplify_va_arg): New function.
	(TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
	(s390_va_arg): Remove.
	* config/s390/s390-protos.h (s390_va_arg): Remove.
	* config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().

2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>

	* basic-block.h (could_fall_through): Declare.
	* cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
	Fail if the source already has a fallthrough edge to the exit
	block pointer.
	(could_fall_through): New function.
	* cfgbuild.c (make_edges): Check if we already have a fallthrough
	edge to the exit block pointer.
	* cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
	not called before reload has completed.
	Handle special case of first block having a fall-through exit edge.
	(cfg_layout_finalize): Don't call it before reload or if we have
	rtl epilogues.
	(fixup_reorder_chain): A fall through to the exit block does not
	require the block to come last.  Add sanity checks.
	* cfgrtl.c (rtl_split_edge): Add special handling of fall through
	edges to the exit block.
	* function.c (cfglayout.h): #include.
	(thread_prologue_and_epilogue_insns): If we have neither return nor
	epilogue, but a fall through to the exit block from mid-function,
	force a non-fall-through exit.
	* Makefile.in (function.o): Depend on CFGLAYOUT_H.

2004-06-14  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
	for power5 and rs64a.  Correct condition for default.  Correct power3,
	620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.

2004-06-13  Steven Bosscher <stevenb@suse.de>

	* gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
	Revert previous change, don't use CALL_P.

2004-06-13  Jason Merrill  <jason@redhat.com>

	* tree.h: Move std_gimplify_va_arg_expr protoype here.
	* tree-gimple.h: From here.

2004-06-13  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/15979
	Fix PR tree-optimization/15981
	* tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
	try to insert values undefined along some path.

2004-06-13  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
	are available everywhere too.

2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>

	* fold-const.c (fold_checksum_tree <case 't'>): Only
	look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
	Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
	EXPR is an INTEGERAL_TYPE or a scalar float type.

2004-06-13  Diego Novillo  <dnovillo@redhat.com>

	* tree-sra.c (tree_sra): Update documentation.

2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-typeck.c (comptypes, tagged_types_tu_compatible_p,
	function_types_compatible_p, type_lists_compatible_p): Remove
	flags parameter.
	* c-tree.h (comptypes): Likewise.
	(COMPARE_STRICT): Remove.
	* c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
	callers changed.

2004-06-13  Eric Christopher  <echristo@redhat.com>

	* c-decl.c (diagnose_mismatched_decls): Improve error message.
	Remove unused code.
	* c-typeck.c (comptypes): Add location in standard we're checking.

2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
	version 3.3.4.

2004-06-12  Roger Sayle  <roger@eyesopen.com>

	* expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
	index by machine mode.
	(init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
	tables inside the loop over machine modes.
	(synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
	expand_divmod): Index shift*_cost by the appropriate machine mode.

2004-06-12  Eric Christopher  <echristo@redhat.com>

	* config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
	* config/s390/s390.md: Ditto.
	* config/s390/s390.c: Ditto.
	(s390_frame_info): Conditionalize frame and setup info on
	TARGET_TPF_PROFILING.
	(s390_arg_frame_offset): Ditto.

2004-06-12  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (omit_two_operands): New function.
	* tree.h (omit_two_operands): Prototype here.
	* builtins.c (fold_builtin_unordered_cmp): New function to lower
	C99 unordered comparison builtins to the appropriate tree nodes.
	(fold_builtin_1): Use fold_builtin_unordered_cmp to lower
	BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
	BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
	BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
	(simplify_builtin_memcmp, simplify_builtin_strncmp,
	simplify_builtin_strncat, simplify_builtin_strspn): Use the new
	omit_two_operands function to build the required COMPOUND_EXPRs.

2004-06-12  Steven Bosscher <stevenb@suse.de>,
	    Andreas Jaeger  <aj@suse.de>

	* gcse.c (record_set_info): Use predicates like REG_P.
	(mems_conflict_for_gcse_p): Likewise.
	(load_killed_in_block_p): Likewise.
	(hash_expr_1): Likewise.
	(insert_set_in_table): Likewise.
	(gcse_constant_p): Likewise.
	(hash_scan_set): Likewise.
	(hash_scan_insn): Likewise.
	(canon_list_insert): Likewise.
	(record_last_mem_set_info): Likewise.
	(record_last_set_info): Likewise.
	(compute_hash_table_work): Likewise.
	(mark_set): Likewise.
	(mark_clobber): Likewise.
	(mark_oprs_set): Likewise.
	(compute_transp): Likewise.
	(find_avail_set): Likewise.
	(cprop_insn): Likewise.
	(do_local_cprop): Likewise.
	(cprop): Likewise.
	(find_implicit_sets): Likewise.
	(find_bypass_set): Likewise.
	(bypass_conditional_jumps): Likewise.
	(insert_insn_end_bb): Likewise.
	(pre_insert_copy_insn): Likewise.
	(compute_transpout): Likewise.
	(next_ls_expr): Likewise.
	(invalidate_any_buried_refs): Likewise.
	(compute_ld_motion_mems): Likewise.
	(reg_set_info): Likewise.
	(reg_clear_last_set): Likewise.
	(find_moveable_store): Likewise.
	(compute_store_table): Likewise.
	(find_loads): Likewise.
	(store_killed_in_insn): Likewise.
	(insert_insn_start_bb): Likewise.
	(reg_set_between_after_reload_p): Likewise.
	(reg_used_between_after_reload_p): Likewise.
	(is_jump_table_basic_block): Likewise.
	(gcse_after_reload): Likewise.
	(hash_scan_set_after_reload): Likewise.
	(compute_hash_table_after_reload): Likewise.

2004-06-12  Steven Bosscher  <stevenb@suse.de>

	* rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
	(INSN_P): Don't look at the rtx code class, just explicitly
	check for one of the tree RTX_INSN codes.

2004-06-11  Zack Weinberg  <zack@codesourcery.com>

	* c-typeck.c (default_function_array_conversion): Use
	build_pointer_type not TYPE_POINTER_TO.

2004-06-11  Zack Weinberg  <zack@codesourcery.com>

	* configure.ac: Don't invoke ACX_HEADER_STDBOOL.
	* configure, config.in: Regenerate.
	* system.h: Unconditionally define bool as unsigned char,
	BOOL_BITFIELD as unsigned int.
	* domwalk.h: Use BOOL_BITFIELD.

2004-06-12  Andreas Jaeger  <aj@suse.de>

	* libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
	* libgcc-darwin.ver: Likewise.

2004-06-12  Peter Jakubek  <peter@laseranimation.com>

	* reload.c (find_reloads): Force reload for pseudo registers on big
	endian machines.

2004-06-11  Steven Bosscher <stevenb@suse.de>

	* tree-ssa-dce.c (mark_control_dependent_edges_necessary):
	Don't try to mark anything control dependent on the entry or
	exit blocks.

2004-06-11  Daniel Berlin  <dberlin@dberlin.org>

	Fix Bug 15899
	Fix Bug 15460
	* tree.h (SSA_NAME_VALUE): New macro.
	(struct tree_ssa_name): Add value_handle member.
	* tree-ssa-pre.c: Replaced.
	* tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
	(struct cst_ann_d): New.
	(struct expr_ann_d): New.
	(union tree_ann_d): Add cst_ann, expr_ann.
	* tree-dfa.c (create_cst_ann): New function.
	(create_expr_ann): Ditto.
	* tree-flow-inline.h (cst_ann): New function.
	(expr_ann): Ditto.
	(get_cst_ann): Ditto.
	(get_expr_ann): Ditto..

2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
	* pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
	_U_Qfcmp library function.
	(_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
	_U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.

	* pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
	unspec used for loading address from DLT.
	* pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
	Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
	Don't use short code sequence when loading the address of a nonlocal
	label.
	(nonlocal_goto): New expander.
	(indirect_goto): New jump pattern for nonlocal gotos.
	(short_jump): Remove extra whitespace.
	(builtin_longjmp): Clobber memory and hard frame pointer.  Restore
	frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
	pattern.

2004-06-11  Roger Sayle  <roger@eyesopen.com>

	* expmed.c (synth_mult): Add an additional MODE argument for the
	machine mode of the multiplication.  Update recursive calls.  Use
	mode instead of word_mode for determining operation costs.
	(choose_mult_variant): Update calls to synth_mult with "mode".

2004-06-11  Richard Henderson  <rth@redhat.com>

	* tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
	and makes_aliased_stores.

2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>

	* doc/install.text (--enable-shared): Fix typo.

2004-06-11  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
	argument.  Use internal post for call to gimplify_expr.  Tidy
	rounded type size computation.
	(alpha_gimplify_va_arg): Use get_formal_tmp_var and
	get_initialized_tmp_var.

2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>

	* doc/install.texi (--enable-shared): Update libobjc's shared library
	status.  Remove reference to libf2c.

2004-06-11  Jason Merrill  <jason@redhat.com>

	* config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
	* config/i386/i386.c (ix86_va_arg): Remove.
	* config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
	* config/rs6000/rs6000.c (rs6000_va_arg): Remove.
	* config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
	* config/alpha/alpha.c (alpha_va_arg): Remove.
	* config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
	* config/sparc/sparc.c (sparc_va_arg): Remove.

	* tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
	assignment might throw.
	* tree-eh.c (tree_could_throw_p): Support non-call exceptions in
	expressions.

2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>

	PR 15886:
	* sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.

2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/install.texi (Prerequisites): Update documentation of
	required versions of autoconf and automake.  Remove mention of
	libf2c.

2004-06-11  Jason Merrill  <jason@redhat.com>

	* config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
	(TARGET_GIMPLIFY_VA_ARG_EXPR): Define.

2004-06-11  Jerry Quinn  <jlquinn@optonline.net>

	* typeclass.h: Add GPL plus exception license.  Add include
	guard.

2004-06-10  Jason Merrill  <jason@redhat.com>

	* gimplify.c (gimplify_modify_expr): Don't force a temporary
	of an aggregate_value_p type.

2004-06-10  Jeff Law  <law@redhat.com>

	* fold-const.c (fold_inf_compare): Avoid creating non-gimple
	code when we are in gimple form.

2004-06-10  Diego Novillo  <dnovillo@redhat.com>

	* Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
	* tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
	(highest_ssa_version): Remove.
	* tree-outof-ssa.c (new_temp_expr_table): Replace
	highest_ssa_version with num_ssa_names.
	(dump_replaceable_exprs): Likewise.
	(rewrite_vars_out_of_ssa): Likewise.
	* tree-ssa-ccp.c (initialize): Likewise
	* tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
	* tree-ssa-dce.c (tree_dce_init): Likewise.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
	* tree-ssa-live.c (create_ssa_var_map): Likewise.
	(dump_var_map): Likewise.
	* tree-ssa.c (verify_ssa): Likewise.
	(kill_redundant_phi_nodes): Likewise.
	Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
	* tree-ssanames.c: Include tree-flow.h
	(ssa_names): New varray.
	(init_ssa_names): Initialize ssa_names.
	Reserve the first slot of the ssa_names table.
	(make_ssa_name): Push the newly created SSA_NAME into ssa_names.
	Assign version numbers using num_ssa_names.

2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/sourcebuild.texi (Front End): Add details of more
	installation documentation required.

2004-06-10  Brian Booth  <bbooth@redhat.com>

	* doc/tree-ssa.texi: Remove references to VDEF and add descriptions
	of V_MAY_DEF and V_MUST_DEF.
	* tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
	num_vdefs to num_v_may_defs.
	(compute_immediate_uses_for_stmt): Rename occurences of vdef
	to v_may_def.
	(redirect_immediate_uses): Ditto.
	(dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
	(collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
	Also add code to sum up the number of v_must_defs.
	(vdefs_disappeared_p): Replace with...
	(v_may_defs_disappeared_p): This.
	(v_must_defs_disappeared_p): New function.
	(mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
	Also add code to mark new variables found in V_MUST_DEFs for
	renameing.
	* tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
	vdef_ops to v_may_def_ops.
	(get_vdef_ops): Replace with...
	(get_v_may_def_ops): This.
	* tree-flow-inline.h (get_vdef_ops): Replace with...
	(get_v_may_def_ops): This.
	(get_v_must_def_ops): New function.
	(get_vdef_result_ptr): Replace with...
	(get_v_may_def_result_ptr): This.
	(get_vdef_op_ptr): Ditto with...
	(get_v_may_def_op_ptr); This.
	(get_v_must_def_op_ptr): New function.
	* tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
	to v_may_def. Also add code to mark statements with
	V_MUST_DEFs as definition sites.
	(rewrite_stmt): Rename occurences of vdef to v_may_def. Also
	add code to register new V_MUST_DEFs made by the statement.
	* tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
	(check_replaceable): Rename occurences of vdef to v_may_def. Also
	add check for V_MUST_DEFs.
	(find_replaceable_in_bb): Ditto.
	* tree-pretty-print.c (dump_vops): Rename occurences of vdef
	to v_may_def. Also add code to dump V_MUST_DEFs.
	* tree-sra.c (mark_all_vdefs): Replace with...
	(mark_all_v_may_defs): This.
	(mark_all_v_must_defs): New function.
	(create_scalar_copies): Replace call to mark_all_vdefs with
	calls to mark_all_v_may_defs and mark_all_v_must_defs.
	(scalarize_structures): Rename occurences of vdef to v_may_def.
	Also add a check for V_MUST_DEFs.
	(scalarize_modify_expr): Rename occurences of vdef to v_may_def.
	* tree-ssa-alias.c (global_var): Update comment.
	(compute_may_aliases): Ditto.
	(compute_points_to_and_addr_escape): Rename occurences of vdef
	to v_may_def. Also add code to mark variables in V_MUST_DEF
	operands as being written to.
	(group_aliases): Update comment.
	(maybe_create_global_var): Ditto.
	* tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
	Also add a check for V_MUST_DEFs on GIMPLE registers.
	(replace_immediate_uses): Rename occurences of vdef to v_may_def.
	* tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
	to v_may_def. Also add code to mark all V_MUST_DEF operands
	VARYING.
	(initialize): Ditto.
	(set_rhs): Rename occurences of vdef to v_may_def. Also add
	code to update SSA_NAMEs in V_MUST_DEFs.
	* tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
	to v_may_def.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
	occurences of vdef to v_may_def. Also add code to mark statements
	with V_MUST_DEFs as necessary.
	(propagate_necessity): Rename occurences of vdef to v_may_def.
	* tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
	occurences of vdef to v_may_def. Also add code to mark operands
	in V_MUST_DEFs for renaming.
	(eliminate_redundant_computations): Rename occurences of vdef
	to v_may_def.
	(record_equivalences_from_stmt): Rename occurences of vdef
	to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
	(optimize_stmt): Remove unnesessary variable vdefs. Update
	comment.
	(register_definitions_for_stmt): Rename occurences of vdef
	to v_may_def. Also add code to register definitions made with
	V_MUST_DEFs.
	* tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
	(fix_stmt_v_may_defs): This.
	(fix_phi_uses): Rename occurences of vdef to v_may_def.
	(dse_optimize_stmt): Ditto.
	* tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
	to v_may_def. Also add code to mark V_MUST_DEF operands as being
	used in virtual operators.
	* tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
	vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
	renaming.
	* tree-ssa-operands.c (opf_kill_def): New flag for killing
	definitions.
	(build_vdefs): Renamed to...
	(build_v_may_defs): This.
	(build_v_must_defs): New variable.
	(voperands_d): Add v_must_def_ops and replace vdef_ops with
	v_may_def_ops.
	(append_vdef): Replace with...
	(append_v_may_def): This.
	(append_v_must_def): New function.
	(NUM_FREE): Increment for V_MUST_DEF
	(optype_freelist): Increment its size for V_MUST_DEF
	(allocate_vdef_optype): Replace with...
	(allocate_v_may_def_optype): This.
	(allocate_v_must_def_optype): New function.
	(free_vdefs): Replace with...
	(free_v_may_defs): This.
	(free_v_must_defs): New function.
	(remove_vdefs): Replace with...
	(remove_v_may_defs): This.
	(remove_v_must_defs): New function.
	(init_ssa_operands): Rename occurences of vdef to v_may_def. Also
	add code to initialize build_v_must_defs.
	(finalize_ssa_vdefs): Replace with...
	(finalize_ssa_v_may_defs): This.
	(finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
	(finalize_ssa_v_must_defs): New function.
	(finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
	with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
	(verify_start_operands): Rename occurences of vdef to v_may_def.
	Also add check for build_v_must_defs.
	(get_stmt_operands): Rename occurences of vdef to v_may_def.
	Also add code to handle V_MUST_DEFs and to use opf_kill_def for
	killing definitions.
	(get_expr_operands): Update comment and use opf_kill_def for
	killing definitions.
	(add_stmt_operand): Replace code that appends VDEFs with code
	that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
	otherwise.
	(add_call_clobber_ops): Update comments.
	* tree-ssa-operands.h (vdef_optype_d): Replace with...
	(v_may_def_optype_d): This.
	(v_must_def_optype_d): New structure.
	(VDEF_OPS): Replace with...
	(V_MAY_DEF_OPS): This.
	(STMT_VDEF_OPS): Same with...
	(STMT_V_MAY_DEF_OPS): This.
	(NUM_VDEFS): And...
	(NUM_V_MAY_DEFS): This.
	(VDEF_RESULT_PTR): As well as...
	(V_MAY_DEF_RESULT_PTR): This.
	(VDEF_RESULT): Same goes for...
	(V_MAY_DEF_RESULT): This.
	(VDEF_OP_PTR): And...
	(V_MAY_DEF_OP_PTR): This.
	(VDEF_OP): And...
	(V_MAY_DEF_OP): This.
	(V_MUST_DEF_OPS): New macro.
	(STMT_V_MUST_DEF_OPS): Ditto.
	(NUM_V_MUST_DEFS): Ditto.
	(V_MUST_DEF_OP_PTR): Ditto.
	(V_MUST_DEF_OP): Ditto.
	(remove_vdefs): Replace signature with...
	(remove_v_may_defs): This.
	(remove_v_must_defs): New function signature.
	* tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
	with calls to remove_v_may_defs and remove_v_must_defs.
	(process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
	Also add code that marks left occurences of operands in V_MUST_DEFs.
	* tree-tailcall.c (find_tail_calls): Rename occurences of vdef
	to v_may_def. Also add check for V_MUST_DEFs.
	(eliminate_tail_call):Rename occurences of vdef to v_may_def.

2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/15653
	* haifa-sched.c (schedule_block): Finish cycle after issuing asm
	insn.

2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR web/15263
	* doc/install.texi: Remove superfluous linebreak.

2004-06-10  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (expand_builtin): Fall back to library function call for
	conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
	(fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
	BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
	IMAGPART_EXPR respectively.

2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (dump_table): New argument start.  Changed caller.
	(fixup_mova): New function.
	(find_barrier): Use it.
	(sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
	If the label a mova refers to is above the mova itself, change
	the mova into a load.
	* sh.md (*casesi_worker): Rename to:
	(casesi_worker_1).
	(casesi_worker_2): New insn.

2004-06-10  Jason Merrill  <jason@redhat.com>

	* target.h (struct gcc_target): Change gimplify_va_arg_expr
	hook signature.
	* tree-gimple.h: Adjust.
	* config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
	* config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
	Use fold_convert.
	* config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
	Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
	* builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
	(gimplify_va_arg_expr): Return GS_ERROR in error case.
	Gimplify valist rather than calling stabilize_va_list.

2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* Makefile.in (df.o): Remove fibheap dependency.
	* df.h: Do not include sbitmap.h.
	(struct ref): New field "data".
	(DF_REF_DATA): New accessor macro.
	(struct df): Field "dom" removed.
	(df_analyze_subcfg): New function.
	(transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
	(transfer_function): ... new type.
	(iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
	(iterative_dataflow): ... new function.
	(enum set_representation, struct dataflow): New.
	* df.c: Do not include fibheap.h.

	(df_reg_def_chain_clean, df_reg_use_chain_clean,
	(df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
	prune_to_subcfg, df_bb_modify): New functions.
	(df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
	df_refs_update, df_reg_table_realloc, df_ref_create,
	df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
	df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
	df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.

	(dataflow_set_a_op_b, dataflow_set_copy): New functions.
	(df_rd_transfer_function, df_ru_transfer_function,
	df_lr_transfer_function): Type of bitmaps changed to void *.
	(hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
	(hybrid_search): ... new function.
	(iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
	(iterative_dataflow): ... new function. Avoid use of fibheaps for
	a worklist.  Do not process basic blocks unnecessarily.

2004-06-10  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_abs_const): Make extern.
	* tree.h (fold_abs_const): Prototype here.
	* builtins.c (fold_builtin_fabs): New function to transform
	fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
	(fold_builtin_abs): New function to transform abs, labs, llabs
	and imaxabs builtins into ABS_EXPR tree nodes.
	(expand_builtin): Fall back to a function call for abs, labs,
	llabs and imaxabs builtins that survive constant folding.
	(fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
	FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.

2004-06-10  Jakub Jelinek  <jakub@redhat.com>

	* config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
	leaf function without unwind info at RP 0.

2004-06-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/14791
	* tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
	(fileptr_type_node): Define.
	* tree.c (build_common_tree_nodes_2): Initialize
	fileptr_type_node to ptr_type_node.
	* c-common.c (c_common_nodes_and_builtins): For C++, make
	fileptr_type_node a distinct type copy.
	* builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
	BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
	BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
	BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
	(BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
	BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
	BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
	* builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
	BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
	BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
	BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
	the above *FILEPTR* types instead of *PTR*.

2004-06-09  Daniel Berlin <dberlin@dberlin.org>

	* tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
	match.

2004-06-09  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_not_const): New function.
	(fold) <ABS_EXPR>: Don't bother testing wins.
	(fold) <BIT_NOT_EXPR>: Call fold_not_const.
	(nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.

2004-06-09  Richard Henderson  <rth@redhat.com>

	PR middle-end/15228
	* function.c (assign_parms): Always set_mem_align with the computed
	FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.

2004-06-09  Richard Henderson  <rth@redhat.com>

	PR opt/15108
	* tree-tailcall.c (find_tail_calls): Don't check early for
	tail_recursion failure.

2004-06-09  Diego Novillo  <dnovillo@redhat.com>

	Move SSA_NAME annotations into tree_ssa_name.

	* tree-dfa.c (create_ssa_name_ann): Remove.
	* tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
	* tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
	(struct ssa_name_ann_d): Remove.
	(union tree_ann_d): Update.
	(ssa_name_ann_t): Remove.
	* tree-ssa-alias.c: (get_ptr_info): New local function.
	Replace references to ssa_name_ann_t with struct ptr_info_def.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree.h (SSA_NAME_PTR_INFO): Define.
	(struct ptr_info_def): Declare.
	(struct tree_ssa_name): Add field 'ptr_info'.

2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/winnt.c (i386_pe_output_labelref): Correct
	misplaced ')'.

2004-06-09  Steven Bosscher  <stevenb@suse.de>

	* config/i386/k6.md: Rewrite using the DFA model.
	* config/i386/i386.c (ix86_adjust_cost): Don't increase the
	cost of load-operation insns for the K6.
	(ia32_use_dfa_pipeline_interface): Add TARGET_K6.
	(ia32_multipass_dfa_lookahead): Likewise.

2004-06-09  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_gimplify_va_arg_1,
	alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.

2004-06-09  Richard Henderson  <rth@redhat.com>

	* expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.

2004-06-09  Geoffrey Keating  <geoffk@apple.com>

	* Makefile.in (CPPLIB_H): Put files in order of inclusion.
	(CPP_ID_DATA_H): New.
	(gtype-desc.o): Update dependencies.
	(GTFILES): Use CPP_ID_DATA_H.

2004-06-09  Mark Mitchell  <mark@codesourcery.com>

	Revert:
	PR c++/15815
	2004-06-07  Mark Mitchell  <mark@codesourcery.com>
	* doc/extend.texi: Deprecate #pragma interface and #pragma
	implementation.

2004-06-09  David S. Miller  <davem@nuts.davemloft.net>

	* config/sparc/sparc.h (MOVE_RATIO): New definition.

2004-06-09  Richard Henderson  <rth@redhat.com>

	* basic-block.h (struct edge_def): Add goto_locus.
	* tree-cfg.c (make_goto_expr_edges): Set it.
	(disband_implicit_edges): Use it.
	* tree-pretty-print.c (dump_implicit_edges): Print it.

2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>

	* h8300.md (ldm_h8300s_4): Fix condition for expander.

2004-06-08  Jason Merrill  <jason@redhat.com>

	Gimplify VA_ARG_EXPR into simpler forms.
	* target.h: Add gimplify_va_arg_expr hook.
	* target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
	* fold-const.c (build_fold_addr_expr)
	(build_fold_addr_expr_with_type): Move from gimplify.c.
	* tree.h: Declare them.
	* gimplify.c (gimplify_and_add): New fn.
	(build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
	(gimplify_array_ref_to_plus, gimplify_modify_expr)
	(gimplify_expr): Use build_fold_*.
	(copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
	don't know how to gimplify it.
	* builtins.c (std_gimplify_va_arg_expr): New fn.
	(dummy_object): New static fn.
	(gimplify_va_arg_expr): New fn.
	(stabilize_va_list): Use build_fold_*.
	* tree-gimple.h: Declare new fns.
	* config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
	(ix86_gimplify_va_arg): New fn.
	* config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
	(ia64_gimplify_va_arg): New fn.
	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
	(TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
	* alias.c (get_varargs_alias_set): Just return 0 for now.

	* c-objc-common.c (c_tree_printer): Improve handling of %T.

2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree-complex.c (expand_complex_comparison): Use fold_convert instead
	of convert.
	* tree-inline.c (setup_one_parameter): Likewise.
	* tree-sra.c (csc_build_component_ref): Likewise.
	* tree-ssa-ccp.c (ccp_fold): Likewise.
	* tree-ssa-copy.c (cprop_operand): Likewise.
	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
	* tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.

2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>

	PR rtl-optimization/15521:
	* sched-int.h (in_post_call_group_p): Change type to enum.
	* sched-deps.c (sched_analyze_insn):
	(sched_analyze): When in_post_call_group_p is post_call_initial,
	don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
	and also reset in_post_call_group_p to post_call.
	(sched_analyze): When the previous basic block ended in a CALL_INSN,
	initialize in_post_call_group_p as post_call_initial.
	(init_deps): initialize in_post_call_group_p to not_post_call.

2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>

	PR ada/6637
	* doc/install.texi: List ada, libada as options to --enable-shared

2004-06-09  Paolo Bonzini  <bonzini@gnu.org>

	* aclocal.m4 (gcc_AC_PROG_LN): Remove.
	(gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
	config.in entries.
	* configure.ac: Call ACX_PROG_LN, falling back to $LN_S
	if hard links are not available.
	* configure: Regenerate.
	* config.in: Regenerate.

2004-06-08  Per Bothner  <per@bothner.com>

	* configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.

2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
	Correct formatting.

2004-06-08  James E Wilson  <wilson@specifixinc.com>

	PR target/15790
	* config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.

2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>

	* fold-const.c (fold_convert): Treat OFFSET_TYPE like
	POINTER_TYPE and INTEGER_TYPE.

2004-06-08  Bernardo Innocenti  <bernie@develer.com>

	* modulo-sched.c: Compile only when INSN_SCHEDULING is
	defined.

2004-06-08  Jeff Law  <law@redhat.com>

	* doc/contrib.texi: Add entries for Stefan Olsson and
	Ola Ronnerup.

2004-06-08  DJ Delorie  <dj@redhat.com>

	* toplev.c (floor_log2_wide): Replace loop with faster bit
	operations.
	(exact_log2_wide): Define in terms of the above.
	* toplev.h (floor_log2): Use _builtin_clz family of builtins if
	available.

2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/rs6000.c (print_operand, <case 'z'>):
	Make sure that we are in INDIRECT mode when getting the
	stub name.

2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>

	* h8300.md (extendqisi2_h8300): Add constraints.
	(ldm_h8300s_4_normal): Fix typo.

2004-06-08  Richard Henderson  <rth@redhat.com>

	* gimple-low.c (struct lower_data): Replace the_return_label and
	one_return_stmt with return_statements.
	(lower_function_body): Process the entire list of return_statements.
	(lower_return_expr): Check source value before unifying return_exprs.
	* gimplify.c (gimplify_return_expr): Force the use of a temporary
	for !aggregate_value_p.
	* tree-gimple.c: Update RETURN_EXPR grammer.

2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/15598
	* config/ia64/ia64.c (bundling): Add missed TYPE_A.

2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	PR rtl-optimization/15717
	* config/i386/i386.c (legitimate_constant_p): Do not allow
	x - symbol_ref.

2004-06-08  Alexandre Oliva  <aoliva@redhat.com>

	* gimplify.c (copy_if_shared_r): Revert:
	2004-05-21  Richard Henderson  <rth@redhat.com>
	* gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.

2004-06-07  Roger Sayle  <roger@eyesopen.com>

	* expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
	Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
	(init_expmed): Initialize these cost arrays as appropriate.
	(store_bit_field, extract_bit_field): Correct whitespace.
	(synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
	expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
	neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
	word_mode or compute_mode as appropriate.

2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/15783
	* config/sparc/sparc.c (function_arg_union_value): Add 'mode'
	parameter.  Enumerate the registers inside the PARALLEL.
	(function_arg): Adjust call to function_arg_union_value.
	(function_value): Likewise.

	* config/sparc/sparc.c (sparc_function_epilogue): Properly format.

2004-06-07  Roger Sayle  <roger@eyesopen.com>

	* real.c (real_copysign): New function to implement libm's copysign.
	* real.h (real_copysign): Prototype here.
	* fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
	and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
	* builtins.c (fold_builtin_isascii, fold_builtin_toascii,
	fold_builtin_isdigit): Add function prototypes.
	(fold_builtin_copysign): New function to fold copysign, copysignf
	and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
	constant arguments at compile-time using real_copysign.  Fold
	copysign(X,Y) as fabs(X) if Y is always non-negative.
	(fold_builtin_1): Correct minor whitespace/style issues.  Call
	fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.

2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>

	* tree.c (iterative_hash_expr): Use real_hash.

2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c/14765
	* c-parse.in (compstmt_primary_start): Set last_expr_type to
	NULL_TREE.

2004-06-07  Mark Mitchell  <mark@codesourcery.com>

	PR c++/15815
	* doc/extend.texi: Deprecate #pragma interface and #pragma
	implementation.

2004-06-07  Alexandre Oliva  <aoliva@redhat.com>

	PR middle-end/15666
	* c-decl.c (finish_decl): Use change_decl_assembler_name for the
	builtin decl as well.

2004-06-07  Roger Sayle  <roger@eyesopen.com>

	PR c/14649
	* c-typeck.c (require_constant_value, require_constant_elements):
	Move declarations to the top of the file.
	(build_function_call): If we require a constant value, fold with
	fold_initializer.  If the result is a constant, and the function
	wasn't called using __builtin_foo, issue a pedantic warning.
	(build_unary_op): If we require a constant value, fold tree with
	fold_initializer.
	(build_binary_op): Use require_constant_value to determine whether
	to call fold or fold_initializer.

2004-06-07  Richard Henderson  <rth@redhat.com>

	* gimple-low.c (struct lower_data): Add the_return_label and
	one_return_stmt.
	(lower_function_body): Initialize and use them.
	(lower_return_expr): New.
	(lower_stmt): Call it.
	* gimplify.c (gimplify_return_expr): Force the argument to be either
	null or a result_decl.
	* tree-gimple.c: Update gimple grammer to match.
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
	coalescing of result_decls.

2004-06-07  Richard Henderson  <rth@redhat.com>

	PR rtl-opt/15193
	* expmed.c (extract_bit_field): Fix vector_extract return.

	* config/i386/i386.md (negv4sf2): New pattern.

2004-06-07  Mark Mitchell  <mark@codesourcery.com>

	PR c++/15337
	* c-common.c (c_sizeof_or_alignof_type): Use more detailed error
	message.

2004-06-06  Paolo Bonzini  <bonzini@gnu.org>

	* config.in: Regenerate.

2004-06-06  Steven Bosscher  <stevenb@suse.de>

	* tree-cfg.c (tree_verify_flow_info): Make sure that labels in
	SWITCH_LABELS are always sorted.

2004-06-06  Steven Bosscher  <stevenb@suse.de>

	* hooks.c (hook_int_void_1): New generic hook.
	* hooks.h (hook_int_void_1): Add prototype.
	* config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
	Define to hook_int_void_1.
	* config/c4x/c4x.md: Replace dummies for the old pipeline model
	with dummies for the new one.

2004-06-06  Roger Sayle  <roger@eyesopen.com>

	* tree.h (lvalue_or_else): Delete function prototype.
	* c-typeck.c (lvalue_or_else): Make static.  Add static prototype.

2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>

	PR target/14542
	* config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
	a live change of a register after peephole replacement.

2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c/13519
	* c-typeck.c (composite_type, common_pointer_type): New functions.
	(common_type): Split parts into composite_type and
	common_pointer_type.  Ensure that arithmetic operations return
	unqualified types without attributes.  Don't make composite type
	of signed enum and compatible integer be unsigned.
	(build_conditional_expr, build_binary_op): Use
	common_pointer_type.
	* c-decl.c (merge_decls): Use composite_type.
	* c-tree.h (composite_type): Declare.

2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>

	PR target/14457
	* config/m68hc11/m68hc11.c (splitable_operand): New predicate.
	* config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
	* config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
	(inhibit_libc): Must define.
	* config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
	("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
	("xorhi3"): Likewise.

2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
	always_inline pass.

2004-06-05  David S. Miller  <davem@nuts.davemloft.net>

	* config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
	* config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.

2004-06-05  Bernardo Innocenti  <bernie@develer.com>

	* regclass.c (init_reg_sets): Check for missing registers in target
	initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.

2004-06-05  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in (MKDEPS_H): New shorthand.
	(c-opts.o): Update dependencies.
	* c-opts.c: Include mkdeps.h.
	(handle_deferred_opts): Use cpp_get_deps and deps_add_target,
	not cpp_add_dependency_target.

2004-06-05  Steven Bosscher  <stevenb@suse.de>

	* config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
	* config/v850/v850.md: Convert to DFA scheduler description.

2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/15478
	* doc/install.texi: Document GMP as prerequisite. Document
	--with-gmp and --with-gmp-dir configure options.
	* fortran/gfortran.texi: Remove section "Compiling and testing",
	remove TOC reference to it.

2004-06-05  Graham Stott  <graham.stott@btinternet.com>

	* combine.c(simplify_shift_const): Check shift amount is a
	CONST_INT.

2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>

	* toplev.c (init_asm_output): Add explicit 'b' to mode when
	opening asm_out_file.
	* c-pch.c (c_common_write_pch): Remove unnecessary fflush before
	reading asm_out_file. Replace fflush after reading asm_out_file
	with fseek.
	* hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
	default and add to HOST_HOOKS_INITIALIZER.
	* hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
	* ggc-common.c (default_gt_pch_alloc_granularity): New function.
	(gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
	to set mmi.offset padding.
	 * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
	$(srcdir)/config/i386/winnt.c.
	(i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
	(i[34567]86-*-uwin*): Likewise.
	*i[34567]86-*-interix3*): Likewise.
	* config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
	* config/i386/host-mingw32.c: New file.
	* config/i386/x-mingw32: Add rule for host-mingw32.o.
	* config/i386/winnt.c: (struct extern_list) Tag as GTY.
	(extern_head): Likewise.
	(struct export_list) Likewise.
	(export_head): Likewise.
	(i386_pe_record_external_function): Use ggc_alloc.
	(i386_pe_record_exported_symbol): Likewise.
	Include "gt-winnt.h" at end.
	* doc/hostconfig.texi: Document
	HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.

2004-06-04  Bernardo Innocenti  <bernie@develer.com>

	* config/m68k/m68k.h: Remove comments copied over from tm.texi.
	Rename 68000 and 68k to m68k for consistency in comments.  Remove
	trailing whitespace before EOLs and before TABs.
	(MAX_CODE_ALIGN): Remove unused macro.
	(CALL_USED_REGISTERS): Reformat and add comments.

2004-06-04  Frank Ch. Eigler  <fche@redhat.com>

	* gcc.c (MFLIB_SPEC): Remove library references, to require users
	to enumerate -lmudflap* and dependencies when linking.

2004-06-04  Paolo Bonzini  <bonzini@gnu.org>

	PR target/15822
	* dojump.c (do_jump): Fix uninitialized variable tcode1.

2004-06-04  Jerry Quinn  <jlquinn@optonline.net>

	* Makefile.in (insn-conditions.o): Back out removal of reload.h.
	* genconditions.c (write_header): Back out removal of reload.h.

2004-06-04  Jan Hubicka  <jh@suse.cz>

	Re-apply hopefully fixed patch:
	* i386.md (UNSPECV_EH_RETURN): Kill.
	(eh_return): Use jump_insn.
	(eh_return_si, eh_return_di): Change pattern to jump instruction.

2004-06-04  Jeff Law  <law@redhat.com>

	* cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.

2004-06-04  Steven Bosscher  <stevenb@suse.de>

	* except.c (for_each_eh_region): New function.
	* except.h (for_each_eh_region): Add a prototype for it.
	* tree-cfg.c (update_eh_labels): New function, callback for
	for_each_eh_region.
	(label_for_bb): Make global static, unfortunately.
	(cleanup_dead_labels): Also update label references for
	exception regions.

2004-06-03  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.c (struct irix_section_align_entry): Fix
	GTY marker.

2004-06-03  Geoffrey Keating  <geoffk@apple.com>

	* toplev.c (check_global_declarations): Don't ask for
	DECL_ASSEMBLER_NAME unless the function really is declared
	static and not defined.

2004-06-03  Matt Austern  <austern@apple.com>

	PR c++/15428
	* default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
	for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
	* config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
	* doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
	documentation to reflect the new macro name and to clarify its
	meaning.

2004-06-03  Steven Bosscher  <stevenb@suse.de>

	* rtl.def (VAR_LOCATION): Make RTX_EXTRA.

2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/darwin.c (machopic_indirect_data_reference): Copy
	the SYMBOL_REF_DECL from the original RTX for the new
	non-lazy pointer RTX.

2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>

	* tree.h: Remove include of version.h
	* c-cppbuiltin.c: Include version.h
	* diagnostic.c: Include version.h
	* dwarf2out.c: Include version.h
	* toplev.c: Include version.h
	* vmsdbgout.c: Include version.h
	* Makefile.in: Remove dependency on version.h from TREE_H, and
	add dependencies to required .o targets

2004-06-03  Jerry Quinn  <jlquinn@optonline.net>

	* Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
	CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
	(TARGET_H): Add insn-modes.h.
	(tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
	loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
	loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
	loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
	cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
	(toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
	loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
	bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
	CFGLAYOUT_H.
	(ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
	Replace ra.h with RA_H.
	(resource.o, regrename.o, insn-conditions.o, insn-emit.o,
	insn-recog.o): Replace resource.h with RESOURCE_H.
	(ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
	sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
	with SCHED_INT_H.
	(web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
	ra-rewrite.o): Replace df.h with DF_H.
	(ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
	(tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
	Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
	(insn-conditions.o): Remove unused reload.h.
	* cfglayout.h: Add include guard.  Include basic-block.h.
	* cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
	* ddg.h: Include sbitmap.h, basic-block.h, df.h.
	* df.h: Add include guard.  Include bitmap.h, sbitmap.h,
	basic-block.h.
	* genconditions.c:  Remove reload.h.
	* ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
	hard-reg-set.h, insn-modes.h.
	* resource.h: Add include guard.  Include hard-reg-set.h.
	* sched-int.h:  Add include guard.  Include insn-attr.h,
	basic-block.h, rtl.h.
	* target.h: Add include guard.  Include insn-modes.h.
	* tree-ssa-live.h: Include partition.h.

2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
		Kenneth Zadeck <zadeck@naturalbridge.com>

	* tree-ssa-ccp.c (varying_ssa_edges): New worklist.
	(add_var_to_ssa_edges_worklist): Add value argument.
	Update callers.
	Use new worklist.
	(process_ssa_edge_worklist): New function.
	(tree_ssa_ccp): Move worklist processing core to
	process_ssa_edge_worklist, and just call that for the two worklists.

2004-06-03  Steven Bosscher  <stevenb@suse.de>

	* basic-block.c (tail_recursion_label_list): Don't declare.
	(CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
	accordingly.
	* cfgbuild.c (find_label_refs): Remove.
	(find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
	* cfgcleanup.c (tail_recursion_label_p): Remove.
	(merge_blocks_move): Do not check for tail recursion.
	(try_optimize_cfg): Likewise.
	(cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
	* cfgrtl.c (tail_recursion_label_list): Remove.
	* except.c (remove_unreachable_regions): Don't handle
	CALL_PLACEHOLDER insns.
	(convert_from_eh_region_ranges_1, can_throw_internal,
	can_throw_external): Likewise.
	* function.c (free_after_compilation): Don't clear
	x_tail_recursion_label.
	(fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
	(identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
	(reorder_blocks_1): Likewise.
	* function.h (struct function): Remove x_tail_recursion_label
	member.  Don't define tail_recursion_label.
	* jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
	* print-rtl.c (print_rtx): Likewise.
	* rtl.def (CALL_PLACEHOLDER): Remove.
	* rtl.h (sibcall_use_t): Remove enum.
	(optimize_sibling_and_tail_recursive_calls,
	replace_call_placeholder): Remove function prototypes.
	* stmt.c (tail_recursion_args): Remove.
	(optimize_tail_recursion): Remove.
	(expand_return): Don't check for possible tail recursion.
	* tree.h (optimize_tail_recursion): Remove prototype.

2004-06-02  Jan Hubicka  <jh@suse.cz>

	* tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
	return_stmt.

2004-06-02  Jason Merrill  <jason@redhat.com>

	* Makefile.in (TAGS): Don't mess with c-parse.[ch].
	Do include c-parse.in.

2004-06-02  Eric Christopher  <echristo@redhat.com>

	* c-typeck.c (common_type): Don't lose type qualifiers
	when creating new variants.

2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>

	PR tree-optimization/14042
	PR tree-optimization/14729
	PR tree-optimization/14736
	* tree-ssa.c (tree_ssa_useless_type_conversion_1):
	Check the type which the pointer points to
	instead of the pointer types.

2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/15738.
	* builtins.c (fold_builtin_strchr): Transform
	strrchr (s, '\0') to strchr (s, '\0').

2004-06-02  Steven Bosscher  <stevenb@suse.de>

	* i386.c (ix86_adjust_cost): Don't increase the cost for
	load+operation for PROCESSOR_PENTIUMPRO, it is already
	modelled in the DFA description

2004-06-01  Jerry Quinn  <jlquinn@optonline.net>

	* Makefile.in (EXPR_H): Add insn-config.h, function.h,
	$(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
	(ALIAS_H, EMIT_RTL_H): New.
	(cselib.o): Replace EXPR_H with EMIT_RTL_H.
	(cfgcleanup.o): Add EMIT_RTL_H.
	(alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
	* alias.c: Replace expr.h with emit-rtl.h and alias.h.
	* attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
	* cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
	* expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
	tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
	(get_varargs_alias_set, get_frame_alias_set, record_base_value,
	record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
	(set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
	set_mem_size): Move to emit-rtl.h.
	* emit-rtl.h: New.
	* alias.h: New.

2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>

	* function.c (walk_fixup_memory_subreg): New parameter 'var'.
	Call fixup_memory_subreg only if the MEM is equal to 'var'.
	Adjust recursive calls to self.
	(fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.

2004-06-01  Richard Henderson  <rth@redhat.com>
	    Andrew Pinski  <pinskia@physics.uc.edu>

	* c-parse.in (OFFSETOF, offsetof_member_designator): New.
	(primary): Handle offsetof.  Add error productions for faux functions.
	Move component_ref objc checking to build_component_ref.
	(reswords): Add offsetof.
	(rid_to_yy): Add offsetof.
	* c-tree.h (build_offsetof): Declare.
	* c-common.h (objc_is_public): Declare.
	* c-typeck.c (build_component_ref): Check objc_is_public.
	(build_offsetof): New.
	* stub-objc.c (objc_is_public): New.
	* objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
	from is_public.
	* ginclude/stddef.h (offsetof): Use __builtin_offsetof.
	* doc/extend.texi (Offsetof): Move from C++ section to C section
	and rewrite for __builtin_offsetof.

2004-06-01  Peter Barada  <peter@the-baradas.com>
	    Peter Jakubek  <peter@laseranimation.com>

	* config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
	a scratch to perform an add to memory.

2004-06-01  Bernardo Innocenti  <bernie@develer.com>

	PR target/14018
	* config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
	m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
	m68k_align_funcs): Remove.
	(override_options): Remove code to handle -malign-* options.
	* config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
	(FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
	(m68k_align_loops_string, m68k_align_jumps_string,
	m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
	m68k_align_funcs): Remove definitions.

2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>

	PR target/15626
	* doc/install.texi (sparc-sun-solaris2*): Document messages issued
	by the Sun linker in conjunction with the Sun assembler.
	(sparc-sun-solaris2.7): Update revision info for Sun patch 106950.

2004-06-01  Jeff Law  <law@redhat.com>

	* stmt.c (expand_decl): Be more selective about calling
	mark_reg_pointer.

2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>

	PR objc/7993
	* objc-act.c (is_private): Do not emit the 'instance variable %s
	is declared private' error.
	(is_public): Emit the error after calling is_private.
	(lookup_objc_ivar): If the instance variable is private, return 0
	- the instance variable is invisible here.

2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/invoke.texi (-static-libgcc): Explicitly mention
	non-GNU linkers.

2004-06-01  Bernardo Innocenti  <bernie@develer.com>

	PR target/12968
	* doc/invoke.texi: Document stack alignment side-effect of -mshort.

2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c/15749
	* c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
	misuses of structures with flexible array members if
	in_system_header.

2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/15693
	* config/sparc/sparc.c (compare_operand): New predicate.
	* config/sparc/sparc.h (PREDICATE_CODES): Add it.
	* config/sparc/sparc.md (cmpsi expander): Use it.  If the first
	operand is a ZERO_EXTRACT and the second operand is not zero,
	force the former to a register.
	(cmpdi expander): Likewise.

2004-05-31  Geoffrey Keating  <geoffk@apple.com>

	* gengtype-lex.l: Catch stray GTY markers in the files gengtype
	looks at.
	* alias.c (alias_invariant_size): Make alias_invariant_size
	static, fix GTY marker.

2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>

	PR tree-optimization/15743.
	* builtins.c (fold_builtin_1): Fold index() and rindex().

2004-05-31  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/15069
	* fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
	into "X < 0" (where C is the signbit) if X's type is a full mode.

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

	* pa.md: Disable the peephole2 patterns that generate indexed
	floating-point stores when indexing is disabled.

2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-pretty-print.c (pp_c_left_bracket): Make a function.
	(pp_c_right_bracket): Likewise.
	(pp_c_star): Likewise.
	(pp_c_ampersand): Define.
	* c-pretty-print.h (pp_c_left_bracket): Declare.
	(pp_c_right_bracket): Likewise.
	(pp_c_star): Likewise.
	(pp_c_ampersand): Likewise.

2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sol2.h (__enable_execute_stack): ANSIfy function
	definition.

2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>

	* c-incpath.c (add_path): Canonicalize paths to use '/' if
	HAVE_DOS_BASED_FILESYSTEM.

2004-05-31  Steven Bosscher  <stevenb@suse.de>

	* tree-ssa-dom.c (record_equivalences_from_incoming_edge):
	Only look at case labels if the immediate dominator is also
	the only predecessor.  Don't look for more case labels if the
	first seen is a case range.

2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c: Add a prototype for fold_builtin_strchr().

2004-05-31  Paolo Bonzini  <bonzini@gnu.org>

	Revert this patch:
	2004-05-27  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.

2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
	when generating PIC code.

2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>

	* c-decl.c (c_expand_body_1): Remove and fold back into ...
	(c_expand_body): here.
	(c_expand_decl): Move to ...
	* c-common.c (c_expand_decl): Here and remove check for nested
	functions.
	* c-common.h (c_expand_decl): Add prototype.
	* c-tree.h (c_expand_decl): Remove.

2004-05-30  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (combine_comparisons, optimize_bit_field_compare,
	range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
	fold_mathfn_compare, fold_inf_compare, fold,
	fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
	Use constant_boolean_node where appropriate.  Don't bother using
	fold_convert on the second argument to omit_one_operand.

2004-05-30  Roger Sayle  <roger@eyesopen.com>

	* doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
	CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
	ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
	TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
	Add missing (but documented) tree nodes to the index.

2004-05-30  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/14819
	* builtins.c (fold_builtin_strchr): New.
	(fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
	with fold_builtin_strchr().

2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>

	* bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
	c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
	expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
	passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
	tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
	tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
	tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
	tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
	tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
	formatting.

2004-05-30  Steven Bosscher  <stevenb@suse.de>

	* gimplify.c (sort_case_labels): New.  Split out from...
	(gimplify_switch_expr): ...here.  Use it.
	* tree-eh.c (lower_try_finally_switch): Sort the labels of
	the SWITCH_EXPR created here before leaving the function.
	* tree.c (sort_case_labels): Add prototype.

2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>

	* fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
	of BOOLEAN_TYPE.

2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>

	* c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
	ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
	fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
	modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
	tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
	tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
	comment typos.  Follow spelling conventions.

2004-05-29  Geoffrey Keating  <geoffk@apple.com>

	* gengtype-yacc.y: Add NESTED_PTR token.
	(option): Record `nested_ptr' option.
	* gengtype-lex.l: Handle `nested_ptr' keyword.
	* gengtype.c (walk_type): Process `nested_ptr' option.
	* gengtype.h (struct nested_ptr_data): New.
	* doc/gty.texi (GTY Options): Document `nested_ptr' option.
	* stringpool.c (struct string_pool_data): Make 'entries' point to
	ht_identifier instead of tree.
	(gt_pch_save_stringpool): Don't adjust pointers.
	(gt_pch_restore_stringpool): Call ht_load.

2004-05-29  Jason Merrill  <jason@redhat.com>

	* gimplify.c (gimplify_expr): Don't build a statement list
	if no gimplification was necessary.

2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>

	* pretty-print.c (pp_base_format_text): Support %< instead of %`
	and %> as well as %'.
	* c-format.c: Use %< and %>.
	(gcc_diag_char_table, gcc_cdiag_char_table,
	gcc_cxxdiag_char_table): Update.

2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-typeck.c (common_type): Correct comment.

2004-05-29  Peter Barada  <peter@the-baradas.com>

	* config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
	* config/m68k/m68k.c (const_method): Likewise.
	* config/m68k/m68k.c (const_int_cost): Likewise.
	* config/m68k/m68k.c (const_int_cost): Likewise.
	* config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.

2004-05-29  Peter Barada  <peter@the-baradas.com>

	* config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
	addressing.
	* config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
	movsi,movhi,movqi insn patterns.

2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>

	* c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.

	PR target/15720
	* config/darwin.c (machopic_indirect_call_target): Copy
	the SYMBOL_REF_DECL from the original RTX for the new
	stub RTX.

2004-05-28  DJ Delorie  <dj@redhat.com>

	* stor-layout.c (place_field): Revert erroneous commit.

2004-05-28  Ziemowit Laski  <zlaski@apple.com>

	* config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
	vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
	vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
	vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
	vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
	vec_ste): Remove type checks for integral parameters and literals
	from '..._args_eq' macros.

2004-05-28  Aldy Hernandez  <aldyh@redhat.com>

	* c-common.c (fname_as_string): Fix xcalloc to xmalloc.

2004-05-28  Aldy Hernandez  <aldyh@redhat.com>

	* testsuite/g++.dg/charset/function.cc: New.

	* testsuite/gcc.dg/charset/function.c: New.

	* c-decl.c (c_make_fname_decl): Free return value from
	fname_as_string.

	* cp/decl.c (cp_make_fname_decl): Free return value from
	fname_as_string.

	* c-common.c (fname_as_string): Translate if necessary.

2004-05-28  Geoffrey Keating  <geoffk@apple.com>

	* stringpool.c: Add comments to PCH saving/restoring routines.

2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>

	* c-common.c (c_estimate_num_insns_1): Kill.
	(c_estimate_num_insns): Kill.
	* c-common.h (c_estimate_num_insns): Kill.

	* gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
	when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
	Remove comment about not checking for
	_POSIX_PRIORITY_SCHEDULING.
	* gthr-posix.c: Likewise.

2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
	    Roger Sayle  <roger@eyesopen.com>

	PR rtl-optimization/15649
	Add LTGT_EXPR and improve pretty-printing of unordered
	comparisons.
	* c-common.c (c_common_truthvalue_conversion):
	Handle LTGT_EXPR.
	* c-typeck.c (build_binary_op): Likewise.
	* dojump.c (do_jump): Likewise.
	* expr.c (expand_expr_real_1, do_store_flag): Likewise.
	* predict.c (tree_predict_by_opcode): Likewise.
	* real.c (real_compare): Likewise.
	* tree-cfg.c (verify_expr): Likewise.
	* tree-inline.c (estimate_num_insns_1): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	Handle ORDERED_EXPR, UNORDERED_EXPR.
	(op_symbol): Print unordered comparisons differently
	than ordered ones.
	* tree.def (LTGT_EXPR): New '<' tree code.
	* doc/c-tree.texi (Expressions): Document floating-point
	comparison nodes.

	Fold comparisons between floating point values.
	* fold-const.c (enum comparison_code): New, from
	#define'd constants.  Define compcodes for unordered
	comparisons and for invalid transformations.
	(invert_tree_comparison): Add "honor_nans" parameter.
	(fold_truthop): Revamp to work on floating-point types too.
	(comparison_to_compcode): Support unordered comparisons.
	Use new enum comparison_code.
	(compcode_to_comparison): Likewise.
	(combine_compcodes): New function.
	(invert_truthvalue): Let invert_tree_comparison decide
	whether it is valid to fold the comparison.  Fold ORDERED
	and UNORDERED even if flag_unsafe_math_optimizations is off,
	and the remaining even if flag_unsafe_math_optimizations
	is off but we are under -fno-trapping-math.
	(fold_relational_const): Integer modes do not honor NaNs.

2004-05-28  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_output_epilogue): Remove redundant code.

2004-05-28  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (thumb_force_lr_save): New function.
	(arm_get_frame_offsets, thumb_unexpanded_epilogue,
	thumb_output_function_prologue): Use it.
	(thumb_expand_prologue): Set lr_save_eliminated.

2004-05-28  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.md (extendsidi2): Tie the source and destination
	of the register alternative.  Split it into nothing.

2004-05-28  Richard Sandiford  <rsandifo@redhat.com>

	* rtl.h (skip_consecutive_labels): Declare.
	* emit-rtl.c (skip_consecutive_labels): New function.
	* reorg.c (relax_delay_slots, dbr_schedule): Use it.
	* jump.c (follow_jumps): Say what null return values mean.

2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/13250
	* config/sh/sh.md (rotlsi3): Use emit_move_insn.

2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
	libgcc-std.ver.
	* config/sh/libgcc-std.ver: New file.

2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>

	* except.c: Revert change of 2004-05-26.
	* config/i386/i386.md: Revert change of 2004-05-27.

2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>

	* configure.ac: Remove --enable-tree-browser option.
	Define TREEBROWSER when ac_tree_checking is defined.
	* configure: Rebuilt.

2004-05-27  Olivier Hainque  <hainque@act-europe.fr>

	* expr.c (store_constructor): Restore sanity check on
	the size of the type before clearing.

2004-05-27  Jan Hubicka  <jh@suse.cz>

	* cfgbuild.c (control_flow_insn_p):  Notice noreturn call

2004-05-27  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.
	* simplify-rtx.c (simplify_binary_operation):
	Use nonzero_bits to simplify ANDs where we are
	turning off bits already known to be off in OP0.

2004-05-27  Alan Modra  <amodra@bigpond.net.au>

	PR target/14478
	* config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.

2004-05-27  Josef Zlomek  <zlomekj@suse.cz>

	PR middle-end/14084
	* emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
	to size of decl.

2004-05-26  Aldy Hernandez  <aldyh@redhat.com>

	PR/14924
	* config/rs6000/rs6000.c (spe_expand_stv_builtin): New.

2004-05-26  Roger Sayle  <roger@eyesopen.com>

	* tree.h: Fix comment typo.

2004-05-27  Steven Bosscher  <stevenb@suse.de>

	* gimplify.c (compare_case_labels): New function.
	(gimplify_switch_expr): Sort case labels, and make sure the
	last label in the label vector is the default case.
	* tree-cfg.c (group_case_labels): New function.
	(build_tree_cfg): Cleanup redundant labels and group case labels
	before creating edges.
	(cleanup_dead_labels): Handle GOTO_EXPRs.
	(find_case_label_for_value): Use a binary search to find the
	case label for the given value.
	* tree-gimple.c: Mention that labels are sorted, and that the
	last label must be the default.

2004-05-27  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.

2004-05-27  Jan Hubicka  <jh@suse.cz>

	* i386.md (UNSPECV_EH_RETURN): Kill.
	(eh_return): Use jump_insn.
	(eh_return_si, eh_return_di): Change pattern to jump instruction.

2004-05-26  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (try_forward_edges):  Do not check loop structure when
	not loop optimizing.

2004-05-26  Jan Hubicka  <jh@suse.cz>

	* except.c (can_throw_internal):  Notice RESX instructions.

2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>

	* varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
	of the two sizes to assemble_integer.

2004-05-25  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
	pointless #ifdef.

2004-04-25  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in (top_builddir): Define to .

2004-05-25  Alexandre Oliva  <aoliva@redhat.com>

	* configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
	top-level detects, except when in-tree ld is being cross-built.
	(gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
	then AS only if target is host.
	* configure: Rebuilt.

2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>

	* global.c (global_alloc): Call make_accurate_live_analysis.
	(record_one_conflict): Remove dead code.
	(mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
	(bb_info): New structure.
	(BB_INFO, BB_INFO_BY_INDEX): New macros.
	(allocate_bb_info, free_bb_info, mark_reg_change,
	calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
	modify_bb_reg_pav, calculate_reg_pav,
	make_accurate_live_analysis): New functions.

2004-05-25  Devang Patel  <dpatel@apple.com>

	* alias.c (init_alias_analysis): Use ggc_calloc instead of
	xrealloc.
	(end_alias_analysis): Use ggc_free instead fo free.

2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/15546
	* config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
	as needed to be outputted.

2004-05-25  Jan Hubicka  <jh@suse.cz>

	* builtins.def (__builtin_expect):  Mark the function as const&nothrow.

2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
	Mostafa Hagog  <mustafa@il.ibm.com>

	* Makefile.in (modulo-sched.o, ddg.o): New.
	* ddg.h, ddg.c, modulo-sched.c: New files.
	* cfglayout.c (duplicate_insn_chain): Remove "static" and push
	internals to "dupicate_insn".
	(duplicate_insn): New function.
	* cfglayout.h (duplicate_insn_chain, duplicate_insn): New
	declarations.
	* common.opt (fmodulo-sched): New flag.
	* df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
	Remove static and forward declaration.
	(df_find_def, df_reg_used, df_bb_regno_last_def_find): New
	functions.
	* df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
	df_bb_regno_last_def_find, df_find_def, df_reg_used): New
	declarations.
	* flags.h (flag_modulo_sched): New flag.
	* opts.c (common_handle_option): Handle modulo-sched flag.
	* params.def (max-sms-loop-number, sms-max-ii-factor,
	sms-dfa-history, sms-loop-average-count-threshold): New
	parameters.
	* params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
	SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
	parameters.
	* passes.c ("sms", "sms-vcg"): New dumps.
	(rest_of_handle_sched): Call sms_schedule.
	* rtl.h (sms_schedule): New declaration.
	* timevar.def (TV_SMS): New.
	* toplev.c (flag_modulo_sched): Initialize.
	(f_options): Handle -fmodulo-sched option.
	* docs/invoke.texi: Document -fmodulo-sched & -dm options.
	* docs/passes.texi: Document new SMS pass.

2004-05-25  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in (OBJS): Add rtlhooks.o.
	(rtlanal.o): Depend on function.h.
	(cse.o): Depend on rtlhooks-def.h.
	(combine.o): Depend on rtlhooks-def.h.
	(rtlhooks.o): New rule.
	* combine.c: Include rtlhooks-def.h.
	(nonzero_bits, cached_nonzero_bits, nonzero_bits1,
	num_sign_bit_copies, cached_num_sign_bit_copies,
	num_sign_bit_copies1): Move most of the code to rtlanal.c.
	(reg_nonzero_bits_for_combine,
	reg_num_sign_bit_copies_for_combine): New functions holding
	the remnants of the above.
	(combine_rtl_hooks): New.
	(combine_instructions): Set rtl_hooks instead of gen_lowpart.
	* cse.c: Include rtlhooks-def.h.
	(cse_rtl_hooks): New.
	(cse_main): Set rtl_hooks instead of gen_lowpart.
	* emit-rtl.c (gen_lowpart): Remove.
	(gen_lowpart_general): Move to rtlhooks.c.
	* rtl.h (nonzero_bits, num_sign_bit_copies,
	struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
	(gen_lowpart_general): Remove.
	(gen_lowpart): Temporarily redefine as a macro.
	* rtlanal.c: Include function.h.
	(nonzero_bits, cached_nonzero_bits, nonzero_bits1,
	num_sign_bit_copies, cached_num_sign_bit_copies,
	num_sign_bit_copies1): New, from combine.c.
	* rtlhooks.c: New file.
	* rtlhooks-def.h: New file.

2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>

	* config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
	to support 32-bit -mint8 mode.

	* doc/invoke.texi (-mint8): Added documentation for the -mint8
	option in the AVR architecture.

2004-05-24  Mike Stump  <mrs@apple.com>

	* doc/install.texi: Document that dejagnu 1.4.4 is required.

2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>

	* intl.h (open_quote, close_quote): New.
	* intl.c (open_quote, close_quote): New.
	(gcc_init_libintl): Set them.
	* pretty-print.c: Include "intl.h".
	(pp_base_format_text): Support 'q' format flag and %` and %'
	formats.  Use ' instead of ` in comments.
	* c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
	gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
	foramt_types_orig): Describe these new formats.
	(decode_format_attr, check_function_format,
	check_format_info_main): Use these new formats.
	(status_warning): Use ATTRIBUTE_GCC_DIAG.
	* toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
	check these formats to 3.5.

2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.in (CPPLIBS): Renamed to CPPLIB.
	(BACKEND): Reflect this.
	(LIBDEPS): Move CPPLIB before LIBIBERTY.
	(LIBS): Likewise.

2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>

	PR tree-optimization/14197
	* builtins.c: Include "tree-gimple.h"
	(readonly_data_expr): Use get_base_address.  Make sure to call
	decl_readonly_section only on trees it can handle.
	* tree-gimple.c (get_base_address): Accept STRING_CST and
	CONSTRUCTOR expressions.
	* Makefile.in: Update dependencies.

2004-05-23  Paolo Bonzini  <bonzini@gnu.org>

	Move libcpp to the toplevel.
	* Makefile.in: Remove references to libcpp files,
	use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
	and change hashtable.h to that.
	* aclocal.m4 (gcc_AC_HEADER_STDBOOL,
	gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
	* configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
	* configure: Regenerate.
	* config.in: Regenerate.
	* c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
	* cppcharset.c: Removed.
	* cpperror.c: Removed.
	* cppexp.c: Removed.
	* cppfiles.c: Removed.
	* cpphash.c: Removed.
	* cpphash.h: Removed.
	* cppinit.c: Removed.
	* cpplex.c: Removed.
	* cpplib.c: Removed.
	* cpplib.h: Removed.
	* cppmacro.c: Removed.
	* cpppch.c: Removed.
	* cpptrad.c: Removed.
	* cppucnid.h: Removed.
	* cppucnid.pl: Removed.
	* cppucnid.tab: Removed.
	* hashtable.c: Removed.
	* hashtable.h: Removed.
	* line-map.c: Removed.
	* line-map.h: Removed.
	* mkdeps.c: Removed.
	* mkdeps.h: Removed.
	* stringpool.h: Include symtab.h instead of hashtable.h.
	* tree.h: Include symtab.h instead of hashtable.h.
	* system.h (O_NONBLOCK, O_NOCTTY): Do not define.

2004-05-23 Paolo Bonzini <bonzini@gnu.org>

	* gcc.c (struct prefix_list): Add forward declaration.
	(do_spec_path): New function, extracted from...
	(do_spec_1) <'D'>: ... here.  Drop support for
	SPACE_AFTER_L_OPTION.
	(do_spec_1) <'I'>: Use do_spec_path.
	(process_command): Do not store the 'include' suffix
	in include_prefixes.
	* system.h: Poison SPACE_AFTER_L_OPTION.

2002-05-23  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (non_lvalue): Explicitly list the tree codes that
	need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.

2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
	Update based on printed manual.  Enable setting of offsets for
	FSFPRINT and move it to gcc-common.texi.
	* doc/gcc.texi: Update FSF printing details.
	* doc/gccint.texi: Remove FSF printing details.

2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/t-rs6000: Remove the disabling -Werror.

2004-05-22  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (expand_builtin_strstr, expand_builtin_strchr,
	expand_builtin_strrchr, expand_builtin_strpbrk,
	expand_builtin_mempcpy, expand_builtin_memcmp,
	expand_builtin_strcmp, expand_builtin_strncmp,
	expand_builtin_strcat, std_expand_builtin_va_start,
	std_expand_builtin_va_arg, expand_builtin_va_copy,
	expand_builtin_signbit, fold_builtin_cabs,
	fold_builtin_logarithm, fold_builtin_mempcpy,
	fold_builtin_signbit, fold_builtin_isascii,
	fold_builtin_toascii, fold_builtin_isdigit,
	fold_builtin_1, build_function_call_expr,
	simplify_builtin_strchr, simplify_builtin_strrchr,
	simplify_builtin_strpbrk, simplify_builtin_strncpy,
	simplify_builtin_memcmp, simplify_builtin_strcmp,
	simplify_builtin_strncmp, simplify_builtin_strncat,
	simplify_builtin_strspn, simplify_builtin_strcspn,
	simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
	to build with calls to build2, build3 or omit_one_operand.

2004-05-22  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
	section when generating EABI code.

2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>

	PR 15546
	* config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
	Call mark_decl_referenced on the SYMBOL_REF_DECL.

2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>

	* c-common.c (c_common_truthvalue_conversion): Handle
	UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
	ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
	i.e. set the type to truthvalue_type_node and return.

2004-05-22  Zack Weinberg  <zack@codesourcery.com>

	* tree.h (struct tree_decl): Add possibly_inlined bit.
	(DECL_POSSIBLY_INLINED): New accessor macro.
	* cgraph.h: Remove declaration of cgraph_inline_hash.
	* cgraph.c: Remove definition of cgraph_inline_hash.
	(hash_node): Revert to hashing DECL_UID.
	(eq_node): Take two pointers to cgraph_node structures.
	Compare DECL_UIDs.
	(cgraph_remove_node): Pass the node directly to htab_find_slot.
	(cgraph_varpool_hash_node): Rename hash_varpool_node;
	hash on DECL_UID.
	(eq_cgraph_varpool_node): Rename eq_varpool_node; take two
	pointers to cgraph_varpool_node structures; compare DECL_UIDs.
	(cgraph_node): Allocate a temporary node on the stack, fill in
	its DECL field, and pass that to htab_find_slot.
	(cgraph_varpool_node): Likewise.
	(cgraph_function_possibly_inlined_p): If global info is ready,
	return the DECL_POSSIBLY_INLINED bit.
	* cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
	instead of mucking with cgraph_inline_hash.

2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/contrib.texi: Add g77 contributors.

2004-05-22  Richard Sandiford  <rsandifo@redhat.com>

	* calls.c (initialize_argument_information): Forbid sibcalls if a
	callee-copied argument is stored in the current function's frame.

2004-05-22  Eric Christopher  <echristo@redhat.com>

	* fix-header.c (read_scan_file): Update for add_path change.

2004-05-22  Ben Elliston  <bje@au.ibm.com>

	* c.opt (Wmissing-include-dirs): New.
	* c-opts.c (c_common_handle_option): Pass true for user_supplied_p
	to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
	OPT_isystem. Handle case OPT_Wmissing_include_dirs.
	* c-incpath.h (add_path): Add fourth (bool) argument.
	* c-incpath.c (add_env_var_paths): Pass false to add_path ().
	(add_standard_paths): Likewise.
	(remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
	is used and the directory was user-supplied via -I.
	(add_path): Set p->user_supplied_p.  Remove duplicated code by
	using add_cpp_dir_path ().
	* cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
	(struct cpp_dir): Add user_supplied_p.
	* doc/invoke.texi (Warning Options): Document new option.

2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* fold-const.c (fold_read_from_constant_string): Convert result to
	requested type.

2004-05-21  Richard Henderson  <rth@redhat.com>

	* gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
	(copy_if_shared_r): Don't copy decls, types, constants, BINDs.
	Don't mark VA_ARG_EXPRs volatile here.
	(gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.

2004-05-21  Richard Henderson  <rth@redhat.com>

	* Makefile.in (tree-dump.o): Depend on tree-iterator.h.
	* tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.

2004-05-21  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold, fold_relational_hi_lo,
	nondestructive_fold_binary_to_constant,
	fold_read_from_constant_string): Use fold_convert instead of convert.
	* builtins.c (simplify_builtin, simplify_builtin_strstr,
	simplify_builtin_strchr, simplify_builtin_strrchr,
	simplify_builtin_strpbrk): Use fold_convert instead of convert.

2004-05-21  Diego Novillo  <dnovillo@redhat.com>

	* tree-flow-inline.h (num_immediate_uses): Don't abort if DF
	is NULL.

2004-05-21  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
	override sparc.h definition.

2004-05-20  Roger Sayle  <roger@eyesopen.com>

	* tree.c (array_type_nelts, save_expr, substitute_in_expr,
	get_unwidened, get_narrower): Replace build with build2.
	* fold-const.c (negate_expr, associate_trees, size_binop,
	fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
	pedantic_omit_one_operand, distribute_bit_expr,
	make_bit_field_ref, optimize_bit_field_compare,
	decode_field_reference, range_binop, make_range,
	build_range_check, fold_range_test, fold_truthop,
	optimize_minmax_comparison, extract_muldiv_1,
	fold_binary_op_with_conditional_arg, fold_mathfn_compare,
	fold_inf_compare, fold_single_bit_test, fold,
	fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
	Likewise replace build with either build2 or build3.

2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>

	* system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
	* calls.c (prepare_call_address): Don't test
	NO_RECURSIVE_FUNCTION_CSE.
	* config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
	* config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
	* config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
	* config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
	* config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
	* config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
	* config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
	* config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
	* config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
	* config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
	* config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
	* config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
	Likewise.
	* config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
	* config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
	* doc/tm.texi (Costs): Remove documentation for
	NO_RECURSIVE_FUNCTION_CSE.

2004-05-20  Paul Brook  <paul@codesourcery.com>

	* unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
	* unwind-dw2.c (extract_cie_info): Ditto.
	(_Unwind_FrameState): Change retaddr_column to word type.

2004-05-20  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/3074
	* fold-const.c (strip_compound_expr): Delete function.
	(count_cond): Delete function.
	(fold_binary_op_with_conditional_arg): Only perform transformations
	"a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
	when a is constant.  This greatly simplifies this routine.

	* tree.c (saved_expr_p): Delete function.
	* tree.h (saved_expr_p): Delete function prototype.

2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>

	* common.opt (ftree-loop-optimize): Remove.

2004-05-20  Daniel Jacobowitz  <dan@debian.org>

	* Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
	(NM_FOR_TARGET): Use := and $(shell).
	(mainversion): Remove unused variable.

2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* reorg.c (delete_from_delay_slot): If we have a barrier after the
	sequence containing the insn to be deleted, always reemit it.

2004-05-20  Richard Henderson  <rth@redhat.com>

	PR 15454
	* tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
	* function.c (expand_function_start): Expand static_chain_decl by hand.
	* gimplify.c (create_tmp_var_name): Export.
	* tree-gimple.h (create_tmp_var_name): Declare.

2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>

	* rs6000.c (print_operand) <case 'z'>: Call
	mark_decl_referenced before assemble_name.

2004-05-20  Zack Weinberg  <zack@codesourcery.com>

	* cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
	(cgraph_varpool_hash_node, eq_cgraph_varpool_node)
	(cgraph_varpool_node): Hash on the pointer to the decl, not
	the DECL_UID.  Fixes 64-bit bootstrap failure.

2004-05-20  Richard Earnshaw <rearnsha@arm.com>

	* arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
	we don't earlyclobber operands used in the second insn.

2004-05-20  Steven Bosscher  <stevenb@suse.de>

	* tree-mudflap.c: Formatting fixes.

2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>

	* Makefile.in (GTFILES): Add $(srcdir)/reload.h.
	* gengtype.c (open_base_files): Include reload.h in ifiles.
	* reload.h (reg_equiv_memory_loc_varray): Declare.
	* reload1.c (reg_equiv_memory_loc_varray): New variable.
	(init_reload): Initialize it.
	(reload): Instead of freeing reg_equiv_memory_loc, 'grow'
	reg_equiv_memory_loc_varray to size 0.
	* ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
	growing reg_equiv_memory_loc_varray to the desired size.
	* passes.c (rest_of_handle_old_regalloc): Likewise.
	* reload.c: Amend comment on calling init_reload.

2004-05-20  Nick Clifton  <nickc@redhat.com>

	* config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
	with 'TRAMP' in the body of the macro definition.

2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/15383
	* config/ia64/ia64.c (ia64_expand_compare): Don't check
	TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
	cmptf_libfunc isn't set.
	(ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
	conventions.
	(ia64_sysv4_init_libfuncs): New.

	* config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
	ia64_sysv4_init_libfuncs.

2004-05-20  Falk Hueffner  <falk@debian.org>

	PR other/15526
	* libgcc2.c (__mulvsi3): Fix overflow test.

2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c/14171
	* reg-stack.c (nan): Rename to ...
	(not_a_num): Here.
	(reg_to_stack): Rename nan to not_a_num.
	(subst_stack_regs_pat): Likewise.
	(convert_regs_entry): Likewise.
	(convert_regs_1): Likewise.

	* tree-cfg.c (find_case_label_for_value): Replace call to
	simple_cst_equal with tree_int_cst_equal.

2004-05-19  Jeff Law <law@redhat.com>

	* tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
	If the operand is for a use, then strip away the SSA_NAME, do not
	strip away the SSA_NAME for a set.  Never call release_ssa_name.
	(mark_def_sites): Appropriately pass additional argument to
	prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
	then set the VDEF_RESULT to the VDEF_OP.
	(set_def_block): Strip away any SSA_NAME to get to the real
	underlying variable.

	* tree-ssa-phiopt.c (value_replacement): Handle the case where
	the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
	BB directly.

2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	PR c++/15463
	* loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
	result of inverse.

	PR rtl-optimization/15274
	* loop-iv.c (determine_max_iter, shorten_into_mode,
	iv_number_of_iterations): Handle constants correctly.
	* rtl.h (get_mode_bounds): Declaration changed.
	* stor-layout.c (get_mode_bounds): Return a constant suitable for
	the target mode.

	PR rtl-optimization/14692
	* loop-unswitch.c (may_unswitch_on): Try folding the result.
	(unswitch_single_loop): Work correctly when may_unswitch_on
	returns a folded constant.

	* loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
	* simplify-rtx.c (simplify_const_relational_operation): Optimize
	comparisons with mode bounds.

	* function.c (struct temp_slot): Add new field prev.
	(free_after_compilation, init_temp_slots): Free new fields.
	(cut_slot_from_list, insert_slot_to_list,
	temp_slots_at_level, max_slot_level, move_slot_to_level,
	make_slot_available): New functions.
	(assign_stack_temp_for_type, combine_temp_slots,
	find_temp_slot_from_address, preserve_temp_slots,
	preserve_rtl_expr_result, free_temp_slots,
	free_temps_for_rtl_expr, pop_temp_slots): Work with
	the new structure of lists.
	(mark_all_temps_used): Removed.
	* function.h (struct function): Field x_temp_slots
	replaced by x_used_temp_slots and x_avail_temp_slots.
	(temp_slots): Replaced by ...
	(used_temp_slots, avail_temp_slots): New.
	* tree.h (mark_all_temps_used): Declaration removed.

	* loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
	simplify_using_assignment): Take the expression out of
	the expr_list wrapper.

	* loop-iv.c (iv_number_of_iterations): Improve clasification of
	infinite loops.

2004-05-19  Roger Sayle  <roger@eyesopen.com>

	* doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
	costs should be based on code size when optimizing for size.

2004-05-19  Paolo Bonzini  <bonzini@gnu.org>

	* fold-const.c: Remove non-printable character 160.

2004-05-19  Nick Clifton  <nickc@redhat.com>

	* doc/invoke.texi (ARM Options): Fix typo.
	Remove descrption of -mshort-load-bytes and
	-mno-short-load-bytes.

	* config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
	missing parenthesis.
	* config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
	* config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.

2004-05-19  Steven Bosscher  <stevenb@suse.de>

	* expr.c (store_constructor): Build loop start and end by hand
	instead of via loop functions from stmt.c.
	(expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
	Remove the code to expand them.

	* stmt.c (loop_stack): Remove this and everything related.
	(struct nesting, enum nesting_desc): Update.
	(expand_fixup): Likewise.
	(expand_loop_start, expand_start_loop_continue_elsewhere,
	expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
	expand_end_null_loop, expand_continue_loop, expand_exit_loop,
	expand_exit_loop_if_false, expand_exit_loop_top_cond,
	expand_exit_something): Remove.
	* tree.h: Remove prototypes.

2004-05-18  Mike Stump  <mrs@apple.com>
	    Devang Patel  <dpatel@apple.com>

	* doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
	if this label is for eh.
	* config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
	* config/darwin.c (darwin_emit_unwind_label): Likewise.
	* dwarf2out.c (output_call_frame_info): Likewise.
	* output.h (default_emit_unwind_label): Likewise.
	* target.h (unwind_label): Likewise.
	* varasm.c (default_emit_unwind_label): Likewise.

	* config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
	DEBUG_FRAME_SECTION, 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): Define.

2004-05-18  Zack Weinberg  <zack@codesourcery.com>

	* cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
	(cgraph_varpool_hash_node, eq_cgraph_varpool_node)
	(cgraph_varpool_node):
	Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
	(cgraph_function_possibly_inlined_p): Use the decl itself for
	the key, not DECL_ASSEMBLER_NAME.
	(change_decl_assembler_name): No need to muck with the hash tables.
	(cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
	Delete.
	* cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
	for the key, not DECL_ASSEMBLER_NAME.
	* cgraph.h: Remove prototypes of deleted functions.
	* varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
	(mark_decl_referenced): New function.
	* tree.h: Prototype mark_decl_referenced.
	* final.c (output_addr_const) <case SYMBOL_REF>: Call
	mark_decl_referenced before assemble_name.
	* c-decl.c (finish_decl): Use mark_decl_referenced.

2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
	    Jeff Law <law@redhat.com>

	* tree-ssa-phiopt.c (abs_replacement): New function.
	(empty_block_p): New function extracted from...
	(candidate_bb_for_phi_optimization): Break out empty block test.
	(conditional_replacement): Use empty_block_p.
	(value_replacement): Similarly.

	* Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
	* tree-ssa-phiopt.c: Include flags.h.
	(conditional_replacement): Remove argument names from prototype.
	Minor formatting and comment fixes.
	(tree_ssa_phiopt): If conditional_replacement returns false, then
	call value_replacement.
	(value_replacement): New function.

2004-05-18  Jeff Law  <law@redhat.com>

	* tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
	from conditional_replacement.
	(candidate_bb_for_phi_optimization): Similarly.
	(conditional_replacement): Use replace_phi_with_stmt and
	candidate_bb_for_phi_optimization.

	* tree-ssa-phiopt.c: Fix various formatting issues.

2004-05-18  Steven Bosscher  <stevenb@suse.de>

	* config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
	s390_expand_cmpmem): Do not use expand_start_loop and
	expand_end_loop, instead build the loop manually.

2004-05-18  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md (ctrsi_internal3): Delete.
	(ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.

2004-05-17  Jeff Law  <law@redhat.com>

	* toplev.h (flag_delete_null_pointer_checks): Move from here to...
	* flags.h (flag_delete_null_pointer_checks): Here.
	* tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
	* tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
	(add_phi_arg, remove_phi_arg_num): Similarly.
	* tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
	property into PHI nodes.
	* tree-ssa-dom.c: Remove redundant inclusion of flags.h.
	(record_equivalences_from_phis): If all PHI arguments are known to be
	nonzero, then the result must be nonzero as well.
	(cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
	(record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
	appropriately.  Walk the USE-DEF chains and propagate nonzero property
	as appropriate.
	* tree.h (PHI_ARG_NONZERO): Define.
	(phi_arg_d): Add nonzero flag.

2004-05-17  Zack Weinberg  <zack@codesourcery.com>

	* f: Entire directory removed

	* c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
	(CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
	(g77_integer_type_node, g77_uinteger_type_node)
	(g77_longint_type_node, or g77_ulongint_type_node): Delete.
	* c-common.c (c_common_nodes_and_builtins): Do not initialize
	the above set of variables.

	* config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
	* doc/invoke.texi, doc/standards.texi: Remove cross-references
	to g77 manual.

2004-05-17  Steven Bosscher  <stevenb@suse.de>

	PR tree-optimization/15438
	* tree-ssa-operands.c (get_expr_operands): Do not treat malloc
	attributed functions as pure or const.

2004-05-17  Frank Ch. Eigler  <fche@redhat.com>

	* tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
	from source code with errors.

2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>

	Enable tree browser for all front ends.
	* Makefile.in (cc1): Moved @TREEBROWSER@ from here...
	(BACKEND): ...to here.

2004-05-17  Jan Hubicka  <jh@suse.cz>

	* i386.c (construct_container): Do not produce BLKmode registers.
	(classify_argument): Properly compute alignment of complex types.

2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/15084
	* config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
	and renamed to movdi_insv_1_rex64.
	(insv): Support SImode for 32bit and DImode for 64bit.

2004-05-17  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
	(TARGET_SWITCHES): Remove debugg.
	* config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
	TARGET_64BIT.
	(subdi3): Replace the define_expand with a define_insn, the latter
	renamed from subdi3_internal_3.
	(negdi2): Likewise negdi2_internal_2.
	(adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
	(ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
	and associated define_splits.
	(adddi3_internal): Renamed from adddi3_internal_3.
	(ashldi3_internal): Likewise ashldi3_internal4.
	(ashrdi3_internal): Likewise ashrdi3_internal4.
	(lshrdi3_internal): Likewise lshrdi3_internal4.

2004-05-17  Richard Sandiford  <rsandifo@redhat.com>

	* optabs.c (expand_unop): Try implementing negation using subtraction
	from zero.

2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.md:  Fix typo from last change.  Remove DFmode move to and from
	SAR register.

2004-05-16  Richard Earnshaw  <rearnsha@arm.com>

	PR target/10982
	* arm.md (ne_zeroextractsi): Convert to insn-and-split.
	(ne_zeroextractsi_shifted): New pattern.
	(ite_ne_zeroextractsi): New pattern.
	(ite_ne_zeroextractsi_shifted): New pattern.

2004-05-15  Steven Bosscher  <stevenb@suse.de>

	* c-gimplify.c (c_genericize):
	Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
	* c-parse.in <expr_no_commas>: Likewise.
	<if_prefix>: Likewise.
	<select_or_iter_stmt>: Likewise.
	* expr.c (expand_var, expand_expr_real_1): Likewise.
	* expr.h (expand_expr): Make it a static inline function.
	Move prototype for expand_expr_real up before this.
	* fold-const.c (fold_relational_hi_lo, fold_relational_const):
	Likewise.
	* gimplify.c (gimple_boolify, gimplify_addr_expr,
	gimplify_asm_expr, gimplify_expr): Likewise.
	* tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
	dump_function_to_file): Likewise.
	* tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
	* tree-inline.c (remap_block, save_body, walk_tree): Likewise.
	* tree-into-ssa.c (dump_tree_ssa): Likewise.
	* tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
	Likewise.
	* tree-optimize.c (execute_one_pass): Likewise.
	* tree-pretty-print.c (dump_generic_bb_buff): Likewise.
	* tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.

	* objc/objc-act.c (objc_build_try_enter_fragment,
	objc_build_try_epilogue, objc_build_catch_stmt,
	objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
	with lang_hooks.foo ().

2004-05-15  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
	that simplify_builtin doesn't destructively modify its argument.

2004-05-15  Richard Earnshaw  <reanrsha@arm.com>

	* arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
	implementations for ARM and Thumb.
	* arm/t-arm-elf (LIB1ASMFUNCS): Use them.

2004-05-15  Thomas Quinot  <quinot@act-europe.fr>

	* prefix.c (update_path): Replace PREFIX with KEY only
	when it matches a full directory name in PATH.

2004-05-15  Richard Earnshaw  <reanrsha@arm.com>

	* arm.h (TARGET_APCS_32): Delete.
	(TARGET_MMU_TRAPS): Delete.
	(TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
	define __APCS_26__.
	(CPP_SPEC): Remove checking of -mapcs-{26,32}.
	(ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
	(TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
	(prog_mode_type): Delete.
	(PROMOTE_MODE): Always promote unsigned for HImode.
	(SECONDARY_INPUT_RELOAD_CLASS): Simplify.
	(MASK_RETURN_ADDR): Simplify.
	* arm.c (arm_prgmode): Delete.
	(arm_override_options, arm_gen_rotated_half_load): Simplify.
	(print_multi_reg, output_return_instruction): Simplify.
	(arm_output_epilogue, arm_final_prescan_insn): Simplify.
	(arm_return_addr): Simplify.
	* arm.md (prog_mode): Delete.
	(conds): Simplify.
	(zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
	(rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
	(loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
	(loadhi_shiftpredec): Delete.
	(peephole for post-increment on HImode load): Delete.
	* arm/crtn.asm: (FUNC_END): Simplify.
	* arm/lib1funcs.asm: Remove APCS-26 return macros.
	* arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
	* arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
	* arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
	MULTILIB_DEFAULTS as required.
	* arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
	* arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
	variables as required.
	* doc/invoke.texi (ARM Options): Remove obsolete flags.

2004-05-15  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
	UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
	count to 8 to handle n_reg > 2.

2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/extend.texi: Update WG14 URL.

2004-05-15  Steven Bosscher  <stevenb@suse.de>

	* basic-block.h (life_analysis, delete_noop_moves):
	Update prototypes.
	* bt-load.c (branch_target_load_optimize): Don't take the
	insns stream as an argument.  Update the life_analysis calls.
	* combine.c (combine_instructions): Update delete_noop_moves
	calls.
	* flow.c (notice_stack_pointer_modification): Don't take the
	insns stream as an argument.  Work on the flow graph.
	(life_analysis): Likewise.
	(delete_noop_moves): Likewise.
	* passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
	(rest_of_handle_life): Update life_analysis call.
	(rest_of_compilation): Likewise, and also update
	branch_target_load_optimize call.
	* ra.c (reg_alloc): Update life_analysis call.
	* reg-stack.c (reg_to_stack): Likewise.  Also, don't take
	the insns stream as an argument.
	* regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
	call.
	* rtl.c (branch_target_load_optimize, reg_to_stack): Update
	prototypes.
	* value-profile.c (branch_prob): Update life_analysis call.
	* web.c (web_main): Work on the CFG, not on the insns stream.

	* config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
	* config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
	* config/sh/sh.c (sh_output_mi_thunk): Likewise.

2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c/15444
	* c-format.c (avoid_dollar_number): New function.
	(check_format_info_main): Call avoid_dollar_number when operand
	numbers might occur but has_operand_number == 0.

2004-05-14  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (all peephole2 patterns): Use predicates that validate
	register classes as appropriate.

2004-05-14  Steven Bosscher  <stevenb@suse.de>

	PR opt/14472
	* tree-tailcall.c (process_assignment): Use STRIP_NOPS to
	ignore type conversions that do not inhibit tail calling.
	(find_tail_calls): Likewise.

2004-05-14  Jeff Law  <law@redhat.com>

	* tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
	bother marking bypassed virtuals for out-of-ssa.  Instead merge
	bypassed virtuals into vars_to_rename just before into-ssa pass.

	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
	so that it picks up more opportunities to eliminate ABS expressions
	or turn them into negations.

2004-05-14  Steven Bosscher  <stevenb@suse.de>

	* passes.c (rest_of_handle_null_pointer): Remove.
	(rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
	(rest_of_compilation): Likewise.
	* rtl.h (delete_null_pointer_checks): Remove prototype.
	* gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
	Remove declarations.
	(get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
	compute_kill_rd, compute_rd, alloc_avail_expr_mem,
	free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
	expr_reaches_here_p, computing_insn, def_reaches_here_p,
	can_disregard_other_sets, handle_avail_expr, classic_gcse,
	one_classic_gcse_pass, invalidate_nonnull_info,
	delete_null_pointer_checks_1, delete_null_pointer_checks,
	expr_reached_here_p_work): Remove.
	(gcse_main): Do not perform classic GCSE when optimizing for size.
	(alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
	are never used.

2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>

	PR optimization/14466
	* tree-complex.c (make_temp): Remove.
	(gimplify_val): Replace make_temp with make_rename_temp
	and add NULL as the second argument.
	(expand_complex_div_wide): Likewise.
	* tree-dfa.c (make_rename_temp): New function.
	* tree-flow.h (make_rename_temp): Declare.
	* tree-sra.c (make_temp): Remove.
	(lookup_scalar): Replace make_temp with make_rename_temp.
	(create_scalar_copies): Likewise.
	* tree-ssa-phiopt.c (conditional_replacement): When we
	get non gimple create a temporary variable to hold the
	casted expression.

2004-05-14  Paul Brook  <paul@codesourcery.com>

	* stor-layout.c (update_alignment_for_field): Use
	targetm.align_anon_bitfield.
	* target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
	(TARGET_INITIALIZER): Use it.
	* target.h (struct gcc_target): Add align_anon_bitfield.
	* config/arm/arm.c (arm_align_anon_bitfield):  New function.
	(TARGET_ALIGN_ANON_BITFIELD): Define.
	* doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.

2004-05-13  Zack Weinberg  <zack@codesourcery.com>

	* tree.def (documentation): Remove mention of class 'b'.
	(BLOCK): Now in class 'x'.
	* c-common.c (verify_tree): Remove case 'b'.
	* c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
	* calls.c (calls_function_1): Control cannot get past the switch
	when exp is a BLOCK.
	* print-tree.c (print_node): Move code for class 'b' to the class
	'c'/'x' switch, as case BLOCK.
	* tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
	(unsafe_for_reeval, substitute_placeholder_in_expr)
	(stabilize_reference_1): Remove case 'b'.
	* tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
	of something being 'b' to tests for TREE_CODE of something being
	BLOCK.
	* tree-ssa-operands.c (get_expr_operands): Likewise.

2004-05-13  Diego Novillo  <dnovillo@redhat.com>

	* tree-gimple.c: Rename from tree-simple.c.
	* tree-gimple.h: Rename from tree-simple.h.
	* c-gimplify.c: Rename from c-simplify.c
	* Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
	langhooks.c, tree-alias-ander.c, tree-alias-common.c,
	tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
	tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
	tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
	tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
	tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
	Update.

2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>

	* doc/sourcebuild.texi: Mention libbanshee and libmudflap.

2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree-ssa.c (delete_tree_ssa): XFREE
	bitmaps allocated with BITMAP_XMALLOC.

	* tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
	idfs_cache at the end of the function.

	* tree-ssa-live.c (calculate_live_on_entry): Free saw_def
	at the end of the function.

	* tree-ssa-dce.c (perform_tree_ssa_dce): Free
	el at the end of the function.

	* tree-into-ssa.c (insert_phi_nodes_for): XFREE
	bitmaps allocated with BITMAP_XMALLOC.

	* loop-unswitch.c (unswitch_single_loop): Free bbs at
	the end.

	* final.c (shorten_branches): Free uid_shuid before
	reallocating it.

	* bb-reoder.c (connect_traces): Free cold_traces at the end.

2004-05-13  Jeff Law  <law@redhat.com>

	* tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
	variables.  Simplify slightly by using USE_OP/DEF_OP instead
	of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.

	* tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
	rather than iterating through the blocks testing each bit in
	livein to initialize the worklist.
	(mark_def_sites): Remove useless checks of KILLS for virtual
	operands.

	* tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
	new parameters for the statement and variable worklist as well
	as a bitmap of interesting SSA_NAMEs.  Walk over the statement
	worklist recording interesting variables in the variable worklist
	and bitmap.  Handle casts between integral and boolean types.
	(substitute_single_use_vars): Accept new parameters for the statement
	and variable worklist.  When a substitution is made add a new
	entry to the statement worklist.  Handle casts between integral
	and boolean types.
	(tree_ssa_forward_propagate_single_use_vars): Rework to pass
	worklists to children.  Iterate until the statement worklist
	is empty.

2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
	the end of the block.

	* tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
	with BITMAP_XMALLOC.

	* tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
	with BITMAP_XMALLOC.

	* tree-ssa-dom.c (tree_ssa_dominator_optimize):
	Free nonzero_vars at the end of the function.

	* convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
	need to generate code instead of a NOP_EXPR.

2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>

	* gcc.c (default_compilers): Fill out initializers for new Fortran
	entries.

2004-05-13  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.

2004-05-13  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_default_short_enums): New function.
	(TARGET_DEFAULT_SHORT_ENUMS): Define.

2004-05-13  Diego Novillo  <dnovillo@redhat.com>

	Merge from tree-ssa-20020619-branch.

	* Makefile.in (reload1.o-warn): Add.
	(tree-alias-ander.o-warn): Add.
	(GMPLIBS): Define.
	(GMPINC): Define.
	(BANSHEELIB): Define.
	(BANSHEEINC): Define.
	(TREE_DUMP_H): Define.
	(TREE_SIMPLE_H): Define.
	(TREE_FLOW_H): Define.
	(LIBDEPS): Add BANSHEELIB.
	(INCLUDES): Add BANSHEEINC and GMPINC.
	(C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
	c-mudflap.o and c-pretty-print.o.
	(C_OBJS): Remove c-pretty-print.o.
	(OBJS-common): Remove sibcall.o.
	Add tree-cfg.o, tree-dfa.o, tree-eh.o,
	tree-ssa.o, tree-optimize.o, tree-simple.o,
	tree-alias-type.o, gimplify.o, tree-pretty-print.o,
	tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
	tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
	tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
	tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
	tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
	tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
	tree-tailcall.o, gimple-low.o, tree-iterator.o,
	tree-phinodes.o, tree-ssanames.o, tree-sra.o,
	tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
	tree-profile.o.
	(OBJC-archive): Add tree-nomudflap.o.
	(cc1): Add dependency on @TREEBROWSER@.
	(c-decl.o): Add dependency on TREE_DUMP_H.
	(c-dump.o): Likewise.
	(c-common.o): Add dependency on tree-iterator.h
	(c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
	(gtype-desc.o): Add dependency on TREE_FLOW_H.
	(tree.o): Add dependency on tree-iterator.h,
	BASIC_BLOCK_H and TREE_FLOW_H.
	(tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
	(langhooks.o): Add dependency on TREE_SIMPLE_H.
	(tree-alias-type.o, tree-alias-ander.o,
	tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
	tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
	tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
	tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
	domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
	tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
	tree-nested.o, tree-iterator.o, tree-dfa.o,
	tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
	tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
	gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
	tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
	tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
	tree-sra.o, tree-complex.o, tree-profile.o,
	rtl-profile.o): New rules.
	(function.o): Add dependency on basic-block.h
	(expr.o): Add dependency on tree-iterator.h.
	(sibcall.o): Remove.
	(profile.o): Depend on TREE_FLOW_H instead of TREE_H.
	(cfg.o): Add dependency on TIMEVAR_H.
	(cfghooks.o): Add dependency on TREE_FLOW_H.
	(reg-stack.o): Add dependency on basic-block.h.
	(GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
	c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
	tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
	tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
	tree-alias-type.h, tree-alias-common.h,
	tree-alias-type.c, tree-alias-common.c,
	tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
	rtl-profile.c and tree-nested.c.
	(gt-tree-alias-common.h, gt-tree-mudflap.h,
	gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
	gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
	gt-tree-cfg.h, gt-tree-nested.h): New rules.
	(TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
	* basic-block.h: Include predict.h
	(struct edge_def): Add GTY marker.
	Change field 'insns' to be a union of tree and rtx.
	(EDGE_TRUE_VALUE): Define.
	(EDGE_FALSE_VALUE): Define.
	(EDGE_EXECUTABLE): Define.
	(struct bb_ann_d): Forward declare.
	(struct basic_block_def): Add GTY marker.
	Remove fields head_tree and end_tree.
	Add fields stmt_list, rbi and tree_annotations.
	(struct reorder_block_def): Define.
	(basic_block_info): Add GTY marker.
	(ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
	variables instead of macros.
	(flow_call_edges_add): Remove declaration.
	(make_eh_edge): Remove declaration.
	(brief_dump_cfg, find_edge, tree_predicted_by_p,
	rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
	predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
	cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
	alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
	(try_redirect_by_replacing_jump): Modfiy return type to
	edge instead of bool.
	* bb-reorder.c (copy_bb): Call duplicate_block
	instead of cfg_layout_duplicate_bb.
	(copy_bb_p): Call can_duplicate_block_p instead of
	cfg_layout_can_duplicate_bb_p.
	* bitmap.c (bitmap_first_set_bit): Abort if word
	wasn't found.
	(bitmap_last_set_bit): Likewise.
	* builtin-types.def (DEF_FUNCTION_TYPE_2): Add
	(DEF_FUNCTION_TYPE_3): Add.
	* builtins.c (c_strlen): Make extern.
	(builtin_save_expr): New.
	(expand_builtin_nonlocal_goto): New.
	(expand_builtin_constant_p): Remove.
	(expand_builtin_mathfn): Call builtin_save_expr instead
	of save_expr.
	(expand_builtin_mathfn_2): Likewise.
	(expand_builtin_strcmp): Likewise.
	(expand_builtin_strncmp): Likewise.
	(expand_builtin_strcat): Likewise.
	(fold_builtin_cabs): Likewise.
	(expand_builtin_alloca): Don't trigger if -fmudflap is
	given.
	(build_string_literal): Set TREE_INVARIANT on new node.
	(expand_builtin_profile_fun): New.
	(round_trampoline_addr): New.
	(expand_builtin_init_trampoline): New.
	(expand_builtin_adjust_trampoline): New.
	(expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
	<BUILT_IN_CONSTANT_P>: Return const0_rtx;
	<BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
	BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
	BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
	BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
	Handle.
	(fold_builtin_expect): New.
	(fold_builtin_isascii): Don't return non-constant results
	in GIMPLE form.
	(fold_builtin_isdigit): Likewise.
	(fold_builtin_1): New.
	(fold_builtin): Call it.
	(build_function_call_expr): Update call to build a new
	CALL_EXPR.
	(purge_builtin_constant_p): Remove.
	(simplify_builtin, simplify_builtin_memcmp,
	simplify_builtin_strcmp, simplify_builtin_strncmp,
	simplify_builtin_strpbrk, simplify_builtin_strstr,
	simplify_builtin_strchr, simplify_builtin_strrchr,
	simplify_builtin_strcat, simplify_builtin_strncat,
	simplify_builtin_strspn, simplify_builtin_strcspn,
	simplify_builtin_next_arg, simplify_builtin_va_start,
	simplify_builtin_sprintf): New.
	* builtins.def (BUILT_IN_STACK_ALLOC,
	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): Define.
	* c-common.c: Include tree-iterator.h and hashtab.h.
	(lang_statement_code_p): Declare.
	(lang_gimplify_stmt): Declare.
	(fix_string_type): Set TREE_INVARIANT for value.
	(pointer_int_sum): Rely on build to set TREE_CONSTANT.
	(c_type_hash): New.
	(c_common_get_alias_set): Handle multiple type nodes
	referring to "the same" type, currently for C90 only.
	(c_add_case_label): Use create_artificial_label.
	(finish_label_address_expr): Don't set TREE_CONSTANT on
	result.
	(c_expand_expr): Don't handle STMT_EXPR.
	(handle_alias_attribute): Marke aliased variables to be
	TREE_STATIC.
	(handle_nonnull_attribute): Initialize arg_num.
	(check_function_nonnull): Likewise.
	(c_walk_subtrees): New.
	(c_estimate_num_insns_1): Don't handle
	EXPR_WITH_FILE_LOCATION nor FILE_STMT.
	(c_decl_uninit_1): Remove.
	(c_decl_uninit): Remove.
	(c_warn_unused_result): New.
	* c-common.def (ASM_STMT): Change number of operands
	to 4.
	(FILE_STMT): Remove.
	* c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
	Remove.
	(lang_gimplify_stmt): Add.
	(expand_stmt): Remove.
	(ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
	ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
	ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
	FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
	ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
	(genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
	genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
	genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
	genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
	genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
	genrtl_compound_stmt, genrtl_asm_stmt,
	genrtl_cleanup_stmt, c_decl_uninit): Remove.
	(c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
	c_tree_chain_matters_p, c_warn_unused_result,
	c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
	Declare.
	* c-convert.c (convert): Make convert work when
	converting to compatible types across translation unit.
	* c-decl.c: Include langhooks.h, tree-mudflap.h,
	tree-simple.h, diagnostic.h and tree-dump.h
	(merge_decls): Initialize oldtype to NULL.
	(finish_decl): Use DECL_HARD_REGISTER instead of
	DECL_C_HARD_REGISTER.
	(check_bitfield_type_and_width): Check for null
	lang_type_specific when check the precision of an enum.
	(grokdeclarator): Immediately layout an ARRAY_TYPE used
	in a pointer-to-array declarator.
	(finish_struct): Clear allocated struct lang_type.
	(finish_enum): Set enum_min and enum_max.  Set
	TYPE_MIN/MAX_VALUE to the limits of the compatible type,
	not to the enumerators.
	(set_decl_nonlocal): New.
	(store_parm_decls): Use it via walk_tree.
	(c_finalize): New.
	(finish_function): When !targetm.have_ctors_dtors,
	record static constructors and destructors here...
	(c_expand_body_1): ... not here.
	(c_expand_decl): Rename from c_expand_decl_stmt.
	Handle all C-specific expansion semantics.
	* c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
	STMT_LINENO.
	* c-format.c (handle_format_arg_attribute): Initialize
	format_num.
	* c-lang.c: Include tree-inline.h
	(LANG_HOOKS_EXPAND_DECL,
	LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
	LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
	LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
	LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
	(LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
	LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
	(c_types_compatible_p): New.
	* c-mudflap.c: New file.
	* c-objc-common.c: Include tree-mudflap.h
	(start_cdtor, finish_cdtor): Collapse
	together into
	(build_cdtor): ...here.  Update to construct a complete tree
	for the function.  No need to call push_scope, pop_scope, or
	clear_last_expr, or set current_function_cannot_inline.
	(c_missing_noreturn_ok_p): Change prototype to return
	bool.
	(c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
	* c-opts.c (c_common_handle_option): Move handling of -fdump- to
	opts.c.
	(c_common_post_options): Don't ever use rtl inlining.
	* c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
	* c-pragma.c (handle_pragma_redefine_extname): Define
	always.
	(init_pragma): Activate #pragma redefine_extname for mudflap.
	* c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
	(pp_c_initializer): Accept any type CONSTRUCTOR.
	(pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
	COMPLEX_TYPE.
	(decl_name_str): New local function.
	(pp_c_direct_declarator): Call it.
	(pp_c_primary_expression): Call it.
	(pp_c_id_expression): Call it.
	(pp_c_statement): Call it.
	(print_c_tree): Create new pp object.
	* c-pretty-print.h (pp_c_tree_decl_identifier,
	print_c_tree): Declare.
	* c-semantics.c: Include langhooks.h
	(lang_expand_stmt, lang_expand_decl_stmt,
	find_reachable_label_1, find_reachable_label,
	expand_unreachable_if_stmt, expand_unreachable_stmt,
	genrtl_do_stmt_1): Remove.
	(begin_stmt_tree): Don't check for changed filename.
	Call annotate_with_locus.
	(finish_stmt_tree): Don't set line for end of function.
	(build_stmt): Don't check type nodes for
	side effects.
	(build_stmt): Set TREE_SIDE_EFFECTS.
	Set EXPR_LOCUS instead of STMT_LINENO.
	(lang_expand_stmt, lang_expand_decl_stmt,
	expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
	genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
	genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
	genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
	genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
	genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
	genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
	find_reachable_label_1, expand_unreachable_if_stmt,
	expand_unreachable_stmt): Remove.
	(prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
	* c-simplify.c: New file.
	* c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
	(struct lang_type): Add fields enum_min and enum_max.
	(c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
	(c_expand_decl, c_missing_noreturn_ok_p,
	c_types_compatible_p): Declare.
	* c-typeck.c (tagged_types_tu_compatible_p): Allow for
	compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
	(default_function_array_conversion): Rely on build to
	set TREE_CONSTANT.
	(parser_build_binary_op, pointer_diff): Likewise.
	(build_unary_op, build_binary_op): Likewise.
	(build_array_ref):
	(build_external_ref): Set TREE_INVARIANT.
	(build_c_cast, pop_init_level): Likewise.
	(process_init_element): Use ASM_VOLATILE_P.
	(build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
	(c_finish_case): Call c_do_switch_warnings.
	* c.opt (fdump-): Remove.
	* calls.c (try_to_integrate): Remove.
	(prepare_call_address): Replace fndecl arg with a
	precomputed static chain value.
	(emit_call_1): New argument for full call expr.
	(flags_from_decl_or_type): Call special_function_p.
	(initialize_argument_information): Add argument
	may_tailcall.
	(purge_reg_equiv_notes): New.
	(expand_call): Do not try to expand calls inline.
	(fixup_tail_calls): New.
	* cfg.c: Include timevar.h and ggc.h.
	(bb_pool, edge_pool): Remove.
	(ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
	(entry_exit_blocks): Remove.
	(rbi_pool): Declare.
	(init_flow): Do not create pools.
	Allocate entry/exit block.
	(free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
	(alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
	(unlink_block): Clear b->prev_bb and b->next_bb.
	(compact_blocks): Clear all slots of BASIC_BLOCK array.
	(dump_flow_info): Work on trees too.
	(dump_cfg_bb_info): New.
	(brief_dump_cfg): New.
	* cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
	(find_edge): New.
	* cfgbuild.c (rtl_make_eh_edge): Rename from
	make_eh_edge.  Update all users.
	(find_basic_blocks): Don't call VARRAY_FREE on
	basic_block_info.
	* cfgcleanup.c (outgoing_edges_match): Initialize newpos1
	and newpos2.
	(delete_unreachable_blocks): Return changed status.
	(merge_seq_blocks): New.
	* cfghooks.c: Include tree-flow.h
	(tree_register_cfg_hooks, ir_type): New.
	(redirect_edge_and_branch): Change return type to edge.
	(predict_edge, predicted_by_p, can_duplicate_block_p,
	duplicate_block, block_ends_with_call_p,
	block_ends_with_condjump_p, flow_call_edges_add): New.
	* cfghooks.h (redirect_edge_and_branch): Change return
	type to edge.
	(predict_edge, predicted_by_p, can_duplicate_block_p,
	duplicate_block, block_ends_with_call_p,
	block_ends_with_condjump_p, flow_call_edges_add): Declare.
	(redirect_edge_and_branch): Change return type to edge.
	(struct cfg_hooks): Add fields block_ends_with_call_p,
	block_ends_with_condjump_p, flow_call_edges_add,
	predict_edge, predicted_by_p, can_duplicate_block_p and
	duplicate_block.
	(tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
	* cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
	(fixup_reorder_chain): Use initialize_bb_rbi.
	(cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
	(cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
	(can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
	(insn_locators_initialize): Use new info about blocks.
	* cfglayout.h (typedef struct reorder_block_def): Moved to
	basic_block.h.
	(cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
	removed.
	* cfgloop.c: Include tree.h and tree-flow.h.
	* cfgloop.h (create_loop_notes): Declare.
	* cfgloopmanip.c (create_loop_notes): New.
	* cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
	(rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
	and duplicate_block fields.
	(create_basic_block_structure): Don't look at
	RTX_INTEGRATED_P.
	(rtl_block_ends_with_call_p): New.
	(rtl_block_ends_with_condjump_p): New.
	(need_fake_edge_p): Moved from cfganal.c.
	(rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
	(rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
	rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
	(cfg_layout_rtl_cfg_hooks): Ditto.
	* cgraph.c (cgraph_mark_reachable_node): Don't force nested
	functions to be reachable.
	* cgraphunit.c (decide_is_function_needed):
	* cgraphunit.c (decide_is_function_needed): Nested functions of extern
	inline functions don't need to be output.
	(cgraph_assemble_pending_functions): Don't do anything
	special for nested functions.
	(cgraph_mark_functions_to_output): Likewise.
	(cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
	(cgraph_analyze_function): Use estimate_num_insns.
	(cgraph_mark_functions_to_output): Likewise.
	(cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
	(cgraph_expand_function): Allow functions to not be
	emitted.
	(cgraph_remove_unreachable_nodes):
	(cgraph_recursive_inlining_p): Simplify.
	(lookup_recursive_calls,
	cgraph_decide_recursive_inlining): New.
	(cgraph_decide_inlining_*): Update calls of
	cgraph_mark_inline.
	* combine.c (get_pos_from_mask): Always set *plen.
	* common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
	ftree-based-profiling, ftree-ccp, ftree-ch,
	ftree-combine-temps, ftree-copyrename, ftree-dce,
	ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
	ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
	ftree-lrs): Add.
	* config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
	Undefine.
	* configure.ac: Add --enable-tree-browser option.
	Add --with-libbanshee option.
	Add GMPLIBS and GMPINC.
	* configure: Regenerate.
	* coverage.c (tree_ctr_tables): New.
	(coverage_counter_alloc): Use it.
	(build_ctr_info_value): Ditto.
	(coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
	(tree_coverage_counter_ref): New.
	* coverage.h (coverage_counter_ref): Remove declaration.
	(rtl_coverage_counter_ref): Declare.
	(tree_coverage_counter_ref): Declare.
	* cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
	(eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
	* cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
	(struct cse_basic_block_data): Rename enum values to not
	conflict with profile.h; update all uses.
	* dbxout.c (dbxout_symbol_location): Don't mention integrate.c
	in comments.
	* defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
	* diagnostic.h (debug_output_buffer, dump_generic_node,
	print_generic_stmt, print_generic_stmt_indented,
	print_generic_expr, print_generic_decl,
	debug_generic_expr, debug_generic_stmt, debug_c_tree):
	Declare.
	* dominance.c: Cache immediate dominators.
	* domwalk.c: New file.
	* domwalk.h: New file.
	* dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
	(gen_subprogram_die): Generate a DIE for a named
	return value.
	(loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
	(add_location_or_const_value_attribute): Likewise.
	(add_bound_info): Likewise.
	(gen_decl_die): Likewise.
	* emit-rtl.c (maybe_set_first_label_num): New.
	(copy_most_rtx): Don't copy the integrated flag.
	Copy the new return_val flag.
	* et-forest.c (MAX_NODES): Define.
	(record_path_before_1): Abort if len is greater than
	MAX_NODES.
	* except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
	gen_eh_region_catch, gen_eh_region_allowed,
	gen_eh_region_must_not_throw, get_eh_region_number,
	get_eh_region_may_contain_throw, get_eh_region_tree_label,
	set_eh_region_tree_label, expand_resx_expr): New.
	(expand_eh_region_start, expand_start_catch): Use them.
	(expand_end_catch): Tidy.
	(note_eh_region_may_contain_throw): Take region argument.
	(note_current_region_may_contain_throw): New.
	(get_exception_filter): Export.
	(collect_eh_region_array): Export.
	(remove_unreachable_regions): Check ERT_TRY based on reachability
	of catches, not reachability of continue_label.  Never remove
	ERT_MUST_NOT_THROW regions.
	(collect_rtl_labels_from_trees): New.
	(convert_from_eh_region_ranges): Use it.
	(connect_post_landing_pads): Handle dying cleanups.
	(struct reachable_info): Add callback data.
	(add_reachable_handler): Invoke the callback.
	(foreach_reachable_handler): New.
	(reachable_handlers): Use it.
	(arh_to_landing_pad, arh_to_label): New.
	(can_throw_internal_1): Split out from can_throw_internal.
	(can_throw_external_1): Similarly.
	* except.h: Update.
	* explow.c (emit_stack_save): Remove savearea mode check.
	(update_nonlocal_goto_save_area): New.
	(allocate_dynamic_stack_space): Use it.
	(probe_stack_range): Never emit loop notes.
	* expmed.c (extract_fixed_bit_field): Always propagate the
	target for the shift if it is a REG.
	* expr.c: Include tree-iterator.h
	(is_zeros_p): Remove.
	(categorize_ctor_elements_1, categorize_ctor_elements): New.
	(count_type_elements): New.
	(mostly_zeros_p): Use them.
	(expr_wfl_stack): Remove.
	(convert_move): Do nothing if to and from are the same.
	(emit_block_move_via_loop): Don't emit LOOP notes.
	(emit_move_insn): Don't handle CONSTANT_P_RTX.
	(emit_move_insn_1): Don't generate inline warnings.
	(expand_vars, expand_var): Split from ...
	(expand_expr_1): ... here.
	(expand_expr_real, expand_expr_real_1):  Use new macros
	EXPR_LOCATION and EXPR_HAS_LOCATION.
	* expr.h (simplify_builtin_fputs,
	simplify_builtin_strcpy, simplify_builtin_strncpy,
	expand_var, fixup_tail_calls,
	update_nonlocal_goto_save_area): Declare.
	(lookup_static_chain, expand_inline_function,
	mark_seen_cases): Remove.
	(prepare_call_address): Change type of 2nd argument to
	rtx.
	* final.c (profile_function): Update static chain test.
	(final): Don't look at RTX_INTEGRATED_P.
	* flags.h (flag_mudflap, flag_mudflap_threads,
	flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
	flag_tree_dce, flag_tree_combine_temps,
	flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
	flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
	flag_tree_points_to): Declare.
	(enum pta_type): Declare.
	* flow.c (lang_missing_noreturn_ok_p): Remove.
	(check_function_return_warnings): Remove.
	(update_life_info): Update comments.
	(free_basic_block_vars): Don't call VARRAY_FREE for
	basic_block_info.
	(regno_uninitialized): Remove.
	* fold-const.c (int_const_binop): Make extern.
	(non_lvalue): Rely on build to set TREE_CONSTANT.
	(operand_equal_p): Replace only_const argument with
	flags.  Allow pure functions if OEP_PURE_SAME.
	(fold): Use OEP_ONLY_CONST.
	(invert_truthvalue) <NOP_EXPR> Break if argument is of
	boolean type.
	(fold_relational_hi_lo,
	nondestructive_fold_binary_to_constant,
	nondestructive_fold_unary_to_constant,
	fold_read_from_constant_string): New.
	* function.c (struct function): Remove calls_constant_p.
	(current_function_calls_constant_p): Remove.
	(inline_function_decl): Remove.
	(put_var_into_stack): Don't use it.
	(fix_lexical_addr): Likewise.
	(inline_function_decl): Remove extern declaration.
	(TRAMPOLINE_ALIGNMENT): Move to defaults.h.
	(trampolines_created): Move to varasm.c.
	(free_after_compilation): Update for removed fields.
	(allocate_struct_function): Likewise.
	(delete_handlers, lookup_static_chain): Remove.
	(fix_lexical_addr): Don't consider non-local variable refs.
	(trampoline_address): Remove.
	(round_trampoline_addr): Move to builtins.c.
	(adjust_trampoline_addr): Remove.
	(expand_function_start): Update for changes to static chain
	and nonlocal goto handling.
	(initial_trampoline): Move to varasm.c.
	(expand_function_end): Don't build trampolines or kill
	unreferenced nonlocal goto labels.
	(free_after_compilation): Don't set it.
	(expand_function_end): Likewise.
	(setjmp_vars_warning): Rename from
	uninitialized_vars_warning, remove uninitialized vars warning.
	(uninitialized_vars_warning): Remove old comment
	and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
	and do not call the langhook.
	(expand_function_start, expand_function_end): Don't do
	function instrumentation here.
	(clear_block_marks): Rename from reorder_blocks_0, export.
	(blocks_nreverse): Export.
	(uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
	of rtl.
	(reset_block_changes, record_block_change, finalize_block_changes,
	check_block_change, free_block_changes): New functions.
	(assign_parms): Setting of current_function_stdarg
	moved ...
	(allocate_struct_function): ... here.
	* function.h (struct function): Remove x_nonlocal_labels,
	x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
	x_context_display, x_trampoline_list, needs_context.
	Add static_chain_decl, nonlocal_goto_save_area.
	(struct function): Remove x_clobber_return_insn.
	Add tail_call_emit field, last_label_uid,
	unexpanded_var_list, dont_emit_block_notes,
	ib_boundaries_block, function_end_locus and saved_tree/saved_args.
	(clear_block_marks): Declare.
	* gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
	(mfwrap_spec, mflib_spec): Declare.
	(cpp_unique_options, cc1_options): Ditto.
	(default_compilers): Add .F and .f90.
	(static_specs): Add mfwrap and mflib.
	* gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
	CONSTANT_RTX_P.
	(reg_used_on_edge, reg_killed_on_edge, bypass_block):
	Update to match insns field in struct edge_def.
	* gdbinit.in (pgs, pge): Define.
	* genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
	instead of the integrated flag.
	* gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
	* gengtype-yacc.y (bitfieldlen): Add empty action.
	(struct_fields): Accept unnamed bitfields.
	(bitfieldlen): Split from ...
	(bitfieldopt): ... here.
	* gengtype.c (ifiles): Add tree-alias-type.h and
	tree-flow.h.
	* genrecog.c (validate_pattern): Do not handle
	CONSTANT_P_RTX.
	* gimple-low.c: New file.
	* gimplify.c: New file.
	* haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
	(restore_line_notes): Do not set RTX_INTEGRATED_P.
	* ifcvt.c (dead_or_predicable): Initialize local variable
	'earliest'.
	* input.h (expr_wfl_stack): Remove.
	* integrate.c (INTEGRATE_THRESHOLD): Remove.
	(setup_initial_hard_reg_value_integration): Likewise.
	(initialize_for_inline): Likewise.
	(note_modified_parmregs): Likewise.
	(integrate_parm_decls): Likewise.
	(process_reg_param): Likewise.
	(save_parm_insns): Likewise.
	(copy_insn_list): Likewise.
	(copy_insn_notes): Likewise.
	(compare_blocks): Likewise.
	(find_block): Likewise.
	(inlining): Likewise.
	(function_cannot_inline_p): Likewise.
	(parmdecl_map): Likewise.
	(in_nonparam_insns): Likewise.
	(save_for_inline): Likewise.
	(FIXED_BASE_PLUS): Likewise.
	(expand_inline_function): Likewise.
	(copy_rtx_and_substitute): Don't look at map->integrating,
	map->inline_target, and inlining, since we are never copying
	for integrating.
	Don't abort on RTX_INTEGRATED_P.
	(old_fun): Remove.
	(output_inline_function): Remove.
	* integrate.h (struct inline_map): Remove fields integrating,
	block_map, leaf_reg_map, inline_target, and local_return_label.
	* jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
	copy_loop_headers, never_reached_warning): Removed.
	(any_uncondjump_p): Reject nonlocal goto.
	* langhooks-def.h (lhd_types_compatible_p,
	lhd_expand_decl, lhd_gimplify_expr): Declare.
	(LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
	LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
	LANG_HOOKS_FUNCTION_LEAVE_NESTED,
	LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
	LANG_HOOKS_GIMPLIFY_EXPR,
	LANG_HOOKS_GIMPLE_BEFORE_INLINING,
	LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
	LANG_HOOKS_GIMPLIFY_EXPR,
	LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
	(LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
	LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
	LANG_HOOKS_FUNCTION_LEAVE_NESTED,
	LANG_HOOKS_RTL_EXPAND_INITIALIZER,
	LANG_HOOKS_DECL_UNINIT,
	LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
	* langhooks.c: Include tree-simple.h.
	(lhd_expand_decl): New.
	(lhd_types_compatible_p): New.
	(lhd_decl_uninit): Remove.
	(lhd_gimplify_expr): New.
	* langhooks.h (struct lang_hooks_for_rtl_expansion):
	Remove.
	(struct lang_hooks_for_functions): Add field
	missing_noreturn_ok_p.
	(struct lang_hooks): Add field expand_decl,
	types_compatible_p, gimplify_expr and
	gimple_before_inlining.
	Remove fields decl_uninit and rtl_expand
	* opts.c (decode_options): Set flag_tree_ccp,
	flag_tree_dce, flag_tree_dom, flag_tree_dse,
	flag_tree_pre, flag_tree_ter,
	flag_tree_live_range_split, flag_tree_sra,
	flag_tree_copyrename and flag_tree_ch at -O1 and higher.
	(common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
	OPT_fmudflapth, OPT_fmudflapir,
	OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
	OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
	OPT_ftree_dominator_opts, OPT_ftree_copyrename,
	OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
	OPT_ftree_points_to_ and OPT_ftree_pre.
	* output.h (regno_uninitialized, find_basic_blocks,
	cleanup_cfg, delete_unreachable_blocks,
	check_function_return_warnings): Remove.
	* params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
	PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
	PARAM_MAX_INLINE_RECURSIVE_DEPTH,
	PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
	PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
	* params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
	Define.
	* passes.c (rest_of_decl_compilation):
	(rest_of_handle_sibling_calls): Remove.
	(rest_of_handle_inlining): Remove.
	(rest_of_handle_gcse): Do not run
	purge_builtin_constant_p.
	(rest_of_compilation): Update.
	Do not call copy_loop_headers.
	Do rtl-based profiling only when
	!flag_tree_based_profiling.  Register rtl-based profiling
	hooks.
	* predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
	(predicted_by_p): Rename to ...
	(rtl_predicted_by_p): .. this one; make global
	(tree_predicted_by_p): New.
	(dump_prediction): Add FILE argument.
	(predict_edge): Rename to ...
	(rtl_predict_edge): .. this one.
	(tree_predict_edge): New.
	(combine_predictions_for_insn): Update calls of predict_edge.
	(predict_loops): Break out from ...
	(estimate_probability): ... here; update comments; move updating
	of unknown probabilities from ...
	(estimate_bb_frequencies): ... here.
	(combine_predictions_for_bb): New.
	(tree_predict_by_opcode): New.
	(tree_estimate_probability): New.
	* predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
	PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
	* predict.h: Add include guard.
	(predict_edge, predict_edge_def): Move prototypes to basic_block.h
	* pretty-print.c (pp_write_text_to_stream): Make extern.
	* pretty-print.h (pp_write_text_to_stream): Declare.
	* print-rtl.c (print_rtx): Don't print the integrated flag.
	Print the return_val flag.
	* print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
	of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
	Remove support for EXPR_WITH_FILE_LOCATION nodes.
	(print_node): Print TREE_INVARIANT and TREE_VISITED.
	* profile.c: Include cfghooks.h, tree-flow.h.
	(profile_hooks): New.
	(profile_dump_file): New.
	(instrument_edges): Use hooks instead of RTL-specific code.
	(instrument_values): Ditto.
	(get_exec_counts): Ditto.
	(compute_branch_probabilities): Ditto.
	(compute_value_histograms): Ditto.
	(branch_prob): Ditto.
	(find_spanning_tree): Ditto.
	(end_branch_prob): Ditto.
	(gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
	(gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
	(gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
	(gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
	(tree_register_profile_hooks): New.
	(rtl_register_profile_hooks): New.
	* ra-rewrite.c (rewrite_program): Clear variable info.
	* recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
	* regs.h: Add include guards.
	* reload.c (decompose): Clear val using memset.
	* rtl.def (CONSTANT_P_RTX): Remove.
	* rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
	(copy_loop_headers): Remove.
	(struct rtx_def): Replace the integrated flag with the
	return_val flag.
	(maybe_set_first_label_num): Declare.
	(init_branch_prob): Move declaration to value-prof.h.
	(end_branch_prob): Ditto.
	(branch_prob): Ditto.
	(never_reached_warning): Don't declare it.
	* rtlanal.c (get_related_value): Initialize get_jump_table_offset
	(hoist_insn_to_edge): Update to match field insns in
	struct edge_def.
	* sbitmap.c (sbitmap_realloc): New.
	* sbitmap.h (sbitmap_realloc): Declare.
	* sibcall.c: Remove file.
	* simplify-rtx.c (simplify_rtx): Do not handle
	CONSTANT_P_RTX.
	* stmt.c (parse_output_constraint): Don't warn for read-write
	memory operand.
	(tail_recursion_args): Use types_compatible_p langhook.
	(force_label_rtx): Don't look at inline_function_decl.
	(label_rtx): Set LABEL_PRESERVE_P appropriately.
	(expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
	(declare_nonlocal_label): Remove.
	(expand_goto): Don't handle nonlocal gotos.
	(expand_nl_handler_label): Remove.
	(expand_nl_goto_receivers): Remove.
	(expand_end_bindings): Don't expand_nl_goto_receivers.  Use
	update_nonlocal_goto_save_area.
	(expand_expr_stmt_value): Check TREE_NO_WARNING.
	(warn_if_unused_value): Likewise.
	(expand_start_loop, expand_loop_continue_here,
	expand_end_loop): Don't create loop notes.
	(all_cases_count, BITARRAY_TEST, BITARRAY_SET,
	mark_seen_cases, check_for_full_enumeration_handling): Remove.
	(expand_end_case_type): Don't do warn_switch handling.
	(pushcase, pushcase_range) Update add_case_node calls.
	(add_case_node): Add dont_expand_label argument.
	(same_case_target_p): Don't search rtl.
	(expand_start_bindings_and_block, expand_end_bindings):
	Don't emit block notes when dont_emit_block_notes.
	(using_eh_for_cleanups_p): Export.
	(expand_return): Allow any typed rhs.
	(expand_stack_alloc): New.
	(expand_stack_save, expand_stack_restore): New.
	(containing_blocks_have_cleanups_or_stack_level): New
	function.
	(asm_op_is_mem_input): New fn.
	(expand_asm_expr): New fn.
	(warn_if_unused_value): Check operand 0 of SAVE_EXPR
	nodes.
	* stor-layout.c (layout_type): Just return if type is
	error_mark_node.
	(update_alignment_for_field): Export.
	(variable_size): We don't care about global_bindings_p if
	the frontend doesn't want a list of the expressions.
	* system.h: Poison INTEGRATE_THRESHOLD.
	* timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
	TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
	TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
	TV_TREE_SSA_OTHER, TV_TREE_OPS,
	TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
	TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
	TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
	TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
	TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
	TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
	TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
	TV_CONTROL_DEPENDENCES): Define.
	* toplev.c: Include tree-alias-common.h
	(current_file_decl, flag_mudflap, flag_mudflap_threads,
	flag_mudflap_ignore_reads, flag_tree_based_profiling,
	flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
	flag_tree_dce, flag_tree_ch, flag_tree_sra,
	flag_tree_combine_temps, flag_tree_ter,
	flag_tree_live_range_split, flag_tree_dom,
	flag_tree_copyrename, flag_tree_dse): Declare.
	(f_options): Add tree-based-profiling, tree-gvn,
	tree-pre, tree-ccp, tree-dce,
	tree-dominator-opts, tree-copyrename, tree-dse,
	tree-combine-temps, tree-ter, tree-lrs and tree-ch.
	(wrapup_global_declarations): Don't output nested inlined functions.
	(general_init): Call init_tree_optimization_passes.
	(process_options): Sorry for -ftree-based-profiling plus
	-ftest-coverage or -fprofile-values.
	* toplev.h (init_tree_optimization_passes,
	flag_tree_based_profiling): Declare.
	* tracer.c (tail_duplicate): Use cfghooks for bb duplication.
	* tree-alias-ander.c: New file.
	* tree-alias-ander.h: New file.
	* tree-alias-common.c: New file.
	* tree-alias-common.h: New file.
	* tree-alias-type.c: New file.
	* tree-alias-type.h: New file.
	* tree-browser.c: New file.
	* tree-browser.def: New file.
	* tree-cfg.c: New file.
	* tree-complex.c: New file.
	* tree-dfa.c: New file.
	* tree-dump.c (dump_enable_all): New.
	(dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
	(dump_node): Remove const from field suffix and swtch.
	(dump_files): Add null entry, .generic, .nested, .vcg,
	.xml and a match-all entry.
	(extra_dump_files, extra_dump_files_in_use,
	extra_dump_files_alloced): Declare
	(dump_option_value_info): Add raw, details, stats,
	blocks, vops, lineno, uid and all.
	(dump_register): New.
	(get_dump_file_info): New.
	(dump_begin): Call it.
	Do nothing for TDI_none.
	(dump_begin): Include phase number in dump filename.
	(dump_enable_all): New.
	(dump_switch_p_1): Split out from dump_switch_p.
	(dump_switch_p): Handle extra_dump_files.
	Start our scan at TDI_none + 1.
	If -fdump-tree-all was given, call dump_enable_all.
	* tree-dump.h: Include splay-tree.h.
	(dump_function, dump_function_to_file, dump_register):
	Declare.
	* tree-eh.c: New file.
	* tree-flow-inline.h: New file.
	* tree-flow.h: New file.
	* tree-inline.c: Re-write to handle inlining on GIMPLE.
	* tree-inline.h (walk_tree,
	walk_tree_without_duplicates): Move to tree.h.
	(estimate_num_insns): Declare.
	* tree-into-ssa.c: New file.
	* tree-iterator.c: New file.
	* tree-iterator.h: New file.
	* tree-mudflap.c: New file.
	* tree-mudflap.h: New file.
	* tree-nested.c: New file.
	* tree-nomudflap.c: New file.
	* tree-nrv.c: New file.
	* tree-optimize.c (dump_flags, vars_to_rename,
	in_gimple_form, all_passes, pass_gimple,
	pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
	(execute_gimple, execute_rebuild_bind,
	gate_all_optimizations, execute_del_cfg,
	register_one_dump_file, register_dump_files, dup_pass_1,
	init_tree_optimization_passes, execute_todo,
	execute_one_pass, execute_pass_list): New.
	(clear_decl_rtl): Remove.
	(tree_rest_of_compilation): Update to use tree
	optimizers.
	* tree-outof-ssa.c: New file.
	* tree-pass.h: New file.
	* tree-phinodes.c: New file.
	* tree-pretty-print.c: New file.
	* tree-profile.c: New file.
	* tree-simple.c: New file.
	* tree-simple.h: New file.
	* tree-sra.c: New file.
	* tree-ssa-alias.c: New file.
	* tree-ssa-ccp.c: New file.
	* tree-ssa-copy.c: New file.
	* tree-ssa-copyrename.c: New file.
	* tree-ssa-dce.c: New file.
	* tree-ssa-dom.c: New file.
	* tree-ssa-dse.c: New file.
	* tree-ssa-forwprop.c: New file.
	* tree-ssa-live.c: New file.
	* tree-ssa-live.h: New file.
	* tree-ssa-loop.c: New file.
	* tree-ssa-operands.c: New file.
	* tree-ssa-operands.h: New file.
	* tree-ssa-phiopt.c: New file.
	* tree-ssa-pre.c: New file.
	* tree-ssa.c: New file.
	* tree-ssanames.c: New file.
	* tree-tailcall.c: New file.
	* tree.c: Include tree-iterator.h, basic-block.h and
	tree-flow.h.
	(tree_node_kind): Add phi_nodes and ssa names.
	(tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
	EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
	(make_node_stat): Handle PHI_NODE and SSA_NAME.
	<'c'> Set TREE_INVARIANT.
	(copy_node_stat): Abort if trying to copy a
	STATEMENT_LIST.
	Clear TREE_VISITED.
	Clear annotation field.
	(build_constructor): Copy TREE_INVARIANT from vals.
	Don't clear TREE_CONSTANT.
	(expr_first, expr_last, expr_length): Remove.
	(staticp): Pass unknown component references to the language.
	(save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
	(skip_simple_arithmetic): Likewise.
	(stabilize_reference_1): Likewise.
	(tree_node_structure): Handle PHI_NODE, EPHI_NODE,
	EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
	STATEMENT_LIST.
	(lhd_unsave_expr_now): Remove.
	(unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
	(recompute_tree_invarant_for_addr_expr): New.
	(build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
	Call recompute_tree_invarant_for_addr_expr.
	Set TREE_INVARIANT accordingly.
	(build2_stat): Don't handle CALL_EXPR.
	(build3_stat): Don't call build2_stat for CALL_EXPRs.
	(build_expr_wfl): Remove.
	(annotate_with_file_line, annotate_with_locus): New.
	(simple_cst_equal): Call simple_cst_list_equal to compare
	CONSTRUCTOR_ELTS pointers.
	(iterative_hash_expr): Don't hash types associated
	with conversions.  Instead hash on the signedness of the
	toplevel object and the operand of the conversion.
	(dump_tree_statistics): Call ssanames_print_statistics
	and phinodes_print_statistics.
	(ephi_node_elt_check_failed, phi_node_elt_check_failed,
	add_var_to_bind_expr, build_empty_stmt, is_essa_node,
	needs_to_live_in_memory): New.
	(initializer_zerop): Handle VECTOR_CST.  Don't check
	AGGREGATE_TYPE_P for CONSTRUCTOR.
	* tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
	SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
	PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
	(GOTO_SUBROUTINE_EXPR): Change type to 's'.
	(CALL_EXPR): Add another operand.
	(EXPR_WITH_FILE_LOCATION): Remove.
	(SWITCH_EXPR): Add another operand.
	* tree.h: Update various comments.
	(union tree_ann_d): Forward declare.
	(struct tree_common): Add fields nowarning_flag,
	invariant_flag and visited.
	(EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
	PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
	EPHI_NODE_ELT_CHECK, TREE_BLOCK,
	STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
	TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
	IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
	EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
	EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
	CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
	BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
	ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
	ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
	COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
	CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
	EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
	SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
	SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
	PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
	PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
	EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
	EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
	EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
	EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
	EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
	EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
	EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
	EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
	EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
	EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
	TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
	DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
	DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
	STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
	TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
	TDF_UID,): Define.
	(TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
	EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
	EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
	EXPR_WFL_SET_LINECOL): Remove.
	(phi_node_elt_check_failed, ephi_node_elt_check_failed,
	make_phi_node, init_phinodes, fini_phinodes,
	release_phi_node, phinodes_print_statistics,
	init_ssanames, fini_ssanames, make_ssa_name,
	release_ssa_name, ssanames_print_statistics,
	annotate_with_file_line, build_empty_stmt,
	annotate_with_locus, expr_only, categorize_ctor_elements,
	count_type_elements, add_var_to_bind_expr, is_essa_node,
	expand_stack_alloc, expand_stack_save,
	expand_stack_restore, add_case_node, operand_equal_p,
	nondestructive_fold_unary_to_constant,
	nondestructive_fold_binary_to_constant,
	fold_read_from_constant_string, int_const_binop,
	strip_float_extensions, simplify_builtin, c_strlen,
	recompute_tree_invarant_for_addr_expr,
	needs_to_live_in_memory, make_vector,
	setjmp_vars_warning, update_alignment_for_field,
	expand_asm_expr, asm_op_is_mem_input,
	containing_blocks_have_cleanups_or_stack_level,
	create_artificial_label, gimplify_function_tree,
	get_name, unshare_expr, walk_tree,
	walk_tree_without_duplicates, in_gimple_form): Declare.
	(struct tree_exp): Add fields locus and block.
	(struct tree_ssa_name, struct edge_def, struct
	tree_phi_node, struct tree_eref_common, struct
	tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
	union alias_var_def, struct tree_statement_list_node,
	struct tree_statement_list, enum operand_equal_flag): Declare.
	(enum tree_node_structure_enum): Add TS_SSA_NAME,
	TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
	TS_STATEMENT_LIST.
	(union tree_node): Add fields ssa_name, phi, eref, ephi,
	euse and stmt_list.
	(function_cannot_inline_p, uninitialized_vars_warning,
	save_for_inline, output_inline_function, all_cases_count,
	check_for_full_enumeration_handling,
	declare_nonlocal_label): Remove.
	(enum tree_dump_index): Add TDI_none, TDI_tu,
	TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
	* unroll.c (unroll_loop): Don't clear map->inline_target.
	* unwind-sjlj.c (uw_install_context): Make a proper static inline
	function.
	* value-prof.c (value_prof_hooks): New.
	(find_values_to_profile): Rename to rtl_find_values_to_profile.
	Move rtl-specific bits in from branch_prob.
	(value_profile_transformations): Rename to
	rtl_value_profile_transformations.
	(struct value_prof_hooks): New.
	(rtl_value_prof_hooks): New.
	(rtl_register_value_prof_hooks): New.
	(tree_find_values_to_profile): New stub.
	(tree_value_profile_transformations): New stub.
	(tree_value_prof_hooks): New stub.
	(tree_register_value_prof_hooks): New stub.
	(find_values_to_profile): New.
	(value_profile_transformations): New.
	* value-prof.h: Add multiple inclusion guard.
	(struct histogram_value): Change rtx fields to void *.
	(rtl_register_value_prof_hooks): New declaration.
	(tree_register_value_prof_hooks): New declaration.
	(find_values_to_profile): New declaration.
	(free_profiled_values): New declaration.
	(value_profile_transformations): New declaration.
	(struct profile_hooks): New declaration.
	(init_branch_prob): Declaration moved from rtl.h.
	(branch_prob): Declaration moved from rtl.h.
	(end_branch_prob): Declaration mooved from rtl.h.
	(tree_register_profile_hooks): New declaration.
	(rtl_register_profile_hooks): New declaration.
	(tree_profile_hooks): New declaration.
	(rtl_profile_hooks): New declaration.
	* varasm.c: Include tree-mudflap.h.
	(TRAMPOLINE_ALIGNMENT): Remove.
	(make_decl_rtl): Call mudflap_enqueue_decl.
	(assemble_static_space):
	(assemble_trampoline_template): Set and return
	TRAMPOLINE_ALIGNMENT.
	* varray.c (element): Add GENERIC_PTR_NOGC entry.
	Add entry for 'tree *'.
	Add entry for struct edge_def *.
	(varray_copy): New.
	* varray.h (enum varray_data_enum): Add
	VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
	VARRAY_DATA_TREE_PTR.
	(union varray_data_tag): Corresponding changes.
	(VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
	VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
	VARRAY_EDGE, VARRAY_TREE_PTR,
	VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
	VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
	VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.

	* config/*/*: Various updates for changed macros, tree
	codes, etc.  Check ChangeLog.tree-ssa.

	* doc/cfg.texi: New file.
	* doc/tree-ssa.texi: New file.
	* doc/c-tree.texi: Document new codes.
	* doc/gccint.texi: Include new files.
	* doc/install.texi: Document new features.
	* doc/invoke.texi: Document new switches.
	* doc/passes.texi: Document new passes.
	* doc/rtl.texi: Update changed RTL codes.
	* doc/sourcebuild.texi: Update build instructions.
	* doc/standards.texi: Document Fortran changes.
	* doc/tm.texi: Update.

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

	Replace several arrays with a struct of arrays.
	* combine.c (struct reg_stat): New.
	(init_reg_last_arrays): Renamed to...
	(init_reg_last): ...this.  Callers adjusted.
	(reg_stat): New.
	(combine_instructions): Allocate it and use it.
	(reg_last_death, reg_last_set, reg_last_set_value,
	reg_last_set_label, reg_last_set_table_tick,
	reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
	reg_last_set_mode, reg_last_set_nonzero_bits,
	reg_last_set_sign_bit_copies): Replace throughout
	with items of reg_stat.

2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR optimization/15100
	* combine.c (distribute_notes): Don't create a dangling
	REG_LIBCALL/REG_RETVAL note.

2004-05-11  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/spe.md (spe_evneg): Rename to negv2si2.

	* config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
	negv2si2.

2004-05-11  Aldy Hernandez  <aldyh@redhat.com>

	* doc/md.texi (Standard Names): Fix typo in vec_init description.

2004-05-11  Geoffrey Keating  <geoffk@apple.com>

	* doc/gty.texi (GTY Options): Clarify example.

2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>

	* config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
	Add const qualifier to altivec vector type if one is needed.

2004-05-11  Paul Brook  <paul@codesourcery.com>

	* flags.h (flag_short_enums): Update comment.
	* opts.c (decode_options): Set flag_short_enums to 2.
	* toplev.c (flag_short_enums): Update comment.
	(process_options): Call default_short_enums target hook.

2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>

	PR target/14063
	* config/rs6000/altivec.md (altivec_dssall):
	Change to unspec_volatile.
	(altivec_dss): Likewise.

2004-05-10  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
	vnor.
	("one_cmplv8hi2"): Same.
	("one_cmplv4si2"): Same.

2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR target/15130
	* config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
	* config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
	into account.  Compute the correct number of general registers
	for the return value.  Generate a special push/pop sequence when
	failing to get a temporary register for non SHmedia epilogue.
	(sh_expand_epilogue): Add an argument to show whether it's for
	sibcall or not.  Set the 3rd argument of output_stack_adjust to
	-1 if needed.
	(sh_need_epilogue): Call sh_expand_epilogue with 0.
	* config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
	with 1.
	(epilogue): Call sh_expand_epilogue with 0.

2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>

	* gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
	goto a cleanup label.  After the cleanup, free the allocated memory.

2004-05-10  Ziemowit Laski  <zlaski@apple.com>

	* config/rs6000/altivec.h (vec_sld): Add overloads for
	argument/return types of 'vector bool int', 'vector bool short'
	and 'vector bool char'.

2004-05-10  Zack Weinberg  <zack@codesourcery.com>

	* c-decl.c (store_parm_decls_newstyle): Correct test for a
	nested function.

2004-05-10  Richard Sandiford  <rsandifo@redhat.com>

	* read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
	treating missing ones as "".
	* config/mips/mips.md: Remove constraints from match_operands and
	match_scratches if they appear in define_expands (except reload*),
	define_peephole2s, define_splits or attribute specifications.
	* config/mips/7000.md, config/mips/sb1.md: Remove match_operand
	constraint strings.

2004-05-10  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (function_arg_boundary): Always align
	AltiVec vectors.
	(function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
	vectors by refererence.  Align the same for TARGET_64BIT to a 16
	byte boundary.  Remove useless code.  Add function comment.
	(function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
	call to where it belongs.
	(function_arg_partial_nregs): Return true for all TARGET_32BIT
	-mabi=no-altivec AltiVec vectors.  Fix debug output.
	(rs6000_va_arg): Adjust for AltiVec change.

2004-05-10  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
	* config/arm/arm.h (TARGET_AAPCS_BASED): Define.
	(TARGET_DOUBLEWORD_ALIGN): Use it.
	(WCHAR_TYPE): Define.
	(WCHAR_SIZE_TYPE): Define.
	(SIZE_TYPE): Define.

2004-05-10  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
	when size is 8 bytes.
	(function_arg_advance): Account for stack space used by AltiVec
	args when -mabi=altivec.  Simplify alignment calculations.  For
	ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
	(function_arg): Similarly.
	(function_arg_pass_by_reference): True for ABI_V4 AltiVec when
	not AltiVec ABI.
	(rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
	Correct alignment, and align before testing reg count.  Remove
	TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
	(rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
	TARGET_FPRS here..
	(rs6000_function_value): .. not here before call.

2004-05-09  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.

2004-05-09  Zack Weinberg  <zack@codesourcery.com>

	PR 15007
	* c-decl.c (current_file_decl): Rename to all_translation_units,
	adjust comment.
	(pop_scope): If popping file_scope, construct a
	TRANSLATION_UNIT_DECL and make it the context of all the
	symbols in the scope.
	(push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
	(pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
	anything to current_file_decl.
	(pushdecl_top_level): Likewise.
	(store_parm_decls_newstyle): Adjust check for nested function.
	(c_write_global_declarations): Update for renamed variable.

2004-05-09  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000-protos.h
	(rs6000_conditional_register_usage): Protoize.

	* config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.

	* config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
	function.

2004-05-08  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
	where op is a comparison operator and C1 and C2 are integer constants
	into a range check.
	(fold): Call fold_div_compare.

2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/install.texi (sparc-sun-solaris2*): Document bootstrap
	problems with earlier versions of the GNU compiler.

2004-05-07  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
	Declare.

	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
	(rs6000_hard_regno_mode_ok): New.
	(rs6000_init_hard_regno_mode_ok): New.
	(rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.

	* config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
	result.

2004-05-07  Ziemowit Laski  <zlaski@apple.com>

	* config/rs6000/altivec.h (vector, pixel, bool): Do not
	define as macros #ifdef __APPLE_ALTIVEC__.

2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>

	* config/rs6000/rs6000.c (rs6000_mixed_function_arg):
	Generate appropriate parallels for vector arguments
	passed to vararg functions. (function_arg): make the call
	to rs6000_mixed_function_arg for vector args as needed.

2004-05-07  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_va_arg): Fix calculation of osize for
	EABI_FLOAT_VARARGS_P.

2004-05-07  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
	* config/mips/mips.c (override_options): Disable branch likely
	instructions if TUNE_MIPS5500.

2004-05-07  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (override_options): Allow the hi and lo registers
	to store any integral mode, not just MODE_INTs.

2004-05-07  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
	* config/arm/arm.h (TARGET_AAPCS_BASED): Define.
	(TARGET_DOUBLEWORD_ALIGN): Use it.
	(WCHAR_TYPE): Define.
	(WCHAR_SIZE_TYPE): Define.
	(SIZE_TYPE): Define.

2004-05-07  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
	testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.

2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>

	* loop-doloop.c (doloop_valid_p): Make sure that body
	gets freed.

2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>

	* config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
	declaration.
	* config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
	(sparc_skip_caller_unimp): New global variable.
	(sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
	Use it instead of SKIP_CALLERS_UNIMP_P.
	* config/sparc/sparc.md (call expander): Add sanity check.
	(call_address_struct_value_sp32): Re-sync with expander.
	(call_symbolic_struct_value_sp32): Likewise.
	(return peepholes): Use 'sparc_skip_caller_unimp' instead
	of custom predicate.

2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR c++/14962
	* c-pragma.c (handle_pragma_redefine_extname): Only change
	the assembler name of FUNCTION_DECLs and VAR_DECLs.

2004-05-07  Uros Bizjak  <uros@kss-loka.si>

	* optabs.h (enum optab_index): Add new OTI_log1p.
	(log1p_optab): Define corresponding macro.
	* optabs.c (init_optabs): Initialize log1p_optab.
	* genopinit.c (optabs): Implement log1p_optab using log1p?f2
	patterns.
	* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
	using log1p_optab.
	(expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
	expand_builtin_mathfn if flag_unsafe_math_optimizations is set.

	* reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.

	* config/i386/i386.c (ix86_emit_i387_log1p): New function.
	* config/i386/i386-protos.h (ix86_emit_i387_log1p):
	Prototype here.
	* config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
	x87's fyl2xp1 instruction.
	(*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
	(fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
	(log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
	log1p  and log1pl built-ins as inline x87 intrinsics.

2004-05-07  Loren James Rittle  <ljrittle@acm.org>

	* config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
	* config/arm/freebsd.h: Likewise.
	* config/ia64/freebsd.h: Likewise.
	* config/sparc/freebsd.h: Likewise.

2004-05-07  Hans-Peter Nilsson  <hp@axis.com>

	PR optimization/15296
	* reorg.c (fill_simple_delay_slots): Use next_real_insn when
	getting last consecutive label at a branch.
	(relax_delay_slots): Similar, near top of loop.

2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/15202
	* pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
	register to general register.

2004-05-07  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
	TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
	* config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
	(STACK_BOUNDARY): Delete.

2004-05-06  Stuart Hastings  <stuart@apple.com>

	* gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
	mistakenly clobbered by 1.423.

2004-05-06  Richard Sandiford  <rsandifo@redhat.com>

	* doc/invoke.texi: Document -mvr4130-align.
	* config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
	(TUNE_MIPS4120, TUNE_MIPS4130): New macros.
	(TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
	(TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
	* config/mips/mips.md: Include sched-int.h.
	(USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
	(mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
	(override_options): Enable -mvr4130-align at -O3 and above.
	(mips_sim_insn): New variable.
	(mips_sim): New structure.
	(mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
	(mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
	(mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
	(mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
	(vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
	(mips_reorg): Call vr4130_align_insns.
	(vr4130_last_insn): New variable.
	(vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
	(vr4130_swap_insns_p, vr4130_reorder): New functions.
	(mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
	(mips_issue_rate): Return 2 for PROCESSOR_R4130.
	(mips_use_dfa_pipeline_interface): Return true for the same.
	* config/mips/4130.md: New file.
	* config/mips/mips.md: Include it.  Add a peephole2 to convert
	"mult;mflo" into "mtlo;macc".
	(*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
	target of maccs.
	(*msac_using_macc): New pattern.

2004-05-06  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/5500.md (ir_vr55_store): Set latency to 0.
	(ir_vr55_hilo): Split into...
	(ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
	(ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
	(ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
	Add various multiplication bypasses.
	* config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
	multiplication.

2004-05-06  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.md (*fscalexf4): Correct insn "mode"
	attribute to "XF".

2004-05-05  Uros Bizjak  <uros@kss-loka.si>

	* optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
	(fmod_optab, drem_optab): Define corresponding macros.
	* optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
	* genopinit.c (optabs): Implement fmod_optab and drem_optab
	using fmod?f3 and drem?f3 patterns.
	* builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
	using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
	(expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
	BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
	flag_unsafe_math_optimizations is set.

	* reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
	UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.

	* config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
	* config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
	Prototype here.
	* config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
	UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
	fprem and fprem1 instructions.
	(*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
	Rename insn definition to x86_fnstsw_1.
	(fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
	x87 instructions.
	(fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
	and fmodl built-ins as inline x87 intrinsics.
	(dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
	and dreml built-ins as inline x87 intrinsics.

2004-05-05  Roger Sayle  <roger@eyesopen.com>

	* reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.

2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>

	PR driver/9822
	* doc/invoke.texi (Spec Files): Remove documentation of %c.

2004-05-05  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.md: Update the msub define_split for new mflo/mfhi
	representation.

2004-05-06  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm-protots.h (vfp_mem_operand): Rename ...
	(arm_coproc_mem_operand): ... To this.
	* config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
	(arm_legitimate_index_p): Ditto.
	(vfp_mem_operand): Rename ...
	(arm_coproc_mem_operand): ... To this.  Handle writeback modes.
	(vfp_secondary_reload_class): Use it.
	(output_move_double): Use doubleword load/store instructions.
	(arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
	* config/arm/arm.h (TARGET_LDRD): Define.
	(EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
	* config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
	New splitter for invalid doubleword loads.
	* config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
	* config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
	* doc/md.texi: Document Uy constraint.

2004-05-05  Jan Hubicka  <jh@suse.cz>

	PR opt/14980
	* cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
	inline clones.

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

	PR target/15290
	* config/i386/i386.c (ix86_split_to_parts): Use real_to_target
	instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.

2004-05-05  Mike Stump  <mrs@apple.com>

	* config/darwin-c.c (add_framework): Copy the directory name as it
	can be freed later.  Also, ensure we always allocate enough room
	for the cached framework information.
	(find_subframework_header): Keep track of the directory where the
	subframework header was found.
	(framework_construct_pathname): Speed up by not trying to re-add a
	framework.
	* cppfiles.c (search_path_exhausted): Arrange for the missing
	header callback to be able to set the directory where the header
	was found.
	(cpp_get_dir): Add.
	* cpplib.h (missing_header_cb): Add a parameter.
	(cpp_get_dir): Add.

2004-05-03  Mike Stump  <mrs@apple.com>

	* doc/invoke.texi (Directory Options): Document -iquote.
	* doc/cpp.texi: Likewise.
	* doc/cppopts.texi: Likewise.
	* c-opts.c (c_common_missing_argument): Add -iquote processing.
	(c_common_handle_option): Likewise.
	* c.opt (iquote): Add.
	* gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
	* c-incpath.c (merge_include_chains): Update comment to use -iquote.

	* c-opts.c (case OPT_I): Deprecate -I- support.
	* doc/invoke.texi: Likewise.
	* doc/cpp.texi: Likewise.
	* doc/cppopts.texi: Likewise.

2004-05-05  Steven Bosscher  <stevenb@suse.de>

	* basic-block.h (free_basic_block_vars): Update prototype.
	* flow.c (free_basic_block_vars): Remove the keep_head_end_p
	argument.
	(life_analysis): Update call.
	* ifcvt.c (if_convert): Likewise.
	* sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
	* passes.c (rest_of_handle_final): Likewise.
	(rest_of_compilation): Likewise.
	* config/sh/sh.c (sh_output_mi_thunk): Likewise.

	* emit-rtl.c (next_real_insn): Use INSN_P.
	(prev_real_insn): Likewise.

2004-05-05  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.md: Update the madd define_split for new mflo/mfhi
	representation.

2004-05-05  Paolo Bonzini  <bonzini@gnu.org>

	* config/rs6000/rs6000.c (build_opaque_vector_type):
	New function.
	(rs6000_init_builtins): Use it.

2004-05-04  Bernard Giroud  <bgiroud2@free.fr>

	* gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
	(func_table): Change type from char ** to vms_func_ref.
	(write_rtnbeg):  Update to reflect func_table change.  Use
	fde->funcdef_number instead of rtnnum in output.
	(write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.

2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
	    Richard Henderson  <rth@redhat.com>

	PR target/14899

	* c-common.c (vector_types_convertible_p): New function.
	* c-typeck.c (comptypes): Recurse on vector types.
	(convert_for_assignment): Use vector_types_convertible_p.
	(digest_init): Use vector_types_convertible_p to check
	validness of constant vector initializers; otherwise treat
	them as scalars.
	* tree.c (make_or_reuse_type): New.
	(build_common_tree_nodes): Use it.
	* cp/call.c (standard_conversion): Likewise.
	* cp/typeck.c (comptypes): Recurse on vector types.
	(convert_for_assignment): Use vector_types_convertible_p.

2004-05-04  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.c (override_options): Default to no
	generation of branch-likely operations when tuning for
	CPUs where they tend to have a negative performance impact
	(e.g., SB-1).

2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expr.c (store_constructor_field): Don't call store_constructor
	if bitsize is not a multiple of a byte.

2004-05-04  Richard Sandiford  <rsandifo@redhat.com>

	* reload1.c (inherit_piecemeal_p): New function.
	(emit_reload_insns): When reloading a group of hard registers, use
	inherit_piecemeal_p to decide whether the values of individual hard
	registers can be inherited.

2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>

	* config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
	* config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
	* config/t-linux (LIB2ADDEHDEP): Likewise.

2004-05-04  Paul Brook  <paul@codesourcery.com>

	* config/arm/crti.asm: Push an even number of registers.
	* config/arm/crtn.asm: And restore them.  Load via sp.

2004-05-04  Paolo Bonzini  <bonzini@gnu.org>

	* ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
	Collect overhead information.
	(ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
	parameter and pass it through.
	(ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
	MEM_STAT_DECL parameter and pass it through.
	(ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
	MEM_STAT_DECL parameter and pass it through.

2004-05-03  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.

	* config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.

	* config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
	rs6000_hard_regno_nregs.

2004-05-03  Eric Christopher  <echristo@redhat.com>

	* config/s390/s390.c (s390_emit_prologue): Call unspec tpf
	prologue insn instead of setting up call.
	(s390_emit_epilogue): Ditto.
	* config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
	(define_constants): Add numbers for above patterns.

2004-05-03  Eric Christopher  <echristo@redhat.com>

	* config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
	* config/s390/s390.c (s390_conditional_register_usage): ...here.
	* config/s390/s390-protos.h: Prototype.

2004-05-03  Joe Buck <jbuck@welsh-buck.org>

	* cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
	assignment.

2004-05-03  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.md: Fix branch length attribute definition.

2004-05-03  Aldy Hernandez  <aldyh@redhat.com>

	* config.gcc: Remove --enable-altivec support.

	* config/rs6000/altivec-defs.h: Remove.

2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
	* fixinc/fixincl.x: Regenerate.

2004-05-03  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
	definition.
	(log?f2, log10?f2, log2?f2): Reimplement expanders with
	float_truncate insn.
	(*fxtractsf3, *fxtractdf3): Remove insn definition.
	(logb?f2): Reimplement expanders with float_truncate insn.

2004-05-03  Graham Stott  <graham.stott@btinternet.com>

	PR 14718
	* dwarf2out.c (dwarf2out_imported_module_or_decl): Use
	force_type_die for CONST_DECL.

2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
	    Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
	tm-dwarf2.h to tm_file.
	(sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
	* config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
	(ASM_DEBUG_SPEC): Delete.

2004-05-03  Uros Bizjak  <uros@kss-loka.si>

	* optabs.h (enum optab_index): Add new OTI_expm1.
	(expm1_optab): Define corresponding macro.
	* optabs.c (init_optabs): Initialize expm1_optab.
	* genopinit.c (optabs): Implement expm1_optab using expm1?f2
	patterns.
	* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
	using expm1_optab.
	(expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
	expand_builtin_mathfn if flag_unsafe_math_optimizations is set.

	* config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
	to implement expm1, expm1f and expm1l built-ins as inline x87
	intrinsics.

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

	2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
	* config/frv/frv.md (*return_true, *return_false): New patterns.

2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>

	* rtl.h (PHI_NODE_P): Remove.

2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>

	PR middle-end/14988
	* function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
	when passed -2 as 'align'.
	(put_var_into_stack): Use 'bool' as the type for the three local
	predicates.  Adjust calls to put_reg_into_stack.
	When passed a CONCAT, instruct put_reg_into_stack to use
	a consecutive stack slot for the second part.
	(put_reg_into_stack): Remove 'promoted_mode' parameter, add
	'consecutive_p' parameter.  Turn the three predicates into 'bool'
	parameters.  Retrieve the register mode from 'reg'.
	When consecutive_p is true, instruct assign_stack_local_1 to use
	BITS_PER_UNIT alignment.
	(put_addressof_into_stack): Use 'bool' as the type for the two
	local predicates. Adjust call to put_reg_into_stack.

2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* fold-const.c (fold_convert_const, fold): Add missing
	FIX_ROUND_EXPR case.

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

	* configure.ac (FLEX, BISON): Only use tools from the build tree
	if build equals host.
	* configure: Rebuilt.

	* config/frv/frv-protos.h (frv_expand_epilogue,
	frv_expand_fdpic_call): Add bool argument.
	* config/frv/frv.c (frv_function_ok_for_sibcall): New.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
	(frv_expand_epilogue): Use new argument to decide whether to emit
	return instruction or copy the return address to LR.
	(frv_expand_fdpic_call): Inline PLT entry when emitting direct
	sibcalls.
	(sibcall_operand): New.
	* config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
	PLUS nor LABEL_REF.  Add sibcall_operand.
	* config/frv/frv.md (call, call_value): Pass false to
	frv_expand_fdpic_call.
	(call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
	(sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
	sibcall_value_internal, sibcall_value_fdpicdi): New.
	(return_unsigned_true, return_unsigned_false): New.
	(epilogue): Adjust call to frv_expand_epilogue.
	(sibcall_epilogue): New.

	* config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
	(CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
	before redefining them.

2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_fixed_mathfn): New function.
	(fold_builtin_lround, fold_builtin): Use it.

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

	* config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
	also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.

2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>

	* config/cris/cris.h: Revert my "fix comment typos" patch.

2004-05-01  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.

2004-05-01  Falk Hueffner  <falk@debian.org>

	* config/alpha/alpha.md (builtin_insbl, builtin_inswl,
	builtin_insll): Disallow 0 as first input operand.

2004-05-01  Falk Hueffner  <falk@debian.org>

	* config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.

2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>

	PR middle-end/15054
	* expr.c (expand_expr_real): Do not call preserve_temp_slots
	on a TARGET_EXPR temp.
	* function.c (assign_stack_temp_for_type): Set 'keep' flag for
	TARGET_EXPR temp slots.

2004-05-01  Paolo Bonzini  <bonzini@gnu.org>

	* simplify-rtx.c (simplify_ternary_operation): When
	converting an IF_THEN_ELSE to a relational op, return
	correct mode.

2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_round): Fix comment typo.
	(fold_builtin_lround): New function.
	(fold_builtin): Use it.

2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/11608
	* config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
	more like the one in config/dbxelf.h.

2004-04-30  Zack Weinberg  <zack@codesourcery.com>

	* tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
	and adjust definition accordingly.
	(TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
	(TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
	* expr.c (store_constructor): Do not access TYPE_DOMAIN of a
	VECTOR_TYPE.

2004-04-30  Jason Merrill  <jason@redhat.com>

	PR c++/14587
	* config/i386/winnt.c (associated_type): Look for attributes on
	the TYPE_MAIN_VARIANT of *this.
	* attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
	apply the attributes to the variants.

2004-04-30  Paul Brook  <paul@codesourcery.com>

	* config.gcc: Simplify arm --with-{cpu,tune} test.
	* config/arm/arm-cores.def: Document whitespace restrictions.

2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR other/1963
	* config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.

2004-04-30  Brian Ford  <ford@vss.fsi.com>
	    DJ Delorie  <dj@redhat.com>

	* config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
	(DWARF2_DEBUGGING_INFO): Define to enable.
	(DBX_REGISTER_NUMBER): Define to use the svr4 register map for
	DWARF2.
	* configure.ac (Target-specific assembler checks)
	<i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
	relocs.
	* configure: Regenerate.
	* config.in: Likewise.

	* config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
	(ASM_OUPUT_DWARF_OFFSET): Define.

2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
	(s390_emit_call): New function prototype added.
	(s390_tls_get_offset): Function removed.
	* config/s390/s390.c (s390_function_ok_for_sibcall,
	s390_call_saved_register_used_p): New functions.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
	(s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
	(s390_emit_tls_call_insn): New function.
	(legitimize_tls_address): Call s390_emit_tls_call_insn instead of
	emit_call_insn.
	(s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
	(s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
	added.
	* config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
	register number used to hold the target address for sibcalls.
	* config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
	New expanders.
	("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
	"*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
	("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
	Expanders removed.
	("call", "call_value"): Call s390_emit_call to emit the call patterns.
	("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
	"*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
	("epilogue"): Changed the call to s390_emit_epilogue to use the
	new parameter.

2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>

	* bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
	cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
	reg-stack.c, varasm.c, config/alpha/ev4.md,
	config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
	config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
	config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
	config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
	config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
	config/ia64/itanium2.md, config/ip2k/ip2k.c,
	config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
	config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
	comment typos.

2004-04-30  Paul Brook  <paul@codesourcery.com>

	* config.gcc: Default ep9312 to hard-float.
	* config/arm/arm-cores.def: Add ARCH field.
	* config/arm/arm.c (FL_FOR_ARCH*): Define.
	(arm_arch_cirrus): New variable.
	(all_cores): Set and use arch.
	(all_architectures): Ditto.
	(arm_arch_name): New variable.
	(arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
	Set and use arm_arch_cirrus.
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
	(enum processor_type): Update ARM_CORE define.
	(enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
	(CPP_SPEC): Remove %(cpp_cpu_arch).
	(CPP_ARCH_DEFAULT_SPEC): Remove.
	(CPP_CPU_ARCH_SPEC): Remove.
	(EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
	(FPUTYPE_DEFAULT): Don't define here.

2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>

	* flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
	updates too.

2004-04-30  Paul Brook  <paul@codesourcery.com>

	* arm.c (arm_needs_doubleword_align): Use mode alignment.

2004-04-30  Paolo Bonzini  <bonzini@gnu.org>

	* config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
	vec_sububs.
	[__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
	duplicates.

2004-04-30  Uros Bizjak  <uros@kss-loka.si>

	* config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
	atan2?f3 expanders.

2004-04-29  Nick Clifton  <nickc@redhat.com>

	Bug 14093
	* config/sh/sh-protos.h (sh_promote_prototypes): Declare.
	* config/sh/sh.c (sh_promote_prototypes): Remove declaration.
	Delete static from definition.
	* config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.

2004-04-30  Uros Bizjak  <uros@kss-loka.si>

	* reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
	UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
	<UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
	<UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.

2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>

	* commom.opt (Wfatal-errors): Add it.
	* diagnostic.c (flag_fatal_errors): Define it.
	(diagnostic_action_after_output): Check for flag_fatal_errors.
	* flags.h (flag_fatal_errors): Declare it.
	* opts.c (common_handle_option): Add OPT_Wfatal_errors.
	* doc/invoke.texi (Warning Options): Document -Wfatal-errors.

2004-04-30  Josef Zlomek  <zlomekj@suse.cz>

	* gcse.c (remove_reachable_equiv_notes): Delete notes also in
	blocks which have kill flag set.

2004-04-29  Ben Elliston  <bje@au.ibm.com>

	* configure.ac (--with-as): Abort if user-supplied assembler
	cannot be executed.
	(--with-ld): Likewise for the linker.
	* configure: Regenerate.

2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* convert.c (convert_to_integer): Ensure `long_integer_type_node'
	isn't NULL before using it.

2004-04-29  Richard Sandiford  <rsandifo@redhat.com>

	PR target/15189
	* config/mips/mips.md (load_df_low): Use default length.
	(load_df_high, store_df_high): Likewise.

2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mips/mips.md, config/mips/sb1.md,
	config/rs6000/rs6000.c: Fix comment typos.

2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
	Fix comment typos.

2004-04-29  Douglas B Rupp  <rupp@gnat.com>

	* gcc.c (DELETE_IF_ORDINARY): New macro default definition.
	(delete_if_ordinary): Use above macro.
	* config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
	Update copyright.
	* doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.

2004-04-29  Richard Earnshaw  <rearnsha@arm.com>

	* c-decl.c (get_parm_info): Use the correct tag keywords when
	warning about type declarations in prototypes.

2004-04-29  Paul Brook  <paul@codesourcery.com>

	* config.gcc: Pull list of cores from arm-cores.def.

2004-04-29  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c (combine_simplify_rtx): Adjust call to use
	simplify_relational_operation.  Do not use SELECT_CC_MODE
	when a comparison already has a MODE_CC mode.

2004-04-29  Paolo Bonzini  <bonzini@gnu.org>

	(simplify_set): simplify_relational_operation may now
	return another relational expression.
	* cse.c (fold_rtx): simplify_relational_operation now
	takes of computing the comparison mode.
	* dojump.c (compare_from_rtx): Use simplify_relational_operation,
	remove dead code.
	(do_compare_rtx_and_jump): Likewise.
	* integrate.c (subst_constants): simplify_relational_operation
	may now return another relational expression.
	* simplify-rtx.c (simplify_gen_relational): Move most code to
	the new simplify_relational_operation and
	simplify_relational_operation_1 functions.
	(simplify_relational_operation): Rewritten.
	(simplify_relational_operation_1): New function.
	(simplify_ternary_operation): simplify_relational_operation
	may now return another relational expression.
	(simplify_rtx): Remove unnecessary temp variable.

2004-04-29  Uros Bizjak  <uros@kss-loka.si>

	* reg-stack.c (swap_to_top): New function.
	(subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
	swap_to_top().
	(subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
	(subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
	UNSPEC_FSCALE_EXP.

	* config/i386/i386.md (UNSPEC_FSCALE): Remove.
	(*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
	(UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
	x87's fscale insn.
	(*fscalexf4: Define new insn pattern to implement x87 fscale insn.
	(exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
	patterns.

2004-04-28  Serge Belyshev  <1319@bot.ru>

	PR 14944
	* coverage.c (read_counts_file): Fix usage of warning () call.
	* pretty-print.c (pp_base_format_text): Fix typo in the comment.

2004-04-28  Ben Elliston  <bje@au.ibm.com>

	* doc/invoke.texi (Objective-C Dialect Options): Don't prefix
	options with "-" in the option index.
	(SPARC Options): Likewise.
	(M32R/D Options): Likewise.

2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* convert.c (convert_to_integer): Convert (long)round -> lround,
	etc.

2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/rs6000.c (registers_ok_for_quad_peep):
	Return false if we do not have fp register.
	(addrs_ok_for_quad_peep): Rename to ...
	(mems_ok_for_quad_peep): this.
	Add check for volatile memory.
	* config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
	Rename to ...
	(mems_ok_for_quad_peep): this.
	* config/rs6000/rs6000.md: Change peephole's for lfq/stq
	to peephole2's.
	(lfq_power2): New instruction.
	(stfq_power2): Likewise.

2004-04-28  Jan Hubicka  <jh@suse.cz>

	PR c/15004
	* function.c (do_warn_unused_parameter): Break out form ...
	(expand_function_end): ... here; warn only when not using cgraphunit.
	* function.h (do_warn_unused_parameter): Declare.
	* cgraphunit.c: Include function.h.
	(cgraph_finalize_function): Do unused parameter warning.
	* Makefile.in (cgraphunit.o): Depend on function.h

2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>

	* Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
	calling install-info on $(DESTDIR)$(infodir)/dir already being
	present.

2004-04-28  Paul Brook  <paul@codesourcery.com>

	* dwarf2out.c (mem_loc_descriptor): Handle shifts.

2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>

	* gcse.c (find_moveable_store): Do not accept store insns with
	REG_EH_REGION note.

2004-04-28  Paul Brook  <paul@codesourcery.com>

	* calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
	* function.c (assign_temp): Ditto.
	* system.h (PROMOTE_FOR_CALL_ONLY): Poison.

2004-04-28  Paul Brook  <paul@codesourcery.com>

	* config/arm/lib1funcs.asm: Recognize armv5tej and armv6.

2004-04-28  Josef Zlomek  <zlomekj@suse.cz>

	* var-tracking.c (variable_different_p): Add a parameter
	compare_current_location, compare current location of variable parts
	if it is true.
	(dataflow_set_different_1): Pass compare_current_location == false.
	(dataflow_set_different_2): Pass compare_current_location == false.
	(emit_notes_for_differences_1): Pass compare_current_location == true.

2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("casesi"): Mark jump table access as
	non-trapping and unchanging.

2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR debug/14829
	* dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
	callers.
	(multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
	number for indexing hard_regno_nregs array.

2004-04-27  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
	* config/darwin-crt2.c: Only have contents on __ppc__.

2004-04-27  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (call_insn_operand): Check
	SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
	* config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
	* config/xtensa/xtensa.md (call, call_value): Likewise.

2004-04-27  Wu Yongwei  <adah@sh163.net>

	* gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
	(__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
	(__gthread_mutex_init_function): Replace CreateMutex with
	initialization of custom mutex using CreateSemaphore.
	(__gthread_mutex_lock): Use InterlockedIncrement.
	(__gthread_mutex_trylock): Use InterlockedCompareExchange.
	(__gthread_mutex_unlock): Use InterlockedDecrement and
	ReleaseSemaphore to unlock
	* config/i386/gthr-win32.c (__gthread_mutex_init_function,
	__gthread_mutex_lock, __gthread_mutex_trylock,
	__gthread_mutex_unlock): Adjust to match inline versions in
	gthr-win32.h.

2004-04-27  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_promote_prototypes): New function.
	(TARGET_PROMOTE_PROTOTYPES): Use it.

2004-04-27  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.

2004-04-26  Bernard Giroud  <bgiroud@free.fr>

	* config/alpha.c (alpha_end_function): For OpenVMS gas,
	correctly output .pdesc directive before .end.

2004-04-26  James E Wilson  <wilson@specifixinc.com>

	Bug 14927
	* config/ia64/ia64.md (movxf): New local op0.  Handle case where
	operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.

2004-04-26  Zack Weinberg  <zack@codesourcery.com>

	* config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
	* config/pa/pa-hpux10.h: Likewise.
	* config/pa/pa-hpux11.h: Likewise.

2004-04-26  Geoffrey Keating  <geoffk@apple.com>

	* doc/invoke.texi (Overall Options): Document default for -o
	for PCH files.

2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* builtins.c (expand_builtin_update_setjmp_buf): New function.
	(expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
	* builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.

2004-04-26  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.

2004-04-26  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.

2004-04-25  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
	fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
	X % -1 as 0.

2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>

	PR bootstrap/15141
	* except.c (connect_post_landing_pads): Delete insns after the
	barrier when generating a unwind_resume_libfunc call.

2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	PR/c++ 15119
	* tree.c (substitute_placeholder_in_expr, case 4): New case,
	for TARGET_EXPR.

2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
	__gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
	inhibit_libc is defined.

2004-04-25  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips-protos.h (mips_linked_macc_p): Declare.
	* config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
	* config/mips/mips.c (TARGET_SCHED_REORDER): Define.
	(TARGET_SCHED_VARIABLE_ISSUE): Define.
	(mips_adjust_cost): Move later in file, next to other sched hooks.
	(mips_macc_chains_last_hilo): New variable.
	(mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
	(mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
	* config/mips/mips.md (may_clobber_hilo): New attribute.

2004-04-24  Roger Sayle  <roger@eyesopen.com>
	    Bruce Korb  <bkorb@gnu.org>

	* fixinc/inclhack.def (aix_syswait_2): New fix.
	* fixinc/fixincl.x: Regenerate.
	* fixinc/tests/base/sys/wait.h: Update for new test.

2004-04-24  Alan Modra  <amodra@bigpond.net.au>

	PR target/14960
	* config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
	to non_fixed_size, and leave out fixed_size from the sum.
	(generate_set_vrsave): Correct clobbers.
	(rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
	(rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
	(rs6000_libcall_value): Likewise.
	* config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
	(FUNCTION_ARG_REGNO_P): Likewise.

2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* expmed.c (expand_mult_highpart_adjust): Do not assume OP1
	is a CONST_INT.
	(expand_mult_highpart_optab): Call expand_mult_highpart_adjust
	with NARROW_OP1 instead of OP1.

2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
	and __s390x__ hosts.

2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
	_gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
	* builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
	BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
	BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
	* builtins.c (expand_builtin_fork_or_exec): New.
	(expand_builtin): Call it.
	* builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
	BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
	* c-common.c (PID_TYPE): New macro.
	(c_common_nodes_and_builtins): Initialize pid_type_node.
	* calls.c (special_function_p): Do not handle fork and exec.
	(expand_call): Do not handle ECF_FORK_OR_EXEC.
	* gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
	__gcov_execv, __gcov_execvp, __gcov_execve): Declare.
	* libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
	__gcov_execv, __gcov_execvp, __gcov_execve): New.
	* tree.h (enum tree_index): Add TI_PID_TYPE.
	(pid_type_node): New macro.
	(ECF_FORK_OR_EXEC): Removed.

2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR optimization/13985
	* cfgloopmanip.c (fix_loop_placements): New prototype.
	Call fix_bb_placements on the preheader of loops that have
	been reparented.
	(remove_path): Adjust call to fix_loop_placements.

2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/darwin7.h: New file.
	* config.gcc (*-*-darwin*): Add darwin7.h if the
	version is greater than 6.
	* config/darwin.h (TARGET_C99_FUNCTIONS): Define.
	(MATH_LIBRARY): Wrap in ifdefs.

2004-04-23  Daniel Jacobowitz  <drow@mvista.com>

	* config/arm/arm.c (arm_output_epilogue): Reverse the order of
	loading iWMMXt registers with a frame pointer.  Use post-increment
	without a frame pointer.
	(arm_expand_prologue): Reverse the order of saving iWMMXt registers.

2004-04-23  Paolo Bonzini  <bonzini@gnu.org>

	* doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
	mode" rather than "-funit-at-a-time" since -O2 enables it
	without requiring -f* options.	Refer to -fprofile-generate and
	-fprofile-use correctly.  Move -funit-at-a-time among options
	enabled by -O.	Add information about unit-at-a-time caveats.

2004-04-22  Per Bothner  <per@bothner.com>

	* line-map.h (struct line_maps):  New field highest_line.
	(linemap_position_for_column):  Make non-inline function.
	(LINEMAP_POSITION_FOR_COLUMN):  New macro.
	* line-map.c (linemap_init):  Clear highest_line field.
	(linemap_add):  Set highest_line field.
	(linemap_line_start):  Minor optimization - use highest_line field.
	Reduce maximum column hint to 10000.  Update highest_line field.
	(linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
	* cpphash.h (struct cpp_reader):  Remove line field - instead use
	line_table->highest_line.
	(saved_line):  Remove unused field.
	(CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
	Use  line_table's highest_line field instead of cpp_reader's line.
	* cpplib.c (start_directive):  Likewise use highest_line field.
	(do_line, do_linemarker):  Likewise just use newest map.
	(_cpp_do_file_change):  Don't need to set cpp_reader's line field.
	* cpperror.c (cpp_error):  Likewise use highest_line field.
	* cppfiles.c (open_file_failed:  Likewise.
	(cpp_make_system_header):  Likewise use newest map and highest_line.
	* cppinit.c (cpp_create_reader):  Don't initialize removed field.
	* cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
	skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
	_cpp_lex_direct):  Likewise use highest_line.
	(_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
	* cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
	and use newest map.
	* cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
	* cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
	(copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.

2004-04-23  Alan Modra  <amodra@bigpond.net.au>

	PR bootstrap/14992
	* gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
	* config/linux.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
	* gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.

2004-04-22  Per Bothner  <per@bothner.com>

	* cppinit.c (cpp_read_main_file):  Return NULL rather than false.
	Fixes PR preprocessor/15067.

2004-04-23  Andreas Schwab  <schwab@suse.de>

	* config/ia64/ia64intrin.h: Add intermediate cast to void * to
	avoid aliasing warning.

2004-04-22  Jan Hubicka  <jh@suse.cz>
	    Mostafa Hagog <mustafa@il.ibm.com>

      * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
      * cfgloopanal.c (expected_loop_iterations): Change the return value

2004-04-22  Jakub Jelinek  <jakub@redhat.com>

	* cselib.h (struct elt_loc_list): Remove canon_loc field.
	* cselib.c (new_elt_loc_list): Remove canon_loc initialization.
	(cselib_invalidate_mem): Remove all canon_loc and canon_x
	traces.

2004-04-22  Josef Zlomek  <zlomekj@suse.cz>

	Revert
	2004-04-20  Josef Zlomek  <zlomekj@suse.cz>

		* var-tracking.c (variable_part_different_p): Variable parts
		differ when the most recent locations differ.

2004-04-22  Richard Sandiford  <rsandifo@redhat.com>

	* doc/invoke.texi: Remove the MIPS -membedded-pic option.
	* config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
	(embedded_pic_offset): Delete.
	* config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
	MASK_* constants.
	(TARGET_EMBEDDED_PIC): Delete.
	(TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
	(ASM_SPEC): Remove -membedded-pic.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
	(ASM_OUTPUT_CASE_LABEL): Likewise.
	* config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
	* config/mips/windiss.h (ASM_SPEC): Likewise.
	* config/mips/mips.c (struct machine_function): Remove
	embedded_pic_fnaddr_rtx.
	(TARGET_ENCODE_SECTION_INFO): Remove override.
	(embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
	(override_options): Remove -membedded-pic handling.
	(print_operand): Remove handling of '%S'.
	(mips_select_section: Remove -membedded-pic handling.
	(mips_encode_section_info): Delete.
	(mips_output_conditional_branch): Remove mention of -membedded-pic.
	* config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
	-membedded-pic handling.
	(casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.

2004-04-22  Alan Modra  <amodra@bigpond.net.au>

	* var-tracking.c (frame_base_decl): Remove useless GTY.

2004-04-21  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_override_options): Error when
	user wants altivec and e500 instructions.

2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/14813
	* config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
	in .init_array section to ...
	* config/ia64/crtbegin.asm: Here.

	* config/ia64/crtend.asm: Mark __do_global_ctors_aux global
	and hidden if HAVE_INITFINI_ARRAY is defined.

2004-04-21  James E Wilson  <wilson@specifixinc.com>

	* config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
	* config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
	(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
	(fp_register_operand, lo_operand): New.
	(mips_rtx_costs): Add TUNE_SB1 support.
	(mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
	(mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
	(mips_multipass_dfa_lookahead): New.
	* config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
	TUNE_SB1): New.
	(TARGET_SWITCHES): Add -mfp-exceptions support.
	(TARGET_FP_EXCEPTIONS_DEFAULT): New.
	(BRANCH_COST): Fix whitespace.
	* config/mips/mips.md: Include sb1.md.
	* config/mips/sb1.md: New file.
	* doc/invoke.texi: Document -mfp-exceptions.

	* Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
	comment.
	* fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
	(fixincl.o-warn): Delete.

2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/rs6000 (print_operand) ['z']:
	Change ifdef of TARGET_MACHO to if TARGET_MACHO.

2004-04-21 Daniel Jacobowitz  <drow@mvista.com>

	* config.gcc: Support --with-arch=iwmmxt for ARM.

2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
	in two more places; remove unneeded force_reg

2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
	for TARGET_MACHO.
	(print_operand): For TARGET_MACHO check to see if we need a stub
	and output one if we need it.

	PR debug/15033
	* dwarf2out.c (rtl_for_decl_location): Check for NULL
	rtl.

2004-04-20  James E Wilson  <wilson@specifixinc.com>

	* config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
	(vall_value_gp): Likewise.

2004-04-20  DJ Delorie  <dj@redhat.com>

	* dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
	variables stored in word registers, then in memory.

2004-04-20  Eric Christopher  <echristo@redhat.com>

	* cp/parser.c (cp_parser_declaration): Move translate
	up before tokens are lexed.

2004-04-20  Uros Bizjak  <uros@kss-loka.si>

	* optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
	(asin_optab, acos_optab): Define corresponding macros.
	* optabs.c (init_optabs): Initialize asin_optab and acos_optab.
	* genopinit.c (optabs): Implement asin_optab and acos_optab
	using asin?f2 and acos?f2 patterns.
	* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
	using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
	(expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
	using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.

	* config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
	acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
	acos, acosf and acosl built-ins as inline x87 intrinsics.

2004-04-20  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.

2004-04-20  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_expand_prologue): Fix size calculation.

2004-04-20  Paolo Bonzini  <bonzini@gnu.org>

	Revert part of 2004-04-17 change that moved -frename-registers
	to -O1.  -frename-registers is buggy.

	* toplev.c (flag_rename_registers): Initialize to 0.
	* doc/invoke.texi (Optimize options): Move -frename-registers
	to "Not triggered by any -O level" section.  Adjust commentary
	accordingly.

2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>

	* toplev.c (compile_file): Move targetm.asm_out.file_end call to end.

2004-04-20  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_legitimize_move): Generate special patterns
	for mflo and mfhi instructions.
	(mips_output_move): Remove mflo and mfhi handling.
	* config/mips/mips.md (UNSPEC_MFHILO): New unspec.
	(*mulsidi3_64bit): Update for new mfhi/mflo representation.
	Likewise various define_peephole2s.
	(*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
	alternatives.
	(*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
	(*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
	(mfhilo_di, mfhilo_si): New patterns.

2004-04-20  Josef Zlomek  <zlomekj@suse.cz>

	* function.c (assign_parms): Force
	MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.

2004-04-20  Josef Zlomek  <zlomekj@suse.cz>

	* var-tracking.c (variable_part_different_p): Variable parts differ
	when the most recent locations differ.

2004-04-19  James E Wilson  <wilson@specifixinc.com>

	* rtl.h (reg_set_last): Delete declaration.
	* rtlanal.c (reg_set_last): Delete.

2004-04-19  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_convert): Make function extern/public.
	* tree.h (fold_convert): Prototype here.
	* builtins.c (expand_builtin_strstr, expand_builtin_strchr,
	expand_builtin_strrchr, expand_builtin_strpbrk,
	expand_builtin_mempcpy, expand_builtin_bcopy,
	expand_builtin_bzero, expand_builtin_memcmp,
	expand_builtin_strcmp, expand_builtin_strncmp,
	stabilize_va_list, expand_builtin_sprintf,
	fold_trunc_transparent_mathfn, fold_builtin_logarithm,
	fold_builtin_exponent, fold_builtin_mempcpy,
	fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
	fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
	fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".

2004-04-19  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
	(move_from_CR_gt_bit): New.
	(cceq_ior_compare): Name previously unnamed pattern.  Disable for
	E500.
	(cceq_rev_compare): Name previously unnamed pattern.  Allow for
	E500.

	* config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
	(tstsfeq_gpr): Same.
	(cmpsfgt_gpr): Same.
	(tstsfgt_gpr): Same.
	(cmpsflt_gpr): Same.
	(tstsflt_gpr): Same.
	(e500_cceq_ior_compare): New.
	(e500_flip_gt_bit): New.

	* config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
	(print_operand): Add 'c' and 'D'.
	(rs6000_generate_compare): Rewrite to generate correct rtl.
	(rs6000_emit_sCOND): Handle E500.
	(output_cbranch): Adjust for changes in rs6000_generate_compare.
	(output_e500_flip_gt_bit): New.

	* config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
	Protoize.

2004-04-19  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h (DWARF2_ADDR_SIZE): New.

2004-04-19  David Edelsohn  <edelsohn@gnu.org>

	* doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
	fix information.

2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
	download URL.

2004-04-19  Daniel Jacobowitz  <drow@mvista.com>

	* stor-layout.c (layout_decl): Check DECL_PACKED before calling
	ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.

2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>

	* builtins.c (fold_builtin_cabs): Remove fndecl parameter.
	(fold_builtin): Update caller to match.

	PR bootstrap/15009
	* bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.

	PR bootstrap/14999
	* builtins.c (fold_builtin_cabs): Mark fndecl as unused.

2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.

	* expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
	(expand_mult_highpart_optab): Likewise.
	(expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.

2004-04-19  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
	floatunssisf2, floatunssidf2): New patterns.

2004-04-18  Mark Mitchell  <mark@codesourcery.com>

	PR other/14918
	* doc/invoke.texi (-fprofile-generate): Document requirement to
	use -fprofile-generate when linking.

	* doc/extend.texi (Strong Using): Warn users against using this
	feature.

2004-04-18  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
	* config/mips/mips.h (mips_entry, mips_string_length): Delete.
	(CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
	* config/mips/mips.c (struct mips16_constant): Renamed from struct
	constant.  Propogate change throughout file.
	(struct machine_function): Remove insns_len.
	(mips_string_length, mips16_strings, string_constants): Delete.
	(mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
	when generating mips16 code.  Remove special mips16 treatment of
	string constants.
	(mips_symbolic_constant_p): Allow mips16 constant pool accesses
	to have the form LABEL+CONSTANT.
	(mips_symbolic_address_p): Fix comment.
	(m16_usym8_4, m16_usym5_4): Delete.
	(mips_output_function_epilogue): Remove mips16 string handling.
	(mips_output_mi_thunk): Call mips16_lay_out_constants.
	(mips_select_section, mips_encode_section_info): Remove mips16
	string handling.
	(struct mips16_constant_pool): New.
	(add_constant): Take a mips16_constant_pool structure.  Keep pool
	sorted into order of ascending mode size.  Keep track of the highest
	possible start address, taking padding and the masking of the base PC
	value into account.
	(dump_constants_1): New function, split out from dump_constants.
	Handle vector constants.  Use gen_consttable_{int,float} rather than
	separate functions for each mode.
	(dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
	rather than separate functions for each alignment.
	(mips_find_symbol): Delete.
	(mips16_insn_length): New function, split out from
	mips16_lay_out_constants.
	(mips16_rewrite_pool_refs): New function.
	(mips16_lay_out_constants): Rework. Remove string handling.
	Always create an inline constant pool.
	* config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
	(UNSPEC_ALIGN): New constants.
	(UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
	(UNSPEC_ALIGN_[248]): Delete.
	(consttable_int, consttable_float, align): New patterns.
	(consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.

2004-04-17  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h (vec_any_numeric): Correct typo in
	__unn_args_eq.

2004-04-17  Alan Modra  <amodra@bigpond.net.au>

	PR target/14715
	* config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
	with STARTING_FRAME_OFFSET.

2004-04-17  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
	* config/mips/mips.c (macc_msac_operand): New function.
	* config/mips/mips.md (*msac): Move after *macc.
	(*msac2): New.  Generalize macc-related peepholes so that they apply
	to msac too.

2004-04-17  Paolo Bonzini  <bonzini@gnu.org>

	* opts.c (decode_options): Do not enable flag_rename_registers
	and flag_web at -O3.
	* toplev.c (flag_rename_registers): Initialize
	flag_rename_registers and flag_web to
	AUTODETECT_FLAG_VAR_TRACKING.
	(default_debug_hooks): New global.
	(process_options): Initialize default_debug_hooks.  Warn if
	-fvar-tracking specified but not supported by the current
	debug format.  Do not run var tracking at -O0 or if not
	supported by the current debug format, even if
	-fvar-tracking was given.  If -fno-rename-registers
	is not specified, always run register renaming if var
	tracking is supported by the default debugging information
	format for the target, and we are at -O1 or higher; similarly
	for -fweb, but only at -O2 or higher.
	* doc/invoke.texi (Optimize Options): Document this.

2004-04-17  Richard Sandiford  <rsandifo@redhat.com>

	* configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
	* configure: Regenerate.

2004-04-17  Richard Sandiford  <rsandifo@redhat.com>

	* gcc.c (used_arg): Check whether an option has been removed.

2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
	debugging on Solaris 7 and up.

2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* doc/install.texi (Specific, mips-sgi-irix5): Reflect working
	IRIX 5 port.
	Remove -save-temps workaround, handled automatically.
	Require GNU binutils 2.15 for debugging.
	Remove SGI make warnings since GNU make is now required.
	(Specific, mips-sgi-irix6): Some markup fixes.
	Describe MIPSpro C problems and workarounds.
	Mention working O32 ABI support.
	Recommend GNU as 2.15 for O32 with debugging.
	Remove description of fixed structure pass/return bug.

2004-04-16  DJ Delorie  <dj@redhat.com>

	* sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
	TYPE_FIELDS.
	(sdbout_finish): Don't free deferred_global_decls; it's GC'd.

2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.md: Remove unnecessary declarations for asm_out_file.

	* pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
	SAR register.  Fix comment.
	(ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
	(%cr11).

	* pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.

2004-04-16  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.c (arm_override_options): Revert previous patch.
	* config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
	be safely built.

2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>

	* config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
	bug.
	(TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
	TARGET_DEFAULT): Changed. Ditto.
	(LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
	TARGET_ENDIAN_DEFAULT): Added. Ditto.
	* config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
	(TARGET_ENDIAN_DEFAULT): Added.

2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
	ATTR_CONST_NOTHROW_LIST.

2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR/middle-end 14915
	* builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
	BITS_BIG_ENDIAN.

2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>

	* ra-debug.c (ra_print_rtx): Add break's to case legs.

2004-04-14  James E Wilson  <wilson@specifixinc.com>

	* Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.

2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>

	* libada-mk.in: New file.
	* configure.ac: Create libada-mk from libada-mk.in.
	* configure: Regenerate.

2004-04-14  Uros Bizjak  <uros@kss-loka.si>

	* optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
	(logb_optab, ilogb_optab): Define corresponding macros.
	* optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
	* genopinit.c (optabs): Implement logb_optab and ilogb_optab
	using logb?f2 and ilogb?i2 patterns.
	* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
	using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
	(expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
	using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.

	* reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
	and UNSPEC_XTRACT_EXP.

	* config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
	patterns to implement fxtract x87 instruction.
	(logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
	logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
	intrinsics.
	(UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
	x87's fxtract insn.

2004-04-14  Eric Christopher  <echristo@redhat.com>

	* config/mips/t-elf: Enable multilibs by default.

2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>

	* bb-reorder.c (fix_crossing_conditional_branches): Adjust the
	previous fix to check HAVE_return at runtime too.

2004-04-14  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.c (arm_override_options): If the user has not
	specified an ABI, then default to AAPCS for the iWMMXt processor.
	* config/arm/t-xscale-elf: Remove redundant multilib specifications.
	* config/arm/t-xscale-coff: Likewise.

2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_isdigit): New.
	(fold_builtin): Handle BUILT_IN_ISDIGIT.
	* defaults.h: Add TARGET_DIGIT0 and sort.
	* doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.

2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_cabs, fold_builtin): Use
	`mathfn_built_in' to determine the new builtin.
	* fold-const.c (fold): Likewise.

2004-04-14  Richard Sandiford  <rsandifo@redhat.com>

	* doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
	* config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
	(TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
	(TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
	(ASM_SPEC): Update accordingly.
	* config/mips/mips.c: Update after above renaming.
	* config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
	* config/mips/vr4120-div.S: Renamed from vr4122-div.S.

2004-04-13  James E Wilson  <wilson@specifixinc.com>

	* c-opt.c (c_common_post_options): If this_input_filename is NULL,
	increment errorcount and return false instead of true.

2004-04-13  Uros Bizjak  <uros@kss-loka.si>:

	* optabs.c (expand_twoval_unop): Reorder function arguments.
	* builtins.c (expand_builtin_mathfn_3): Update calls to
	expand_twoval_unop.

	* reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
	and UNSPEC_TAN_TAN. Add missing comment.

	* config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
	patterns to implement fptan x87 instruction.
	(tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
	and tanl built-ins as inline x87 intrinsics. Define corresponding
	peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
	(UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
	x87's fptan insn.

2004-03-13  Richard Henderson  <rth@redhat.com>

	* bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
	for LABEL_REFs.

	* defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
	(UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
	* doc/invoke.texi: Update to match.

	* varasm.c (unlikely_text_section): Use assemble_align instead of
	ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
	correct alignment argument.

2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload1.c (emit_reload_insns): Set reg_has_output_reload to one
	after setting reg_last_reload_reg for optional output reloads.

2004-04-12  Fariborz Jahanian <fjahanian@apple.com>

	* config/rs6000/altivec.h (vec_mergeh, vec_mergel):
	Definition of these two macros are corrected by adding
	matchine right paren.

2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>

	* fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.

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

	* config/i386/i386.c (output_387_reg_move): New function.
	* config/i386/i386-protos.h (output_387_reg_move): Prototype here.
	* config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
	*movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
	*extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
	truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.

2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
	TYPE_DECL.
	* c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
	* stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
	* stor-layout.c (variable_size): Don't check for MINUS_EXPR.
	Use skip_simple_arithmetic to find SAVE_EXPR.
	(force_type_save_exprs, force_type_save_exprs_1): New functions.
	* tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
	Properly chain multiple pointers.
	(copy_tree_r): Copy a TYPE_DECL.
	* tree.c (variably_modified_type_p): Add some missing tests and
	make some other minor changes.
	* tree.h (force_type_save_exprs): New declaration.

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

	* simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
	Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
	side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
	Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
	x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
	x%-1 into 0 (or x&0 if x has side-effects).

2004-04-11  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md: Document why a pattern is not
	available.

	* config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
	of floats on the E500.
	(branch_positive_comparison_operator): Do not allow NE even on the
	E500.

2004-04-11  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_assemble_integer): Change
	in_text_unlikely_section to in_unlikely_text_section.

2004-04-11  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
	calling convention to allow a NULL_TREE to be returned.  Factor
	sanity checks from callers, return NULL_TREE when appropriate.
	(fold): Handle COMPOUND_EXPR operands of binary expressions
	before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
	whether a op (b,c) can be rewritten as (b, a op c).  Simplify
	calls to fold_binary_op_with_conditional_arg.

2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/mips/iris5.h (current_section_flags):  Add
	in_unlikely_executed_text and default case.

2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>

	* bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
	failure on solaris. Place ifdef HAVE_return around gen_ret call.
	* cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
	HAVE_return and place it around the place where it is needed.

2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>

	* varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
	ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
	and NORMAL_TEXT_SECTION_NAME.
	(unlikely_text_section): Check targetm.have_named_sections
	instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
	instead of SECTION_FORMAT_STRING.
	* config/mips/iris5.h (current_section_name): Add
	in_unlikely_executed_text case and move the abort into the switch.
	* config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
	(NORMAL_TEXT_SECTION_NAME): Remove.
	(UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
	(SECTION_FORMAT_STRING): Remove.
	* defaults.h (SECTION_FORMAT_STRING): Remove.
	* tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
	(SECTION_FORMAT_STRING): Remove.

2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-typeck.c (common_type): Prefer long long to long when same
	precision.

2004-04-09  Zack Weinberg  <zack@codesourcery.com>

	PR 14887
	* config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
	mode argument.
	* config/ia64/ia64.c (ia64_hpux_file_end): Check
	TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.

2004-04-09  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (mode_signbit_p): New function to check whether
	an RTX is an immediate constant that represents the most significant
	bit of a given machine mode.
	(simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
	C is the sign bit.
	(simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
	when C2 is the sign bit.
	(simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
	is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
	sign bit.

2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
	TYPE_MODE.

2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>

	* c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
	of TREE_READONLY for types.

2004-04-09  Caroline Tice  <ctice@apple.com>

	* basic-block.h (struct edge_def):  Add new field, crossing_edge.
	(struct basic_block_def):  Add new field, partition.
	(UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
	definitions.
	(partition_hot_cold_basic_blocks): Add extern function
	declaration.
	* bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
	include	statements.
	(N_ROUNDS): Increase the maximum number of rounds by 1.
	(branch_threshold): Add array value for new round.
	(exec_threshold): Add array value for new round.
	(push_to_next_round_p): New function.
	(add_unlikely_executed_notes): New function.
	(find_rarely_executed_basic_blocks_and_crossing_edges): New function.
	(mark_bb_for_unlikely_executed_section): New function.
	(add_labels_and_missing_jumps): New function.
	(add_reg_crossing_jump_notes): New function.
	(fix_up_fall_thru_edges): New function.
	(find_jump_block): New function.
	(fix_crossing_conditional_branches): New function.
	(fix_crossing_unconditional_branches): New function.
	(fix_edges_for_rarely_executed_code): New function.
	(partition_hot_cold_basic_blocks): New function.
	(find_traces):  Add an extra round for partitioning hot/cold
	basic blocks.
	(find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
	and only cold blocks, into the last (extra) round of collecting traces.
	(better_edge_p): Add a parameter.  Modify to favor non-crossing edges
	over crossing edges.
	(bb_to_key):  Add code to correctly identify cold blocks when
	doing partitioning.
	(connect_traces): Modify to connect all the non-cold traces first, then
	go back and connect up all the cold traces.
	(reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
	* cfg.c (entry_exit_blocks): Add initialization for partition field in
	entry and exit blocks.
	* cfgbuild.c (make_edges): Update current_function_has_computed_jump
	if we are doing hot/cold partitioning.
	* cfgcleanup.c (cfglayout.h): Add new include statement.
	(try_simplify_condjump): Modify to not attempt on blocks with jumps
	that cross section boundaries.
	(try_forward_edges): Likewise.
	(merge_blocks_move_predecessor_nojumps): Likewise.
	(merge_blocks_move_successor_nojumps): Likewise.
	(merge_blocks_move): Likewise.
	(try_crossjump_to_edge): Modify to not attempt after we have done
	the block partitioning.
	(try_crossjump_bb): Modify to not attempt on blocks with jumps that
	cross section boundaries.
	(try_optimize_cfg): Likewise.
	* cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
	jumps that cross section boundaries.
	* cfglayout.c (flags.h): Add new include statement.
	(update_unlikely_executed_notes):  New function.
	(fixup_reorder_chain):  Add code so when a new jumping basic block is
	added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
	updated appropriately.
	(duplicate_insn_chain):  Add code to duplicate the new NOTE insn
	introduced by this optimization.
	* cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
	extern function declaration.
	* cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
	list of notes that can be deleted.
	(create_basic_block_structure):  Add initialization for partition field.
	(rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
	section boundaries.
	(try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
	cross section boundaries.
	(commit_one_edge_insertion): Add code so newly created basic block
	ends up in correct (hot or cold) section.  Modify to disallow
	insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
	(rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
	crosses section boundaries.
	(cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
	cross section boundaries.
	(force_nonfallthru_and_redirect): Modify to make sure new basic block
	ends up in correct section, with correct notes attached.
	* common.opt (freorder-blocks-and-partition):  Add new flag for this
	optimization.
	* dbxout.c (dbx_function_end):  Add code to make sure scope labels at
	the end of functions are written into the correct (hot or cold)
	section.
	(dbx_source_file): Add code so writing debug file information
	doesn't incorrectly change sections.
	* defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
	in partitioning hot/cold basic blocks into separate sections.
	(SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
	section partitioning.
	(HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
	conditional branches can span all of memory.
	(HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
	unconditional branches can span all of memory.
	* final.c (scan_ahead_for_unlikely_executed_note):  New function.
	(final_scan_insn):  Add code to check for NOTE instruction indicating
	whether basic block belongs in hot or cold section, and to make sure
	the current basic block is being written to the appropriate section.
	Also added code to ensure that jump table basic blocks end up in the
	correct section.
	* flags.h (flag_reorder_blocks_and_partition):  New flag.
	* ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
	one of the branches has a jump that crosses between sections.
	(find_if_case_2): Likewise.
	(ifcvt): Modify to not attempt to mark loop exit edges after
	hot/cold partitioning has occurred.
	* opts.c (decode_options): Code to handle new flag,
	flag_reorder_blocks_and_partition; also to turn it off if
	flag_exceptions is on.
	(common_handle_option): Code to handle new flag,
	flag_reorder_blocks_and_partition.
	* output.h (unlikely_text_section): New extern function declaration.
	(in_unlikely_text_section): New extern function declaration.
	* passes.c (rest_of_handle_stack_regs):  Add
	flag_reorder_blocks_and_partition as an 'or' condition for calling
	reorder_basic_blocks.
	(rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
	as an 'or' condition for calling reorder_basic_blocks.
	(rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
	* print-rtl.c (print_rtx): Add code for handling new note,
	NOTE_INSN_UNLIKELY_EXECUTED_CODE
	* rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
	(REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
	cross between section boundaries.
	* rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
	indicating the basic block containing it belongs in the cold section.
	(REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
	between hot and cold sections.
	* toplev.c (flag_reorder_blocks_and_partition):  Add code to
	initialize this flag, and to tie it to the command-line option
	freorder-blocks-and-partition.
	* varasm.c (cfglayout.h):  Add new include statement.
	(unlikely_section_label_printed):  New global variable, used for
	determining when to output section name labels for cold sections.
	(in_section):  Add in_unlikely_executed_text to enum data structure.
	(text_section):  Modify code to use SECTION_FORMAT_STRING and
	NORMAL_TEXT_SECTION_NAME macros.
	(unlikely_text_section):  New function.
	(in_unlikely_text_section):  New function.
	(function_section):  Add code to make sure beginning of function is
	written into correct section (hot or cold).
	(assemble_start_function):  Add code to make sure stuff is written to
	the correct section.
	(assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
	to an if statement that was checking 'in_text_section'.
	(assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
	condition to an if statement that was checking 'in_text_section'.
	(default_section_type_flags_1):  Add check: if in cold section
	flags = SECTION_CODE.
	* config/darwin.c (darwin_asm_named_section):  Modify to use
	SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
	* config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
	specifically for the i386.
	(HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
	* config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
	text string to something more informative.
	(NORMAL_TEXT_SECTION_NAME): Add new definition.
	(SECTION_FORMAT_STRING):  Add new definition.
	* config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
	'!in_unlikely_text_section' as an 'and' condition to an if statement
	that was already checking '!in_text_section'.
	* config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
	UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
	sure these are properly defined for linux on ppc.
	* doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
	for this new flag.
	* doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
	reg_note.
	* doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
	HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
	these new macros.

2004-04-08  Roger Sayle  <roger@eyesopen.com>

	* function.c (gen_mem_addressof): When changing the RTX from a REG
	to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.

2004-04-08  Roger Sayle  <roger@eyesopen.com>

	PR target/14888
	* config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
	truncxfdf2_noop): Provide dummy "fmov" implementations.

2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>

	* gcc.c (default_compilers): Add missing initializers.

	* config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
	Return 1 if file was successfully mapped.

2004-04-08  Geoffrey Keating  <geoffk@apple.com>

	PR pch/13419
	PR pch/14137
	Radar #: 3315288
	* doc/invoke.texi (Precompiled Headers): Suggest -o
	to put an output file in a particular place.  Be more detailed
	about which options affect PCH validity and which options
	might not work.
	* c-pch.c (pch_matching): New.
	(MATCH_SIZE): New.
	(struct c_pch_validity): New field 'match'.
	(pch_init): Handle pch_matching.
	(c_common_valid_pch): Check pch_matching.

	* explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.

2004-04-08  Mark Mitchell  <mark@codesourcery.com>

	* doc/invoke.texi (Precompiled Headers): Warn about known
	problems.

2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>

	PR c++/14808
	* defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
	to 1 if ASM_OUTPUT_DEF is defined.
	* doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
	* config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
	Set to non-zero iff not a one_only decl.

2004-04-08  Paul Brook  <paul@codesourcery.com>

	* arm.h (CLASS_LIKELY_SPILLED_P): Define.

2004-04-08  Paul Brook  <paul@codesourcery.com>

	* explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
	PROMOTE_FOR_CALL_ONLY.
	* config/arm/arm-protos.h (arm_function_value): Declare.
	* config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
	(TARGET_PROMOTE_PROTOTYPES): Return false.
	(arm_function_value): New function.
	* config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
	(FUNCTION_VALUE): Call arm_function_value.
	* config/cris/cris.h (PROMOTE_MODE): Rename ...
	(PROMOTE_FUNCTION_MODE): ... to this.
	(PROMOTE_FOR_CALL_ONLY): Remove.
	* config/mmix/mmix.h: Likewise.
	* config/s390/s390.h: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/sparc/sparc.c: Update comments about PROMOTE_MODE.
	* doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
	(TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
	(PROMOTE_FOR_CALL_ONLY): Remove.

2004-04-08  Joel Sherrill <joel@oarcorp.com>

	PR ada/14538
	* ada/5rosinte.adb: Remove fake mprotect() body.
	* ada/5rosinte.ads: Add SA_SIGINFO.
	* ada/5rtpopsp.adb: Rewrite to use new interface.
	* ada/init.c: Reorder so the simple single OS conditional __rtems__
	is tested before more complex ones which mix UNIX and embedded
	systems in the conditional.

2004-04-08  Joel Sherrill  <joel@oarcorp.com>

	PR ada/14665
	* ada/osint.adb (Find_Program_Name): Rework to properly handle
	filenames which end in .exe or have versioning suffixes like VMS.

2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/10129
	* config/darwin.c (darwin_encode_section_info): When the decl has
	a DECL_INITIAL, it is only defined also when it is not a common.

2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
	(fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.

2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>

	* config/ia64/ia64.c (ia64_encode_section_info): Don't prod
	global register variables.

2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>

	* fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
	rpc_xdr_lvalue_cast_b): New fixes.
	* fixinc/fixincl.x: Regenerate.
	* fixinc/tests/base/rpc/xdr.h: Add new tests.

2004-04-07  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
	to power4 and power5 entries.

2004-04-06  Geoffrey Keating  <geoffk@apple.com>

	* c-common.h (pending_lang_change): Mark for PCH.

2004-04-07  Caroline Tice  <ctice@apple.com>

	* gcc.c (main): Move 'break' in main loops (on an error)
	to wait until error processing has occurred.

2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>

	* config.gcc: Stop changing enable_threads midstream.
	Replace uses of enable_threads_flag with enable_threads.
	* configure.ac: Replace uses of enable_threads_flag with
	enable_threads.  Improve autoconf quotation in one place.
	* configure: Regenerate.

2004-04-06  Uros Bizjak  <uros@kss-loka.si>

	* builtins.c: Implement support for sincos function.
	(expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
	BUILT_IN_COS{,F,L}.
	(expand_builtin_mathfn_3): New function.
	(expand_builtin): Expand BUILT_IN_SIN{,F,L} and
	BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
	flag_unsafe_math_optimization is set.

	* optabs.h (enum optab_index): Add new OTI_sincos.
	(sincos_optab): Define corresponding macro.

	* optabs.c (init_optabs): Initialize sincos_optab.
	(expand_twoval_unop): New function.

	* genopinit.c (optabs): Implement sincos_optab using sincos?f3
	patterns.

	* reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
	and UNSPEC_SINCOS_SIN.

	* config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
	sincosxf3): New patterns to implement sincos, sincosf and sincosl
	built-ins as inline x87 intrinsics. Define splits for
	sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
	cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
	sincos patterns.
	(sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
	(cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.

	(UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
	x87's fsincos insn.

2004-04-06  Devang Patel  <dpatel@apple.com>

	PR 14467
	* config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.

2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* doc/install.texi: Update HP-UX 11 installation procedure.

2004-04-06  Paul Brook  <paul@codesourcery.com>

	* doc/sourcebuild.texi: Remove obsolete contraint on testcases.

2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (prepare_move_operands): Use emit_call_insn
	when the TLS address is generated by a function call.
	* config/sh/sh.md (tls_global_dynamic): Use a call expression.
	(tls_local_dynamic): Likewise.

2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>

	* tree.c (reconstruct_complex_type): Use TYPE_READONLY
	and TYPE_VOLATILE.

2004-04-05  Caroline Tice  <ctice@apple.com>

	* gcc.c (combine_flag): New global variable, for new driver option.
	(struct compiler): Add two new fields, to be used when
	combining multiple input files in a single pass (IMA).
	(default_compilers):  Add values for the new fields to all
	compiler entries. Modify the "@c" compiler entry for doing IMA
	properly with "-save-temps" and the "combine" flag.
	(option_map):  Add new driver option, "--combine", to tell driver
	to pass multiple input files to compiler at one time.
	(have_o_argbuf_index): New global variable.
	(store_arg): Modify to assign value to have_o_argbuf_index.
	(struct infile):  Add three new fields, to help with IMA.
	(display_help): Add help for new "combine" option.
	(process_command): Remove local variable have_o; add code to check
	for new "combine" option; remove assignment to combine_inputs.
	(do_spec_1):  Modify to deal with IMA better.
	(main): Make variable 'lang_n_infiles' local to entire function
	rather than to a single block.  Use flag combine_flag to
	determine whether to do IMA or not; Modify loop initializing
	infiles to deal properly with linker files.
	Add code for doing preprocessing in presence of
	IMA with "-save-temps" flag.  Modify "main" loop to handle
	multiple input files, in multiple languages, with or without
	preprocessing,  gracefully.
	* toplev.c (set_src_pwd): Modify to not complain if attempting to
	re-set it to same directory it's previously been set to (avoid
	irritating, meaningless warning messages when doing IMA with
	save-temps).
	* doc/invoke.texi: Add "-combine" to list of Overall Options;
	remove documentation about IMA that is no longer accurate; Add
	documentation explaining what "-combine" does.
	* ada/lang-specs.h: Add initialization values for new fields in
	"struct compiler".
	* cp/lang-specs.h: Likewise.
	* f/lang-specs.h: Likewise.
	* java/lang-specs.h: Likewise.
	* objc/lang-specs.h: Likewise.
	* treelang/lang-specs.h: Likewise.

2004-04-05  David Edelsohn

	* config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
	symbol handling.

2004-04-05  Jakub Jelinek  <jakub@redhat.com>
	    John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR optimization/13424 (hppa), bootstrap/14462, c/14828
	* pa.md: Use replace_equiv_address to retain the attributes of the
	memory operands used in the split and peephole2 patterns for optimizing
	the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.

2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* c-decl.c (build_compound_literal): Use TYPE_READONLY.
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
	* objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
	* c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
	PARM_DECL.
	* calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
	for a type.
	* print-tree.c (print_node): Properly handle side-effects, readonly,
	and constant flags.
	* tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
	and TREE_CONSTANT if not a type.
	* tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
	(IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
	(NON_TYPE_CHECK): New macro.
	(TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.

2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
	to DWARF2_DEBUG unconditionally.
	(ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.

2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
	    Nathanael Nerode  <neroden@gcc.gnu.org>

	PR target/14548
	* config.host: Set the shell variable host_can_use_collect2.
	Set it to yes by default, and to no for alpha*-dec-*vms*,
	i[34567]86-*-mingw32*, and powerpc-*-beos*.
	* configure.ac: Set and substitute the shell variable collect2.
	Give an error if use_collect2 is yes and host_can_use_collect2 is
	no.
	* Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
	uses.  Initialize to @collect2@.
	(STAGESTUFF): Remove $(USE_COLLECT2).
	* config/alpha/x-vms (USE_COLLECT2): Don't set.
	* config/i386/t-mingw32 (USE_COLLECT2): Likewise.
	* config/rs6000/t-beos (USE_COLLECT2): Likewise.
	* config/pa/t-pa64: Remove commented out USE_COLLECT2.
	* configure: Regenerate.

2004-04-04  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (simplify_binary_operation): Constant fold
	DIV, MOD, UDIV and UMOD using div_and_round_double.

2004-04-04  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14804
	* varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
	RECORD_TYPEs.

2004-04-04  Mark Mitchell  <mark@codesourcery.com>

	* doc/invoke.texi (-mabi=o64): Create link to O64 ABI
	documentation.

2004-04-04  Roger Sayle  <roger@eyesopen.com>

	* cse.c (cse_insn): Correct usage of simplify_replace_rtx when
	updating the REG_EQUAL note on an insn's libcall_insn.

2004-04-04  Roger Sayle  <roger@eyesopen.com>

	* df.h: Tidy up whitespace in the definitions of the DF_ flags.

2004-04-03  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
	with reorder_operands_p.

2004-04-03  Jan Hubicka  <jh@suse.cz>

	* md.texi (vec_set, vec_extract, vec_init): Document.

2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>

       * opts.c (decode_options): Do function inlining with very small
       max-inline-insns-* parameters when optimizing for size.

2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>

	* config/i386/i386.h (TARGET_NOCONA): New macro.
	(TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
	(processor_type): Add PROCESSOR_NOCONA.

	* config/i386/i386.md (cpu): Add nocona to the attribute values.

	* config/i386/i386.c (nocona_cost): New variable.
	(m_NOCONA): New macro.
	(x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
	x86_branch_hints, x86_use_sahf, x86_single_stringop,
	x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
	x86_integer_DFmode_moves, x86_partial_reg_dependency,
	x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
	x86_decompose_lea, x86_arch_always_fancy_math_387,
	x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
	x86_ext_80387_constants, x86_four_jump_limit):
	(override_options): Add nocona_cost to processor_target_table.
	Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
	(incdec_operand): Prevent inc/dec generation for Nocona too.
	(ix86_issue_rate): Add PROCESSOR_NOCONA.

2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>

	* rtlanal.c (find_reg_note): Manually
	unswitch the loop.

2004-04-01  Mark Mitchell  <mark@codesourcery.com>

	* genemit.c (gen_split): Change prototype of generated code.
	* genrecog.c (write_action): Adjust prototype for and calls to
	gen_split_*.
	* gensupport.c (struct queue_elem): Add split field.
	(queue_pattern): Return a value.  Clear the split field.
	(process_rtx): Maintain an association between an insn and the
	split generated from it for a define_insn_and_split.
	(process_one_cond_exec): Generate a new split for a
	define_insn_and_split.
	* config/arm/arm-protos.h (arm_split_constant): Add insn
	parameter.
	(emit_constant_insn): New function.
	(arm_gen_constant): Use it.
	* config/arm/arm.md: Adjust calls to arm_split_constant.

2004-04-02  Jan Hubicka  <jh@suse.cz>

	* cgraph.c: Add overall comment.
	(cgraph_inline_hash): New global variable.
	(cgraph_create_node): Break out from ...
	(cgraph_node): ... here.
	(cgraph_edge): New function.
	(cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
	(cgraph_remove_edge): Accept edge, intead of source and destination.
	(cgraph_redirect_edge_callee): New.
	(cgraph_remove_node): Update all new datastructures.
	(cgraph_record_call, cgraph_remove_call): Kill.
	(dump_cgraph_node): Break out from ... ; dump new datastructures.
	(dump_cgraph): ... here.
	(cgraph_function_possibly_inlined_p): Use new hashtable.
	(cgraph_clone_edge, cgraph_clone_node): New.
	* cgraph.h: Include hashtab.h
	(struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
	fields, add inlined_to pointer.
	(cgraph_node): Add pointer to next_clone.
	(cgraph_remove_edge, cgraph_create_edge): Update prototype.
	(cgraph_remove_call, cgraph_record_call): Kill.
	(cgraph_inline_hash): Declare.
	(dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
	cgraph_redirect_edge_callee): Declare.
	(cgraph_create_edges, cgraph_inline_p): Update prorotype.
	(cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
	cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
	* cgraphunit.c: Add overall comment.
	(cgraph_optimize_function): Kill.
	(cgraph_assemble_pending_functions): Do not assemble inline clones.
	(cgraph_finalize_function): Update call of cgraph_remove_node
	(record_call_1): Record call sites.
	(cgraph_create_edges): Accept node instead of decl argument.
	(error_found): New static variable.
	(verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
	(cgraph_analyze_function): Update for new datastructures.
	(cgraph_finalize_compilation_unit): Plug memory leak.
	(cgraph_optimize_function): Kill.
	(cgraph_expand_function): Do not use cgraph_optimize_function.
	(INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
	cgraph_inlined_callees): Kill.
	(cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
	clones.
	(estimate_growth): Simplify.
	(cgraph_clone_inlined_nodes): New function.
	(cgraph_mark_inline_edge): Re-implement.
	(cgraph_mark_inline): Likewise.
	(cgraph_check_inline_limits): Simplify.
	(cgraph_recursive_inlining_p): New.
	(update_callee_keys): Break out from ...
	(cgraph_decide_inlining_of_small_functions): ... here; simplify.
	(cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
	Likewise.
	(cgraph_expand_all_functions):  Remove inline clones from the ordered
	list.
	(cgraph_preserve_function_body_p): New predicate.
	(cgraph_optimize): Verify cgraph.
	* function.h (struct function): Add fields saved_tree/saved_args.
	* timevar.def (TV_CGRAPH_VERIFY): Use verifier.
	* toplev.c (rest_of_compilation): Do not free cfun.
	* tree-inline.c: Include function.h
	(struct inline_data): Add saving_p field; replace decl/current_decl by
	node/current_node.
	(insert_decl_map): New function.
	(copy_body_r): Handle saving; update cgraph datastructure.
	(copy_body): Handle recursive inlining.
	(initialize_inlined_parameters): Likewise.
	(expand_call_inline): Propagate node attributes; update cgraph.
	(optimize_inline_calls): Verify that datastructure still match.
	(save_body): New function.
	* tree-inline.h (save_body): New.
	* tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
	* langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
	* langhooks.c (lang_hooks): Add update_decl_after_saving.

2004-04-01  Serge Belyshev  <1319@bot.ru>

	PR target/14702
	* config/i386/i386.md: fix source operand constraints in
	mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw

2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>

	* fold-const.c (folda): Preserve types of comparisons.

2004-04-01  Richard Henderson  <rth@redhat.com>

	* toplev.c (backend_init): Move init_optimization_passes call ...
	(lang_dependent_init): ... here.

2004-04-01  Alan Modra  <amodra@bigpond.net.au>
	    Jakub Jelinek  <jakub@redhat.com>

	* gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
	-lgcc --as-needed -lgcc_s --no-as-needed by default.
	* configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
	* configure: Rebuilt.
	* config.in: Rebuilt.
	* Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
	(stage2-start, stage3-start, stage4-start): Likewise.
	(stageprofile-start, stagefeedback-start): Likewise.

2004-04-01  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
	* config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
	* config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
	* config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
	(SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
	* config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
	with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
	* config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
	* config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
	* config/sparc/t-linux: Removed.

2004-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR c++/14755
	* fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
	"bitfld++ == const" to "++bitfld == const + incr" transformations.

2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
	* stor-layout.c (layout_decl): Likewise.
	* tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
	* fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
	* print-tree.c (print_node): Handle various used of unsigned_flag.
	* tree.def (BIT_FIELD_REF): Update comment.
	* tree.h (TREE_UNSIGNED): Deleted.
	(DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.

2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
	Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
	* c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
	* calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
	* expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
	* optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
	* tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
	* config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
	* config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
	* stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
	REAL_TYPE, not INTEGER_TYPE.
	(layout_type, case VECTOR_TYPE): Simplify code.
	* tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
	* tree.h: Update comments.
	(STRIP_NOPS): Use TYPE_UNSIGNED.
	(TYPE_UNSIGNED): New macro.
	(TYPE_TRAP_SIGNED): Remove now redundant check.
	(SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.

2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* function.c (put_var_into_stack): Properly set orig_reg for indirect.

2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
	Add darwin-fpsave.asm, darwin-vecsave.asm,
	and darwin-world.asm.
	(TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
	as the asm files contain altivec instructions.
	* config/rs6000/darwin-fpsave.asm: New file.
	* config/rs6000/darwin-vecsave.asm: New file.
	* config/rs6000/darwin-world.asm: New file.

2004-03-31  Zack Weinberg  <zack@codesourcery.com>

	* gengtype-yacc.y (option, stringseq): Add missing
	terminating semicolon.

2004-03-30  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
	tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
	tls_dtprel_ha_32, tls_dtprel_ha_64,
	tls_dtprel_lo_32, tls_dtprel_lo_64,
	tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
	tls_tprel_ha_32, tls_tprel_ha_64,
	tls_tprel_lo_32, tls_tprel_lo_64,
	tls_got_tprel_32, tls_got_tprel_64,
	tls_tls_32, tls_tls_64): Replace register_operand with
	gpc_reg_operand.

2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>

	* config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
	*ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
	*ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
	*ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
	*ctrdi_internal6): Replace register_operand with
	nonimmediate_operand.

2004-03-29  Fariborz Jahanian <fjahanian@apple.com>

	* fold-const.c (fold): Reassociate multiply expression
	with an adjacent non-multiply expression to use
	architecture's multiply-add instruction.

2004-03-30  Zack Weinberg  <zack@codesourcery.com>

	* gengtype.c (create_option): New function.
	* gengtype.h: Prototype it.
	* gengtype-yacc.y (stringseq): New rule.
	(option): Use create_option.  Add new bare ID production.  Use
	stringseq, not STRING directly.

	* alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
	* dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
	* varray.h, config/alpha/alpha.c:
	Use new shorter form of GTY markers.

	* doc/gty.texi: Rewrite.

2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/darwin.c (machopic_function_base_name):
	Remove current_name and getting the name of the
	current function.

2004-03-30  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.md (thumb_jump): Reduce the backward branch
	range, and increase the forward branch range, to allow for
	the fact that the PC will be off by 4.

2004-03-30  Alan Modra  <amodra@bigpond.net.au>

	* .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)

2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>

	* config/rs6000/rs6000.c (output_vec_const_move):
	Find all cases of EASY_VECTOR_15_ADD_SELF.
	(easy_vector_constant_add_self): Accept
	all vector constant loadable by vsplt* and vadd*.
	(easy_vector_same): Use easy_vector_splat_const.
	(easy_vector_const): Use easy_vector_splat_const.
	(easy_vector_splat_const): New function.
	(gen_easy_vector_constant_add_self): New function.

	* config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
	New prototype.

	* config/rs6000/altivec.md (movv4si splitter): Change to
	emit move insn with halfed vector constant.
	(*movv8hi splitter): Likewise.
	(*movv16qi splitter): Likewise.

2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>

	PR 11591
	* config/rs6000/rs6000.c (rs6000_legitimate_address):
	Allow any offset to argument pointer in no-strict case.

2004-03-30  Jan Hubicka  <jh@suse.cz>

	* toplev.c (backend_init): Add missing call to inint_optimization_passes.
	* passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
	dump file in non-unit-at-a-time mode.

2004-03-29  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h: Correct #ifdef to test for
	HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
	HAVE_AS_MUL_BUG_ABORT_OPTION.

2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
	the address inside the old RTL.

2004-03-28  Zack Weinberg  <zack@codesourcery.com>

	* c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
	(struct c_binding, struct c_scope): Add chain_next
	attributes to GTY markers.
	(struct lang_identifier, struct lang_tree_node): Define
	here...
	* c-tree.h: ... not here.  No longer need to declare struct
	c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
	* c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
	to C_SIZEOF_STRUCT_LANG_IDENTIFIER.

	PR 14734, 11944
	* c-decl.c (get_parm_info): If error_mark_node is encountered
	in the bindings chain, unbind and discard it; don't abort.

2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
	    Dorit Naishlos <dorit@il.ibm.com>

	* config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
	one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.

2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.

	* config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
	(m68hc11_attribute_table): New attribute "page0" to mark a global
	variable as being allocated from within page0 section.
	(m68hc11_encode_label): New function.
	(m68hc11_strip_name_encoding): New function.
	(m68hc11_page0_symbol_p): New function.
	(m68hc11_indirect_p): Accept global variables marked in page0.
	(m68hc11_encode_section_info): Lookup "page0" attribute.

	* config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
	represents access to page0 variables.

	* config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
	("*logicalsi3_silshl16_zext"): Likewise.
	("*ashldi3_const32"): Likewise.
	(peephole2 ashift): Likewise.

2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-tree.h (C_DECL_REGISTER): New.
	* c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
	finish_decl, grokdeclarator, get_parm_info), c-typeck.c
	(build_array_ref, c_mark_addressable): Set and use it.
	* c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
	Allow structures with volatile fields to be declared register.
	Don't check TREE_ADDRESSABLE before warning about taking address
	of register.
	* c-decl.c (finish_decl): Don't allow structures with volatile
	fields to be placed in named register.
	* doc/trouble.texi: Remove reference to structures with volatile
	fields in registers.

2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* function.c (thread_prologue_and_epilogue): Move
	NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
	before the epilogue.

2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* expr.c (store_constructor): Use gen_int_mode to correctly
	sign-extend CONST_INT value.

2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
	* builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
	* doc/extend.texi: Likewise.

2004-03-26  Diego Novillo  <dnovillo@redhat.com>

	* c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
	  with TYPE_ORIG_SIZE_TYPE.

2004-03-25  Aldy Hernandez  <aldyh@redhat.com>

	PR 14219
	* c-typeck.c (build_binary_op): Do not allow comparisons of
	vectors.

2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>

	* config.gcc: Remove sparc-tti-*.
	* config/sparc/pbd.h: Delete.

	* config/sparc/sol2.h: Remove note about Sun OS 4.x.
	* config/sparc/aout.h: Likewise.

	* config/sparc/sparc.h: Remove if 0'd code.
	* config/sparc/sparc.md (call): Remove if 0'd code.
	(call_value): Likewise.
	(nonlocal_goto): Likewise.
	(unimp_insn): Delete.

2004-03-25  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
	BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.

2004-03-25  Richard Henderson  <rth@redhat.com>

	PR 11527
	* c-typeck.c (pop_init_level): Emit pending init elements earlier
	rather than later.

2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin): Fix error in last change.

2004-03-25  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h: Formatting fix.

2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.def: Add ctype builtins.
	* doc/extend.texi: Likewise.

2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (fold_builtin): Add new builtin optimizations for
	sqrt and/or cbrt.
	* fold-const.c (fold): Likewise.

2004-03-25  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_always_hint): New variable.
	(rs6000_sched_groups): New variable.
	(processor_target_table): Add power5.
	(rs6000_override_options): Set rs6000_sched_insert_nops,
	rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
	from rs6000_sched_groups.
	(output_cbranch): Use rs6000_always_hint.
	(rs6000_variable_issue): Use rs6000_sched_groups.
	(rs6000_adjust_cost): Add CPU_POWER5.
	(is_microcoded_insn): Use rs6000_sched_groups.
	(is_dispatch_slot_restricted): Use rs6000_sched_groups.
	Return 2 for POWER5 cracked instructions.
	(is_cracked_insn): Use rs6000_sched_groups.
	(is_branch_slot_insn): Use rs6000_sched_groups.
	(rs6000_issue_rate): Add CPU_POWER5.
	(rs6000_sched_finish): Use rs6000_sched_groups.
	(rs6000_rtx_costs): Add PROCESSOR_POWER5.
	* config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
	(DEFAULT_SCHED_COSTLY_DEP): Delete.
	(DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
	(DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
	* config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
	* config/rs6000/power5.md: New file.
	* doc/invoke.texi: Add power5 option.

2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>

	* cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
	config/arm/arm.c, objc/objc-act.c: Fix comment typos.
	* doc/invoke.texi: Fix a typo.

2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>

	PR optimization/9707.
	* stmt.c (emit_case_nodes): Emit equality comparisons instead
	of recursing if both children are single-valued cases with no
	children.

2004-03-25  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (vfp_print_multi): Remove.
	(arm_output_fldmx): New function.
	(vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
	(arm_expand_prologue): Update to match.
	(arm_get_vfp_saved_size): New Function.
	(arm_get_frame_offsets): Use it.
	(arm_output_epilogue): Use new functions.

2004-03-24  Richard Henderson  <rth@redhat.com>

	* alias.c (alias_invariant, alias_invariant_size): Mark GTY.
	(reg_known_value, reg_known_value_size): Likewise; make static.
	(reg_known_equiv_p): Make static.
	(clear_reg_alias_info): Update for new indexing.
	(get_reg_known_value, set_reg_known_value): New.
	(get_reg_known_equiv_p, set_reg_known_equiv_p): New.
	(canon_rtx): Use them.
	(init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
	Don't play queer offsetting games with reg_known_value and
	reg_known_equiv_p.
	(end_alias_analysis): Free reg_known_value with gc.
	* rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
	* sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
	(deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
	functions instead.

2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>

	* dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
	config/i386/mmintrin.h: Update copyright.

2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.ac: Add --enable-werror-always (for top level bootstrap
	support).
	* configure: Regenerate.

2004-03-24  Ziemowit Laski  <zlaski@apple.com>

	* objc/objc-act.c (objc_comptypes): Treat comparisons
	between 'Class' and '<class> *' as explicitly invalid.

2004-03-24  David Edelsohn  <edelsohn@gnu.org>

	* doc/invoke.texi (-frename-registers): Add enabled at -O3.
	(-fprofile-values): Add enabled with profile-{generate,use}.
	(-fvpt): Same.
	(-ftracer): Add enabled with profile-use.
	(-funit-at-a-time): Add enabled at -O2,-O3.
	(-funroll-loops): Add enabled with profile-use.
	(-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
	(max-gcse-passes): Mention default.
	(max-cse-path-length): Mention default.

2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.in (STRICT2_WARN): Reorder.
	* configure.ac: Check for -Wold-style-definition, and use it
	in strict1_warn if it's available.
	* configure: Regnerate.

2004-03-24  Paul Brook  <paul@nowt.org>

	* config.gcc <arm>: Add --with-abi=
	* config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
	thumb_far_jump_used): Remove prototypes.
	(arm_needs_doubleword_align): Add prototype.
	(thumb_compute_initial_elimination_offset): Ditto.
	* config/arm/arm.c (arm_get_frame_offsets): New function.
	(use_return_insn, output_return_instruction, arm_output_epilogue,
	arm_output_function_epilogue, arm_compute_initial_elimination_offset,
	arm_expand_prologue, thumb_expand_epilogue): Use it.
	(arm_abi, target_abi_name, all_arm_abis): New variables.
	(arm_override_options): Set them.  Set structure padding for AAPCS.
	(arm_return_in_memory): Update ABI check.
	(arm_init_cumulative_args): Initialize can_split.
	(arm_needs_doubleword_align): New function.
	(arm_function_arg): Don't split args after pushing to stack. Handle
	doubleword/even reg alignment.
	(arm_va_arg): Handle all doubleword aligned args.
	(add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
	on ABI, not CPU.
	(arm_compute_save_reg0_reg12_mask): Fix comment.
	(thumb_get_frame_size, thumb_get_frame_size): Remove.
	(thumb_jump_far_used_p): Remove superfluous argument.  Return save
	value for alignment.
	(thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
	to match.
	(thumb_compute_initial_elimination_offset): New function.
	(thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
	unneccessary rounding.
	* config/arm/arm.h (target_abi_name): Declare.
	(ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
	arm_abi_type, ARM_DEFAULT_ABI): Define.
	(ARM_FLAG_ATPCS): Remove.
	(TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
	(BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
	(ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
	TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
	(LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
	Contitionalize on ABI, not CPU.
	(struct arm_stack_offsets): Define.
	(struct machine_function): Add stack_offsets.  Remove frame_size.
	(FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
	pushed.
	(FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
	doubleword alignment.
	(THUMB_INITIAL_ELIMINATION_OFFSET,
	ARM_INITIAL_ELIMINATION_OFFSET): Remove.
	(INITIAL_ELIMINATION_OFFSET): Call functions directly.
	* config/arm/arm.md (align_8): Enable for all targets.
	* config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
	(ARM_DEFAULT_ABI): Define.
	* doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
	-mstructure-size-boundary.

2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.ac: Check for -Wno-variadic-macros; don't use
	-pedantic (in stage 1 or a simple 'make all') unless it's available,
	and if it's available, use it.  Also, clean up check for
	-Wno-long-long.
	* configure: Regenerate.

2004-03-24  Richard Sandiford  <rsandifo@redhat.com>

	* config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
	* config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
	(MULTILIB_DEFAULTS): Use it.
	(MIPS_CPU_STRING_DEFAULT): Remove.
	(MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
	(DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
	EABI64 -mlong32 the default ABI.  Enforce the default architecture.
	* config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
	march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
	(MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
	(MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
	accordingly.

2004-03-24  DJ Delorie  <dj@redhat.com>
	    Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
	(TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
	(ASM_SPEC): Pass down -mfix-vr4122-bugs.
	* config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
	in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
	(mips_init_libfuncs): Use special functions for divsi3 and modsi3
	if TARGET_FIX_VR4122.
	* config/mips/mips.md (define_attr length): Account for nops inserted
	after macc and dmult when using -mfix-vr4122-bugs.
	(umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
	* config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
	LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
	* config/mips/vr4122-div.S: New file.
	* doc/invoke.texi: Document -mfix-vr4122-bugs.

2004-03-24  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (PROCESSOR_R4130): New processor_type.
	(TARGET_MIPS4130): New macro.
	(ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
	* config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
	(override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
	with PROCESSOR_R4130.
	* config/mips/mips.md (define_attr cpu): Add r4130.
	* doc/invoke.texi: Document vr4130 as a supported MIPS architecture.

2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
	    Richard Sandiford  <rsandifo@redhat.com>

	* doc/invoke.texi: Apply missed hunk from 2004-03-03 change.

2004-03-24  Alexandre Oliva  <aoliva@redhat.com>

	PR preprocessor/14438
	* cpplib.c (do_pragma): Remove line_change call after pragma
	handler.

2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>

	* doc/extend.texi (ARM Built-in Functions): Replace with correct
	declarations.

2004-03-23  Roger Sayle  <roger@eyesopen.com>

	* reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
	if flag_unsafe_math_optimizations.
	* config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
	and TARGET_80387 expand using truncdfsf2_noop pattern.
	(truncxfsf2): Likewise using truncxfsf2_noop.
	(truncxfdf2): Likewise using truncxfdf2_noop.
	(truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.

2004-03-23  Ziemowit Laski  <zlaski@apple.com>

	* hooks.c (hook_constcharptr_tree_null): New hook.
	* hooks.h (hook_constcharptr_tree_null): New prototype.
	* target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
	* target.h (mangle_fundamental_type): New target hook.
	* config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
	target hook at rs6000_mangle_fundamental_type.
	(rs6000_mangle_fundamental_type): New function.
	* doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.

2004-03-23  Zack Weinberg  <zack@codesourcery.com>

	PR 12267, 12391, 12560, 13129, 14114, 14133
	* c-tree.h: Forward declare struct c_binding.  Declare
	c_override_bindings_to_false.  Update prototypes.
	(struct lang_identifier): Update comments.  Change fields to be
	struct c_binding *.
	(IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
	(IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
	(KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
	(C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
	* c-common.h: Update prototypes.
	* c-decl.c (struct c_scope): Update commentary.  Remove names,
	names_last, parms, parms_last, tags, and shadowed fields.  Add
	bindings and depth fields.
	(scope_freelist): Move to more appropriate location.
	(c_print_identifier): Update for changes to struct lang_identifier.
	(objc_mark_locals_volatile): Update for new bindings structures.
	(global_bindings_p): Honor c_override_global_bindings_to_false.
	(pushlevel): Rename to push_scope; take no arguments; use the
	scope_freelist; initialize scope->depth and check for overflow.
	(poplevel): Rename to pop_scope; totally rewritten for new bindings
	structures.
	(diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
	C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
	Improve some commentary.  Adjust handling of forward parm decls.
	(merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
	Preserve C_DECL_IN_EXTERNAL_SCOPE.
	(warn_if_shadowing): Correct indentation.  Improve diagnostics.
	(pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
	decls.  Rewrite for new bindings structures.  Improve commentary.
	Eliminate the copy_node call.
	(implicit_decl_warning): Use the "diag" idiom (as seen in
	locate_old_decl) to reduce code duplication; call locate_old_decl
	if appropriate.  Relocate to remove need for forward declaration.
	(implicitly_declare): Adjust for new bindings structures.  Kludge
	around Objective-C not-really-builtin functions.
	(undeclared_variable): Improve diagnostics.  If current_function_decl
	is nonnull but current_function_scope is null, use current_scope.
	Use bind.
	(lookup_tag): Adjust for new bindings structures.  Kludge around
	Objective-C's tag declarations that wind up in the external scope.
	(lookup_name): Adjust for new bindings structures.  Kludge around
	c-common.c's pseudo-typedefs that wind up in the external scope.
	(lookup_name_current_level): Rename lookup_name_in_scope; take a
	second argument indicating the scope to examine; rewrite for
	new bindings structures.
	(c_init_decl_processing): Adjust for renamed functions.  Do not
	initialize current_file_decl, first_builtin_decl, last_builtin_decl.
	First scope pushed is the external scope, not the global scope.
	(builtin_function): Use bind, not pushdecl.  Adjust other bits
	for new data structures.  Keep track of builtins that should be
	made visible automatically.
	(start_decl): Adjust diagnostics.  Remove unnecessary call to
	expand_decl.
	(grokparms): Return 0 if arg_types is error_mark_node.
	(get_parm_info): Rename "void_at_end" argument to "ellipsis", with
	reversed sense.  Rewrite for new bindings structures.  Do not
	leave any decls in the scope, to prevent pop_scope from doing
	contradictory things with them.
	(finish_struct, finish_enum): Remove redundant diagnostics.
	(build_enumerator): Don't cascade diagnostics for error_mark_node.
	Mark location where -pedantic changes the meaning of the program.
	(store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
	parameter decls into the function's scope structure using bind.
	Warn here about function definitions in the wrong style.
	Adjust diagnostics.
	(store_parm_decls): Correct the determination of whether a
	function was defined with a prototype.
	(c_write_global_declarations): Operate on all file decls and on
	the external scope.  Split body of the loop to...
	(c_write_global_declarations_1): ... this new function, to avoid
	code duplication.
	(truly_local_externals, first_builtin_decl, last_builtin_decl)
	(make_scope, pop_scope, in_parm_level_p, set_block)
	(any_external_decl, record_external_decl, bind_label, getdecls)
	(link_hash_hash, link_hash_eq, merge_translation_unit_decls)
	(c_reset_state): Delete.
	(visible_builtins, c_override_global_bindings_to_false)
	(c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
	(I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
	(external_scope, binding_freelist, bind, free_binding_and_advance)
	(push_file_scope, pop_file_scope): New.
	(pushtag, pushdecl_top_level, lookup_label, declare_label)
	(define_label, c_make_fname_decl, finish_decl)
	(mark_forward_parm_decls, build_compound_literal)
	(grokdeclarator, start_function, check_for_loop_decls)
	(identifier_global_value, record_builtin_type): Minor adjustments
	for new bindings structures.  Improve diagnostics and commentary.
	* c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
	pushlevel/poplevel respectively.
	(c_objc_common_finish_file): Don't call merge_translation_unit_decls.
	* c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
	Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
	correct loop over multiple translation units; call fatal_error if
	requested to compile more than one file at once.  (This disables
	IMA temporarily - an up-front error being preferable to a crash.)
	* c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
	(all actions): Adjust calls to pushlevel/poplevel.
	(parsing_iso_function_signature): Delete.
	(extdef_1): Fold into extdef.
	(old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
	warn here about function definitions in the wrong style.
	(after_tyle_declarator, parm_declarator_starttypename)
	(parm_declarator_nostarttypename, notype_declarator): Remove
	commented-out productions.
	(parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
	an empty TREE_LIST node.  Adjust calls to get_parm_info.
	(parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
	to suppress -Wold-style-definition after this error.
	(c_parse_file): Don't clear the binding stack or call
	finish_fname_decls here.  Correct comment.
	* c-typeck.c (same_translation_unit_p): Export.
	(common_type): Use c_override_global_bindings_to_false, not
	pushlevel/poplevel/declare_parm_level.
	* c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
	LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
	and LANG_HOOKS_GETDECLS with do-nothing stubs.
	* objc/objc-lang.c: Likewise.
	* objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
	get_parm_info.
	(OBJC_VOID_AT_END): Delete; replace all uses
	with void_list_node.
	(generate_forward_declaration_to_string_table): Delete.
	* objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.

	* coverage.c (create_coverage): Don't pushdecl anything.
	* langhooks.c (lhd_clear_binding_stack): Call
	lang_hooks.decls.poplevel, not poplevel.
	* tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
	circular list rather than going into an infinite loop.

2004-03-23  Olivier Hainque  <hainque@act-europe.fr>

	* optabs.c (expand_binop): When synthesizing double word rotates
	from single word shifts, use a new register target if the provided
	target is not a REG already.

2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
	* c-common.c (handle_mode_attribute): Add extra arg to
	build_pointer_type_for_mode and build_reference_type_for_mode.
	* c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
	for INTEGER_CST.
	* tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
	Chain pointers via TYPE_NEXT_PTR_TO.
	(build_reference_type_for_mode): Similarly.
	(build_type_no_quals): Add extra arg to build_pointer_type_for_mode
	and build_reference_type_for_mode.
	(tree_check4_failed): New function.
	* tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
	(TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
	(TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
	Add check.

2004-03-23  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
	A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
	when both A and B are nonnegative.
	(tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
	nonzero.

2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
	VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.

2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>

	PR optimization/14669
	* fold-const.c (fold): Only unwiden integer comparisons for equality
	and inequality operators, or when the signedness doesn't change.

2004-03-23  Jakub Jelinek  <jakub@redhat.com>

	* config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
	* config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
	* config/sparc/t-linux: New file.

2004-03-23  Richard Sandiford  <rsandifo@redhat.com>

	* gcse.c (can_assign_to_reg_p): New function, split out from...
	(want_to_gcse_p): ...here.
	(compute_ld_motion_mems): Use can_assign_to_reg_p to validate
	the rhs of a store.

2004-03-22  Diego Novillo  <dnovillo@redhat.com>

	* c-typeck.c (same_translation_unit_p): Fix pasto.

2004-03-22  David Edelsohn  <edelsohn@gnu.org>

	* params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
	(PARAM_MAX_SCHED_REGION_INSNS): New.
	* sched-rgn.c: Include params.h
	(MAX_RGN_BLOCKS): Delete.
	(MAX_RGN_INSNS): Delete.
	(too_large): Return bool.  Convert to PARAM_VALUE.
	* Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
	* doc/invoke.texi (param): Document max-sched-region-blocks and
	max-sched-region-insns.

2004-03-22  Joel Brobecker  <brobecker@gnat.com>

	* dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
	for base types.

2004-03-22  Joel Brobecker  <brobecker@gnat.com>

	* dwarf2out.c (is_subrange_type): Minor code rework. No behavior
	change.

2004-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR c/14069
	* c-decl.c (finish_struct): Change type of incorrect flexible array
	field into error_mark_node.

2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/14580
	* config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
	who are not local for Darwin PIC.

2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* regrename.c (regrename_optimize): Set regs_ever_live for all
	registers introduced as replacement.

2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR middle-end/14470
	* expr.c (mark_queue): New function.
	(emit_insns_enqueued_after_mark): New function replacing
	emit_queue.  Clear the body of emitted queued insns.
	(emit_queue): Call emit_insns_enqueued_after_mark.
	(store_expr): Mark the increment queue on entry.  Emit
	only the incrementations queued when expanding the source.

2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.ac: Allow --disable-coverage-flags (for the future benefit
	of top level bootstrap, and consistency).  Reindent.
	* configure: Regenerate.

2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>

	* bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
	ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
	unnecessary casts.

2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>

	PR target/14291
	* gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
	__MINGW32__.

2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
	to nonimmediate_operand.
	("*doloop_di"): Likewise.

2004-03-21  Alexandre Oliva  <aoliva@redhat.com>

	* real.h (struct real_value): Use the same type for all
	bitfields.  Rename exp to uexp.
	(REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
	Adjust all uses of exp...
	* builtins.c: ... here, ...
	* emit-rtl.c: ... here, and ...
	* real.c: ... and here.

2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* pretty-print.c (pp_base_maybe_space): New function.
	* pretty-print.h (pp_base_maybe_space): Declare.
	(pp_maybe_space): New macro.

2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("addti3", "subti3"): New insns and splitters.

2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
	of using register multiplication cost.
	(expand_mult): Adapt choose_mult_variant call.
	(expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
	of MODE; pass appropriate cost bound.  Adjust result when
	performing signed multiplication by a negative constant.
	Don't use intermediate modes larger than word_mode.

2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
	* emit-rtl.c (component_ref_for_mem_expr): Likewise.
	(set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
	* explow.c (expr_size): Likewise.
	* expr.h (placeholder_list, find_placeholder): Deleted.
	* expr.c (store_constructor): Likewise.
	(get_inner_reference): Likewise.  Also don't call find_placeholder.
	(placeholder_list, find_placeholder): Deleted.
	(is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
	(expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
	(highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
	* dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
	* dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
	Likewise.
	* fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
	(extract_muldiv, case WITH_RECORD_EXPR): Likewise.
	* tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
	(contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
	Clean up by using first_rtl_op.
	(substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
	(substitute_placeholder_in_expr): New function.
	* tree.def (WITH_RECORD_EXPR): Deleted.
	* tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
	(substitute_placeholder_in_expr): New.

2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>

	* dojump.c (prefer_and_bit_test): Fix which part of
	the and_test is replaced.

2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>

	* frontends.texi: Add missing line.

2004-03-21  Zack Weinberg  <zack@codesourcery.com>
	    Chris Devers  <cdevers@pobox.com>
	    Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/frontends.texi: Rewrite.
	* doc/gcc.texi: Update last modification date.

2004-03-21  Josef Zlomek  <zlomekj@suse.cz>

	* cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
	message before redirecting the edge.

2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
	flag.
	* explow.c (force_not_mem): Set REG_POINTER flag according to
	MEM_POINTER one.
	* rtl.h (MEM_POINTER): New macro.
	(struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
	for MEM_POINTER.

2004-03-20  Roger Sayle  <roger@eyesopen.com>

	PR target/13889
	* cse.c (fold_rtx): Avoid substituting constants into unary
	conversion operations.

2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c (fold): Replace "expr" with "t".

2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>

	PR c/12373
	* c-typeck.c (tagged_types_tu_compatible_p): Don't use
	DECL_ORIGINAL_TYPE if there isn't one.

2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c (fold): Replace "final_type" with "type".
	Remove variable "final_type".

2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c (fold): Constify "type".
	Replace "TREE_TYPE (t)" with "type".

2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>

	* bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
	dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
	via (*targetm.foo) () with targetm.foo ().

2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR other/14630
	* doc/install.texi: Add info directory category and entry.

2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c (fold): Replace "t" with "tem" where it is used
	as a temporary variable.  Remove "orig_t" and all of its uses.

2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c (fold): Remove variable "invert".
	Move the handling of relational expressions that can be folded
	to a constant ...
	(fold_relational_const): ... here.
	(tree_expr_nonzero_p): New.

2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c/14635
	* builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
	DEF_GCC_BUILTIN.

2004-03-20  Richard Sandiford  <rsandifo@redhat.com>

	* Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
	(GTFILES): Add $(srcdir)/dojump.h.
	(gt-dojump.h): New dependency.
	* dojump.c (and_reg, and_test, shift_test): New static variables.
	(prefer_and_bit_test): New function.
	(do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.

2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>

	* c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
	expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
	reorg.c, tree.h: Fix comment typos.

2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>

	* alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
	c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
	cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
	haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
	sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
	vmsdbgout.c: Replace calls via (*targetm.foo) () with
	targetm.foo ().

2004-03-19  Ziemowit Laski  <zlaski@apple.com>

	* config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
	vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
	always_inline attribute.
	* config/rs6000/rs6000.c (altivec_expand_dst_builtin):
	Treat expansion as completed even if literal argument is
	invalid (so that other expansions are not tried in vain).

2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>

	* loop-doloop.c (add_test): Replace GEN_INT (0) with
	const0_rtx.

2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
	...
	(fold_abs_const): ... here.

2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.

2004-03-19  Denis Chertykov  <denisc@overta.ru>

	PR target/11520
	* config/avr/avr.md ("call_insn"): Handle explicit integer
	specially.
	(call_value_insn): Likewise.

2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* tree.c (substitute_in_expr): Rewrite to simplify and be more generic.

2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c (negate_expr): Move the handling of constants
	...
	(fold_negate_const): ... here.

2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
	* langhooks.h (struct lang_hooks_for_types): New field hash_types.
	* tree.c (debug_no_type_hash): Deleted.
	(type_hash_canon): Abort if passed a variant.
	Check lang_hooks.types.hash_types.
	(build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
	(build_array_type): Remove unnecessary allocation of pointer type.
	(build_complex_type): Properly qualify resulting type.

2004-03-19  Paolo Bonzini  <bonzini@gnu.org>

	* config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.

2004-03-19  Richard Sandiford  <rsandifo@redhat.com>

	* expmed.c (choose_mult_variant, expand_mult_const): New, split from...
	(expand_mult): ...here.
	(extract_high_half): New, split out from expand_mult_highpart.
	(expand_highpart_optab): Likewise.  Don't clobber target prematurely.
	(expand_highpart): Evaluate the cost of a shift/add sequence,
	then see if any of the specialized optabs are cheaper.

2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>

	* mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.

2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* convert.c (convert_to_real): Add more math builtins.

2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* convert.c (convert_to_real): Reformat using switch stmt.

2004-03-18  Mark Mitchell  <mark@codesourcery.com>

	* c-common.c (pointer_int_sum): Do not complain about using
	pointers to pointers-to-members.

2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
	have moved to the target hooks structure".

2004-03-18  James E Wilson  <wilson@specifixinc.com>

	* config/mips/mips.md (type): Split move into arith and fmove.  Split
	hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
	* config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
	Likewise.
	* config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
	Likewise.
	* config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
	rm7_fp_quick): Likewise.
	* config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
	rm9k_fquick): Likewise.
	* config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
	Likewise.
	(ir_sr70_icmp): Delete.

2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
	(tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
	(FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
	(REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
	(TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
	Protect with proper check.
	(TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
	(TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
	* tree.c (type_hash_eq): Rewrite to access proper fields for each type.
	(tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
	* c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
	* dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
	not TYPE_FIELDS.
	* stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.

2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>

	* gcse.c (eliminate_partially_redundant_loads): Reject change if
	dest is set between beginning and current insn.

2004-03-18  Mark Mitchell  <mark@codesourcery.com>

	* c-decl.c (grokdeclarator): Do not complain about redeclaring
	visible "static" identifiers "extern" in a local scope.
	* dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
	post-increments/decrements.

2004-03-18  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (current_function_arg_words): Delete.
	(xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
	(xtensa_va_start): Remove assignment to current_function_arg_words.

2004-03-18  Richard Sandiford  <rsandifo@redhat.com>

	* alias.c (record_set): Detect the case where a register is assigned
	a new value that has the same base term as the old one.

2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* doloop.c: Removed.
	* loop-doloop.c: New file.
	* Makefile.in (doloop.o): Remove.
	(loop-doloop.o): New.
	* cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
	* cfgloopanal.c (get_loop_level): New function.
	* loop-iv.c (iv_number_of_iterations): Handle case when loop
	is leaved immediatelly.
	* loop.c (strength_reduce): Do not call doloop optimization.
	* loop.h (LOOP_BCT): Removed.
	* passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
	(rest_of_handle_loop2): Call doloop_optimize_loops.
	(rest_of_compilation): Test for optimizations moved to
	rest_of_handle_loop2.

2004-03-17  Fariborz Jahanian <fjahanian@apple.com>

	* config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
	for mixed mode.
	(rs6000_emit_prologue): Ditto.
	(rs6000_emit_epilogue): Ditto.
	* config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
	macro for mixed mode.

2004-03-18  Jan Hubicka  <jh@suse.cz>

	* predict.c (propagate_freq): Compute correctly frequency of
	EXIT_BLOCK.

2004-03-17  Eric Christopher  <echristo@redhat.com>

	* builtins.c (apply_args_size): Use reg_raw_mode.
	(apply_result_size): Ditto.

2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	PR target/14620
	* config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.

2004-03-17  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
	32-bit builds when defaulting to 32-bit.

2004-03-17  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
	array.

2004-03-17  James E Wilson  <wilson@specifixinc.com>

	* config/mips/mips.md (zero_extendsidi2): Add length attribute.
	(hazard_nop): Change type to nop.
	(type): Split arith into arith, shift, slt, clz.  Delete darith.
	Fix all uses.  Change arith to multi if more than one insn emitted.
	* config/mips/5400.md (ir_vr54_arith): Likewise.
	* config/mips/5500.md (ir_vr55_arith): Likewise.
	* config/mips/7000.md (rm7_int_other): Likewise.
	* config/mips/9000.md (rm9k_int): Likewise.
	* config/mips/sr71k.md (ir_sr70_arith): Likewise.

2004-03-17  Joel Brobecker  <brobecker@gnat.com>

	* dwarf2out.c (subrange_type_die): Define new variable "subtype"
	to hold the subtype tree instead of recomputing it several times.

2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mn10300/mn10300.c (notice_update_cc): Don't handle
	CC_INVERT.
	* config/mn10300/mn10300.md (cc): Remove "invert".

2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (integer_valued_real_p): Add builtin rint.
	(fold_builtin): Likewise.
	* convert.c (convert_to_real): Likewise.

	* convert.c (convert_to_real): Fix typos in `long double'
	builtins.

2004-03-16  Mark Mitchell  <mark@codesourcery.com>

	PR c++/14481
	* fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
	generated COMPOUND_EXPRs.

2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* config/h8300/t-rtems (h8300-*-rtems*): New.

2004-03-16  Eric Christopher  <echristo@redhat.com>

	* doc/cppopts.texi(fwide-exec-charset): Fix typo.

2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>

	* config/i386/i386-protos.h: Add a prototype for
	ix86_reverse_condition.
	* config/i386/i386.c (ix86_reverse_condition): New.
	* config/i386/i386.h (REVERSE_CONDITION): Use
	ix86_reverse_condition.
	* config/i386/i386.md: Use ix86_reverse_condition instead of
	REVERSE_CONDITION.

2004-03-16  J. Brobecker  <brobecker@gnat.com>

	* dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.

2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>

	PR bootstrap/12974
	* Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.

2004-03-16  Paolo Bonzini  <bonzini@gnu.org>

	* c-common.c (c_common_type_for_mode): Build vector types on
	demand.
	(handle_mode_attribute): Deprecate using the mode attribute
	to create vector types.  Fix indentation.
	(vector_type_node_list): Remove.
	(handle_vector_size_attribute): Create vector types on demand.
	Strip a NON_LVALUE_EXPR from the attribute if there is one.
	* c-typeck.c (comptypes): Make vector types compatible if they
	have the same underlying mode.
	(convert_for_assignment): Use comptypes to convert between
	vector types.
	* tree.c (build_common_tree_nodes_2): Do not create vector types.
	* config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
	vector types.
	* tree.h: Remove vector types.
	* config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
	* config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
	(V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
	V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
	* doc/extend.texi (Vector Types): Document how to use the
	vector_size attribute to create vectors, rather than mode.

	* config/arm/mmintrin.h: Use vector_size attribute, not mode.
	* config/i386/emmintrin.h: Likewise.
	* config/i386/mmintrin.h: Likewise.
	* config/i386/xmmintrin.h: Likewise.
	* config/sh/ushmedia.h: Likewise.

2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>

	* config/freebsd-spec.h, config/arc/arc-protos.h,
	config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
	config/arm/linux-gas.h, config/arm/semi.h,
	config/cris/cris-protos.h, config/i386/xm-djgpp.h,
	config/ia64/freebsd.h, config/mips/7000.md,
	config/mips/9000.md, config/ns32k/ns32k-protos.h,
	config/sparc/pbd.h: Update copyright.

2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	PR target/14577
	* config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.

2004-03-16  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c (combine_simplify_rtx): Remove the "last"
	parameter and its documentation.  Adjust recursive calls.
	(simplify_logical): Always perform the only simplification
	controlled by "last", if the simplified expression is
	actually different.
	(try_combine): Do not pass the "last" parameter to
	combine_simplify_rtx.

2004-03-16  Richard Sandiford  <rsandifo@redhat.com>

	PR target/14599
	* config/mips/mips.md (UNSPEC_GP): New constant.
	* config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
	an UNSPEC instead of (reg $gp).
	(mips16_gp_pseudo_reg): Change accordingly.
	(print_operand): Print $gp directly when handling CONST_GP_P.

2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>

	* config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
	* longlong.h: Make code 68060 clean when compiling for m68060.

2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>

	* config/m68k/m68k.md: Fix constraints for bitfield instructions.
	* doc/md.texi: Clarify description of "i" constraint.

2004-03-15  James E Wilson  <wilson@specifixinc.com>

	* config/mips/mips.md (type): Split load into load, fpload, fpidxload.
	Split store into store, fpstore, fpidxstore.  Fix all uses.
	* config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
	Likewise.
	* config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
	* config/mips/7000.md (rm7_ld, rm7_st): Likewise.
	* config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
	* config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
	ir_sr70_fstore): Likewise.

2004-03-15  Richard Henderson  <rth@redhat.com>

	PR middle-end/14535
	* except.c (collect_one_action_chain): Record action for cleanup
	outer of exception spec.

2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>

	* config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
	Fix the check for abort and only do the mmap if we can.

2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>

	* config/sparc/sparc.h: Rework comments about the code model
	in 64-bit environment and the mode 'Pmode'.
	* doc/invoke.texi (SPARC options): Rework description of the
	different code models supported in 64-bit environment.

2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>

	* defaults.h (REVERSIBLE_CC_MODE): Define.
	* jump.c (reversed_comparison_code_parts): Don't check if
	REVERSIBLE_CC_MODE is defined.

2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>

	* c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
	et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
	hosthooks.h, params.h, ra-colorize.c, web.c,
	config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
	config/avr/avr-protos.h, config/avr/avr.md,
	config/fr30/fr30-protos.h, config/fr30/fr30.md,
	config/h8300/fixunssfsi.c, config/i386/darwin.h,
	config/i386/freebsd.h, config/i386/freebsd64.h,
	config/ia64/hpux.h, config/ia64/unwind-ia64.c,
	config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
	config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
	config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
	config/pa/pa64-regs.h, config/rs6000/aix41.h,
	config/rs6000/aix43.h, config/rs6000/host-darwin.c,
	config/sparc/aout.h, config/sparc/freebsd.h,
	config/sparc/litecoff.h, config/vax/vax-protos.h,
	doc/hostconfig.texi, doc/include/gcc-common.texi: Update
	copyright.

2004-03-15  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.

2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-pretty-print.c (pp_c_semicolon): Fix formatting.
	(pp_c_cv_qualifier): Document.
	(pp_c_space_for_pointer_operator): Likewise.
	(pp_c_integer_constant): Likewise.
	(pp_c_identifier): Likewise.
	(pp_c_init_declarator): Don't print function body.

2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
	doc/install.texi, doc/invoke.texi, doc/makefile.texi,
	doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
	"gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
	wording and grammar.

2004-03-14  Roger Sayle  <roger@eyesopen.com>

	* alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
	with lang_hooks.foo ().
	* builtins.c (expand_builtin_va_arg): Likewise.
	* c-common.c (fname_as_string, c_common_truthvalue_conversion,
	c_common_type_for_mode, c_common_nodes_and_builtins,
	handle_mode_attribute, handle_vector_size_attribute): Likewise.
	* c-convert.c (convert): Likewise.
	* c-format.c (check_format_types): Likewise.
	* c-objc-common.c (c_tree_printer): Likewise.
	* c-typeck.c (build_unary_op, build_conditional_expr,
	build_binary_op): Likewise.
	* calls.c (try_to_integrate, expand_call,
	emit_library_call_value_1): Likewise.
	* cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
	Likewise.
	* cgraphunit.c (record_call_1, cgraph_analyze_function,
	cgraph_expand_function): Likewise.
	* convert.c (convert_to_pointer, convert_to_integer): Likewise.
	* coverage.c (build_fn_info_type, build_ctr_info_type,
	build_gcov_info, create_coverage): Likewise.
	* dbxout.c (dbxout_init): Likewise.
	* diagnostic.c (diagnostic_report_current_function): Likewise.
	* dojump.c (do_jump): Likewise.
	* dwarf2out.c (dwarf2_name): Likewise.
	* except.c (init_eh): Likewise.
	* explow.c (expr_size, int_expr_size): Likewise.
	* expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
	Likewise.
	* expr.c (store_expr, store_constructor, safe_from_p,
	expand_expr_real, do_store_flag, try_casesi): Likewise.
	* function.c (push_function_context_to, pop_function_context_from,
	free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
	put_var_into_stack, allocate_struct_function, current_function_name):
	Likewise.
	* integrate.c (copy_decl_for_inlining, expand_inline_function):
	Likewise.
	* langhooks.c (lhd_clear_binding_stack, write_global_declarations,
	lhd_print_error_function): Likewise.
	* opts.c (handle_option, decode_options): Likewise.
	* passes.c (open_dump_file): Likewise.
	* print-tree.c (print_node): Likewise.
	* stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
	expand_decl_cleanup, emit_case_nodes): Likewise.
	* stor-layout.c (variable_size): Likewise.
	* toplev.c (announce_function, wrapup_global_declarations,
	check_global_declarations, compile_file, default_tree_printer,
	process_options, lang_dependent_init, finalize): Likewise.
	* tree-dump.c (dequeue_and_dump): Likewise.
	* tree-inline.c (remap_decl, remap_block, copy_body_r,
	initialize_inlined_parameters, declare_return_variable,
	inlinable_function_p, expand_call_inline, optimize_inline_calls,
	walk_tree, copy_tree_r): Likewise.
	* tree-optimize.c (tree_rest_of_compilation): Likewise.
	* tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
	unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
	variably_modified_type_p, dump_tree_statistics): Likewise.
	* varasm.c (assemble_variable, compare_constant, copy_constant,
	force_const_mem, compute_reloc_for_constant, output_constant,
	output_addressed_constants, initializer_constant_valid_p): Likewise.

2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>

	* doc/install.texi: Make autoconf 2.13 the exception, not the rule.

2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>

	* doc/install.texi: Reflect autoconf and automake version for
	libffi. Update autoconf version to 2.59.

2004-03-13  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (negate_expr, operand_equal_for_comparison_p,
	optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
	make_range, build_range_check, fold_range_test, unextend,
	constant_boolean_node, fold_binary_op_with_conditional_arg,
	fold_truthop, fold_mathfn_compare, fold_inf_compare,
	fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
	with lang_hooks.foo ().

2004-03-14  Richard Earnshaw  <rearnsha@arm.com>

	* arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.

2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>

	* doc/install.texi: Note status of -fnew-ra.

2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR middle-end/14470
	* expr.c (store_expr): Call emit_queue before generating the move
	from the temporary to the original target.  Protect the temporary
	from emit_queue.

2004-03-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/14533
	* config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
	other than UNSPEC_GOTOFF.

2004-03-13  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
	to arm_legitimate_index_p.  Update all callers with SET as default
	value.
	(arm_legitimate_index_p): New argument, OUTER.  Restrict the index
	range if OUTER is a sign-extend operation on QImode.  Correctly
	reject shift operations on sign-extended QImode addresses.
	(bad_signed_byte_operand): Delete.
	(arm_extendqisi_mem_op): New function.
	* arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
	(EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
	constraints.
	(CONSTRAINT_LEN): New.
	(EXTRA_CONSTRAINT): Delete.  Replace with...
	(EXTRA_CONSTRAINT_STR): ... this.
	(PREDICATE_CODES): Remove bad_signed_byte_operand.
	* arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
	is now always default.
	(define_splits for bad sign-extend loads): Delete.
	(arm_extendqisi, arm_extendqisi_v5): Likewise.
	* arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
	Rework 'U' constraint to 'Uv'.
	* arm-protos.h: Remove bad_signed_byte_operand.  Add
	arm_extendqisi_mem_op.
	* doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
	Add Uq constraint.

2004-03-13  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
	with targetm version.

	PR target/14567
	* config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
	(HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
	* config/rs6000/rs6000.c (rs6000_arg_size): New function.
	Update all users of RS6000_ARG_SIZE.
	(function_arg_advance): Count fregno using mode size.
	(function_arg): Handle long double split over regs and memory.
	(function_arg_partial_nregs): Likewise.
	(rs6000_va_arg): Repackage complex args.

2004-03-13  Dean Ferreyra <dferreyra@igc.org>

	PR target/14047
	* config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
	(avr_insert_attributes): Pass "attributes" to avr_progmem_p.
	* config/avr/avr-protos.h (avr_progmem_p): Change prototype.

2004-03-12  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
	prototype.
	* config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
	* config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.

2004-03-12  Andrew Pinski  <apinski@apple.com>

	* config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
	Use ret instead of result. Use addr instead of base.

2004-03-12  David Edelsohn  <edelsohn@gnu.org>

	* doc/install.texi (*-ibm-aix*): Document assembler and achiver
	fixes required by libstdc++ and update installation instructions
	for libstdc++.a.

2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
	leading '@' on fastcall symbols before stripping suffix.

2004-03-12  Roger Sayle  <roger@eyesopen.com>

	* combine.c (unmentioned_reg_p): New function to check whether an
	expression is a "specialization" of another, i.e. that there are
	no registers or memory references mentioned in the first that don't
	appear in the second.
	(unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
	(combine_instructions): Also try combining instructions using the
	REG_EQUAL note from a preceding log-linked instruction.

2004-03-12  Roger Sayle  <roger@eyesopen.com>

	* config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.

2004-03-12  Matt Austern  <austern@apple.com>

	* target.h (struct gcc_target): New target hook, unwind_label.
	* target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
	* output.h (default_emit_unwind_label): New function.
	* default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
	(TARGET_USES_WEAK_UNWIND_INFO): New target macro.
	(TARGET_SUPPORTS_HIDDEN): New target macro.
	* dwarf2out.c (struct dw_fde_struct): Add field for function decl
	that corresponds to this FDE.
	(FRAME_BEGIN_LABEL): Allow target to override default label.
	(output_call_frame_info): If FDEs are linknonce, then use extra
	indirection for FDE encoding, output a label for each FDE, and
	output an empty label for each function without an FDE.
	(dwarf2out_begin_prologue): Set up decl field when creating an FDE.
	* varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
	decls with DECL_ONE_ONLY set, if that macro is defined.
	(make_decl_one_only): Don't use DECL_COMMON if we're compiling
	for a SUPPORTS_ONE_ONLY target.
	* config/darwin-protos.h (darwin_unique_section): Declare.
	(darwin_asm_named_section): Likewise.
	(darwin_section_type_flags): Likewise.
	(darwin_non_lazy_pcrel): Likewise.
	(darwin_emit_unwind_label): Likewise.
	(darwin_make_decl_one_only): Likewise.
	* config/darwin.c (machopic_finish): Get rid of tweak that
	eliminate stubs for symbols that are defined.
	(darwin_encode_section_info): Don't treat weak functions as defined.
	(darwin_make_decl_one_only): Define.
	(darwin_asm_named_section): Likewise.
	(darwin_section_type_flags): Likewise.
	(darwin_unique_section): Likewise.
	(darwin_emit_unwind_label): Likewise.
	(darwin_non_lazy_pcrel): Likewise.
	(darwin_asm_output_dwarf_delta): Difference between two labels is
	local only if both labels are local.
	* config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
	(ASM_MAKE_LABEL_LINKONCE): Likewise.
	(TARGET_SUPPORTS_HIDDEN): Likewise.
	(TARGET_USES_WEAK_UNWIND_INFO): Likewise.
	(TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
	(FRAME_BEGIN_LABEL): Likewise.
	(ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
	(ASM_DECLARE_FUNCTION_NAME): Likewise.
	(darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
	(TARGET_ASM_UNIQUE_SECTION): Define.
	(EH_FRAME_SECTION_NAME): Define.
	(EH_FRAME_SECTION_ATTR): Likewise.
	(ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
	(TARGET_ASM_NAMED_SECTION): Likewise.
	(TARGET_SECTION_TYPE_FLAGS): Likewise.
	* doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
	TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
	TARGET_ASM_EMIT_UNWIND_LABEL.

2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (expand_builtin_mathfn): Add pow10* to the
	existing exp10* case.
	(expand_builtin): Likewise.

2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/tm.texi (registers) <Values in Registers>: Add
	entry for REGMODE_NATURAL_SIZE.

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

	PR target/14547
	* target.h (struct gcc_target): Move calls substructure before
	booleans.  Add split_complex_arg.
	* function.c (assign_parms, split_complex_args): Use it.
	* calls.c (expand_call): Likewise.
	(split_complex_values): Likewise.  Check for splittable types
	before allocating memory.
	(split_complex_types): Likewise.
	* system.h (SPLIT_COMPLEX_ARGS): Poison.
	* expr.h (SPLIT_COMPLEX_ARGS): Remove.
	* target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
	* config/alpha/alpha.c (alpha_split_complex_arg): New.
	(TARGET_SPLIT_COMPLEX_ARG): New.
	* config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
	* config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
	(rs6000_override_options): Zap it for non-AIX.
	(rs6000_function_value): Use targetm.calls.split_complex_arg.
	* config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
	* config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
	* config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
	* doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
	SPLIT_COMPLEX_ARGS entry.

2004-03-11  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
	(alpha_lookup_xfloating_lib_func): Use them, return rtx.
	(alpha_emit_xfloating_arith): Update to match.
	(alpha_emit_xfloating_compare): Likewise.
	(alpha_emit_xfloating_cvt): Likewise.
	(alpha_emit_xfloating_libcall): Take already built symbol,
	mark call const.
	* config/alpha/alpha.md (extendsftf2, extenddftf2): Take
	op1 in a register.

2004-03-11  Richard Henderson  <rth@redhat.com>

	PR target/14539
	* config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.

	* simplify-rtx.c (simplify_relational_operation): Fix typo.

2004-03-11  Richard Henderson  <rth@redhat.com>

	PR middle-end/14477
	* except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.

2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>

	PR target/14262
	* calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
	defined, pass small BLKmode values in registers in the low-order part.

2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* combine.c (if_then_else_cond): Check for NULL return value of
	simplify_gen_subreg.

2004-03-11  Richard Sandiford  <rsandifo@redhat.com>

	PR target/14496
	* config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
	TARGET_SINGLE_FLOAT.

2004-03-11  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
	* config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
	* config/ia64/ia64.c (ia64_init_libfuncs): New.
	(ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.

2004-03-11  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
	-((int)X>>C) where C is an integer constant one bit less than the
	size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
	(negate_expr) <RSHIFT_EXPR>: Implement the above transformations.

	* simplify-rtx.c (simplify_unary_operation): Also implement the
	above transformations at the RTL level.

2004-03-11  Alan Modra  <amodra@bigpond.net.au>

	* real.c (encode_ibm_extended): Do round low word.

2004-03-11  Ben Elliston  <bje@wasabisystems.com>

	* config/arm/arm.md (is_xscale): Comment this attribute and move
	it a bit further up in the file, closer to related attributes.

2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/host-solaris.c (sol_gt_pch_use_address): Add
	missing terminating marker to comment.

2004-03-11  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
	(movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
	(*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
	(*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
	move_operand as source predicate in all cases.
	(*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
	Test reg_or_0_operand.  Use move_operand as source predicate.
	(*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
	(*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
	(*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
	(movhi, movqi, movsf, movdf): Use mips_legitimize_move.
	(*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
	Use move_operand as source predicate.  Remove 'K' constraint.
	(*movqi_internal): Likewise movqi_internal.
	(*movsf_hardfloat): Renamed from movsf_internal1.  Test
	reg_or_0_operand.  Use move_operand as source predicate.
	(*movsf_softfloat): Likewise movsf_internal2.
	(*movdf_hardfloat_64bit): Likewise movsf_internal1a.
	(*movdf_hardfloat_32bit): Likewise movsf_internal1b.
	(*movdf_softfloat): Likewise movdf_internal2.
	* config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
	for DImode if !TARGET_64BIT.
	(mips_legitimize_move): Simplify accordingly.

2004-03-11  Josef Zlomek  <zlomekj@suse.cz>

	PR/14362
	* var-tracking.c (struct variable_def): Added field refcount.
	(variable_htab_free): Decrease the refcount and delete variable
	only if there are no more references.
	(unshare_variable): New function.
	(vars_copy_1): Increase refcount instead of copying the variable.
	(variable_union): Share the variables where possible, unshare
	the variables if needed.
	(variable_different_p): Return false if var1 and var2 are
	the same structure.
	(variable_was_changed): Init the refcount of new variable.
	(set_frame_base_location): Unshare variable if needed.
	(set_variable_part): Init the refcount of new variable.
	Unshare the variables if needed.
	(delete_variable_part): Unshare the variables if needed.
	(emit_notes_for_differences_1): Init the refcount of new variable.
	(vt_add_function_parameters): Do not add function parameters to
	IN set of ENTRY_BLOCK_PTR because it is unused anyway.
	(vt_initialize): Do not add frame_base_decl to IN set of
	ENTRY_BLOCK_PTR because it is unused anyway.

2004-03-11  Josef Zlomek  <zlomekj@suse.cz>

	* var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
	(vars_copy): Likewise.
	(variable_union): Likewise.
	(set_variable_part): Likewise.
	(delete_variable_part): Likewise.

2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>

	* c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
	ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
	config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
	config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
	config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
	config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
	config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
	config/pdp11/pdp11.h, config/rs6000/rs6000.c,
	config/stormy16/stormy16.c: Fix comment typos and formatting.

2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure: Regenerate, since I forgot to while committing Paolo's
	changes.

2004-03-08  Paolo Bonzini  <bonzini@gnu.org>

	PR ada/14131
	Move language detection to the top level.
	* configure.ac: Remove code to detect languages,
	it now lives exclusively in the top level.
	* aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
	top level, renamed to ACX_PROG_GNAT.

2004-03-10  Richard Henderson  <rth@redhat.com>

	* c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
	extra arguments.
	* config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
	and host_xmake_file fragments.
	* ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
	(gt_pch_restore): Similarly for gt_pch_use_address.
	(default_gt_pch_get_address): New.
	(mmap_gt_pch_get_address): Split out of gt_pch_save.
	(default_gt_pch_use_address): Split out of gt_pch_restore.
	(mmap_gt_pch_use_address): Likewise.
	* hooks.c (hook_voidp_size_t_null): Remove.
	(hook_bool_voidp_size_t_false): Remove.
	* hooks.h: Likewise.
	* hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
	default_ or mmap_ definitions.
	(HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
	* hosthooks.h (struct host_hooks): Update gt_pch_get_address
	and gt_pch_use_address.
	* config/host-linux.c, config/host-solaris.c: New files.
	* config/x-linux, config/x-solaris: New files.
	* config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
	Update for changed definition.
	(darwin_rs6000_gt_pch_use_address): Likewise.
	* doc/hostconfig.texi: Update docs.

2004-03-10  Richard Henderson  <rth@redhat.com>

	PR c/14517
	* c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
	except for pedantic c90 mode.

2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>

	* configure.ac: Bump AC_PREREQ to 2.59.
	* configure: Regenerate.

2004-03-10  Uros Bizjak  <uros@kss-loka.si>

	* optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
	(exp10_optab, exp2_optab): Define corresponding macros.
	* optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
	* genopinit.c (optabs): Implement exp10_optab and exp2_optab
	using exp10?f2 and exp2?f2 patterns.
	* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
	using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
	(expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
	using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.

	* config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
	exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
	exp2, exp2f and exp2l built-ins as inline x87 intrinsics.

2004-03-10  Anthony Green  <green@redhat.com>

	* doc/invoke.texi (ARM Options): Fix -mpfu typo.

2004-03-10  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
	(TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
	__LONGDOUBLE128.
	* config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
	TARGET_OS_AIX_CPP_BUILTINS.
	* config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
	* config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
	* config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
	previous change.

2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.

2004-03-10  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
	__LONGDOUBLE128 on AIX.

2004-03-10  Andrew Haley  <aph@redhat.com>

	PR optimization/14381
	* function.c (expand_function_end): Emit a blockage insn before
	the epilogue when -fnon-call-exceptions is used.

	* except.c (expand_start_all_catch): Make comment more accurate.

2004-03-08  Joel Sherrill  <joel@oarcorp.com>

	PR target/14480
	* config/rs6000/t-rtems: Add missing file on branch.

2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>

	* dbxout.c (dbxout_symbol_location): Do not output references
	to optimized-out constant pool symbols.

2004-03-10  Andreas Schwab  <schwab@suse.de>

	* config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
	twon34_r.

2004-03-09  James E Wilson  <wilson@specifixinc.com>

	* alias.c (alias_sets_might_conflict_p): New.
	* c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
	* common.opt (Wstrict-aliasing=): New.
	* flags.h (warn_strict_aliasing): Change type to int.
	* opts.c (warn_strict_aliasing): Change type to int.
	(common_handle_option): Handle OPT_Wstrict_aliasing_.
	* tree.h (alias_sets_might_conflict_p): Declare it.
	* doc/invoke.tex (-Wstrict-aliasing=2): Document it.

2004-03-10  Roman Zippel  <zippel@linux-m68k.org>

	PR bootstrap/12371
	* config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
	(CALL_USED_REGISTERS): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(REG_ALLOC_ORDER): New.
	(REGNO_REG_CLASS): Use regno_reg_class.
	* config/m68k/m68k.c: Add regno_reg_class array.

2004-03-09  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.md (divsi3): Fix algorithm.
	  (udivsi3): Ditto.
	  (setf_exp_xf): Remove '*' from name.
	* testsuite/gcc.dg/20040309-1.c: New test.

2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>

	* system.h (SUNOS4_SHARED_LIBRARIES): Poison.
	* collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
	* config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
	* config/sparc/sparc.c (sparc_aout_select_section): Remove.
	(sparc_aout_select_rtx_section): Don't check
	SUNOS4_SHARED_LIBRARIES.
	* config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.

2004-03-10  Hans-Peter Nilsson  <hp@axis.com>

	PR other/14474
	* doc/md.texi (Pattern Ordering, Dependent Patterns)
	(Jump Patterns, Looping Patterns): Wrap in separate "@ifset
	INTERNALS".

2004-03-09  Zack Weinberg  <zack@codesourcery.com>

	* config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
	(LIBGCC_SPEC): Update to match.

2004-03-09  Zack Weinberg  <zack@codesourcery.com>

	* c-decl.c (last_function_parms, last_function_parm_tags)
	(last_function_parm_others, current_function_parms)
	(current_function_parm_tags, current_function_parm_others):
	Delete.
	(ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
	New macros.
	(grokdeclarator): For function definitions, save the arg-info
	block from the declarator in DECL_ARGUMENTS.
	(grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
	macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
	contains only PARM_DECLs.  Improve diagnostics.
	(get_parm_info): Use ARG_INFO_* macros.  Improve comments and
	diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
	(store_parm_decls_newstyle): Take the function to operate on,
	and an arg-info block, as arguments; don't get anything from
	current_function_* globals.
	(store_parm_decls_oldstyle): Likewise.
	(store_parm_decls): Pass fndecl and its arg-info block down to
	store_parm_decls_newstyle/oldstyle.  Send functions with empty
	argument lists through store_parm_decls_newstyle to reduce
	overhead.
	(pushdecl): Comment on the problems with the call to copy_node.
	Clear DECL_ARGUMENTS of the old node after copying it, if it
	is an arg-info block instead of a chain of decls.
	(start_function): Do not manipulate current_function_parm* or
	last_function_parm*.

2004-03-09  Roger Sayle  <roger@eyesopen.com>
	    Andrew Pinski  <pinskia@physics.uc.edu>

	* ifcvt.c (noce_try_sign_mask): New function to transform
	"x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
	(noce_process_if_block): Call noce_try_sign_mask.

2004-03-09  Andrew Pinski  <apinski@apple.com>

	* c-typeck.c (tagged_types_tu_compatible_p):
	Fix typo.

2004-03-09  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (simplify_const_relational_operation): New function
	renamed from simplify_relational_operation.
	(simplify_relational_operation): Change prototype to accept an
	additional mode argument.  Call simplify_const_relational_operation.
	(simplify_gen_relational): Update simplify_relational_operation call.
	(simplify_ternary_operation): Update simplify_relational_operation
	subroutine call to use simplify_const_relational_operation instead.

	* rtl.h (simplify_const_relational_operation): Prototype here.
	(simplify_relational_operation): Add addtional mode argument.

	* combine.c (combine_simplify_rtx): Update calls to
	simplify_relational_operation.
	(simplify_set): Likewise.
	(gen_binary): Likewise.
	* cse.c (fold_rtx): Likewise.
	* dojump.c (compare_from_rtx): Likewise.
	(do_compare_rtx_and_jump): Likewise.
	* integrate.c (subst_constants): Likewise.
	* unroll.c (simplify_cmp_and_jump_insns): Likewise.

2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r.md: Remove all define_peephole's.

2004-03-09  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md: Remove trailing whitespace.

2004-03-08  Eric Christopher  <echristo@redhat.com>

	* Makefile.in (site.exp): Add libiconv variable definition.

2004-03-09  Hans-Peter Nilsson  <hp@axis.com>

	* configure: Regenerate for config/accross.m4 correction.

2004-03-08  Joel Sherrill  <joel@oarcorp.com>

	PR target/14480
	* config/rs6000/t-rtems: Add missing file on branch.

2004-03-08  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/14289
	* c-typeck.c (c_mark_addressable): A register variable should
	be considered global if its not automatic, i.e. TREE_PUBLIC,
	TREE_STATIC or DECL_EXTERNAL.
	* function.c (put_var_into_stack): Call abort when placing a
	hard register into the stack, if x_parm_reg_stack_loc is NULL.

2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
	("*extendqisi2_short_displ"): Likewise.

2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>

	* config/pdp11/pdp11.c (comparison_operator_index): Remove.
	(comp_operator): Likewise.
	* config/pdp11/pdp11-protos.h: Remove corresponding
	prototypes.

2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>

	* expr.c (highest_pow2_factor_for_type): Rename into
	highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
	TYPE_ALIGN when the target is a COMPONENT_REF.
	(expand_assignment): Ajust call to highest_pow2_factor_for_type.

2004-03-08  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c: Formatting fix.
	(legitimate_offset_address_p): Correct offset range check.

	* config/rs6000/rs6000.c (rs6000_override_options): Don't override
	-msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
	and MASK_STRING.

2004-03-07  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
	for little endian.
	("ashrdi3_no_power"): Disable for little endian.
	(ashrdi3): Same.

2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* fold-const.c (tree_expr_nonnegative_p): Reformat checks for
	builtins.

2004-03-08  Hans-Peter Nilsson  <hp@axis.com>

	PR target/14471
	* configure.ac (Target-specific assembler checks) <cris-*-*>: New
	case, checking for -no-mul-bug-abort option.
	* configure, config.in: Regenerate.
	* doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
	and -mno-mul-bug-workaround.
	* config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
	("mulsidi3", "umulsidi3"): Prefix output template with "%!".
	("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
	Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
	* config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
	sure mulu.d is not last on cache-line.
	* config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
	into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
	(TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
	(TARGET_SWITCHES): New options -mmul-bug-workaround and
	-mno-mul-bug-workaround.
	(TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
	(PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
	* config/cris/cris.c (cris_operand_extend_operator): Clarify
	relation to MULT in head comment.
	(cris_op_str): Abort for MULT.
	(cris_print_operand) <case '!'>: New case.

2004-03-08  Alan Modra  <amodra@bigpond.net.au>

	PR debug/11983
	* dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
	dw_val_class_vec.  Replace use throughout file.
	(dw_float_const): Delete.
	(dw_vec_const): New.
	(dw_val_struct_union): Rename val_float to val_vec.  Replace use
	throughout file.
	(add_AT_vec): Rename from add_AT_float.  Add elt_size param.
	(same_dw_val_p): Adjust vec comparison.  Use memcmp.
	(size_of_die): Adjust dw_val_class_vec sizing.
	(output_die): Output dw_val_class_vec.
	(insert_int, extract_int, insert_float): New functions.
	(add_const_value_attribute): Use insert_float for CONST_DOUBLE.
	Handle CONST_VECTOR.
	(add_location_or_const_value_attribute): Handle CONST_VECTOR.

2004-03-07  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
	AltiVec abi cannot co-exist.

	* config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.

2004-03-07  Jan Hubicka  <jh@suse.cz>

	* except.c (emit_to_new_bb_before):  Break fallthru edges.

2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
	("*lshrsi3"): Also accept an immediate for 68HC12.
	("*ashrsi3_const"): Likewise.
	("*ashrsi3"): Likewise.
	("*ashlsi3_const"): Likewise.
	("*ashlsi3"): Likewise.
	("cmphi_1_hc12"): Compare two hard register by pushing them and
	comparing with a pop; don't use a split for that.
	("cmphi split"): Disable compare split for 68HC12.

	* config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
	the status operands if they have side effects.

2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>

	* defaults.h (LEGITIMIZE_ADDRESS): Provide a default
	definition.
	* config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
	config/h8300/h8300.h, config/ia64/ia64.h,
	config/mcore/mcore.h, config/mmix/mmix.h,
	config/ns32k/ns32k.h, config/pdp11/pdp11.h,
	config/stormy16/stormy16.h, config/v850/v850.h,
	config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
	* doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
	definition.

2004-03-07  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
	<XOR_EXPR>: Fold x ^ x as zero.
	<AND_EXPR>: Fold x & x as x.

2004-03-07  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
	"foo++ == const" into "++foo == const+incr".

2004-03-07  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_in_small_data_p): Return false if
	TARGET_ABICALLS.

2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
	the stack register.
	(expand_prologue): Don't make an interrupt or a trap handler a far
	symbol.
	(m68hc11_initial_elimination_offset): Likewise.

2004-03-06  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_in_small_data_p): False for functions.

2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>

	* config/ns32k/ns32k-protos.h: Add a prototype for
	ns32k_notice_update_cc.
	* config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
	* config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
	ns32k_notice_update_cc.

2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("load_multiple", "*load_multiple_di",
	"*load_multiple_si"): Allow only if reload_completed.
	("store_multiple", "*store_multiple_di", "*store_multiple_si"):
	Likewise.

2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>

	* config/vax/vax-protos.h: Add a prototype for
	vax_notice_update_cc.
	* config/vax/vax.c (vax_notice_update_cc): New.
	* config/vax/vax.h (NOTICE_UPDATE_CC): Call
	vax_notice_update_cc.

2004-03-06  David Edelsohn  <edelsohn@gnu.org>

	* collect2.c (main): Only export initfunc and finifunc if
	LD_INIT_SWITCH not defined.
	(scan_prog_file): Only export constructors and destructors if
	LD_INIT_SWITCH not defined.  Only export symbols not found in
	shared objects.

2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.md (icacheflush): Reorder operands to make match_scratch operand
	last.
	* pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
	from calls to gen_icacheflush.

2004-03-06  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
	(TARGET_LONG_DOUBLE_128): New.
	(TARGET_SWITCHES): Add long-double-{128,64}.
	(TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
	(LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
	(WIDEST_HARDWARE_FP_SIZE): New.
	(TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
	* config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
	if TARGET_VAX_FLOAT.
	* config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
	(TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.

2004-03-06  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
	botched rtx class conversion.

2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
	BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.

	* builtins.c (fold_builtin_logarithm, fold_builtin): Use new
	macros.
	* fold-const.c (fold_mathfn_compare, fold): Likewise.

2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/14343
	* config/i386/i386.md (movv2di_internal): Conditionalize on
	TARGET_SSE, not TARGET_SSE2.

2004-03-05  Chris Demetriou  <cgd@broadcom.com>

	* config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
	duplicated line.

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

	* builtins.c: Consistently use logN not log* in comments.

2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>

	* rtl.h (mem_expr_equal_p): Function prototype added.
	* cfgcleanup.c (merge_memattrs): New function.
	(flow_find_cross_jump): Call merge_memattrs for matching insns.
	* emit-rtl.c (mem_expr_equal_p): New function.

2004-03-05  Ziemowit Laski  <zlaski@apple.com>

	* objc/objc-act.c (synth_module_prologue): Const-qualify
	objc_selector type if using the GNU runtime; fix generated
	signatures for objc_msg_lookup and objc_msg_lookup_super
	to match what GNU ObjC headers provide; reformat and clean up.
	(synth_self_and_ucmd_args): Use previously constructed (and
	hence possibly const-qualified) objc_selector type.

2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/tm.texi (HARD_REGNO_RENAME_OK): Document.

2004-03-05  Jason Merrill  <jason@redhat.com>

	* tree.h (TYPE_HASH): Use TYPE_UID.
	(TREE_HASH): New macro with old definition of TYPE_HASH.
	* tree.c (build_type_attribute_variant): Use iterative_hash_object.
	(build_array_type, build_function_type): Likewise.
	(build_method_type_directly): Likewise.
	(build_offset_type, build_complex_type): Likewise.
	(type_hash_list, attribute_hash_list): Likewise. Now static.
	* except.c: s/TYPE_HASH/TREE_HASH/.

2004-03-05  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
	(xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
	__va_ndx by 2 words when referencing an argument on the stack.
	(xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
	words when an arg on the stack is first seen.

2004-03-05  Paul Brook  <paul@codesourcery.com>

	* arm.h (ARM_FLAG_VFP): Remove.
	(ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
	* netbsd-elf.h (ARM_FLAG_VFP): Remove.

2004-03-05  Paul Brook  <paul@codesourcery.com>

	* function.c (assign_parms): Include pretend alignment offset.

2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
	FUNCTION_BOUNDARY, not POINTER_SIZE * 2.

2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>

	* configure.ac: When passing --enable-languages to subdir
	configure when host != build, make sure we don't pass an empty
	value.
	* configure: Regenerate.

2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>

	PR 13577
	* gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
	options.

2004-03-05  Paolo Bonzini  <bonzini@gnu.org>

	* simplify-rtx.c (simplify_relational_operation): If
	flag_wrapv is set, do not move terms between the two
	side of a relational operator.

2004-03-05  Paolo Bonzini  <bonzini@gnu.org>

	* rtlanal.c: Include target.h and output.h
	(rtx_cost, address_cost, default_address_cost): Move from...
	* cse.c (rtx_cost, address_cost, default_address_cost):
	... this file.
	* rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
	* Makefile.in: Adjust dependencies.

2004-03-05  Paolo Bonzini <bonzini@gnu.org>

	* cse.c (cse_end_of_basic_block): Make static.
	* local-alloc.c (function_invariant_p): Move to
	reload1.c.
	* loop.c (libcall_other_reg, record_excess_regs):
	Make static.
	* reload1.c (function_invariant_p): Moved here
	from local-alloc.c, made static.
	* rtl.h (cse_end_of_basic_block, function_invariant_p,
	libcall_other_reg, record_excess_regs): Remove
	declarations.

2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r.c (signed_comparison_operator): Add a
	missing parenthesis.

2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>

	* ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
	going to call mmap again.  Read the file into the right place.
	Give a fatal error if we have to relocate.

2004-03-04  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
	(TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.

2004-03-05  Hans-Peter Nilsson  <hp@axis.com>

	PR other/14354
	* config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
	round the same.  When rounding, clear bits that would cause a
	second rounding in pack_d.
	(_fpmul_parts): Ditto.  Remove #if 0:d code.

2004-03-04  Ziemowit Laski  <zlaski@apple.com>

	PR c++/14425, c++/14426
	* config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
	vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
	Change C++ definitions to accept a 'const int' argument;
	the prototypes already do.
	* config/rs6000/rs6000.c (rs6000_common_init_builtins):
	Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
	v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
	v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
	v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
	v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
	end in ..._int; change them to accept an int instead of a char
	as the last parameter.

2004-03-04  Phil Edwards  <phil@codesourcery.com>

	* genmultilib:  Change '=' to '-' when translating option names
	to directory names.

2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
	stack slot for temp used for result of BLKmode but in integral mode.

2004-03-04  Jan Hubicka  <jh@suse.cz>

	* reload.c (find_reloads): Reorganize if seqeunce to switch.

	* cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
	(cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.

2004-03-04  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
	* testsuite/gcc.dg/20040303-1.c: New test.

2004-03-04  Steven Bosscher  <stevenb@suse.de>

	* ppro.md: Rewrite as a DFA pipeline description.
	* i386.md: Remove all uses of the ppro_uops attribute.
	* i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
	ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
	ix86_sched_reorder, ix86_variable_issue,
	struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
	TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
	(ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
	(ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
	* athlon.md (athlon_ssecmp_load): Fix comment

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

	* gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.

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

	* gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
	686, tell Darwin assembler to allow prefetch insns, non-empty def
	of SUBTARGET_OPTION_TRANSLATE_TABLE.

2004-03-04  DJ Delorie  <dj@redhat.com>

	PR optimization/14282
	* sched-deps.c (sched_analyze_insn): Allow a stack adjustment
	between a call and the assignment of its return value.

2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c: Put a comment for every function.

2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Add comments about peephole2's.

2004-03-04  Steven Bosscher  <stevenb@suse.de>

	* i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.

2004-03-04  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (thread_jump): Update call of cselib_init.
	* cselib.c (cselib_record_memory): New static variable.
	(cselib_lookup_mem, cselib_record_set, cselib_record_sets):
	Give up on memories when asked for.
	(cselib_init): Accept new argument.
	* cselib.h (cselib_init): Update prototype.
	* gcse.c (local_cprop_pass): Update call of cselib_init.
	* loop.c (load_mems): Update call of cselib_init.
	* postreload.c (reload_cse_regs_1): Update call of cselib_init.
	* sched-deps.c (sched_analyze): Update call of cselib_init.

2004-03-04  David Edelsohn  <edelsohn@gnu.org>
	    GP <gp@qnx.com>

	* config/rs6000/rs6000.c (output_function_profiler): Append @plt
	when compiling PIC.

2004-03-04  Josef Zlomek  <zlomekj@suse.cz>

	PR/14362
	* var-tracking.c (track_expr_p): Do not track variables which
	should be ignored for debugging purposes.

2004-03-04  Alan Modra  <amodra@bigpond.net.au>

	* real.c (encode_ibm_extended): Don't bother rounding low double.
	* c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
	when fmt->pnan < fmt->p.

2004-03-04  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
	only range of valid arg registers and fixed_regs.

2004-03-04  Alan Modra  <amodra@bigpond.net.au>

	PR target/14406
	* config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
	(abstf2, abstf2_internal): New define_expand.

2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR optimization/14235
	* expr.c (convert_move): Copy the source to a new pseudo
	when converting from a sub-word source to a larger-than-word
	register which conflicts with the source.

2004-03-03  Zack Weinberg  <zack@codesourcery.com>

	PR 13728
	* c-decl.c (diagnose_mismatched_decls): Issue an error for two
	parameters with the same name, unless one is a forward decl.
	Do not issue a redundant-redeclaration warning for forward
	decls of parameters.

2004-03-04  David Edelsohn  <edelsohn@gnu.org>

	* doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
	configuration.

2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>

	* ggc-zone.c (ggc_pch_write_object): Don't align file pointer.

2004-03-04  Alan Modra  <amodra@bigpond.net.au>

	* target-def.h (TARGET_OPTF): Delete.
	* c-opts.c (TARGET_OPTF): Define.

2004-03-04  Jan Hubicka  <jh@suse.cz>

	* cselib.c (cselib_finish): Fix another miss-application of my previous
	patch.

2004-03-03  Mike Stump  <mrs@apple.com>

	Add framework support for darwin.

	* c-incpath.c: Include target.h and machmode.h.
	(add_path): Use a consistent style for cpp_dir.  Initialize
	p->construct to 0.
	(add_cpp_dir_path): New.
	(register_include_chains): Add use of extra_includes callback.
	(hook_void_int): Add.
	(target_c_incpath): Add.
	* c-incpath.h (add_cpp_dir_path): New.
	(target_c_incpath_s): Add.
	(target_c_incpath): Add.
	(C_INCPATH_INIT): Add.
	* c-opts.c (c_common_missing_argument,
	c_common_handle_option): Add -F argument processing.
	* c.opt: Add -F argument processing.
	* gcc.c (trad_capable_cpp): Add -F argument processing.
	* cppfiles.c (find_file_in_dir): Update to use construct
	callback.
	(search_path_exhausted, cpp_get_path, cpp_get_buffer,
	cpp_get_prev): New.
	(_cpp_find_file): Use search_path_exhausted.
	(make_cpp_dir): Initialize construct to 0.
	* cpplib.h (missing_header_cb
	cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
	(cpp_callbacks): Add missing_header
	(cpp_dir): Add construct.
	* target-def.h: (TARGET_OPTF): New.
	* hooks.c (hook_void_int, hook_void_charptr): Add.
	* hooks.h (hook_void_int, hook_void_charptr): Add.
	* Makefile.in (c-incpath.o) : Add $(TARGET_H) and
	$(MACHMODE_H) dependencies.
	* doc/invoke.texi (Darwin Options): Document -F.
	* doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
	(TARGET_OPTF): Add.
	* fix-header.c (target_c_incpath): Add.

	* config/darwin-c.c: Add c-incpath.h include.
	(using_frameworks, find_subframework_file,
	find_subframework_header, add_system_framework_path,
	frameworks_in_use, num_frameworks, max_frameworks,
	add_framework, find_framework, struct framework_header,
	framework_header_dirs, framework_construct_pathname,
	find_subframework_file, add_system_framework_path,
	add_framework_path, framework_defaults,
	darwin_register_frameworks, find_subframework_header): Add.
	* config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
	(TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
	(CPP_SPEC): Add __APPLE_CC__ support.
	* t-darwin (darwin-c.o): Add c-incpath.h dependency.

2004-03-04  Jan Hubicka  <jh@suse.cz>

	* cselib.c (cselib_finish): Fix miss-application of my previous
	patch.

2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>

	* hooks.c (hook_tree_tree_identity): New.
	* hooks.h: Add a prototype for hook_tree_tree_identity.
	* stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
	instead of MD_ASM_CLOBBERS.
	* system.h (MD_ASM_CLOBBERS): Poison.
	* target-def.h (TARGET_MD_ASM_CLOBBERS): New.
	(TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
	* target.h (gcc_target): Add md_asm_clobbers.
	* config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
	(ix86_md_asm_clobbers): New.
	* config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
	* doc/tm.texi (MD_ASM_CLOBBERS): Change to
	TARGET_MD_ASM_CLOBBERS.

2004-03-03  Stuart Hastings  <stuart@apple.com>

	* gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.

2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (noov_compare64_op): Fix typo.

	* config/sparc/sparc.h (ASM_FLOAT): Delete.
	(ASM_DOUBLE): Likewise.
	(ASM_LONGDOUBLE): Likewise.
	* config/sparc/pbd.h (ASM_INT_OP): Delete.

2004-03-03  Richard Henderson  <rth@redhat.com>

	PR opt/13862
	* cselib.c (cselib_record_sets): Don't record multiple sets in
	asm insns.

2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>

	* common.opt: Add description of the new -fgcse-after-reload flag.

	* flags.h (flag_gcse_after_reload): Declaration of global variable.

	* gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
	reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
	is_jump_table_basic_block, bb_has_well_behaved_predecessors,
	get_bb_avail_insn, hash_scan_set_after_reload,
	compute_hash_table_after_reload, eliminate_partially_redundant_loads,
	gcse_after_reload, get_bb_avail_insn): New functions to implement
	gcse-after-reload.
	(gcse_after_reload_main): New function, the main entry point to
	gcse-after-reload.

	* rtl.h (gcse_after_reload_main): Declaration of the new function.

	* opts.c (common_handle_option): Handle the -fgcse-after-reload flag.

	* toplev.c (flag_gcse_after_reload): Initialization.

	* passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.

	* params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
	PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
	the gcse after reload optimization.

	* params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
	GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
	parameters.

	* doc/invoke.texi: Documentation for the new flag gcse-after-reload.

2004-03-03  Nicolas Pitre <nico@cam.org>

	* config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
	small negative values.

2004-03-03  Jan Hubicka  <jh@suse.cz>

	* cselib.c (hash_table):  Remove GTY marker.
	(reg_values): Turn into array.
	(used_regs): Likewise.
	(n_used_regs): New static variable.
	(reg_values_old): Kill.
	(clear_table): Update uses of arrays.
	(cselib_lookup): Likewise.
	(cselib_record_set): Likewise.
	(cselib_init): Likewise.
	(cselib_finish): Likewise.
	(cselib_udpate_varray_sizes): Kill.
	* cselib.h (cselib_update_varray_sizes): Kill.

2004-03-03  Paul Brook  <paul@codesourcery.com>

	* flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".

2004-03-03  Jan Hubicka  <jh@suse.cz>

	* ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
	Rename from ...; make statistics transparent.
	(ggc_alloc_cleared, ggc_realloc_stat): ... these.
	(loc_descriptor): New structure.
	(hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
	add_statistics):
	New static function.
	(ggc_record_overhead, dump_statistics): New global function.
	* ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
	ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
	from ...; accept locations
	(ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
	ggc_realloc, ggc_alloc_typed):  ... this one.
	from ...; accept locations
	* ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
	ggc_alloc_stat): Rename from ... ; pass locations
	* ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
	... this one.
	(ggc_alloc_stat): Record overehead.
	* ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
	ggc_realloc, ggc_alloc_typed):  Turn to macros
	(ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
	ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
	(dump_ggc_loc_satistics, ggc_record_overehead): Declare.
	* langhooks.h (lhd_make_node): Declare.
	(LANG_HOOKS_MAKE_TYPE): Default to new function,
	* langhooks.c (lhd_make_node): New.
	* rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
	locations.
	(rtx_alloc, swallow_copy_rtx): ... this one.
	* rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
	* rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
	* toplpev.c (finalize): Dump stats.
	* tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
	build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
	Rename from ... ; pass locators.
	(make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
	build?,  build_decl): Declare.
	* tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
	build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
	Declare.
	(make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
	build?,  build_decl): New macros.
	* Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
	* statistics.h: New file.

2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
	    Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (MASK_FIX_SB1): Bump.
	(MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
	(TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
	* config/mips/mips.c (mips_output_division): Fill the branch delay
	slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
	TARGET_FIX_R4400.
	(mips_output_division): Adjust accordingly.
	(override_options): Make -march=r4400 imply -mfix-r4400 by default.
	* doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.

2004-03-03  Paolo Bonzini  <bonzini@gnu.org>

	* alias.c (rtx_equal_for_memref_p): Use predicates
	to test rtx classes and new rtx class codes, possibly
	splitting conditionals that tested against '<' and 'o'.
	* caller-save.c (save_call_clobbered_regs): Likewise.
	* combine.c (contains_muldiv, find_split_point, subst,
	combine_simplify_rtx, simplify_if_then_else,
	simplify_set, simplify_logical, expand_compound_operation,
	make_compound_operation, if_then_else_cond, known_cond,
	apply_distributive_law, cached_nonzero_bits,
	cached_num_sign_bit_copies, simplify_shift_const,
	gen_binary, simplify_comparison, update_table_tick,
	record_value_for_reg, get_lsat_value_validate): Likewise.
	* cse.c (mention_regs, find_best_addr, find_comparison_args,
	fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
	Likewise.
	* emit-rtl.c (copy_insn_1): Likewise.
	* expr.c (force_operand): Likewise.
	* final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
	* flow.c (notice_stack_pointer_modification_1,
	invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
	and_reg_cond, elim_reg_cond): Likewise.
	* function.c (update_epilogue_consts): Likewise.
	* genattrtab.c (attr_rtx_1): Likewise.
	* genopinit.c (gen_insn): Likewise.
	* integrate.c (subst_constants): Likewise.
	* jump.c (reversed_comparison_code_parts,
	reversed_comparison_code, delete_related_insns,
	rtx_renumbered_equal_p): Likewise.
	* local-alloc.c (block_alloc): Likewise.
	* loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
	canonicalize_condition): Likewise.
	* loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
	Likewise.
	* optabs.c (add_equal_node, expand_binop): Likewise.
	* predict.c (estimate_probability): Likewise.
	* ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
	* recog.c (validate_replace_rtx_1, comparison_operator,
	offsettable_address_p, constrain_operands): Likewise.
	* reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
	Likewise.
	* regclass.c (scan_one_insn): Likewise.
	* regmove.c (stable_and_no_regs_but_for_p): Likewise.
	* regrename.c (kill_autoinc_value): Likewise.
	* reload.c (find_reusable_reload, find_reloads,
	reg_overlap_mentioned_for_reload_p): Likewise.
	* reload1.c (gen_reload, delete_address_reloads_1): Likewise.
	* rtl.c (copy_rtx): Likewise.
	* rtl.h (CONSTANT_P, INSN_P): Likewise.
	* rtlanal.c (commutative_operand_precedence): Likewise.
	* sched-deps.c (conditions_mutex_p): Likewise.
	* sched-rgn.c (is_cfg_nonregular): Likewise.
	* simplify-rtx.c (simplify_gen_binary,
	simplify_gen_relational, simplify_replace_rtx,
	simplify_unary_operation, simplify_binary_operation,
	simplify_ternary_operation, simplify_rtx): Likewise.
	* unroll.c (reg_dead_after_loop): Likewise.
	* config/alpha/alpha.c (alpha_swapped_comparison_operator,
	print_operand): Likewise.
	* config/arc/arc.c (proper_comparison_operator): Likewise.
	* config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
	Likewise.
	* config/avr/avr.c (_reg_unused_after): Likewise.
	* config/frv/frv.c (frv_ifcvt_modify_tests,
	frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
	* config/i386/i386.c (ix86_comparison_operator,
	ix86_carry_flag_operator, fcmov_comparison_operator,
	arith_or_logical_operator, print_operand,
	ix86_expand_binary_operator, ix86_binary_operator_ok):
	Likewise.
	* config/i386/i386.md: Likewise.
	* config/ia64/ia64.c (not_postinc_memory_operand,
	ia64_print_operand, update_set_flags, errata_emit_nops):
	Likewise.
	* config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
	CONSTRAINT_OK_FOR_S): Likewise.
	* config/ip2k/ip2k.c (mdr_resequence_xy_yx,
	mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
	ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
	ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
	Likewise.
	* config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
	eqne_comparison_operator, signed_comparison_operator):
	Likewise.
	* config/mips/mips.c (cmp_op, symbolic_expression_p):
	Likewise.
	* config/mmix/mmix (mmix_foldable_comparison_operator,
	mmix_comparison_operator): Likewise.
	* config/pa/pa.c (hppa_legitimize_address): Likewise.
	* config/rs6000/rs6000.c (stmw_operation,
	branch_comparison_operator, trap_comparison_operator,
	ccr_bit): Likewise.
	* config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
	* config/s390/s390.c (s390_alc_comparison,
	s390_slb_comparison):L Likewise.
	* config/sh/sh.c (gen_block_redirect, reg_unused_after):
	Likewise.
	* config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
	noov_compare_op, noov_compare64_op, v9_regcmp_op,
	emit_hard_tfmode_operation, reg_unused_after)
	* doc/md.texi, doc/rtl.texi: Likewise.

	* ra-debug.c: Add 2004 to list of copyright years.
	* unroll.c: Likewise.

	* combine.c (simplify_logical): Remove dummy test,
	(apply_distributive_law): Fix typo in comment.
	GET_CODE (x) == AND so x is a commutative binary op.
	* jump.c (delete_related_insns): simplify loop
	condition, move testing of RTX codes inside the loop.
	(rtx_renumbered_equal_p): do not use RTX_CODE.
	* rtl.c (rtx_class): Declare as enum rtx_class.
	* rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
	Move to RTX_COMM_COMPARE class.
	(HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
	Move to RTX_CONST_OBJ class.
	* rtl.h (enum rtx_class): New declaration,
	(RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
	RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
	RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
	RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
	RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
	ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
	SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
	OBJECT_P): New macros.
	* config/sparc/sparc.c (noov_compare_op): Remove register
	from parameter.

2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>

	* target.h: Remove texi jargons in comments.

2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/lib1funcs.asm (___fixunssfsi): Change the
	threshold to 0x4f.

	Revert:
	2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
	* config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
	as well.
	* config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
	* config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.

2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/md.texi (cbranchmode4): New.

2004-03-02  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips16.S: Change fixsfsi and fixdfsi to
	fix_trunc.
	* config/mips/mips.c (mips_init_libfuncs): Change accordingly.
	* config/mips/t-elf (LIB1ASMFUNCS): Ditto.
	* config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
	* config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.

2004-03-02  Richard Henderson  <rth@redhat.com>

	PR middle-end/11767
	* coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
	* optabs.c (prepare_cmp_insn): Force trapping memories to registers
	before the compare, if flag_non_call_exceptions.

2004-03-02  Richard Henderson  <rth@redhat.com>

	PR middle-end/14327
	* stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
	emitting the label, not after.

2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
	(m68hc11_mov_addr_mode): Likewise.
	(m68hc11_override_options): Initialize them based on target.
	(register_indirect_p): Allow a MEM for indirect addressing modes and
	use flags to control what is allowed.
	(m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
	supported addressing modes.
	(m68hc11_register_indirect_p): Use m68hc11_addr_mode.
	(go_if_legitimate_address_internal): Likewise.
	(m68hc11_indirect_p): Likewise and check the mode.
	(print_operand): Allow a (MEM (MEM)) and generate indirect addressing.

2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
	(expand_builtin_setjmp_setup): Use
	targetm.builtin_setjmp_frame_value instead of
	BUILTIN_SETJMP_FRAME_VALUE.
	* system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
	* target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
	(TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
	* target.h (gcc_target): Add builtin_setjmp_frame_value.
	* targhooks.c (default_builtin_setjmp_frame_value): New.
	* targhooks.h: Add a prototype for
	default_builtin_setjmp_frame_value.
	* doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
	TARGET_BUILTIN_SETJMP_FRAME_VALUE.

2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
	sequences of moves.
	(add peepholes): New peepholes to optimize sequences adding small
	constants.
	(bset peepholes): New peepholes to transform an OR in a bset form
	(bclr peepholes): Likewise for bclr form.
	(cmp peepholes): New peepholes to avoid register copies when comparing.

2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
	to separate push from moves.
	("*pushdf_internal"): Likewise.
	("*pushsf_internal"): Likewise.
	("*pushsi_internal"): Likewise.
	("movdi_internal"): Use define_insn_and_split; non push operand.
	("movdf_internal"): Likewise.
	("movsf_internal"): Likewise.
	("movsi_internal"): Likewise.
	("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
	("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
	("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.

2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
	("cmphi_z_used", "cmpqi_z_used"): Likewise.
	("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
	("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
	("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
	("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
	("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
	("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
	("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
	("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
	("*lshrdi3_const32", "*lshrdi_const1"): Likewise.

2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
	(SOFT_XY_REGNUM): Define.
	(cmp split): Use the above instead of hard coded numbers.
	(8-bit op split): No need to check the mode; allow Q_REG.
	(ashift split): Adjust the first operand if it uses the SP and we
	are pushing the shifted value.
	(plus shift split): Fix when a source is in register D+X.
	("doloop_end"): Pass dummy arguments to gen_rtx_NE.

2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
	comparing with Z register.

2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* cfgloop.h (struct loop_desc): Removed.
	(struct loop): Fields simple, desc and has_desc removed.
	(simple_loop_p, count_loop_iterations): Declaration removed.
	* cfgloopanal.c (struct unmark_altered_insn_data): Removed.
	(unmark_altered, blocks_invariant_registers, unmark_altered_insn
	blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
	invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
	simple_loop_exit_p, variable_initial_value, variable_initial_values,
	simple_condition_p, simple_increment, count_strange_loop_iterations,
	inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
	Removed.
	* loop-iv.c (check_simple_exit, find_simple_exit): Update comments.

2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>

	* genattrtab.c: Don't handle MATCH_INSN.
	* genrecog.c: Likewise.
	* gensupport.c: Likewise.
	* rtl.def (match_insn): Remove.
	* doc/md.texi (match_insn, match_insn2): Remove.

2004-03-02  Mark Mitchell  <mark@codesourcery.com>

	* doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
	macro results in memory allocation.

2004-03-02  David O'Brien  <obrien@FreeBSD.org>

	* config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
	* config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
	%(fbsd_dynamic_linker),
	(LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
	config/i386/freebsd.h
	* config/arm/freebsd.h: Ditto.
	* config/i386/freebsd.h: Ditto.
	* config/i386/freebsd64.h: Ditto.
	* config/ia64/freebsd.h: Ditto.
	* config/rs6000/sysv4.h: Ditto.
	* config/sparc/freebsd.h: Ditto.

2004-03-02  Loren James Rittle  <ljrittle@acm.org>

	* gcc/doc/install.texi (*-*-freebsd*): Update target information.

2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>

	* rtl.def (define_combine): Remove.

2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Tweak formatting.

2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*cmphi_h8300): Rename to
	*cmphi_h8300_znvc.
	(*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.

2004-03-01  Mark Mitchell  <mark@codesourcery.com>

	PR bootstrap/14356
	* gcc.c (process_command): Remove const-qualification from argv.
	(main): Likewise.

2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (pushqi1_h8300hs): Rename to
	pushqi1_h8300hs_advanced.  Adjust its caller.
	(pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
	Adjust its caller.

2004-03-02  Nicolas Roche  <roche@act-europe.fr>

	* Makefile.in (install-libgcc, install-multilib): Pass
	mkinstalldirs var to libgcc.mk.

2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
	* doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.

2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (gtle_operator): Accept GT and LE.
	* config/h8300/h8300.md: Split several peephole2's, each into
	two.

2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* dominance.c (recount_dominator): Handle postdominators.

2004-03-01  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
	(NUM_SYMBOL_TYPES): Likewise.
	(SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
	(mips_unspec_address): Declare.
	(mips_gotoff_page, mips_gotoff_global): Delete.
	* config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
	* config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
	(mips_symbolic_constant_p, mips_symbolic_address_p)
	(mips_symbol_insns): Handle new symbol types.
	(general_symbolic_operand): New predicate.
	(mips_unspec_address): Make extern.
	(mips_gotoff_page, mips_gotoff_global): Delete.
	(override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
	Handle new symbol types.
	* config/mips/mips.md (*lea_high64, *lea64): New patterns.
	(*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
	mips_unspec_address directly.
	* doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
	the documentation of -mexplicit-relocs.

2004-03-01  Jeff Law  <law@redhat.com>

	* fold-const.c (fold): An equality comparison of a non-weak object
	against zero has a known result.  Similarly an equality comparison
	of the address of two non-weak, unaliased symbols has a known result.

	* ggc-page.c (struct page_entry): New field PREV.
	(ggc_alloc): Update PREV field appropriately.
	(sweep_pages): Likewise.
	(ggc_free): Likewise.  Use PREV field rather than loop to
	improve ggc_free performance.

2004-03-01  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_output_division): Use the division
	instruction to fill the delay slot of a zero check.
	(mips_idiv_insns): Adjust accordingly.

2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>

	* config.gcc: Create a default tmake_file for linux, and use
	it in all but two linux clauses.  Comment those two.

2004-03-01  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c (try_combine):  Do not refer to is_replaced.
	(gen_lowpart_for_combine):  Perverse subregs now have a
	more politically correct name.
	* cse.c (cse_insn): Likewise.
	* jump.c: Fix bogus reference to delete_insn.

2004-02-29  Mark Mitchell  <mark@codesourcery.com>

	PR debug/14328
	* dwarf2out.c (gen_enumeration_type_die): Output all enumeration
	constants as signed values.

	PR middle-end/13448
	* c-tree.h (readonly_warning): Rename to ...
	(readonly_error): ... this.
	* c-typeck.c (build_unary_op): Adjust accordingly.
	(readonly_warning): Rename to ...
	(readonly_error): ... this and issue errors, not warnings.
	(build_modify_expr): Call readonly_error, not readonly_warning.
	(c_expand_asm_operands): Likewise.
	* tree-inline.c (optimize_inline_calls): Do not inline functions
	after errors have occurred.

2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.ac: Rearrange some threading code for clarity;
	add section comment.
	* configure: Regenerate.

2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>

	* passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
	typos.
	* doc/cppopts.texi: Fix a typo.

2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/i386/i386.md: Fix formatting.

2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.ac: Add some comments delineating sections of code.

	* doc/install.texi: Note that libada uses autoconf 2.57 also.

	* doc/install.texi: Fix idiot typo in previous commit.

	* doc/install.texi: Update for conversion of intl to autoconf 2.57.

2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Add comments about peephole2's.

2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Tweak operand numbers of some
	peephole2's.

2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Tweak comments about peephole2's.

2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>

	PR middle-end/14203
	* function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
	instead of testing whether DECL_RTL is not NULL.

2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/sh/sh.c: Fix formatting.

2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/sh/sh.c: Convert to ISO-C.

2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>

	* c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
	my previous patch.

	* config/darwin.h (machopic_finish): Output stub even if the
	symbol is already defined.

2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.

2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>

	* genattr.c (main): Don't define
	TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
	* system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
	(DFA_PIPELINE_INTERFACE): Likewise.
	* doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
	(DFA_PIPELINE_INTERFACE): Likewise.

2004-02-28  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.md (tstsi, tstdi): Delete.

2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* config/mips/mips.c (override_options): Remove an obsolete
	duplicate definition of the "e" constraint.
	* config/mips/mips.h: Update a comment accordingly.

2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* config/mips/mips.md: Complete the unfinished R4000
	multiply/shift errata workaround.  Improve documentation.
	(hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
	has a hilo hazard.
	(mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
	(muldi3, muldi3_internal): Likewise.
	(muldi3_internal2): Remove, replacing with...
	(muldi3_mult3, muldi3_r4000): ...these new patterns.
	(mulsidi3): Take the errata into account.
	(mulsidi3_32bit): Remove, replacing with...
	(mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
	(mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
	(umulsidi3): Take the errata into account.
	(umulsidi3_32bit): Remove, replacing with..
	(umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
	(umulsi3_highpart, umulsi3_highpart_internal): Disable if
	TARGET_FIX_R4000.
	(smulsi3_highpart, smulsi3_highpart_internal): Likewise.
	(smuldi3_highpart, umuldi3_highpart): Likewise.
	* doc/invoke.texi: Document the errata workaround.

2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* config/mips/mips-protos.h (mips_idiv_insns): Declare.
	* config/mips/mips.h (MASK_FIX_SB1): Bump.
	(MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
	(TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
	* config/mips/mips.c (mips_idiv_insns): New function.
	(override_options): Make -march=r4000 imply -mfix-r4000 by default.
	(mips_output_division): Add a workaround for the R4000 divide/shift
	errata.
	* config/mips/mips.md (length): Use mips_idiv_insns() to calculate
	the length of an "idiv" instruction.
	* doc/invoke.texi: Document the new switches.

2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
	TARGET_SCHED_IS_COSTLY_DEPENDENCE.

2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	PR optimization/14229
	* cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.

2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>

	* fold-const.c (fold): Strip NOPs that change the signedness
	for RSHIFT too.  Expand comment.

2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>

	PR optimization/7871
	* flow.c (mark_set_1): Don't add LOG_LINKS for global registers
	from or to call insns.

2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR optimization/7871
	* flow.c (propagate_one_insn): Interpret calls as setting global
	registers, not merely clobbering them.

2004-02-27  Dale Johannesen  <dalej@apple.com>

	* config/darwin.c (machopic_output_possible_stub_label):  Remove.
	config/darwin-protos.h:  Ditto.
	config/darwin.h:  Remove call to it.
	* combine.c (distribute_notes): Do not place a REG_DEAD note
	when value is both set and used.

2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
	as well.
	* config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
	* config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.

2004-02-27  Andrew Pinski  <apinski@apple.com>

	* c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
	Speedup common case of the type values being in the same order.

2004-02-27  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.h (no-inline-float-divide): New option.
	* config/ia64/ia64.h (no-inline-int-divide): New option.
	* config/ia64/ia64.h (no-inline-sqrt): New option.
	(TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
	* config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
	* config/ia64/ia64.c (ia64_override_options): Modify error
	checking for inlined division/sqrt.

2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>

	* bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
	ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
	value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
	config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
	copyright.

2004-02-27  Paul Brook  <paul@codesourcery.com>

	* function.c (assign_parms): Don't count pretend args for alignment.

2004-02-27  Richard Henderson  <rth@redhat.com>

	* passes.c: New file.
	* Makefile.in (OBJS-common): Add it.
	* diagnostic.c (rtl_dump_and_exit): Move decl ...
	* flags.h (rtl_dump_and_exit): ... here.
	* output.h (size_directive_output, last_assemble_variable_decl):
	Move from toplev.c.
	* rtl.h (reg_alloc): Move from toplev.c.
	* toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
	struct dump_file_info, enum dump_file_index, dump_file_tbl,
	open_dump_file, close_dump_file, rest_of_decl_compilation,
	rest_of_type_compilation, 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_new_regalloc, rest_of_handle_old_regalloc,
	rest_of_handle_regrename, rest_of_handle_reorder_blocks,
	rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
	rest_of_handle_tracer, rest_of_handle_if_conversion,
	rest_of_handle_if_after_combine, rest_of_handle_web,
	rest_of_handle_branch_prob,
	rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
	rest_of_handle_addressof, rest_of_handle_sibling_calls,
	rest_of_handle_jump_bypass, rest_of_handle_inlining,
	rest_of_handle_null_pointer, 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_compilation): Move to passes.c.
	(decode_d_option): Use enable_rtl_dump_file.
	(compile_file, finalize, do_compile): Move profile+combine+graph
	cleanup to finish_optimization_passes.
	* toplev.h (init_optimization_passes, finish_optimization_passes,
	enable_rtl_dump_file): Declare.

2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
	    Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold): Revert 2004-02-25 change.  Use the original
	operands to build a tree with swapped operands.
	* expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
	'unsignedp' predicate to specify the signedness.

2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>

	* c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
	expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
	params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
	comment typos and formatting.  Follow spelling conventions.

2004-02-26  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
	fix_truncsfsi2.

	* config/rs6000/spe.md: Delete spe_efsctuiz.
	Add spe_fixuns_truncsfsi2.
	Add spe_fix_truncsfsi2.

2004-02-26  Eric Christopher  <echristo@redhat.com>

	* c-lex.c (c_lex_string_translate): New variable.
	(lex_string): Use to determine string translation.
	* c-pragma.h: Prototype.
	* c-parse.in (start_string_translation): New. Set above.
	(stop_string_translation): Ditto.
	(attribute, attribute_list, asm_def, asm_stmt,
	asm_operand): Use above functions.
	* cp/parser.c (cp_parser_declaration): Translate strings
	unless token is RID_EXTERN. Set c_lex_string_translate
	for recursive use.
	(cp_parser_asm_definition): Only translate argument strings
	to asms.
	(cp_parser_asm_operand_list): Ditto.
	(cp_parser_attribute_list): Do not translate attribute strings.

2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>

	* stmt.c (expand_start_case_dummy): Remove.
	* tree.h: Remove the corresponding prototype.

2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c (apply_args_register_offset): Remove.
	* tree.h: Remove the corresponding prototype.

2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>

	* stor-layout.c (is_pending_size): Remove.
	* tree.h: Remove the corresponding prototype.

2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>

	* recog.c (validate_replace_src): Remove.
	* recog.h: Remove the corresponding prototype.

2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>

	* calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
	MAYBE_REG_PARM_STACK_SPACE.
	* function.c: Likewise.
	* system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
	(MAYBE_REG_PARM_STACK_SPACE): Likewise.
	* doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
	(MAYBE_REG_PARM_STACK_SPACE): Likewise.

2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>

	* c-decl.c (c_expand_deferred_function): Remove.
	* c-tree.h: Remove the corresponding prototype.

2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>

	* postreload.c (reload_cse_move2add): Generate just a PLUS
	instead of an entire SET.

2004-02-26  Jan Hubicka  <jh@suse.cz>

	* config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
	/pentium4m.
	* i386.c (override_options): Add support for new CPUs.
	* i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
	(TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
	constants.
	* invoke.texi: Extend documentation of -mtune/-march for new CPUs.

2004-02-26  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.

2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>

	* config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
	(sparc_emit_fixunsdi): New prototype.
	* config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
	(sparc_emit_fixunsdi): New function.
	* config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
	operand 1.  Pass SFmode to sparc_emit_floatunsdi.
	(floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
	to sparc_emit_floatunsdi.
	(fixuns_truncsfdi2): New expander.
	(fixuns_truncdfdi2): Likewise.

2004-02-26  Alan Modra  <amodra@bigpond.net.au>

	* gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
	unless HAVE_cc0.

2004-02-25  Richard Henderson  <rth@redhat.com>

	* explow.c (force_reg): Call mark_reg_pointer as appropriate.
	* config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
	use (op0-op1) == 0 if op0 is a pointer.
	* config/alpha/alpha.md (cmpdi): Use some_operand.
	(three comparison combine splits): Remove.

2004-02-25  Richard Henderson  <rth@redhat.com>

	PR c/12794
	* c-common.c (handle_alias_attribute): Reject the attribute if
	current_function_decl is set.

2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>

	* config.gcc: Add comment describing extra_gcc_objs.
	i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
	* configure.ac (extra_gcc_objs): New substitution variable.
	(host_extra_gcc_objs): Don't substitute.
	* configure: Regenerate.
	* Makefile.in: Use extra_gcc_objs.

2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>

	* doc/contrib.texi: Add an entry for myself.

2004-02-25  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (make_eh_edge, break_superblocks): Declare.
	* cfgbuild.c (make_eh_edge):  Make global.
	* cfglayout.c (break_superblocks): Likewise; fix memory leak.
	* except.c (build_post_landing_pads, connect_post_landing_pads,
	dw2_build_landing_pads, sjlj_emit_function_enter,
	sjlj_emit_function_exit, sjlj_emit_dispatch_table,
	sjlj_build_landing_pads): Update CFG.
	(emit_to_new_bb_before): New function.
	(finish_eh_generation): Do not rebuild the CFG.

2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
	target_cpu_default defines.
	* pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
	* pa.h (TARGET_DEFAULT): Likewise.

2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>

	* fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
	comparisons with regard to signedness.

2004-02-25  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (thumb_legitimize_address): New function.
	* arm-protos.h: Prototype it.
	* arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
	(LEGITIMIZE_ADDRESS): Use it.

2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>

	* reload1.c (reload): Only spill eliminable register with multiple
	adjacent elimination alternatives if all alternatives fail.

2004-02-25  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_legitimate_index_p): For QImode the range of an offset
	is -4095...+4095 inclusive.

2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/install.texi (sparc-sun-solaris2* specific notes): Document
	the bootstrap failure with Sun CC 5.4 and 5.5.

2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c (cse_change_cc_mode_insns): Stop at any instruction
	which modifies NEWREG.
	(cse_condition_code_reg): Update the mode of CC_REG in
	CC_SRC_INSN on our own.

2004-02-24  Michael Matz  <matz@suse.de>

	* config/i386/i386.c (ix86_comp_type_attributes): Check for
	regparm attributes.

2004-02-24  Richard Henderson  <rth@redhat.com>

	* toplev.c (dump_file_tbl): Rename from dump_file.
	* bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
	cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
	config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
	config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
	loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
	ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
	toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
	s/rtl_dump_file/dump_file/g.

2004-02-24  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
	(spe_fixuns_truncsfsi2): Delete.

	* config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
	(fixuns_truncsfsi2): Delete.

2004-02-24  Josef Zlomek  <zlomekj@suse.cz>

	PR/14240
	* rtlanal.c (replace_label): Fix replacing labels in constant pool.

2004-02-24  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.h (TARGET_HAS_F_SETLKW): Define.

2004-02-24  Jason Merrill  <jason@redhat.com>

	* tree.c (check_qualified_type): New fn.
	(get_qualified_type): Use it.  If type already has the desired
	quals, just return it.
	* tree.h: Declare it.

2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>

	* target-def.h (TARGET_SCHED_INIT_GLOBAL,
	TARGET_SCHED_FINISH_GLOBAL): New macros.

	* target.h (md_init_global, md_finish_global): Function
	declarations corresponding to new target macros.

	* haifa-sched.c (sched_init, sched_finish): Allow target to
	call the new schedular hooks.

	* flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
	call to update_life_info.

	* config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
	flag_schedule_insns for SH4.

	* config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
	find_set_regmode_weight, find_insn_regmode_weight,
	find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
	sh_variable_issue, high_pressure, ready_reorder,
	rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
	functions used to throttle the insn movement in first
	scheduling pass for SH.

	* gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
	TARGET_SCHED_FINISH_GLOBAL.

2004-02-24  Alexandre Oliva  <aoliva@redhat.com>

	Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
	2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
	* config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
	symbols in sections named by the user.
	2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
	* config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
	2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
	* config.gcc (frv-*-*linux*): Handle like *-*-linux*.
	* config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
	the above.
	2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
	* config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
	one more pseudo to further improve code generation.
	2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
	* config/frv/frv.md (movdi_ldd): Introduce explicit indirection
	inside UNSPEC.
	2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
	* config/frv/frv.c (frv_legitimate_address_p): Added
	allow_double_reg_p argument.  Adjust all callers.  Use it to
	decide whether to enable double-register indirect addressing.
	(frv_funcdesc_alias_set): Remove.
	(frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
	register.  Emit movdi_ldd.
	(ldd_address_operand): New.
	* config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
	* config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
	(PREDICATE_CODES): Add ldd_address_operand.
	* config/frv/frv.md (movdi_ldd): New.
	(symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
	intermediate computations if possible.
	(symGOTOFF2reg_i): Fix harmless typo.
	2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
	* unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
	relocated p_vaddr to vaddr type.
	* config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
	* config/frv/frv.c (frv_get_funcdesc_alias_set): New.
	(frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
	MEM, or use a funcdesc alias set.  Use regular move instead of
	ldd.
	(dbl_memory_one_insn_operand): Recognize function descriptors by
	type or by alias set, and don't split them.
	* config/frv/frv.md (call, call_value): Never use call_internal
	for fdpic.
	(call_internal, call_value_internal): Never match for FDPIC.
	(call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
	call_value_fdpicsi): Require FDPIC.
	(ldd): Removed.
	2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
	* config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
	* unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
	(_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
	FDPIC.  Compute data base address.
	* config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
	before the other self-specs are processed.
	* config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
	Build with -fPIC.
	2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
	* unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
	inhibit_libc is defined.
	2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
	* unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
	__FRV_FDPIC__.
	(__RELOC_POINTER): Define.
	(_Unwind_IteratePhdrCallback): Use it.
	* config/frv/frv.h (Twrite): Define.
	(TRANSFER_FROM_TRAMPOLINE): Use it.
	* config/frv/linux.h (INVOKE__main): Undefine.
	(Twrite): Override.
	2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
	* doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
	(-mlibrary-pic): Emphasize that this option generates EABI code.
	(-mcpu): Add fr550.
	(-mpack): Remove.
	2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
	* config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
	and CONSTs in FDPIC mode.
	* gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
	2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
	* config/frv/frv.c (move_source_operand): Don't accept symbolic
	constants.
	* config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
	rather than 'i' constraint for the 2-instruction alternative.
	(*movsi_2word): New, incorporating existing int_2word_operand splitter.
	2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
	* config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
	EXTRA_CONSTRAINT_FOR_Y.
	(EXTRA_CONSTRAINT): Remove handling of 'Y'.
	* config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
	(addsi3): Change 'Y' constraint to 'Q'.
	2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
	* reload.c (CONST_POOL_OK_P): New macro.
	(find_reloads): Use it to decide whether a constant can be forced
	into memory.
	* config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
	constant satisfies got12_operand.
	(frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
	(frv_legitimate_address_p): Check for valid unspec offsets using
	got12_operand rather than frv_legitimate_fdpic_operand_p.
	(frv_legitimate_fdpic_operand_p): Delete.
	(frv_emit_movsi): Abort if we try to use the FDPIC register during
	or after reload.
	(frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
	TARGET_FDPIC.
	* config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
	2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
	* config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
	(frv_fdpic_fptr_operand): Don't declare here.
	* config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
	rather than fdpic_got12_operand.
	(PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
	got12_operand and const_unspec_operand.
	* config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
	(gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
	(symbolic_operand): Remove.
	(const_unspec_operand): New predicate.
	* config/frv/frv.md (*movsi_got): Use got12_operand.
	(*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
	2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
	* config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
	* config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
	* config/frv/frv.c (frv_unspec): New structure.
	(frv_small_data_reloc_p, frv_const_unspec_p): New functions.
	(frv_print_operand_memory_reference): Use frv_const_unspec_p to
	validate CONST indices.  Use frv_output_const_unspec to print them.
	(frv_print_operand): Update call to unspec_got_name.  Use
	frv_output_const_unspec to print constant unspecs.
	(frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
	Reject UNSPECs otherwise.
	(unspec_got_name): Take the relocation number as argument, not an
	rtx containing it.
	(frv_output_addr_const_extra): Remove, replacing with...
	(frv_output_const_unspec): ...this new function.
	(frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
	(gpr_or_int12_operand): Use fdpic_got12_operand.
	(dbl_memory_one_insn_operand): Likewise.
	(fdpic_got12_operand): Use frv_const_unspec_p.
	(frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
	are already legitimate.  Use frv_small_data_reloc_p when deciding
	whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
	2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
	* config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
	* config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
	* config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
	label, for real this time.
	* config/frv/frv.c (frv_local_funcdesc_p): Update to new
	representation of visibility.
	(fdpic_got12_operand, symbolic_operand): Mark unused arguments as
	such.
	2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
	* config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
	(TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
	* config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
	it was explicitly disabled.
	(frv_stack_info): There is no need to save the link register in every
	frame unless TARGET_LINKED_FP is true.
	(frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
	frame pointer if the stack pointer might change value.
	(frv_return_addr_rtx): Check and process "count" argument.
	2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
	* config/frv/frv-protos.h (frv_legitimize_address): Remove.
	(frv_find_base_term): Declare.
	* config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
	(FIND_BASE_TERM): Define.
	(PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
	small_data_register_operand, small_data_symbolic_operand.  Add
	symbolic_operand.
	* config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
	(frv_print_operand_memory_reference, output_move_single): Remove
	special handling for unlegitimized sdata addresses.
	(frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
	and symbolic addresses.
	(frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
	(frv_find_base_term): New function.
	(int_2word_operand): Check specifically for symbolic address constants.
	(pic_register_operand, pic_symbolic_operand): Delete.
	(small_data_register_operand, small_data_symbolic_operand): Delete.
	(dbl_memory_one_insn_operand): Don't call plus_small_data_p.
	Allow UNSPEC_GOT constants if !TARGET_FDPIC.
	(move_source_operand): Only accept CONSTs if they're a two-insn
	symbolic constant.
	(fdpic_got12_operand): Don't require TARGET_FDPIC.
	(frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
	using gen_symGOTOFF2reg*.
	(frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
	(frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
	themselves a cost of 3 insns.
	* config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
	Change predicate to symbolic_operand.
	(*movsi_high_got, *movsi_lo_sum_got): Likewise.
	(*movsi_lda_sdata): Delete.
	(*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
	2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
	* config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
	frv-*-*linux*.
	* config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
	label.
	* config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
	-multilib-library-pic.
	(LINK_SPEC): Add -z text for -mfdpic.
	* config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
	* config/frv/frvend.c (__ROFIXUP_END__): Likewise.
	* config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
	Override.
	(OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
	FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
	* config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
	crtstuff-generated files.
	2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
	* config.gcc: Add frv-*-*linux*.
	* config/frv/linux.h, config/frv/t-linux: New.
	2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
	* config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
	when -mfdpic even if a linker script is explicitly listed.
	2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
	* config/frv/frv.c (frv_override_options): Clear asm_out
	unaligned_op for SImode on FDPIC.
	(frv_emit_movsi): Use compute_reloc_for_constant to compute the
	argument passed to decl_readonly_section.
	(frv_assemble_integer): Revert 2003-09-30's change, but make the
	whole block run with FDPIC even with -fno-PIC.
	2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
	* config/frv/frv.c (frv_cannot_force_const_mem): Don't force
	symbol or label plus offset to memory.
	(frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
	GOTOFF and GPREL for LABEL_REF.
	* config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
	-mfdpic unless -mno-gprel-ro, -fpic or -fpie.
	(MASK_GPREL_RO, TARGET_GPREL_RO): New.
	(TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
	* doc/invoke.texi: Document them.
	2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
	* config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
	(frv_splittable_got_operand): Removed.
	* config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
	LO_SUM.  Add comments.
	(frv_override_options): Moved enabling of FDPIC to
	DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
	(frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
	(frv_legitimize_fdpic_address): Don't duplicate logic in
	frv_emit_movsi.
	(frv_gen_GPsym2reg): New.
	(unspec_got_name): Added gprel.
	(frv_expand_fdpic_call): Add support for inlining PLTs.
	(fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
	(gpr_or_int12_operand): Added GPREL12.
	(pic_symbolic_operand): Match even if !flag_pic for FDPIC.
	(small_data_symbolic_operand): Fail if FDPIC.
	(fdpic_splittable_got_operand): Removed.
	(fdpic_got12_operand): Added GPREL12.
	(frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
	when appropriate.  Fix sdata GOTOFF.
	(frv_legitimate_constant_p): Require legitimate PIC operand for
	FDPIC with pic, but only a legitimate fdpic operand for non-pic.
	(frv_assemble_integer): Move FDPIC funcdesc handling out of
	flag_pic case.
	(frv_asm_out_constructor, frv_asm_out_destructor): Abort if
	frv_assemble_integer fails.
	* config/frv/frv.h (DRIVER_SELF_SPECS): New.
	(SUBTARGET_DRIVER_SELF_SPECS): New.
	(ASM_SPEC): Don't pass -mno-fdpic.
	(LINK_SPEC): Pass -melf32frvfd for FDPIC.
	(MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
	(TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
	-multilib-library-pic.
	(PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
	condexec_si_media_operator, condexec_sf_add_operator and
	condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
	and condexec_sf_unary_operator.
	* config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
	New.
	(movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
	movsi_internal.  Give them internal names.  movsi_got has type
	int.
	(fdpic got splitters): Remove.
	(symGPREL2reg, symGPREL2reg_hilo): New.
	* config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
	to -mlibrary-pic.  Map -multilib-library-pic to it.
	* doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
	Document.
	2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
	* config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
	(TARGET_CANNOT_FORCE_CONST_MEM): Define to...
	(frv_cannot_force_const_mem): New function.
	(const_small_data_p, plus_small_data_p): Update comments on sdata
	on FDPIC.
	(frv_override_options): Set flag_pie for FDPIC too.
	(frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
	call-saved registers on FDPIC.
	(frv_stack_info): Don't preserve the PIC register on FDPIC, and
	don't force LR to be preserved.
	(frv_expand_prologue): Likewise.
	(frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
	(frv_frame_pointer_required): Don't force it just because the
	FDPIC register is used.
	(frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
	operand only if !condexec_p.
	(frv_legitimize_address): Return the FDPIC-legitimized address.
	Don't match small data here on FDPIC.
	(frv_legitimate_fdpic_operand_p): Don't accept unadorned function
	symbols.  Use TRUE/FALSE instead of 1/0.
	(frv_local_funcdesc_p): New.
	(frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
	immediates when possible.
	(pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
	(dbl_memory_one_insn_operand): Accept addresses that add a REG and
	an UNSPEC_GOT.
	(frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
	12-bit immediates when possible.
	(frv_legitimate_constant_p): In FDPIC, reject SImode operands that
	are not legitimate pic operands.
	(frv_in_small_data_p): Re-enable for FDPIC.
	* config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
	(FRV_GLOBAL_P): Removed.
	* config/frv/frv.md: Add modes to CONSTs.
	(movsi_got): New.
	(movsi_lo_sum_got): Use separate matches instead of match_dup.
	(movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
	(fdpic splittable operations): Match on flag_pic != 1.
	2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
	* config/frv/frv.c (frv_asm_out_constructor,
	frv_asm_out_destructor): Pass to frv_assemble_integer the size in
	bytes, not bits.
	2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
	* config/frv/frv.c (frv_assemble_integer): Reject complex
	expressions referencing function SYMBOL_REFs.
	* config/frv/frv.c (frv_function_symbol_referenced_p): New.
	(move_source_operand): Reject CONSTs that reference function
	SYMBOL_REFs on FDPIC.
	(frv_emit_movsi): If we get such a CONST, break it up.
	* config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
	(TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
	* config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
	MEM.
	(frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
	(frv_trampoline_size): Increase for FDPIC.
	* config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
	(TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
	* config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
	Disable use of GOTOFF for now.
	(const_small_data_p, plus_small_data_p, frv_in_small_data_p):
	Disable use of small data in FDPIC for now.
	(frv_asm_output_mi_thunk): Implement for FDPIC.
	* config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
	* config/frv/frv.c (frv_asm_out_constructor): Use
	frv_assemble_integer for FDPIC pointers.
	(frv_asm_out_destructor): Likewise.
	* config/frv/frv.md (ldd): Fix order of operands.  Use
	address_operand for input.
	2003-09-18  DJ Delorie  <dj@redhat.com>
	* config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
	(unspec_got_name): Correct typo.
	(frv_emit_movsi): Pre-expand splittable GOTs.
	(frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
	* config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
	(symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
	* config/frv/t-frv: Add -mfdpic multilibs.
	* config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
	(TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
	* config/frv/frv.c (frv_override_options): -mfdpic assumes
	flag_pic, default to 32-bit pics, require DWORD ops.
	(frv_override_options): Add W and Z constraints.
	(frv_expand_prologue): No pic prologue for -mfdpic.
	(frv_asm_output_mi_thunk): Support -mfdpic (soon).
	(frv_print_operand_memory_reference): Handle GOT constants.
	(frv_legitimate_address_p): Allow GOT constants.
	(frv_legitimize_address): Handle GOT addresses too.
	(frv_legitimate_fdpic_operand_p): New.
	(frv_legitimize_fdpic_address): New.
	(unspec_got_name): New.
	(frv_output_addr_const_extra): New.
	(frv_expand_fdpic_call): New.
	(frv_fdpic_fptr_operand): New.
	(gpr_or_int12_operand): Handle GOT operands.
	(int_2word_operand): Handle GOT operands.
	(fdpic_operand): New.
	(fdpic_splittable_got_operand): New.
	(fdpic_got12_operand): New.
	(frv_emit_movsi): Handle GOT operands.
	(frv_assemble_integer): -mfdpic doesn't use rofixups.
	(frv_print_operand): Support 'g' code for GOT operands.
	* config/frv/frv-protos.h: Add prototypes as needed.
	* config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
	R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
	R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
	R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
	R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
	R_FRV_GOTOFFLO): New.
	(movsi_high_got, movsi_lo_sum_got): New.
	(*movsi_pic): Don't use this splitter for -mfdpic.
	(addsi3): Allow GOT references also.
	(call, call_value): Handle -mfdpic separately.
	(call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
	call_value_fdpicsi): New.
	(symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
	symGOTOFF2reg_i): New.
	* config/frv/frv.h (MASK_FDPIC): New.
	(TARGET_FDPIC): New.
	(TARGET_SWITCHES): Add -mfdpic.
	(FDPIC_FPTR_REGNO): New.
	(FDPIC_REGNO): New.
	(OUR_FDPIC_REG): New.
	(enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
	FDPIC_CALL_REGS.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
	(EXTRA_CONSTRAINT): Add it here.
	(FRV_GLOBAL_P): New.
	(OUTPUT_ADDR_CONST_EXTRA): New.

2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/sparc/sparc.h: Remove commented-out definitions of
	TARGET_EDOM and GEN_ERRNO_RTX.

2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>

	* df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
	df_analyse with df_analyze.

2004-02-24  Alan Modra  <amodra@bigpond.net.au>

	* gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
	beginning of block.

2004-02-23  James E Wilson  <wilson@specifixinc.com>

	* calls.c (precompute_arguments): Update comment.

2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>

	* et-forest.c: Replace et_occurences with et_occurrences.

2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>

	* cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
	with iv_analyze.

2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>

	* config/i386/i386.c: Rename pni to sse3.
	* config/i386/i386.h: Likewise.
	* config/i386/i386.md: Likewise.
	* config/i386/pmmintrin.h: Likewise.
	* doc/extend.texi: Likewise.
	* doc/invoke.texi: Likewise.

2004-02-23  Zack Weinberg  <zack@codesourcery.com>
	    Kazu Hirata  <kazu@cs.umass.edu>

	Remove -fwritable-strings.
	* c-common.c (fix_string_type): Don't check
	flag_writable_strings.
	(fix_string_type): Likewise.
	* c-opts.c (set_std_c89): Don't initialize
	flag_writable_strings.
	(set_std_c99): Likewise.
	* common.opt (fwritable-strings): Remove.
	* flags.h: Remove the external declaration of
	flag_writable_strings.
	* opts.c (common_handle_option) <OPT_fwritable_strings>:
	Remove.
	* toplev.c (flag_writable_strings): Remove.
	(f_options): Remove an entry for writable-strings.
	* varasm.c (const_hash_1) <STRING_CST>: Don't check
	flag_writable_strings.
	(compare_constant) <STRING_CST>: Likewise.
	(build_constant_desc): Likewise.
	* config/darwin.c (machopic_select_section): Likewise.
	* config/arm/arm.c (AOF_ASSEMBLER): Likewise.
	* config/arm/pe.c (arm_pe_encode_section_info): Likewise.
	* config/iq2000/iq2000.c (iq2000_select_section): Likewise.
	* config/mips/mips.c (mips_select_section): Likewise.
	(mips_encode_section_info): Likewise.
	* config/pa/pa.c (pa_select_section): Likewise.
	* config/pa/pa.h (TEXT_SPACE_P): Likewise.
	* config/v850/v850.c (v850_select_section): Likewise.
	* doc/invoke.texi (-fwritable-strings): Remove.
	(-fno-const-strings): Don't mention -fwritable-strings.
	* doc/trouble.texi: Don't mention -fwritable-strings.

2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>

	* doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.

2004-02-23  Dale Johannesen  <dalej@apple.com>

	* config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
	(movdf_hardfloat64):  Ditto.
	(movdf_softfloat64):  Ditto.

2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
	* config/rs6000/rs6000.c (function_arg): call to
	rs6000_mixed_function_arg for DFmode moved to allow
	normal DFmode incoming register assignment.

2004-02-23  Dale Johannesen  <dalej@apple.com>

	* config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
	(movdf_hardfloat64):  Ditto.

2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>

	* convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
	config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
	copyright.

2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c/14156
	* c-typeck.c (c_expand_return): Change check for VAR_DECL
	to use DECL_P instead.

	* config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
	* config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.

2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>

	* Makefile.in (opts.o): Depend on target.h.
	* opts.c (decode_options): Use targetm.default_short_enums
	instead of DEFAULT_SHORT_ENUMS.
	* system.h (DEFAULT_SHORT_ENUMS): Poison.
	* target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
	(TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
	* target.h (gcc_target): Add default_short_enums.
	* config/cris/cris.h: Remove a comment about
	DEFAULT_SHORT_ENUMS.
	* config/ip2k/ip2k.h: Likewise.
	* doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
	TARGET_DEFAULT_SHORT_ENUMS.  Update the description.

2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
	    Falk Hueffner  <falk@debian.org>

	PR c/14188
	* builtins.c (expand_builtin_va_arg): Emit an informative message
	if a trap is generated.
	* c-typeck.c (build_function_call): Likewise.

2004-02-22  Jakub Jelinek  <jakub@redhat.com>

	* gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
	fopen.
	* libgcov.c: Include sys/stat.h.
	* config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
	* config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
	* config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
	* config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.

2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>

	* reorg.c: Remove comments about dead ports.

2004-02-22  Christopher Faylor  <cgf@redhat.com>

	* config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
	extra host object file when targetting cygwin rather than generic
	object files.

2004-02-22  Josef Zlomek  <zlomekj@suse.cz>

	Merge from tree-ssa:
	2003-11-20  Richard Henderson  <rth@redhat.com>

		* tree-inline.c (insert_decl_map): New.
		(remap_decl, remap_type, remap_block, copy_body_r,
		initialize_inlined_parameters, declare_return_variable,
		remap_save_expr): Use it.

	* function.c (copy_body_r): Add mapping from id->ret_label to
	id->ret_label.  Revert test for ret_label.

2004-02-22  Jakub Jelinek  <jakub@redhat.com>

	* genoutput.c (process_template): Strip trailing whitespace in @
	templates and issue a warning if there was any.

2004-02-21  Christopher Faylor  <cgf@redhat.com>

	* config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
	object file when targetting cygwin.
	* config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
	overridden by top-level Makefile.

2004-02-21  Roger Sayle  <roger@eyesopen.com>

	* config/i386/i386.c (standard_80387_constant_p): Also prefer
	the x87's load constant instructions when optimizing for size.

2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>

	* combine.c (SHIFT_COUNT_TRUNCATED): Remove.
	* defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
	* expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
	* fold-const.c: Likewise.
	* simplify-rtx.c: Likewise.

2004-02-21  Alan Modra  <amodra@bigpond.net.au>

	* combine.c (can_combine_p): Don't ignore SETs marked with
	REG_EH_REGION notes.
	(try_combine): When attemting to fix unrecognized insns, don't
	split a PARALLEL that contains the original i2.

2004-02-21  Ziemowit Laski  <zlaski@apple.com>

	* config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
	SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
	* config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
	* config/rs6000/altivec.h: #error out if '-maltivec' not specified.
	(vector, pixel, bool): #define to __vector, __pixel and __bool.
	(__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
	portion of header.
	(__altivec_link_error_invalid_argument): Remove prototype; will use
	__builtin_altivec_compiletime_error("vec_*") instead.
	(vec_*): Fix/complete set of available operation overloads given the
	existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
	cv-correctness of pointer arguments; in C, always check for correct
	argument types before macro expansion.
	* config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
	defining Darwin/PowerPC-specific '-f[no-]altivec' and
	'-W[no-]altivec-long-deprecated' switches.
	* config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
	'__vector', '__pixel' and '__bool' macros using
	'__attribute__((altivec(...)))' types.
	* config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
	bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
	bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
	New type nodes.
	(rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
	handling '-W[no-]altivec-long-deprecated'.
	(rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
	(rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
	altivec_expand_dst_builtin): Remove casts from integer literals.
	(altivec_expand_builtin): Likewise; handle expansion of new
	'__builtin_altivec_compiletime_error' function.
	(rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
	types, and make them distinct from other vector types; register
	'__builtin_altivec_compiletime_error' function.
	(print_operand): For 'P', print a full target register name instead of
	merely its number.
	(rs6000_attribute_table): Add "altivec" attribute.
	(rs6000_handle_altivec_attribute): New function.
	* config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
	'-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
	maps to).
	(rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
	declare.
	(ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.

2004-02-20  James E Wilson  <wilson@specifixinc.com>

	* config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
	check.
	(shift_mix4left+2): Delete redundant pattern.

2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>

	* alias.c (OUTGOING_REGNO): Don't define the default.
	* builtins.c (OUTGOING_REGNO): Likewise.
	(INCOMING_REGNO): Likewise.
	(apply_args_register_offset): Always use OUTGOING_REGNO.
	* combine.c (OUTGOING_REGNO): Likewise.
	* sibcall.c (OUTGOING_REGNO): Likewise.
	* defaults.h (INCOMING_REGNO): Provide the default.
	(OUTGOING_REGNO): Likewise.

2004-02-21  Jan Hubicka  <jh@suse.cz>

	* params.def (max-peeled-insns, max-completely-peeled-insns,
	max-once-peeled-insns): Set to 400.

2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR c++/12007
	* dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
	are set for parameters before outputing debugging information.

2004-02-20  Falk Hueffner  <falk@debian.org>

	PR target/14201
	* config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
	numbers.

2004-02-20  Per Bothner  <per@bothner.com>

	* input.h:  Don't #include line-map.h.  It may cause link problems
	with undefined linemap_line_start when line-map.h is included but
	line-map.o is not linked, as currently happens with gengtype on
	compilers that don't support inline.
	* toplev.c:  So we do have to explicitly #include line-map.h here.

2004-02-20  Richard Henderson  <rth@redhat.com>

	* doc/invoke.texi: Add -Wvariadic-macros.

2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>

	* haifa-sched.c (sched_emit_insn): Remove.
	* sched-int.h: Remove the corresponding prototype.

2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>

	Revert:
	2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
	* opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
	* system.h (DEFAULT_SHORT_ENUMS): Poison.
	* config/cris/cris.h: Remove a comment about
	DEFAULT_SHORT_ENUMS.
	* config/ip2k/ip2k.h: Likewise.
	* doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.

2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
	    Tom Tromey  <tromey@redhat.com>

	* doc/install.texi: Moved --disable-libgcj and
	--with-system-zlib documentation to new section for
	Java-specific options.
	Added explicit Cross-Compiler-Specific Options subheading.
	Added section for Java-specific options.

2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>

	* doc/install.texi (Building the Ada compiler): Remove
	example.

2004-02-20  James E Wilson  <wilson@specifixinc.com>

	* toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.

2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>

	* gcc.c (process_command): Allow translation of the copyright
	symbol but not the rest of the copyright message.
	* gcov.c (print_version): Likewise.  Allow translation of the
	message about warranty.

2004-02-20  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.md ("*andsi_movu"): Correct parentheses in
	predicate.
	("*andsi_clear"): Tweak constraints to not match postincrement.
	Adjust the predicate to exclude a volatile memory reference.
	("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
	("*andhi_clear_unsigned"): Remove, non-matching pattern.

2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>

	* move-if-change: Remove.
	* Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
	(s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
	(s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
	(s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
	(s-gtyp-gen, s-iov): Use the top level move-if-change.
	* objc/Make-lang.in (objc/objc-parse.y): Likewise.

2004-02-19  James E Wilson  <wilson@specifixinc.com>

	* config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
	for operand2.  Add condition that requires register_operand operand2
	before reload.

2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
	    Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
	* config/mips/mips.md: Expand comment above unaligned loads and stores.

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

	* Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
	* tree.c (build0, build1, build2, build3, build4): Split out from...
	(build): ... here.  Call them.
	* tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.

	* convert.c (convert_to_integer): Remove extra build argument.
	* tree-inline.c (expand_call_inline): Likewise.

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

	* c-opts.c (warn_variadic_macros): New.
	(c_common_handle_option): Set it.
	(sanitize_cpp_opts): Copy it to cpp_opts.
	* c.opt (Wvariadic-macros): New.
	* cpplib.h (struct cpp_options): Add warn_variadic_macros.
	* cppinit.c (cpp_create_reader): Initialize it.
	* cppmacro.c (parse_params): Check it.

2004-02-19  David Daney <ddaney@avtrex.com>

	PR preprocessor/14198
	* config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
	builtin_assert ("machine=mips")

2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>

	* opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
	* system.h (DEFAULT_SHORT_ENUMS): Poison.
	* config/cris/cris.h: Remove a comment about
	DEFAULT_SHORT_ENUMS.
	* config/ip2k/ip2k.h: Likewise.
	* doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.

2004-02-19  Zack Weinberg  <zack@codesourcery.com>

	* config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
	when passing single SFmode quantities in general registers,
	put them in the high half.

2004-02-19  Aldy Hernandez  <aldyh@redhat.com>

	* doc/md.texi (Standard Names): Document additional dependency on
	fix pattern.

	* optabs.c (ftruncify): Remove.
	(expand_fix): Manually inline ftruncify above.
	(can_fix_p): Add FIXME note.

2004-02-19  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/spe.md (spe_fixunssfsi2): Rename to
	spe_fixuns_truncsfsi2.

	* config/rs6000/rs6000.md (fixunssfsi2): Rename to
	fixuns_truncsfsi2.

2004-02-19  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
	* testsuite/gcc.dg/20040219-1.c: New test.

2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
	"*subsf3_cconly"): Subtraction is not commutative.

2004-02-19  Zack Weinberg  <zack@codesourcery.com>

	* sdbout.c (preinit_symbols, sdbout_initialized): New statics.
	(sdbout_symbol): If called before sdbout_init, queue DECL for
	later and return.
	(sdbout_init): Set sdbout_initialized true, process decls
	queued earlier by sdbout_symbol.
	(sdbout_finish): Use size_t for index variable.

2004-02-19  Jeff Law  <law@redhat.com>

	* fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
	for unordered comparison codes.

2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>

	* reload1.c (reload): Correct comment.
	(scan_paradoxical_subregs): Remove #if 0 and old comment.
	* doc/extend.texi (Local Reg Vars): Remove obsolete comment that
	register variables are not used by reload.

2004-02-19  Hans-Peter Nilsson  <hp@axis.com>

	PR target/14209
	* config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
	constraints to not match postincrement.  Adjust the predicate to
	exclude a volatile memory reference.

2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.

2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>

	* hooks.c (hook_void_tree_int): Remove.
	(hook_void_constcharptr): Likewise.
	(hook_int_void_0): Likewise.
	* hooks.h: Remove the prototypes for the above three
	functions.
	* targhooks.c (hook_bool_machine_mode_true): Remove.
	* targhooks.h: Remove the prototype for
	hook_bool_machine_mode_true.

2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>

	* emit-rtl.c (subreg_realpart_p): Remove.
	(reorder_insns_with_line_notes): Likewise.
	(end_full_sequence): Likewise.
	* rtl.h: Remove the prototype for the above functions.

2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
	config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
	config/iq2000/iq2000.h, config/m32r/m32r.h,
	config/pdp11/pdp11.h, config/sparc/sparc.h,
	config/xtensa/xtensa.h: Remove commented-out or useless
	definitions of CASE_VECTOR_PC_RELATIVE.

2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>

	* loop.c (all_sets_invariant_p): Remove.

2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/12916
	* config/sparc/sparc.h (NPARM_REGS): Delete.
	(BASE_RETURN_VALUE_REG): Likewise.
	(BASE_OUTGOING_VALUE_REG): Likewise.
	(BASE_PASSING_ARG_REG): Likewise.
	(BASE_INCOMING_ARG_REG): Likewise.
	* config/sparc/sparc.c (sparc_strict_argument_naming): Test
	TARGET_ARCH64, not TARGET_V9.
	(function_arg_slotno): Dispatch based on the mode class.
	Handle vector modes like floating-point modes.
	(function_arg_record_value_1): Handle vector types like
	floating-point types.
	(function_arg_record_value_2): Likewise.
	Calculate regno after mode transformation.
	(function_arg): Handle vector modes like floating-point modes.
	(function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
	If ARCH64, do not recheck alignment.
	(function_arg_pass_by_reference): Reorder the conditions.
	(sparc_return_in_memory): Move after function_arg_padding.
	Implement calling conventions for vector modes.
	(sparc_struct_value_rtx): Move after sparc_return_in_memory.
	(function_value): Move scope of 'regbase'.
	Implement calling conventions for vector modes.
	(sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
	and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
	(sparc_va_arg): Use function_arg_pass_by_reference to test whether
	the argument is passed by reference.
	(sparc_type_code): Handle vector types.

2004-02-19  Alan Modra  <amodra@bigpond.net.au>

	* function.c (assign_parms): When building decl_rtl for
	SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.

2004-02-19  Olivier Hainque  <hainque@act-europe.fr>

	* expr.c (is_aligning_offset): Check if we are aligning the
	expressions's address over BIGGEST_ALIGNMENT in bytes, not
	in bits.

2004-02-18  Matt Austern  <austern@apple.com>

	* gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
	LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
	(init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
	defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
	spec string.
	* doc/tm.texi (REAL_LIBGCC_SPEC): Document.

2004-02-18  Zack Weinberg  <zack@codesourcery.com>

	* dwarf2out.c (loclabel_num): Move outside #ifdef
	DWARF2_DEBUGGING_INFO and mark with GTY(()).
	* config/ia64/ia64.c (struct extern_func_list,extern_func_head):
	Mark with GTY(()).
	(ia64_hpux_add_extern_decl): Save the decl, not the name string.
	Allocate memory with ggc_alloc.  No need to copy anything.
	(ia64_hpux_file_end): Update to match.

2004-02-18  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
	by default.

2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
	("divmodtisi3"): Likewise.
	("udivmoddi4", "udivmodtidi3"): Likewise.
	("divmodsi4", "divmoddisi3"): Likewise.
	("udivmodsi4", "udivmoddisi3"): Likewise.
	("udivsi3", "umodsi3"): Likewise.

2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_mainpool_start): Delete the main pool
	placeholder insn when chunkifying the pool.

2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
	generating PIC code.

2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Add a prototype for
	h8300_expand_branch.
	* config/h8300/h8300.c (h8300_expand_branch): New.
	* config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
	bgtu, beq, bne): Call h8300_expand_branch().

2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Add prototypes for
	h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
	* config/h8300/h8300.c (h8300_hard_regno_nregs): New.
	(h8300_hard_regno_mode_ok): Likewise.
	* config/h8300/h8300.h (HARD_REGNO_NREGS): Call
	h8300_hard_regno_nregs().
	(HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().

2004-02-18  Per Bothner  <per@bothner.com>

	* cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
	partly reverts my 2003-10-01 change, because we're back to logically
	including <command line> inside the main line.
	* cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
	* cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
	Fixes PR preprocessor/14103.

	* cppfiles.c (_cpp_stack_include):  When appropriate decrement
	line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
	(cpp_push_include):  Don't need to increment pfile's line field.
	* line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.

	* c-ppoutput.c (print struct):  New first_time field.
	(init_pp_output):  Set print.first_time.
	(pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
	which is set also for (say) <command line>.  Clear print.first_time.

	* cppfiles.c (struct _cpp_file):  Comment and type for pch field
	does not match the code, so fix both.
	(should_stack_file):  Inline include_pch_p function.
	(include_pch_p):  Remove pointless function.

	* cpphash.h (struct cpp_buffer):  Remove unused search_cached field.

2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (four define_peephole2's): Use
	h8300_regs_ok_for_stm().

2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Update the prototype for
	expand_a_rotate().
	* config/h8300/h8300.c (expand_a_rotate): Remove the first
	argument.
	* config/h8300/h8300.md: Update all callers.

2004-02-18  Jan Hubicka  <jh@suse.cz>

	* simplify-rtx.c (simplify_unary_operation): Deal with logicals on
	floats.
	(simplify_binary_operation): Deal with logicals on floats.

	* i386.md (SSE fabs splitters): Emit new patterns.
	(SSE cmov splitters): Likewise.
	(sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
	(sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
	subregs.
	(sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
	(sse_anddf3, sse_nanddf3, sse_xordf3): Kill.

2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (expand_a_rotate): Don't generate insns
	by hand.
	(output_a_rotate): Tweak a comment.
	* config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
	(*rotlhi3_1): Change to rotlhi3_1.
	(*rotlsi3_1): Change to rotlsi3_1.

2004-02-18  Richard Earnshaw  <rearnsha@arm.com>

	PR target/13866
	* arm.c (load_multiple_operation): Don't insist that the source reg
	of a post-increment component is the same as the destination.
	(store_multiple_operation): Likewise.

2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Move movsf patterns into one section
	of the file.

2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>

	* cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
	loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
	xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
	config/mips/linux64.h, config/pa/pa-64.h,
	config/rs6000/aix51.h, config/rs6000/aix52.h,
	config/rs6000/spe.md, config/sparc/linux.h,
	config/sparc/linux64.h: Update copyright.

2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Move push patterns into one
	section of the file.

2004-02-18  Mark Mitchell <mark@codesourcery.com>

	PR c++/11326
	* config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
	fntype.

2004-02-18  Paul Brook  <paul@codesourcery.com>

	* rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX

2004-02-18  Paul Brook  <paul@codesourcery.com>

	PR debug/12934
	* dwarf2out.c (loc_descriptor_from_tree): Handle
	EXPR_WITH_FILE_LOCATION.

2004-02-18  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
	testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
	trailing whitespace from instructions.

2004-02-17  Geoffrey Keating  <geoffk@apple.com>

	* configure.ac: When generating auto-build.h, pass
	--enable-languages to the sub-configure.
	Put quotes around ${program_transform_name} when generating
	name of as, ld, nm, objdump.
	* configure: Regenerate.

2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>

	* Makefile.in (s-check, s-config, s-conditions, s-flags)
	(s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
	(s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
	(s-preds, s-iov): Do not depend on move-if-change.

2004-02-17  James E Wilson  <wilson@specifixinc.com>

	* caller-save.c (insert_restore): Pass mem through copy_rtx.
	(insert_save): Likewise.

2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
	warning.

2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*one_complsi2_h8300): Change to
	*one_cmplsi2_h8300.
	(*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.

2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Update the prototype of
	fix_bit_operand().
	* config/h8300/h8300.c (fix_bit_operand): Remove the second
	argument "what".
	* config/h8300/h8300.md: Update all callers.

2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (fix_bit_operand): Change the name of
	the last argument to "code" from "type".

2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c: Remove an extern declaration of
	rtx_equal_function_value_matters.

2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (fix_bit_operand): Don't generate insns
	by hand.
	* config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
	(*iorqi3_1): Change to iorqi3_1.
	(*xorqi3_1): Change to xorqi3_1.

2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>

	* c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
	typos.

2004-02-17  Jan Hubicka  <jh@suse.cz>

	* i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.

2004-02-18  Alan Modra  <amodra@bigpond.net.au>

	PR optimization/14119
	* combine.c (try_combine): When attemting to fix unrecognized insns,
	don't delete SETs marked with REG_EH_REGION notes.

2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>

	* combine.c (simplify_if_then_else): Do not replace
	(if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
	modes differ.

2004-02017  Steven Bosscher  <stevenb@suse.de>

	* (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
	function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
	tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
	* ada/utils.c: Likewise.
	* cp/decl.c: Likewise.
	* f/com.c: Likewise.
	* java/class.c: Likewise.

2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Fix comment typos.

2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/mips/t-iris6gld: Renamed to ...
	* config/mips/t-irix-gld: ... this.
	* config.gcc (mips-sgi-irix6*): Reflect this
	(mips-sgi-irix5*): Use it with GNU ld.

	* config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
	to ...
	* config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
	* config/mips/t-irix-gld: Reflect this.
	* config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.

	* config/mips/iris5gld.h: New file.
	* config.gcc (mips-sgi-irix5*): Use it with GNU ld.
	Only use collect2 without gas.

	* config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
	Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
	(STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
	* config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.

	* config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
	* config/mips/iris5.h: ... here.

	* config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
	IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
	(STARTFILE_SPEC, ENDFILE_SPEC): Define.

	* config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
	using irix_startfile_spec, irix_endfile_spec.

2004-02-16  Gunther Nikl  <gni@gecko.de>

	* config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.

2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_expand_prologue): Don't generate
	insns by hand.

2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* cfghooks.c (split_edge): Speed up updating of dominators.

2004-02-17  Mark Mitchell  <mark@codesourcery.com>

	PR c++/11326
	* c-common.c (flag_abi_version): Remove.
	* c-common.h (flag_abi_version): Likewise.
	* c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
	* c.opt (fabi-version): Remove.
	* calls.c (expand_call): Always pass a function type to
	struct_value_rtx.  Use convert_memory_address.
	* common.opt (fabi-version): Add it.
	* flags.h (flag_abi_version): Likewise.
	(abi_version_at_least): New macro.
	* opts.c (common_handle_option): Add OPT_fabi_version.
	* toplev.c (flag_abi_version): Define it.
	* config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
	New function.
	(ia64_output_mi_thunk): Use it.
	(ia64_struct_value_rtx): Likewise.

2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_emit_stack_adjustment):
	Don't generate insns by hand.

2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/14178
	* doc/invoke.texi (fabi-version): The default is 2 now.

2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* loop-iv.c: New file.
	* Makefile.in (loop-iv.o): New.
	* basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
	* cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
	num_loop_branches): New functions.
	* cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
	iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
	find_simple_exit, iv_number_of_iterations, iv_analysis_done,
	get_simple_loop_desc, free_simple_loop_desc): Declare.
	(simple_loop_desc): New inline function.
	(struct rtx_iv, struct niter_desc): New.
	* cfgloopmanip.c (loopify): Specify semantics more precisely.
	* expr.c (force_operand): Handle subregs of expressions created by
	loop unroller.
	* loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
	parts of the initialization to toplev.c
	* loop-unroll.c (loop_exit_at_end_p): New.
	(unroll_and_peel_loops): Call iv_analysis_done.
	(decide_peel_once_rolling, decide_peel_completely,
	decide_unroll_stupid, decide_unroll_constant_iterations,
	decide_unroll_runtime_iterations, decide_peel_simple,
	peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
	unroll_loop_runtime_iterations): Use new simple loop analysis.
	* loop-unswitch.c (compare_and_jump_seq): New.
	(may_unswitch_on_p): Renamed to ...
	(may_unswitch_on): Use new iv analysis.
	(reversed_condition): Export.
	(unswitch_single_loop, unswitch_loop): Use new iv analysis.
	* predict.c (estimate_probability): Use new simple loop analysis.
	* rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
	canon_condition, simplify_using_condition): Declare.
	* stor-layout.c (get_mode_bounds): New.
	* toplev.c (rest_of_handle_loop2): Some parts of
	initialization/finalization moved here from loop-init.c.

2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
	pointer.
	(CALL_USED_REGISTERS): Likewise.
	(REG_ALLOC_ORDER): Likewise.
	(REG_CLASS) <GENERAL_REGS>: Likewise.

2004-02-16  Geoffrey Keating  <geoffk@apple.com>

	* doc/md.texi (Insn Canonicalizations): Document left-chaining
	in associative operators.
	* rtlanal.c (commutative_operand_precedence): Create some new
	variables.  Prefer a commutative operand on the left, then
	binary expressions, then NEG and NOT.

2004-02-16  Matthias Klose  <doko@debian.org>

	* config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
	in terms of SHLIB_SOVERSION.
	* config/m68k/t-slibgcc-elf-ver: New file.
	* config/pa/t-slibgcc-elf-ver: New file.
	* config.gcc (m68k-linux, parisc-linux): Use them when not
	sjlj exceptions are not configured.

2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).

2004-02-16  Zack Weinberg  <zack@codesourcery.com>

	* sdbout.c (sdb_debug_hooks): Correct the type_decl entry.

2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/sourcebuild.texi: Mention backends.html.

2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>

	* c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
	line-map.c, line-map.h, var-tracking.c: Fix comment
	formatting.

2004-02-16  Richard Henderson  <rth@redhat.com>

	* cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.

	* fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.

2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Remove unnecessary parallels from
	all define_insn and define_split patterns.

2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Remove explicit (set_attr "cc"
	"clobber").

2004-02-15  Bernardo Innocenti  <bernie@develer.com>

	* config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
	'%#'.

2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>

	* config/ia64/ia64.c, config/mips/mips.c,
	config/mmix/mmix-modes.def: Fix comment typos.

2004-02-15  Roger Sayle  <roger@eyesopen.com>

	* c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
	(get_directive_line): Remove unused function prototype.

2004-02-14  Josef Zlomek  <zlomekj@suse.cz>

	* tree-inline.c (copy_body_r): Do not replace ret_label.

2004-02-14  Jan Hubicka  <jh@suse.cz>

	* i386.c (x86_four_jump_limit): New variable.
	(k8_avoid_jump_misspredicts): Rename to ...
	(ix86_avoid_jump_misspredicts): .. this one.
	(ix86_pad_returns): Break out from ...
	(ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
	to.
	* i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.

2004-02-14  Josef Zlomek  <zlomekj@suse.cz>

	* emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
	PARALLEL is NULL.

2004-02-14  Per Bothner  <per@bothner.com>

	* fix-header.c (line_table):  Move local variable in main to global.
	* scan.h (line_table):  Use it.
	* scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
	line (recently renamed to src_loc) before calling recognized_function.

2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>

	* Makefile.in: Fix comment typos.

2004-02-14  Olivier Hainque  <hainque@act-europe.fr>

	* loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
	for start_value when it is directly moved into reg, and factorize
	the retrieval of GET_MODE (reg).

2004-02-14  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips-protos.h (mips_load_got_page): Delete.
	(mips_load_got_global): Delete.
	(mips_gotoff_page): Declare.
	* config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
	(*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
	UNSPEC_LOAD_GOT pattern rather than a MEM.
	(*load_got[sd]i): New patterns.
	* config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
	(mips_load_got_page, mips_load_got_global): Delete.
	(mips_gotoff_page): New function.
	(override_options): Don't initialize mips_got_alias_set.

2004-02-14  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
	(TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
	(TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
	(GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
	(TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
	* config/mips/mips.c: Fix some overly-long lines.
	(SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
	(init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.

2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* configure.ac: Search for as, ld below libexec/gcc.
	* configure: Regenerate.

2004-02-14  Ben Elliston  <bje@wasabisystems.com>

	* config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
	__builtin_arm_setwcx ().
	* config/arm/arm.c (arm_expand_builtin): Generate operands
	correctly and reverse their order in call to gen_iwmmxt_tmcr ().

2004-02-14  Ben Elliston  <bje@wasabisystems.com>

	* config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
	and "wmuluh" to "wmulsm" and "wmulum", respectively.
	* config/arm/arm.h (enum arm_builtins): Rename enumerators to
	ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
	* config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
	(_mm_mulhi_pu16): Likewise.

2004-02-13  Zack Weinberg  <zack@codesourcery.com>

	* xcoffout.c (xcoff_assign_fundamental_type_number): Check
	DECL_NAME != 0 before dereferencing.

2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
	(s390_output_addr_const_extra): Declare.
	(s390_output_pool_entry): Remove FILE * argument.
	* config/s390/s390.c (s390_output_symbolic_const): Remove.
	(s390_output_addr_const_extra): New function.
	(print_operand_address): Call output_addr_const instead of
	s390_output_symbolic_const.
	(print_operand): Likewise.
	(s390_output_pool_entry): Use assemble_integer for symbolic constants.
	Remove FILE * argument.
	* config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
	* config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
	call.

2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* cfgloopanal.c (mark_irreducible_loops): Rewriten.
	(struct edge, struct vertex, struct graph): New.
	(dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
	free_graph): New functions.

2004-02-12  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.md (casesi_internal, casesi_internal_di):
	Use ".set macro" to avoid warnings about multi-instruction
	macros, since they're intentional.

2004-02-12  Geoffrey Keating  <geoffk@apple.com>

	* config/darwin.h: Add include guards.  Remove old, now incorrect,
	comment about STANDARD_EXEC_PREFIX.

	* Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
	$(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
	for installing .1 manpages.  Add rules for installing cpp
	and gcov manpages under their installed names.

2004-02-12  Alexandre Oliva  <aoliva@redhat.com>

	* configure.ac (gcc_cv_ld): Don't set to LD if target is not
	host, but try LD_FOR_TARGET first.
	* configure: Rebuilt.

2004-02-12  Zack Weinberg  <zack@codesourcery.com>

	* dbxout.c: Move declaration of dbxout_type_decl outside
	#ifdef DBX_DEBUGGING_INFO.
	* c-parse.in: Don't give the asmdef production a type.

2004-02-12  Zack Weinberg  <zack@codesourcery.com>

	* debug.h (struct gcc_debug_hooks): Add type_decl field.
	(debug_nothing_tree_int): Prototype.
	(dwarf_debug_hooks): Delete, unused.
	* debug.c (do_nothing_debug_hooks): Update.
	(debug_nothing_tree_int): New function.
	* langhooks.h (struct lang_hooks_for_decls):
	Remove builtin_type_decls field.
	* langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
	(LANG_HOOKS_DECLS): Update.
	* toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
	Use debug_hooks->type_decl.
	* dbxout.c (preinit_symbols): New static.
	(dbx_debug_hooks, xcoff_debug_hooks): Update.
	(dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
	lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
	for symbols to output.
	(dbxout_type_decl): New function.
	(dbxout_symbol): If called before dbxout_init has run, queue
	the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
	to TYPE_DECLs before emitting them.
	* xcoffout.c (assign_type_number): Delete.
	(xcoff_type_numbers): New static table.
	(xcoff_assign_fundamental_type_number): New function.
	* xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
	DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
	* sdbout.c: Include varray.h.
	(deferred_global_decls): New static.
	(sdb_debug_hooks): Update.
	(sdbout_global_decl): If we can't emit something right now,
	remember it in deferred_global_decls.
	(sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
	(sdbout_init): Initialize deferred_global_decls.
	* Makefile.in: Update dependencies of sdbout.o.
	* dwarf2out.c (dwarf2out_type_decl): New function.
	(dwarf2_debug_hooks): Update.
	* vmsdbgout.c (vmsdbg_debug_hooks): Update.
	* c-decl.c (getdecls): Just return 0.
	(check_for_loop_decls): Don't use getdecls.
	(record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
	* c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.

2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_sched_reorder2): Remove.
	(TARGET_SCHED_REORDER2): Do not redefine.

2004-02-12  Zack Weinberg  <zack@codesourcery.com>

	* c-parse.in (maybe_type_qual): Delete.
	(maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
	(asm_argument): New grammar rules.
	(extdef_1): Use asmdef.
	(maybeasm): Move down with other asm rules; use simple_asm_expr.
	(xexpr): Move up with other expression rules.
	(stmt): Use asm_stmt.

	* c-typeck.c (build_asm_expr): New function - body mostly
	pulled from build_asm_stmt.
	(build_asm_stmt): Just handle tacking on the volatile qualifier.
	* c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.

2004-02-12  Richard Sandiford  <rsandifo@redhat.com>

	PR bootstrap/13617
	* config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
	(mips_declare_object): Make variadic.
	* config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
	mips_output_aligned_decl_common.
	* config/mips/mips.c (mips_output_aligned_decl_common): New function.
	(mips_declare_object): Make variadic.

2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* function.c (update_epilogue_consts): Teach about binary operations.

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
	previous MEM_VOLATILE in REF.
	* function.c (fixup_var_refs): Save volatile_ok and set to 1.
	* expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.

2004-02-12  Gunther Nikl  <gni@gecko.de>

	* config.gcc: Restore support for m68k-openbsd.

2004-02-12  Jan Hubicka  <jh@suse.cz>

	* tree-optimize.c (tree_rest_of_compilation): Do not release
	DECL_ARGUMENTS.

2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>

	* doc/install.texi: Fix the spelling of "explicitly".

2004-02-11  Eric Christopher  <echristo@redhat.com>

	* cppcharset.c (_cpp_interpret_string_notranslate): Rename and
	duplicate argument structure of cpp_interpret_string.
	* cpphash.h: Move prototype...
	* cpplib.h: Here.
	* cpplib.c: Fix calls to match new function signature.

2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c/456
	* cppexp.c (num_binary_op): Don't allow comma operators in #if
	constant expressions at all outside C99 mode if pedantic.

2004-02-11  Uros Bizjak  <uros@kss-loka.si>

	* optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
	(log10_optab, log2_optab): Define corresponding macros.
	* optabs.c (init_optabs): Initialize log10_optab and log2_optab.
	* genopinit.c (optabs): Implement log10_optab and log2_optab
	using log10?f2 and log2?f2 patterns.
	* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
	using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
	(expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
	using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.

	* config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
	log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
	log2, log2f and log2l built-ins as inline x87 intrinsics.

2004-02-11  Richard Henderson  <rth@redhat.com>

	PR target/1532
	* flow.c (insn_dead_p): A clobber of a dead hard register is a
	dead insn after reload.

2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* tree.h (frame_base_decl): Add GTY marker.
	* var-tracking.c (frame_base_decl): Likewise.

2004-02-11  Daniel Berlin  <dberlin@dberlin.org>

	* dwarf2out.c (output_loc_list): Remove no longer necessary, and now
	incorrect, hunk.
	(add_location_or_const_value_attribute): Use text_section_label,
	not TEXT_SECTION_NAME.

2004-02-11  Per Bothner  <per@bothner.com>

	Represent column numbers using line-map's source_location.
	The "next available source_location" is now managed internally by
	line-maps.c rather than by clients.
	* line-map.h (struct line_map):  New field column_bits.
	<from_line>:  Rename field to start_location.
	(struct line_maps):  New fields highest_location and max_column_hint.
	(linemap_check_files_exited):  New declaration.
	(linemap_line_start):  New declaration.
	(linemap_add):  Remove from_line parameter; use highest_location field.
	(SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
	(SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
	(CURRENT_LINE_MAP):  Remove macro.
	(linemap_position_for_column):  New inline function.
	* line-map.c (linemap_init):  Clear new fields.
	(linemap_check_files_exited):  New function, extracted from ...
	(linemap_free):  Use linemap_check_files_exited.
	(linemap_add):  Remove from_line parameter.  Various updates.
	(linemap_line_start):  New function.
	(linemap_lookeup):  Update for new field names.
	* cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
	linemap_position_for_column may unpredictably change the current map,
	it is cleaner and simpler for us to not cache it in cpp_reader.
	(struct cpp_buffer):  New sysp field.
	Changed warned_cplusplus_comments and from_stage3 to bitfields.
	* cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
	* cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
	current map using linemap_lookup.
	(do_linemarker):  Also set buffer's sysp field.
	(destringize_and_run):  No longer need to decrement current line.
	* cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
	(search_path_head, open_file_failed):  Use buffer's sysp.
	(cpp_make_system_header):  Get current map using linemap_lookup.
	Also set buffer's sysp flag.
	* cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
	* cpphash.h (CPP_INCREMENT_LINE):  New macro.
	(struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
	(struct cpp_reader):  ... and adding saved_line_base field.
	* cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
	Update accordingly.  Don't adjust line.
	(_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
	* cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
	(cpp_in_system_header):  ... new inline function, using buffer's sysp.
	* cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
	* cpplex.c (_cpp_lex_direct):  Likewise.
	* cppmacro.c (_cpp_builtin_macro_text):  Likewise.
	* cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
	* cpplib.h (struct cpp_token):  Rename line field to src_loc.
	Remove col field as it is now subsumed by src_loc.
	* cpperror.c:  Update various field, parameter, and macro names.
	(print_location):  If col==0, try SOURCE_COLUMN of line.
	(cpp_error):  Use cur_token's src_loc field, rather than line+col.
	* cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
	* cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
	_cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
	(_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
	(_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
	(_cpp_lex_direct):  Use linemap_position_for_column.
	* c-ppoutput.c (maybe_print_line, print_line):  Don't take map
	parameter.  Instead get it from the line_table global.  Adjust callers.
	(print):  Remove map field.  Replace line field to src_line.
	(init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
	(cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
	(pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
	Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
	* cpptrad.c (copy_comment):  Rename variable.
	* c-lex.c (map):  Remove static variable, for same reason we removed
	cpp_reader's map field.
	(cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
	to call linemap_lookup.
	(cb_line_change):  Token's line field replaced by src_loc.
	(fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
	Don't save new_map.

	* cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
	source_location.

2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>

	* config/rs6000/altivec.md (*movv4si_internal): At least one
	operand must be register_operand.
	(*movv8hi_internal1): Likewise.
	(*movv16qi_internal1): Likewise.
	(*movv4sf_internal1): Likewise.

2004-02-10  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/spe.md ("*movv2si_internal"): Check for register
	operand.
	(movv4hi_internal): Same.
	(movv2sf_internal): Same.
	(movv1di_internal): Same.

2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>

	* config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
	TARGET_OLDABI consistently.
	* config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
	mips_va_arg,override_options,compute_frame_size,
	mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
	,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
	and TARGET_OLDABI consistently.
	* config/mips/mips.md (exception_receiver): Likewise.
	* config/mips/linux64.h: Likewise.

2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>

	* gcc/config/rs6000/rs6000.c (rs6000_override_options)
	Set AltiVec ABI and vrsave as default for ppc64 linux.
	(init_cumulative_args): Post error, if try to return
	value in AltiVec register without enable AltiVec.
	(function_arg_advance): Ditto for passing arguments.

2004-02-11  Richard Sandiford  <rsandifo@redhat.com>

	* emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
	a label before updating its usage count.

2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>

	* doc/install.texi: Remove extra cd.

2004-02-10  Ziemowit Laski  <zlaski@apple.com>

	* c-common.c (vector_size_helper): Remove; call
	reconstruct_complex_type() instead.
	* tree.c (reconstruct_complex_type): New function
	(formerly vector_size_helper() in c-common.c).
	(make_vector): Make externally visible.
	* tree.h (reconstruct_complex_type, make_vector): Add prototypes.

2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Add a prototype for
	h8300_regs_ok_for_stm.
	* config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
	* config/h8300/h8300.md (stm_h8300s_2_advanced,
	stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
	stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
	stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
	ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
	ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
	ldm_h8300s_4_normal, ldm_h8300s_4): Use
	h8300_regs_ok_for_stm().

2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>

	PR c/14088
	* real.c (real_from_string): Look for 'X' as well as 'x' in
	hexfloat strings.

2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Remove an incorrect comment about
	peephole2.  Add comments.

2004-02-10  Josef Zlomek  <zlomekj@suse.cz>

	PR/14058
	* emit-rtl.c (set_decl_incoming_rtl): New.
	* tree.h (set_decl_incoming_rtl): New.
	* function.c (assign_parms): Use set_decl_incoming_rtl for setting
	DECL_INCOMING_RTL.
	* ada/misc.c (adjust_decl_rtl): Likewise.

2004-02-10  Per Bothner  <per@bothner.com>

	* c-opts.c (c_common_post_options):   Don't emit working directory
	in cpp output if -P was specified.

2004-02-10  Paolo Bonzini  <bonzini@gnu.org>

	PR c/14092
	* fold-const.c (fold) <NEGATE_EXPR>: Convert result of
	negate_expr back to the original type.

2004-02-10  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
	bump retaddr here.

2004-02-10  Paolo Bonzini  <bonzini@gnu.org>

	* rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
	gen_lowpart_SUBREG): Move under the file in which they
	are actually declared.

2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>

	* doc/sourcebuild.texi: Add libada documentation.

	* doc/install.texi: Update documentation on Ada build, now
	that the GNAT lib and tools are built automatically.

2004-02-10  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
	&& TARGET_IRIX.

2004-02-09  Ziemowit Laski  <zlaski@apple.com>

	* objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
	boundaries outside build_component_ref() call (a macro in ObjC++).

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

	* config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
	(init_cumulative_args): Likewise.
	(a7_overlap_mentioned_p): Delete prototype.
	* config/xtensa/xtensa.c (struct machine_function): Replace
	incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
	Add set_frame_ptr_insn field.
	(xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
	(xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
	if the operand is an argument in a7.  If so, copy a7 to a new pseudo
	at the function entry and replace the operand with the pseudo.
	(init_cumulative_args): Remove unused arguments.  Add new "incoming"
	argument and record this flag in CUMULATIVE_ARGS.
	(function_arg): Remove result_mode and special-case code to handle
	arguments in a7.  Instead, set need_a7_copy flag when there is an
	incoming argument in a7.
	(xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
	and use the value recorded in cfun->machine->set_frame_ptr_insn.
	(xtensa_builtin_saveregs): Check for negative gp_left value.  Set
	need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
	special-case code.
	(a7_overlap_mentioned_p): Delete.
	* config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
	(INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
	arguments to init_cumulative_args and pass "incoming" flag instead.
	(BLOCK_REG_PADDING): Delete.
	* config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
	checks for reload_in_progress and reload_completed.  Update calls to
	xtensa_copy_incoming_a7.
	(ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
	to call xtensa_copy_incoming_a7.

2004-02-09  DJ Delorie  <dj@redhat.com>

	* config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
	longer modify standard_exec_prefix, standard_bindir_prefix, or
	standard_startfile_prefix.

2004-02-09  James E Wilson  <wilson@specifixinc.com>

	PR c++/11295
	* c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
	to expand_expr_real call, and pass in alt_rtl as last argument.

	PR libstdc++/5625
	* builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
	* builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
	* builtins.def (BUILT_IN_EXTEND_POINTER): New.
	* except.c (expand_builtin_extend_pointer): New.
	* except.h (expand_builtin_extend_pointer): Declare.

2004-02-09  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
	unaligned loads and stores.

2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
	* config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.

	* config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
	* config/mips/iris5.h: ... here.
	* config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.

	* config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
	* config/mips/iris5.h: ... here.

2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* configure.ac: Remove default executable files before AC_PROG_CC.
	* configure: Regenerate.

2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>

	PR target/13721
	* config/h8300/h8300.c (byte_reg): Call abort() if asked to
	print a operand other than a register.

2004-02-09  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
	tree code rather than call fold_convert, which doesn't specify a
	default floating point to integer conversion.

2004-02-08  Bernardo Innocenti  <bernie@develer.com>

	* config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
	code to support SGS assembler.  Reformat adjacent code where possible.
	* config/m68k/m68k.c (switch_table_difference_label_flag): Remove
	definition.
	* config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
	for '%#'.
	* config/m68k/linux.h, config/m68k/m68k.c,
	* config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
	macros and asm_printf() format strings.
	* config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
	* config/m68k/linux.h: Update copyright.
	* config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.

2004-02-08  Andreas Schwab  <schwab@suse.de>
	    Bernardo Innocenti  <bernie@develer.com>

	* config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
	REGISTER_PREFIX.
	* (M68K_FP_REG_NAME): New macro to specify an alternate name for the
	frame pointer register, overridable by OS targets.
	* (M68K_REGNAME): Macro to obtain register name for asm output,
	eventually replacing %a6 with M68K_FP_REG_NAME.
	* config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
	* config/m68k/linux.h (REGISTER_NAMES): Likewise.
	* config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
	* config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
	* config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].

2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>

	* target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
	hook_rtx_tree_int_null.
	* targhooks.c (default_struct_value_rtx): Remove.
	* targhooks.h: Remove the prototype for
	default_struct_value_rtx.
	* config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
	config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
	config/ip2k/ip2k.c, config/iq2000/iq2000.c,
	config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
	config/mn10300/mn10300.c, config/pdp11/pdp11.c,
	config/rs6000/rs6000.c, config/s390/s390.c,
	config/stormy16/stormy16.c, config/v850/v850.c,
	config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
	* doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.

2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>

	* README.Portability: Change "ISO C89" to "ISO C90".
	* c-parse.in (primary, initelt): Likewise.

2004-02-08  Richard Sandiford  <rsandifo@redhat.com>

	* real.c (encode_ibm_extended): Normalize the input value before
	converting it to a double.  Handle the case where a normal value
	rounds to infinity.

2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>

	* c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
	warning.
	* cse.c (preferrable): Change to preferable. Update all of its
	callers.
	* genautomata.c (ainsn): Change
	first_ainsn_with_given_equialence_num to
	first_ainsn_with_given_equivalence_num.  Update all of its
	references.

2004-02-08  Jan Hubicka  <jh@suse.cz>

	* schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.

2004-02-07  David Edelsohn  <edelsohn@gnu.org>

	* function.c (assign_parms): Fix formatting.

2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>

	* default.h (PROMOTE_PROTOTYPES): Remove.
	* system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
	STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
	EXPAND_BUILTIN_SAVEREGS): Poison.
	* target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
	hook_bool_tree_false.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	* target.h: Replace SETUP_INCOMING_VARARGS with
	targetm.calls.setup_incoming_varargs().
	* targhooks.c (default_promote_function_return): Remove.
	(default_promote_prototypes): Likewise.
	(default_struct_value_rtx): Always abort().
	(default_expand_builtin_saveregs): Always print an error
	message.
	(default_setup_incoming_varargs): Do nothing.
	(default_pretend_outgoing_varargs_named): Don't depend on
	SETUP_INCOMING_VARARGS.
	* targhooks.h: Remove the prototype for
	default_promote_function_return and
	default_promote_prototypes.

2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (SHARED_SECTION_ASM_OP): Poison.
	* varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
	* doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.

2004-02-07  Zack Weinberg  <zack@codesourcery.com>

	Bug 13856
	* c-decl.c (diagnose_mismatched_decls): Only give special
	treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
	is also true.
	(merge_decls): Don't clear DECL_BUILT_IN_CLASS and
	DECL_FUNCTION_CODE when defining a built-in function.
	Don't update DECL_ESTIMATED_INSNS.
	* dwarf2out.c (dwarf2out_decl): Don't ignore built-in
	FUNCTION_DECLs.
	* tree.h: Delete DECL_ESTIMATED_INSNS.
	* tree-inline.c (struct inline_data): Delete inlined_insns field.
	(expand_call_inline, optimize_inline_calls): Don't update
	DECL_ESTIMATED_INSNS nor inlined_insns.
	* cgraphunit.c (cgraph_analyze_function): Don't update
	DECL_ESTIMATED_INSNS.

2004-02-07  Zack Weinberg  <zack@codesourcery.com>

	* c-common.c (shadow_warning): Delete.
	* c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
	* c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
	* c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
	* c-parse.in (free_parser_stacks): Delete.

2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
	config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
	Use the top level mkinstalldirs, not the one in the gcc subdir.
	* mkinstalldirs: Remove (from the gcc subdir).

2004-02-07  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/13696
	* fold-const.c (fold_convert): New function to provide type
	conversion to the middle-end without using convert.
	(negate_expr, associate_trees, size_diffop, omit_one_operand,
	operand_equal_for_comparison_p, pedantic_omit_one_operand,
	invert_truthvalue, optimize_bit_field_compare, range_binop,
	decode_field_reference, make_range, build_range_check, unextend,
	fold_truthop, extract_muldiv_1, fold_mathfn_compare,
	fold_binary_op_with_conditional_arg, fold_inf_compare,
	fold_single_bit_test, fold, multiple_of_p): Replace all calls to
	convert with calls to fold_convert.

2004-02-07  Jan Hubicka  <jh@suse.cz>

	* genrecog.c (find_operand): add extra argument stop.
	(validate_pattern): Verify that mach_dup is duplicating operand
	defined lexically earlier.

2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>

	* config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
	* system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
	MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
	* config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
	config/ia64/ia64.h, config/ip2k/ip2k.h,
	config/iq2000/iq2000.h, config/mips/iris5.h,
	config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
	config/rs6000/aix51.h, config/rs6000/aix52.h,
	config/rs6000/darwin.h, config/rs6000/rs6000.h,
	config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
	config/sparc/linux.h, config/sparc/linux64.h,
	config/sparc/netbsd-elf.h, config/sparc/sparc.h,
	config/xtensa/xtensa.h: Remove the definitions of
	MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
	MAX_WCHAR_TYPE_SIZE.
	* doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
	MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.

2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>

	PR bootstrap/13990
	* config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
	gen_rtx_NE.

2004-02-07  Josef Zlomek  <zlomekj@suse.cz>

	* var-tracking.c (vt_add_function_parameters): Surround checkings by
	#ifdef ENABLE_CHECKING and #endif.

2004-02-07  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
	either (-A)-B or (-B)-A, if A or B is easily negated respectively.
	(fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
	integer types and floating point with unsafe_math_optimizations.
	Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
	Optimize A - B as A + (-B), if B is easily negated.

2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>

	* c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
	config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
	config/m32r/linux.h, config/rs6000/ppc64-fp.c,
	config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
	Update copyright.

2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>

	* c-ppoutput.c, var-tracking.c: Fix comment typos.

2004-02-06  James E Wilson  <wilson@specifixinc.com>

	* config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
	glibc 2.3 or better.

2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
	to FLOAT_LIB_COMPARE_RETURNS_BOOL.

2004-02-07  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
	(SHLIB_MAPFILES): Add libgcc-ppc64.ver.
	(SHLIB_MKMAP_OPTS): Delete.
	(TARGET_LIBGCC2_CFLAGS): Add -specs.
	(bispecs): Add rule.
	* config/rs6000/libgcc-ppc64.ver: New file.
	* config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
	(__floatdidf, __floatdisf): Optimize multiply.
	(__fixunstfdi): New function.
	* config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
	real and imag parts larger than one register.
	(function_arg): Correct type of reg used when fp arg split partially
	to stack.
	* config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
	and __MACH__ or __powerpc64__.

2004-02-06  Roger Sayle  <roger@eyesopen.com>
	    Ulrich Weigand  <uweigand@de.ibm.com>

	* builtins.c (expand_builtin_signbit): Use extract_bit_field instead
	of gen_highpart or gen_lowpart when the floating point format is
	wider than the result mode.

2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>

	* dwarf2out.c (loclabel_num): Move into #ifdef
	DWARF2_DEBUGGING_INFO.

2004-02-06  Ziemowit Laski  <zlaski@apple.com>

	* objc/objc-act.c (build_super_template) the 'class' field of
	'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
	(get_super_receiver): Likewise.

2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>

	* reload1.c (check_eliminable_occurrences): Optimize the reset
	of can_eliminate.
	(eliminate_regs_in_insn): Likewise.

2004-02-06  Daniel Berlin <dberlin@dberlin.org>
	    Josef Zlomek  <zlomekj@suse.cz>

	* dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
	at the beginning of function, call dwarf2out_var_location for
	NOTE_INSN_VAR_LOCATION note.
	(struct var_loc_node, struct var_loc_list_def, loclabel_num,
	decl_loc_table): New.
	(lookup_decl_loc): New function.
	(add_var_loc_to_decl): New function.
	(based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
	only if can_use_fbreg.
	(mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
	functions.
	(loc_descriptor): Likewise. Process VAR_LOCATION.
	(concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
	(loc_descriptor_from_tree): Call mem_loc_descriptor with
	can_use_fbreg == true.
	(add_location_or_const_value_attribute): Added parameter enum
	dwarf_attribute attr, generate attribute ATTR.  Create the location list.
	(add_bound_info): Call loc_descriptor with can_use_fbreg == true.
	(gen_formal_parameter_die): Call add_location_or_const_value_attribute
	with attr == DW_AT_location.
	(gen_subprogram_die): Generate the location list for DW_AT_frame_base
	if frame_base_decl is defined and has a location list.
	(gen_variable_die): Call add_location_or_const_value_attribute with
	attr == DW_AT_location.
	(dwarf2out_var_location): New function.
	(dwarf2out_begin_function): New function.
	(dwarf2out_init): Create decl_loc_table.

2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* loop.c (force_movables): Transitively increase the priorities of
	all insns forces by an insn, not just the first one.

2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
	    Daniel Berlin <dberlin@dberlin.org>

	Josef Zlomek  <zlomekj@suse.cz>
	* Makefile.in (var-tracking.o): New.
	* common.opt (fvar-tracking): New.
	* flags.h (flag_var_tracking): New.
	* gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
	* opts.c (common_handle_option): Add OPT_fvar_tracking.
	* print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
	* rtl.c (note_insn_name): Likewise.
	* rtl.def (VAR_LOCATION): New.
	* rtl.h (NOTE_VAR_LOCATION): New.
	(NOTE_VAR_LOCATION_DECL): New.
	(NOTE_VAR_LOCATION_LOC): New.
	(enum insn_note): NOTE_INSN_VAR_LOCATION was added.
	(variable_tracking_main): New exported function.
	* timevar.def (TV_VAR_TRACKING): New.
	* toplev.c (enum dump_file_index): Added DFI_vartrack.
	(dump_file): "vartrack" was added (-dV).
	(flag_var_tracking): New.
	(f_options): "var-tracking" was added.
	(rest_of_handle_variable_tracking): New function.
	(rest_of_compilation): Run variable tracking.
	(process_options): If user has not specified flag_var_tracking set it
	according to optimize, debug_info_level and debug_hooks.
	* tree.h (frame_base_decl): New.
	* var-tracking.c: New file.
	* config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
	(ia64_override_options): Set flags to run variable tracking in machine
	dependent reorg instead of toplev.c.
	(ia64_reorg): Run variable tracking if wanted.
	* doc/invoke.texi: Mention variable tracking in -dV,
	add and -fvar-tracking.
	* doc/passes.texi: Added variable tracking pass.

	Daniel Berlin <dberlin@dberlin.org>
	* debug.h (struct gcc_debug_hooks): Added var_location debug hook.
	* dbxout.c (dbx_debug_hooks): Likewise.
	(xcoff_debug): Likewise.
	* debug.c (do_nothing_debug_hooks): Likewise.
	* dwarf2out.c (dwarf2_debug_hooks): Likewise.
	* dwarfout.c (dwarf_debug_hooks): Likewise.
	* sdbout.c (sdb_debug_hooks): Likewise.
	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
	* final.c (final_scan_insn): Call var_location debug hook for each
	NOTE_INSN_VAR_LOCATION.

2004-02-06  Jan Hubicka  <jh@suse.cz>

	* flow.c (update_life_info): Allocate reg_deaths when called from
	scheudler.
	(attempt_auto_inc):  Update life ranges accordingly.

2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>

	PR debug/11816
	* dwarf2out.c (gen_decl_die): Handle anonymous struct members.

2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* cfganal.c (flow_call_edges_add): Never split a libcall block.

2004-02-06  Daniel Berlin  <dberlin@dberlin.org>

	* dwarf2out.c (output_loc_list): Don't use deltas if we have
	a separate line info table in use.
	Use the correct size for terminators.
	(output_die): Use offset, not delta.

2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>

	* doc/invoke.texi: Remove the pni option from -mfpmath=.

2004-02-06  Jan Hubicka  <jh@suse.cz>

	* recog.c (split_all_insns): Do not update reg info.
	* regrename.c (regrename_optimize): Likewise.
	* toplev.c (rest_of_handle_reorder_blocks): Likewise.
	* flow.c (struct propagate_block_info): Add insn_num field.
	(reg_deaths): New array.
	(life_analysis): Free reg_deaths info.
	(allocate_reg_life_data): Allocate reg_deaths array.
	(propagate_one_insn): Use new array.
	(init_propagate_block): Initialize it.
	(free_propagate_block_info): Finish compuation of
	REG_LIVE_LENGTH
	(attempt_auto_inc): Sanity check that REG_INFO is not
	computed at same time.
	(mark_used_regs): Update new array.

	* reg-stack.c (subst_stack_regs): Unshare clobbers before
	substitution.

2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>

	* config/s390/s390.md (*extendsiqi2_short_displ): Change to
	*extendqisi2_short_displ.

2004-02-06  Alan Modra  <amodra@bigpond.net.au>

	* doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
	* calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
	(emit_library_call_value_1): Likewise pass nargs.
	* expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
	* function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
	* config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
	parameter instead of scanning TYPE_ARGS_TYPES to count args.
	* config/rs6000/rs6000-protos.h (init_cumulative_args): Update
	prototype.
	* config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
	(INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
	(INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
	* config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
	INIT_CUMULATIVE_ARGS.
	* config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
	* config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
	config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
	config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
	config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
	config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
	config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
	config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
	config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
	config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
	config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
	config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.

2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>

	* genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
	possible.

2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>

	* reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
	note containing (plus (reg) (const_int)), where reg is an
	eliminable reg, then perform the register elimination without
	depending on eliminate_regs().

2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arc/arc.c (arc_return_in_memory): Check the return
	value of int_size_in_bytes against -1.  Don't check
	TREE_ADDRESSABLE.
	* config/avr/avr.c (avr_return_in_memory): Check the return
	value of int_size_in_bytes against -1.
	* config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
	* config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
	Likewise.
	* config/mcore/mcore.c (mcore_return_in_memory): Likewise.
	* config/stormy16/stormy16.c (xstormy16_return_in_memory):
	Likewise.

2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>

	* config/frv/frv-protos.h: Remove the prototype for
	frv_setup_incoming_varargs.
	* config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
	(frv_setup_incoming_varargs): Make it static.
	* config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.

2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>

	* config/fr30/fr30-protos.h: Remove the prototype for
	fr30_setup_incoming_varargs.
	Update the prototypes for fr30_num_arg_regs and
	fr30_function_arg_partial_nregs.
	* config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(fr30_setup_incoming_varargs): Make it static.
	Add argument second_time.  Don't do anything when second_time
	is nonzero.
	(fr30_num_arg_regs): Change the type of the first argument to
	enum machine_mode.
	(fr30_function_arg_partial_nregs): Change the type of the
	second argument to enum machine_mode.
	* config/fr30/fr30.h (STRUCT_VALUE): Remove.
	(SETUP_INCOMING_VARARGS): Remove.

2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arc/arc-protos.h: Remove the prototype for
	arc_setup_incoming_varargs.
	* config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(arc_setup_incoming_varargs): Make it static.
	(arc_external_libcall): Likewise.
	* config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
	Remove the commented-out definition of
	ASM_OUTPUT_EXTERNAL_LIBCALL.

2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>

	* config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
	to $$(slibdir) in the installation commands.

2004-02-05  David Edelsohn  <edelsohn@gnu.org>

	* reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
	with inner_regno, not regno.
	* rtlanal.c (refers_to_regno_p): Same.

2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config.gcc: Remove i370 support.

2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>

	* doc/install.texi:  Update automake and autoconf version
	requirements.  Note where to find gcj automake version.

2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in (generate-manpages): Move dependencies to ...
	(man): here.
	* doc/makefile.texi: Document new targets.
	* doc/sourcebuild.texi (Make-lang.in): Document new langhooks.

2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>

	PR/13485
	Makefile.in (srcextra):  Add a level of indirection to ...
	(gcc.srcextra): ... here.
	(po-generated): Delete.
	(po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
	options.c.
	(start.encap): Remove superfluous lang.srcextra dependency.
	objc/Make-lang.in (po-generated):  Delete.

2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/ia64/ia64.c (REG_GP): Remove.

2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.

2004-02-05  Devang Patel  <dpatel@apple.com>

	* dwarf2out.c (force_type_die): Look up input type itself
	instead of root_type() of type.

2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("*tmqidi_ext"): New insn.
	("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
	pre-reload splitters are transformed to post-reload
	define_insn_and_split patterns.
	("*tmqisi_ext"): Renamed old "*tmqi_ext".

2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
	TARGET_PROMOTE_PROTOTYPES.

2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR middle-end/13750
	Revert:
	2004-01-15  Geoffrey Keating  <geoffk@apple.com>
	PR pch/13361
	* c-typeck.c (constructor_asmspec): Delete.
	(struct initializer_stack): Delete field 'asmspec'.
	(start_init): Delete saving of asmspec.
	(finish_init): Don't update constructor_asmspec.
	* dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
	* stmt.c (expand_asm): Duplicate strings from tree.
	(expand_asm_operands): Likewise.
	* tree.c (tree_size): Update computation of size of STRING_CST.
	(make_node): Don't make STRING_CST nodes.
	(build_string): Allocate string with tree node.
	* tree.def (STRING_CST): Update comment.
	* tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
	(tree_string): Place contents of string in tree node.
	* config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
	from tree.

2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>

	* diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
	msgid.

2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>

	* config/rs6000/altivec.md (*movv4si_internal): At least one
	operand must be altivec_register_operand.
	(*movv8hi_internal1): Likewise.
	(*movv16qi_internal1): Likewise.
	(*movv4sf_internal1): Likewise.

2004-02-05  David Edelsohn  <edelsohn@gnu.org>

	* configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
	* configure: Regenerate.

2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>

	* doc/install.texi: Update description of --gxx-include-dir to
	give correct default value.

2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
	8 with MAC_REG.

2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
	gen_rtx_PARALLEL.

2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>

	* emit-rtl.c: Update the comment about the file.

2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>

	* sourcebuild.texi (Test Idioms): Update testcase naming
	conventions.

2004-02-04  Per Bothner  <per@bothner.com>

	Partially revert/redo 2003-10-01 change; fix -fworking-directory.
	* c-ppoutput.c (pp_dir_change):  New function.
	* c-common.h (pp_dir_change):  New declaration.
	* cpplib.h (struct cpp_options):  Remove working_directory field.
	* cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
	(cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
	Don't handle -fworking_directory here, but in c_common_post_options.
	(read_original_directory): Don't back up when done.
	Don't clear no-longer used working_directory flag.
	* cpplib.h:  Update declarations to match.
	* c-lex.c (cb_dir_change):  Move to c-opts.c.
	(init_c_lex):  Don't set dir_change callback here, since we want
	to set it even if flag_preprocess_only.
	* c-opts.c (cb_dir_change):  Function moved from c-lex.c.
	(c_common_post_options):  Set dir_change callback.
	Call pp_dir_change if approporiate.
	(finish_options):  Don't call cpp_find_main_file here.	Hence remove
	unneeded parameter and result. Do LC_RENAME for <built-in>.
	(c_common_post_options):  Call cpp_read_main_file here instead.
	(c_common_init):  Update accordingly.
	(push_command_line_include):  Don't cpp_push_main_file.
	Do LC_RENAME rather than LC_LEASE to get back to main file.
	Compared to pre-10-01 version, inline cpp_rename_to_main_file.
	(c_common_parse_file):  Call cpp_read_main_file for subsequent main
	files, but call finish_options for all files.
	* c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
	* fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
	cpp_find_main_file + cpp_push_main_file.
	* c-lex.c (fe_file_change):  Don't set main_input_filename here.
	* opts.c (handle_options):  Only set main_input_filename first time.

2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>

	* config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.

2004-02-04  Geoffrey Keating  <geoffk@apple.com>

	* reload.c (find_equiv_reg): When checking for register overlap,
	don't index hard_regno_nregs with a pseudo-reg.

2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().

2004-02-04  David Edelsohn  <edelsohn@gnu.org>

	* reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
	against FIRST_PSEUDO_REGISTER.

2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.in: Move target, host overrides after per-language
	fragments.

	* config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
	(GNATLIBCFLAGS): Remove -g.

2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>

	* config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
	config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
	config/ia64/ia64.c, config/ia64/unwind-ia64.c,
	config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
	config/pdp11/pdp11.c, config/rs6000/rs6000.c,
	config/sparc/sparc.c, config/vax/vax.c: Revert the
	replacements of "FALLTHRU" with "Fall through" done in the
	previous patch.

2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>

	* config/darwin.c, config/darwin.h, config/freebsd-spec.h,
	config/arm/arm.c, config/arm/arm.md,
	config/cris/cris-protos.h, config/fr30/fr30.c,
	config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
	config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
	config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
	config/ip2k/ip2k.md, config/ip2k/libgcc.S,
	config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
	config/m68k/m68k.c, config/m68k/netbsd-elf.h,
	config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
	config/ns32k/netbsd.h, config/ns32k/ns32k.c,
	config/ns32k/ns32k.h, config/pdp11/pdp11.h,
	config/rs6000/darwin-ldouble.c, config/s390/s390.h,
	config/s390/s390.md, config/sparc/netbsd-elf.h,
	config/sparc/openbsd.h, config/sparc/sparc.c,
	config/xtensa/lib2funcs.S: Fix comment formatting.

2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>

	* config/alpha/alpha.c, config/arc/arc.c,
	config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
	config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
	config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
	config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
	config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
	config/ia64/ia64.c, config/ia64/unwind-ia64.c,
	config/iq2000/iq2000.c, config/m32r/m32r.c,
	config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
	config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
	config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
	config/rs6000/rs6000.h, config/sparc/sparc.c,
	config/vax/vax.c: Fix comment typos.  Follow spelling
	conventions.

2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>

	* alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
	caller-save.c, df.h, genconfig.c, global.c, lcm.c,
	ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
	sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
	config/arm/fpa.md, config/arm/iwmmxt.md,
	config/arm/netbsd-elf.h, config/arm/netbsd.h,
	config/m68hc11/m68hc11.md, config/mips/iris5.h,
	config/mn10300/mn10300.md, config/rs6000/altivec.md,
	config/sparc/netbsd-elf.h: Update copyright.

2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
	for all modes whose size is greater than 8 bytes if ARCH32.
	(sparc_va_arg): Handle all modes whose size is greater than 8 bytes
	by reference if ARCH32.

2004-02-04  Aldy Hernandez  <aldyh@redhat.com>

	* cgraphunit.c (cgraph_postorder): Fix typo in comment.

2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
	to before adddi3 insn patterns.
	("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
	"reload_insi"): Move to before addsi3 insn patterns.

2004-02-04  Mark Mitchell  <mark@codesourcery.com>

	* calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
	parameter.  Use it instead of current_function_is_thunk.
	* function.h (struct function): Update documentation for is_thunk.
	* tree.h (CALL_FROM_THUNK_P): New macro.
	* config/alpha/alpha.c (alpha_sa_mask): Do not check
	no_new_pseudos when testing current_function_is_thunk.
	* config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.

2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
	TARGET_SETUP_INCOMING_VARARGS.

2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>

	* emit-rtl.c (gen_rtx): Remove.
	* genattrtab.c: Don't mention gen_rtx in a comment.
	* rtl.h: Remove the prototype for gen_rtx.
	* doc/md.texi: Replace gen_rtx with gen_rtx_REG.

2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arc/arc.h, config/fr30/fr30.h
	(SETUP_INCOMING_VARARGS): Remove the target-independent
	comments.
	* doc/tm.texi: Don't mention deprecated target macros.

2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>

	* config/fr30/fr30.h (FUNCTION_VALUE): Remove the
	target-independent comment.

2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
	mention deprecated target macros.

2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>

	* config.gcc: Remove obsolete ports and configurations.
	* config/linux-aout.h, config/netware.h,
	config/t-linux-gnulibc1, config/d30v/abi,
	config/d30v/d30v-protos.h, config/d30v/d30v.c,
	config/d30v/d30v.h, config/d30v/d30v.md,
	config/d30v/libgcc1.asm, config/d30v/t-d30v,
	config/dsp16xx/dsp16xx-modes.def,
	config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
	config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
	config/i370/README, config/i370/i370-c.c,
	config/i370/i370-protos.h, config/i370/i370.c,
	config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
	config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
	config/i386/freebsd-aout.h, config/i386/linux-aout.h,
	config/i386/moss.h, config/i386/netware.h,
	config/i386/svr3.ifile, config/i386/svr3dbx.h,
	config/i386/svr3gas.h, config/i386/svr3z.ifile,
	config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
	config/i960/i960-c.c, config/i960/i960-coff.h,
	config/i960/i960-modes.def, config/i960/i960-protos.h,
	config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
	config/i960/rtems.h, config/i960/t-960bare,
	config/m68k/hp310.h, config/m68k/hp320.h,
	config/m68k/hp320base.h, config/m68k/m68kv4.h,
	config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
	Remove.
	* doc/extend.texi, doc/install.texi, doc/invoke.texi,
	doc/md.texi: Remove mentions of obsolete ports.

2004-02-04  Jan Hubicka  <jh@suse.cz>

	* alias.c (find_base_term, get_addr):  Do not dereference NULL
	pointer when all VALUE's locations has been invalidated.
	(rtx_equal_for_memref_p): Simplify checking of VALUEs.

2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>

	* doc/invoke.texi (x86 options): Fix spelling/wording.

2004-02-03  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
	put the original string in a comment.
	* config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
	* config/mips/mips.c (mips_output_ascii): Likewise.
	* config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.

2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (GIV_SORT_CRITERION): Poison.
	* config/avr/avr.h (GIV_SORT_CRITERION): Remove.
	* config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.

2004-02-03  Roger Sayle  <roger@eyesopen.com>

	PR target/9348
	* expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
	multiplies with a multiplication of the wrong signedness, its the
	signedness of the multiplication that we've performed that needs to
	be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
	if expand_mult_highpart_adjust places the result in target.

2004-02-03  Richard Henderson  <rth@redhat.com>

	* varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.

2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>

	* config.gcc (sh[234]l): Use little endian fragments.

2004-02-03  Paul Koning  <pkoning@equallogic.com>

	* config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
	* config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
	* config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
	encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
	floating point format.
	(pdp11_f_format, pdp11_d_format): New real_format descriptors for
	the above functions.
	(output_move_quad): Output float values in correct target format.
	(legitimate_const_double_p): New function.
	* config/pdp11/pdp11.h: Fix typos.
	(FLOAT_WORDS_BIG_ENDIAN): Add definition.
	(TARGET_FLOAT_FORMAT): Ditto.
	(pdp11_f_format, pdp11_d_format): Add external declarations.
	(MAX_REGS_PER_ADDRESS): Corrected.
	(LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
	(PRINT_OPERAND): Output float literals in target format.

2004-02-03  Mark Mitchell  <mark@codesourcery.com>

	PR c++/13975
	* tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
	TI_PRIVATE.
	(access_public_node): Redefine.
	(access_protected_node): Likewise.
	(access_private_node): Likewise.
	* tree.c (build_common_tree_nodes): Create access_public_node,
	access_protected_node, and access_private_node.

2004-02-03  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
	(MASK_INLINE_INT_DIV_THR): Ditto.
	(MASK_INLINE_SQRT_LAT): Ditto.
	(MASK_INLINE_SQRT_THR): Ditto.
	(MASK_DWARF2_ASM): Ditto.
	(MASK_EARLY_STOP_BITS): Ditto.

2004-02-02  Paul Brook  <paul@codesourcery.com>

	Merge from csl-arm-branch.

	2004-01-30  Paul Brook  <paul@codesourcery.com>

	* aof.h (REGISTER_NAMES): Add vfp reg names
	(ADDITIONAL_REGISTER_NAMES): Ditto.
	* aout.h (REGISTER_NAMES): Ditto.
	(ADDITIONAL_REGISTER_NAMES): Ditto.
	* arm-protos.h: Update/Add Prototypes.
	* arm.c (init_fp_table): Rename from init_fpa_table. Update users.
	Only allow 0.0 for VFP.
	(fp_consts_inited): Rename from fpa_consts_inited.  Update users.
	(values_fp): Rename from values_fpa.  Update Users.
	(arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
	Update users.  Only check valid constants for this hardware.
	(arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
	Only allow consts for FPA.
	(arm_float_add_operand): Rename from fpa_add_operand.  Update users.
	Only allow consts for FPA.
	(use_return_insn): Check for saved VFP regs.
	(arm_legitimate_address_p): Handle VFP DFmode addressing.
	(arm_legitimize_address): Ditto.
	(arm_general_register_operand): New function.
	(vfp_mem_operand): New function.
	(vfp_compare_operand): New function.
	(vfp_secondary_reload_class): New function.
	(arm_float_compare_operand): New function.
	(vfp_print_multi): New function.
	(vfp_output_fstmx): New function.
	(vfp_emit_fstm): New function.
	(arm_output_epilogue): Output VPF reg restore code.
	(arm_expand_prologue): Output VFP reg save code.
	(arm_print_operand): Add 'P'.
	(arm_hard_regno_mode_ok): Return modes for VFP regs.
	(arm_regno_class): Return classes for VFP regs.
	(arm_compute_initial_elimination_offset): Include space for VFP regs.
	(arm_get_frame_size): Ditto.
	* arm.h (FIXED_REGISTERS): Add VFP regs.
	(CALL_USED_REGISTERS): Ditto.
	(CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
	(FIRST_VFP_REGNUM): Define.
	(LAST_VFP_REGNUM): Define.
	(IS_VFP_REGNUM): Define.
	(FIRST_PSEUDO_REGISTER): Include VFP regs.
	(HARD_REGNO_NREGS): Handle VFP regs.
	(REG_ALLOC_ORDER): Add VFP regs.
	(enum reg_class): Add VFP_REGS.
	(REG_CLASS_NAMES): Ditto.
	(REG_CLASS_CONTENTS): Ditto.
	(CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
	(REG_CLASS_FROM_LETTER): Add 'w'.
	(EXTRA_CONSTRAINT_ARM): Add 'U'.
	(EXTRA_MEMORY_CONSTRAINT): Define.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
	(SECONDARY_INPUT_RELOAD_CLASS): Ditto.
	(REGISTER_MOVE_COST): Ditto.
	(PREDICATE_CODES): Add arm_general_register_operand,
	arm_float_compare_operand and vfp_compare_operand.
	* arm.md (various): Rename as above.
	(divsf3): Enable when TARGET_VFP.
	(divdf3): Ditto.
	(movdfcc): Ditto.
	(sqrtsf2): Ditto.
	(sqrtdf2): Ditto.
	(arm_movdi): Disable when TARGET_VFP.
	(arm_movsi_insn): Ditto.
	(movsi): Only split with general regs.
	(cmpsf): Use arm_float_compare_operand.
	(push_fp_multi): Restrict to TARGET_FPA.
	(vfp.md): Include.
	* vfp.md: New file.
	* fpa.md (various): Rename as above.
	* doc/md.texi: Document ARM w and U constraints.

	2004-01-15  Paul Brook  <paul@codesourcery.com>

	* config.gcc: Add with_fpu.  Allow with-float=softfp.
	* config/arm/arm.c (arm_override_options): Rename *-s to *s.
	Break out of loop when we find a float-abi.  Fix typo.
	* config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
	Set -mfloat-abi=.
	* doc/install.texi: Document --with-fpu.

	2003-01-14  Paul Brook  <paul@codesourcery.com>

	* config.gcc (with_arch): Add armv6.
	* config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
	* config/arm/arm.c (arm_overrride_options): Ditto.

	2004-01-08  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
	(FL_ARCH6): Renamed from FL_ARCH6J.
	(arm_arch3m): Renamed from arm_fast_multiply.
	(arm_arch6): Renamed from arm_arch6j.
	* arm.h: Update all uses of above.
	* arm-cores.def: Likewise.
	* arm.md: Likewise.

	* arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
	not arm6j.  Add entry for arch armv6.

	2004-01-07  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_emit_extendsi): Delete.
	* arm-protos.h (arm_emit_extendsi): Delete.
	* arm.md (zero_extendhisi2): Also handle zero-extension of
	non-subregs.
	(zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
	(thumb_zero_extendhisi2): Only match if not v6.
	(arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
	(thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
	(thumb_extendqisi2): Likewise.
	(thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
	(thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
	(thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
	(thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
	(arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
	(arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
	(arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
	(arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
	(arm_extendqisi2addsi): Likewise.

	2003-12-31  Mark Mitchell  <mark@codesourcery.com>

	Revert this change:
	* config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
	+ REG addressing modes.

	* config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
	+ REG addressing modes.

	2003-12-30  Mark Mitchell  <mark@codesourcery.com>

	* config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
	CONSTANT_P_RTX.

	2003-30-12  Paul Brook  <paul@codesourcery.com>

	* longlong.h: protect arm inlines with !defined (__thumb__)

	2003-30-12  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.

	2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>

	* builtins.c (expand_builtin_apply_args_1): Fix typo in previous
	change.

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

	* builtins.c (expand_builtin_apply_args_1): Add pretend args size
	to the virtual incoming args pointer for downward stacks.

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

	* config/arm/arm-cores.def: Add cost function.
	* config/arm/arm.c (arm_*_rtx_costs): New functions.
	(arm_rtx_costs): Remove
	(struct processors): Add rtx_costs field.
	(all_cores, all_architectures): Ditto.
	(arm_override_options): Set targetm.rtx_costs.
	(thumb_rtx_costs): New function.
	(arm_rtx_costs_1): Remove cases handled elsewhere.
	* config/arm/arm.h (processor_type): Add COSTS parameter.

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

	* config/arm/arm.md (generic_sched): arm926 has its own scheduler.
	(arm926ejs.md): Include it.
	* config/arm/arm926ejs.md: New pipeline description.

	2003-12-24  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_arch6j): New variable.
	(arm_override_options): Set it.
	(arm_emit_extendsi): New function.
	* config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
	* config/arm/arm.h (arm_arch6j): Declare.
	* config/arm/arm.md: Add sign/zero extend insns.

	2003-12-23  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (all_architectures): Add armv6.
	* doc/invoke.texi: Document it.

	2003-12-19  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
	insn patterns to match.
	* config/arm/arm-generic.md: Ditto.
	* config/arm/cirrus.md: Ditto.
	* config/arm/fpa.md: Ditto.
	* config/amm/iwmmxt.md: Ditto.
	* config/arm/arm1026ejs.md: Ditto.
	* config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
	for 11_loadb.

	2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>

	* config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
	* config/arm/arm.c (arm_adjust_cost): Check shift cost for
	TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
	(arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
	arm_no_early_mul_dep): Correctly deal with conditional execution,
	parallels and single shift operations.
	(arm_no_early_alu_shift_value_dep): Define.
	* arm.md (attr type): Replace 'normal' with 'alu',
	'alu_shift' and 'alu_shift_reg'.
	(attr core_cycles): Adjust.
	(*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
	*shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
	*not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
	*cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
	*arith_shiftsi_compare0_scratch, *sub_shiftsi,
	*sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
	*if_shift_move, *if_move_shift, *if_shift_shift): Set type
	attribute appropriately.
	* config/arm/arm1026ejs.md (alu_op): Adjust.
	(alu_shift_op, alu_shift_reg_op): New.
	* config/arm/arm1136.md: Add better bypasses for early
	registers. Remove load[234] and store[234] bypasses.
	(11_alu_op): Adjust.
	(11_alu_shift_op, 11_alu_shift_reg_op): New.

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

	* config/arm/arm-protos.h (arm_no_early_store_addr_dep,
	arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
	* config/arm/arm.c (arm_no_early_store_addr_dep,
	arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
	* config/arm/arm1026ejs.md: Add load-store bypass.
	* config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
	Add bypasses between instructions.

	2003-12-10  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.c (arm_fpu_model): New variable.
	(arm_fload_abi): New variable.
	(target_fpe_name): Rename from target_fp_name.
	(target_fpu_name): New variable.
	(arm_is_cirrus): Remove.
	(fpu_desc): New struct.
	(all_fpus): Define.
	(pf_model_for_fpu): Define.
	(all_loat_abis): Define.
	(arm_override_options): Set fp arch flags based on -mfpu=
	and -float-abi=.
	(FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
	(LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
	(*): Use new TARGET_* flags.
	* config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
	(TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
	(TARGET_SOFT_FLOAT): Ditto.
	(TARGET_SOFT_FLOAT_ABI): New.
	(TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
	TARGET_HARD_FLOAT.
	(TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
	(TARGET_OPTIONS): Add -mfpu=.
	(FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
	(LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
	(arm_pf_model): Define.
	(arm_float_abi_type): Define.
	(fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
	* config/arm/arm.md: Use new TARGET_* flags.
	* config/arm/cirrus.md: Ditto.
	* config/arm/fpa.md: Ditto.
	* config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
	* config/arm/semi.h (ASM_SPEC): Ditto.
	* config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
	(FPUTYPE_DEFAULT): Set to VFP.
	* doc/invoke.texi: Document -mfpu= and -mfloat-abi=.

	2003-11-22  Phil Edwards  <phil@codesourcery.com>

	PR target/12476
	* config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
	'bx' instead of 'b' to avoid branch range restrictions.  Output
	the thunk immediately before the thunked-to function.
	* config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
	.thumb_func if a thunk is being generated.  Emit .code 16 along
	with .thumb_func if a thunk is not being generated.

	2003-11-15  Nicolas Pitre <nico@cam.org>

	* config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
	arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
	* config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
	(lshrdi3_iwmmxt): Renamed from lshrdi3.
	* config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.

	2003-11-12  Steve Woodford  <scw@wasabisystems.com>
	    Ian Lance Taylor  <ian@wasabisystems.com>

	* config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
	code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).

	2003-11-05  Phil Edwards  <phil@codesourcery.com>

	* config/arm/arm.md (insn):  Add new V6 instruction names.
	(generic_sched):  New attr.
	* config/arm/arm-generic.md:  Use generic_sched here.
	* config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
	stages of pipeline.  Adjust latency counts accordingly.
	* config/arm/arm1136jfs.md:  New file.

	2003-10-28  Mark Mitchell  <mark@codesourcery.com>

	* config/arm/arm.h (processor_type): New enumeration type.
	(CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
	ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
	(CPP_CPU_ARCH_SPEC): Likewise.
	* config/arm/arm.c (arm_tune): New variable.
	(all_cores): Use cores.def.
	(all_architectures): Add representative processor.
	(arm_override_options): Restructure way in which tuning
	information is deduced.
	* arm.md: Update "insn" and "type" attributes throughout.
	(insn): New attribute.
	(type): Compute "mult" from "insn" attribute.  Add load2,
	load3, load4 alternatives.
	(arm automaton): Move to arm-generic.md.
	* config/arm/arm-cores.def: New file.
	* config/arm/arm-generic.md: Likewise.
	* config/arm/arm1026ejs.md: Likewise.

2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/invoke.texi (SPARC options): Remove -mflat and
	all -mxxx (xxx:chip) options.
	* config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
	* config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
	* config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
	* config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
	* config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
	* config/sparc/sparc.c: Likewise.
	(sparc_output_function_prologue): Remove TARGET_FLAT handling.
	(sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
	(sparc_output_function_epilogue): Remove TARGET_FLAT handling.
	(sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
	(struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
	(sparc_flat_must_save_register_p): Likewise.
	(sparc_flat_compute_frame_size): Likewise.
	(sparc_flat_save_restore): Likewise.
	(sparc_flat_function_prologue): Likewise.
	(sparc_flat_function_epilogue): Likewise.
	(sparc_flat_epilogue_delay_slots): Likewise.
	(sparc_flat_eligible_for_epilogue_delay): Likewise.
	(sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
	* config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
	(TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
	(SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
	(CONDITIONAL_REGISTER_USAGE): Likewise.
	(FRAME_POINTER_REQUIRED): Likewise.
	(INITIAL_ELIMINATION_OFFSET): Likewise.
	(BASE_RETURN_VALUE_REG): Likewise.
	(BASE_OUTGOING_VALUE_REG): Likewise.
	(BASE_PASSING_ARG_REG): Likewise.
	(BASE_INCOMING_ARG_REG): Likewise.
	(INCOMING_REGNO): Likewise.
	(OUTGOING_REGNO): Likewise.
	(LOCAL_REGNO): Likewise.
	(DELAY_SLOTS_FOR_EPILOGUE): Likewise.
	(ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
	(EPILOGUE_USES): Likewise.
	* config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
	("flat" attribute): Delete.
	(do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
	handling.
	(call followed by jump define_peephole's): Delete.
	(exception_receiver): Likewise.
	(builtin_setjmp_receiver): Likewise.
	* config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.

2004-02-03  Paolo Bonzini  <bonzini@gnu.org>

	PR c/11658
	PR c/13994
	* Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
	on langhooks.h.
	* objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
	* c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
	Include langhooks.h.  Replace c_common_truthvalue_conversion
	with the truthvalue_conversion language hook throughout.
	(expr_no_commas): Call default_conversion before save_expr
	for the first term of the production 'x ? : y'.
	* c-common.c (c_common_truthvalue_conversion): Remove
	obsolete block.  Invoke recursively the hook instead
	of this function.
	* c-convert.c (convert): handle ERROR_MARK_NODE.
	* c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
	returned by the truthvalue_conversion language hook.
	* c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
	c_objc_common_truthvalue_conversion.
	* c-objc-common.c (c_objc_common_truthvalue_conversion):
	New function.
	* c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
	* objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
	c_objc_common_truthvalue_conversion.

2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>

	* config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
	of gen_rtx.
	(LIBCALL_VALUE): Likewise.
	* config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
	gen_rtx_CC0 instead of gen_rtx.
	* config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
	gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
	(m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
	gen_rtx.
	(m68hc11_emit_logical): Likewise.

2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>

	* config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
	config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
	config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
	config/m32r/m32r.md, config/m68hc11/m68hc11.c,
	config/mips/mips.md, config/mmix/mmix.c,
	config/mn10300/mn10300.c, config/mn10300/mn10300.md,
	config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
	config/rs6000/altivec.md, config/s390/s390.c,
	config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
	config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
	Use const0_rtx instead of GEN_INT (0).  Do the same for other
	constants that are readily available.

2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>

	* doloop.c, optabs.c, regmove.c, sched-deps.c,
	config/i386/i386.c, config/i386/i386.md: Use const0_rtx
	instead of GEN_INT (0).  Do the same for other constants that
	are readily available.

2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>

	* combine.c (simplify_set): Use gen_rtx_fmt_e instead of
	gen_rtx.
	* emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
	instead of gen_rtx.
	* reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
	gen_rtx.
	* config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
	gen_rtx_ASHIFT instead of gen_rtx.
	(udivmodqi4): Likewise.

2004-02-02  Richard Henderson  <rth@redhat.com>

	PR target/13789
	* expr.c (store_expr): Use force_operand before emit_move_insn.

2004-02-02  Jeff Law  <law@redhat.com>
	    Roger Sayle  <roger@eyesopen.com>

	* tree.c (commutative_tree_code, associative_tree_code): New
	functions.
	(iterative_hash_expr): Use commutative_tree_code.
	* tree.h (commutative_tree_code, associative_tree_code): Declare.
	* fold-const.c (operand_equal_p): Use commutative_tree_code
	rather than inlining the commutativity check.
	(fold): Likewise.

2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
	* config/frv/frv-protos.h: Remove the prototype for
	frv_function_arg_keep_as_reference.
	* config/frv/frv.c (frv_function_arg_keep_as_reference):
	Remove.
	* config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
	* config/stormy16/stormy16.h: Remove the commented-out
	definition of FUNCTION_ARG_KEEP_AS_REFERENCE.

2004-02-03  Alan Modra  <amodra@bigpond.net.au>

	PR target/13914
	* config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
	for retaddr_column.

2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>

	* genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
	gen_rtx.

2004-02-02  Eric Christopher  <echristo@redhat.com>
	    Zack Weinberg  <zack@codesourcery.com>

	* c-opts.c (c_common_handle_option): Add -finput-charset.
	* c.opt: Ditto.
	* cppcharset.c (one_iso88591_to_utf8): Remove.
	(convert_iso88591_utf8): Ditto.
	(conversion_tab): Remove 8859-1 converter.
	(_cpp_input_to_utf8): Remove.
	(_cpp_init_iconv_buffer): Ditto.
	(_cpp_close_iconv_buffer): Ditto.
	(_cpp_convert_input): New function.
	(_cpp_default_encoding): Ditto.
	* cpphash.h: Add/remove prototypes for above.
	* cppfiles.c (read_file_guts): Use _cpp_convert_input.
	* cppinit.c (cpp_create_reader): Use _cpp_default_encoding
	for narrow execution and input character sets.
	* cpplib.c (cpp_push_buffer): Delete uses of removed functions.
	* doc/cppopts.texi: Document -finput-charset.

2004-02-02  David Edelsohn  <edelsohn@gnu.org>

	* rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
	against FIRST_PSEUDO_REGISTER.

2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/invoke.texi (SPARC options): Further improve.

2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
	config/h8300/h8300.c, config/ip2k/ip2k.md,
	config/iq2000/iq2000.c, config/mips/mips.c,
	config/rs6000/rs6000.c, config/rs6000/rs6000.md,
	config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
	config/v850/v850.md: Fix indentation.

2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (function_arg_slotno): Align TImode
	arguments on a 16-byte boundary in the parameter array if ARCH64.
	Split handling of TFmode.

2004-02-02  Paolo Bonzini  <bonzini@gnu.org>

	* rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
	Don't test CONSTANT_P (x).
	(reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
	ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
	Fix misindentation.

2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/invoke.texi (SPARC options): Document that -mflat is deprecated.

2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
	config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
	config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
	config/iq2000/iq2000.c, config/m32r/m32r.c,
	config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
	config/mn10300/mn10300.c, config/rs6000/rs6000.c,
	config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
	config/stormy16/stormy16.c, config/v850/v850.md,
	config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.

2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mcore/mcore.c (block_move_sequence): Replace
	gen_rtx_CONST_INT with GEN_INT.

2004-02-02  Jan Hubicka  <jh@suse.cz>

	* alias.c (record_set): Use hard_regno_nregs.
	* bt-load.c (find_btr_reference, note_btr_set): Likewise.
	* builtins.c (apply_args_size): Likewise.
	* caller-save.c (setup_save_areas, save_call_clobbered_regs,
	mark_set_regs, add_stored_regs, mark_referenced_regs,
	insert_restore, insert_save, insert_one_insn): Likewise.
	* cfgcleanup.c: Include regs.h
	(mark_effect, mentions_nonequal_regs): Likewise.
	* cfgrtl.c (mark_killed_regs): Likewise
	* combine.c (update_table_tick, record_value_for_reg,
	record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
	reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
	reg_bitfield_target_p, distribute_notes): Likewise.
	* cse.c (mention_regs, insert, invalidate, invalidate_for_call,
	exp_equiv_p, cse_insn): Likewise.
	* cselib.c (cselib_lookup): Likewise.
	(cselib_invalidate_regno, cselib_record_set): Likewise.
	* df.c (df_ref_record): Likewise.
	* dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
	Likewise.
	* flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
	count_or_remove_death_notes_bb): Likewise.
	* function.c (aggregate_value_p, keep_stack_depressed): Likewise.
	* gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
	mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
	* integrate.c (mark_stores): Likewise.
	* jump.c (delete_prior_computation): Likewise.
	* lcm.c (reg_dies, reg_becomes_live): Likewise.
	* local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
	* loop.c (LOOP_REGNO_NREGS): Likewise.
	* postreload.c (reload_combine, reload_combine_note_store,
	reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
	* ra-colorize.c (combine, color_usable_p, get_free_reg,
	calculate_dont_begin, calculate_dont_begin, colorize_one_web,
	try_recolor_web, insert_coalesced_conflicts, check_colors,
	break_precolored_alias): Likewise.
	* ra-debug.c: Include regs.h
	(ra_print_rtx_object): Likewise.
	* ra-rewrite (choose_spill_colors): Likewise.
	(spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
	* ra.c (init_ra): Likewise.
	* recog.c (reg_fits_class_p, peep2_reg_dead_p,
	peep2_find_free_register): Likewise.
	* reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
	* regclass.c (hard_regno_nregs): New array.
	(init_reg_modes_once): Initialize it.
	(choose_hard_reg_mode): Use it.
	(record_reg_classes): Likewise.
	* regmove.c (mark_flags_life_zones): Likewise.
	* regrename.c (note_sets, clear_dead_regs, regrename_optimize,
	scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
	copy_value, maybe_mode_change, find_oldest_value_reg,
	copyprop_hardreg_forward_1):
	* regs.h (hard_regno_nregs): Declare.
	* realod.c (reload_inner_reg_of_subreg): Use it.
	(push_reload, combine_reloads, find_dummy_reload,
	hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
	refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
	reload_adjust_reg_for_mode): Likewise.
	* reload1.c (compute_use_by_pseudos, count_pseudo,
	count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
	spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
	clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
	allocate_reload_reg, choose_reload_regs, emit_reload_insns,
	delete_output_reload): Likewise.
	* resource.c (update_live_status, mark_referenced_resources,
	mark_set_resources, mark_target_live_regs): Likewise.
	* rtlanal.c:  Include regs.h
	(refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
	dead_or_set_regno_p, find_regno_note, find_reg_fusage,
	subreg_regno_offset, subreg_offset_representable_p,
	hoist_test_store): Likewise.
	* sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
	* sched-rgn.c (check_live_1, update_live_1): Likewise.
	* stmt.c: Include regs.h
	(decl_conflicts_with_clobbers_p): Likewise.
	* varasm.c (make_decl_rtl): Likewise.
	* Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.

2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
	config/arm/linux-gas.h, config/arm/netbsd-elf.h,
	config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
	config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
	config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
	config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
	config/iq2000/iq2000.h, config/m32r/m32r.c,
	config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
	config/m68hc11/m68hc11.md, config/m68k/m68k.md,
	config/mcore/mcore.c, config/mcore/mcore.h,
	config/mcore/mcore.md, config/mips/mips.c,
	config/ns32k/ns32k.h, config/ns32k/ns32k.md,
	config/rs6000/rs6000.c, config/s390/s390.c,
	config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
	config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
	"gen_rtx (FOO, " with "gen_rtx_FOO (".

2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (two peephole2's): New.

2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
	(CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
	(ASM_CPU_SPEC): Likewise
	* config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
	(ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.

2004-02-01  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
	isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
	(expand_builtin): Always call expand_builtin_pow.

2004-02-01  Roger Sayle  <roger@eyesopen.com>

	* builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
	BUILT_IN_SIGNBITL): New GCC builtins.
	* builtins.c (expand_builtin_signbit): New function to RTL expand
	calls to signbit, signbitf and signbitl as inline intrinsics.
	(expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
	(fold_builtin_signbit): New function to perform constant folding
	of signbit, signbitf and signbitl.
	(fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.

	* doc/extend.texi: Document new signbit{,f,l} builtins.

2004-02-01  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.

2004-02-01  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.h (PREDICATE_CODES): Remove entries for
	"mips_const_double_ok" and "simple_memory_operand", which were
	removed from the MIPS port with the mips-3_4-rewrite branch merge.
	* config/mips/mips.c (mips16_lay_out_constants): Update comment
	for removal of simple_memory_operand.

2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* config/c4x/c4x.md: Use GEN_INT instead of
	gen_rtx (CONST_INT, ...).

2004-01-31  Richard Henderson  <rth@redhat.com>

	* varasm.c (output_constant_pool): Don't zap the pool.

2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* genrecog.c (decision_type): Add DT_const_int.
	(write_cond) [DT_const_int]: Print a comparison against small
	constant.
	(write_node): Simplify comparisons against small constants
	before printing tests.

2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
	instead of gen_rtx_CONST_INT.

2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
	instead of gen_rtx_CONST_INT.

2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
	hook_bool_CUMULATIVE_ARGS_false.
	* targhooks.c (default_strict_argument_naming): Rename to
	hook_bool_CUMULATIVE_ARGS_false.
	* targhooks.h: Update the prototype for
	default_strict_argument_naming.

2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
	* config/sh/sh.h: Likewise.
	* config/sh/sh.md: Likewise.

2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* doc/invoke.texi (SPARC options): Restructure and update.

2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
	STRICT_ARGUMENT_NAMING): Poison.
	* target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
	hook_bool_tree_false.
	* targhooks.c (default_promote_function_args): Remove.
	(default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
	Don't check incoming.
	(default_strict_argument_naming): Don't use
	STRICT_ARGUMENT_NAMING.
	* targhooks.h: Remove the prototype for
	default_promote_function_args.

2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* config/i386/i386-protos.h: Remove the prototype for
	ix86_setup_incoming_varargs.
	* config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
	(ix86_setup_incoming_varargs): Make it static.
	* config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.

2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* alloc-pool.c: Fix comment typos.
	* builtin-types.def: Likewise.
	* builtins.def: Likewise.
	* c-pretty-print.c: Likewise.
	* df.h: Likewise.
	* reload1.c: Likewise.

2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/invoke.texi: Follow spelling conventions.
	* doc/tm.texi: Likewise.

2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/install.texi: Fix typos.
	* doc/invoke.texi: Likewise.

2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_decompose_address): Do not treat virtual
	registers as pointers.
	* config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.

2004-01-31  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
	and restore it to gen_lowpart_general on exit.
	(gen_lowpart_for_combine): Adjust all callers to go through
	gen_lowpart.
	* cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
	and restore it to gen_lowpart_general on exit.
	(gen_lowpart_if_possible): Adjust all callers to go through
	gen_lowpart.
	* emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
	(gen_lowpart): Declare as pointer to function, initialized to
	gen_lowpart_general.
	* rtl.h (gen_lowpart): Declare as pointer to function.

2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>

	* bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
	* calls.c: Likewise.
	* emit-rtl.c: Likewise.
	* function.c: Likewise.
	* reload1.c: Likewise.
	* config/i386/cygming.h: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/winnt.c: Likewise.

2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>

	PR bootstrap/9249
	* doc/install.texi: document --enable-__cxa_atexit option.
	* configure.ac: Disable __cxa_atexit if not supported.
	* configure: Regenerate.

2004-01-30  Daniel Berlin  <dberlin@dberlin.org>

	* ggc-zone.c (ggc_free): New function.

2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>

	alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
	cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
	flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
	ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
	tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
	config/alpha/alpha.c, config/alpha/alpha.h,
	config/alpha/alpha.md, config/alpha/unicosmk.h,
	config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
	config/c4x/c4x-protos.h, config/c4x/c4x.md,
	config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
	config/frv/frvend.c, config/i386/cygming.h,
	config/i386/djgpp.h, config/i386/emmintrin.h,
	config/i386/gthr-win32.c, config/i386/i386-interix.h,
	config/i386/i386-protos.h, config/i386/openbsd.h,
	config/i386/winnt.c, config/i386/xm-mingw32.h,
	config/i386/xmmintrin.h, config/ia64/ia64.md,
	config/iq2000/iq2000.md, config/m32r/m32r.md,
	config/m68k/m68k.md, config/mcore/mcore-elf.h,
	config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
	config/mips/iris5gas.h, config/mips/iris6.h,
	config/mips/iris6gas.h, config/mips/linux.h,
	config/mips/mips.md, config/mips/netbsd.h,
	config/mips/openbsd.h, config/mips/windiss.h,
	config/pa/fptr.c, config/rs6000/aix.h,
	config/rs6000/altivec.h, config/rs6000/darwin.h,
	config/rs6000/xcoff.h, config/s390/s390-protos.h,
	config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
	config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
	config/sparc/sol2.h: Update copyright.

2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in (abs_docdir, abs_srcdir): Define.
	(doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).

2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>

	* genconfig.c (main): Have CC0_P check its operand even on a
	target without cc0.

2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>

	* config/alpha/alpha.c: Remove mentions of deprecates macros
	in comments, remove some target-independent comments about target
	macros, and/or add minimal function comments for target hook
	implementations.
	* config/avr/avr.c: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/ip2k/ip2k.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/m32r/m32r.h: Likewise.
	* config/m68hc11/m68hc11.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pdp11/pdp11.c: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/sh.h: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.

2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>

	PR optimization/12147
	* reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
	RELOAD_FOR_OPADDR_ADDR.
	(reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
	might be reused as RELOAD_FOR_OPADDR_ADDR register.

2004-01-30  Jan Hubicka  <jh@suse.cz>

	* reload.c (get_secondary_mem): Fix updating of
	secondary_memlocs_elim_used.

2004-01-30  Richard Henderson  <rth@redhat.com>

	* varasm.c (struct rtx_const, struct pool_constant): Remove.
	(MAX_RTX_HASH_TABLE): Remove.
	(const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
	(first_pool, last_pool, pool_offset): Remove.
	(struct rtx_constant_pool): Split out from ...
	(struct varasm_status): ... here.  Reference one via pointer.
	(struct constant_descriptor_rtx): Merge struct pool_constant.
	(SYMHASH): Remove.
	(decode_rtx_const): Remove.
	(const_hash_rtx, compare_constant_rtx): Remove.
	(record_constant_rtx): Remove.
	(const_desc_rtx_hash, const_desc_rtx_eq): New.
	(const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
	(const_rtx_hash_1, const_rtx_hash): New.
	(init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
	(simplify_subtraction): Use simplify_rtx.
	(force_const_mem): Rewrite to use new data structures.
	(find_pool_constant): Likewise.
	(get_pool_constant, get_pool_constant_mark,
	get_pool_constant_for_function, get_pool_mode,
	get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
	(output_constant_pool_2): Split out from output_constant_pool.
	(output_constant_pool_1): Likewise.  Use new pool datastructures.
	(output_constant_pool): Zap entire pool datastructure.
	(mark_constant): Use new pool datastructures.
	(mark_constants): Use for_each_rtx.
	(mark_constant_pool): Use new pool datastructures.

2004-01-30  Fariborz Jahanian <fjahanian@apple.com>

	* config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
	Copy operands[1] to pseudo for simplify_gen_subreg.

2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>

	* gcse.c (bypass_block): Fix a typo in the previous check-in
	to the file.

2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>

	* toplev.c: Include alloc-pool.h.
	* Makefile.in (toplev.c): Update dependencies.

2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* combine.c (simplify_shift_const, case XOR): Be careful when
	commuting XOR with ASHIFTRT.

2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
	    Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc-protos.h: Remove the prototype for
	sparc_builtin_saveregs.
	* config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
	(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
	(sparc_builtin_saveregs): Make it static.
	(sparc_promote_prototypes): New.
	(sparc_struct_value_rtx): Likewise.
	(sparc_return_in_memory): Likewise.
	* config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
	(PROMOTE_FUNCTION_RETURN): Likewise.
	(RETURN_IN_MEMORY): Likewise.
	(STRUCT_VALUE): Likewise.
	(STRUCT_VALUE_INCOMING): Likewise.
	(EXPAND_BUILTIN_SAVEREGS): Likewise.
	(STRICT_ARGUMENT_NAMING): Likewise.
	(PROMOTE_PROTOTYPES): Likewise.

	* config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.

2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR c/12818
	* varasm.c (const_hash_1) <STRING_CST>: Use the
	address to compute the hash value if flag_writable_strings.
	(compare_constant) <STRING_CST>: Compare the addresses
	if flag_writable_strings.
	(build_constant_desc): Do not copy the expression for a
	STRING_CST if flag_writable_strings.

2004-01-30  Jan Hubicka  <jh@suse.cz>

	* alloc-pool.c: Include hashtab.h
	(alloc_pool_descriptor): New structure
	(alloc_pool_hash): New global variable.
	(hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
	(create_alloc_pool): Update statistics.
	(free_alloc_pool): Likewise.
	(pool_alloc): Likewise.
	(output_info): New structure
	(print_statistics, dump_alloc_pool_statistics): New function.
	* alloc-pool.h (alloc_pool_def): Turn name to be constant.
	(dump_alloc_pool_statistics): Declare.
	* toplev.c (finalize):  Dump statistics.

	* reload.c (secondary_memlocs_elim_used): New static variable.
	(get_secondary_mem): Update it.
	(find_reloads): Use it.

2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>

	* toplev.c: Fix broken checkin of 2003-12-30, again.

2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>

	* configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
	s390*-*-* targets by specifying a 'nop' insn.
	* configure: Regenerate.

2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/11475
	* config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.

2004-01-29  Jakub Jelinek  <jakub@redhat.com>

	* emit-rtl.c (change_address): Use XEXP (memref, 0) instead
	of addr when creating MEM copy.

2004-01-29  Devang Patel  <dpatel@apple.com>

	* dwarf2out.c (gen_field_die): Do not equate decl number to die.

2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>

	PR inline-asm/6162
	* reload.c (find_reloads): Only support one pair of commutative
	operands.

2004-01-29  Roger Sayle  <roger@eyesopen.com>

	PR java/13824
	* tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
	as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
	recursion.

2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/frv/frv.c: Don't mention deprecated macros in
	comments.  Remove some target-independent comments about
	target macros.
	* config/frv/frv.h: Likewise.

2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* cfghooks.c (split_block): Set probability and count of the
	new edge.

2004-01-29  Josef Zlomek  <zlomekj@suse.cz>

	* dwarf2out.c (struct die_struct): Added field decl_id.
	(decl_die_table): Changed to hash table.
	(decl_die_table_allocated): Deleted.
	(decl_die_table_in_use): Deleted.
	(DECL_DIE_TABLE_INCREMENT): Deleted.
	(decl_die_table_hash): New function.
	(decl_die_table_eq): New function.
	(lookup_decl_die): Lookup in a hash table.
	(equate_decl_number_to_die): Insert into a hash table.
	(dwarf2out_init): Init hash table decl_die_table.

2004-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/13424
	* expr.c (store_constructor): Revert 2003-12-03 change.

	* emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
	expected before returning early.  Avoid sharing RTL if they
	need to be changed.

	* config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
	handling so that memory attributes are preserved.  Don't call
	ix86_set_move_mem_attrs.
	(ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
	(ix86_expand_clrstr): Rename src argument to
	dst.  Rework rep_stos and strset handling so that memory attributes
	are preserved.
	(ix86_expand_strlen): Pass src argument to
	ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
	memory attributes are preserved.
	(ix86_expand_strlensi_unroll_1): Add src argument.  Use
	change_address instead of gen_rtx_MEM.
	* config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
	expanders.
	(strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
	strmovqi, strmovqi_rex64): Remove.
	(rep_mov*, strmov*): Prefix insn names with *.
	(strset, strset_singleop, rep_stos): New expanders.
	(strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
	strsetqi, strsetqi_rex64): Remove.
	(rep_stos*, strset*): Prefix insn names with *.
	(rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
	to SImode.
	(cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
	are preserved.
	(cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
	Prefix insn names with *.
	(cmpstrqi_nz_1, cmpstrqi_1): New expanders.
	(strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
	(strlenqi_1): New expander.
	* config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.

2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
	* basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
	verify_flow_info): Declaration removed.
	* cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
	(debug_bb, debug_bb_n): Add argument to dump_bb call.
	* cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
	try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
	instead of delete_block.
	* cfghooks.c: Include timevar.h and toplev.h.
	(cfg_hooks): Define here.
	(verify_flow_info, dump_bb): Moved from cfg.c.
	(redirect_edge_and_branch, redirect_edge_and_branch_force,
	split_block, split_block_after_labels, move_block_after,
	delete_basic_block, split_edge, create_basic_block,
	create_empty_bb, can_merge_blocks_p, merge_blocks,
	make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
	New functions.
	* cfghooks.h (struct cfg_hooks): Added fields name,
	make_forwarder_block, tidy_fallthru_edge and
	move_block_after. Changed type of verify_flow_info, dump_bb,
	split_block fields. Renamed cfgh_split_edge and delete_block
	fields.
	(redirect_edge_and_branch, redirect_edge_and_branch_force,
	split_block, delete_block, split_edge, create_basic_block,
	can_merge_blocks_p, merge_blocks): Macros removed.
	(cfg_hooks): Do not export.
	(verify_flow_info, dump_bb, redirect_edge_and_branch,
	redirect_edge_and_branch_force, split_block, split_block_after_labels,
	move_block_after, delete_basic_block, split_edge, create_basic_block,
	create_empty_bb, can_merge_blocks_p, merge_blocks,
	make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
	Declare.
	(cfg_layout_rtl_cfg_hooks): Declare.
	* cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
	New functions.
	(canonicalize_loop_headers): Use new semantics of make_forwarder_block.
	(redirect_edge_with_latch_update): Removed.
	(make_forwarder_block): Moved to cfghooks.c, semantics changed.
	* cfgloopmanip.c (remove_bbs): Do not update dominators here.
	* cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
	rtl_delete_block, rtl_split_block, rtl_merge_blocks,
	tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
	cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
	cfghooks.c.
	(rtl_create_basic_block): Coding style fix.
	(rtl_tidy_fallthru_edge, rtl_move_block_after,
	rtl_make_forwarder_block): New functions.
	(update_cfg_after_block_merging): Removed.
	(rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
	* flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
	to dump_bb.
	* ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
	find_if_case_2): Don't update dominators.
	* timevar.def (TV_CFG_VERIFY): New.
	* loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
	* cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
	* cfgloopmanip.c (split_loop_bb): Don't update dominators.
	(remove_bbs): Don't call remove_bbs.
	(create_preheader): Use make_forwarder_block.
	(mfb_keep_just, mfb_update_loops): New static functions.

2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/avr/avr.h: Remove target-independent comments about
	target macros.

2004-01-28  Daniel Berlin  <dberlin@dberlin.org>

	* timevar.c (timevar_print): Mention when checking is enabled.

2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>

	* c-lex.c (c_lex): Rename to...
	(c_lex_with_flags): Add new parameter to get CPP flags.
	(c_lex): Thunk to c_lex_with_flags while keeping the old interface.
	* c-pragma.h (c_lex_with_flags): Declare.

2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mcore/mcore.c (mcore_external_libcall): Add a
	comment.
	(mcore_return_in_memory): Likewise.

2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mcore/mcore-protos.h: Remove the prototype for
	mcore_setup_incoming_varargs.
	* config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
	(TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(mcore_setup_incoming_varargs): Make it static.  Receive the
	first argument by reference.  Add argument second_time.
	(mcore_external_libcall): New.
	(mcore_return_in_memory): Likewise.
	* config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
	(PROMOTE_FUNCTION_RETURN): Likewise.
	(STRUCT_VALUE): Likewise.
	(RETURN_IN_MEMORY): Likewise.
	(SETUP_INCOMING_VARARGS): Likewise.
	(PROMOTE_PROTOTYPES): Likewise.
	(ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.

2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r-protos.h: Remove the prototype for
	m32r_setup_incoming_varargs.
	* config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(m32r_return_in_memory): New.
	(m32r_setup_incoming_varargs): Make it static.
	* config/m32r/m32r.h: Remove #undef of
	ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
	definitions of PROMOTE_FUNCTION_ARGS and
	PROMOTE_FUNCTION_RETURN.
	(PROMOTE_PROTOTYPES): Remove.
	(RETURN_IN_MEMORY): Likewise.
	(STRUCT_VALUE): Likewise.

2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(m68k_struct_value_rtx): Likewise.
	* config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
	STRUCT_VALUE_REGNUM.
	(PROMOTE_PROTOTYPES): Remove.
	* config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
	STRUCT_VALUE_REGNUM.
	* config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
	* config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.

2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/stormy16/stormy16.c
	(TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
	TARGET_BUILD_BUILTIN_VA_LIST.

2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(v850_return_in_memory): Likewise.
	(v850_setup_incoming_varargs): Likewise.
	* config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
	(SETUP_INCOMING_VARARGS): Likewise.
	(RETURN_IN_MEMORY): Likewise.
	(STRUCT_VALUE): Likewise.

2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
	(fr30_setup_incoming_varargs): Don't use
	STRICT_ARGUMENT_NAMING.
	* config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
	(STRICT_ARGUMENT_NAMING): Likewise.

2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/frv/frv-protos.h: Remove the prototype for
	frv_expand_builtin_saveregs.
	* config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
	(frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
	STRUCT_VALUE_REGNUM.
	(frv_expand_builtin_saveregs): Make it static.
	(frv_struct_value_rtx): New.
	* config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.

2004-01-29  Jan Hubicka  <jh@suse.cz>

	PR c++/12850
	* cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
	initial pointers.
	* cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
	for functions that will be only inlined.
	(cgraph_mark_function_to_output): Likewise.
	(cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
	do not clear function body.
	* tree-optimize.c (clear_decl_rtl): Use decl_function_context.
	(tree_rest_of_compilation): Reorganize the logic releasing function
	body to use callgraph datastructure.

2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
	to register_operand.

2004-01-28  Zack Weinberg  <zack@codesourcery.com>

	* config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
	(cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
	match_operand expressions so that all match_dups appear
	lexically after their corresponding match_operands.

2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (WORD_REG_USED): Use
	HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
	(compute_saved_regs): Likewise.
	(h8300_expand_prologue): Likewise.  Allocate locals after
	saving registers.
	(h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
	of FRAME_POINTER_REGNUM.  Deallocate locals before saving
	registers.
	(h8300_initial_elimination_offset): Adjust for the new frame
	layout, which swaps flips the order of locals and saved
	registers.
	* config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
	(HARD_FRAME_POINTER_REGNUM): New.
	(ELIMINABLE_REGS): Add an elimination rule from
	FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
	(REGISTER_NAMES): Add fp.
	* config/h8300/h8300.md (FP_REG): Change to 11.
	(HFP_REG): New.

2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* genrecog.c (write_node): Remove a useless local variable.

2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>

	* Makefile.in (options.c options.h): Use stamp file s-options to
	avoid unnecessary rebuilds.
	(options.o): New target listing dependencies.
	(gtyp-gen.h): Use stamp file s-gtyp-gen.
	(STAGESTUFF): Add s-gtyp-gen.

2004-01-28  Richard Henderson  <rth@redhat.com>

	* ggc.h (ggc_free): Declare.
	* ggc-common.c (ggc_realloc): Use it.
	* ggc-page.c: Remove lots of inline markers.
	(globals): Add free_object_list.
	(ggc_alloc): Tidy.
	(ggc_free, validate_free_objects): New.
	(poison_pages): Provide default.
	(ggc_collect): Call validate_free_objects; emit markers to
	the debug file.

2004-01-28  Zack Weinberg  <zack@codesourcery.com>
	    Jim Wilson  <wilson@specifixinc.com>

	* config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
	Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
	scratch pointer.
	(ia64_secondary_reload_class): Delete case GR_REGS.
	* config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
	Do not allocate a scratch register.
	(reload_inti, reload_outti, reload_intf, reload_outtf): Delete.

2004-01-28  Jan Hubicka  <jh@suse.cz>

	* gcse.c (bypass_block): Prevent edges to be unified when we are
	about to emit compenstation code.

2004-01-28  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.c (arm_expand_builtin): Force second argument of
	the setcwx insn into a register.

2004-01-28  Richard Sandiford  <rsandifo@redhat.com>

	* config/fp-bit.c (pack_d): When using paired doubles to implement
	a long double, round the high part separately.
	(unpack_d): Fix the case in which the high part is a power of two
	and the low part is a nonzero value of the opposite sign.

2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(c4x_external_libcall): Likewise.
	(c4x_struct_value_rtx): Likewise.
	* config/c4x/c4x.h: Remove.
	(STRUCT_VALUE_REGNUM): Likewise.
	(ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.

2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	* config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
	(STRUCT_VALUE): Likewise.
	(PROMOTE_PROTOTYPES): Likewise.

2004-01-27  Roger Sayle  <roger@eyesopen.com>

	* config/pa/pa.c (emit_move_sequence): Check that operand1 is a
	CONST_INT before using INTVAL.

2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
	* config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
	frame if !TARGET_BACKCHAIN.
	* config/s390/s390.md ("allocate_stack"): Use pattern only if
	TARGET_BACKCHAIN.
	* doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.

2004-01-27  Zack Weinberg  <zack@codesourcery.com>

	* ia64.c (ia64_function_arg): When placing HFAs in integer
	registers, do not special case the mode used for complex
	types.  Do not advance int_regs until the current register
	is full.

2004-01-27  Richard Sandiford  <rsandifo@redhat.com>

	PR target/7297
	* except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().

2004-01-27  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
	slow, unaligned loads and stores while debugging.  Fix formatting.

2004-01-27  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
	of computing wmode.
	(restore_stack_nonlocal): Same.

2004-01-27  Devang Patel <dpatel@apple.com>

	* Makefile.in (dwarf2out.o): Depend on input.h
	* dbxout.c (dbx_debug_hooks): Add new empty hook for
	imported_module_or_decl.
	(xcoff_debug_hooks): Same.
	* sdbout.c (sdb_debug_hooks): Same.
	* vmsdbgout.c (vmsdbg_debug_hooks): Same.
	* debug.c (do_nothing_debug_hooks): Same.
	(debug_nothing_tree_tree): New function.
	* debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
	* dwarf2out.c: Include input.h.
	(dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
	(remove_child_TAG): New function.
	(dwarf_tag_name): Handle DW_TAG_imported_module.
	(gen_subprogram_die): Equate decl number to declaration die. Do not
	remove all children dies while reusing declaration die for definition.
	Instead, selectively remove only formal parameters.
	(gen_variable_die): Equate variable decl to declaration die.
	(gen_field_die): Equate field decl to line number.
	(force_namespace_die): Replace it with ...
	(force_decl_die): ... this.
	(force_type_die): New function.
	(setup_namespace_context): Replace use of force_namespace_die() with
	force_decl_die().
	(gen_namespace_die): Same.
	(dwarf2out_imported_module_or_decl): New function.

2004-01-27  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
	on CQImode and CHImode incoming arguments in register a7.
	(function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
	* config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
	* config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
	xtensa_copy_incoming_a7 before reload.

2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>

	* coverage.c (get_coverage_counts): Give a different message
	if flag_guess_branch_prob is set.
	* predict.c (counts_to_freqs): Return an int.
	(estimate_bb_frequencies): If counts_to_freqs returns zero,
	calculate estimates.

2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>

	* config/iq2000/iq2000-protos.h: Remove the prototype for
	iq2000_setup_incoming_varargs.
	* config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
	(iq2000_return_in_memory): Likewise.
	(iq2000_setup_incoming_varargs): Make it static.  Receive the
	first argument by reference.
	* config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
	(PROMOTE_FUNCTION_RETURN): Likewise.
	(PROMOTE_PROTOTYPES): Likewise.
	(RETURN_IN_MEMORY): Likewise.
	(STRUCT_VALUE): Likewise.
	(SETUP_INCOMING_VARARGS): Likewise.
	(STRICT_ARGUMENT_NAMING): Likewise.

2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>

	* fixinc/fixinc.c (test_test): Initialize res.
	(start_flexer): Initialize pz_cmd_save.

2004-01-27  Zack Weinberg  <zack@codesourcery.com>

	* doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
	SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.

2004-01-27  Zack Weinberg  <zack@codesourcery.com>

	PR 7198
	* config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
	(*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
	(*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
	Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
	Possibly rename pattern for consistency.
	Remove ??? comments suggesting that this be done.
	(*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
	New patterns.
	(divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
	(divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
	(divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
	(divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
	Update to match.

2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>

	* config/arm/arm.c (output_return_instruction): Only restore IP
	into SP if frame_pointer_needed.

2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
	for SCmode and DCmode if ARCH32.
	(sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
	* config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
	if ARCH32.
	(BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
	if ARCH32.
	(BASE_OUTGOING_VALUE_REG): Likewise.

2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/10904
	PR target/13058
	* config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
	Forbid mode changes from SImode for lower FP regs if ARCH64.

2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>

	* Makefile.in (bt-load.o): Depend on except.h.
	* bt-load.c (except.h): #include.
	(compute_defs_uses_and_gen): If insn at end of BB can throw
	within this function, consider registers used by it unavailable for
	btr migration.
	(move_btr_def): If insn at end of BB can throw, insert before rather
	than after.

	* flags.h (flag_btr_bb_exclusive): Declare.
	* toplev.c (flag_btr_bb_exclusive): New variable.
	(f_options): Add btr-bb-exclusive.
	* bt-load.c (augment_live_range): Restore old behaviour if
	flag_btr_bb_exclusive is set.
	* common.opt: Add entry for -fbtr-bb-exclusive.
	* opts.c (common_handle_options): Same.
	* doc/invoke.texi: Document -fbtr-bb-exclusive.

	* bt-load.c (btrs_live_at_end): New variable.
	(compute_defs_uses_and_gen): Compute its pointed-to array.
	(clear_btr_from_live_range, add_btr_to_live_range): Update it.
	(augment_live_range): When augmenting with a new dominator,
	use only its btrs_live_at_end set, but also add in the full set
	of the old dominator.
	(btr_def_live_range): Use btrs_live_at_end.
	(move_btr_def): Set other_btr_uses_before_def, and move new set
	to the end of the basic block, if appropriate.
	(migrate_btr_defs): Allocate and free btrs_live_at_end.

	* bt-load.c (basic_block_freq): Remove outdated comment.

2004-01-27  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.h: Correct target_flags free bits comment.
	(PREDICATE_CODES): Remove duplicate.
	* config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
	(MASK_PROFILE_KERNEL): Adjust define.

2004-01-27  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_constant_alignment): Decrease alignment
	of long string literals from 32 bytes to sizeof (void *) when !-Os
	and to 1 with -Os.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
	constant addresses in the normal mode.

2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* system.h (CHAR_BITFIELD): Delete.
	(BOOL_BITFIELD): New.
	* c-decl.c (c_scope): Use BOOL_BITFIELD.
	* gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(arc_return_in_memory): Likewise.
	* config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
	(PROMOTE_FUNCTION_RETURN): Likewise.
	(RETURN_IN_MEMORY): Likewise.
	(STRUCT_VALUE): Likewise.

2004-01-26  Richard Henderson  <rth@redhat.com>

	* c-parse.in (extension): Use itype.
	(SAVE_EXT_FLAGS): Don't allocate a tree.
	(RESTORE_EXT_FLAGS): Don't read a tree.

2004-01-26  Jan Hubicka  <jh@suse.cz>

	* cselib.c (discard_useless_values):  Clear out value pointer pointing
	to datastructure to be recycled.

2004-01-25  Jan Hubicka  <jh@suse.cz>

	* genextract.c (main): Do not output the memset when not checking.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
	switch statement instead of a chain of if statements.

2004-01-26  Jeff Law  <law@redhat.com>

	* doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
	acute accents for Petur Runolfsson's entry.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	* config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
	(RETURN_IN_MEMORY): Likewise.

2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>

	 * config/rs6000/rs6000.c (rs6000_emit_move): split slow
	 unaligned load/store into smaller loads and stores.

2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>

	* function.c (assign_parms): Do not assign
	long long argument to memory in prologue if
	is it loaded into register.

2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>

	 PR middle-end/13779
	 * expr.c (emit_group_load): split constant
	 correctly into register components of PARALLEL insn.

2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>

	* gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
	Use adjust_address_nv directly with appropriate mode.
	(restore_stack_nonlocal): Ditto.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/xtensa/xtensa-protos.h: Remove the prototype for
	xtensa_builtin_saveregs.
	* config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
	(xtensa_builtin_saveregs): Make it static.
	(xtensa_return_in_memory): New.
	* config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
	(PROMOTE_FUNCTION_RETURN): Likewise.
	(PROMOTE_PROTOTYPES): Likewise.
	(STRUCT_VALUE): Likewise.
	(RETURN_IN_MEMORY): Likewise.
	(EXPAND_BUILTIN_SAVEREGS): Likewise.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
	(arm_setup_incoming_varargs): Likewise.
	* config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
	(cris_setup_incoming_varargs): Likewise.
	* config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
	(ns32k_struct_value_rtx): Likewise.
	* config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
	NS32K_STRUCT_VALUE_REGNUM.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(arm_struct_value_rtx): Likewise.
	* config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
	(STRUCT_VALUE): Likewise.
	(STRUCT_VALUE_REGNUM): Likewise.
	(PROMOTE_PROTOTYPES): Likewise.

2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/ia64/ia64-protos.h: Remove the prototype for
	ia64_setup_incoming_varargs and ia64_return_in_memory.
	* config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
	(ia64_setup_incoming_varargs): Adjust the arguments to meet
	the requirement of TARGET_SETUP_INCOMING_VARARGS.
	(ia64_return_in_memory): Make it static.  Change the return
	type to bool from int.  Add an argument.
	(ia64_struct_value_rtx): New.
	* config/ia64/ia64.h: Remove commented-out definitions of
	PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
	PROMOTE_PROTOTYPES.
	(RETURN_IN_MEMORY): Remove.
	(STRUCT_VALUE_REGNUM): Likewise.
	(STRICT_ARGUMENT_NAMING): Likewise.

2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/13666
	* config/sparc/sparc.c (function_arg_union_value): New function.
	(function_arg): Use it to deal with unions.
	(function_value): Likewise.  Define 'regbase' only for ARCH64.
	Replace a conditional statement by a simpler one.

2004-01-26  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips16_optimize_gp): Delete.
	(mips_reorg): Don't call it.

2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
	(floatunsqihf2): Remove operand 6.
	(fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
	fix patterns.
	(ldi_conditional, ldf_conditional): Validate operands.

2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
	(HAVE_GAS_HIDDEN): Undefine as interim measure.

2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
	memory references if TARGET_EXPOSE_LDP nonzero.

2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.

2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
	invalid operand combinations.

2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x.c (c4x_check_legit_addr): Rename to
	c4x_legitimate_address_p.  Fix post_modify check.

	* config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
	* config/c4x/c4x.h (c4x_check_legit_addr): Adjust.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/pa/pa-protos.h: Remove the prototype for
	hppa_builtin_saveregs.  Add a prototype for
	pa_return_in_memory.
	* config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
	(pa_struct_value_rtx): Likewise.
	(pa_return_in_memory): Likewise.
	* config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
	PA_STRUCT_VALUE_REGNUM.
	(INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
	(EXPAND_BUILTIN_SAVEREGS): Remove.
	(PROMOTE_PROTOTYPES): Likewise.
	(PROMOTE_FUNCTION_RETURN): Likewise.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(vax_struct_value_rtx): Likewise.
	* config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
	VAX_STRUCT_VALUE_REGNUM.
	(PROMOTE_PROTOTYPES): Remove.

2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.

2004-01-25  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
	and MIPS64 have HI/LO interlocks.  Update comment.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/stormy16/stormy16-protos.h: Remove the prototype for
	xstormy16_setup_incoming_varargs.
	* config/stormy16/stormy16.c
	(xstormy16_setup_incoming_varargs): Remove.
	(xstormy16_return_in_memory): New.
	(TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	* config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
	(PROMOTE_FUNCTION_RETURN): Likewise
	(PROMOTE_PROTOTYPES): Likewise
	(RETURN_IN_MEMORY): Likewise
	(STRUCT_VALUE): Likewise
	(SETUP_INCOMING_VARARGS): Likewise

2004-01-25  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_offset_within_object_p): New function.
	(mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
	SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
	ABI has 64-bit pointers and the object file only allows 32-bit symbols.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
	(PROMOTE_FUNCTION_RETURN): Likewise.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mn10300/mn10300-protos.h: Remove the prototype for
	mn10300_builtin_saveregs.
	* config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
	(mn10300_return_in_memory): Likewise.
	(mn10300_builtin_saveregs): Make it static.
	* config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
	(RETURN_IN_MEMORY): Likewise.
	(STRUCT_VALUE): Likewise.
	(EXPAND_BUILTIN_SAVEREGS): Likewise.

2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>

	PR bootstrap/13853
	* cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
	using ccr.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/i860/i860-protos.h: Remove the prototype for
	i860_saveregs.
	* config/i860/i860.c (i860_saveregs): Make it static.
	(i860_struct_value_rtx): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
	* config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
	I860_STRUCT_VALUE_REGNUM.
	(EXPAND_BUILTIN_SAVEREGS): Remove.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(m68hc11_struct_value_rtx): Likewise.
	(m68hc11_return_in_memory): Likewise.
	* config/m68hc11/m68hc11.h: Remove a commented-out definition
	of PROMOTE_PROTOTYPES.
	(RETURN_IN_MEMORY): Remove.
	(STRUCT_VALUE_REGNUM): Likewise.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mmix/mmix-protos.h: Remove the prototype for
	mmix_setup_incoming_varargs.
	* config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(mmix_setup_incoming_varargs): Make it static.
	(mmix_struct_value_rtx): New.
	* config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
	Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
	(STRUCT_VALUE_REGNUM): Remove.
	(SETUP_INCOMING_VARARGS): Likewise.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mips/mips-protos.h: Remove the prototypes for
	mips_setup_incoming_varargs and mips_return_in_memory.
	* config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_PROMOTE_PROTOTYPES): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
	(mips_setup_incoming_varargs): Match the prototype for
	TARGET_SETUP_INCOMING_VARARGS.
	(mips_return_in_memory): Make it static.  Add argument fntype.
	(mips_strict_argument_naming): New.
	* config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
	(PROMOTE_FUNCTION_ARGS): Likewise.
	(PROMOTE_FUNCTION_RETURN): Likewise.
	(STRUCT_VALUE): Likewise.
	(RETURN_IN_MEMORY): Likewise.
	(SETUP_INCOMING_VARARGS): Likewise.
	(STRICT_ARGUMENT_NAMING): Likewise.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_SETUP_INCOMING_VARARGS): Likewise.
	(ip2k_return_in_memory): Likewise.
	(ip2k_setup_incoming_varargs): Likewise.
	* config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
	(STRUCT_VALUE): Likewise.
	(STRUCT_VALUE_INCOMING): Likewise.
	(SETUP_INCOMING_VARARGS): Likewise.

2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
	(avr_return_in_memory): Remove.
	* config/avr/avr.h (RETURN_IN_MEMORY): Remove.
	(STRUCT_VALUE): Likewise.
	(STRUCT_VALUE_INCOMING): Likewise.
	(STRICT_ARGUMENT_NAMING): Likewise.

2004-01-25  Jan Hubicka  <jh@suse.cz>

	* combine.c (recog_for_combine): Avoid allocating unnecesary RTX.

2004-01-25  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
	(mips_regno_mode_ok_for_base_p): Declare.
	* config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
	(FRAME_POINTER_REGNUM): Renumber to 78.
	(FIRST_PSEUDO_REGISTER): Update comment accordingly.
	(BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
	(GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
	(REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
	(REG_MODE_OK_FOR_BASE_P): Likewise.
	* config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
	entry for 77 to "$arg" and entry for 78 to "$frame".
	(mips_regno_to_class): Map 77 and 78 to ALL_REGS.
	(mips_reg_mode_ok_for_base_p): Remove.
	(mips_regno_mode_ok_for_base_p): New function, derived from old
	BASE_REG_P macro.  Don't enforce the mips16 stack pointer
	restrictions unless we're being strict.
	(mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.

2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* c-common.h: Fix comment typos.
	* c-decl.c: Likewise.
	* cgraphunit.c: Likewise.
	* combine.c: Likewise.
	* et-forest.c: Likewise.
	* flow.c: Likewise.
	* function.c: Likewise.
	* ifcvt.c: Likewise.
	* integrate.c: Likewise.
	* jump.c: Likewise.
	* postreload.c: Likewise.
	* varray.c: Likewise.

2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/frontends.texi: Update copyright.
	* doc/gcov.texi: Likewise.
	* doc/gty.texi: Likewise.
	* doc/sourcebuild.texi: Likewise.
	* doc/standards.texi: Likewise.

2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>

	PR target/12978
	* c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
	Remove movstrqi_small because it conflicts with movstrqi_large.

2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(cris_struct_value_rtx): Likewise.
	* config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
	(CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
	STRUCT_VALUE_REGNUM.
	(STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.

2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>

	PR bootstrap/13848
	* cse.c (cse_cc_succs): Change the mode of the source expression
	as soon as decide we need a new mode.  Don't permit changing modes
	if we found a match in a successor block.
	(cse_condition_code_reg): Save original mode of source expression
	so that we know whether we have to change the mode in other
	insns.

2004-01-24  Jan Hubicka  <jh@suse.cz>

	* emit-rtl.c (change_address, adjust_address_1, offset_address,
	widen_memory_access):  Return early when there is nothing to change.

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

	* simplify-rtx.c (simplify_relational_operation): Don't
	simplify address == constant into address + -constant == 0.

2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* gcc.c (process_command): Don't internationalize the
	Copyright message.
	* mips-tfile.c (main): Likewise.

2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>

	* cse.c: (cse_cc_succs) Fix comparison warning.

2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Remove extraneous USE in expanders.

2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Provide prototypes for
	h8300_legitimate_constant_p and h8300_legitimate_address_p.
	* config/h8300/h8300.c (h8300_legitimate_constant_p): New.
	(h8300_rtx_ok_for_base_p): Likewise.
	(h8300_legitimate_address_p): Likewise.
	* config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
	h8300_legitimate_constant_p.
	(RTX_OK_FOR_BASE_P): Remove.
	(GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.

2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
	(REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
	(REG_OK_FOR_INDEX_STRICT_P): Likewise.
	(REG_OK_FOR_BASE_STRICT_P): Likewise.
	(REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
	(REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
	(REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
	(REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.

2004-01-24  Jan Hubicka  <jh@suse.cz>

	* cselib.c (remove_useless_values):  Do not access discarded values.

2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-typeck.c (build_conditional_expr): Do not allow non-lvalue
	arrays.

2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>

	* recog.c: Fix a typo in copyright.

2004-01-23  Andrew Pinski  <apinski@apple.com>

	* config/rs6000/rs6000.md (call): Fix misappiled patch.
	(call_value): Likewise.

2004-01-23  Richard Henderson  <rth@redhat.com>

	PR opt/12941
	* combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
	(simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
	if SHIFT_COUNT_TRUNCATED is set.

2004-01-23  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
	separate real and imaginary parts.
	* config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.

2004-01-23  Hartmut Penner <hpenner@de.ibm.com>

	PR target/13674
	* config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
	loading into GPR.

2004-01-23  Jan Hubicka  <jh@suse.cz>

	* emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
	change.

	* alloc-pool.c (align_four): Kill.
	(create_alloc_pool): Align size to eight.
	(free_alloc_pool, free_pool): Invalidate deallocated data.

2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>

	PR gcc/1532
	* cse.c (cse_change_cc_mode): New static function.
	(cse_change_cc_mode_insns, cse_cc_succs): Likewise.
	(cse_condition_code_reg): New function.
	* rtl.h (cse_condition_code_reg): Declare.
	* toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
	* target.h (struct gcc_target): Add fixed_condition_code_regs and
	cc_modes_compatible.
	* target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
	(TARGET_CC_MODES_COMPATIBLE): Define.
	(TARGET_INITIALIZER): Add new initializers.
	* targhooks.c (default_cc_modes_compatible): New function.
	* targhooks.c (default_cc_modes_compatible): Declare.
	* hooks.c (hook_bool_intp_intp_false): New function.
	* hooks.h (hook_bool_intp_intp_false): Declare.
	* config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
	(TARGET_CC_MODES_COMPATIBLE): Define.
	(ix86_fixed_condition_code_regs): New static function.
	(ix86_cc_modes_compatible): Likewise.
	* doc/tm.texi (Condition Code): Document new hooks.

2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* fixinc/inclhack.def (bad_lval): Renamed to ...
	(alpha_bad_lval): ... this.
	Removed file list.
	Restrict to alpha*-dec-osf*.
	* fixinc/fixincl.x: Regenerate.
	* fixinc/tests/base/dirent.h: Remove, moving test ...
	* fixinc/tests/base/testing.h: ... here, reflecting new name.

2004-01-23  Zack Weinberg  <zack@codesourcery.com>

	PR c/13814
	* c-decl.c (diagnose_mismatched_decls): Also discard a
	built-in if we encounter an old-style definition with the
	same name.

2004-01-23  Jakub Jelinek  <jakub@redhat.com>

	* config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
	set to default{32,64}.

2004-01-21  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
	[!__powerpc64__]: Corrected to handle kernels with changed ucontext.

2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
	    Olivier Hainque  <hainque@act-europe.fr>

	* fold-const.c (fold_binary_op_with_conditional_arg): Only
	build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.

2004-01-23  Daniel Jacobowitz  <drow@mvista.com>

	* config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
	size for minipool references.

2004-01-23  Roger Sayle  <roger@eyesopen.com>

	* real.c (real_floor, real_ceil): Tweak to allow input and output
	arguments to overlap.
	(real_round): New function to implement round(3m) semantics.
	* real.h (real_round): Prototype here.
	* builtins.c (fold_builtin_round): New function to constant fold
	round, roundf and roundl.
	(fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.

2004-01-23  Alexandre Oliva  <aoliva@redhat.com>

	PR optimization/13819
	* config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
	introduced by 2004-01-20's Jan Hubicka's copy_insn change.
	(sh_handle_sp_switch_attribute): Remove warning.

2004-01-23  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.

2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>

	* doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
	may or may not return non-NIL.
	* postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
	check CANNOT_CHANGE_MODE_CLASS

2004-01-23  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (PROP_POSTRELOAD): New macro.
	(CLEANUP_LOG_LINKS): New.
	* cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
	* toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.

	* cselib.c (value_pool): New.
	(new_cselib_val): Use pool.
	(cselib_init): Initialize value_pool
	(cselib_finish): Free pool.

2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (scan_record_type): New function.
	(function_arg_slotno): Use it to determine which kinds of
	registers the record can be passed in.

2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>

	* config/pa/fptr.c: Fix old-style definition.

2004-01-22  Paolo Bonzini  <bonzini@gnu.org>

	PR optimization/13724
	* cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
	represents the zero bits produced by a ZERO_EXTEND operation.

2004-01-22  Roger Sayle  <roger@eyesopen.com>

	PR optimization/13821
	* simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
	correctly calculate the lowpart offset of the contracted subreg.

2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>

	* doc/invoke.texi (Optimize Options): Note that --param arguments
	are subject to change without notice.

2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config.gcc (mips-sgi-irix6*o32): Removed.
	* config/mips/iris6-o32-as.h: Likewise.
	* config/mips/iris6-o32-gas.h: Likewise.
	* config/mips/iris6-o32.h: Likewise.

2004-01-22  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (first_pass): New static variable.
	(try_forward_edges):  Add work limiting check for threading.
	(try_crossjump_bb):  Add work limiting check for crossjumping.
	(try_optimize_cfg):  Maintain first pass variable.

2004-01-22  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (function_arg): Generalize logic so that it
	handles complex and vector modes.

2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
	(REG_OK_FOR_BASE_P_STRICT): Likewise.
	(STRICT): Likewise.

2004-01-22  Daniel Jacobowitz  <drow@mvista.com>

	* c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
	(genrtl_for_stmt): Remove emit_nop calls.

2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR target/13713
	PR target/13324
	* pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
	movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
	clrstrdi_prereload, clrstrdi_postreload): Fix constraints.

2004-01-22  Daniel Jacobowitz  <drow@mvista.com>

	* config/arm/arm.c: Include "debug.h".
	(thumb_pushpop): Take two new arguments.  Add some commentary.
	Output frame information when pushing.
	(thumb_exit, thumb_unexpanded_epilogue): Update calls to
	thumb_pushpop.
	(thumb_output_function_prologue): Likewise.  Accumulate a CFA
	offset, and pass it to thumb_pushpop.  Output CFI information.
	(thumb_expand_prologue): Add some frame-related markers and notes.

2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_frame_info): Allow large frame sizes
	for TARGET_64BIT.
	(s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
	* config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.

2004-01-22  Roger Sayle  <roger@eyesopen.com>
	    Paolo Bonzini  <bonzini@gnu.org>

	* rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
	(subreg_lsb): Change to call new subreg_lsb_1 helper function.
	* rtl.h (subreg_lsb_1): Prototype here.
	* simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
	sign extensions.

2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
	macro need not be defined if jump-tables should contain
	relative addresses only when -fPIC or -fPIC is in effect.

2004-01-22  Jan Hubicka  <jh@suse.cz>

	* alias.c (reg_base_value): Turn into varray.
	(reg_base_value_size): Kill.
	(old_reg_base_value): New deletable varray.
	(alias_invariant_size): New variable.
	(REG_BASE_VALUE): Update to use varray.
	(find_base_value): Likewise.
	(record_set): Likewise.
	(record_base_value): Likewise.
	(memrefs_conflict_p): Likewise.
	(record_set): Likewise
	(record_base_value): Likewise.
	(memrefs_conflict_p): Use alias_invariant_size.
	(init_alias_analysis): Use varray; set alias_invariant_size;
	rescale other arrays to be sized by maxreg.
	(end_alias_analysis): Save reg_base_value; clear alias_invariant_size.

2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.c (function_arg_slotno): Use
	FLOAT_TYPE_P to detect FP fields in structures.
	(function_arg_record_value_1): Likewise.
	(function_arg_record_value_2): Likewise.

2004-01-22  Jan Hubicka  <jh@suse.cz>

	* function.c (allocate_struct_function): Do not initialize expr, emit
	and varasm.
	(prepare_function_start): Do it here.
	* c-parse.in (maybe_type_qual): Do not produce line number notes.

2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/13559
	* config/sparc/sparc.c (function_arg_record_value_3): Revert
	to 'word_mode' once the first slot has been filled.

2004-01-22  Olivier Hainque  <hainque@act-europe.fr>

	* config/sparc/sparc.c (function_arg_record_value_1): Fix
	computation of the number of integer registers required.

2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/i386/i386.md: Simplify certain comparisons of
	const_int.

2004-01-21  Andrew Pinski  <apinski@apple.com>

	PR target/13785
	* config/rs6000/rs6000.md (call_value): Force operand
	1 not operand 0 into a register.

2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>

	* cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
	unwind-dw2-fde.h: Update copyright.

2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* pa-protos.h: Update copyright.
	* pa.h: Likewise.
	* pa.md: Likewise.

2004-01-21  Caroline Tice  <ctice@apple.com>

	PR target/12308
	* config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
	flags register.
	(fix_truncdfdi2): Likewise.
	(fix_truncsfdi2): Likewise.
	(*fix_truncdi_1): Likewise.
	(fix_truncxfsi2): Likewise.
	(fix_truncdfsi2): Likewise.
	(fix_truncsfsi2): Likewise.
	(*fix_truncsi_1): Likewise.
	(fix_truncxfhi2): Likewise.
	(fix_truncdfhi2): Likewise.
	(fix_truncsfhi2): Likewise.
	(*fix_trunchi_1): Likewise.

2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>

	* alias.c, basic-block.h, c-common.c, c-common.h,
	c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
	calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
	combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
	cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
	defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
	expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
	genautomata.c, genconditions.c, genemit.c, genflags.c,
	gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
	ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
	langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
	line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
	ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
	rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
	target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
	unwind.h, varray.c, varray.h: Update copyright.

2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/coff.h: Update copyright.
	* config/h8300/elf.h: Likewise.
	* config/h8300/h8300-protos.h: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/h8300.h: Likewise.
	* config/h8300/h8300.md: Likewise.

2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
	ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
	ultrix_unistd): New hacks.
	* fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
	ULTRIX_CONST2_CHECK): Add checks.
	* fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
	* fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
	* fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
	* fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
	* fixinc/tests/base/locale.h: New file.
	* fixinc/fixincl.x: Rebuilt.

2004-01-21  Andreas Jaeger  <aj@suse.de>
	    Michael Matz  <matz@suse.de>

	* doc/extend.texi (Extended Asm): Clarify memory clobber.

2004-01-21  Jakub Jelinek  <jakub@redhat.com>

	* crtstuff.c (frame_dummy, __do_global_ctors_1): Call
	_Jv_RegisterClasses through a function pointer.

2004-01-21  Falk Hueffner  <falk@debian.org>

	PR target/12898
	* config/alpha/alpha.c (alpha_emit_set_const_1): If
	no_new_pseudos, use gen_rtx_SET directly for SImode constants
	which need multiple instructions to emit.

2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>

	* config/m32r/m32r.h (CPP_SPEC): Define.

2004-01-21  Zack Weinberg  <zack@codesourcery.com>

	* c-decl.c (merge_decls): Kill different_binding_level and
	different_tu arguments; simplify throughout.
	(duplicate_decls): Likewise.
	(pushdecl, merge_translation_unit_decls): Update calls to
	duplicate_decls.

2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
	$(SYSTEM_H).
	(print-rtl1.o): Depend on $(SYSTEM_H).

2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>

	PR bootstrap/12730
	* configure.ac: Delete definition and subsitution of docdir.
	Add info, man, srcman and srcinfo to target hooks. Create doc/
	directory.
	* configure: Regenerate.
	* Makefile.in: Don't substitute docdir and delete all references
	throughout.
	(MAKEINFOFLAGS): Define.
	(stmp-docobjdir): Delete.
	(INFOFILES, MANFILES): Define.
	(info): Call lang.info, srcinfo and lang.srcinfo.
	(generated-manpages): Call lang.man, srcman and lang.srcman.
	(srcinfo, srcman): New rules to copy back files to source directory.
	(doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
	(install-man): Revamp rule.
	(clean): Update dvi directory.
	(distclean): Delete TAGS from front end directorys.
	(maintainer-clean): Delete all document files in source directory.

	objc/Make-lang.in (objc.man, objc.info): Dummy entries.
	(objc.srcman, objc.srcinfo): Likewise.

2004-01-20  Bruce Korb  <bkorb@gnu.org>

	* fixinc/inclhack.def(math_exception): bypass only for glibc.
	(matherr_decl): rename & relocate as exception_structure.
	This fix must precede the math_exception fix.

2004-01-20  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_convert): Rename to fold_convert_const.
	(fold_convert_const): Change arguments to take a tree_code,
	a type and the operand/expression to be converted.  Return
	NULL_TREE if no simplification is possible.  Add support for
	FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
	(fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
	Adjust call to fold_convert to match new fold_convert_const.
	Avoid modifying the tree passed to fold in-place.

2004-01-21  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
	* dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
	* doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.

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

	* pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
	* pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
	Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
	(emit_move_sequence): Check scratch_reg first in various if statements.
	Extend source simplification to handle all 64-bit CONST_INTs.
	(pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
	frame size.
	(hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
	frame offset calculations.
	* pa.h (NEW_HP_ASSEMBLER): Add comment.
	(MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
	LEGITIMATE_64BIT_CONST_INT_P): Define.
	(LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
	any CONST_INT as legitimate during and after reload.
	(VAL_32_BITS_P, INT_32_BITS): Define.
	(LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.

2004-01-20  Jan Hubicka  <jh@suse.cz>

	* emit-rtl.c (verify_rtx_sharing, copy_insn_1,
	emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
	containing hard regs are shared.
	(gen_hard_reg_clobber): New function.
	(hard_reg_clobbers): New array.
	* genemit.c (gen_exp): Use gen_hard_reg_clobber.
	(copy_rtx): Do not copy clobbers containing hard regs.
	* rtl.h (gen_hard_reg_clobber): Declare.

2004-01-20  Jan Hubicka  <jh@suse.cz>

	* varray.c:  Include hashtab.h
	(varray_descriptor): New structure.
	(hash_descriptor, eq_descriptor, varray_descriptor,
	print_statistics): New static functions
	(varray_init, varray_grow): Update statistics
	(dump_varray_statistics): New function.
	* varray.h (dump_varray_statistics): Declare.
	* toplev.c (finalize): Call it.
	* Makefile.in (varray.o): Add dependency.

2004-01-20  Jan Hubicka  <jh@suse.cz>

	* cselib.c: Include alloc-pool.h
	(empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
	(elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
	(new_elt_list, new_elt_loc_list, unchain_one_elt_list,
	unchain_one_elt_loc_list_pool, unchain_one_value,
	new_cselib_val): Simplify using allocpool.
	(cselib_init): Initialize allocpools.
	(cselib_finish): Finish allocpools.
	* Makefile.in (cselib.o): Depend on alloc-pool.h

2004-01-20  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_load_call_address): Make the call insn
	use $gp if it could be calling a lazy binding stub.

2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>

	* config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
	(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	* config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
	(PROMOTE_FUNCTION_RETURN): Remove.
	(STRUCT_VALUE): Remove.

2004-01-20  Denis Chertykov  <denisc@overta.ru>

	PR bootstrap/13735
	* config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
	register as pointer after reload.

2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	PR optimization/12440
	* loop.c: Include ggc.h.
	(loop_optimize): Run garbage collector between optimization of loops.
	* Makefile.in (loop.o): Add GGC_H dependency.

2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>

	* gcc/config/rs6000/rs6000.c (function_arg) Handle
	vector register special in function without prototype.
	(function_arg_advance): Vector parameters get always
	GPRs allocated for the linux64 target.

2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
	not TARGET_M32RX_MASK.

2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/13557
	* config/sparc/sparc.c (function_arg): Reorder the cases.

2004-01-19  Per Bothner  <per@bothner.com>

	Move cpp_reader's line_maps field to a shared global.
	* cpphash.h (cpp_reader):  Rename line_maps field to line_table
	and change the type to a pointer rather than a struct.
	* cppinit.c (cpp_push_main_field):  Adjust accordingly.
	* cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
	Likewise.
	* cppfiles.c (validate_pch):  Likewise.
	* cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
	Likewise.
	* cpperror.c (print_location):  Likewise.
	* cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
	* cppinit.c (cpp_create_reader):  Handle new parameter.
	(cpp_destroy):  Don't free line_maps - that's no longer our job.
	* input.h (line_table):  New variable.
	* toplev.c (line_table):  Declare variable.
	(general_init):  Initialize line_table.
	* c-opts.c (c_common_init_options):  Pass line_table to
	cpp_create_reader.
	* fix-header.c (read_scan_file):  New local variable line_table.
	Initialize, and pass it to cpp_create_reader.
	* Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
	(C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.

2004-01-19  Per Bothner  <per@bothner.com>

	Implement a cache for linemap_lookup.
	* line-map.h (struct_line_maps):  Add cache field.
	* line-map.c (linemap_init):  Zero cache field.
	(linemap_add):  Set cache field to offset of newly allocated map.
	(linemap_lookup):  Use and set cache field.

2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>

	PR optimization/13567
	* cse.c (cse_basic_block): Call cse_insn with a non-null
	libcall_insn for the last SET insn of a no-confilict block.

2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in (target_noncanonical, program_transform_name): Use
	immediate define instead of deferred.
	(GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
	PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
	GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
	deferred backquote.

2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
	true unconditionally.
	* c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
	Remove.
	(build_unary_op, build_modify_expr): Don't handle extended
	lvalues.
	(build_component_ref, build_conditional_expr): Call non_lvalue
	instead of pedantic_non_lvalue.
	(build_c_cast): Don't condition use of non_lvalue on pedantic.
	* fold-const.c (fold): Don't check pedantic directly for
	COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
	passed to pedantic_non_lvalue.
	* doc/extend.texi: Remove documentation of extended lvalues.

2004-01-19  Roger Sayle  <roger@eyesopen.com>

	PR optimization/5263
	* simplify-rtx.c (associative_constant_p): Delete.
	(simplify_associative_operation): Rewrite to linearize terms, and
	attempt to simplify new term against both left and right subterms.
	(simplify_binary_operation): Call swap_commutative_operands_p on
	op0 and op1, not trueop0 and trueop1.  Move the initialization of
	trueop0 and trueop1 down to where first needed.
	(simplify_relational_operation): Likewise.
	* rtlanal.c (commutative_operand_precedence): Also order constant
	operands using avoid_constant_pool_reference.

2004-01-19  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
	don't check memory mode.
	(unaligned_memory_operand): Likewise.
	(reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
	abort for op0 not MEM.

	* config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
	is not a reg, copy to a scratch first.
	(aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
	unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
	unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
	(reload_inqi, reload_inhi): Fix mode of op0.
	(reload_inqi_help, reload_inhi_help, reload_outqi_help,
	reload_outhi_help): Likewise.  Use define_insn_and_split.

	* config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
	as well as $29 dead.

2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
	"tls_object" for thread-local objects.
	* config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
	"#tls" for thread-local sections.
	* configure.ac (thread-local checks): Specify --fatal-warnings in
	every binutils-specific checks.  For sparc*-*-*, test whether the
	OS is Solaris and the tools are native and act accordingly.
	* configure: Rebuild.

2004-01-19  Jeff Law  <law@redhat.com>

	* contrib.texi: Update Paolo Carlini's entry.  New entries for
	Jerry Quinn and Petur Runolfsson.

2004-01-19  Roger Sayle  <roger@eyesopen.com>

	* config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
	size, don't use the larger zero-extending loads.

2004-01-19  Richard Henderson  <rth@redhat.com>

	* alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
	* alpha.md (UNSPEC_NT_LDA): Remove.
	(UNSPEC_CVTLQ, cvtlq): New.
	(extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
	(extendsidi2_fix): Remove.
	(extendsidi2 splitter): Use cvtlq.
	(extendsidi2 fp peepholes): Remove.
	(cvtql): Use SFmode instead of SImode.
	(fix_trunc?fsi): Update to match.
	(floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
	(movsi): Rename from movsi_nofix, remove f alternatives.
	(movsi_nt_vms): Similarly.
	(movsi_fix, movsi_nt_vms_fix): Remove.
	(nt_lda): Remove.
	* alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.

2004-01-19  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (cgraph_remove_node): Fix removal from linked list.
	* cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
	list.
	(cgraph_remove_unreachable_nodes): New function
	(cgraph_decide_inlining_of_small_function): Fix pasto.
	(cgraph_decide_inlining_incrementally): Fix pasto.
	(cgrpah_decide_inlining): Likewise; remove unreachable nodes.

2004-01-19  Steven Bosscher  <stevenb@suse.de>

	* gengtype.c (header_file): Make it static.
	(write_types_process_field, write_enum_defn): Minor whitespace fixes.
	* gengtype.h (header_file): No longer extern.

2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>

	* defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
	* expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
	* stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.

2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>

	* stmt.c (HAVE_casesi): Define it not already defined.
	(HAVE_tablejump): Likewise.
	(expand_end_case_type): Resort to the binary tree method if
	neither casesi or tablejump is available.

2004-01-18  Daniel Jacobowitz  <drow@mvista.com>

	* final.c (final_scan_insn): Make non-static again.
	* output.h (final_scan_insn): Re-add prototype.
	* config/arc/arc.c (arc_output_function_epilogue): Add NULL
	to final_scan_insn call.
	* config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
	* config/mips/mips.c (mips_output_conditional_branch): Likewise.
	* config/pa/pa.c (output_lbranch, output_call): Likewise.
	* config/sh/sh.c (print_slot): Likewise.
	* config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
	(output_sibcall, sparc_flat_function_epilogue): Likewise.

2004-01-18  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (try_redirect_by_replacing_jump): Declare.
	* cfgcleanup.c (try_optimize_cfg): Use it.
	* cfgrtl.c (try_redirect_by_replacing_jump): Export.
	(rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
	Kill hack.
	(cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.

	Revert:
	2004-01-16  Geoffrey Keating  <geoffk@apple.com>

		* cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
		even after reload, just don't remove the actual jump tables.

2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.

2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>

	* defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
	the size of a pointer in bytes.

2004-01-18  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
	live "next" variable, which could lead to an infinite loop.

2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
	block.

	* config/rs6000/rs6000.c (rs6000_special_round_type_align):
	Check for NULL in the chain and remove repeated code.

2004-01-18  Jan Hubicka  <jh@suse.cz>

	* coverage.c (checksum_string): Rename to ...
	(coverage_checksum_string): ... this one, Use crc32_string; recognize
	names containing random number and zero the number out in order to get
	match.

2004-01-18  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_got_alias_set): Mark for PCH.

2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
	doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
	doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
	doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
	doc/trouble.texi: Remove trailing whitespace.

2004-01-18  Richard Sandiford  <rsandifo@redhat.com>

	PR target/7618
	* config/mips/mips.c: Include cfglayout.h.
	(TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
	(mips_unspec_offset_high): Add temporary register argument.
	(mips_load_call_address): New function, split out from...
	(mips_expand_call): ...here.
	(mips_output_cplocal): New function.
	(mips_output_function_prologue, mips_output_function_epilogue): Use it.
	(mips_emit_loadgp): New function, split out from...
	(mips_expand_prologue): ...here.
	(mips_output_mi_thunk): New function.

2004-01-17  Bernardo Innocenti  <bernie@develer.com>

	* longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
	mcpu32): Remove redundant checks for implied target predefines.

2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/rs6000.c (rs6000_special_round_type_align):
	Return type is unsigned int not int.
	* config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
	Likewise.

2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
	doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
	"GNU/Linux" and "Microsoft Windows" terminology.

2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
	doc/cppopts.texi, doc/extend.texi, doc/install.texi,
	doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
	doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
	@smallexample instead of @example.

2004-01-17  Ziemowit Laski  <zlaski@apple.com>

	* objc/objc-act.c (build_objc_method_call): Use target
	hooks instead of macros to determine if ..._stret
	dispatchers should be used (NeXT runtime only).

2004-01-17  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (expand_builtin_expect_jump): Fix mistake in my
	last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
	(emit_call_insn_before_sameloc, emit_insn_after_sameloc)
	(emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
	macros.
	* reload1.c (emit_reload_insns): Use them.
	* emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
	(emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
	for NULL PATTERN.

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
	(final_scan_insn): Update to take an additional SEEN argument.  Emit
	a line note after the prologue.  Make static.
	(line_note_exists): Remove.
	(final): Don't initialize line_note_exists.  Update call to
	final_scan_insn.
	* output.h (final_scan_insn): Remove prologue.
	* function.c (set_insn_locators): Update comment.
	(thread_prologue_and_epilogue_insns): Add a comment.

2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>

	PR target/10781
	* config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
	Prototype.
	* config/rs6000/rs6000.c (rs6000_special_round_type_align):
	New function.
	* config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
	* config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
	* config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.

2004-01-17  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
	commit.

	* toplev.c (HAVE_conditional_execution): Provide default.
	(rest_of_handle_reorder_blocks): For conditional_execution target
	update liveness once after all transformations
	(rest_of_compilation): Do crossjumping before ce3.

2004-01-17  Geoffrey Keating  <geoffk@apple.com>

	* alias.c (new_alias_set): Mark last_alias_set for PCH.
	(get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
	for PCH.
	(get_frame_alias_set): Likewise, except rename it to 'frame_set'.
	* config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
	(get_TOC_alias_set): Mark 'set' for PCH.

2004-01-16  Geoffrey Keating  <geoffk@apple.com>

	* cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
	even after reload, just don't remove the actual jump tables.

2004-01-17  J. Brobecker  <brobecker@gnat.com>

	* dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
	Remove checks for is_ada() and TREE_UNSIGNED.
	(subrange_type_die): Emit a byte_size attribute if the subrange
	type size is different from the base type size.
	(modified_type_die): Replace call to is_ada_subrange_type() by
	call to is_subrange_type().

2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/sh/sh.c: Include ggc.h.

2004-01-16  Geoffrey Keating  <geoffk@apple.com>

	* Makefile.in (MD5_H): New.
	(fold-const.o): Depend on md5.h.
	(dwarf2out.o): Likewise.
	(cppfiles.o): Likewise.
	* cppfiles.c: Include md5.h.
	(should_stack_file): Check against list read from PCH file.
	(struct pchf_data): New.
	(pchf): New variable.
	(struct pchf_adder_info): New.
	(pchf_adder): New.
	(pchf_save_compare): New.
	(_cpp_save_file_entries): New.
	(_cpp_read_file_entries): New.
	(struct pchf_compare_data): New.
	(pchf_compare): New.
	(check_file_against_entries): New.
	* cpphash.h (_cpp_save_file_entries): Prototype.
	(_cpp_read_file_entries): Prototype.
	* cpppch.c (cpp_write_pch_state): Write the list of headers.
	(cpp_read_state): Read the list of headers.

2004-01-17  Jan Hubicka  <jh@suse.cz>

	* c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
	builtin_expect specially.
	* params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
	(PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
	* invoke.texi (max-inline-insns-single): Set to 100.
	(large-function-insns): Set to 3000.

2004-01-16  Eric Christopher  <echristo@redhat.com>
	    Chandrakala Chavva <cchavva@redhat.com>

	* cppcharset.c (one_iso88591_to_utf8): New function.
	(convert_iso88591_utf8): Ditto. Use.
	(conversion_tab): Use.
	(_cpp_input_to_utf8): New function.
	(_cpp_init_iconv_buffer): Ditto.
	(_cpp_close_iconv_buffer): Ditto.
	* cpphash.h: Prototype new functions.
	(cpp_buffer): Add input_cset_desc.
	* cppinit.c: Add input_charset default.
	* cpplib.c (cpp_push_buffer): Support init and
	close of iconv.
	* cpplib.h (cpp_options): Add input_charset.

2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (ASM_OUTPUT_SECTION_NAME): Poison.
	* config/alpha/unicosmk.h: Remove a commented-out definition
	of ASM_OUTPUT_SECTION_NAME.
	* config/stormy16/stormy16.h: Likewise.

2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
	(alpha___extern_prefix_sys_stat): ... this.
	Apply to <sys/mount.h>, too.
	Tweak to match more variations.
	* fixinc/tests/base/sys/stat.h: Adapt for new hackname.

	* fixinc/inclhack.def (alpha___extern_prefix,
	alpha___extern_prefix_standards): New hacks to obey
	__PRAGMA_EXTERN_PREFIX.
	* fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
	test.
	* fixinc/tests/base/standards.h: Likewise.

	* fixincl/inclhack.def (alpha_pthread): Tweak to match more
	variations.
	New testcase.
	* fixinc/tests/base/pthread.h: Handle it.

	* fixincl/inclhack.def (bad_lval): Sort file list.
	Add many missing files up to Tru64 UNIX V5.1B.
	* gcc/fixinc/tests/base/libgen.h: Renamed to ...
	* gcc/fixinc/tests/base/dirent.h: ... this to match new file list
	order.

	* fixinc/fixincl.x: Regenerate.

2004-01-16  Mark Mitchell  <mark@codesourcery.com>

	* version.c (version_string): Change to 3.5.0.
	* doc/include/gcc-common.texi (version-GCC): Likewise.

2004-01-16  Jan Hubicka  <jh@suse.cz>

	* i386.md (load_tp_di): Fix pasto.

	PR opt/13608
	* i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.

	* c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
	pp_c_character_constant, pp_c_floating_constant,
	pp_c_additive_expression, pp_c_shift_expression,
	pp_c_equality_expression, pp_c_and_expression,
	pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
	pp_c_logical_and_expression): Remove inline modifier.
	* dwarf2out.c (get_AT): Likewise.
	* et-forest.c (et_splay): Likewise.
	* ra.h (ra_alloc, ra_calloc): Likewise

2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>

	* config/frv/frv-protos.h: Fix comment formatting.
	* config/frv/frv.c: Likewise.
	* config/frv/frv.h: Likewise.
	* config/frv/frv.md: Likewise.
	* config/frv/frvbegin.c: Likewise.
	* config/frv/frvend.c: Likewise.

2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
	* doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
	LINKER_DOES_NOT_WORK_WITH_DWARF2.
	(LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.

2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>

	PR 11864
	* postreload.c (reload_cse_simplify_operands): Don't remove
	implicit extension from LOAD_EXTEND_OP.

2004-01-16  Jan Hubicka  <jh@suse.cz>

	PR opt/11350
	* cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
	after reload.
	* cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
	rtl_try_redirect_by_replacing_branch): Likewise.

2004-01-15  Geoffrey Keating  <geoffk@apple.com>

	PR pch/13689
	* alias.c (struct alias_set_entry): Mark for GC.
	(alias_sets): Make static, mark for GC.
	(record_alias_subset): Use GC to allocate alias structures.
	* varray.c (element): Make generic varrays GCed.

	PR pch/13361
	* c-typeck.c (constructor_asmspec): Delete.
	(struct initializer_stack): Delete field 'asmspec'.
	(start_init): Delete saving of asmspec.
	(finish_init): Don't update constructor_asmspec.
	* dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
	* stmt.c (expand_asm): Duplicate strings from tree.
	(expand_asm_operands): Likewise.
	* tree.c (tree_size): Update computation of size of STRING_CST.
	(make_node): Don't make STRING_CST nodes.
	(build_string): Allocate string with tree node.
	* tree.def (STRING_CST): Update comment.
	* tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
	(tree_string): Place contents of string in tree node.
	* config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
	from tree.

	* config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
	altivec operands.

2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* c-common.h: Fix comment formatting.
	* c-cppbuiltin.c: Likewise.
	* c-pragma.c: Likewise.
	* calls.c: Likewise.
	* collect2.c: Likewise.
	* cppcharset.c: Likewise.
	* cpptrad.c: Likewise.
	* dbxout.c: Likewise.
	* defaults.h: Likewise.
	* dwarf2out.c: Likewise.
	* fold-const.c: Likewise.
	* genautomata.c: Likewise.
	* genconditions.c: Likewise.
	* genflags.c: Likewise.
	* gengtype.c: Likewise.
	* integrate.c: Likewise.
	* loop.c: Likewise.
	* predict.c: Likewise.
	* sdbout.c: Likewise.

2004-01-15  Zack Weinberg  <zack@codesourcery.com>

	* config/ia64/ia64.md (*movti_internal): C output template
	extracted to ia64.c.
	(*movti_internal_reg): Delete.
	(reload_inti, reload_outti): Use the correct mode on operand 2
	in the first place, don't fix it up in the output template.
	(movtf, reload_ointf, reload_outtf): New expanders.
	(*movtf_internal): New define_insn_and_split.
	* config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
	make static; do not hand TFmode CONST_DOUBLEs to split_double.
	(ia64_split_tmode_move): New function, body mostly pulled
	from ia64.md:*movti_internal.
	(ia64_function_arg_words): New function, extracted common
	logic from ia64_function_arg et seq.
	(ia64_function_arg_offset): Likewise.  Handle correctly the
	case of a scalar quantity 16 bytes wide with only 8-byte alignment.
	(ia64_function_arg, ia64_function_arg_partial_nregs)
	(ia64_function_arg_advance): Use ia64_function_arg_words and
	ia64_function_arg_offset.
	(ia64_function_value): TCmode does not go in float regs.
	(ia64_secondary_reload_class): Also handle TFmode.
	* config/ia64/ia64-protos.h: Remove prototype for
	ia64_split_timode; add prototype for ia64_split_tmode_move.

2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in (MAINT): Make it an immediate assignment.

2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r.md: Remove useless calls to gen_lowpart.

2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/coff.h: Replace Hitachi with Renesas.
	* config/h8300/elf.h: Likewise.
	* config/h8300/h8300-protos.h: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/h8300.h: Likewise.
	* config/h8300/h8300.md: Likewise.
	* config/h8300/lib1funcs.asm: Likewise.

2004-01-15  Andrew Pinski  <apinski@apple.com>

	* config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
	around it.

2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_return_in_memory): New.
	(TARGET_STRUCT_VALUE_RTX): Likewise.
	(TARGET_RETURN_IN_MEMORY): Likewise.
	* config/h8300/h8300.h (STRUCT_VALUE): Remove.
	(RETURN_IN_MEMORY): Likewise.

2004-01-15  Richard Earnshaw  <rearnsha@arm.com>

	PR optimization/13375
	* gcse.c (handle_avail_expr): Just return if the source is not a
	single set.

2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
	    Daniel Jacobowitz  <drow@mvista.com>

	* arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
	(EQUIV): Define.
	(ARM_FUNC_ALIAS): New macro.
	* arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
	* arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.

2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR optimization/12372
	* calls.c (expand_call): Add call_fusage data for stack arguments in
	constant calls.

2004-01-15  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
	(rs6000_elf_declare_function_name): Formatting.
	* config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.

2004-01-15  Jan Hubicka  <jh@suse.cz>

	PR bootstrap/13692
	* sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
	previous patch.

2004-01-15  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
	integer regs of the same call-savedness.

2004-01-15  Andreas Schwab  <schwab@suse.de>

	PR bootstrap/13562
	* config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
	status for NOTB/NOTW/NEGW methods.

2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/invoke.texi: Update dump file names.  Fix a typo.

2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c (expand_builtin_va_end): Don't use
	EXPAND_BUILTIN_VA_END.
	* system.h (EXPAND_BUILTIN_VA_END): Poison.
	* config/d30v/d30v.h: Remove a commented-out definition of
	EXPAND_BUILTIN_VA_END.
	* config/stormy16/stormy16.h: Likewise.

2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
	* targhooks.c (default_struct_value_rtx): Don't use
	STRUCT_VALUE_INCOMING_REGNUM.

2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>

	PR bootstrap/12744
	* configure.in: Revamp enable-generated-files-in-srcdir rule to define
	GENINSRC and not parsedir.  Define srcextra as a langhook.
	* configure: Regenerate.
	* Makefile.in: Suppress default .l.c rule.  Don't substitute
	parsedir and delete all references throughout.  Conditionally define
	rule for srcextra dependent on GENINSRC.
	(stmp-docobjdir): Delete.
	(c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
	(srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
	and gengtype-yacc.h back to source directory.
	(maintainer-clean): Delete all parse files in source directory.
	(distclean): Delete generated files.

	* objc/Make-lang.in (objc-parse.o): Use implicit build rule.
	(objc-parse.c, objc-parse.y): Don't use parsedir.
	(objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
	directory if requested.
	(po-generated): Don't use parsedir.
	(objc.maintainer-clean): Delete above files from source directory.

2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/tm.texi (FUNCTION_VALUE): Fix a typo.

2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/tm.texi: Replace RETURN_IN_MEMORY with
	TARGET_RETURN_IN_MEMORY.

2004-01-15  Jan Hubicka  <jh@suse.cz>

	* builtins.c (std_expand_builtin_va_arg): Align operand when needed.
	* i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
	functions accepting SSE arguments
	(function_arg): Warn only when asked to warn.
	* i386.h (ix86_args): Add warn_sse/warn_mmx fiels.

2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-parse.in (stmts_and_decls): Make label at end of compound
	statement a hard error.

2004-01-14  Jan Hubicka  <jh@suse.cz>

	* cgraph.c (create_edge): Use local.redefined_extern_inline.
	* cgraph.h (cgraph_local_info): Sort fields by size; add
	redefined_extern_inline
	(cgraph_global_info): Sort fields by size.
	(cgraph_node): Likewise.
	* cgraphunit.c (cgraph_finalize_function): Se
	local.redefined_extern_inline on redefinition.
	(cgraph_analyze_function): Use it; fix formating.

2004-01-14  Jan Hubicka  <jh@suse.cz>

	PR c++/10776
	* sched-deps.c (trye_dependency_cache, anti_dependency_cache,
	outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
	bitmaps
	(cache_size): New variable
	(add_dependence): Update use; canonize early memory locations
	(sched_analyze_1): Likewise.
	(sched_analyze_2): Likewise.
	(init_dependency_caches): Initialize bitmaps.
	(free_dependency_caches): Free bitmaps

2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
	targetm.calls.strict_argument_naming().
	* target.h: Likewise.

2004-01-14  Richard Henderson  <rth@redhat.com>

	PR debug/13231
	* dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
	instructions.

2004-01-14  Richard Henderson  <rth@redhat.com>

	PR c++/12491
	* except.c (struct eh_region): Add u.fixup.resolved.
	(resolve_one_fixup_region): Split out from ...
	(resolve_fixup_regions): ... here.

2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.

2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* config/alpha/alpha.h (STRUCT_VALUE): Remove.
	* config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
	(STRUCT_VALUE): Remove.

2004-01-14  Steven Bosscher  <stevenb@suse.de>

	* system.h: Poison PROMOTED_MODE
	* integrate.c (expand_inline_function): Don't mention the
	PROMOTED_MODE.
	* loop.c (update_giv_derive): Same.
	* tree.h (DECL_RTL): Same.

2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>

	PR target/9365
	* sh.c (gen_block_redirect): Add special handling of RETURN.
	(gen_far_branch) Don't call gen_stuff_delay_slot if there is no
	far branch target (i.e. it's a return).

2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* regrename.c (find_oldest_value_reg): Fix a warning.

2004-01-14  Richard Earnshaw  <rearnsha@arm.com>

	PR bootstrap/12527
	* config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
	Move linux-gas.h and linux-elf.h before aout.h.
	* arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
	* arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.

2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
	(CONST_INT, VOIDmode, ...).

2004-01-14  Richard Earnshaw  <rearnsha@arm.com>

	* regrename.c (find_oldest_value_reg): If the replacement uses
	multiple hard registers, check that all of them are in CLASS.

2004-01-14  Jan Hubicka  <jh@suse.cz>

	* alias.c (get_alias_set):  Initialize alias set to 0 when subset is
	impossible.

2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in: Define MAINT from --enable-maintainer-mode.

2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>

	* gcc/config/rs6000/rs6000.c (rs6000_stack_info)
	Calculate always vrsave_mask if TARGET_ALTIVEC.
	(rs6000_emit_prologue): Emit code for vrsave
	only if TARGET_ALTIVEC_VRSAVE.
	(rs6000_emit_epilogue): Likewise.

2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* config/sparc/sparc.md (tie_add32): Fix pasto.
	(tie_add64): Likewise.

2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* config/i386/i386.md (*addqi_1_slp): Do not access operands[2].

2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>

	* config/iq2000/iq2000-protos.h: Fix comment formatting.
	* config/iq2000/iq2000.c: Likewise.
	* config/iq2000/iq2000.md: Likewise.

2004-01-14  J. Brobecker  <brobecker@gnat.com>

	* dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
	(subrange_type_die): Add handle for nameless subrange types.

2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Replace do_movsi with
	h8300_expand_movsi.
	* config/h8300/h8300.c (do_movsi): Change to
	h8300_expand_movsi.
	* config/h8300/h8300.md (movsi): Replace do_movsi with
	h8300_expand_movsi.
	(movsf): Likewise.

2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (dosize): Change to
	h8300_emit_stack_adjustment.  Update callers.

2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (movstrictqi): Add an alternative with
	the source being post_inc.  Tighten the predicate for the
	destination to register_operand.
	(movstricthi): Likewise.

2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
	* varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
	* doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.

2004-01-14  Jan Hubicka  <jh@suse.cz>

	Partial fix PR c++/12850
	* cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
	at zero nest level.

2004-01-13  Bernardo Innocenti  <bernie@develer.com>

	* config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
	pseudo-register.

2004-01-13  Devang Patel <dpatel@apple.com

	PR debug/7078
	* dbxout.c (dbxout_symbol_name): Emit mangled names for
	NAMESPACE_DECL memebers.

2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>

	PR c++/12709
	* c-common.c (finish_fname_decls): Use the chain only if the
	tree is an expr_stmt.

2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>

	* rtl.def: Add comment about new option in automata_option.

	* genautomata.c (PROGRESS_OPTION): New macro.
	(progress_flag): New global variable.
	(gen_automata_option): Process `progress'.
	(transform_insn_regexps, check_unit_distributions_to_automata,
	make_automaton, NDFA_to_DFA, build_automaton, create_automata,
	expand_automata, write_automata): Print about the progress only if
	progress_flag.  Remove fflush.
	(initiate_automaton_gen): Process command line flag `-progress'.

	* doc/md.texi: Describe the new option.

2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* cfg.c (dump_bb): Dump entry edges.

2004-01-13  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (thumb_legitimate_address_p): Only allow constant pool
	references from SImode.
	* arm.md (thumb_movhi_insn): Don't allow minipool references.

2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (TEXT_SECTION): Poison.
	* varasm.c (text_section): Don't use TEXT_SECTION.
	* config/sh/sh.c (sh_file_start): Fix a comment typo.
	* doc/tm.texi (TEXT_SECTION): Remove.

2004-01-13  Ben Elliston  <bje@wasabisystems.com>

	* doc/rtl.texi (Vector Operations): Remove defunct vec_const item.

2004-01-12  James E Wilson  <wilson@specifixinc.com>

	* unwind-libunwind.c: Delete.

2004-01-12  Zack Weinberg  <zack@codesourcery.com>

	PR 13656
	* c-decl.c (diagnose_mismatched_decls): Whenever newtype or
	oldtype is set, set *newtypep or *oldtypep too.  Do not set
	them at the very end.
	(validate_proto_after_old_defn): Restructure for comprehensibility;
	make error messages clearer.

2004-01-12  Zack Weinberg  <zack@codesourcery.com>

	* varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
	(VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
	* varray.c: No need to prototype error.
	(varray_check_failed): Wrap long string onto two lines.
	(varray_underflow): New function.

2004-01-13  Steven Bosscher  <stevenb@suse.de>

	PR c++/13376
	* function.h (struct function): Kill `name' field.
	(current_function_name): Make it an extern function.
	* function.c (current_function_name): New function.
	* graph.c: Update all uses of current_function_name.
	* gcse.c: Likewise.
	* config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
	config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
	* config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
	instead of a strcmp with "main".

2004-01-13  Jan Hubicka  <jh@suse.cz>

	* c-decl.c (diagnose_mismatched_decls):  Fix warning calls.

	* cgraphunit.c (cgraph_optimize_function):  Always do
	optimize_inline_calls when there is always_inline callee.
	(cgraph_decide_inlining): Fix formating.
	* tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
	functions.
	(expand_call_inline): Likewise.
	* toplev.h (sorry): Fix prototype.

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

	* builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
	conditional jumps that drop through to unconditional jumps or the
	end of the sequence.

2004-01-13  Jan Hubicka  <jh@suse.cz>

	* alias.c (new_alias_set): Construct the alias_set varray.
	(init_alias_once): Don't do it here.

2004-01-12  Marc Espie <espie@openbsd.org>

	* system.h: handle YYBYACC like YYBISON.

2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>

	PR target/10847
	* config.gcc: No longer includes conflicting header sparc/sol2.h when
	building on sparc64-*-openbsd*.

2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>

	PR debug/13539
	* dbxout.c (dbxout_type): Protected inheritance is not
	private but protected.

2004-01-12  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.

2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>

	PR optimization/12508.
	* combine.c (try_combine): Remove a dead set in a parallel
	even if its destination is a subreg.

	Revert:
	2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
	* combine.c (simplify_set): Don't move a subreg in SET_SRC to
	SET_DEST if WORD_REGISTER_OPERATIONS is not defined.

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

	* real.c: Update copyright date.
	* emit-rtl.c: Likewise.
	* rtl.h: Likewise.
	* dwarf2out.c: Likewise.
	* config/rs6000/darwin-ldouble.c: Likewise.
	* config/rs6000/rs6000.md: Likewise.

2004-01-12  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
	TFmode to SImode libfuncs.

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

	PR middle-end/11397
	* varasm.c (assemble_alias): Remove weak aliases from weak_decls.

2004-01-12  Jan Hubicka  <jh@suse.cz>

	PR opt/12826
	* loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
	stored.

	PR opt/12863
	* cfgcleanup.c (label_is_jump_target_p): Move to...
	* rtlanal.c (label_is_jump_target_p): ... here.
	* cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
	edges unified with branch edges.

2004-01-12  Richard Earnshaw  <rearnsha@arm.com>

	* simplify-rtx.c (simplify_immed_subreg): Correctly extract the
	high word of an integral CONST_DOUBLE.

2004-01-12  Paul Brook  <paul@codesourcery.com>

	* simplify-rtx.c (simplify_plus_minus): Always generate canonical form.

2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>

	PR target/13585
	* sh-protos.h (check_use_sfunc_addr): Declare.
	* sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
	* sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.

2004-01-12  Jan Hubicka  <jh@suse.cz>

	* alias.c:  Invlude varray.h
	(alias_sets): Turn into varray.
	(get_alias_set_entry): Use VARRAY; mark inline.
	(mems_in_disjoint_alias_sets_p): Mark inline.
	(record_alias_subset): Use varray.
	(init_alias_once): Initialize varray.
	(new_alias_set): Grow array.
	* varray.c: Make VARRAY_GENERIC_PTR non GTYized.

2004-01-12  Jan Hubicka  <jh@suse.cz>

	Partial fix for PR opt/10776 II
	* cselib.c: Include params.h
	(cselib_invalidate_mem):  Limit amount of nonconflicting memory
	locations.
	* params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
	* Makefile.in (cselib.o): Depend on params.h

2004-01-12  Richard Sandiford  <rsandifo@redhat.com>

	* combine.c (combine_simplify_rtx): Don't pass VOIDmode to
	simplify_unary_operation if the operand has a known mode.

2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>

	PR target/13534
	* gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
	predicate to handle 'ld' conform addresses.
	* gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
	contraint.
	(EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
	are memory contraints.
	* gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
	New prototype.
	* gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
	Change 'o' to 'Y' constraint.
	(*movdf_softfloat64): Ditto.

2004-01-12  Bernardo Innocenti  <bernie@develer.com>

	* gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
	brace-enclosed syntax in all C output statements.

2004-01-12  David Edelsohn  <edelsohn@gnu.org>

	PR target/13401
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
	Objective-C language type value is 14.

2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>

	PR c/12148
	* config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
	`int' in a number of places to make sure we always have a SImode
	and not a HImode.  Add a 'L' suffix to a number of constants.

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

	* pa.c: Don't include obstack.h.

	* pa.md: Correct constraint in pattern for loading PIC label address.

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

	* config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
	 before defining.

2004-01-11  Steven Bosscher  <stevenb@suse.de>

	PR fortran/9972
	* toplev.c (rest_of_handle_inline): Also consider functions
	for deferral if the language is GNU F77.

2004-01-11  Zack Weinberg  <zack@codesourcery.com>

	* c-decl.c (diagnose_arglist_conflict): Add missing space to
	diagnostic messages.

2004-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/13392
	* builtins.c (expand_builtin_expect_jump): Handle conditional jumps
	to drop through label.  Don't fall back to SCC even when conditional
	jump has not been found.

2004-01-11  Jan Hubicka  <jh@suse.cz>

	* invoke.texi: Fix syntax error in previous patch.

	Partial fix for PR opt/10776
	* Makefile.in (reload.o): Include param.h
	* params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
	* reload.c: Include params.h.
	(find_equiv_reg): Work limiting check.
	* invoke.texi: Document.

2004-01-11  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_symbolic_constant_p): Don't allow
	out-of-bounds accesses to string constants.  Simplify mips16
	case accordingly.

2004-01-11  Richard Sandiford  <rsandifo@redhat.com>

	PR optimization/13469
	* toplev.c (rest_of_compilation): Call purge_all_dead_edges after
	reload_cse_regs (-fnon-call-exceptions only).

2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mcore/lib1.asm: Fix comment formatting.
	* config/mcore/mcore-elf.h: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mcore/mcore.h: Likewise.
	* config/mcore/mcore.md: Likewise.

2004-01-10  Zack Weinberg  <zack@codesourcery.com>

	* c-decl.c (duplicate_decls): Break apart into...
	(diagnose_arglist_conflict, validate_proto_after_old_defn)
	(locate_old_defn, diagnose_mismatched_decls, merge_decls):
	... these new functions.  Restructure for comprehensibility.
	Remove various archaic special cases.  Always report the
	location of the previous declaration when a diagnostic is issued.
	(redeclaration_error_message): Fold into diagnose_mismatched_decls.
	(match_builtin_function_types): Delete unnecessary forward declaration.

2004-01-10  Zack Weinberg  <zack@codesourcery.com>

	* genautomata.c (make_automaton, NDFA_to_DFA):
	Print progress bars with '.' characters instead of '*'.
	(build_automaton): Change notes to match.

2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r.md: Use define_constants for unspec and
	unspec_volatile.

2004-01-10  Jan Hubicka  <jh@suse.cz>

	PR opt/11635
	* expr.c (expand_expr_real):  More curefully expand union casts.

2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r.md (flush_icache): Use 1 for
	unspec_volatile.

2004-01-10  David Edelsohn  <edelsohn@gnu.org>
	    James E Wilson  <wilson@specifixinc.com>

	PR debug/12860
	* dbxout.c (dbxout_symbol): Remove initialization of
	current_sym_code, current_sym_value, and current_sym_addr.
	(dbxout_symbol_location): Same.
	(dbxout_prepare_symbol): Zero current_sym_code,
	current_sym_value, and current_sym_addr.

2004-01-10  Richard Sandiford  <rsandifo@redhat.com>

	* tree.c (get_unwidened): Reorder conditions so that the null pointer
	check is done first.

2004-01-09  Eric Christopher  <echristo@redhat.com>

	* toplev.c (rest_of_handle_cfg): Add reg_scan pass
	if we're running mark_constant_function.

2004-01-09  Jeff Bailey  <jbailey@nisa.net>

	PR target/12561
	* config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.

2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>

	PR debug/11231
	* dbxout.c (dbxout_type_fields): Return if any item is
	error_mark_node or the type is error_mark_node.

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

	* config/rs6000/darwin-ldouble.c: Add big comment explaining
	exactly what is expected as a 'long double'.
	(_xlqadd): When a value to be returned is representable as a
	'double', just return it directly, do not construct it using a union.
	Also, correct final fixup.
	(_xlqmul): Likewise.
	(_xlqdiv): Likewise.
	* real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.

	* config/rs6000/rs6000.md (fix_trunctfdi2): Delete.

2004-01-09  Richard Henderson  <rth@redhat.com>

	* recog.c (constrain_operands): Validate mem operands.

2004-01-09   James E Wilson  <wilson@specifixinc.com>

	* gcc.c (init_spec): Remove -lunwind from shared case.
	* conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.

2004-01-09  Steve Ellcey  <sje@cup.hp.com>

	* configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
	* configure: Regenerate

2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c/11234
	* c-typeck.c (build_c_cast): If pedantic, warn for conversions
	between function and object pointers.
	(digest_init): When comparing a pointer to function type to the
	target type, only apply TREE_TYPE once to the pointer to function
	type.
	* except.c (for_each_eh_label_1): Treat data as a pointer to a
	function pointer rather than casting it to a function pointer.
	(for_each_eh_label): Update caller.
	* recog.h (struct insn_data): Use a struct or union for output.
	* genoutput.c (output_insn_data): Update.
	* final.c (get_insn_template): Update.

2004-01-09  Mark Mitchell  <mark@codesourcery.com>

	* expr.h (expand_expr): Make it a macro, not a function.
	(expand_expr_real): New function.
	* expr.c (store_expr): Adjust logic for deciding whether or not to
	copy the value returned by expand_expr.
	(expand_expr): Rename to ...
	(expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
	calls to language hooks.
	* c-common.h (c_expand_expr): Adjust prototype.
	* c-common.c (c_expand_expr): Add alt_rtl parameter.
	* langhooks-def.h (lhd_expand_expr): Change prototype.
	* langhooks.c (lhd_expand_expr): Add all_rtl parameter.
	* langhooks.h (lang_hooks): Change type of expand_expr.
	* stmt.c (stmt_status): Add x_last_expr_alt_rtl.
	(last_expr_alt_rtl): Likewise.
	(expand_expr_stmt_value): Set last_expr_alt_rtl.
	(clear_last_expr): Clear it.
	(expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
	(expand_end_bindings): Save and restor last_expr_alt_rtl.
	* tree.def (RTL_EXPR): Give it an additional operand.
	* tree.h (RTL_EXPR_ALT_RTL): New macro.

2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
	* config/m32r/m32r.c (call26_operand): Allow in PIC mode.

2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>

	PR target/13380.
	* config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
	or (ne:SI (reg:CC 17) (const_int 0)).
	Be specific about modes wherever possible.

2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r.c (m32r_expand_block_move): Call
	gen_movestrsi_internal with two more arguments.
	(m32r_output_block_move): Adjust operand numbers.
	Properly update the source and destination pointers.
	* config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
	'r+'.  Change the set detinations to match_operand.

2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>

	* final.c (FIRST_INSN_ADDRESS): Remove.
	(shorten_branches): Don't use FIRST_INSN_ADDRESS.
	* system.h (FIRST_INSN_ADDRESS): Poison.
	* config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
	* config/m32r/m32r-protos.h: Remove the prototype for
	m32r_first_insn_address.
	* config/m32r/m32r.c (m32r_first_insn_address): Remove.
	* config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
	* doc/md.texi (FIRST_INSN_ADDRESS): Likewise.

2004-01-09  J. Brobecker  <brobecker@gnat.com>

	* dwarf2out.c (gen_enumeration_type_die): Return the DIE that
	we just created.
	(is_ada_subrange_type): DIEs for enumeration subtypes should be
	emitted as subrange types too.
	(subrange_type_die): Add handling of enumeration subtypes.

2004-01-08  Richard Henderson  <rth@redhat.com>

	PR opt/12441
	Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
	* i386.c (aligned_operand): Be prepared for SUBREGed registers.
	(ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
	(ix86_address_cost): Be prepared for SUBREGed registers.
	(legitimate_address_p): Accept SUBREGed registers.

2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.in: Rename configure.in to configure.ac
	* doc/sourcebuild.texi: Likewise.
	* configure: Regenerate.
	* config.in: Regenerate.

2004-01-08  Stuart Hastings  <stuart@apple.com>

	* config/i386/i386.md: Typos in MMX/SSE immediate shifts.

2004-01-08  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (cgraph_decide_inlining):  Fix typo.

2004-01-08  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
	(UNSPEC_FIX_TRUNC_TF): New constant.
	(movtf_internal): Make splitter active only when insn is active.
	(extenddftf2): Rewrite to properly load zero into low part.
	(extenddftf2_internal): New.
	(extendsftf2): Rewrite.
	(truncdftf2): Correct length.
	(floatditf2): Delete.
	(fix_trunc_helper): New.
	(fix_trunctfdi2): Use fix_trunc_helper.
	(fix_trunctfsi2): Likewise.fix_trunc
	(fix_trunctfsi2_internal): New.

	* config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
	addresses are legitimate on Darwin even when flag_pic.
	(rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
	non-offsettable addresses for loads of TFmode constants.

2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
	variables in the appropriate bss section.

2004-01-09  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
	target_flags has MASK_POWERPC64 when -m64.
	* config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
	to 620, 630, power3, power4 and rs64a entries.
	* config/rs6000/rs6000.h (MASK_64BIT): Expand comment.

2004-01-08  Richard Sandiford  <rsandifo@redhat.com>

	* simplify-rtx.c (simplify_immed_subreg): Fix construction of
	floating-point constants.

2004-01-08  J. Brobecker  <brobecker@gnat.com>

	* dwarf2out.c (subrange_type_die): Add context_die parameter.
	Create the subrange_type DIE using the given context DIE.
	(modified_type_die): Update call to subrange_type_die.

2004-01-08  Zack Weinberg  <zack@codesourcery.com>

	* dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
	Add multiple-include guard.

2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>

	* gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
	all vector constant loadable by vsplt*.
	(output_vec_const_move): Likewise.

2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c/6024
	* c-typeck.c (comptypes): Only treat enumerated types in the same
	translation unit as compatible with each other when they are the
	same type.
	* doc/extend.texi: Update.

2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c/12165
	* c-decl.c (grokdeclarator): Take type qualifiers of typedefed
	array type from the array element type.

2004-01-07  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
	* config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
	* config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
	(DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
	* config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.

2004-01-06  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
	(DWARF2_DEBUGGING_INFO): Define.
	(PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
	* config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
	* config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
	for irix as.
	(SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
	* config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
	* config/mips/iris5gas.h: Ditto.
	(DBX_DEBUGGING_INFO): Remove.
	(DWARF2_DEBUGGING_INFO): Ditto.
	(MIPS_DEBUGGING_INFO): Ditto.
	(PREFERRED_DEBUGGING_TYPE): Ditto.
	* config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
	(PREFERRED_DEBUGGING_TYPE): Ditto.
	(SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
	* config/mips/elf64.h: Ditto.

2004-01-06  Jan Hubicka  <jh@suse.cz>

	* Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
	(STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.

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

	* config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
	(TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
	* config/rs6000/darwin-ldouble.c: New.

	* emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
	for constants.
	(constant_subword): Delete.
	* rtl.h (constant_subword): Delete prototype.
	(immed_double_const): Is not in varasm.c.
	* simplify-rtx.c (simplify_immed_subreg): New.
	(simplify_subreg): Use simplify_immed_subreg.

	* config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
	than trying to generate RTL directly.
	(fix_trunctfsi2): Use expand_fix rather than trying to generate
	RTL directly.

	* dwarf2out.c (add_const_value_attribute): Remove incorrect comment.

2004-01-06  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
	function into a separate macro.
	(read_only_data_section): Add void argument.
	(private_data_section): Same.
	(read_only_private_data_section): Same.
	(toc_section): Same.

2004-01-06  Jan Hubicka  <jh@suse.cz>

	* invoke.texi:  Remove typo in last change.

	PR target/10301
	* config.gcc: Accept opteron and athlon-64 as variants
	of k8.
	* i386.c (override_options): Likewise.
	* invoke.texi (i386 -mtune): Expand documentation.

2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>

	* alias.c: Fix comment typos.
	* builtins.c: Likewise.
	* cfg.c: Likewise.
	* df.c: Likewise.
	* dominance.c: Likewise.
	* dwarf2out.c: Likewise.
	* emit-rtl.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* fold-const.c: Likewise.
	* gcse.c: Likewise.
	* genattrtab.c: Likewise.
	* genrecog.c: Likewise.
	* gensupport.c: Likewise.
	* ggc-zone.c: Likewise.
	* integrate.c: Likewise.
	* local-alloc.c: Likewise.
	* loop.c: Likewise.
	* recog.c: Likewise.
	* regmove.c: Likewise.
	* reg-stack.c: Likewise.
	* reorg.c: Likewise.
	* rtlanal.c: Likewise.
	* rtl.h: Likewise.
	* sched-ebb.c: Likewise.
	* simplify-rtx.c: Likewise.
	* toplev.c: Likewise.
	* varasm.c: Likewise.

2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/install.texi: Fix typos.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: Likewise.

2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>

	* config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed

2004-01-06  Jan Hubicka  <jh@suse.cz>

	* i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
	(function_arg_advance):  Do not pass aggregates in SSE; deal handling
	of MMX_REGPARM.
	(function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
	add MMX_REGPARM.
	* i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
	(SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
	(MMX_REGPARM_MAX): Similarly for -mmmx.

2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/sh/linux.h: Fix comment formatting.
	* config/sh/netbsd-elf.h: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/sh.h: Likewise.
	* config/sh/vxworks.h: Likewise.

2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>

	* system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
	* toplev.c (output_file_directive): Don't use
	ASM_OUTPUT_MAIN_SOURCE_FILENAME.

2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>

	* toplev.c: Fix broken checkin of 2003-12-30.

2004-01-05  Daniel Berlin  <dberlin@dberlin.org>

	* ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
	(USING_MMAP): We don't support non-mmap.
	(struct alloc_chunk): Steal 1 bit from typecode, use it to mark
	large objects.
	(struct page_entry): Remove bytes_free.
	(struct page_table_chain): Remove.
	(struct globals): Remove page_table member.
	(loookup_page_table_entry): Function deleted.
	(set_page_table_entry): Ditto.
	(ggc_allocated_p): No longer need page table lookups.
	(ggc_marked_p): Ditto.
	(alloc_small_page): Don't care about bytes_free anymore.
	(alloc_large_page): Round up size.
	(ggc_alloc_zone_1): Mark large objects as such, and calculate
	their size the new way.
	Remove page table lookups and setting.
	(ggc_get_size): Calculate large object size the new way.
	(sweep_pages): Redo to account for fact that we no longer have
	bytes_free.
	(ggc_collect): No longer need to reincrement bytes_free.
	(ggc_pch_alloc_object): Handle new large objects properly.
	(ggc_pch_read): Put PCH stuff into it's own uncollected zone.

2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/invoke.texi: Remove a page break.

2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/avr/avr.c (avr_output_function_prologue): Remove an
	extra pair of curly braces.

2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mn10300/mn10300.c: Fix comment formatting.
	* config/mn10300/mn10300.h: Likewise.

2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* tree.h: Update documentation on nothrow_flag.
	* print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
	types.

2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/invoke.texi: Remove traces of dead ports.

2004-01-05  Richard Sandiford  <rsandifo@redhat.com>

	* doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
	option.

2004-01-05  Richard Sandiford  <rsandifo@redhat.com>

	PR target/12945
	* coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
	counter labels.
	* config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
	(mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
	string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
	the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
	(mips_symbol_insns): Don't trust the local/global classification.
	(m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
	(override_options): Make -mabicalls -fno-unit-at-a-time imply
	-mno-explicit-relocs.
	(mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
	between local and global symbols.

2004-01-05  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
	(mips_preferred_reload_class): Declare.
	* config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
	(EXTRA_CONSTRAINT): Update accordingly.
	(PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
	* config/mips/mips.c (mips_dangerous_for_la25_p): New function.
	(mips_preferred_reload_class): New function.  Prefer LEA_REGS if
	mips_dangerous_for_la25_p.
	(mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
	if mips_dangerous_for_la25_p.

2004-01-05  Bernardo Innocenti  <bernie@develer.com>

	* config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
	warning.

2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.ac: Use AC_PROG_CPP_WERROR.
	* configure: Regenerate.

2004-01-04  Zack Weinberg  <zack@codesourcery.com>

	* .cvsignore: Add autom4te.cache.

2004-01-04  Richard Sandiford  <rsandifo@redhat.com>

	* doc/invoke.texi: Revamp documentation of MIPS options.  Remove
	-mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
	-m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
	then architecture options, then ABI options.  General rewording.

2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>

	PR c/3414
	* doc/extend.texi: Clarify definition of malloc attribute.

2004-01-04  Jan Hubicka  <jh@suse.cz>

	* Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
	* cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
	* cgraph.h (cgraph_edge): Replace inline_call by inline_failed
	(cgraph_inline_p): Add extra argument reason.
	* cgraphunit.c: Minor formating fixes.
	cgraph_first_inlined_callee): New functions.
	(record_call_1): Record builtins too.
	(cgraph_analyze_function): Update inline_failed messages.
	(cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
	cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
	(cgraph_check_inline_limits): Likewise; Add argument reason.
	(cgraph_set_inline_failed): New static function.
	(cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
	reasons.
	(cgraph_inline_p): Add new argument reason.
	* tree-inline.c (expand_call_inline):  Update warning.

2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
	with modern equivalents.
	* configure: Regenerate.

	* configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
	* aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
	* configure: Regenerate.

	* doc/install.texi: Note that 'gcc' is now a 2.57 directory.

	* configure.in: Rename to configure.ac.
	* configure.ac: Renamed from configure.in; make minimum necessary
	changes for autoconf 2.5x.
	* aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
	* configure: Regenerate with autoconf 2.57.

2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mips/linux.h: Fix comment formatting.
	* config/mips/mips.c: Likewise.
	* config/mips/mips.h: Likewise.
	* config/mips/mips.md: Likewise.
	* config/mips/netbsd.h: Likewise.
	* config/mips/windiss.h: Likewise.

2004-01-02  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.md (fp constant pool splitter): Reorg suppression
	for sse and 387; add suppression for mmx.

2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>

	* loop.c (loop_optimize): Free all loops_info's mems.

	* c-typeck.c (finish_init): Free spelling_base before
	setting it again.

	* cfgloop.c (flow_loops_find): Always free the sbitmap
	headers.

	* predict.c (estimate_probability): Free bbs after being
	done with it.

2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/mn10300/mn10300.h (PREDICATE_CODES): Add
	const_8bit_operand and call_address_operand.

2004-01-02  Jan Hubicka  <jh@suse.cz>

	* cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
	when there is nothing to inline but warnings are requested.
	(cgraph_decide_inlining):  Fix memory leak.

2004-01-02  Jan Hubicka  <jh@suse.cz>

	* expr.c (store_constructor):  Fix pasto in previous patch.

2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>

	* config/i386/cygming.h: Fix comment formatting.
	* config/i386/djgpp.h: Likewise.
	* config/i386/gthr-win32.c: Likewise.
	* config/i386/i386-interix.h: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i386/openbsd.h: Likewise.
	* config/i386/winnt.c: Likewise.
	* config/i386/xm-mingw32.h: Likewise.

2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
	copyright and last modification dates.

2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>

	* doc/install.texi (Specific): Mention x86_64.

2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>

	* builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
	Call force_operand on plus_constant result.

2004-01-01  Jan Hubicka  <jh@suse.cz>

	* expmed.c (store_bit_field, extract_bit_field): Use new named patterns
	* expr.c (store_constructor): Use vec_init pattern.
	* genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
	* optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
	(vec_set_optab, vec_extract_optab, vec_init_optab): New.
	* i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
	New patterns.
	(sse2_unpc?pd): Fix pattern.
	(sse2_movlpd): Kill.
	(sse2_movsd): Deal with movlpd too.
	* i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
	(ix86_expand_vector_init): New.
	* emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
	* md.texi (vec_set, vec_extract): Document

2003-12-31  Jan Hubicka  <jh@suse.cz>

	PR opt/13473
	* recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
	ASM input operands

	PR opt/12617
	* toplev.c (dump_file_index): Reorder ce3 and bbro.
	(dump_file): Likewise.
	(rest_of_compilation): Likewise.

	PR debug/13367
	* cgraph.c (cgraph_function_possibly_inlined):  Even with
	flag_really_no_inline we inline always_inline functions.
	* cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
	for non-always_inline functions when there is flag_really_no_inline.
	(cgraph_decide_inlining): Limit work done when not inlining.
	(cgraph_decide_inlining_incrementally): Likewise.
	(cgraph_optimize_function): Check whether something got inlined.
	* c-objc-common.c (c_disregard_inline_limits): Do not always inline
	extern inline functions when not inlining.

	* opts.c (decode_options):  Disable crossjumping at -O1
	* invoke.texi (-O1): Document change.

See ChangeLog.10 for earlier changes.
