2002-06-30  Devang Patel  <dpatel@apple.com>

	* objc/objc-act.c (finish_file): Avoid finish_objc() if
	-fsyntax-only.

Fri Jun 28 17:22:37 2002  Denis Chertykov  <denisc@overta.ru>
			  Frank Ch. Eigler  <fche@redhat.com>
			  Matthew Green  <mrg@redhat.com>
			  Richard Henderson <rtl@redhat.com>
			  Dave Hudson  <dave.hudson@ubicom.com>
			  Jeff Johnston  <jjohnstn@redhat.com>
			  Alan Lehotsky <apl@alum.mit.edu>
			  Bernd Schmidt  <bernds@redhat.com>
			  Graham Stott  <grahams@redhat.com>

	* doc/extend.texi: Add ip2k port to description of attribute
	naked.
	* doc/install.texi (Specific): Add ip2k description.
	* doc/install-old.texi (Configurations): Add ip2k to possible
	cpu types.
	* doc/md.texi: Document ip2k constraints.
	* config/ip2k/crt0.S: New file.
	* config/ip2k/ip2k-protos.h: New file.
	* config/ip2k/ip2k.c: New file.
	* config/ip2k/ip2k.h: New file.
	* config/ip2k/ip2k.md: New file.
	* config/ip2k/libgcc.S: New file.
	* config/ip2k/t-ip2k: New file.

2002-06-30  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.md ("return"): New pattern.
	* config/mmix/mmix.h (TARGET_MASK_USE_RETURN_INSN)
	(TARGET_USE_RETURN_INSN): New macros.
	(TARGET_DEFAULT): Include TARGET_MASK_USE_RETURN_INSN.
	(TARGET_SWITCHES): Add -msingle-exit and -mno-single-exit.
	* config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Fix spacing.
	(MMIX_POP_ARGUMENT): New macro.
	(mmix_target_asm_function_prologue): When no epilogue is executed,
	just emit a blank line.  Use MMIX_POP_ARGUMENT with final POP insn.
	(mmix_print_operand) <case '.'>: New case.
	(mmix_print_operand_punct_valid_p): Match '.'.
	(mmix_use_simple_return): New function.
	* config/mmix/mmix-protos.h (mmix_use_simple_return): Prototype.
	* doc/invoke.texi (Option Summary) <MMIX Summary>: Add
	-msingle-exit, -mno-single-exit.
	(MMIX Options): Ditto.

2002-06-30  Aldy Hernandez  <aldyh@redhat.com>

	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix typos.

2002-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* gengtype.c (oprintf): Move VA_CLOSE after all fixedarg uses.

2002-06-30  Alan Modra  <amodra@bigpond.net.au>

	* unroll.c (loop_iterations): Handle EQ loops.

2002-06-29  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (ctrdi): Allocate pseudo for FPR
	constraint in define_expand, not splitter.
	Formatting.

2002-06-29  Aldy Hernandez  <aldyh@redhat.com>

	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
	build_function_type_list instead of build_function_type.

	* config/ia64/ia64.c (ia64_init_builtins): Same.

	* config/alpha/alpha.c (alpha_init_builtins): Same.

	* config/rs6000/rs6000.c (altivec_init_builtins): Same.

	* config/arm/arm.c (arm_init_builtins): Same.

	* tree.h: Add build_function_type_list prototype.

	* tree.c (build_function_type_list): New.

2002-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* collect2.c (scan_prog_file): Fix typo in message.

2002-06-28  Aaron Lehmann  <aaronl@vitelus.com>

	* fold-cont.c: Remove unused CHARMASK.

2002-06-29  Neil Booth  <neil@daikokuya.co.uk>

	PR preprocessor/7150
	* cppmain.c (scan_translation_unit_trad): Simplify.
	* cppmacro.c (cpp_scan_nooutput): Handle traditional case.

2002-06-29  Neil Booth  <neil@daikokuya.demon.co.uk>

	* config/i386/crtdll.h: Define EXTRA_OS_CPP_BUILTINS.
	Don't use CPP_PREDEFINES.
	* config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): New.
	Used TARGET_OS_CPP_BUILTINS in preference to CPP_PREDEFINES.
	* config/i386/djgpp.h, config/i386/i386-coff.h,
	config/i386/i386-interix.h, config/i386/i386-interix3.h,
	config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h,
	config/i386/openbsd.h, config/i386/ptx4-i.h, config/i386/sysv3.h,
	config/i386/uwin.h: Similarly.

2002-06-29  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>

	* c4x.h: (TARGET_CPU_CPP_BUILTINS): Check flag_inline_functions and
	flag_inline_trees to enable inlining.

2002-06-28  Phil Edwards  <pme@gcc.gnu.org>

	* configure.in (gcc_gxx_include_dir):  Change to match versioned
	C++ headers if --enable-version-specific-runtime-libs is used.
	* configure:  Regenerate.

2002-06-28  Jan Hubicka  <jh@suse.cz>

	* gcse.c (gcse_emit_move_after): Use gen_move_insn to produce the move.

2002-06-28  Stephen Clarke  <stephen.clarke@superh.com>

	* combine.c (combine_simplify_rtx): Pass the mode of the
	shift count, not the shift operation when trying to simplify
	a shift on a SHIFT_COUNT_TRUNCATED target.

2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md ("*addsi3"): Use 'o' constraint to
	avoid the auto increment addressing modes.
	("*subsi3"): Likewise.
	(split for add/sub on address): For 68HC12 push the value on
	the stack and do the operation with a pop.

2002-06-28  Neil Booth  <neil@daikokuya.co.uk>

	* cpplib.c (_cpp_handle_directive): Move #define-specific
	code to the #define handler...
	(do_define): ...here.
	(lex_macro_node): No longer a need to check for comments here.

2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define.
	* config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
	Declare.
	* config/m68hc11/m68hc11.c (m68hc11_optimization_options): New,
	do not reorder basic blocks at the end when optimizing for size.

2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.c (autoinc_mode): New function.
	(m68hc11_make_autoinc_notes): New function.
	(m68hc11_split_move): Be very cautious when spliting a move with
	auto increment/decrement modes because this may result in incompatible
	directions; add REG_INC notes to the resulting insn for CSE reg.

2002-06-28  Stephane Carrez  <Stephane.Carrez@nerim.fr>

	* config/m68hc11/m68hc11.c (register_indirect_p): For 68HC12 a constant
	can be a valid address.

2002-06-28  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c: Remove unusued variables from last
	patch.

2002-06-27  Aldy Hernandez  <aldyh@redhat.com>

	Revert:
	* config/rs6000/rs6000.c (rs6000_override_options): Move
	*SUBTARGET_OVERRIDE_OPTIONS before the -m options.

2002-06-27  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (altivec_expand_builtin): Move
	lvx/stv/dst builtins...
	(altivec_expand_ld_builtin): ...to here.
	(altivec_expand_st_builtin): ...here.
	(altivec_expand_dst_builtin): ...and here (respectively).

2002-06-28  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (RETURN_IN_MEMORY): Update comment.

2001-06-08  Bernd Schmidt  <bernds@redhat.com>

	* emit-rtl.c (gen_lowpart_common): Don't create paradoxical FLOAT_MODE
	subregs.
	* recog.c (general_operand, register_operand): Disallow them.

2002-06-28  Neil Booth  <neil@daikokuya.co.uk>

	PR preprocessor/7138
	* cpplib.c (_cpp_handle_directive): Do traditional
	preparation after setting state.angled_headers.
	* cpptrad.c (scan_out_logical_line): Fix potential
	quote bug.

2002-06-27  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_override_options): Move
	*SUBTARGET_OVERRIDE_OPTIONS before the -m options.

2002-06-27  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.md: Give "*xxx" names to all unnamed insn's.
	(*lsiu, *ssiu, movstrsi_internal, zero_cost_loop_start,
	zero_cost_loop_end): Remove unnecessary "parallel" from insns.

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

	* config/d30v/d30v.h: Remove commented out STACK_REGS #defines.
	* config/stormy16/stormy16.h: Likewise.

	* config/stormy16/stormy16.h (CUMULATIVE_ARGS): Replace typedef
	with #define.

2002-06-26  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi (Binaries): Add Sinix/Reliant Unix.  Move
	Hitachi entry.  Make punctuation more consistent.

2002-06-27  Matt Kraai  <kraai@alumni.cmu.edu>

	* doc/install.texi: Change ` bit' to `-bit'.
	* doc/md.texi: Change `-bits' to `-bit'.
	* doc/tm.texi: Change `-bits' to ` bits'.

2002-06-27  Daniel Berlin  <dberlin@dberlin.org>

	* gcse.c (hoist_code): Rewrite to only get list of dominated
	blocks once per BB. Also fix reversed test (by removing need for
	the test at all).

2002-06-27  Neil Booth  <neil@daikokuya.co.uk>

	* cpphash.h (_cpp_set_trad_context): Remove.
	* cpplib.c (prepare_directive_trad): Do nothing for #define.
	(cpp_push_buffer, _cpp_pop_buffer): Don't call _cpp_set_trad_context.
	* cpptrad.c: Update comments.
	(_cpp_read_logical_line_trad): Let scan_logical_line handle
	updating the current context.
	(scan_logical_line): Update the current context.
	(_cpp_create_trad_definition): Similarly.
	(_cpp_set_trad_context): Remove.

2002-06-27  Neil Booth  <neil@daikokuya.co.uk>

	PR preprocessor/7070
	* c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF.

2002-06-26  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa-protos.h (xtensa_return_addr): Declare.
	config/xtensa/xtensa.c (xtensa_return_addr): New function.
	config/xtensa/xtensa.h (RETURN_ADDR_RTX): Use xtensa_return_addr.
	config/xtensa/xtensa.md (fix_return_addr): New pattern.

2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* mips.c (coprocessor_operand, coprocessor2_operand,
	symbolic_operand): Move prototypes from here...
	* mips-protos.h (coprocessor_operand, coprocessor2_operand,
	symbolic_operand): ...to here.

Wed Jun 26 16:32:57 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* config/sh/crt1.asm: remove _stack label definition
	and sentinel value.

2002-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* varasm.c: Include real.h before output.h.

2002-06-26  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Revert change to
	check for TARGET_ALTIVEC.

2002-06-26  Nathanael Nerode  <neroden@gcc.gnu.org>

	* config.gcc (vax-*-vms*): Make obselete.

2002-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* gcc.c (warn_std): Delete.

2002-06-25  Loren J. Rittle  <ljrittle@acm.org>

	* doc/extend.texi: Fix formatting of last checkin.

2002-06-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Remove leading
	underscore from __IEEE_FP and __IEEE_FP_INEXACT.

2002-06-25  Aldy Hernandez  <aldyh@redhat.com>

	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
	discrepancies from motorola's documentation.

Tue Jun 25 21:51:13 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* optabs.c (expand_vector_binop, expand_vector_unop): Don't assume
	GET_MODE_UNIT_SIZE (mode) == UNITS_PER_WORD.

	* config/sh/lib1funcs.asm (udivdi3): Make first divide step
	produce a 32 bit result before normalization, then normalize with a
	left shift.  Compute approximative error of 2nd reciprocal
	approximation in 2's complement.  Fix mask generation from upper
	longword of second divide stage result.
	For large divisor, fix shift count used to truncate first stage
	divide result; make decision if to adjust upwards based on comparison
	of higher parts of normalized values.
	(udivdi): Likewise.  Undo normalization of result for large divisor
	case.

2002-06-25  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.md: Change \\{t,n} to \{t,n}.

2002-06-25  Neil Booth  <neil@daikokuya.co.uk>

	* cpplib.c (do_include_common): Revert to correct line number
	if -traditional.
	* cpptrad.c (scan_out_logical_line): Treat null directive as
	white space.  Invlidate MI optimization for non-whitespace
	text outside a directive.

2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (SHELL): Set to @SHELL@.
	* fixinc/Makefile.in (SHELL): Likewise.

	* mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2,
	fixuns_truncsfsi2, fixuns_truncsfdi2): Avoid automatic aggregate
	initialization.

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

	* flow.c (propagate_one_insn): When removing an insn
	with a REG_LIBCALL note but not the entire libcall sequence,
	delete the associated REG_RETVAL note.

Mon Jun 24 21:05:09 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* lib1funcs.asm (sdivsi3): Add optimized SH64 implementations.
	(udivsi3): Likewise.  Rewrite SH1 implementation.
	(udivdi3, divdi3, umoddi3, moddi3): New SHmedia functions.
	* sh.md (R20_REG, R21_REG, R22_REG, R23_REG, FR23_REG): New constants.
	(udivsi3_i1_media, divsi3_i1_media): Fix clobber list.
	* config/sh/t-sh64 (LIB1ASMFUNCS): (_udivdi3, _divdi3, _umoddi3): Add.
	(_moddi3): Likewise.

	* lib1funcs.asm (ic_invalidate): Add data cache line writeback.

	* sh.h (FUNCTION_ARG_ADVANCE): Take SHCOMPACT_FORCE_ON_STACK
	arguments into account for stack_regs.

2002-06-24  Matt Kraai  <kraai@alumni.cmu.edu>

	* doc/extend.texi: Change `@dots{}' to `/* @r{@dots{}} */'
	in examples.

2002-06-24  Art Haas  <ahaas@neosoft.com>

	* doc/extend.texi (Other Builtins): Change `...' to `@dots{}'.
	* doc/tm.texi (Frame Layout): Likewise.

2002-06-20  Steve Ellcey  <sje@cup.hp.com>

	* gcc/config.gcc (ia64*-*-hpux*): Set use_collect2 to no.
	Set float_format to i128.

2002-06-24  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.c (INIT_TARGET_OPTABS): If ARCH64, set the
	32-bit ABI libfuncs to NULL.

	* config/sparc/sparc.md: Use define_insn_and_split.  Use braced
	strings instead of quoted strings for code blocks.

	* expmed.c (expand_divmod): Do not set optab1/optab2 to the shift
	optabs if op1 is const0_rtx.

	* Makefile.in (GTFILES): Add basic-block.h
	* basic-block.h (label_value_list, tail_recursion_label_list):
	Mark with GTY.

2002-06-24  Neil Booth  <neil@daikokuya.co.uk>

	* cpptrad.c (scan_out_logical_line): Check recursing only when
	we know we have a macro invocation in the function-like case.
	Only call _cpp_handle_directive if we know we have a good
	directive, or we want to reject a bad directive.

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

	* doloop.c (doloop_valid_p): Correct comment.
	(doloop_modify_runtime <abs_inc != 1>): Simplify.
	(doloop_modify_runtime <do-while>): Don't emit code when NE.

Thu Jun 20 00:26:53 2002  Denis Chertykov  <denisc@overta.ru>

	* config.gcc: Add support for ip2k.

2002-06-23  Jan Hubicka  <jh@suse.cz>
	    Jeff Law <law@redhat.com>

	* function.h (struct emit_status): Clarify potential contents
	of regno_reg_rtx array.
	* integrate.c (copy_rtx_and_substitute): Update comments.  Make
	sure entry in regno_reg_rtx is a REG before checking REG_POINTER.

	* reg-stack.c (convert_regs_exit): Push the registers to stack in
	proper order.

2002-06-22  Ulrich Weigand  <uweigand@de.ibm.com>

	PR middle-end/6963
	* function.c (assign_stack_temp_for_type): Do not return
	the same MEM rtx for multiple uses of a stack slot.

2002-06-22  David S. Miller  <davem@redhat.com>

	PR target/6841 target/6770 target/6719
	* config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Return
	NO_REGS	for constant X when CLASS is GENERAL_OR_FP_REGS or
	GENERAL_OR_EXTRA_FP_REGS.

2002-06-22  Neil Booth  <neil@daikokuya.co.uk>

	* cpptrad.c (struct fun_macro): Add line number.
	(scan_out_logical_line): Set it, and use it to report unterminated
	macro invocations.

2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* genautomata.c (copy_node, VLA_PTR_CREATE, VLA_PTR_EXPAND,
	VLA_PTR_ADD, VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD,
	DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL, DECL_PRESENCE,
	DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV, REGEXP_UNIT,
	REGEXP_RESERV, REGEXP_SEQUENCE, REGEXP_REPEAT, REGEXP_ALLOF,
	REGEXP_ONEOF, check_name): Const-ify.

2002-06-21  Matt Thomas  <matt@3am-software.com>

	* config/vax/vax.c (vax_output_function_prologue): Use
	REGISTER_PREFIX.  Fix some indentation.
	* config/vax/vax.h (FUNCTION_PROFILER): Use reg_names[].
	(VAX_ISTREAM_SYNC): Define.
	(INITIALIZE_TRAMPOLINE): Use VAX_ISTREAM_SYNC.  Move the
	i-stream sync to the end.
	(REGISTER_PREFIX): Define as "".
	(ASM_OUTPUT_MI_THUNK): Use REGISTER_PREFIX.

2002-06-21  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (ns32k-*-netbsd*): Remove from list of obsolete
	configurations.

2002-06-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* tree.c (tree_node_kind, tree_node_counts, tree_node_sizes,
	tree_node_kind_names): Wrap in GATHER_STATISTICS macro.

2002-06-21  Matt Thomas  <matt@3am-software.com>

	* config/vax/netbsd.h: Adjust a comment.
	(TARGET_DEFAULT): Redefine as 0.

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

	* bb-reorder.c (make_reorder_chain_1): Search harder for the
	vax casesi fallthru edge.
	* cfglayout.c (cleanup_unconditional_jumps): Use
	redirect_edge_succ_nodup.  Do not delete ADDR_VEC insns as dead.
	* cfgrtl.c (force_nonfallthru_and_redirect): Place redirection
	block after ADDR_VEC.

2002-06-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.

2002-06-21  Neil Booth  <neil@daikokuya.co.uk>

	* cpperror.c (cpp_error): For traditional CPP, default to
	diagnostics on pfile->line.
	* cpplib.c (prepare_directive_trad): Set line number for
	diagnostics for #define too.
	* cpptrad.c (skip_whitespace): Skip comments properly.
	(_cpp_expansions_different_trad): Initialize quote2.

2002-06-21  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.md: Change GNU CC to GCC in file header comment.
	* config/mmix/mmix.h: Ditto.
	* config/mmix/mmix-protos.h: Ditto.
	* config/mmix/mmix.c: Ditto.  Fix typo in comment.
	* config/mmix/mmix-modes.def: Change GNU CC to GCC in file header
	comment.  Comment extra CC modes.

2002-06-20 Jan Hubicka  <jh@suse.cz>

	* cfglayout.c (scope_to_insns_initialize): Call set_block_levels.
	(scope_to_insns_finalize): Do not call set_block_levels; handle
	sequences.
	(choose_inner_scope): New.
	* rtl.h (choose_inner_scope): Declare.

2002-06-20  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa-protos.h (pa_asm_output_mi_thunk): Change third argument to
	HOST_WIDE_INT.
	* pa.c (pa_asm_output_mi_thunk): Likewise.
	(n_deferred_plabels): Change type to size_t.
	(output_deferred_plabels, output_call): Use size_t instead of int.

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

	PR target/4041
	* config/m68k/m68k.md (zero_extendsidi2): Create expander; duplicate
	pattern and adjust constraints for coldfire.

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

	* explow.c (probe_stack_range): Use gen_rtx_fmt_ee.

2002-06-20  Chris Demetriou  <cgd@broadcom.com>

	* config.gcc (mipsisa64-*-elf*, mipsisa64el-*-elf*): New targets.

2002-06-20  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.h (ISA_HAS_FP4): Fix comment to reflect use.

2002-06-20  Stan Shebs  <shebs@apple.com>

	* dominance.c: Include errors.h instead of error.h.

2002-06-20  Neil Booth  <neil@daikokuya.co.uk>

	* cppexp.c (cpp_interpret_integer): Don't force traditional
	numbers to be unsigned.
	* cpplib.c (prepare_directive_trad): Set line number for
	diagnostics.
	* cpptrad.c (scan_out_logical_line): Continue scanning out
	at start of buffer.
	* gcc.c (trad_capable_cpp): Use cc1 always.

2002-06-20  Jeffrey Law  <law@redhat.com>

	* i386.h (TARGET_DEFAULT): Do not turn on frame pointer
	elimination in leaf functions by default yet.

2002-06-20  Richard Sandiford  <rsandifo@redhat.com>

	* combine.c (make_extraction): Reapply to the argument of an ASHIFT.

2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/sparc/t-crtfm (crtfastmath.o): Prefix with $(T) for
	multilibs.
	* config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o.
	Fixes PR other/6836.

Thu Jun 20 19:42:21 CEST 2002  Jan Hubicka  <jh@suse.cz>
			       Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>

	Mon Jun 10 20:42:34 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* basic-block.h: Do not include et-forest.h
	(dominance_info): Declare as struct dominance-info.
	* cfglayout.c (cleanup_unconditional_jumps): Remove the edge before
	deleting block.
	* dominance.c (struct dominance_info): Define.
	(BB_NODE, SET_BB_NODE): New macros.
	(bb_hash_func, bb_eq_func): Kill.
	(calculate_dominace_info, free_dominacne_info, set_immediate_dominator,
	nearest_common_dominator, dominated_by_p, recount_dominator,
	add_to_dominance_info, delete_from_dominance_info): update for new
	representation.
	(get_dominated_by, redirect_immediate_dominators): Rewrite using
	enumerate_sons.
	* ifcvt.c (process_double_test_block, merge_if_block, find_cond_trap,
	find_if_case_1, find_if_case_2): Remove killed blocks from dominance
	structure.

	* et-forest.h: Update copyright; revamp all function to operate on
	nodes
	(et_forest_value): Kill.
	(et_forest_enumerate_sons, et_forest_node_value): New.
	* et-forest.c: Update copyright.
	* et-forest.h: Update copyright; revamp all function to operate on
	nodes
	(et_forest_value): Kill.
	(et_forest_enumerate_sons, et_forest_node_value): New.

	Thu Jun  6 22:43:43 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* basic-block.h: Inlude et-forest.h
	(basic_block_def): Kill dominator.
	(dominance_info): New type.
	(loops): Use dominace_info.
	(dominace handling functions): Take dominace_info as argument
	instead of bitmaps.
	(create_preheader): Likewise.
	* cfg.c (entry_exit_blocks): Kill dominator.
	(dump_flow_info): Do not dump dominators.
	* cfglayout.c (cleanup_unconditonal_jumps): Delete deleted block from
	dominators.
	* cfgloop.c (flow_pre_header_find): Use dominacne_info.
	(flow_loops_pre_header_scan, make_forwarder_block,
	canonicale_loop_headers, flow_loops_find): Likewise.
	* dominance.c: Include error.h
	(idoms_to_doms): Kill.
	(bb_hash_func, bb_eq_func): New static functions.
	(debug_dominace_info): New global function.
	(calculate_dominance_info): Use new et forest structure.
	(free_dominace_info, get_immediate_dominator, set_immediate_dominator,
	get_dominated_by, redirect_immediate_dominators,
	nearest_common_dominator, dominated_by_p, verify_dominators,
	recount_dominator, iterate_fix_dominators, add_to_dominace_info,
	delete_from_dominance_info): New global functions.
	* gcse.c (domnators): CHange to dominance_info.
	(alloc_hoist_mem): Do not alloc dominators
	(free_code_hoist_mem): Use free_dominance_info.
	(compute_code_hoist_data): Use dominance_info.
	(hoist_code): Likewise.
	* ifcvt.c (post_dominators): Likewise.
	(find_if_case_2, if_convert): Likewise.
	* predict.c (process_note_predictions, process_note_prediction,
	estimate-probability): Likewise.
	* sched-rgn.c (find_rgns, init_regions): Likewise.
	* ssa-dce.c (find_all_control_dependences, fint_control_depemndence,
	find_pdom, delete_insn_bb, ssa_eliminate_dead_code): Likewise.
	* ssa.c (compute_dominance_frontiers_1, rename_block, rename_registers,
	find_evaluations, convert_to_ssa): Likewise.
	* ssa.h (compute_dominance_frontiers): Likewise.

	Thu Jun  6 22:57:34 CEST 2002  Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>

	* Makefile.in (et-forest.c): Add.
	* et-forest.c: New file.
	* at-forest.h: New file.

2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-decl.c (c_decode_option): Use ARRAY_SIZE in lieu of explicit
	array size calculation.
	* gengtype.c (NUM_BASE_FILES, create_file, write_gc_root):
	Likewise.

	* diagnostic.c (diagnostic_kind_text): Const-ify.
	* gengtype.c (lang_names): Likewise.

Thu Jun 20 17:25:29 CEST 2002  JAn HUbicka  <jh@suse.cz>

	* combine.c (subst): Be prepared for simplify_subreg to return VOIDmode.

2002-06-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/sol2.h: New file.
	* config.gcc (i?86-*-solaris2*): Include it before i386/sol2.h.
	(sparc64-wrs-vxworks*): Include it before sparc/sol2.h.
	(sparc-*-chorusos*): Likewise.
	(sparc-*-elf*): Likewise.
	(sparc-*-rtems*, sparc-*-rtemself*): Likewise.
	(sparc64-*-solaris2*, sparcv9-*-solaris2*): Likewise.
	(sparc-hal-solaris2*): Likewise.
	(sparc-*-solaris2*): Likewise.
	(sparclite-*-elf*): Likewise.
	(sparc86x-*-elf*): Likewise.
	(sparc64-*-elf*): Likewise.

	* config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Moved to
	config/sol2.h.
	(ASM_SPEC): Override config/sol2.h version for now.
	Removed obsolete GAS_REJECTS_MINUS_S variant.
	(WINT_TYPE, WINT_TYPE_SIZE): Moved to config/sol2.h.
	(HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
	(TARGET_OS_CPP_BUILTINS): Likewise.
	Assert system=unix.
	(CPP_SPEC): Simplified using new CPP_SUBTARGET_SPEC.
	(LIB_SPEC, ENDFILE_SPEC, STARTFILE_SPEC, LINK_SPEC): Moved to
	config/sol2.h.
	(SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
	(ASM_CPU_SPEC): Define.
	(SUBTARGET_EXTRA_SPECS): Define.

	* config/sparc/sol2-bi.h (LONG_DOUBLE_TYPE_SIZE): Removed, already
	in config/sparc/sol2.h.
	(ASM_SPEC): Moved to config/sol2.h.
	(CPP_CPU_SPEC): Simplified.
	(STARTFILE_SPEC32): Likewise, renamed to STARTFILE_ARCH32_SPEC for
	consistency.
	(STARTFILE_SPEC64): Renamed to STARTFILE_ARCH64_SPEC.
	(STARTFILE_ARCH_SPEC): Use new names STARTFILE_ARCH32_SPEC,
	STARTFILE_ARCH64_SPEC.
	(STARTFILE_SPEC): Moved to config/sol2.h
	(SUBTARGET_EXTRA_SPECS): Add startfile_arch.
	(LINK_ARCH32_SPEC): Moved to config/sol2.h.
	(LINK_ARCH64_SPEC): Simplified.
	(LINK_ARCH_SPEC): Redefined config/sol2.h version for 64-bit support.
	(LINK_SPEC): Moved to config/sol2.h

	* config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Moved to
	config/sol2.h.
	Use BITS_PER_WORD for size.
	(WINT_TYPE, WINT_TYPE_SIZE): Likewise.
	(HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise.
	(CPP_PREDEFINES): Removed OS-specific part handled by
	TARGET_OS_CPP_BUILTINS.
	(CPP_SUBTARGET_SPEC): Moved to config/sol2.h.
	(CPLUSPLUS_CPP_SPEC): Removed, handled by TARGET_OS_CPP_BUILTINS.
	(ASM_SPEC): Moved to config/sol2.h.
	(PREFERRED_DEBUGGING_TYPE): Likewise.
	(STARTFILE_SPEC, LIB_SPEC, LINK_SPEC): Likewise.
	(SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise.
	(TARGET_DEFAULT): Reordered to match config/sparc/sol2-bi.h version.
	(TRANSFER_FROM_TRAMPOLINE): Moved to config/sol2.h

	* config.gcc (i?86-*-solaris2*): Removed obsolete gas support.
	* config/i386/sol2gas.h: Removed.

Thu Jun 20 12:14:01 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (xorqi_1_slp, xorqi_2_slp): New patterns.

2002-06-16  Aldy Hernandez  <aldyh@redhat.com>

	* gcc.c-torture/execute/simd-1.c: New.

	* gcc.dg/simd-1.c: New.

	* doc/extend.texi (Vector Extensions): Document that we can
	specify simd types not specifically supported by the hardware.
	Document that simd types can be used as function arguments.
	Document that signness does make a difference in SIMD types.
	Misc cleanups and revisions to the vector extensions section.

	* simplify-rtx.c (simplify_subreg): Simplify subregs of vector
	constants.

	* expr.c (vector_mode_valid_p): New.

	* expr.h: Add vector_mode_valid_p.

	* defaults.h (VECTOR_MODE_SUPPORTED_P): Set default.

	* c-common.c (type_for_mode): Always build vector nodes regardless
	of VECTOR_MODE_SUPPORTED_P.
	(handle_mode_attribute): Error if we can't emulate a nonexisting
	vector mode.
	(handle_vector_size_attribute): Same.

	* optabs.c (expand_binop): Open-code vector operations.
	(expand_unop): Open-code vector unops.
	(expand_vector_binop): New.
	(expand_vector_unop): New.

	* c-typeck.c (build_binary_op): Allow vectors in binops.
	Allow vectors in conditional operatiors.
	(build_unary_op): Allow vectors in unary minus.

	* config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Conditionalize on
	TARGET_ALTIVEC.

2002-05-20  Richard Henderson  <rth@redhat.com>

	* c-common.c (c_common_get_alias_set): Correctly handle characters.
	Rearrange order of expressions; don't handle vectors here.
	* alias.c (get_alias_set): Let vectors match their components.

2002-06-19  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.c (mips_emit_prefetch): Use hints which
	match desired locality.

2002-06-19  Dhananjay R. Deshpande  <dhananjayd@kpit.com>

	* config/h8300/h8300.c (TARGET_INSERT_ATTRIBUTES): Define.
	(h8300_insert_attributes): New.

2002-06-19  Akim Demaille  <akim@epita.fr>

	* c-parse.in (initelt: identifier ':' initval): Add an empty
	action to fix a type clash.
	(aliasdecl, classdef): Add the missing closing `;'.
	Whitespace changes.
	* gengtype-yacc.y (typedef_struct): Add an empty action to preevnt
	$$ = $1 type clashes.

2002-06-19  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.c (symbol_operand): New function.
	(mips_emit_prefetch): Ditto.
	* config/mips/mips-protos.h: Define.
	* config/mips/mips.h (ISA_HAS_PREFETCH): Define.
	(CONSTANT_ADDRESS_P): Adjust, use TARGET_GAS.
	(LEGITIMIZE_ADDRESS): Ditto.
	* config/mips/mips.md (prefetch, prefetch_si_address,
	prefetch_si, prefetch_di_address, prefetch_di): New patterns.

2002-06-19  Eric Christopher  <echristo@redhat.com>

	* config/fp-bit.h: Add unordered defines for gofast.

2002-06-19  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON,
	DECL_EXCL, DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV,
	DECL_INSN_RESERV, REGEXP_UNIT, REGEXP_RESERV, REGEXP_SEQUENCE,
	REGEXP_REPEAT, REGEXP_ALLOF, REGEXP_ONEOF): New macros with
	checking and without it.
	(decl_name, decl_mode_check_failed, regexp_name,
	regexp_mode_check_failed): New functions.
	(gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
	gen_presence_set, gen_absence_set, gen_automaton,
	gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
	gen_regexp_sequence, gen_reserv, gen_insn_reserv,
	automaton_decl_hash, automaton_decl_eq_p): Use the macros.
	(find_automaton_decl): Ditto.  Set up mode of work_automaton_decl.
	(insn_decl_hash, insn_decl_hash, insn_decl_eq_p): Use the macros.
	(find_insn_decl): Ditto.  Set up mode of work_insn_decl.
	(decl_hash, decl_eq_p): Use the macros.
	(find_decl): Ditto.  Set up mode of work_decl.
	(process_excls, process_presence_absence, process_decls,
	check_automaton_usage, process_regexp, process_regexp_decls,
	check_usage, loop_in_regexp, check_loops_in_regexps,
	process_regexp_cycles, add_advance_cycle_insn_decl,
	initiate_states, initiate_excl_sets,
	initiate_presence_absence_sets, copy_insn_regexp, transform_1,
	transform_2): Use the macros.
	(transform_3): Ditto.  Check mode before making transformations of
	ALLOF.
	(regexp_transform_func, transform_insn_regexps,
	process_unit_to_form_the_same_automaton_unit_lists,
	form_the_same_automaton_unit_lists_from_regexp,
	form_the_same_automaton_unit_lists,
	process_seq_for_forming_states, process_alts_for_forming_states,
	create_alt_states, form_ainsn_with_same_reservs, make_automaton,
	form_arcs_marked_by_insn, NDFA_to_DFA, set_new_cycle_flags,
	estimate_one_automaton_bound, compare_max_occ_cycle_nums,
	units_to_automata_heuristic_distr, create_ainsns,
	units_to_automata_distr, create_automata): Use the macros.
	(form_regexp): Ditto.  Fix typo in access to fields of ALLOF.
	(longest_path_length, min_issue_delay_pass_states,
	output_dead_lock_vect, output_tables, output_insn_code_cases,
	output_internal_insn_latency_func, output_print_reservation_func,
	output_description, output_automaton_units, generate): Use the
	macros.
	(make_insn_alts_attr): Ditto.  Check case when there are not
	alternatives in the reservation.
	(make_internal_dfa_insn_code_attr, make_default_insn_latency_attr,
	make_bypass_attr, form_important_insn_automata_lists,
	expand_automata): Use the macros.

2002-06-20  Tim Josling  <tej@melbpc.org.au>

	* Makefile.in: Clean up code to check for misspecified languages
	in enable-languages.

2002-06-19  Andrew Pinski <pinskia@physics.uc.edu>

	* cpptrad.c (_cpp_replacement_text_len): initialize len.

2002-06-19  Jason Merrill  <jason@redhat.com>

	* Makefile.in (unstrap, restrap): New targets.
	(bootstrap): Mention restrap.

2002-06-19  Matt Kraai  <kraai@alumni.cmu.edu>

	* except.c (ehl_free): Remove.

	* doc/tm.texi (TARGET_CPU_CPP_BUILTINS): Correct misnamings of
	builtin_define and builtin_define_std.

2002-06-19  Ian Dall  <ian@sibyl.beware.dropbear.id.au>

	* config/ns32k/ns32k.md: Give "*xxx" names to all unnamed insn's.
	(sCOND): Restrict operand class so that gcc knows how to reload them.
	(bitfield_set): Merge two unnamed insn's using alternatives.
	(call_value): Remove constraint on unused uperand.
	(udivmodhi4, udivmodsi4, udivmoddihi4_internal): Remove.
	(udivmoddiqi4_internal, udivmoddihi4, udivmoddiqi4): Remove.

	* longlong.h (count_trailing_zeros): Escape newline and beautify.

2002-06-19  Mark Mitchell  <mark@codesourcery.com>

	* Makefile.in (QMTEST_DIR): Simplify definition.

2002-06-19  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/d30v/d30v.h (CUMULATIVE_ARGS): Replace typedef with
	#define.

2002-06-19  Neil Booth  <neil@daikokuya.co.uk>

	* cpphash.h (struct cpp_reader): Make date and time strings.
	(_cpp_builtin_macro_text, _cpp_copy_replacement_text,
	_cpp_replacement_text_len): New.
	* cppinit.c (cpp_create_reader): Update.
	(init_builtins): Register appropriate builtins for -traditional-cpp.
	* cppmacro.c (new_number_token): Remove.
	(_cpp_builtin_macro_text): New.
	(builtin_macro): Use it.
	(cpp_macro_definition): Update to handle traditional macros.
	* cppmain.c (cb_line_change): Don't do column positioning for
	traditional output.
	* cpptrad.c (enum ls): Rename ls_fun_macro to ls_fun_open.  New
	state ls_fun_close.
	(skip_whitespace): Fix.
	(maybe_start_funlike): Don't set state.parsing_args.
	(scan_out_logical_line): Remove duplicate error.  Use lex_state
	rather than state.parsing_args.
	(push_replacement_text): Handle builtins.
	(_cpp_replacement_text_len, _cpp_copy_replacement_text): New.

2002-06-18  Hans-Peter Nilsson  <hp@axis.com>
	    Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/fp-bit.c (_fpmul_parts, _fpdiv_parts): Mark with
	attribute __always_inline__.

2002-06-18  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (FUNCTION_PROFILER): Respect flag_pic
	when generating the call to _mcount.
	(NO_PROFILE_COUNTERS): Define.

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

	* print-rtl.c (print_rtx): Adjust NOTE argument numbers for
	2002-06-02 change.

Tue Jun 18 20:53:32 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* t-sh (MULTILIB_EXCEPTIONS): Set to ml.
	config/sh/t-linux (MULTILIB_EXCEPTIONS): Clear.
	* config/sh/t-netbsd (MULTILIB_EXCEPTIONS): Likewise.
	* config/sh/t-sh64 (MULTILIB_EXCEPTIONS): Likewise.

	* sh-protos.h (sh_pr_interrupt): Declare.
	* sh.c (sh_pr_interrupt): New function.
	(print_operand, calc_live_regs, sh_expand_prologue): Use it.
	(sh_hard_regno_rename_ok): Likewise.
	* sh.h (NORMAL_MODE): FP_MODE_NONE for interupt handlers.

2002-06-18  Vladimir Makarov  <vmakarov@redhat.com>

	* rtl.def (DEFINE_AUTOMATON): Add description of new options
	`time' and `v'.  Fix incorrect description of option `w'.

	* doc/md.texi: Ditto.

	* genautomata.c (TIME_OPTION, V_OPTION): New macros.
	(gen_automata_option): Process the new options.
	(transform_2, transform_3): Initialize some variables.
	(initiate_automaton_gen): Use the new macros.

2002-06-18  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips-protos.h (mips_initial_elimination_offset): Declare.
	(mips_set_return_address, mips_restore_gp): Declare.
	* config/mips/mips.h (struct mips_frame_info): Move to mips.c
	(current_frame_info): Remove.
	(INITIAL_ELIMINATION_OFFSET): Use mips_initial_elimination_offset.
	* config/mips/mips.c: Remove uses of current_frame_info.
	(struct mips_frame_info): Moved from mips.h.  Remove 'insns_len'.
	(struct machine_function): Add 'frame' and 'insns_len'.
	(current_frame_info, zero_frame_info): Remove.
	(mips_restore_gp, mips_set_return_address): New.
	(mips_initial_elimination_offset): New.
	* config/mips/mips.md (exception_receiver): Use mips_restore_gp.
	(eh_return define_split): Use mips_set_return_address.

2002-06-18  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplib.c (dtable): Update.
	(end_directive): Decrement expansion prevention count.
	Clear state.in_expression.
	(prepare_directive_trad): Set state.in_expression.
	Increment expansion prevention count.
	* cpptrad.c (enum ls): New.
	(_cpp_overlay_buffer): Set overlaid_buffer.
	(_cpp_remove_overlay): Use overlaid_buffer.
	(_cpp_read_logcial_line_trad): Update buffer when it might
	have changed.
	(scan_out_logical_line): Handle state transitions for assertions
	and defined() in #if, and for funlike invocations including the
	directive case.  Handle '<' and '>' as a quote mechanism in
	#include.  Warn about unterminated macro invocations.
	* cpphash.h (struct lexer_state): New member in_expression.
	(struct cpp_reader): New member overlaid buffer.

2002-06-18  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/arit.c (do_31div, __Udiv, __Umod): Mark prototype
	__always_inline__.

2002-06-18  Alan Modra  <amodra@bigpond.net.au>

	* config/ia64/ia64.md (doloop_end_internal): Correct rtl.

	* doloop.c (doloop_optimize): Extract pattern from insn.

2002-06-17  Matt Kraai  <kraai@alumni.cmu.edu>

	* doc/extend.texi (Function Attributes): Remove `,...' from @var.

2002-06-17  Jeff Law <law@redhat.com>

	* libgcc2.c: Do not include symcat.h or machmode.h.

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

	PR target/6922
	* expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND.

2002-06-17  Tom Tromey  <tromey@redhat.com>

	* dwarfout.c: Include function.h.

2002-06-17  Andreas Schwab  <schwab@suse.de>

	* print-rtl.c (print_rtx): Print space before vector, not after.
	(debug_rtx): Clear sawclose before printing.
	(debug_rtx_list): Print newline after each list element.
	(debug_rtx_range): Likewise.

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

	* function.h (struct function) [funcdef_no]: Rename profile_label_no.
	(current_function_funcdef_no): Similarly.
	* function.c (funcdef_no): Similarly.
	(prepare_function_start): Set current_function_funcdef_no.
	(expand_function_start): Don't set current_function_profile_label_no.
	* dwarf2out.h (current_funcdef_number): Remove.
	* dwarf2out.c (current_funcdef_number): Remove.  Replace with
	current_function_funcdef_no throughout.
	* dwarfout.c, vmsdbgout.c: Similarly.
	* except.c (sjlj_funcdef_number): Remove.
	(sjlj_emit_function_enter): Use current_function_funcdef_no instead.
	(output_function_exception_table): Likewise.
	* final.c (profile_function): Use current_function_funcdef_no
	instead of current_function_profile_label_no.

2002-06-17  Vladimir Makarov  <vmakarov@redhat.com>

	* sched-ebb.c (init_ready_list): Check INSN_P first.

Mon Jun 17 17:26:15 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (divsi3): Update way how to find insns in a sequence.

	* reload1.c (merge_assigned_reloads): Don't change reloads
	other than RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
	to RELOAD_OTHER when there are conflicting input reloads.

2002-06-17  Richard Earnshaw  (rearnsha@arm.com)

	* function.c (epilogue_done): Correctly build a sequence of insns for
	a sibcall epilogue.

2002-06-17  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/fr30/fr30.h (CUMULATIVE_ARGS): Replace typedef with
	#define.

	* config/m32r/m32r.md: Replace gen_sequence with get_insns.

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

	* config/i386/i386.h (BIGGEST_FIELD_ALIGNMENT): Define instead
	of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS.

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

	PR opt/6722
	* regclass.c (globalize_reg): Update regs_invalidated_by_call.

2002-06-16  Neil Booth  <neil@daikokuya.demon.co.uk>

	* config.gcc: Add i386/sysv4-cpp.h; remove i386-aout.h from vxworks.
	* config/i386/i386-aout.h, config/i386/i386elf.h,
	config/i386/sysv4.h: Remove CPP_PREDEFINES.
	* config/i386/linux64.h, config/i386/i386elf.h, config/i386/mach.h,
	config/i386/netware.h, config/i386/rtemself.h, config/i386/sco5.h,
	config/i386/sol2.h, config/i386/vsta.h, config/i386/vxi386.h,
	config/i386/win32.h: Use TARGET_OS_CPP_BUILTINS rather than
	CPP_PREDEFINES and part of CPP_SPEC.
	* config/i386/sysv4-cpp.h: New.

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

	PR c/7030
	* dwarf2out.c (modified_type_die): Don't assign the qualified die
	to the unqualified type.

Sun Jun 16 22:16:10 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386-protos.h (x86_field_alignment): Declare.
	* i386.c (x86_field_alignment): Define.
	* i386.h (ADJUST_FIELD_ALIGNMENT): New.
	(BIGGEST_FIELD_ALIGNMENT): Kill.

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

	* vax.md (casesi): Use emit_jump_insn.  Tidy expander pattern.

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

	* c-common.c (flag_ms_extensions): Move from c++ front end.
	* c-common.h (flag_ms_extensions): Declare.
	* c-decl.c (c_decode_option): Add -fms-extensions.
	(grokfield): Don't accept anonymous structures in ISO C mode;
	accept only unnamed anonymous structures in GNU C mode; accept
	Plan 9 extensions in MS mode.
	* c-parse.in (SAVE_EXT_FLAGS, RESTORE_EXT_FLAGS): Rename from
	SAVE/RESTORE_WARN_FLAGS; add flag_iso frobbing; update all callers.
	(extension): Clear flag_iso.
	* doc/invoke.texi (C Dialect Options): Add -fms-extensions.

2002-06-16  Hans-Peter Nilsson  <hp@axis.com>

	PR target/7042
	* reorg.c (make_return_insns) [DELAY_SLOTS_FOR_EPILOGUE]: Exit
	early if current_function_epilogue_delay_list is non-empty.
	* config/cris/cris.md ("return"): Add sanity check asserting that
	current_function_epilogue_delay_list is empty.

2002-06-16  Jeff Law <law@redhat.com>

	* emit-rtl.c (gen_rtx_REG): Temporarily turn off automatic
	sharing of hard registers.

	* toplev.c (rest_of_compilation): Remove redundant conditional.

	* toplev.c (rest_of_compilation): Perform a simpler, less costly
	cleanup of the CFG when not optimizing.

2002-06-16  Alan Modra  <amodra@bigpond.net.au>

	* gcc.c (main): Correct startfile_prefix_spec check.

2002-06-12  Geoffrey Keating  <geoffk@redhat.com>

	* config.gcc: Revert rth's patch of 2002-05-18.  Instead,
	include both darwin.o and rs6000-c.o.

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

	* expr.c (compare_from_rtx): Call simplify_relational_operation
	on all comparisons, not just those between integer constants,
	with the correct (possibly unsigned) comparison code.
	(do_compare_rtx_and_jump): Likewise.

2002-06-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* Makefile.in (tm_defines): New configuration variable.
	(cs-config.h, cs-hconfig.h, cs-tconfig.h): Rename DEFINES to XM_DEFINES.
	Pass tm_defines in TM_DEFINES.
	(cs-tm_p.h): Rename DEFINES to XM_DEFINES.  Pass TM_DEFINES.
	* config.gcc (tm_defines): New configuration variable.
	(hppa*-*-* | parisc*-*-*): Use tm_defines instead of pa-700.h and
	pa-7100.h headers.  Change hppa1* scheduling default to 7100LC.
	* configure.in: Substitute tm_defines.
	* configure: Rebuilt.
	* mkconfig.sh: Rename DEFINES to XM_DEFINES.  Output TM_DEFINES.
	* doc/install.texi: Update.
	* pa/pa-700.h: Delete file.
	* pa/pa-7100.h: Delete file.

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

	* fold-const.c (comparison_to_compcode): New function to convert
	an comparison TREE CODE into a bit-based representation.
	(compcode_to_comparison): New function to convert from this bit
	based representation back to a comparison TREE CODE.
	(fold_truthop): Simplify (x<y) && (x==y) and related composite
	comparisons.

2002-06-15  Aldy Hernandez  <aldyh@redhat.com>

	* tm.texi (MEMBER_TYPE_FORCES_BLK): Document MODE argument.

	* stor-layout.c (compute_record_mode): Remove check for
	FUNCTION_ARG_REG_LITTLE_ENDIAN and VOIDmode when checking for
	MEMBER_TYPE_FORCES_BLK.  Pass new mode field to
	MEMBER_TYPE_FORCES_BLK.

	* config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Same.

	* config/c4x/c4x.h (MEMBER_TYPE_FORCES_BLK): Same.

2002-06-14  Jeff Sturm  <jsturm@one-point.com>

	* config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS): Add SPARC_STACK_BIAS.

2002-06-14  Steve Ellcey  <sje@cup.hp.com>

	* configure.in (USE_UNWIND_EXCEPTIONS): Add support to set
	USE_UNWIND_EXCEPTIONS if --enable-libunwind-exceptions is set.
	* configure, config.in: Regenerate.

2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>

	* loop.c (check_final_value): Use v->always_executed
	instead of v->always_computable.
	* unroll.c (final_giv_value): Don't calculate the final
	value as a function of the biv if the giv is not computed
	for every loop iteration.

2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>

	* loop.c (for_each_insn_in_loop): Fix formatting and comments.

2002-06-14  Eric Botcazou  <ebotcazou@multimania.com>

	PR c/6677
	* convert.c (convert_to_integer) [LSHIFT_EXPR]: Don't pass
	the truncation down when the target type is signed.
	[trunc1]: Use unsigned arithmetic for LSHIFT_EXPR.
	* fold-const.c (extract_muldiv) [NOP_EXPR]: Don't pass through
	the conversion if the target type is a smaller type.

2002-06-14  Richard Henderson  <rth@redhat.com>

	* fold-const.c (fold) [compare ops]: Move X>=C / X<C transfomation
	earlier.  Re-factor comparisons vs extrema.

2002-06-14  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (builtin_zapnot): Fix op2 mode.

2002-06-14  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* rtl.h (SCHED_GROUP_P): Disallow CODE_LABEL, BARRIER and NOTE.
	* sched-deps.c (add_dependence): Likewise.
	(group_leader): Likewise.
	* sched-rgn.c (init_ready_list): Likewise.
	* doc/rtl.texi: Adjust accordingly.

2002-06-13  Jeffrey Law  <law@redhat.com>

	* gcse.c (delete_null_pointer_checks_1): Inform caller if any
	null pointer checks were eliminated.  Update prototype.
	(delete_null_pointer_checks): Similarly.
	* rtl.h (delete_null_pointer_checks): Update prototype.
	* toplev.c (rest_of_compilation): Only run cleanup_cfg if
	delete_null_pointer_checks deletes one or more null
	pointer checks.  Do not run cleanup_cfg before gcse, the
	CFG is accurate and optimized at that point..

	* rs6000.c (rs6000_frame_related): Avoid unwanted sharing
	of hard registers.

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

	* Makefile.in (libgcc.mk): Depend on specs.

Fri Jun 14 12:15:11 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (mulsi3): Update way how to find insns in a sequence.

Fri Jun 14 12:04:02 2002  Dhananjay R. Deshpande <dhananjayd@kpit.com>

	* sh.h: Define HARD_REGNO_RENAME_OK
	* sh.c: sh_hard_regno_rename_ok: New. If current function has
	interrupt_handler attribute, only registers saved on stack are OK.
	* sh-protos.h: Declare sh_hard_regno_rename_ok.

2002-06-14  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.md (jump): Emit jump insn.
	(call_pcrel): Get pattern of the result of gen_call_site.
	(call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.

2002-06-14  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpphash.h (struct cpp_buffer): Remove saved_line_base.
	* cpptrad.c: Update comments.
	(skip_whitespace, copy_comment): Take a new parameter.
	(skip_escaped_newlines): Don't duplicate escaped newline test.
	(copy_comment): Different location for CUR, decide here how
	to copy / replace the comment.
	(skip_whitespace): Copy whitespace.
	(_cpp_overlay_buffer, _cpp_remove_overlay): Don't play with line_base.
	(scan_out_logical_line): Let copy comment handle keeping or
	replacing comments.
	(scan_parameters, _cpp_create_trad_definition): Update.

2002-06-13  Alan Lehotsky  <apl@alum.mit.edu>

	* reload.c (get_secondary_mem,find_reloads_address,
	find_reloads_address_1): Pass reference to MEM to find_reloads_address
	so that LEGITIMIZE_RELOAD_ADDRESS will be called.

2002-06-13  Jessica Han  <jessica@cup.hp.com>

	* defaults.h (TARGET_VTABLE_ENTRY_ALIGN): New.
	(TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
	* doc/tm.texi: Document them.
	* config/ia64/ia64.h (TARGET_VTABLE_ENTRY_ALIGN): New.
	(TARGET_VTABLE_DATA_ENTRY_DISTANCE): New.
	(TARGET_VTABLE_USES_DESCRIPTORS): 4 word descriptors for 32-bit mode.
	(ASM_OUTPUT_FDESC): Likewise.

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

	* diagnostic.c (output_format): Fix thinko.

Thu Jun 13 22:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* config/sh/coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Don't define.
	(DWARF2_UNWIND_INFO): Define to 0.

	* config/sh/sh.c (calc_live_regs): Don't use initial_value
	optimization for PR_MEDIA_REG.

2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpphash.h (_cpp_lex_identifier_trad): Remove.
	* cpplib.c (end_directive): Don't skip, always remove overlay
	apart from #define.
	(prepare_directive_trad): Handle NULL pfile->directive.
	(_cpp_handle_directive): Always call prepare_directive_trad
	if traditional.
	* cppmain.c (check_multiline_token): Rename account_for_newlines,
	generalize inputs.
	(scan_translation_unit_trad): Use it.
	* cpptrad.c (skip_comment): Rename copy_comment, copy comment to
	output, get escaped newline in comment close correct.
	(check_output_buffer, skip_whitespace): Update.
	(_cpp_lex_identifier_trad): Remove.
	(scan_out_logical_line): Handle -C and comments in directives
	properly.

Thu Jun 13 20:18:38 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* config.gcc: Add support for sh[234]*-*-elf*, sh[2346lbe]*-*-linux*.
	* config/sh/linux.h (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
	* sh.h (SELECT_SH1, SELECT_SH2, SELECT_SH3, SELECT_SH3E): New macros.
	(SELECT_SH4_NOFPU, SELECT_SH4_SINGLE_ONLY, SELECT_SH4): Likewise.
	(SELECT_SH4_SINGLE, SELECT_SH5_64, SELECT_SH5_64_NOFPU): Likewise.
	(SELECT_SH5_32, SELECT_SH5_32_NOFPU, SELECT_SH5_COMPACT): Likewise.
	(SELECT_SH5_COMPACT_NOFPU): Likewise.
	(TARGET_SWITCHES): Use them.
	(TARGET_CPU_DEFAULT): Define if not already defined.
	(TARGET_DEFAULT): Use it.
	(LINK_DEFAULT_CPU_EMUL): Value now depends on TARGET_CPU_DEFAULT.
	* config/sh/t-linux (MULTILIB_OPTIONS): Use MULTILIB_ENDIAN.
	* config/sh/t-monolib: New file.

2002-06-13  Roger Sayle  <roger@eyesopen.com>

	* toplev.c (rest_of_compilation): Simplify (and correct) the
	logic of the first delete-null-pointer-checks pass.

Thu Jun 13 18:24:17 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_movstr):  Fix pasto.

Thu Jun 13 18:18:17 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* reload.c (find_valid_class):  Fix thinko in my previous patch.

2002-06-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): New macro.
	* config/s390/linux.h (TARGET_OS_CPP_BUILTINS): New macro.
	(CPP_PREDEFINES, CPP_SPEC, CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): Remove.
	(EXTRA_SPECS): Remove cpp_arch31 and cpp_arch64.

2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>

	* tree-inline.c (expand_call_inline): Don' mess with _DECL
	fields.

2002-06-13  Gabriel Dos Reis  <gdr@codesourcery.com>

	* diagnostic.c (output_format): Recognize "%H" as a format
	specifier for a location_t.
	(text_specifies_location): New function.
	(diagnostic_set_info): Use it.

2002-06-13  Jeffrey Law  <law@redhat.com>

	* emit-rtl.c (static_regno_reg_rtx): Define.
	(init_emit_once): Initialize static_regno_reg_rtx.
	(init_emit): Copy static_regno_reg_rtx into regno_reg_rtx instead
	of building new hard reg objects once per function.
	(gen_rtx_REG): Try to share hard regs.
	* regclass.c (init_fake_stack_mems): New function broken out from
	init_regs.
	* rtl.h (init_fake_stack_mems): Declare.
	* toplev.c (lang_independent_init): Call init_regs before
	init_emit_once.  Call init_fake_stack_mems after init_emit_once.

	* i386.md (extenddfxf2, extenddftf2): Fix typo/thinko.

	* alias.c (argument_registers): Remove.
	(init_alias_once): Initialize static_reg_base_value here.  Remove
	initialization of argument_registers.
	(init_alias_once_per_function): Remove.
	(init_alias_analysis): Copy all the entries from static_reg_base_value
	into new_reg_base_value all at once.
	* rtl.h (init_alias_once_per_function): Remove declaration.
	* function.c (prepare_function_start): Do not call
	init_alias_once_per_function.

	* caller-save.c (init_caller_save): Use gen_rtx_INSN instead of
	starting a sequence and emitting an INSN.

2002-06-13  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/r3900.h (MIPS_CPU_STRING_DEFAULT): Make lower case.

2002-06-13  David S. Miller  <davem@redhat.com>

	* expmed.c (init_expmed): Remove duplicate init of 'reg'.

2002-06-13  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplib.c (end_directive): Handle line skipping.  Only remove
	the rest of the line if the directive was valid.
	* cppmacro.c (_cpp_push_text_context): Set NODE_DISABLED when
	expanding a traditional macro.
	* cpptrad.c (recursive_macro): New.
	(read_logical_line_trad): Handle skipping.
	(scan_out_logical_line): Continue after a successful directive.
	Don't expand macros whilst skipping, or if recursing.
	(_cpp_create_trad_definition): scan_out_logical_line now sets
	the output current position.

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

	From Chris Demetriou  <cgd@broadcom.com>
	* config/mips/mips.h (ISA_HAS_FP4): Add ISA_MIPS64 and fix
	comment.
	(ISA_HAS_MADD_MSUB): Ditto.
	(ISA_HAS_NMADD_NMSUB): Ditto.

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

	* config.gcc: Consolidate little endian handling and
	little/big endian targets.
	* config/mips/elfl.h: Remove file.
	* config/mips/elfl64.h: Ditto.
	* config/mips/ecoffl.h: Ditto.
	* config/mips/r3900.h (SUBTARGET_CPP_SPEC): Remove.

2002-06-12  Geoffrey Keating  <geoffk@redhat.com>

	* gengtype.h (xvasprintf): New prototype.
	(xasprintf): New prototype.
	(struct outf): New.
	(get_output_file): Return an outf_p.
	(header_file): Is now an outf_p.
	(base_files): Now are outf_p.
	(oprintf): New.
	* gengtype.c: Replace all output FILE * with outf_p; use oprintf
	rather than stdio operations.  Use xasprintf in a few places,
	when appropriate.
	(xvasprintf): New.
	(xasprintf): New.
	(struct filemap): Delete.
	(files): Delete.
	(output_files): New.
	(oprintf): New.
	(create_file): Create an outf_p.  Add parameter to indicate output
	file name, change all callers.
	(open_base_files): Create gtype-desc.c here.
	(get_output_file_with_visibility): Rewrite.
	(get_output_file_name): Just look at 'name' field in struct outf.
	(close_output_files): Rewrite.

2002-06-12  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/vax/vax.h (MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
	(MASK_G_FLOAT): Define.
	(TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT): Use them.
	(TARGET_SWITCHES): Likewise.
	(TARGET_DEFAULT): Likewise.

2002-06-12  Daniel Jacobowitz  <drow@mvista.com>

	* config/mips/elf.h (DWARF2_DEBUG_INFO): Define.
	* config/mips/mips.c (mips_output_filename): Don't print a
	".file" directive if we are using DWARF-2.
	(mips_output_function_prologue): Do not emit source file
	name for TARGET_GAS.

Wed Jun 12 16:45:13 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to
	decide whether emit the short opcode.
	* i386.h (x86_shift1): Declare.
	(TARGET_SHIFT1): New macro.
	* i386.c (x86_shift1): New global variable.

	* toplev.c (rest_of_compilation): Call find_basic_block pre-loop
	unconditionally; make loop to rebuild CFG; kill unnecesary
	find_basic_block calls; kill compute_bb_for_insn call.
	* cfgbuild.c (find_basic_blocks): Kill compute_bb_for_insn call.
	* haifa-sched.c (sched_init): Likewise.
	* ssa-ccp.c (ssa_const_prop): Likewise.
	* ssa-dce.c (ssa_eliminate_dead_code): Likewise.

2002-06-11  David S. Miller  <davem@redhat.com>

	* emit-rtl.c (emit_*_scope): Only access INSN_SCOPE if
	active_insn_p.

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

	* c-common.c (builtin_define_type_max): New.
	(cb_register_builtins): Define __SCHAR_MAX__, __SHRT_MAX__,
	__INT_MAX__, __LONG_MAX__, __LONG_LONG_MAX__, __CHAR_BIT__.

	From Joseph S. Myers:
	* glimits.h: Rewrite to expect the double underscore definitions
	from the compiler.

	* config/alpha/unicosmk.h, config/avr/avr.h, config/h8300/h8300.h,
	config/i386/linux64.h, config/ia64/aix.h, config/ia64/hpux.h,
	config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/m68hc11/m68hc12.h,
	config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
	config/pa/pa.h, config/rs6000/aix43.h, config/rs6000/aix51.h,
	config/rs6000/linux64.h, config/s390/linux.h, config/sh/sh.h,
	config/stormy16/stormy16.h: Don't define any of __SHRT_MAX__,
	__INT_MAX__, __LONG_MAX__, or __LONG_LONG_MAX__.

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

	* config/alpha/alpha.c (ALPHA_BUILTIN_THREAD_POINTER): New.
	(ALPHA_BUILTIN_SET_THREAD_POINTER): New.
	(code_for_builtns): Update.
	(alpha_init_builtins): Add __builtin_thread_pointer and
	__builtin_set_thread_pointer.
	(alpha_expand_builtin): Handle void builtins.
	* doc/extend.texi (Alpha Built-in Functions): Update.

2002-06-11  Hans-Peter Nilsson  <hp@axis.com>

	PR target/6997
	* config/cris/cris.md ("sleu"): Set attribute "cc" to "none".

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

	* config.gcc: Make the name of the extra-modes file adjustable
	by target stanzas.
	(s390x, strongarm, xscale stanzas): Use this facility.
	* configure.in: Update to match.
	* configure: Regenerate.

2002-06-11  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_emit_minmax): Treat unsigned
	max/mins as unsigned GE compares.

2002-06-11  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (vax-*-bsd*): Add vax/bsd.h to ${tm_file}.
	* config/vax/bsd.h: New file.
	* config/vax/netbsd.h: Add missing notice.
	(CPP_PREDEFINES): Remove.
	(TARGET_OS_CPP_BUILTINS): Define.
	(CPP_SPEC): Use NETBSD_CPP_SPEC.
	* config/vax/openbsd.h: Update copyright years.
	(CPP_PREDEFINES): Remove.
	(TARGET_OS_CPP_BUILTINS): Define.
	* config/vax/ultrix.h: Likewise.
	* config/vax/vaxv.h: Likewise.
	* config/vax/vms.h: Likewise.
	* config/vax/vax.h (TARGET_CPU_CPP_BUILTINS): Define.
	(CPP_PREDEFINES, CPP_SPEC): Remove.

Wed Jun 12 01:50:28 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (addqi_1_slp, subqi_1_slp
	(andqi_ext0, testqi_ext0): Remove unnecesary check.
	(addhi*, addqi*): Simplify "dec" condition.
	(testsi to testqi splitters): Remove TARGET_PROMOTE_QImode check.
	(and, or, xor to QImode splitters): New.
	(iorqi_ext*): New.
	(xorqi_ext_0): New.
	(xorqi_ext_1): Rename to xorqi_ext_2; bring to sync with and versions.
	(andqi_ext_1_rex64): New.
	(ashrqi*_slp): New.
	(ashlqi*_slp): New.
	(lshlqi*_slp): New.
	(rotrqi3*_slp): New.
	(rotlqi3*_slp): New.

2002-06-11  Geoffrey Keating  <geoffk@redhat.com>

	* config.gcc (powerpc*-*-*, rs6000-*-*-*): Don't bother including
	softfloat.h.
	* config/rs6000/vxppc.h (CPP_ENDIAN_BIG_SPEC): Delete.
	(CPP_ENDIAN_LITTLE_SPEC): Delete.
	* config/rs6000/sysv4le.h (CPP_ENDIAN_DEFAULT_SPEC): Delete.
	* config/rs6000/sysv4.h (CPP_SYSV_SPEC): Delete _SOFT_FLOAT setting,
	__LONG_DOUBLE_128__ setting, _CALL_* setting.
	(CPP_DEFAULT_SPEC): Delete.
	(CPP_FLOAT_DEFAULT_SPEC): Delete.
	(CPP_LONGDOUBLE_DEFAULT_SPEC): Delete.
	(CPP_SYSV_DEFAULT_SPEC): Delete.
	(CPP_ENDIAN_BIG_SPEC): Delete.
	(CPP_ENDIAN_LITTLE_SPEC): Delete.
	(CPP_ENDIAN_SPEC): Delete.
	(CPP_SPEC): Don't include cpp_endian, cpp_cpu.
	(SUBTARGET_EXTRA_SPECS): Delete cpp_sysv_default, cpp_endian_default,
	cpp_endian, cpp_endian_big, cpp_endian_little, cpp_float_default,
	cpp_longdouble_default.
	* config/rs6000/softfloat.h: Delete.
	* config/rs6000/rs6000.h (CPP_CPU_SPEC): Delete.
	(EXTRA_SPECS): Delete cpp_cpu.
	(TARGET_CPU_CPP_BUILTINS): New.
	* config/rs6000/rs6000-protos.h (rs6000_cpu_cpp_builtins): New
	prototype.
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): New.
	* config/rs6000/linux64.h (CPP_PREDEFINES): Remove endianness defines.
	(CPP_DEFAULT_SPEC): Delete.
	* config/rs6000/eabiaix.h (CPP_SYSV_DEFAULT_SPEC): Delete.
	* config/rs6000/darwin.h (CPP_PREDEFINES): Don't define __BIG_ENDIAN__.
	* config/rs6000/beos.h (CPP_SPEC): Remove cpp_cpu.
	(CPP_DEFAULT_SPEC): Delete.
	* config/rs6000/aix51.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
	(CPLUSPLUS_CPP_SPEC): Likewise.
	(CPP_CPU_SPEC): Delete.
	(CPP_DEFAULT_SPEC): Delete.
	* config/rs6000/aix43.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC.
	(CPLUSPLUS_CPP_SPEC): Likewise.
	(CPP_CPU_SPEC): Delete.
	(CPP_DEFAULT_SPEC): Delete.
	* config/rs6000/aix41.h (CPP_SPEC): Remove cpp_cpu.
	(CPP_DEFAULT_SPEC): Delete.
	* config/rs6000/aix.h (CPP_SPEC): Remove cpp_cpu.
	(CPP_DEFAULT_SPEC): Delete.

	* doc/gty.texi: Small updates.

2002-06-12  Gabriel Dos Reis  <gdr@codesourcery.com>

	* objc/objc-act.c (warn_with_ivar): Adjust calls to
	diagnostic_count_error.
	(warn_with_method): Likewise.

	* diagnostic.h (warnings_are_errors_message): New field of
	diagnostic_context.
	(diagnostic_count_error): Rename to diagnostic_count_diagnostic to
	match semantics.
	* diagnostic.c: Adjust calls to diagnostic_count_error through out.
	(diagnostic_count_diagnostic): Make aware of other kinds of
	diagnostics.
	(diagnostic_initialize): Initialize warnings_are_errors_message field.

2002-06-11  Tom Tromey  <tromey@redhat.com>

	For PR java/6520:
	* fold-const.c (fold_convert): Don't modify existing tree's type.

2002-06-11  Geoffrey Keating  <geoffk@redhat.com>

	* config/rs6000/ppc-asm.h: Remove some Windows NT leftovers.

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

	* caller-save.c (init_caller_save): Clear INSN_CODE each iteration.

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

	* defaults.h (EH_FRAME_SECTION_NAME): Don't define if
	DWARF2_UNWIND_INFO is false.

2002-06-11  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/t-xtensa (LIBGCC1_TEST, CROSS_LIBGCC1): Delete.

	* config/s390/s390.c (emit_prologue): gen_store_multiple
	returns an insn now, not a pattern.

2002-06-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.in (gccinstall.dvi): Pass absolute pathnames to
	$(TEXI2DVI) -o.

Tue Jun 11 21:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (x86_promote_QImode): Set for Athlon
	(x86_fast_prefix): New global variable.
	(x86_arch_always_fancy_math_387): Fix formating.
	* i386.h (x86_fast_prefix): Declare
	(TARGET_FAST_PREFIX): define.
	* i386.md (and to strict_low_part, HI to SI
	promoting splitter): Use new macro.

	* i386.h (RTX_COSTS): float_extend is not for free for SSE.

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

	* Makefile.in (distclean): Delete junk left in testsuite
	directory, too.

2002-06-11  Jeffrey Law <law@redhat.com>

	* emit-rtl.c (try_split): Use INSN_LAST, not LAST_INSN to get the
	last insn created by the splitter.

	* caller-save.c (init_caller_save): Move creation of SAVEINSN
	and RESTINSN into the scope of the sequence.

	* mips.c (mips_expand_prologue): Use emit_jump_insn for trivial
	RETURN insns.

	* loop.c (loop_regs_scan): Avoid useless generation of REG objects.

	* mips.c (function_arg_advance): gen_ashldi3 returns an INSN now,
	not the pattern.  So extract the pattern from the insn.

	* mips.c (embedded_pic_fnaddr_reg): Fix typo.

2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md (movsi): Only use floating point
	register alternatives when operands are already fprs.
	(movdi_31, movdi_64): Likewise.

2002-06-11  David S. Miller  <davem@redhat.com>

	* emit-rtl.c (try_split): Do not abort on non-INSN_P.
	Only run RTX equality checks on INSN_P rtl.

2002-06-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md (reload_base, ltorg): Remove.
	* s390.c (s390_stop_dump_lit_p, s390_dump_literal_pool,
	s390_asm_output_pool_prologue, s390_pool_start_insn): Remove.
	* s390-protos.h (s390_stop_dump_lit_p, s390_dump_literal_pool,
	s390_asm_output_pool_prologue): Likewise.
	* s390.h (s390_pool_start_insn): Likewise.

	* s390.c (s390_output_symbolic_const): Remove support for
	old-style pool chunks.
	(s390_function_epilogue): Likewise.
	(s390_output_constant_pool): Likewise.  Also, fix incorrect
	alignment for 64-bit literal pools.
	(print_operand_address): Remove 'y' and 'Y' format flags.
	* s390.h (ASM_OUTPUT_POOL_PROLOGUE): Remove support for
	old-style pool chunks.
	(ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
	(ASM_OUTPUT_POOL_EPILOGUE): Remove.
	(S390_CHUNK_MAX, S390_CHUNK_OV, S390_POOL_MAX): Remove.

	* s390.c (consttable_operand): New function.
	* s390-protos.h (consttable_operand): Declare it.
	* s390.h (PREDICATE_CODES): Add consttable_operand.
	* s390.md (consttable_qi, consttable_hi, consttable_si, consttable_di,
	consttable_sf, consttable_df, pool_start_31, pool_end_31,
	pool_start_64, pool_end_64, reload_base, reload_base2): New insns.
	* s390.c (struct constant, struct constant_pool): New data types.
	(constant_modes, gen_consttable): New variables.
	(s390_start_pool, s390_end_pool, s390_add_pool,
	s390_dump_pool, s390_free_pool): New functions.
	(s390_chunkify_pool): Completely reimplement literal pool
	overflow handling.

	* s390.c (s390_pool_overflow): New variable.
	* s390.h (s390_pool_overflow): Declare it.
	* s390.md (cjump, icjump): Use it to adapt length for out-of-range
	jumps in literal pool overflow situations.

	* s390.c (s390_decompose_address): Accept new-style pool chunk offsets.
	(s390_frame_info): Account for possible use of RETURN_REGNUM
	by new literal pool overflow code.
	(s390_emit_prologue): Likewise.

2002-06-05  David S. Miller  <davem@redhat.com>

	Delete SEQUENCE rtl usage outside of reorg and ssa passes.
	* rtl.h (gen_sequence, emit_insns, emit_insns_before,
	emit_insns_before_scope, emit_insns_after,
	emit_insns_after_scope): Delete declaration.
	* ada/misc.c (insert_code_for): Use emit_insn* instead of
	emit_insns_foo.
	* config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE.
	(alpha_set_memflags): Fix comment.
	(set_frame_related_p): Use get_insns instead of gen_sequence.
	* config/alpha/alpha.md (setjmp receiver splitter): Avoid
	emitting no insns.
	* config/arm/arm.c (arm_finalize_pic): Use get_insns instead of
	gen_sequence.
	(arm_gen_load_multiple, arm_gen_store_multiple): Likewise.
	* config/fr30/fr30.c (fr30_move_double): Likewise.
	* config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr):
	Likewise.
	* config/ia64/ia64.c (spill_restore_mem): Likewise.
	* config/ia64/ia64.md (conditional move spliiter): Avoid emitting
	no insns.
	* config/m32r/m32r.c (gen_split_move_double): Use get_insns
	instead of gen_sequence.
	* config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise.
	(mips_expand_prologue, mips16_gp_pseudo_reg): Likewise.
	* config/sh/sh.c (sh_need_epilogue): Likewise.
	* config/sparc/sparc.md (current_function_calls_alloca, flat): New
	attributes.
	(setjmp pattern and split): Use them to avoid splitter which emits
	no RTL.
	* genattrtab.c (main): Emit include of function.h
	* config/stormy16/stormy16.c (xstormy16_split_cbranch): Use
	get_insns instead of gen_sequence.
	* config/cris/cris.c (cris_split_movdx): Likewise.
	* emit-rtl.c (emit_insns*): Kill.
	(try_split): Expect insn list instead of SEQUENCE.
	(make_jump_insn_raw, make_call_insn_raw): Fix comments.
	(emit_*insn*): Reimplement to work with INSN lists and PATTERNs.
	Make them abort if a SEQUENCE is given and RTL checking is
	enabled.
	(emit_*_scope): Don't forget to set scope on final insn.
	(gen_sequence): Move from here...
	* ssa.c (gen_sequence): To here as private function.
	* builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix
	comments.
	(expand_builtin_return, expand_builtin_mathfn): Likewise.
	(expand_builtin_strlen): Use get_insns instead of gen_sequence.
	(expand_builtin_saveregs): Use emit_insn_foo, fix comments.
	(expand_builtin_expect_jump): Use get_insns and fix comments.
	* calls.c (try_to_integrate): Use emit_insn_foo.
	(expand_call, emit_library_call_value_1): Likewise.
	* expr.c (emit_queue): Handle insn lists instead of SEQUENCE.
	(emit_move_insn_1): Use get_insns instead of gen_sequence.
	(expand_expr): Use emit_insn_foo.
	* cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo.
	* except.c (build_post_landing_pads): Likewise.
	* flow.c (attempt_auto_inc): Likewise.
	* stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label,
	expand_nl_goto_receivers, expand_decl_cleanup): Likewise.
	* function.c (fixup_var_refs_insn): Use get_insns instead of
	gen_sequence.
	(fixup_var_refs_1): Likewise and expect insn list from gen_foo.
	(fixup_memory_subreg): Use get_insns instead of gen_sequence.
	(fixup_stack_1, purge_addressof_1, expand_main_function,
	get_arg_pointer_save_area): Likewise.
	(optimize_bit_field, instantiate_virtual_regs_1, assign_parms,
	expand_function_end): Use emit_insn_foo.
	(record_insns, keep_stack_depressed): Work with insn list instead
	of SEQUENCE, fix comments.
	* ifcvt.c (noce_emit_store_flag, noce_try_store_flag,
	noce_try_store_flag_constants, noce_try_store_flag_inc,
	noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith,
	noce_try_minmax, noce_try_abs): Use emit_insn_foo.
	(noce_process_if_block): Use get_insns instead of gen_sequence.
	* optabs.c (add_equal_note): Work with insn list, fix comments.
	(expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo.
	(expand_unop, expand_complex_abs, expand_unop_insn,
	expand_no_conflict_block): Likewise.
	(gen_move_insn): Use get_insns instead of gen_sequence.
	(gen_cond_trap): Likewise.
	* integrate.c (copy_rtx_and_substitute): Likewise.
	(emit_initial_value_sets): Use emit_insn_foo.
	* reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise.
	(fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently
	now that RTL generators give insn lists.
	* sibcall.c (replace_call_placeholder): Use emit_insn_foo.
	* doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns
	instead of gen_sequence.
	(doloop_optimize): Work with insn lists instead of SEQUENCE rtl.
	* explow.c (emit_stack_save, emit_stack_restore): Use get_insns
	instead of gen_sequence.
	* loop.c (move_movables, emit_prefetch_instructions,
	gen_add_mult, check_dbra_loop, gen_load_of_final_value):
	Likewise.
	(loop_regs_update): Work with insn list instead of SEQUENCE rtl.
	(product_cheap_p): Likewise, and add commentary about RTL wastage
	here.
	* lcm.c (optimize_mode_switching): Use get_insns instead of
	gen_sequence.
	* profile.c (gen_edge_profiler): Likewise.
	* regmove.c (copy_src_to_dest): Likewise.
	* reg-stack.c (compensate_edge): Likewise and fix comment.
	* gcse.c (process_insert_insn): Likewise.
	(insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl.
	* jump.c (delete_prior_computation): Update comment.
	* genemit.c (gen_expand, gen_split, main): Use get_insns instead
	of gen_sequence, update comments to match.
	* recog.c (peephole2_optimize): Work with insn lists instead of
	SEQUENCE rtl.
	* sched-vis.c (print_pattern): Abort on SEQUENCE.
	* unroll.c (unroll_loop, find_splittable_givs, final_giv_value):
	Use get_insns instead of gen_sequence.
	(copy_loop_body): Likewise and don't emit dummy NOTE.
	* genrecog.c: Don't mention SEQUENCE rtl in comments.
	* combine.c (try_combine): Expect insn lists from split generator.
	* reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by
	hand.

2002-06-11  Roger Sayle  <roger@eyesopen.com>
	    Andreas Jaeger <aj@suse.de>

	* cfgbuild.c: Update copyright years.

2002-06-11  Andreas Schwab  <schwab@suse.de>

	* config/m68k/m68k.h (PREDICATE_CODES): Define.

2002-06-11  Eric Christopher  <echristo@redhat.com>

	* doc/tm.texi (Run-time Target): Add comment about flag_iso
	and strict ANSI.
	* config/mips/ecoff.h (CPP_PREDEFINES): Remove.
	* config/mips/ecoffl.h: Ditto.
	* config/mips/elf64.h (SUBTARGET_CPP_SPEC): Remove.
	(CPP_PREDEFINES): Ditto.
	* config/mips/elfl64.h: Ditto.
	* config/mips/elfl.h: Ditto.
	* config/mips/iris3.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): #if 0
	out until irix header consolidation.
	* config/mips/iris5.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): Replace
	with SUBTARGET_OS_CPP_BUILTINS.
	* config/mips/iris6.h: Ditto.
	(CPLUSPLUS_CPP_SPEC): Remove.
	* config/mips/linux.h: Ditto.
	* config/mips/netbsd.h: Ditto.
	* config/mips/openbsd.h: Ditto.
	* config/mips/rtems.h: Ditto.
	* config/mips/rtems64.h: Ditto.
	* config/mips/sni-svr4.h: Ditto.
	* config/mips/mips.h (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4,
	ISA_MIPS32, ISA_MIPS64): New defines.
	(GENERATE_MULT3_SI, HAVE_SQRT_P, ISA_HAS_64BIT_REGS,
	ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4,
	ISA_HAS_COND_TRAP, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
	ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Use.
	(TARGET_CPU_CPP_BUILTINS): Define.
	(CPP_PREDEFINES, LONG_MAX_SPEC, CPP_FPR_SPEC, CPP_SPEC): Remove.
	* config/mips/mips.md (mulsi3_mult3): Use ISA_MIPS32/64.
	(movdicc): Remove check for ISA_MIPS32.
	 (bunordered, bordered, bungt, bunlt, buneq, bunge, bunle,
	sunordered_df, sunordered_sf, sordered_df, sordered_sf,
	sunlt_df, sunlt_sf, sungt_df, sungt_sf, suneq_df, suneq_sf, sunge_df,
	sunge_sf, sunle_df, sunle_sf): New patterns.

2002-06-11  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in: Update cppmain.o.
	* cpphash.h (struct cpp_reader): Move some members to a
	nested structure.
	(trad_line): Rename saved_line.
	(_cpp_read_logical_line_trad): Update.
	(_cpp_remove_overlay): New.
	* cppinit.c (cpp_create_reader): No need to set saved_line.
	(cpp_destroy): Update.
	(cpp_read_main_file): Only overlay if compiling.
	* cpplex.c (continue_after_nul): Return false if in directive.
	* cpplib.c (EXPAND): New.
	(directive_table, SEEN_EOL): Update.
	(end_directive): Remove overlay if traditional; don't skip
	line in traditional #define.
	(prepare_directive_trad): New.
	(_cpp_handle_directive, run_directive): Update for traditional
	directives.
	(lex_macro_node): Simplify, don't use lex_identifier_trad.
	* cpplib.h (struct options): Add preprocess_only.
	* cppmain.c: Don't include intl.h.
	(cpp_preprocess_file): Set options->preprocess_only.
	(scan_translation_unit_trad): Fix, and print line numbers.
	* cpptrad.c (check_output_buffer, lex_identifier, scan_parameters,
	maybe_start_funlike, scan_out_logical_line, replace_args_and_push,
	save_replacement_text, _cpp_create_trad_definition): Update for
	variable renaming.
	(_cpp_overlay_buffer): Save line number.
	(_cpp_remove_overlay): Rename from restore_buff, restore line.
	(_cpp_read_logical_line_trad): Don't handle overlays here.
	(scan_out_logical_line): Process directives.

2002-06-11  Danny Smith  <dannysmith@users.sourforge.net>

	* gthr-win32.h: Wrap functions in extern "C".
	(__gthread_key_t): Typedef as unsigned long,
	not win32 DWORD.
	(__GTHREAD_ONCE_INIT): Use 0, not win32 FALSE.
	(__gthread_mutex_t): Typedef as void*, not win32 HANDLE.
	(__gthr_win32_once, __gthr_win32_key_create,
	__gthr_win32_key_delete, __gthr_win32_getspecific,
	__gthr_win32_setspecific, __gthr_win32_mutex_init_function,
	__gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
	__gthr_win32_mutex_unlock): Declare.
	(__gthread_once,__gthread_key_create,
	__gthread_key_delete, __gthread_getspecific,
	__gthread_setspecific, __gthread_mutex_init_function,
	__gthread_mutex_lock,__gthread_mutex_trylock,
	__gthread_mutex_unlock): Call corresponding
	__gthr_win32_* extern implementations if #defined
	__GTHREAD_HIDE_WIN32API.
	* config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Set to
	$(srcdir)/config/i386/gthr-win32.c
	* config/i386/gthr-win32.c: New implementation file.
	(__gthr_win32_once, __gthr_win32_key_create,
	__gthr_win32_key_delete, __gthr_win32_getspecific,
	__gthr_win32_setspecific, __gthr_win32_mutex_init_function,
	__gthr_win32_mutex_lock,__gthr_win32_mutex_trylock,
	__gthr_win32_mutex_unlock): New functions, based on
	static inlines in gthr-win32.h.

2002-06-10  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (override_options): Don't warn about
	using -fpic or -fPIC when PIC is enabled by default.

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

	* toplev.c (rest_of_compilation): Revert flag_if_conversion change.

2002-06-10  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in (MACHMODE_H): Add @extra_modes_file@.
	* configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def
	exists, substitute its pathname as @extra_modes_file@, define
	EXTRA_MODES_FILE to be an appropriate string to #include it
	with, and define EXTRA_CC_MODES to 1.

	* machmode.def: Update comments.  Include EXTRA_MODES_FILE if
	it's defined.  Get rid of redundancy in calling sequence for
	CC; don't use it to define CCmode, to avoid a warning.
	* libgcc2.c: Include symcat.h for the sake of machmode.def.

	* arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def,
	i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def,
	pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def:
	New files.
	* arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h,
	pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES.

	* doc/sourcebuild.texi, doc/tm.texi: Document new scheme for
	defining extra CC modes.

2002-06-10  Roger Sayle  <roger@eyesopen.com>
	    Andreas Jaeger <aj@suse.de>

	* cfgrtl.c (create_basic_block_structure):  Remove index argument
	and use last_basic_block++ instead.  (create_basic_block): Update.
	* cfgbuild.c (find_basic_blocks_1): Likewise.

	* cfgrtl.c (compute_bb_for_insn): Remove unused "max" argument.
	* haifa-sched.c (sched_init): Update compute_bb_for_insn caller.
	* sched-ebb.c (schedule_ebbs): Likewise.
	* sched-rgn.c (schedule_insns): Likewise.
	* ssa-ccp.c (ssa_const_prop): Likewise.
	* ssa-dcs.c (ssa_eliminate_dead_code): Likewise.
	* toplev.c (rest_of_compilation): Likewise.
	* config/ia64/ia64.c (ia64_reorg): Likewise.

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

	* simplify-rtx.c (simplify_replace_rtx): Allow replacement
	of matching registers.

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

	* toplev.c (rest_of_compilation): Disable early if-conversion pass.
	* gcse.c (bypass_conditional_jumps): Fix typo in setcc test.

2002-06-10  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.h: Improve comments.
	(CPP_SPEC, CPP_PREDEFINES): Don't define.
	(TARGET_CPU_CPP_BUILTINS): Define.
	(CANONICALIZE_COMPARISON): Don't define, replace with comment.
	(PREDICATE_CODES) <"mmix_reg_or_8bit_or_256_operand">: Remove
	unused predicate.
	* config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Add cast to avoid
	compiler warning.
	(mmix_constant_address_p): Remove another
	redundant test before case.
	(mmix_canonicalize_comparison): Remove unused function.
	(mmix_print_operand_address): Don't test and adjust for operand in
	non-canonical format.
	(mmix_reg_or_8bit_or_256_operand): Remove unused predicate.
	(mmix_gen_compare_reg): Don't use CANONICALIZE_COMPARISON.

2002-06-10  Zack Weinberg  <zack@codesourcery.com>

	* config/m32r/m32r.h: Don't define SELECT_CC_MODE.
	* config/m32r/m32r-protos.h: Don't prototype m32r_select_cc_mode.
	* config/m32r/m32r.c: Don't define m32r_select_cc_mode.
	(gen_compare): Use CCmode unconditionally.

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

	PR optimization/6759
	* cse.c (cse_insn): Fold src_eqv just once, store it folded back into
	the REQ_EQUAL note.

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

	PR c/6660
	* c-decl.c (grokfield): Allow user defined types if they declare
	structs or unions for unnamed fields.

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

	PR c/6809
	* print-rtl.c (print_mem_expr): Don't crash on unnamed fields.

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

	PR optimization/6842
	* combine.c (combine_simplify_rtx) [SUBREG]: Don't ICE if VOIDmode
	operand subreg cannot be simplified.

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

	* varasm.c (const_hash): Handle FDESC_EXPR like ADDR_EXPR.
	(compare_constant): Likewise.
	(output_addressed_constants): Likewise.

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

	* cfgcleanup.c (try_optimize_cfg): Make sure merge_blocks doesn't
	merge bb with itself.

2002-06-10  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (builtin_zap): Fix thinkos expanding mask.
	(builtin_zapnot): Likewise.

	* config/alpha/ev5.md: Don't combine shift and mvi insns in one
	reservation.

2002-06-10  Eric Christopher  <echristo@redhat.com>

	* config/i386/i386.c (ix86_osf_output_function_prologue): Remove
	prototype and function.
	(TARGET_ASM_FUNCTION_PROLOGUE): Remove OSF version.
	(call_insn_operand): Remove half pic references.
	(legitimate_address_p): Ditto.
	* config/i386/i386.h: Remove half pic defines.

2002-06-10  Eric Christopher  <echristo@redhat.com>

	* doc/extend.texi (Return Address): Add note explaining the side-
	effects of inlining on __builtin_return_address.

2002-06-10  Tom Tromey  <tromey@redhat.com>

	* Makefile.in (LANGHOOKS_DEF_H): Include langhooks-def.h.
	(c-common.o): Depend on langhooks.h.

2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpphash.h (_cpp_read_logical_line_trad,
	_cpp_expansions_different_trad): Update prototypes.
	* cpplex.c (continue_after_nul): New.
	* cppmain.c: Include cpphash.h.
	(scan_translation_unit_trad): New.
	(cpp_preprocess_file): Call it.
	* cpptrad.c (_cpp_read_logical_line_trad): Take new parameter
	overlay.
	(_cpp_expansions_different_trad): Update prototype.

Mon Jun 10 18:02:24 2002  J"orn Rennecke <joern.rennecke@superh.com>

	Fix cfi generation for SH[1-4]:

	* sh.c (frame_insn): New function.
	(output_stack_adjust): Add parameter emit_fn.  All callers changed.
	(push): Now returns rtx.  Use frame_insn.
	(sh_expand_prologue): Clear RTX_FRAME_RELATED_P for second push
	of a DF register.
	* sh.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN): Define.

2002-06-10  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in (STAGESTUFF): Add s-gtype, gt-*.h, gtype-*.h,
	and gtype-desc.c.
	(mostlyclean): Delete specs.h, options.h, gencheck.h here...
	(distclean): ... not here.  But do delete all testsuite/*.log,
	testsuite/*.sum files here.  Delete mkheaders.  Delete
	po/*.gmo and the testsuite directory in a split tree build.

2002-06-10  Jeffrey Law  <law@redhat.com>

	* alias.c (static_reg_base_value): New to hold RTL for
	items allocated once per function for the aliasing code.
	(init_alias_once_per_function): Initialize static_reg_base_value.
	(init_alias_analysis): Avoid throw-away allocations of RTL by
	using pre-computed values in static_reg_base_value.
	* function.c (prepare_function_start): Call
	init_alias_once_per_function appropriately.
	* rtl.h (init_alias_once_per_function): Declare.
	* caller-save (init_caller_save): Restructure slightly to
	avoid lots of silly RTL generation.
	* expr.c (init_expr_once): Likewise.
	* reload1.c (reload_cse_regs_1): Allocate throw-away register
	RTL object here.  Pass it into children.
	(reload_cse_simplify_operands): Use passed-in register RTL
	object.
	(reload_cse_simplify): Pass through throw-away register
	RTL object.

2002-06-10  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.in (ssa.o): Add dependency on $(RTL_H), which was missing.

2002-06-10  Richard Sandiford  <rsandifo@redhat.com>

	* gcc.c (process_command): Avoid assignment to read-only location.
	Fix sizeof calculation.

2002-06-10  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpphash.h (struct cpp_macro): Put comments on their own lines.
	(_cpp_expansions_different_trad): New.
	* cppmacro.c (warn_of_redefinition): Fix for traditional case.
	* cpptrad.c (canonicalize_text): New.
	(scan_out_logical_line): Handle no arguments correctly.
	(save_replacement_text): Commit memory when finished.
	(_cpp_expansions_different_trad): New.

2002-06-10  Tim Josling  <tej@melbpc.org.au>

	* gengtype.c (unnamed enum containing BASE_FILE_*): Add languages
	TREELANG and COBOL.
	(lang_names): Add treelang and cobol.
	(get_file_basename): Add code to support treelang and cobol as
	4th and 5th users of c-common.c.

2002-06-09  Geoffrey Keating  <geoffk@redhat.com>

	* Makefile.in (install-driver): Install driver as
	$(target_alias)-gcc-$(version).
	* gcc.c (spec_version): Make const.
	(process_command): Handle -V and -b by using exec.
	* doc/invoke.texi (Target Options): Restore -V option,
	update docs for -b option.

2002-06-10  Tim Josling  <tej@melbpc.org.au>

	* configure.in (remaining_languages_check):
	Added check that all languages specified were found.
	Exit if not found. Previous behavior was silent failure.
	* configure: Regenerated.

2002-06-10  Tim Josling  <tej@melbpc.org.au>

	 First steps to making treelang documentation compliant, based on
	 instructions in sourcebuild.texi. Also add to gcc.c list of
	 default languages.

	* doc/contrib.texi: Add self as contributor of treelang.

	* doc/frontends.texi: Add mention of treelang.

	* doc/invoke.texi (Overall Options): Add mention of treelang.

	* doc/standards.texi:  Add mention of treelang.

2002-06-09  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c: Include ggc.h

2002-06-09  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpphash.h (_cpp_push_text_context): Update.
	(_cpp_arguments_ok): New.
	* cppmacro.c (_cpp_arguments_ok): New, split out from...
	(collect_args): ...here.
	(_cpp_push_text_context): Change inputs.
	* cpptrad.c (struct fun_macro, maybe_start_funlike, save_argument,
	replace_args_and_push): New.
	(lex_identifier, _cpp_lex_identifier_trad, scan_parameters):
	Don't use IS macros directly.
	(scan_out_logical_line): Handle function-like macro argument
	collection.
	(push_replacement_text): Update.
	(replacement_length): Remove.
	(_cpp_create_trad_definition): Don't skip whitespace before
	checking for '('.

2002-06-09  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_mcu_types): Update for new devices.
	* config/avr/avr.h (TARGET_SWITCHES, AVR_MEGA): Add -mshort-calls.
	(LINK_SPEC, CRT_BINUTILS_SPECS): Update for new devices.
	* config/avr/avr.md ("type" and "length" attributes): New type
	"xcall", length 1 or 2 if AVR_MEGA.  Use in all patterns that
	output a single "call" or "rcall" insn depending on device size.
	* config/avr/t-avr (MULTILIB_MATCHES): Update for new devices.

2002-06-09  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/{aix43.h,aix5.1} (ASM_CPU_SPEC): Add power3
	synonym for 630.  Add power4.  Remove embedded processors.  Use -m604
	assembler option.
	(CPP_CPU_SPEC): Add power3 and power4.
	(PROCESSOR_DEFAULT): Change to 604e.
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Similar additions.
	(CPP_CPU_SPEC): Similar additions.
	(enum process_type): Add POWER4.
	(RTX_COSTS): Add POWER4.
	(CPP_CPU_SPEC): Similar additions.
	* config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
	(PROCESSOR_DEFAULT64): Define.
	* config/rs6000/rs6000.c (rs6000_override_options): Add power4.
	(rs6000_adjust_cost): Add 603, 604, 604e, 620, 630, Power4 to
	branch adjustment.
	(rs6000_issue_rate): Add Power4.
	* config/rs6000/rs6000.md (cpu attr): Add power4.
	(iu compare): Remove 604, 604e, 620, 630.
	Add basic Power4 scheduling information.
	(mfcr/mtcrf): Change type attribute to cr_logical.

2002-06-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* gengtype.h (error_at_line): Use PARAMS, not VPARAMS.  Add
	ATTRIBUTE_PRINTF_2.
	* gengtype-lex.l: Fix format specifier warning.

	* genautomata.c: Don't include ctype.h or limits.h.  Use ISSPACE,
	not isspace.
	* gengtype-lex.l: Don't include ctype.h and use ISSPACE/ISIDNUM in
	lieu of isspace/IDchar.
	* gengtype.c: Likewise for ctype.h and ISALNUM vs isalnum.
	* read-rtl.c: Likewise for ctype.h.  Don't define ISDIGIT or
	ISSPACE.

2002-06-08  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in (LIBCPP_OBJS): Take out version.o.
	* cpphash.h (cpp_reader): Take out print_version member.
	* cppinit.c: (cpp_handle_option): Don't do anything with
	-version.  Just set help_only for --version, --target-help.
	Just set verbose option for -v.
	(cpp_post_options): Don't print a version string.

2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (TARGET_SECTION_TYPE_FLAGS): New.
	(avr_section_type_flags): New, handle .noinit* sections.

2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/sh/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): Define
	and include netbsd_entry_point.
	(SUBTARGET_LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
	(NETBSD_ENTRY_POINT): Define.

2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/sh/sh.h (SUBTARGET_EXTRA_SPECS): Define empty
	if not already defined.
	(EXTRA_SPECS): Add SUBTARGET_EXTRA_SPECS.

2002-06-08  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_regs_to_save): No need to save any registers
	in a noreturn function.
	(avr_output_function_prologue, avr_output_function_epilogue):
	Correct function size calculation.  Do not crash on empty function.
	(avr_output_function_epilogue): No need for epilogue after a BARRIER.

2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/mips/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
	netbsd_link_spec and netbsd_entry_point.
	(LINK_SPEC): Use %(netbsd_link_spec).
	(NETBSD_ENTRY_POINT): Define.

2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/sparc/netbsd-elf.h (LINK_ARCH32_SPEC): Only specify
	linker emulation.
	(LINK_ARCH64_SPEC): Likewise.
	(LINK_SPEC, NETBSD_ENTRY_POINT): Define.
	(SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and netbsd_entry_point.

2002-06-08  Marc Espie  <espie@openbsd.org>

	* lists.c (free_list):  Fix typo in comment.

2002-06-08  Andreas Jaeger  <aj@suse.de>

	* lcm.c (optimize_mode_switching): Add unused attribute for
	variable.

	* sched-deps.c (sched_analyze): Remove unused variable.

2002-06-08  Gabriel Dos Reis  <gdr@codesourcery.com>

	* diagnostic.def: Don't capitalize diagnostict descriptors.

2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/m68k/netbsd-elf.h (EXTRA_SPECS): Add netbsd_entry_point.
	(LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
	(NETBSD_ENTRY_POINT): Define.

2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/i386/netbsd-elf.h (LINK_SPEC): Define as
	NETBSD_LINK_SPEC_ELF.
	(SUBTARGET_EXTRA_SPECS): Add netbsd_entry_point.
	(NETBSD_ENTRY_POINT): Define.
	* config/i386/netbsd64.h (LINK_SPEC): Use %(netbsd_link_spec).
	(SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and
	netbsd_entry_point.
	(NETBSD_ENTRY_POINT): Define.

2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/alpha/netbsd.h (SUBTARGET_EXTRA_SPECS): Add
	netbsd_link_spec and netbsd_entry_point.
	(LINK_SPEC): Use %(netbsd_link_spec).
	(NETBSD_ENTRY_POINT): Define.

2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/netbsd-elf.h (LINK_SPEC): Rename to...
	(NETBSD_LINK_SPEC_ELF): ...this.  Use %(netbsd_entry_point)
	to specify program entry point.

2002-06-07  Jeff Law <law@redhat.com

	* emit-rtl.c (init_emit): Add hard registers to regno_reg_rtx.
	* combine.c (move_deaths): Use regno_reg_rtx for hard regs rather
	than creating a new register.
	(distribute_notes): Likewise.
	* df.c (df_reg_use_gen): Likewise.
	(df_reg_clobber_gen): Likewise.
	(df_ref_record): Likewise.
	* expr.c (use_regs): Likewise.
	* flow.c (propagate_one_insn): Likewise.
	(mark_set_1): Likewise.
	(mark_used_reg): Likewise.
	* reload.c (emit_reload_insns): Likewise.

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

	* simplify-rtx.c (simplify_gen_relational): Simplify RTL of the form
	(ne (comp x y) 0) into (comp x y) where comp is a comparison code.
	Simplify (eq (comp x y) 0) into (revcomp x y) if the sense of the
	comparison code comp can be reversed.

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

	* fold-const.c (fold) [EQ_EXPR]:  Place both integer and real
	constants last in comparisons.  Optimize (x+1.0)>0.0 into the
	equivalent x > -1.0 when -ffast-math.

2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (mips*-*-netbsd*): Add mips/t-netbsd to ${tmake_file}.
	* config/mips/t-netbsd: New file.

2002-06-07  Zack Weinberg  <zack@codesourcery.com>

	* cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W
	options their own entries.
	(parse_option): Clarify comment.
	(cpp_handle_option): Remove 'ignore' parameter and OPT_W
	special case.  Replace if/strcmp chain for -W options with
	use of new OPT_* entries for them.
	(cpp_handle_options): Update to match.
	* cpplib.h: Remove last parameter to cpp_handle_option from prototype.
	* c-decl.c: Update call to cpp_handle_option.

2002-06-07  Akim Demaille  <akim@epita.fr>

	* gengtype-yacc.y (optionseqopt): Add the ending `;' to the action.
	Whitespace changes.

2002-06-07  Jeffrey Law  <law@redhat.com>

	* sched-deps.c (free_deps): Avoid calling free_INSN_LIST_list
	on empty lists.

2002-06-07  H.J. Lu  (hjl@gnu.org)

	* configure.in: Add --enable-__cxa_atexit.
	* configure: Regenerated.
	* config.in: Likewise.

	* defaults.h (DEFAULT_USE_CXA_ATEXIT): New. Defined to be 0 if
	not defined.

2002-06-07  Gabriel Dos Reis  <gdr@merlin.nerim.net>

	* diagnostic.c (diagnostic_build_prefix): Fix initialization.

2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/mips/netbsd.h (CACHE_FLUSH_FUNC): Define.

2002-06-07  Jason Merrill  <jason@redhat.com>

	* cppexp.c (num_equality_op): Use a temporary variable to work
	around gcc 3.0.4 bug.

2002-06-07  Gabriel Dos Reis  <gdr@codesourcery.com>

	* diagnostic.c (diagnostic_build_prefix): Tidy.

2002-06-07  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpptrad.c (struct block, BLOCK_HEADER_LEN, BLOCK_LEN,
	scan_parameters, save_replacement_text, replacement_length): New.
	(scan_out_logical_line): Take a macro and save parameters if
	non-NULL.
	(_cpp_logical_line_trad): Update.
	(_cpp_create_trad_definition): Update to handle function-like
	macros.
	* cpplex.c (new_buff): Update.
	(struct dummy, DEFAULT_ALIGNMENT, CPP_ALIGN): Move...
	* cpphash.h: ...here.
	(CPP_ALIGN2, _cpp_save_parameter): New.
	* cppmacro.c (save_parameter): Rename, export.
	(parse_params): Update.

2002-06-07  Andreas Jaeger  <aj@suse.de>

	* config/mmix/mmix.c: Remove extra broken prototype for
	mmix_init_machine_status.

2002-06-06  Geoffrey Keating  <geoffk@redhat.com>

	* gengtype.c: Add comments before all the routines.

2002-06-07  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (sh5*-*-netbsd*): Remove sh/t-netbsd-sh5-32
	from and add t-sh64 to ${tmake_file}.
	(sh64*-*-netbsd*): Add t-sh64 to ${tmake_file}.
	* config/sh/t-netbsd-sh5 (LIB1ASMFUNCS): Remove.
	* config/sh/t-netbsd-sh5-32: Remove.
	* config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Use
	MULTILIB_ENDIAN.
	(MULTILIB_DIRNAMES): Define.

Thu Jun  6 23:14:46 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (and promoting splitters): Disable QI to SImode promoting
	when doing so changes immediate to be 32bit.

	* rtl.h (emit_*_scope): Declare.
	* emit-rtl.c (emit_*_scope): New global functions.
	(try_split): Copy scope.
	* ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
	noce_try_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
	noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
	noce_process_if_block, find_cond_trap): Copy scopes.
	* recog.c (peephole2_optimize): likewise.

2002-06-06  Jeffrey Law  <law@redhat.com>

	* h8300.h (OK_FOR_U): Fix thinko exposed by flag checking.

Thu Jun  6 21:06:25 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* gengtype-lex.l (INITIAL): New rule for "'"("\\".|[^\\])"'".

2002-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.in (TEXI_GCCINSTALL_FILES): Define.
	($(docdir)/gccinstall.info): New target.
	(info): Depend on it.
	(gccinstall.dvi): New target.
	(dvi): Depend on it.
	* doc/.cvsignore: Ignore new info files.
	* doc/install.texi (@setfilename): Reflect new info filename.

Thu Jun  6 15:57:23 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (machine_dependent_reorg): Don't set RTX_UNCHANGING_P
	on an UNSPEC.

Thu Jun  6 07:17:43 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	PR objc/6834
	* objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be
	c_common_get_alias_set.
	(LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p.

2002-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): New
	functions.
	* rtl.h (get_first_nonnote_insn, get_last_nonnote_insn): Declare.
	* avr/avr.c (avr_output_function_epilogue): Use above to determine
	function size.
	* pa/pa.c (pa_output_function_prologue): Likewise.

2002-06-05  David S. Miller  <davem@redhat.com>

	* integrate.c (subst_constants): Handle 'B' RTL format.

2002-06-05  Eric Christopher  <echristo@redhat.com>

	* varasm.c (make_decl_rtl): Fix comment for removed
	halfpic.c.

2002-06-05  Eric Christopher  <echristo@redhat.com>

	* Makefile.in: Remove missed halfpic bits.

2002-06-05  Eric Christopher  <echristo@redhat.com>

	* toplev.c: Remove half-pic.
	* config/mips/mips.c: Ditto.
	* config/mips/mips.h: Ditto. Remove unused defines.
	* config/mips/openbsd.h: Update comment to reflect above.
	* config/mips/mips.md: Remove half-pic constraints.
	* halfpic.h: Delete.
	* halfpic.c: Ditto.

2002-06-05  Jeffrey Law  <law@redhat.com>

	* pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it
	rejects (mem (lo_sum (reg) (unspec))), but will allow
	(mem (lo_sum (reg) (symbol_ref)) for PA2.0.

2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpphash.h (_cpp_create_definition): Update prototype.
	(_cpp_push_text_context, _cpp_create_trad_definition): New.
	( cpp_lex_identifier_trad): New.
	(_cpp_set_trad_context): New.
	* cppinit.c (cpp_finish_options): Don't conditionalize builtins.
	* cpplib.c (SEEN_EOL): Update.
	(lex_macro_node): Update for -traditional.
	(cpp_push_buffer, _cpp_pop_buffer): Similarly.
	* cppmacro.c (_cpp_create_definition): Split into
	create_iso_definition() and _cpp_create_trad_definition().
	(warn_of_redefinition): Update prototype; handle traditional
	macros.
	(_cpp_push_text_context): New.
	* cpptrad.c (skip_whitespace, push_replacement_text): New.
	(lex_identifier): Call ht_lookup with correct start.
	(_cpp_lex_identifier_tradm _cpp_create_trad_definition,
	_cpp_set_trad_context): New.
	(scan_out_logical_line): Update to handle changing contexts.

Wed Jun  5 20:42:31 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* config.gcc (sh-*-elf*,  sh64*-*-elf*): Unify.
	(shl*-*-elf*): Add.
	* config/sh/t-be (MULTILIB_ENDIAN): Set.
	* config/sh/t-le (MULTILIB_ENDIAN): Likewise.
	* t-sh (MULTILIB_ENDIAN): Set.
	(MULTILIB_OPTIONS): Use it.
	* t-sh64 (MULTILIB_OPTIONS): Likewise.
	(MULTILIB_DIRNAMES): Likewise.

2002-06-05  Gabriel Dos Reis  <gdr@codesourcery.com>

	* toplev.h (report_error_function): Remove.

	* diagnostic.h (location_t): New datatype.
	(text_info): Likewise.
	(diagnostic_info): Likewise.
	(output_prefix): New macro.
	(diagnostic_last_function_changed): Likewise.
	(diagnostic_set_last_function): Likewise.
	(diagnostic_last_module_changed): Likewise.
	(diagnostic_set_last_module): Likewise.
	(report_diagnostic): Now macro.
	(diagnostic_set_info): Declare.

	* diagnostic.c (report_problematic_module): Rename to
	diagnostic_repor_current_module.
	(set_diagnostic_context): Remove.
	(count_error): Rename to diagnostic_error_count.
	(error_function_changed): Remove.
	(record_last_error_function): Likewise.
	(error_module_changed): Likewise.
	(record_last_error_module): Likewise.
	(context_as_prefix): Rename to diagnostic_build_prefix.
	(flush_diagnostic_buffer): Rename to diagnostic_flush_buffer.
	(diagnostic_set_info): New function.

	* objc/objc-act.c: #include diagnostic.h
	(error_with_ivar): Adjust call to count_error.
	(warn_with_method): Likewise.
	* objc/Make-lang.in (objc-act.o): Depend on diagnostic.h

2002-06-05  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_build_va_list): Use
	lang_hooks.types.make_type instead of make_node; set up
	__va_list_tag type decl.
	(xtensa_builtin_saveregs): Remove broken use of
	RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P
	for saved registers; add varargs alias set.

2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>

config:
	* alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS.
	* i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than
	CPP_PREDEFINES and part of CPP_SPEC.
	i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h,
	i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly.

Wed Jun  5 15:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* reg-stack.c (reg_to_stack): Do not call find_basic_blocks.

2002-06-05  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.

2002-06-04  Zack Weinberg  <zack@codesourcery.com>

	* gengtype-yacc.y: Make sure all rules end with a semicolon.

2002-06-04  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
	typo in function prototype and include "ggc.h" header.

2002-06-04  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
	(print_operand) ['U']: Likewise.
	(alpha_expand_unaligned_store): Correct constants for 32-bit cross.
	(alpha_expand_unaligned_store_words): Likewise.
	(alpha_expand_builtin_vector_binop): Fix typo.
	(enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
	umulh, and cix insns.
	(one_arg_builtins): Add cix builtins.
	(two_arg_builtins): Add ext, ins, msk, umulh builtins.
	(alpha_expand_builtin): Fix typo in arity.
	* config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
	(builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
	builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
	builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
	builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
	builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
	builtin_ctlz, builtin_ctpop): New.
	* doc/extend.texi (Alpha Built-in Functions): Update.

2002-06-04  Geoffrey Keating  <geoffk@redhat.com>

	* gengtype.c (write_gc_root): Don't unnecessarily prevent
	global variable-length arrays being roots.

	* config.gcc (powerpc-*-darwin*): Set config_gtfiles.
	* configure.in (config_gtfiles): New variable.
	(all_gtfiles): Initialize from config_gtfiles.
	* configure: Regenerate.

2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>

config/i386:
	* beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
	i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
	mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
	sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
	win32.h	(CPP_SPEC): Remove cpp_cpu.
	* i386.h (TARGET_CPU_CPP_BUILTINS): Use.
	(CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!

2002-06-04  Janis Johnson  <janis187@us.ibm.com>

	* config/ia64/ia64.c (gen_thread_pointer): Fix variable name.

2002-06-04  Jeff Law <law@redhat.com.
	    David Edelsohn <edelsohn@gnu.org>
	    Michael Matz <matz@kde.org>

	* sched-int.h (struct deps): New field libcall_block_tail_insn.
	* sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
	* sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
	is set, then mark the current insn as being part of a libcall
	scheduling group.
	(sched_analyze): Set and clear libcall_block_tail_insn appropriately.

	* haifa-sched.c (schedule_block): Do not count USE or CLOBBER
	insns against the issue rate.

Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
	* final.c (final_scan_insn): Likewise.
	* ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
	NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
	* haifa-sched.c (unlink_other_notes): Likeewise.
	(reemit_notes): Likewise.
	* print-rtl.c (print_rtx): Likewise.
	* sched-deps (sched-analyze): Likewise.
	* rtl.c (note_insn_name): Likewise.
	* rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
	(enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
	(RANGE_*): Kill.

2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>

	* varasm.c (mark_constants): Handle RTX format 'B'.

2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
	(struct cpp_context): Add traditional fields.
	* cppmacro.c (paste_all_tokens, push_ptoken_context,
	push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
	* cpptrad.c (skip_comment, lex_identifier,
	_cpp_read_logical_line_trad, scan_out_logical_line): Update.

2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>

	* gbl-ctors.h: Fix formatting.
	* gcc.c: Likewise.
	* gccspec.c: Likewise.
	* gcov.c: Likewise.
	* gcov-io.h: Likewise.
	* gcse.c: Likewise.
	* ggc-common.c: Likewise.
	* ggc.h: Likewise.
	* ggc-page.c: Likewise.
	* ggc-simple.c: Likewise.
	* global.c: Likewise.
	* graph.h: Likewise.
	* gthr-dce.h: Likewise.
	* gthr.h: Likewise.
	* gthr-posix.h: Likewise.
	* gthr-rtems.h: Likewise.
	* gthr-solaris.h: Likewise.
	* gthr-win32.h: Likewise.

2002-06-03  Geoffrey Keating  <geoffk@redhat.com>

	Merge from pch-branch:

	* gengtype.h (UNION_OR_STRUCT_P): New macro.
	* gengtype.c (write_gc_structure_fields): Use it.
	(write_gc_root): Use it here too.

	* gengtype.c (write_gc_structure_fields): Assume that lengths
	of typenames fit into an 'int'; don't pass a size_t to "%d" in
	printf.
	(write_gc_marker_routine_for_structure): Likewise.
	(write_gc_types): Likewise.
	(write_gc_root): Likewise.

	* varray.h (VARRAY_CLEAR): New.
	(varray_clear): Prototype.
	* varray.c (varray_clear): New.
	* cselib.c (reg_values_old): New.
	(used_regs_old): New.
	(cselib_init): Use cached varrays if available to avoid
	generating large amounts of garbage.
	(cselib_finish): Don't throw away old varrays.

	* final.c (insn_addresses_): Move out of ifdef.

	* varray.c (uses_ggc): Make more varray kinds GCable.
	* varray.h (union varray_data_tag): Let gengtype see
	fields 'generic' and 'te'.
	* reg-stack.c: Include gt-reg-stack.h, ggc.h.
	(stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
	(reg_to_stack): Don't call VARRAY_FREE.
	* insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
	(insn_addresses_): Use gengtype to mark.
	* gengtype.c (write_gc_structure_fields): Handle arrays of generic
	pointers; handle generic pointers in unused union fields.
	(get_output_file_with_visibility): Include cselib.h,
	insn-addr.h in gtype-desc.c.
	* function.c (prologue): Use gengtype to mark.
	(epilogue): Likewise.
	(sibcall_epilogue): Likewise.
	* dependence.c: Include gt-dependence.h, ggc.h.
	(struct def_use): Use gengtype to mark.
	(struct loop): Likewise.
	(struct induction): Likewise.
	(struct dependence): Likewise.
	(def_use_chain): Likewise.
	(dep_chain): Likewise.
	(loop_chain): Likewise.
	(induction_chain): Likewise.
	(init_dependence_analysis): Don't free anything, just clear pointers.
	(build_def_use): Use GGC to allocate def_use.
	(add_loop): Use GGC to allocate loop.
	(find_induction_variable): Use GGC to allocate induction.
	(check_node_dependence): Use GGC to allocate induction, dependence.
	(dump_node_dependence): Don't free varrays.
	(end_dependence_analysis): Likewise.
	* cselib.h (struct cselib_val_struct): Use gengtype to mark.
	(struct elt_loc_list): Likewise.
	(struct elt_list): Likewise.
	* cselib.c: Don't include obstack.h.
	(hash_table): Use gengtype to mark.
	(reg_values): Use gengtype to mark.
	(used_regs): Use gengtype to mark.
	(cselib_obstack): Delete.
	(cselib_startobj): Delete.
	(empty_vals): Mark as deletable.
	(empty_elt_lists): Mark as deletable.
	(empty_elt_loc_lists): Mark as deletable.
	(new_elt_list): Use GGC to allocate struct elt_list.
	(new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
	(clear_table): Don't delete obstack; don't unnecessarily clear
	deletable variables.
	(new_cselib_val): Use GGC to allocate struct cselib_val.
	(cselib_init): Don't set up obstacks.  Use GGC to allocate
	hash table.
	(cselib_finish): Just clear variables, don't free anything.
	* Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
	(reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
	(dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
	(GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
	(gt-reg-stack.h): New rule.
	(gt-dependence.h): New rule.
	(gtype-desc.o): Add cselib.h, insn-addr.h.

	* varray.c: Use only necessary headers.
	(element_size): New.
	(uses_ggc): New.
	(varray_init): Take type, not size.  Use GGC if appropriate.
	(varray_grow): Update for change to struct varray_head_tag.
	Use GGC if appropriate.
	* varray.h (struct const_equiv_data): Use gengtype.
	(enum varray_data_enum): New.
	(union varray_data_tag): Use gengtype.
	(struct varray_head_tag): Use gengtype.  Replace size field with
	enum varray_data_enum.
	(varray_init): Update prototype.
	(VARRAY_SCHED_INIT): Delete.
	(VARRAY_*_INIT): Update for change to varray_init.
	(VARRAY_SCHED): Delete.
	(VARRAY_PUSH_SCHED): Delete.
	(VARRAY_TOP_SCHED): Delete.
	* tree.h: Update for change to length specifier.
	* tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
	(clone_body): Likewise.
	* ssa.h (ssa_definition): Use gengtype to mark.
	* ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
	* ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
	* rtl.h (struct rtvec_def): Update for change to length specifier.
	* integrate.c (expand_inline_function): Don't use VARRAY_FREE.
	(struct initial_value_struct): Update for change to length specifier.
	* ggc.h (ggc_add_rtx_varray_root): Delete prototype.
	(ggc_add_tree_varray_root): Delete prototype.
	(ggc_mark_rtx_varray): Delete prototype.
	(ggc_mark_tree_varray): Delete prototype.
	* ggc-common.c (ggc_add_rtx_varray_root): Delete.
	(ggc_add_tree_varray_root): Delete.
	(ggc_mark_rtx_varray): Delete.
	(ggc_mark_tree_varray): Delete.
	(ggc_mark_rtx_varray_ptr): Delete.
	(ggc_mark_tree_varray_ptr): Delete.
	* gengtype.h (enum typekind): Remove TYPE_VARRAY.
	(create_varray): Delete prototype.
	* gengtype.c (varrays): Delete.
	(create_varray): Delete.
	(adjust_field_type): Detect array of string pointers.
	(process_gc_options): Remove code to handle varray_type option.
	(set_gc_used_type): Remove TYPE_VARRAY case.
	(output_escaped_param): New.
	(write_gc_structure_fields): Use output_escaped_param on all
	parameters.  Handle 'skip' with 'use_param' option.  Handle
	arrays of strings.  Remove TYPE_VARRAY handling.
	(write_gc_roots): Use boolean to detect 'length' option.
	* gengtype-yacc.y (VARRAY_TYPE): Delete token.
	(struct_fields): Call adjust_field_type on array fields.
	(type): Remove VARRAY_TYPE case.
	(type_option): Likewise.
	* gengtype-lex.l: Don't consider varray_type a keyword.
	* function.h: Update for change to length specifier.
	(free_eh_status): Delete prototype.
	* function.c (free_after_compilation): Don't call free_eh_status.
	(reorder_blocks): Don't use VARRAY_FREE.
	* except.c (struct eh_status): Update for change to length specifier.
	remove varray_type specifier.
	(free_eh_status): Delete.
	* dwarf2out.c: Include gt-dwarf2out.h.
	(used_rtx_varray): Use gengtype to mark, move
	outside ifdefs.
	(incomplete_types): Likewise.
	(decl_scope_table): Likewise.
	(dwarf2out_init): Don't call ggc_add_tree_varray_root.
	* cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
	* c-tree.h (struct lang_type): Update for change to length specifier.
	* c-parse.in (yylexstring): Don't use VARRAY_FREE.
	* c-objc-common.c: Include gt-c-objc-common.h.
	(deferred_fns): Mark for gengtype.
	(c_objc_common_init): Don't call ggc_add_tree_varray_root.
	(expand_deferred_fns): Just set deferred_fns to 0 to free it.
	* Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
	(gtype-desc.o): Update dependencies.
	(dwarf2out.o): Add gt-dwarf2out.h.
	(varray.o): Update dependencies.
	(GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
	(gt-c-objc-common.h): New rule.
	(gt-dwarf2out.h): New rule.
	* objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.

	* doc/gty.texi (GTY Options): Correct spelling.
	(GGC Roots): Likewise.
	* Makefile.in (TEXI_CPP_FILES): New.
	(TEXI_GCC_FILES): New.
	(TEXI_GCCINT_FILES): New.
	(TEXI_CPPINT_FILES): New.
	($(docdir)/cpp.info): Use new macros.
	($(docdir)/gcc.info): Likewise.
	($(docdir)/gccint.info): Likewise.
	($(docdir)/cppinternals.info): Likewise.
	(cpp.dvi): Likewise.
	(gcc.dvi): Likewise.
	(gccint.dvi): Likewise.
	(cppinternals.dvi): Likewise.

	* Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
	* doc/gccint.texi (Top): Include gty.texi.
	* doc/gty.texi: New file.

	* bitmap.c: Include ggc.h, gt-bitmap.h.
	(bitmap_ggc_free): New.
	(bitmap_elem_to_freelist): New.
	(bitmap_element_free): Use bitmap_elem_to_freelist.
	(bitmap_element_allocate): Allow use of GGC.
	(bitmap_clear): Use bitmap_elem_to_freelist.
	(bitmap_copy): Update for change to bitmap_element_allocate.
	(bitmap_set_bit): Likewise.
	(bitmap_operation): Update for changes elsewhere.
	(bitmap_initialize): Allow to create bitmaps that will use GGC.
	* bitmap.h (struct bitmap_element_def): Use gengtype.
	(struct bitmap_head_def): Likewise.  Also add 'using_obstack' field.
	(bitmap_initialize): Add extra parameter.
	(BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
	(BITMAP_ALLOCA): Delete.
	(BITMAP_XMALLOC): Update for change to bitmap_initialize.
	(BITMAP_GGC_ALLOC): New.
	* Makefile.in (gtype-desc.o): Add bitmap.h.
	(bitmap.o): Add gt-bitmap.h, $(GGC_H).
	(GTFILES): Add bitmap.c.
	(gt-bitmap.h): New rule.
	($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
	* basic-block.h: Update for changes to bitmap_initialize.
	* except.c (exception_handler_label_map): Move into...
	(struct eh_status): Here.
	(struct eh_region): Make 'aka' GCable.
	(free_eh_status): Don't need to specially handle
	exception_handler_label_map.
	(add_ehl_entry): Update for changes to exception_handler_label_map.
	(find_exception_handler_labels): Likewise.
	(remove_exception_handler_label): Likewise.
	(maybe_remove_eh_handler): Likewise.
	(for_each_eh_label): Likewise.
	(remove_eh_handler): Allocate 'aka' using GGC.
	* gengtype.c (get_output_file_with_visibility): Add bitmap.h
	to list of includes.

	* gengtype.c (write_gc_marker_routine_for_structure): Name
	the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.
	(write_gc_types): Arrange for the tests with NULL to be inlined.
	(write_gc_roots): Update uses of procedure pointers.
	* ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.

	* Makefile.in (explow.o): Add dependency on gt-explow.h.
	(sdbout.o): Add dependency on gt-sdbout.h.

	* emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
	(mem_attrs_htab): Likewise.
	(init_emit_once): Don't call ggc_add_deletable_htab.
	* fold-const.c (size_htab): Use gengtype to clear unused entries.
	(size_int_type_wide): Don't call ggc_add_deletable_htab.
	* gengtype.c (finish_root_table): Add LASTNAME and TNAME
	parameters, use them, change callers.
	(write_gc_root): Add IF_MARKED parameter, use it, change callers.
	(write_gc_roots): Handle 'if_marked' option.
	(main): Don't need to call set_gc_used_type any more.
	* ggc.h (ggc_htab_marked_p): Delete.
	(ggc_htab_mark): Delete.
	(struct ggc_cache_tab): New.
	(gt_ggc_cache_rtab): New declaration.
	* ggc-common.c (struct d_htab_root): Delete.
	(d_htab_roots): Delete.
	(ggc_add_deletable_htab): Delete.
	(ggc_htab_delete): Handle new htab-deleting mechanism.
	(ggc_mark_roots): Use new htab-deleting mechanism.
	* tree.c (type_hash_table): Use gengtype to clear unused entries.
	Make static.
	(init_obstacks): Don't call ggc_add_deletable_htab.

	* objc/objc-act.h (struct hashed_attribute): Use gengtype.
	(struct hashed_entry): Likewise.
	(nst_method_hash_list): Likewise.
	(cls_method_hash_list): Likewise.
	(HASH_ALLOC_LIST_SIZE): Delete.
	(ATTR_ALLOC_LIST_SIZE): Delete.
	* objc/objc-act.c (hash_init): Use ggc to allocate
	nst_method_hash_list, cls_method_hash_list.
	(hash_enter): Use ggc to allocate; allocate one entry at a time.
	(hash_add_attr): Likewise.
	(ggc_mark_hash_table): Delete.
	(objc_act_parse_init): Delete.
	(objc_init): Delete reference to objc_act_parse_init.
	* tlink.c: Replace hash.h with hashtab.h.  Explicitly include
	obstack.h.  Replace references to 'struct hash_table' with htab_t.
	(struct symbol_hash_entry): Replace hash header with key field.
	(struct file_hash_entry): Replace hash header with key field.
	(struct demangled_hash_entry): Replace hash header with key field.
	(hash_string_eq): New.
	(hash_string_hash): New.
	(symbol_hash_newfunc): Delete.
	(symbol_hash_lookup): Modify to use htab_t.
	(file_hash_newfunc): Delete.
	(file_hash_lookup): Modify to use htab_t.
	(demangled_hash_newfunc): Delete.
	(demangled_hash_lookup): Modify to use htab_t.
	(tlink_init): Modify to use htab_t.
	* hash.h: Delete.
	* hash.c: Delete.
	* ggc.h: Delete forward structure declarations.
	Delete prototypes for deleted functions.
	* ggc-common.c: Don't include hash.h.
	(ggc_add_tree_hash_table_root): Delete.
	(ggc_mark_tree_hash_table_entry): Delete.
	(ggc_mark_tree_hash_table): Delete.
	(ggc_mark_tree_hash_table_ptr): Delete.
	* gengtype.c (write_gc_structure_fields): Allow param_is option.
	(write_gc_marker_routine_for_structure): Use visibility of
	the parameter if there is one.
	* function.c: Replace hash.h with hashtab.h.  Replace references
	to 'struct hash_table *' with htab_t.
	(struct insns_for_mem_entry): Include a plain key.
	(fixup_var_refs_insns_with_hash): Update to use htab_t.
	(insns_for_mem_newfunc): Delete.
	(insns_for_mem_hash): Update to use htab_t.
	(insns_for_mem_comp): Likewise.
	(insns_for_mem_walk): Likewise.
	* c-lang.c: Include ggc.h.
	* Makefile.in (OBJS): Remove hash.o.
	(c-lang.o): Add GGC_H.
	(COLLECT2_OBJS): Remove hash.o.
	(tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
	(ggc-common.o): Remove hash.h.
	(function.o): Remove hash.h, add HASHTAB_H.
	(genautomata.o): Remove hash.h, add HASHTAB_H.

	* varasm.c (mark_const_str_htab_1): Delete.
	(mark_const_str_htab): Delete.
	(const_str_htab_del): Delete.
	(const_str_htab): Use gengtype to mark.
	(init_varasm_once): Use gengtype to mark hashtables.  Use GC to
	allocate them.
	* tree.c (mark_tree_hashtable_entry): Delete.
	(mark_tree_hashtable): Delete.
	* tree.h (mark_tree_hashtable): Delete prototype.
	* ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
	(ggc_mark): Likewise.
	(ggc_calloc): New.
	(htab_create_ggc): New.
	* ggc-common.c (ggc_calloc): New.
	* gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
	(struct type): Add param_struct structure.
	* gengtype.c (param_structs): New.
	(adjust_field_type): Handle param_is option.
	(set_gc_used_type): Handle TYPE_PARAM_STRUCT.
	(get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
	(write_gc_structure_fields): Add new PARAM parameter.  Update
	callers.  Handle use_param option.  Handle TYPE_PARAM_STRUCT.
	(write_gc_marker_routine_for_structure): Add new PARAM parameter.
	Use it to generate function name.  Update callers.
	(write_gc_types): Add new PARAM_STRUCTS parameter.  Update callers.
	Process them.
	(write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
	option.
	(main): Define PTR as pointer-to-scalar.  Don't specially
	mark deferred_string or ehl_map_entry.
	* gengtype-yacc.y (PARAM_IS): Add new token.
	(externstatic): Use adjust_field_type.
	(type_option): Add PARAM_IS.
	* gengtype-lex.l: Add rule for typedef of function pointers.
	Add rule for PARAM_IS.
	(IWORD): Add size_t.
	* except.c (exception_handler_label_map): Use gengtype to mark.
	(type_to_runtime_map): Likewise.
	(mark_ehl_map_entry): Delete.
	(mark_ehl_map): Delete.
	(init_eh): Use gengtype for roots; use GC to allocate hash tables.
	(t2r_mark_1): Delete.
	(t2r_mark): Delete.
	* Makefile.in (gtype-desc.o): Correct dependencies.
	(GTFILES): Add hashtab.h.
	(genautomata.o): Actually uses hashtab.h.

	* Makefile.in (stringpool.o): Add $(GGC_H).
	(dwarf2asm.o): Likewise.
	(GTFILES): Add hashtable.h.
	* c-common.h (struct c_common_identifier): Use gengtype.
	* c-decl.h (c_mark_tree): Delete.
	* c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
	* c-tree.h (struct lang_identifier): Use gengtype.
	(union lang_tree_node): New.
	(c_mark_tree): Delete prototype.
	* dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy
	dwarf2_debug_hooks.
	* gengtype-lex.l (IWORD): Allow 'bool'.
	(ptr_alias): Match.
	* gengtype-yacc.y (ALIAS): New token.
	(type_option): New rule.
	(option): Use type_option.
	* gengtype.c (process_gc_options): New.
	(set_gc_used_type): Use it.
	(write_gc_structure_fields): Add 'bitmap' parameter, change callers.
	Add new variable 't' to hold the type of the field being processed.
	Add more error checking.  Use UNION_P when looking at 'desc' option.
	Handle language-specific structures containing other
	language-specific structures.
	(write_gc_types): Handle 'ptr_alias' option.
	(main): Don't need to specially output lang_type, lang_decl, lang_id2.
	* ggc-common.c (ggc_pending_trees): Delete.
	(ggc_mark_roots): Don't manipulate ggc_pending_trees.
	(ggc_mark_trees): Delete.
	(gt_ggc_m_tree_node): Delete.
	* ggc.h (ggc_pending_trees): Delete.
	(ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
	* hashtable.h (ht_identifier): Use gengtype.
	* langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
	* langhooks.h (struct lang_hooks): Delete mark_tree.
	* sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
	anyway.
	* system.h: Poison LANG_HOOKS_MARK_TREE.
	* tree.c (tree_node_structure): New.
	* tree.h (struct tree_common): Use gengtype.
	(struct tree_int_cst): Likewise.
	(struct tree_real_cst): Likewise.
	(struct tree_string): Likewise.
	(struct tree_complex): Likewise.
	(struct tree_vector): Likewise.
	(struct tree_identifier): Likewise.
	(struct tree_list): Likewise.
	(struct tree_vec): Likewise.
	(struct tree_exp): Likewise.
	(struct tree_block): Likewise.
	(struct tree_type): Likewise.
	(struct tree_decl): Likewise.
	(enum tree_structure_enum): New.
	(union tree_node): Use gengtype, with an alias.
	(tree_node_structure): Prototype.
	* objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.

	Merge to tag pch-merge-20020430.  The LANG_HOOKS_FUNCTION_MARK
	macro was deleted.  The LANG_HOOKS_FUNCTION_FREE macro was renamed
	to LANG_HOOKS_FUNCTION_FINAL.
	* Makefile.in (GTFILES): Add bitmap.h.
	* except.c (struct eh_region): Mark field 'aka' to be skipped.

	* config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
	(alpha_init_machine_status): Give proper type.
	* Makefile.in (c-lang.o): Depend on gtype-c.h.
	(optabs.o): Depend on gt-optabs.h.
	(GTFILES): Add optabs.o.
	(gt-optabs.h): Add rule.
	* optabs.c: Include gt-optabs.h.

	* gengtype.c (set_gc_used_type): Correct some errors in last change.
	(write_gc_structure_fields): If a field which should be NULL is
	not, abort.
	* c-pragma.c: Move struct align_stack and variable alignment_stack
	out from the ifdef.

	* config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
	* config/xtensa/xtensa.c: Include gt-cris.h.
	(struct machine_function): Use gengtype	to mark.
	* config/mmix/mmix.h (struct machine_function): Use gengtype
	to mark.
	* config/cris/t-cris: Add dependencies for gt-cris.h.
	* config/cris/cris.c: Include gt-cris.h.
	(struct machine_function): Use gengtype	to mark.
	* config/rs6000/rs6000.h (struct machine_function): Use gengtype
	to mark.
	* doc/tm.texi (Per-Function Data): Delete references to
	mark_machine_status.
	* config/ia64/ia64.c (ia64_override_options): Don't set
	mark_machine_status.
	* config/i386/i386.c (override_options): Likewise.
	* config/d30v/d30v.c (d30v_init_expanders): Likewise.
	* config/arm/arm.c (arm_init_expanders): Likewise.
	* config/alpha/alpha.c (override_options): Likewise.
	* gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO.
	* gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
	(write_gc_structure_fields): Don't handle 'really' option.
	Handle 'maybe_null' option.
	(write_gc_types): Handle 'maybe_null' option.
	* function.h (struct function): Don't use "really".
	(mark_machine_status): Delete declaration.
	(mark_lang_status): Delete declaration.
	(gt_ggc_mr_machine_function): Delete prototype.
	(gt_ggc_mr_language_function): Delete prototype.
	* function.c (mark_machine_status): Delete.
	(mark_lang_status): Delete.
	(gt_ggc_mr_machine_function): Delete.
	(gt_ggc_mr_language_function): Delete.
	* c-tree.h (mark_c_function_context): Delete prototype.
	* c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
	* c-decl.c (struct language_function): Rename from struct
	c_language_function.  Update uses.  Use gengtype to mark.
	(mark_c_function_context): Delete.
	* c-common.h (struct c_language_function): Rename from struct
	language_function.
	(mark_stmt_tree): Delete prototype.
	(c_mark_lang_decl): Delete prototype.
	(mark_c_language_function): Delete prototype.
	* c-common.c (mark_stmt_tree): Delete.
	(c_mark_lang_decl): Delete.
	(mark_c_language_function): Delete.

	* gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
	(lang_bitmap): New typedef.  Use where appropriate.
	(struct type): Add gc_used field, lang_struct field.
	(UNION_P): New macro.
	(new_structure): New prototype.
	(find_structure): Remove 'pos' parameter.  Change all callers.
	* gengtype-lex.l: Update for changes to find_structure.
	* gengtype-yacc.y (typedef_struct): Use new_structure.
	(yacc_ids): Suppress warning.
	(type): Use new_structure.
	* gengtype.c (string_type): Update for changes to struct type.
	(find_structure): Just find a structure, don't worry about
	creating one.
	(new_structure): New.
	(note_yacc_type): Use new_structure.
	(set_gc_used_type): New.
	(set_gc_used): New.
	(write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
	(write_gc_types): Handle TYPE_LANG_STRUCT.
	(write_gc_marker_routine_for_structure): New.
	(main): Call set_gc_used.  Add some calls to set_gc_used_type
	for places where GCC doesn't use gengtype properly yet.
	* ggc.h (gt_ggc_m_rtx_def): Don't prototype.
	(gt_ggc_m_tree_node): Likewise.

	* varasm.c (copy_constant): Call expand_constant if we hit
	something we can't recognize.

	* ggc-common.c (ggc_mark_rtvec_children): Delete.
	(ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
	(lang_mark_false_label_stack): Delete.
	* rtl.h (struct rtvec_def): Use gengtype to mark.
	* ggc.h (ggc_mark_rtvec): Delete.
	(gt_ggc_m_rtvec_def): Delete.
	(ggc_mark_nonnull_tree): Delete.
	(ggc_mark_rtvec_children): Delete prototype.
	(lang_mark_false_label_stack): Delete declaration.

	* gengtype.h (note_yacc_type): Add prototype.
	* gengtype.c (note_yacc_type): New function.
	* gengtype-lex.l: Add lexer support for yacc files.
	* gengtype-yacc.y (start): Extract union from yacc files.
	(yacc_union): New rule.
	(yacc_typematch): New rule.
	(yacc_ids): New rule.
	(enum_items): Tweak for efficiency.
	(optionseq): Likewise.

	* c-common.h (struct language_function): Use gengtype.
	(struct c_lang_decl): Likewise.
	* c-tree.h (struct lang_decl): Likewise.
	(struct lang_type): Likewise.
	* c-decl.c (lang_mark_tree): Use generated marker routines to mark
	tree language substructures.

	* stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
	ggc_mark_tree.
	* dwarf2asm.c (mark_indirect_pool_entry): Likewise.

	* varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.

	* stmt.c (struct nesting): Add discriminator.  Use gengtype to
	mark. Remove 'data.block.cleanup_ptr' field.
	(struct stmt_status): Use usual technique to mark struct nesting.
	(gt_ggc_mr_nesting_cond): Delete.
	(gt_ggc_mr_nesting_loop): Delete.
	(gt_ggc_mr_nesting_block): Delete.
	(gt_ggc_mr_nesting_case_stmt): Delete.
	(expand_start_cond): Set discriminator.
	(expand_start_loop): Likewise.
	(expand_start_null_loop): Likewise.
	(expand_start_bindings_and_block): Set discriminator.  Don't set
	deleted fields.
	(expand_decl_cleanup): Replace 'cleanup_ptr' with
	&thisblock->data.block.cleanups.
	(expand_start_case): Set discriminator.
	(expand_start_case_dummy): Set discriminator.

	* ggc-callbacks.c: Remove.

	* gengtype.h (struct type): Add 'u.s.bitmap' field.
	(find_structure): Add 'pos' parameter.
	* gengtype-lex.l: Update callers to find_structure.
	* gengtype-yacc.y: Likewise.
	* gengtype.c (find_structure): Allow for structures to be defined
	in multiple language backends.
	(get_output_file_with_visibility): Include debug.h in gtype-desc.c.
	(counter): Rename to gc_counter.
	(write_gc_structure_fields): Fail when writing out fields for
	an incomplete structure.  Ignore arrays of scalars.  Handle
	'tree_vec' special.
	(write_gc_types): Reset counter for each procedure written.

	* stmt.c (add_case_node): Use GGC to allocate struct case_node.
	(free_case_nodes): Delete.
	(expand_end_case_type): Delete call to free_case_nodes.

	* Makefile.in (cselib.o): Include gt-<filename>.h.
	(gcse.o): Likewise.
	(profile.o): Likewise.
	(alias.o): Likewise.
	(GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
	alphabetize backend files.
	(gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
	* alias.c: Use gengtype for roots.
	* c-common.h (struct stmt_tree_s): Use gengtype.
	* c-decl.c: Use gengtype for roots.
	* cselib.c: Use gengtype for roots.
	* expr.c: Use gengtype for roots.
	* fold-const.c: Use gengtype for roots.
	* gcse.c: Use gengtype for roots.
	* gengtype-lex.l: Handle typedefs of function types.
	Allow for empty array bounds.
	Allow processing to stop on initializers.
	* gengtype-yacc.y (externstatic): Stop processing on initializers.
	(semiequal): New rule.
	* gengtype.c (create_file): Tidy output files.
	(get_output_file_with_visibility): Fix paren warning.  Fix bug
	involving multiple input files mapping to one output file.
	(write_gc_structure_fields): Skip arrays of scalars.
	(write_gc_types): Tidy output files.
	(write_gc_root): New function.
	(write_gc_roots): Fix bugs, add support for roots that are
	structures.
	* ggc-common.c (ggc_mark_rtx_ptr): Delete.
	(ggc_mark_tree_ptr): Delete.
	(ggc_add_rtx_root): Delete.
	(ggc_add_tree_root): Delete.
	(ggc_del_root): Delete.
	* integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
	allocate struct initial_value_struct.
	* profile.c: Use gengtype for roots.
	* sdbout.c: Use gengtype for roots.
	* varasm.c (mark_weak_decls): Delete unused prototype.
	(mark_const_hash_entry): Delete unused function.
	* config/darwin-protos.h: Use gengtype for roots.
	(machopic_add_gc_roots): Delete.
	* config/arm/arm.c: Use gengtype for roots.
	* config/arm/arm.h: Use gengtype for roots.
	* config/c4x/c4x-protos.h: Use gengtype for roots.
	* config/c4x/c4x.c (c4x_add_gc_roots): Delete.
	* config/d30v/d30v-protos.h: Use gengtype for roots.
	* config/d30v/d30v.c (d30v_add_gc_roots): Delete.
	* config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
	* config/dsp16xx/dsp16xx.h: Use gengtype for roots.
	* config/ia64/ia64-protos.h: Use gengtype for roots.
	* config/ia64/ia64.c (ia64_add_gc_roots): Delete.
	* config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
	* config/m68hc11/m68hc11.c (z_reg): Make global.
	(z_reg_qi): Make global.
	(m68hc11_add_gc_roots): Delete.
	* config/mcore/mcore-protos.h: Use gengtype for roots.
	* config/mcore/mcore.c (mcore_add_gc_roots): Delete.
	* config/mips/mips.c (mips_add_gc_roots): Delete.
	* config/mips/mips.h: Use gengtype for roots.
	* config/mmix/mmix.c (override_options): Use gengtype for roots.
	* config/mmix/mmix.h: Use gengtype for roots.
	* config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
	* config/mn10200/mn10200.h: Use gengtype for roots.
	* config/pa/pa.c: Use gengtype for roots, marking.
	(struct deferred_plabel): Use GGC, gengtype.
	(pa_add_gc_roots): Delete.
	(mark_deferred_plabels): Delete.
	* config/pj/pj-protos.h: Use gengtype for roots.
	* config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
	* config/rs6000/rs6000.c: Use gengtype for roots.  Don't call
	machopic_add_gc_roots.
	* config/rs6000/rs6000.h: Use gengtype for roots.
	* config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
	(gt-darwin.h): Add rule.
	* config/sh/sh.c: Use gengtype for roots.
	* config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
	(gt-sh.h): Add rule.
	* config/sparc/sparc.c: Use gengtype for roots.
	(sparc_add_gc_roots): Delete.
	(struct ultrasparc_pipeline_state): Use GGC, gengtype.
	(mark_ultrasparc_pipeline_state): Delete.
	* config/sparc/sparc.h: Use gengtype for roots.

	* Makefile.in (c-parse.o): Update dependencies.
	(c-common.o): Likewise.
	(GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
	Add dependencies for the files they generate.
	* c-common.c: Replace ggc_add_* uses with GTY annotations.
	* c-common.h: Likewise.
	* c-decl.c: Likewise.
	(gt_ggc_mp_binding_level): Delete.
	* c-lang.c: Include gtype-c.h.
	* c-parse.in: Replace ggc_add_* uses with GTY annotations.  Include
	gt-c-parse.h.
	* c-pragma.h: Replace ggc_add_* uses with GTY annotations.
	(gt_ggc_mp_align_stack): Delete.
	* c-tree.h: Replace ggc_add_* uses with GTY annotations.
	* function.c: Replace ggc_add_* uses with GTY annotations.
	(gt_ggc_mp_function): Delete.
	* function.h: Replace ggc_add_* uses with GTY annotations.
	* gengtype.c (lang_names): New.
	(NUM_BASE_FILES): New.
	(open_base_files): Create language base files.
	(startswith): New.
	(get_file_basename): New.
	(get_base_file_bitmap): New.
	(get_output_file_with_visibility): Rename from get_output_file.
	Add more mappings for various C/Objc filenames.
	(finish_root_table): New.
	(write_gc_roots): Handle dependencies and scoping properly.
	* gengtype.h: Add prototypes for new functions.
	* ggc-common.c (struct deletable_root): Delete.
	(deletables): Delete.
	(ggc_add_deletable_root): Delete.
	(ggc_mark_roots): No need to deal with deleted functionality.
	* ggc.h (ggc_add_deletable_root): Delete prototype.
	* objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
	(gtype-objc.h): Add rule to create.
	* objc/config-lang.in (gtfiles): New.
	* objc/objc-act.c: Allocate imp_list using GGC.  Replace uses of
	ggc_add_* with GTY markers.  Include gtype-objc.h.
	(ggc_mark_imp_list): Delete.
	* objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
	* objc/objc-lang.c: Random Whitespace Change.

	* except.h (exception_handler_labels): Delete.
	(get_exception_handler_labels): New.
	* except.c (exception_handler_labels): Delete.
	(struct eh_status): Add exception_handler_labels field.
	(doing_eh): Don't add exception_handler_labels as root.
	(free_eh_status): Don't need to free exception_handler_labels.
	(get_exception_handler_labels): New.
	(find_exception_handler_labels): Update for move of
	exception_handler_labels.
	(remove_exception_handler_label): Likewise.
	* cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
	* jump.c (rebuild_jump_labels): Likewise.
	* loop.c (find_and_verify_loops): Likewise.
	* sched-rgn.c (is_cfg_nonregular): Likewise.

	* gengtype.c (write_gc_structure_fields): Handle variable-length
	TYPE_ARRAYs.

	* varasm.c (struct weak_syms): Use GGC, gengtype.
	(mark_weak_decls): Delete.
	(weak_decls): Likewise.
	(add_weak): Likewise.
	(remove_from_pending_weak_list): Likewise.
	(init_varasm_once): Likewise.

	* Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
	(GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
	stor-layout.c, regclass.c, and lists.c.
	Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
	gt-regclass.h and gt-lists.h on s-gtype.
	* emit-rtl.c: Use gengtype for roots.  Include gt-emit-rtl.h.
	* except.c: Use gengtype for roots.
	* explow.c: Use gengtype for roots.  Include gt-explow.h.
	* expr.h (init_stor_layout_once): Delete prototype.
	* function.c: Use gengtype for roots.
	* gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
	* gengtype-yacc.y (start): Can also be an externstatic.
	(externstatic): New production.
	(struct_fields): Correct array bounds inversion for 2-d arrays.
	* gengtype.c (variables): New variable.
	(note_variable): New function.
	(get_output_file): Include libfuncs.h into gtype-desc.c.
	(get_output_file_name): New function.
	(write_gc_structure_fields): Suppress warnings.
	(write_gc_types): Make static.
	(put_mangled_filename): New function.
	(write_gc_roots): New function.
	(main): Call write_gc_roots.
	* gengtype.h (note_variable): Prototype.
	(get_output_file_name): Prototype.
	(write_gc_types): Delete prototype.
	* ggc.h: Clean up unnecessary structure predefinitions.
	(struct ggc_root_tab): Define.
	(gt_ggc_m_rtx_def): Make function, not macro.
	(gt_ggc_m_tree_node): Likewise.
	* libfuncs.h: Use gengtype for roots.
	* lists.c: Use gengtype for roots.  Include gt-lists.h.
	(init_EXPR_INSN_LIST_cache): Delete.
	* optabs.c: Use gengtype for roots.
	(gt_ggc_mp_optab): Delete.
	* optabs.h: Use gengtype for roots.
	* regclass.c: Use gengtype for roots.  Include gt-regclass.h.
	* rtl.h: Use gengtype for roots.
	(init_EXPR_INSN_LIST_cache): Delete prototype.
	* stor-layout.c: Use gengtype for roots.
	Include gt-stor-layout.h.
	(init_stor_layout_once): Delete.
	* toplev.c: Use gengtype for roots.  Delete calls to deleted
	routines.
	* tree.c: Use gengtype for roots.
	* tree.h: Use gengtype for roots.
	* varasm.c: Use gengtype for roots.

	* Makefile.in (GTFILES): Add @all_gtfiles@.
	* configure: Regenerate.
	* configure.in: Construct all_gtfiles from the gtfiles definitions
	in config-lang.in.
	* gengtype-yacc.y (type): Warn about duplicate structure names.
	* gengtype.c (get_output_file): Handle .c files in language
	subdirectories.

	* Makefile.in (GTFILES): Run gengtype on all the config files
	and on the target .c file.
	* except.c (mark_eh_region): Delete.
	(init_eh_for_function): Use GGC on struct eh_status.
	(mark_eh_status): Delete.
	(free_eh_status): Use GGC.
	(expand_eh_region_start): Use GGC to
	(collect_eh_region_array): Allocate last_region_number using GGC.
	(duplicate_eh_region_1): Use GGC to allocate struct eh_region.
	(remove_eh_handler): Let GGC free struct eh_region.
	(add_call_site): Use GGC to reallocate call_site_record array.
	* function.c (init_machine_status): Update calling sequence.
	(mark_machine_status): Likewise.
	(mark_lang_status): Likewise.
	(prepare_function_start): Update init_machine_status call.
	(mark_function_status): Delete.
	(maybe_mark_struct_function): Delete.
	(ggc_mark_struct_function): Delete.
	(gt_ggc_mp_function): New.
	(gt_ggc_mr_machine_function): New.
	(gt_ggc_mr_language_function): New.
	(init_function_once): Use canonical names.
	* function.h (struct function): Use gengtype.
	(init_machine_status): Return the structure.
	(mark_machine_status): Take a 'void *'.
	(mark_lang_status): Likewise.
	* ggc-common.c (ggc_mark_trees): Use canonical name for
	ggc_mark_struct_function.
	* tree.h (ggc_mark_struct_function): Delete prototype.
	* config/alpha/alpha.c (alpha_mark_machine_status): Delete.
	(alpha_init_machine_status): Likewise.
	(override_options): Use canonical name for alpha_mark_machine_status.
	* config/alpha/unicosmk.h (struct machine_function): Use gengtype.
	* config/arm/arm.h (struct machine_function): Use gengtype.
	* config/arm/arm.c (arm_mark_machine_status): Delete.
	(arm_init_machine_status): Update calling sequence.
	(arm_init_expanders): Use canonical name for arm_mark_machine_status.
	* config/cris/cris.c (cris_init_machine_status): Update
	calling sequence.
	* config/d30v/d30v.h (struct machine_function): Use gengtype.
	* config/d30v/d30v.c (d30v_init_machine_status): Update
	calling sequence.
	(d30v_mark_machine_status): Delete.
	* config/i386/i386.c: Include gt-i386.h.
	(struct machine_function): Use gengtype.
	(ix86_init_machine_status): Update calling sequence.
	(ix86_mark_machine_status): Delete.
	(override_options): Use canonical namke for ix86_mark_machine_status.
	* config/ia64/ia64.h (struct machine_function): Use gengtype.
	* config/ia64/ia64.c (ia64_init_machine_status): Update calling
	sequence.
	(ia64_mark_machine_status): Delete.
	(ia64_override_options): Use canonical name for
	ia64_mark_machine_status.
	* config/mmix/mmix.c (mmix_init_machine_status): Update calling
	sequence.
	* config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
	* config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
	* gengtype.c (get_output_file): Fix warning.
	(main): Add prototype to suppress warning.
	* tree.c: Remove tree_hash_mark prototype.

	* tree.h (init_stmt): Delete prototype.
	* toplev.c (lang_independent_init): Don't call init_stmt.
	* stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
	(stmt_obstack): Delete.
	(POPSTACK): No need to free 'struct nesting'.
	(gt_ggc_mr_nesting_cond): Use canonical names.
	(gt_ggc_mr_nesting_loop): Use canonical names.
	(gt_ggc_mr_nesting_block): Use canonical names.
	(gt_ggc_mr_nesting_case_stmt): Use canonical names.
	(mark_stmt_status): Delete.
	(init_stmt): Delete.
	(clear_last_expr): Clear both last_expr_type and last_expr_value.
	Use it everywhere that last_expr_type was cleared.
	* lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
	(zap_lists): Delete.
	* ggc.h (ggc_add_deletable_root): Prototype.
	(mark_stmt_status): Remove prototype.
	* ggc-common.c (ggc_add_deletable_root): New.
	(ggc_mark_roots): Handle deletable roots.
	* function.c (ggc_mark_struct_function): Use canonical name
	for mark_stmt_status.
	* emit-rtl.c (free_sequence_stack): New.
	(start_sequence): Use a freelist for sequences.
	(end_sequence): Likewise.
	(init_emit_once): Add free_sequence_stack as a deleteable root.
	* c-pragma.c Include gt-c-pragma.h.
	(struct align_stack): Use gengtype.
	(push_alignment): Use GGC for struct align_stack.
	(mark_align_stack): Delete.
	(gt_ggc_mp_align_stack): New.
	(init_pragma): Use canonical name for mark_align_stack.
	* c-decl.c: Include gt-c-decl.h.
	(struct binding_level): Use gengtype.
	(make_binding_level): Use GGC; handle the freelist here.
	(pop_binding_level): New.
	(pushlevel): Move code into make_binding_level.
	(push_label_level): Likewise.
	(poplevel): Move code into pop_binding_level.
	(pop_label_level): Likewise.
	(mark_binding_level): Delete.
	(gt_ggc_mp_binding_level): New.
	(c_init_decl_processing): Use canonical name for mark_binding_level.
	Add free_binding_level as deletable root.
	(mark_c_function_context): Use canonical name for mark_binding_level.
	* Makefile.in (c-decl.o): Add gt-c-decl.h.
	(c-pragma.o): Add gt-c-pragma.h.
	(GTFILES): Add c-decl.c and c-pragma.c.
	(gt-c-decl.h, gt-c-pragma.h): Create using gengtype.

	* tree.c (struct type_hash): Use gengtype.
	(init_obstacks): Use canonical name for type_hash_mark.
	(type_hash_mark): Delete.
	Include gt-tree.h.
	* rtl.h (struct mem_attrs): Use gengtype.
	* optabs.h (struct optab): Use gengtype.
	* optabs.c (expand_binop): Squish signed/unsigned warning.
	(mark_optab): Make local, use canonical name, use autogenerated
	marker procedure.
	(init_optabs): Use canonical name for mark_optab.
	(new_optab): Use GGC to allocate optabs.
	* ggc.h: Delete mark_optab prototype.
	* ggc-common.c (ggc_mark_rtx_children): Use canonical name for
	mem_attrs marker procedure.
	* gengtype.c (get_output_file): Include headers in gtype-desc.c
	explicitly rather than deducing them from file names.
	(write_gc_structure_fields): Handle arrays of structures.
	(main): Return nonzero exit code if errors occur during output.
	* emit-rtl.c (mem_attrs_mark): Delete.
	(init_emit_once): Use canonical name for mem_attrs marker procedure.
	* Makefile.in (gtype-desc.o): Explicitly name dependencies.
	(tree.o): Depend on gt-tree.h.
	(GTFILES): Add rtl.h, optabs.h, tree.c.
	(gt-tree.h): Add it to s-gtype rule.

	* .cvsignore: Ignore gengtype flex/bison generated files.
	* Makefile.in (GGC_H): Add gtype-desc.h.
	(OBJS): Add gtype-desc.o.
	(GEN): Add gengtype.
	(STAGESTUFF): Add gengtype.
	(varasm.o): Add gt-varasm.h.
	(stmt.o): Add gt-stmt.h.
	(except.o): Add gt-except.h.
	(integrate.o): Add gt-integrate.h.
	(GTFILES): New.
	Add new rules for new files.
	* configure: Regenerate.
	* configure.in: Correct defaults.h paths.
	* emit-rtl.c (mark_sequence_stack): Delete.
	(mark_emit_status): Delete.
	(start_sequence): Allocate sequence structures using GGC.
	(end_sequence): Allocate sequence structures using GGC.
	* except.c: Use gengtype for various structures.  Include
	gt-except.h.
	* expr.c (mark_expr_status): Delete.
	* function.c: Use gengtype for various structures.  Include
	gt-function.h.
	(mark_function_status): Use standard gt_ggc names for marker functions.
	(ggc_mark_struct_function): Likewise.
	* function.h: Use gengtype for various structures.
	* gengtype-lex.l: New file.
	* gengtype-yacc.y: New file.
	* gengtype.c: New file.
	* gengtype.h: New file.
	* ggc.h: Include gtype-desc.h.  Alias some marker procedures to
	the standard names.  Remove some now-unnecessary prototypes.
	* integrate.c: Use gengtype for various structures.  Include
	gt-integrate.h.
	(mark_hard_reg_initial_vals): Delete.
	* integrate.h (mark_hard_reg_initial_vals): Delete.
	* stmt.c: Use gengtype for various structures.  Include
	gt-stmt.h.
	(mark_case_node): Delete.
	(mark_goto_fixup): Delete.
	(mark_stmt_status): Use standard gt_ggc names for marker functions.
	* system.h: Define GTY to empty.   In flex/bison files,
	don't poison malloc or realloc, instead just define them to
	xmalloc and xrealloc.
	* varasm.c: Use gengtype for various structures.  Include
	gt-varasm.h.  Use standard gt_ggc names for marker functions.
	(mark_pool_constant): Delete.
	(mark_varasm_status): Delete.
	(decode_rtx_const): #if 0 out non-typesafe hack.

	* function.h (free_lang_status): Mark as obsolete.
	* function.c (free_lang_status): Mark as obsolete.
	* c-decl.c (push_c_function_context): Use GC to allocate and free
	struct language_function.
	(pop_c_function_context): Likewise.
	* c-common.c (mark_c_language_function): Mark struct
	language_function.

	* doc/tm.texi (Per-Function Data): Don't document free_machine_status.
	Document that the machine_function structures must be allocated
	using GC.  Update mark_machine_status documentation.
	* function.h: Don't declare free_machine_status.
	* function.c (free_machine_status): Don't define.
	(free_after_compilation): Don't call free_machine_status.
	(ggc_mark_struct_function): Mark f->machine.  Call
	mark_machine_status only on non-NULL pointers.
	* system.h: Poison free_machine_status.
	* config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
	struct machine_function.
	(xtensa_free_machine_status): Delete.
	(override_options): Don't set free_machine_status.
	* config/rs6000/rs6000.c (rs6000_override_options): Don't set
	free_machine_status.
	(rs6000_init_machine_status): Use GC on struct machine_function.
	(rs6000_free_machine_status): Delete.
	* config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
	machine_function.
	(ia64_mark_machine_status): Likewise.
	(ia64_free_machine_status): Delete.
	(ia64_override_options): Don't set free_machine_status.
	* config/i386/i386.c (override_options): Don't set
	free_machine_status.
	(ix86_init_machine_status): Use GC on struct machine_function.
	(ix86_mark_machine_status): Likewise.
	(ix86_free_machine_status): Delete.
	* config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
	machine_function.
	(d30v_mark_machine_status): Likewise.
	(d30v_free_machine_status): Delete.
	(d30v_init_expanders): Don't set free_machine_status.
	* config/arm/arm.c (arm_mark_machine_status): Use GC on struct
	machine_function.
	(arm_init_machine_status): Likewise.
	(arm_free_machine_status): Delete.
	(arm_init_expanders): Don't set free_machine_status.
	* config/alpha/alpha.c (override_options): Don't set
	free_machine_status.
	(alpha_init_machine_status): Use GC on struct machine_function.
	(alpha_mark_machine_status): Likewise.
	(alpha_free_machine_status): Delete.

	* varasm.c (compare_constant): Fix typo.

	* varasm.c: Don't include obstack.h.
	(struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
	(struct rtx_const): Give substructures names, improve formatting.
	(struct constant_descriptor): Delete.
	(struct constant_descriptor_tree): New, based on constant_descriptor.
	(const_hash_table): Is a hash table of trees.
	(mark_const_hash_entry): Is used for hashes of trees.  Mark
	constant_descriptor_tree structure.
	(mark_const_str_htab_1): Mark deferred_string structure.
	(compare_constant): Rewrite to compare trees.
	(compare_constant_1): Delete.
	(record_constant): Delete.
	(record_constant_1): Delete.
	(output_constant_def): Use struct constant_descriptor_tree.
	Don't duplicate trees twice.
	(struct constant_descriptor_rtx): New.
	(struct pool_constant): Used for rtx constants.
	(init_varasm_status): Update for change to struct varasm_status.
	(mark_varasm_status): Likewise.
	(free_varasm_status): Delete.
	(compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
	(record_constant_rtx): Likewise.
	(mem_for_const_double): Update to use struct constant_descriptor_rtx.
	(force_const_mem): Likewise.
	* Makefile.in (varasm.o): Doesn't depend on obstack.h.
	* function.c (free_after_compilation): Don't use free_varasm_status.
	* function.h: Don't prototype free_varasm_status.

	* ggc-common.c (ggc_realloc): Handle X being NULL.

	* ggc-common.c (ggc_realloc): New function.
	* ggc.h: Prototype it.
	* emit-rtl.c (free_emit_status): Delete.
	(init_emit): Allocate emit subarrays using GC.
	(gen_reg_rtx): Reallocate subarrays using GC.
	(init_emit): Use GC to allocate 'struct emit_status' and its
	subarrays.
	(mark_emit_status): Mark structure and its subarrays.
	* stmt.c (free_stmt_status): Delete.
	* expr.c (free_expr_status): Delete.
	* function.h: Remove prototypes for deleted functions.
	* function.c (free_after_compilation): Don't use deleted functions.
	Don't call free() on x_parm_reg_stack_loc.
	(free_after_parsing): Don't use free_stmt_status.
	(assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
	(mark_function_status): Mark x_parm_reg_stack_loc.

	* varasm.c (init_varasm_status): Use GC to allocate
	'struct varasm_status' and its fields x_const_rtx_hash_table
	and x_const_rtx_sym_hash_table.
	(mark_varasm_status): Mark them.
	(free_varasm_status): Use GC to free them.
	* expr.c (init_expr): Use GC to allocate 'struct expr_status'.
	(mark_expr_status): Mark the structure itself.
	(free_expr_status): Use GC to free the structure.
	* stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
	(mark_stmt_status): Mark the 'struct stmt_status' itself.
	(init_stmt_for_function): Allocate the structure for GC.

	* dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
	(equate_type_number_to_die): Likewise.
	* tree.h (TYPE_SYMTAB_DIE): New macro.
	(struct die_struct): Predeclare.
	(struct tree_type): Add field symtab.die.   Add a tag
	to the union type of field symtab.

	* varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
	'struct rtvec_def *', not 'struct rtvec_def'.

	* function.h (original_arg_vector): Make a real rtvec.
	* function.c (ggc_mark_struct_function): Adjust.
	* integrate.c (expand_inline_function): Adjust.

2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
	(sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
	* config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
	(TARGET_VERSION_CPU): Define according to the
	default target.
	(TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
	TARGET_VERSION_CPU.
	(TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
	if TARGET_SHMEDIA64.
	(LINK_DEFAULT_CPU_EMUL): Define according to the
	default target.
	(SUBTARGET_LINK_EMUL_SUFFIX): Define.
	(SUBTARGET_LINK_SPEC): Define.
	(LINK_SPEC): Use SH_LINK_SPEC.
	(ASM_SPEC): Remove.
	(TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
	(FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
	and TARGET_SHMEDIA64 which abort, for now.
	* config/sh/t-netbsd-sh5: New file.
	* config/sh/t-netbsd-sh5-32: New file.
	* config/sh/t-netbsd-sh5-64: New file.

2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
	    Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (reg_or_const_int_operand): New.
	(some_operand, input_operand): Accept CONST_VECTOR.
	(alpha_extra_constraint): Add 'W'.
	(alpha_expand_zap_mask): New.
	(alpha_expand_builtin_vector_binop): New.
	(enum alpha_builtin): New.
	(zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
	(alpha_init_builtins, alpha_expand_builtin): New.
	(TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
	* config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
	(PREDICATE_CODES): Update.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
	UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
	(movv8qi, movv8qi_fix, movv8qi_nofix): New.
	(movv4hi, movv4hi_fix, movv4hi_nofix): New.
	(movv2si, movv2si_fix, movv2si_nofix): New.
	(uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
	(umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
	(builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
	builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
	builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
	builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
	builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
	pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
	builtin_unpkbw, unpkbw): New.
	* doc/extend.texi (Alpha Built-in Functions): New.

2002-06-03  Richard Henderson  <rth@redhat.com>

	* crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
	USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.

2002-06-03  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.

	* config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
	(const0_operand): New.
	(reg_or_fp0_operand, fp0_operand): Remove.
	* config/alpha/alpha.h (PREDICATE_CODES): Update.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
	and fp0_operand with reg_or_0_operand and const0_operand.

2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>

	* alias.c (nonoverlapping_memrefs_p): Fix off by one error.

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

	* gcse.c (cprop_jump): Use single_set to get the pattern
	from the setcc argument.

2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>

	* diagnostic.h (diagnostic_count): Move from output_buffer to
	diagnostic_context.
	(diagnostic_kind_count): Adjust definition.

Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* except.c (except.c): Do not rebuild CFG.
	* toplev.c (rest_of_compilation): Recompute CFG after sibcall
	optimization.

Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
	* toplev.c: Include cfglahout.h
	* Makefile.in (toplev.c): Add dependnecy.

2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>

	* config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
	(CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
	(CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.

2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/ns32k/netbsd.h: Update copyright years.
	(TARGET_OS_CPP_BUILTINS): Define.
	(CPP_PREDEFINES): Remove.
	* config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
	(TARGET_CPU_CPP_BUILTINS): Define.

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

	* emit-rtl.c: Fix formatting.
	* errors.h: Likewise.
	* except.c: Likewise.
	* explow.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* expr.h: Likewise.

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

	* config/h8300/elf.h: Fix formatting.
	* config/h8300/rtems.h: Likewise.

2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.

2002-06-02  Tom Tromey  <tromey@redhat.com>

	* fixinc/fixincl.x: Rebuilt.
	* fixinc/inclhack.def (thread_keyword): Match `*__thread'.

2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>

config/i370:
	* i370.h (TARGET_CPU_CPP_BUILTINS): Use.
	* linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
	* mvs.h: Similarly.
	* oe.h: Similarly.

Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* final.c (final):  Allow notes to not have computed addresses;
	kill no longer needed STACK_REGS ifdef.

2002-06-02  Richard Henderson  <rth@redhat.com>

	* gcse.c (bypass_conditional_jumps): Fix typo last change.

Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* loop.c (emit_prefetch_instructions): Properly place the address
	computation.

Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
	(set_block_for_insn): Turn into macro.
	* cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
	* cfglayout.c (insn_scopes): Kill.
	(scope_to_insns_initialize): Do not use insn_scopes.
	(scope_to_insns_finalize): Likewise.
	(duplicate_insn_chain): Likewise.
	(cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
	* cfgrtl.c (basic_block_for_insn): Kill.
	(delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
	(create_basic_block_structure): Use reorder_insns.
	(compute_bb_for_insn): Do not use basic_block_for_insn.
	(merge_blocks_nomove): Likewise.
	(update_bb_for_insn): Likewise.
	(verify_flow_info): Likewise.
	(set_block_for_insn): Kill.
	* combine.c (try_combine): Update gen_rtx_INSN call.
	* emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
	(mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
	scopes and BBs.
	(add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
	(emit_note_before, emit_note_after, emit_line_note_after, emit_note):
	Clear BB.
	(emit_insns_after): Simplify.
	(emit_copy_of_insn_after): Copy scope.
	* final.c (final_start_function): Lower scopes.
	* flow.c (check_function_return_warnings): Do not rely on deleted insn.
	* integrate.c (copy_insn_list): Cope scopes.
	* jump.c (duplicate_loop_exit_test): LIkewise; simplify.
	* loop.c (loop_optimize): Do not care block notes.
	* print-rtl.c (print_rtx): Print BB.
	* recog.c (apply_change_group): Simplify.
	* rtl.c (copy_rtx): Handle 'B'.
	* rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
	* rtl.h (Field accessors): Update indexes.
	* sched-ebb.c (schedule_ebbs): Do not lower notes.
	* sched-rgn.c (schedule_insns): Likewise.
	* toplev.c (rest_of_compilation): Lower notes.
	* unroll.c (unroll_loop): Do not care scoping notes.
	(copy_loop_body): Copy scopes.

2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>

config/h8300:
	* elf.h: Use TARGET_OS_CPP_BUILTINS rather than
	SUBTARGET_SPEC.
	* rtems.h: Similarly.
	* h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
	EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
	(TARGET_CPU_CPP_BUILTINS): Use.

2002-06-02  Richard Henderson  <rth@redhat.com>

	* alias.c: Include target.h.
	(mark_constant_function): Use targetm.binds_local_p instead
	of checking TREE_PUBLIC ourselves.
	* Makefile.in (alias.o): Add TARGET_H.

2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-lex.c: Update copyright and file description.

2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>

	* config/fr30/fr30.h: Update to new CPP macros.

2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>

	* config/dsp16xx/dsp16xx.h: Update to new CPP macros.

2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
	    Zack Weinberg <zack@codesourcery.com>

	* c-common.c (c_common_init): Override cpplib's default
	warn_long_long setting.
	* c-lex.c (lex_number): Replace with interpret_integer,
	interpret_float, narrowest_unsigned_type and
	narrowest_signed_type, taking advantage of the new
	cpplib functionality.
	* cpperror.c (_cpp_begin_message): If a warning is turned
	into an error, avoid printing "warning:".
	* cppexp.c (cpp_num_sign_extend): New.
	* cppinit.c: Update comment.
	* cpplib.h (cpp_num_sign_extend): New.
	* tree.h: Update comment.

2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>

	* diagnostic.h (struct diagnostic_context):  Add new member
	internal_error.
	(internal_error_function): Remove declaration.
	* diagnostic.c (internal_error_function): Remove definition..
	(internal_error): Adjust use.

2002-06-02  Richard Henderson  <rth@redhat.com>

	* rtl.h (CC0_P): New.
	* gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
	(cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
	(bypass_block): Save old dest block for dump text.
	(bypass_conditional_jumps): Allow any mode register; use CC0_P.
	Allow only true SET insns, not single_set.

2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>

	* diagnostic.c (diagnostic_finish): Rename to output_flush.
	(clear_disgnostic_info): Rename to output_clear_data.  Use false
	instead of 0 for boolean value.
	Adjust function call throughout.

Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (commit_one_edge_insertion): Fix warning.
	* gcse.c (bypass_conditional_jumps): CSE out single_set call.

2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>

	* d30v.h (CPP_PREDEFINES): Replace with
	(TARGET_CPU_CPP_BUILTINS): New.

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

	* config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.

Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* gcse.c (bypass_conditional_jumps): Use single set to obtain set.

2002-06-02  Richard Henderson  <rth@redhat.com>

	* rtlanal.c (volatile_refs_p): Not automatically true for CALL.

2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	Support for C++ constructors/destructors.
	* config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
	instead of looping if main() returns.
	(asm_file_start): Output global symbols that cause .data and .bss
	initialization code to be linked in, unconditionally for now.
	(avr_asm_out_ctor, avr_asm_out_dtor): New functions.
	* config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
	(TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
	(LIBSTDCXX): New.
	* config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
	(__tablejump__): New.
	(__do_copy_data, __do_clear_bss): New.
	(__do_global_ctors, __do_global_dtors): New.
	* config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
	_ctors, _dtors.

2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
	(CPP_SPEC, CPP_PREDEFINES): Kill.
	* c4x/rtems.h (CPP_PREDEFINES): Kill.
	(TARGET_OS_CPP_BUILTINS): New.

Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* Makefile.in (tracer.o): New.
	* params.def (TRACER_*): New options.
	* rtl.h (tracer): Declare.
	* timevar.def (TV_TRACER): New.
	* toplev.c (dump_file_index): Add DFI_tracer.
	(dump_file_info): Add tracer.
	(flag_tracer): New.
	(lang_indepdenent_options): Add tracer.
	(rest_of_compilation): Call tracer.
	* tracer.c: New file.
	* invoke.texi (-ftracer): Document.
	(--param tracer-*): Document.

2002-06-01  Daniel Berlin  <dberlin@dberlin.org>

	* tree-inline.c (expand_call_inline): Make the statement
	expression we generate have a COMPOUND_STMT.

2002-06-01  Roger Sayle  <roger@eyesopen.com>

	* gcse.c (cprop_cc0_jump): Function deleted.
	(cprop_jump): Take an additional argument which is the possibly
	NULL cc setting insn immediately before the conditional jump.
	When a MODE_CC set is present, substitute it into the JUMP_INSN
	before attempting the constant propagation.
	(cprop_insn):  Recognize cc setters followed by conditional jumps
	as a special case.   Use cprop_jump instead of cprop_cc0_jump.
	(cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
	(find_bypass_set): New function based upon find_avail_set used by
	cprop, but finds constant expressions available at the end of
	basic blocks.
	(bypass_block): New function.  Given a basic block that begins
	with a conditional jump and multiple incoming edges, perform
	the jump bypass optimization.
	(bypass_conditional_jumps): New function.  Call bypass_block with
	each suitable basic block in the CFG using a simple single pass.

2002-06-01  Roger Sayle  <roger@eyesopen.com>

	* tree.c (real_minus_onep): New function to test for -1.0.
	* fold-const.c (fold) [MULT_EXPR]:  Optimize -1.0*x into -x.

2002-06-01  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
	and "!p && !q" into "(p|q) == 0" under suitable conditions.

2002-06-01  Andreas Jaeger  <aj@suse.de>

	* cppexp.c (cpp_classify_number): Cast precission to int for
	correct printf format.

2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_mcu_types): Remove devices that were once
	expected, but don't really exist: atmega83, atmega85, attiny10.
	* config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
	emulations for all devices.
	(CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
	* config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.

2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Add a prototype for
	h8300_shift_needs_scratch_p.
	* config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
	* config/h8300/h8300.h (OK_FOR_R): New.
	(OK_FOR_S): Likewise.
	(OK_FOR_T): Likewise.
	(EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
	* config/h8300/h8300.md (anonymous shift patterns): Use
	constraints R, S, and T.

Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* basic-block.h (struct basic_block_def): New field loop_father.
	(BB_VISITED): New flag.
	(struct loop): New field pred, removed field shared.
	(struct loops): New field parray.
	(LOOP_EXITS_DOMS): Removed.
	(flow_loop_tree_node_add, flow_loop_tree_node_remove,
	flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
	dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
	add_bb_to_loop, remove_bb_from_loops, find_common_loop,
	verify_loop_structure): Declare.
	* cfg.c (entry_exit_blocks): Initialize loop_father field.
	* cfganal.c (dfs_enumerate_from): New function.
	* cfgloop.c (HEAVY_EDGE_RATIO): New constant.
	(flow_loop_entry_edges_find, flow_loop_exit_edges_find,
	flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
	flow_loop_dump, flow_loops_dump, flow_loops_free,
	flow_loop_tree_node_add, flow_loop_level_compute,
	flow_loops_level_compute, flow_loop_scan, flow_loops_update,
	flow_loop_outside_edge_p): Modified for new infrastructure.
	(make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
	redirect_edge_with_latch_update, flow_loop_free): New static functions.
	(flow_loop_tree_node_remove, flow_bb_inside_loop_p,
	get_loop_body, add_bb_to_loop, remove_bb_from_loops,
	find_common_loop, verify_loop_structure, loop_latch_edge,
	loop_preheader_edge): New functions.
	(flow_loops_cfg_dump): Do not show dominators, as this information
	does not remain up to date long.
	(flow_loops_find): Store results in new format.
	* predict.c (propagate_freq, estimate_probability,
	estimate_loops_at_level, estimate_bb_frequencies): Use new loop
	infrastructure.

2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>

	* except.c (nothrow_function_p): Walk epilogue delay list
	checking the insn, not the chain for potential throws.

2002-05-31  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
	(install): Refer to install-cpp directly.
	(uninstall-cpp): Folded into uninstall rule.
	* configure.in: Delete all code relating to --disable-cpp.
	* configure: Regenerate.
	* config/t-install-cpp: Delete.

2002-05-31  Richard Henderson  <rth@redhat.com>

	* configure.in (HAVE_AS_TLS): Add alpha tests.
	* configure: Rebuild.
	* config/alpha/alpha.c (TARGET_AS_TLS): New.
	(alpha_tls_size, alpha_tls_size_string): New.
	(overide_options): Set it.  Always install machine_status hooks.
	(input_operand): Accept got tls predicates.
	(local_symbol_p): Merge into ...
	(local_symbolic_operand): ... here.  Reject tls symbols.
	(global_symbolic_operand): Likewise.
	(tls_symbolic_operand_1, dtp16_symbolic_operand): New.
	(dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
	(tp16_symbolic_operand, tp32_symbolic_operand): New.
	(gottp_symbolic_operand, tls_symbolic_operand_type): New.
	(alpha_encode_section_info): Handle TLS symbols.
	(alpha_strip_name_encoding): Likewise.
	(alpha_legitimate_address_p): Likewise.
	(alpha_legitimize_address): Likewise.
	(alpha_expand_mov): Early exit to avoid nop moves.
	(struct machine_function): Move from unicosmk.h.  Add some_ld_name.
	(alpha_init_machine_status, alpha_mark_machine_status,
	alpha_free_machine_status): Always define.
	(get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
	(print_operand, print_operand_address): Add TLS relocs.
	* config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
	(MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
	(TARGET_SWITCHES): Add -mtls-kernel.
	(alpha_tls_size, alpha_tls_size_string): New.
	(TARGET_OPTIONS): Add -mtls-size=.
	(reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
	REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
	(ASM_OUTPUT_LABELREF): Skip %.
	(PRINT_OPERAND_PUNCT_VALID_P): Add &.
	(PREDICATE_CODES): Update.
	* config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
	UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
	UNSPEC_TP, UNSPECV_SET_TP): New.
	(adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
	adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
	set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
	movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
	(call_value_osf_2_er): Accept anything as op4.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.

2002-05-31  Zack Weinberg  <zack@codesourcery.com>

	* cppinit.c (append_include_chain): Always pay attention to
	cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
	marker on argument.

2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>

	* target.h: Fix formatting.
	* timevar.h: Likewise.
	* tlink.c: Likewise.
	* toplev.c: Likewise.
	* toplev.h: Likewise.
	* tree.c: Likewise.
	* tree-dump.h: Likewise.
	* tree.h: Likewise.
	* tree-inline.h: Likewise.
	* unroll.c: Likewise.
	* unwind-dw2.c: Likewise.
	* unwind-dw2-fde.c: Likewise.
	* unwind-dw2-fde-glibc.c: Likewise.
	* unwind-dw2-fde.h: Likewise.
	* unwind.h: Likewise.
	* unwind-sjlj.c: Likewise.
	* varasm.c: Likewise.
	* varray.h: Likewise.
	* vmsdbg.h: Likewise.
	* vmsdbgout.c: Likewise.
	* xcoffout.h: Likewise.

2002-05-31  Igor Shevlyakov <igor@microunity.com>

	* expr.c (compare_from_rtx): Generate comparison between op0 and op1
	rather than cc0 and 0 in a case when HAVE_cc0 is not defined.

2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>

	* gcc.c (cpp_unique_options): Remove "-d" options.
	(cpp_debug_options): New spec string.
	(default_compilers): Use it.
	* objc/lang-specs.h: Likewise.

2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>

	* gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
	BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
	* gcc/mklibgcc.in: Likewise.
	* gcc/config/arc/t-arc: Likewise.
	* gcc/configure.in: Likewise.
	* gcc/configure: Regenerate.

2002-05-31  Stan Shebs  <shebs@apple.com>
	    Turly O'Connor  <turly@apple.com>

	* c-decl.c (struct binding_level): Change int field n_incomplete
	to tree list incomplete_list.
	(clear_binding_level): Init field with NULL.
	(pushdecl): Add incomplete type to list.
	(mark_binding_level): Mark the incomplete list.
	(finish_struct): Scan the incomplete list for types instead
	of all decls in the current binding level.

2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (output_millicode_call): Add missing '%' characters.
	(output_call): Likewise.

2002-05-31  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
	(UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.

2002-05-31  Alan Lehotsky <apl@alum.mit.edu>

	* varasm.c (mark_constant_pool): Walk epilogue delay list
	checking the insn, not the chain for potential constants.

Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.

Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (classify_argument): Properly handle base types.

	* dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
	Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
	registers.

Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* gcse.c (gcse_emit_move_after): New.
	(pre_delete, hoist_store): Use it.

	* reload1.c (emit_input_reload_insns): Use constrain_operands
	instead of constraint_accepts_reg_p to verify optimization.
	(constraint_accepts_reg_p): Kill.

	* reload1.c (reload_cse_delete_noop_set): Kill.
	(reload_cse_simplify): Use delete_insn_and_edges.

2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* cfgloop.c (flow_loops_find): Initialize first and last fields
	correctly.

2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (builtin_define_std): Correct logic.

2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
	(output_call): Likewise.

2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c: Move output.h include after tree.h include.
	(pa_asm_output_mi_thunk): Constify identifier lab.

2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/ns32k/ns32k.h: Define named constants for the
	bits in target_flags and use them.
	* config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.

2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
	architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
	* pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
	default scheduling model.
	* pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
	* pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
	* pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
	* doc/install.texi (hppa*-*-*): Document default scheduling.

2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (following_call): Check TARGET_JUMP_IN_DELAY.

2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (ns32k-*-netbsd*): Set tm_file to
	"${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
	* config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
	netbsd.h, or netbsd-aout.h.

2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>

	* longlong.h (count_trailing_zeros): Add missing \, and clean up
	whitespace in __ns32000__ case.

2002-05-31  Aldy Hernandez  <aldyh@redhat.com>

	* expr.c (expand_expr): Output partially zeroed out vectors with
	output_constant_def.

2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
	(sh-*-netbsdelf*)
	(shl*-*-netbsdelf*): New targets.
	* config/sh/netbsd-elf.h: New file.
	* config/sh/t-netbsd: New file.

2002-05-30  Richard Henderson  <rth@redhat.com>
	    Eric Botcazou  <ebotcazou@multimania.com>

	PR optimization/6822
	* config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
	to unsigned int for op1 comparisons.  Use gen_int_mode.

2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>

	* expmed.c (const_mult_add_overflow_p): New.
	* expr.h: Declare it.
	* loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
	Don't eliminate the biv if the giv has a constant multiplier and
	the rhs argument of the comparison does satisfy the predicate.
	Use expand_mult_add to compute the replacement constant.

2002-05-30  Osku Salerma  <osku@iki.fi>

	* c-common.c (c_common_attribute_table): Add "may_alias" entry.
	(c_common_get_alias_set): Handle it.
	* doc/extend.texi: Document it.

2002-05-30  Richard Henderson  <rth@redhat.com>

	* defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
	* toplev.c (process_options): Don't check it.
	* doc/tm.texi: Don't document it.
	* config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
	(TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
	* config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
	frame pointer optimization if current_function_profile.

2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>

	* langhooks.c: Fix formatting.
	* langhooks.h: Likewise.
	* lcm.c: Likewise.
	* libgcc2.c: Likewise.
	* lists.c: Likewise.
	* local-alloc.c: Likewise.
	* loop.c: Likewise.
	* loop.h: Likewise.

2002-05-30  Marc Espie <espie@openbsd.org>

	* config.gcc (sparc64-*-openbsd*): New.
	* config/sparc/openbsd1-64.h: New.
	* config/sparc/openbsd64.h: New.

2002-05-30  Jeff Law <law@redhat.com>

	* flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
	a dead insn with a REG_RETVAL note when the entire libcall is not
	dead and remove the associated REG_LIBCALL note at the same time.

Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* lcm.c (output.h): #include.
	(compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
	as an ordinary block.
	(optimize_mode_switching): Don't pretend that the exit block is
	an ordinary block, or handle sucessors of entry block specially.
	Instead, split edges from entry block and to exit block, and
	put a computing definition on the thus gained post-entry-block,
	and a need on the pre-exit-block.

Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
	* rtl.texi: Document 'B'

2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
	at run-time.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.

2002-05-30  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
	const0_rtx instead of NULL_RTX when in error.
	(altivec_expand_abs_builtin): Same.
	(rs6000_expand_binop_builtin): Same.
	(altivec_expand_predicate_builtin): Same.
	(altivec_expand_stv_builtin): Same.
	(rs6000_expand_ternop_builtin): Same.
	(altivec_expand_builtin): Same.

2002-05-29  David S. Miller  <davem@redhat.com>

	* rtl.h (clear_emit_caches): Delete.
	* integrate.c (output_inline_function): Don't call it.
	* emit-rtl.c (restore_emit_status, init_emit): Likewise.
	(clear_emit_caches): Delete definition.
	(SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.

2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c: Include real.h.
	(mmix_constant_address_p): Remove redundant test before switch.

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
	only if not already defined.

2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Remove prototypes for
	ok_for_bclr and small_power_of_two.
	* config/h8300/h8300.c (small_power_of_two): Remove.
	(ok_for_blcr): Likewise.
	(fix_bit_operand): Make WHAT deal with an integer instead of a
	constraint character.
	* config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
	(CONST_OK_FOR_P): Likewise.
	(CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
	CONST_OK_FOR_P any more.
	* config/h8300/h8300.md (andqi3): Adjust to the new prototype
	of fix_bit_operand.
	(iorqi3): Likewise.
	(xorqi3): Likewise.

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
	(CPP_PREDEFINES): Make sure this is undefined.
	(CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
	since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
	or -U__MIPSEB__ before defining one or the other.  Instead,
	use %(subtarget_endian_default) if neither -EB nor -EL are
	specified.
	(SUBTARGET_EXTRA_SPECS): Define.
	(SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
	%(netbsd_cpp_spec).

2002-05-29  Hans-Peter Nilsson  <hp@axis.com>

	* doc/md.texi (Patterns): Note pattern condition pitfall
	for unnamed insn.

2002-05-29  Aldy Hernandez  <aldyh@redhat.com>

	* rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
	when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
	ternary operations from here...
	(rs6000_expand_builtin): ...to here.
	New argument expandedp.
	Change all instances of altivec_expand_binop_builtin to
	rs6000_expand_binop_builtin.
	(altivec_expand_unop_builtin): Rename to
	rs6000_expand_unop_builtin.
	(altivec_expand_binop_builtin): Rename to
	rs6000_expand_binop_builtin.
	(altivec_expand_ternop_builtin): Rename to
	rs6000_expand_ternop_builtin.

2002-05-29  Richard Henderson  <rth@redhat.com>

	* config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
	(TARGET_BI_ARCH): Likewise.
	* config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
	(TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
	(TARGET_64BIT_DEFAULT): Default to 0.
	(TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.

2002-05-29  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
	(get_pc_thunk_name): New.
	(output_set_got): Use it.
	(ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
	into linkonce sections.

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
	(CPP_PREDEFINES): Make sure this is undefined.
	(CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
	(CPP_SUBTARGET_SPEC): Don't provide different versions for
	default-32 and default-64.  Just always use %(netbsd_cpp_spec).
	(SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
	cpp_subtarget_spec64.  Add netbsd_cpp_spec.
	* config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
	(CPP_PREDEFINES): Make sure this is undefined.
	(SUBTARGET_EXTRA_SPECS): Define.
	(CPP_SPEC): Use %(netbsd_cpp_spec).

2002-05-29  Jeff Law <law@redhat.com>

	* pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.

	* flow.c (propagate_one_insn): Do not remove a dead insn if it
	contains a REG_RETVAL note.

	* haifa-sched (sched_analyze): Remove another useless clearing
	of SCHED_GROUP_P I missed yesterday.

	* pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
	* pa.c (pa_asm_output_mi_thunk): New function.
	* pa-protos.h (pa_asm_output_mi_thunk): Declare.

2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
	    Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
	(avr_asm_only_p): Make non-static.
	(enum avr_arch): Remove.
	(avr_arch_types): New.
	(avr_mcu_types): Update.
	(avr_override_options): Use avr_arch_types table instead of switch.
	* avr.h (CPP_PREDEFINES): Die.
	(avr_base_arch_macro, avr_extra_arch_macro): New.
	(TARGET_CPU_CPP_BUILTINS): New.
	(CPP_SPEC, EXTRA_SPECS): Simplify.
	(CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
	CPP_AVR5_SPEC): Die.

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
	NETBSD_OS_CPP_BUILTINS_AOUT.
	(SUBTARGET_EXTRA_SPECS): Define.
	(CPP_SPEC): Use %(netbsd_cpp_spec).

2002-05-29  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_output_function_epilogue): New.
	(TARGET_ASM_FUNCTION_EPILOGUE): New.
	(pic_label_name): Remove.
	(pic_labels_used): New.
	(ix86_asm_file_end): Emit one pc load stub for each register used.
	(output_set_got): Generate deep pc load to any register.
	(ix86_select_alt_pic_regnum): New.
	(ix86_save_reg): Don't save pic register if we can find a valid
	call-clobbered replacement.
	(ix86_expand_prologue): If we found a valid replacement, renumber
	pic_offset_table_rtx.
	* config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
	pic_offset_table_rtx after reload.
	(REAL_PIC_OFFSET_TABLE_REGNUM): New.
	* config/i386/i386.md (set_got): Make insn, not expander.
	(set_got_nopic, set_got_deep, set_got_nodeep): Remove.

2002-05-29  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
	alignment for alloca.

2002-05-29  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (output_pic_addr_const): Lowercase rip.
	(print_operand_address): Only add rip for symbolic addresses
	for which we do not have another relocation type.

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
	(EXTRA_SPECS): Add netbsd_cpp_spec.
	(CPP_SPEC): Use %(netbsd_cpp_spec).
	(CPP_PREDEFINES): Remove.
	* config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
	(EXTRA_SPECS): Define.
	(CPP_SPEC): Use %(netbsd_cpp_spec).
	(CPP_PREDEFINES): Remove.

2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>

	PR preprocessor/6844
	* cppmacro.c (cpp_macro_definition): Reserve space for terminating
	NUL.

2002-05-29  Eric Christopher  <echristo@redhat.com>

	* config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
	mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.

2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/fr30/fr30.md: Remove previous restriction on splits.
	Enforce conformance through gen_lowpart and cont_int_operand.
	* config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
	as the assembler does not support ".bss".

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
	(CPP_PREDEFINES): Remove.
	(SUBTARGET_EXTRA_SPECS): Define.
	(CPP_SPEC): Use %(netbsd_cpp_spec).
	* config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
	(CPP_PREDEFINES): Remove.
	(SUBTARGET_EXTRA_SPECS): Define.
	(CPP_SPEC): Use %(netbsd_cpp_spec).
	* config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
	(CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
	(SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
	Add netbsd_cpp_spec.
	(CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).

2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
	    Zack Weinberg <zack@codesourcery.com>

	* cppexp.c (cpp_num): Move to cpplib.h.
	(CPP_ERROR): Remove.
	(interpret_float_suffix, interpret_int_suffix): New.
	(struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
	(cpp_classify_number, cpp_interpret_integer): New.
	(interpret_number): Remove.
	(eval_token): Update to use new routines.
	* cpphash.h (cpp_num_part): Move to cpplib.h.
	* cppinit.c (cpp_post_options): Set warn_long_long.
	* cpplib.h (struct cpp_options): Add warn_long_long.
	(cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
	CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
	CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
	CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
	cpp_interpret_integer): New.

2002-05-29  Joel Sherrill <joel@OARcorp.com>

	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
	NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
	(CPP_SUBTARGET_SPEC): Define.
	(SUBTARGET_EXTRA_SPECS): Define.
	(CPP_SPEC): Remove.

2002-05-29  Chris Lattner  <sabre@nondot.org>

	* ssa.c (rename_insn_1): Rename uses of undefined registers to
	prevent confusion if/when the register is defined.

2002-05-29  Hans-Peter Nilsson  <hp@axis.com>

	PR target/6838
	* config/cris/cris.md: Fix typos and thinkos in comments.
	("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
	second alternative.
	("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
	("*mov_sideqi_mem"): Similar, but for operand 3.
	("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
	(splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
	Remove spurious mode specifier on operand 2.

2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Remove the prototype for
	o_operand.
	Add prototypes for single_one_operand and single_zero_operand.
	* config/h8300/h8300.c (o_operand): Remove.
	(single_one_operand): New.
	(single_zero_operand): Likewise.
	(print_operand): For 'V' operand, and the operand with 0xff.
	For 'V' and 'W' operands, do not and the bit position with 7.
	* config/h8300/h8300.md (various anonymous patterns): Replace
	use of exact_log2 with single_one_operand/single_zero_operand.

2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.

2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (legitimate_pic_operand_p): Do not
	accept symbolic LARL operands.
	(s390_emit_epilogue): Do not set FRAME_RELATED_P on
	epilogue insns.

2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>

	* config/s390/s390.md (cmpstr_64/31): Mark whole
	input registers as used.

2002-05-28  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
	not current_function_uses_pic_offset_table and
	current_function_uses_const_pool; examine current_function_profile.
	(ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
	input to blockage if needed.
	(ix86_expand_call): Do not set current_function_uses_pic_offset_table.
	(legitimize_pic_address): Likewise.  Set regs_ever_live for
	pic_offset_table_rtx when invoked during reload.
	* config/i386/i386.h (FINALIZE_PIC): Remove.
	* config/i386/i386.md (tablejump): Reformat.  Do not set
	current_function_uses_pic_offset_table.
	(tls_global_dynamic, tls_local_dynamic_base): Likewise.
	(blockage): Accept anything as operand 0.

2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
	common CPP built-ins for all NetBSD a.out targets.
	* config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
	common CPP built-ins for all NetBSD ELF targets.
	* config/netbsd.h: Add missing notice.
	(NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
	for all NetBSD targets.
	(NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
	for all NetBSD targets using an LP64 code model.
	(NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
	NetBSD targets.

2002-05-28  Richard Henderson  <rth@redhat.com>

	* flow.c (update_life_info_in_dirty_blocks): Only do a partial
	update if UPDATE_LIFE_LOCAL.

2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>

	* config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.

Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
			  Jason R. Thorpe <thorpej@wasabisystems.com>

	config/sh reorganization to factor out endianness and coff:

	* config/sh/little.h: New file.
	* config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
	defined, define to 0 to select big-endian.
	(SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
	(TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
	* config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
	* config/sh/t-be: New file.
	* config/sh/t-le: New file.

	* sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
	(SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
	(TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
	(USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
	(ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
	(ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
	(CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
	(SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
	(EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
	CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
	SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
	(LINK_SPEC): Define to SH_LINK_SPEC.
	(TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
	(LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
	(SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
	(CPP_SPEC): Reduce to %(subtarget_cpp_spec).
	(TARGET_ENDIAN_DEFAULT): Define if not already defined.
	* config/sh/coff.h: New file.
	(TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
	(TARGET_OBJFMT_CPP_BUILTINS): Define.
	* config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
	(ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
	(DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
	(ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
	(PTRDIFF_TYPE): Likewise.
	("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
	(CPP_PREDEFINES): Don't define.
	(TARGET_OBJFMT_CPP_BUILTINS): Define.
	(LINK_SPEC): Define to SH_LINK_SPEC.
	(LINK_EMUL_PREFIX): Redefine.
	* config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
	(SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
	(CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
	(CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
	(TARGET_OS_CPP_BUILTINS): Define.
	(TARGET_DEFAULT): Redefine.
	(SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
	* config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
	(LINK_SPEC): Don't redefine.
	(LINK_DEFAULT_CPU_EMUL): Redefine.
	(TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
	* sh.c (sh_asm_named_section): Don't declare / define.
	* t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
	* config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
	(sh64-*-elf* tm_file): Likewise.
	(sh-*-rtemself* tm_file): Likewise.
	(sh-*-linux* tm_file): Likewise.  Add sh/little.h.
	(sh-*-linux* tmake_file): Add sh/t-le.
	(sh-*-rtems* tm_file): Add sh/coff.h
	(sh-*-* tm_file): Likewise.

Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
	CONSTANT_POOL_ADDRESS_P.

	* coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.

2002-05-28  David Edelsohn  <edelsohn@gnu.org>
	    Jeff Law <law@redhat.com>

	* optabs.c (expand_binop): Fix nwords sign warnings.
	generate pseudo for add_optab.

	* sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
	* haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.

2002-05-28	Marc Espie <espie@openbsd.org>

	* config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
	inherited from gas.h.
	(ASM_QUAD):  Undef.  OpenBSD does not support it.

2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>

	* doc/install.texi (binaries): Change mingw binaries
	link to www.mingw.org.

2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.

2002-05-28  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_compute_frame_layout): Do not add
	bottom alignment for leaf functions.

2002-05-28  Zack Weinberg  <zack@codesourcery.com>

	* config/pa/milli32.S, config/pa/lib1funcs.asm,
	config/sparc/sol2-g1.asm: Delete unused files.

2002-05-28  Richard Henderson  <rth@redhat.com>

	* cfg.c (dump_flow_info): Print bb->index, not i, for block number.

	* flow.c (calculate_global_regs_live): Rename call_used to
	invalidated_by_call.  Initialize from regs_invalidated_by_call
	instead of call_used_regs.

	* varasm.c (default_binds_local_p): Check TREE_PUBLIC before
	DECL_EXTERNAL.

2002-05-28  Zack Weinberg  <zack@codesourcery.com>

	* tree.h: Don't include real.h.
	Forward-declare struct realvaluetype.
	(struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
	contain it.
	(TREE_REAL_CST_PTR): New accessor.
	(TREE_REAL_CST): Update.
	* real.h: Include machmode.h.
	(realvaluetype): Make it struct realvaluetype, not a typedef.
	(build_real): Prototype here.

	* tree.c: Include real.h.
	(build_real): Allocate the REAL_VALUE_TYPE as a separate
	object in GC memory, set TREE_REAL_CST_PTR to point to it.
	(build_real_from_int_cst): Use build_real.
	* ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
	REAL_CST.

	* builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
	fold-const.c, print-tree.c, real.c: Include real.h.
	* Makefile.in: Update dependency lists.

2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* basic-block.h (last_basic_block): Declare.
	(expunge_block_nocompact): Declaration removed.
	(compact_blocks): Declare.
	* cfg.c (last_basic_block): New variable.
	(expunge_block_nocompact): Removed.
	(expunge_block): Do not compact basic blocks.
	(compact_blocks): New.
	* cfganal.c (flow_call_edges_add): Use the fact that bb indices no
	longer change.
	* cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
	last_basic_block.
	* cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
	real positions of blocks.
	(delete_unreachable_blocks): Simplified -- quadratic behavior now
	cannot occur.
	(cleanup_cfg): Compact blocks.
	* cfgrtl.c (create_basic_block): Insert basic blocks to the end of
	basic_block_info varray.
	(flow_delete_block): Comment update.
	(back_edge_of_syntactic_loop_p): Modify position check code.
	(verify_flow_info): Update checking.
	* flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
	* ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
	(find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
	indices no longer change.
	* lcm.c (optimize_mode_switching): Replace n_basic_blocks with
	last_basic_block.
	* predict.c (estimate_bb_frequencies): Remove unneccessary code.
	* profile.c (branch_prob): Compact blocks.
	* sched-rgn.c (find_rgns): Replace n_basic_blocks with
	last_basic_block.

2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (two anonymous patterns): New.

2002-05-28  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.md (cpu): Tidy.
	(type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
	'trap'.
	(in_call_delay): Delete reference to 'return' type.
	(eligible_for_return_delay, in_return_delay, define_delay
	referencing those): Delete.
	(rest of file): Use new type attributes as appropriate.
	* config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
	* config/sparc/sparc.c (eligible_for_return_delay): Likewise.
	* config/sparc/ultra1_2.md (us1_single): New reservation.
	(us1_ialuX): Likewise.
	* config/sparc/ultra3.md (us3_single): Likewise.
	(us3_ialuX): Likewise.
	(us3_imul, us3_idiv): Tweak.

2002-05-28  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_in_small_data_p): Return false for
	STRING_CST.

2002-05-28  Richard Henderson  <rth@redhat.com>

	* config.gcc: Obsolete mn10200.

2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppexp.c (interpret_number): Optimize for single-digit
	and less-than-half-precision cases.
	(num_trim, num_positive, num_div_op): Cast constants.

2002-05-27  Bo Thorsen  <bo@suse.de>

	* config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
	3.1 branch. The file was made by Jakub Jelinek.
	* config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
	support so multilib doesn't break. And don't define this at all
	when -Dinhibit_libc is used.
	(MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
	* config/i386/t-linux64: Implement full multilib support. Patch
	originally done by Andreas Jaeger and Jakub Jelinek.

2002-05-27  Roger Sayle  <roger@eyesopen.com>

	* c-common.c: Add support for __attribute__((nothrow)) to specify
	that a function cannot throw an exception (using TREE_NOTHROW).
	(handle_nothrow_attribute): New function to process this attribute.

	* doc/extend.texi: Document the new nothrow function attribute.

2002-05-27  H.J. Lu  (hjl@gnu.org)

	* cppexp.c (num_trim): Use 1UL instead of 1 for long int.
	(num_positive): Likewise.
	(num_div_op): Likewise.

2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (c_common_init): Always use intmax_t.

2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (c_common_init): Use intmax_t for now.

2002-05-24  Andrew Haley  <aph@redhat.com>

	* fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
	if T is a boolean type.

2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* basic-block.h (last_basic_block): Defined as synonym for
	n_basic_blocks.
	* cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
	flow_depth_first_order_compute, flow_preorder_transversal_compute,
	flow_dfs_compute_reverse_init): Replaced relevant occurences of
	n_basic_blocks with last_basic_block.
	* cfgbuild.c (make_edges): Likewise.
	* cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
	* cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
	* combine.c (combine_instructions): Likewise.
	* df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
	iterative_dataflow_bitmap): Likewise.
	* dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
	calc_idoms, idoms_to_doms): Likewise.
	* flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
	Likewise.
	* gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
	compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
	one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
	one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
	delete_null_pointer_checks, compute_code_hoist_vbeinout,
	hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
	compute_store_table, build_store_vectors): Likewise.
	* haifa-sched.c (sched_init): Likewise.
	* ifcvt.c (if_convert): Likewise.
	* lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
	pre_edge_lcm, compute_available, compute_nearerout,
	compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
	Likewise.
	* predict.c (estimate_probability, process_note_prediction,
	note_prediction_to_br_prob): Likewise.
	* profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
	* recog.c (split_all_insns, peephole2_optimize): Likewise.
	* regrename.c (copyprop_hardreg_forward): Likewise.
	* resource.c (init_resource_info): Likewise.
	* sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
	init_regions, schedule_insns): Likewise.
	* ssa-ccp.c (ssa_const_prop): Likewise.
	* ssa-dce.c (ssa_eliminate_dead_code): Likewise.
	* ssa.c (compute_dominance_frontiers,
	compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.

	* df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
	* gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
	sizes consistently.

Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
	new.
	* rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
	hoist_insn_after, hoist_insn_to_edge): New.

Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (PEOP_SCAN_DEAD_STORES): New.
	(PROP_FINAL): Include.
	* flow.c (life_analysis, update_life_info,
	init_propagate_block_info, mark_set_1, mark_used_rgs):
	Support SCAN_DEAD_STORE.

2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (c_common_init): Set CPP arithmetic precision.
	* cppexp.c (cpp_num_part): Move typedef ...
	* cpphash.h: ...here; make unsigned HOST_WIDE_INT.
	* cppinit.c (cpp_create_reader): Default to host long arithmetic.
	(sanity_checks): Update.

2002-05-26  Geoffrey Keating  <geoffk@redhat.com>

	* Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
	(mkheaders): New rule.
	(install-mkheaders): New rule.
	* configure.in (all_outputs): Add mkheaders.
	* configure: Regenerate.
	* mkheaders.in: New file.

2002-05-26  Jakub Jelinek  <jakub@redhat.com>

	* cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.

2002-05-26  Andreas Jaeger  <aj@suse.de>

	* cfg.c (dump_flow_info): Remove extra argument to fprintf.

2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppexp.c (possible_sum_sign, integer_overflow, left_shift,
	right_shift): Remove.
	(cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
	HIGH_PART): New.
	(struct op): Use cpp_num.
	(num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
	num_part_mul, num_unary_op, num_binary_op, num_negate,
	num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
	num_div_op, num_lshift, num_rshift, append_digit): New.
	(interpret_number, parse_defined, eval_token, reduce): Update
	for two-integer arithmetic.
	(binary_handler): New typedef.
	(optab): Update.
	(COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
	(_cpp_parse_expr, reduce): Update to handle two-integers.
	* cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.

2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
	* config/avr/avr.c (jump_over_one_insn_p): Take length of the
	branch insn into account, do not assume 1.
	(avr_out_sbxx_branch): New function.  Optimize cases of skipping
	over single word insn.  Handle upper half of I/O space too.
	* config/avr/avr.md (*sbrx_branch): Use it.
	(*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
	(*sbix_branch, *sbix_branch_bit7): Likewise.
	(*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
	Use RTL peepholes to optimize register operand sign tests.

2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_asm_only_p): New variable.
	(avr_override_options): Set it here if AVR1.
	(asm_file_start): Test it here, report an error if set.

2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>

	* alias.c: Fix formatting.
	* attribs.c: Likewise.
	* bb-reorder.c: Likewise.
	* bitmap.c: Likewise.
	* bitmap.h: Likewise.
	* builtins.c: Likewise.

Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* reload.c (find_valid_class): Accept new argument DEST,
	choose class accordingly.
	(push_reload): Update callers.

2002-05-26  Andreas Jaeger  <aj@suse.de>

	* combine.c (combine_instructions): Do not indent #if for
	traditional C.

2002-05-25  Richard Henderson  <rth@redhat.com>

	* c-pragma.c (apply_pragma_weak): Convert value identifier to
	string for decl_attributes.
	(handle_pragma_weak): Call assemble_alias if we're modifying
	an existing decl.

2002-05-25  Richard Henderson  <rth@redhat.com>

	PR target/6788
	* config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
	using rtl instead of fprintf.
	* config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
	* config/sparc/sparc-protos.h: Update.

2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (C_COMMON_H): Fix.
	Update other targets.
	* c-common.c: Don't include c-lex.h.
	(builtin_define_with_value): Make static and prototype.
	(builtin_define_std): Move from c-lex.h.
	* c-common.h (init_c_lex): Move from c-lex.h.
	* c-decl.c: Don't include c-lex.h.
	(make_pointer_declarator): Move from c-parse.in.
	* c-lex.c: Don't include c-lex.h.
	* c-lex.h: Remove.
	* c-parse.in: Don't include c-lex.h; include c-pragma.h.
	(make_pointer_declarator): Move to c-decl.c.
	* c-pragma.c: Don't include c-lex.h.
	* c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
	* c-tree.h (make_pointer_declarator): New.
doc:
	* passes.texi, tm.texi: Update.
objc:
	* Make-lang.in: Update and correct.
	* objc-act.c: Don't include c-lex.h or cpplib.h.
treelang:
	* treetree.c: Don't include c-lex.h.
config:
	* darwin-c.c: Don't include c-lex.h.
	* c4x/c4x-c.c: Don't include c-lex.h.
	* c4x/t-c4x: Update.
	* i370/i370-c.c: Don't include c-lex.h.
	* i370/t-i370: Update.
	* i960/i960-c.c: Don't include c-lex.h.
	* i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
	* i960/t-960bare: Update.
	* i960/t-vxworks: Update.
	* rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
	* rs6000/t-darwin: Update.
	* rs6000/t-rs6000-c-rule: Update.
	* v850/v850-c.c: Don't include c-lex.h.
	* v850/v850.c: Don't include c-lex.h or cpplib.h.


2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>

	* tree.def: Fix typos.
	* doc/install.texi: Likewise.

2002-05-25  Richard Henderson  <rth@redhat.com>

	* configure.in (HAVE_AS_TLS): Add ia64 test.
	* configure: Rebuild.
	* config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
	(override_options): Set it.
	(TARGET_HAVE_TLS): New.
	(sdata_symbolic_operand): Look for 's'.
	(tls_symbolic_operand): New.
	(ia64_expand_load_address): Abort for tls symbols.
	(gen_tls_get_addr): New.
	(gen_thread_pointer): New.
	(ia64_expand_move): Split out from movdi.  Handle tls symbols.
	(rtx_needs_barrier): Add new unspecs.
	(ia64_encode_section_info): Handle tls symbols.
	(ia64_strip_name_encoding): Strip two encoding chars.
	* config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
	(TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
	(TARGET_OPTIONS): Add tls-size.
	(ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
	* config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
	UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
	(movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
	(movsf, movdf): Likewise.
	(movdi_symbolic): Use match_scratch.  Don't split if we won't
	have a scratch availiable.
	(load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
	add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
	load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
	* config/ia64/ia64-protos.h: Update.
	* config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
	sdata_symbolic_operand.
	(ASM_OUTPUT_LABELREF): Strip two characters.

2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>

	* combine.c (simplify_set): Remove an unnecessary subreg.

2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.

	* config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.

2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>

	* toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.

2002-05-25  Roger Sayle  <roger@eyesopen.com>

	* simplify-rtx.c (simplify_gen_relational): Simplify the RTX
	(cond (compare x y) 0) into the equivalent (cond x y).

2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>

	* toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.

2002-05-24  Zack Weinberg  <zack@codesourcery.com>

	* config.gcc: Remove all stanzas for previously obsoleted
	systems.  Where necessary, add explicit error stanzas to
	prevent removed systems from being misidentified as something
	else.  Begin a fresh obsoletions list, with the systems that
	were reprieved last round.
	* doc/install.texi: Remove all mention of dead targets.
	* fixinc/mkfixinc.sh: Likewise.

	* config/arm/arm.h: Bit 31 of target_flags is no longer
	reserved.

	* config/1750a/1750a-protos.h, config/1750a/1750a.c,
	config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
	config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
	config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
	config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
	config/alpha/osf12.h, config/alpha/osf2or3.h,
	config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
	config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
	config/clipper/clipper-protos.h, config/clipper/clipper.c,
	config/clipper/clipper.h, config/clipper/clipper.md,
	config/clipper/clix.h, config/convex/convex-protos.h,
	config/convex/convex.c, config/convex/convex.h,
	config/convex/convex.md, config/convex/fixinc.convex,
	config/convex/proto.h, config/elxsi/elxsi-protos.h,
	config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
	config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
	config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
	config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
	config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
	config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
	config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
	config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
	config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
	config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
	config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
	config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
	config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
	config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
	config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
	config/m68k/altos3068.h, config/m68k/apollo68.h,
	config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
	config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
	config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
	config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
	config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
	config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
	config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
	config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
	config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
	config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
	config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
	config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
	config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
	config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
	config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
	config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
	config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
	config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
	config/mips/dec-osf1.h, config/mips/elflorion.h,
	config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
	config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
	config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
	config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
	config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
	config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
	config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
	config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
	config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
	config/ns32k/pc532-min.h, config/ns32k/pc532.h,
	config/ns32k/sequent.h, config/ns32k/tek6000.h,
	config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
	config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
	config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
	config/sparc/rtems.h, config/we32k/we32k-protos.h,
	config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
	Delete file.

2002-05-24  Richard Henderson  <rth@redhat.com>

	* flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
	* toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
	* config/i386/i386.c (tls_model_chars): Add leading space.
	(tls_symbolic_operand): Don't bias by 1.
	(legitimize_address): Don't unbias by 1.

2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>

	* lcm.c (optimize_mode_switching): Change bb used as indices
	to bb->index.

2002-05-24  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
	of update_life_info_in_dirty_blocks.

2002-05-24  Jakub Jelinek  <jakub@redhat.com>

	PR other/6782
	* final.c (get_mem_expr_from_op): Return 0 if op is NULL.

2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>

	PR preprocessor/6780
	* cppmacro.c (enter_macro_context): Clear state.angled_headers.

2002-05-24  Jim Blandy  <jimb@redhat.com>

	* dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
	entry with a type code of zero, marking the end of the compilation
	unit's macro info.

2002-05-24  Richard Henderson  <rth@redhat.com>

	* varasm.c (asm_output_bss): Always output one byte.
	* config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.

2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* tree.c (decl_type_context): Return NULL_TREE if decl's context is a
	namespace.

2002-05-24  Andreas Jaeger  <aj@suse.de>

	* ggc-page.c (alloc_page): Cast variables of type size_t to
	unsigned long, adjust printf format string.
	(ggc_alloc): Likewise.
	(ggc_print_statistics): Likewise.
	(ggc_print_statistics): Correct printf format string for SCALE to
	use unsigned long.

2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/mingw32.h (CPP_SPEC): Remove -remap.

2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
	    Zack Weinberg     <zack@codesourcery.com>

	* config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
	quoted strings.
	* dwarf2out.c (lookup_filename): Properly quote filename in .file
	directive in assembly file.
	* config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
	* config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
	* config/pj/pj.h (ASM_FILE_START): Likewise.
	* config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
	* config/avr/avr.c (asm_file_end): Likewise.
	* toplev.c (output_quoted_string): Handle possibly signed plain
	char.
	* toplev.h (output_clean_symbol_name): Declare
	* toplev.c (output_clean_symbol_name): Define.
	* config/alpha/alpha.c (unicosmk_output_module_name): Use it.
	* config/1750a/1750a.h (ASM_FILE_START): Likewise.

2002-05-24  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.

2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
	of size of unsigned.

2002-05-23  Richard Henderson  <rth@redhat.com>

	* configure.in (HAVE_AS_TLS): New test.
	* config.in, configure: Rebuild.
	* config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
	(ix86_tls_dialect_string, ix86_tls_dialect): New.
	(override_options): Set it.
	(tls_model_chars, tls_symbolic_operand): New.
	(tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
	(local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
	(local_exec_symbolic_operand): New.
	(get_pic_label_name): Merge into output_set_got.
	(ix86_asm_file_end): Emit pic_label_name if defined.
	(legitimate_constant_p, constant_address_p): New.
	(legitimate_pic_operand_p): New.
	(legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
	(legitimate_address_p): Likewise.
	(ix86_encode_section_info): Rename from i386_; handle tls decls.
	(ix86_strip_name_encoding): New.
	(get_thread_pointer): New.
	(legitimize_address): Handle tls symbols.
	(output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
	Remove UNSPEC_PLT.
	(struct machine_function): Add some_ld_name.
	(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
	(print_operand) [&]: Use it.  Handle UNSPEC_TP.
	(output_addr_const_extra): New.
	(maybe_get_pool_constant): New.
	(ix86_split_to_parts): Use it.
	(ix86_expand_move): Handle tls symbols.
	(ix86_tls_get_addr): New.
	* config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
	(TARGET_OPTIONS): Add tls-dialect.
	(CONSTANT_ADDRESS_P): Use new out-of-line function.
	(LEGITIMATE_CONSTANT_P): Likewise.
	(LEGITIMATE_PIC_OPERAND_P): Likewise.
	(TARGET_STRIP_NAME_ENCODING): New.
	(ASM_OUTPUT_LABELREF): New.
	(PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
	(OUTPUT_ADDR_CONST_EXTRA): New.
	(PREDICATE_CODES): Update.
	(ix86_tls_dialect, ix86_tls_dialect_string): New.
	* config/i386/i386.md: Regroup and renumber unspec constants.
	(tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
	(tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
	(tls_global_dynamic, tls_local_dynamic_base): New.
	(tls_local_dynamic_once): New.
	* config/i386/i386-protos.h: Update.

2002-05-23  Richard Henderson  <rth@redhat.com>

	* genemit.c (gen_insn): Print file:lineno comment before function.
	(main): likewise.
	* gensupport.c (struct queue_elem): Add filename member.
	(queue_pattern): Initialize it; update all callers.
	(process_include): Don't free filename.
	(read_md_rtx): Set read_rtx_filename.

2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>

	* config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.

2002-05-23  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.

2002-05-23  Richard Henderson  <rth@redhat.com>

	* doc/extend.texi (C++98 Thread-Local Edits): Update with
	commentary from Mark.

2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
	Use FOR_EACH_BB macros to iterate over basic block chain.
	* cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
	alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
	Likewise.
	* cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
	find_unreachable_blocks, create_edge_list, verify_edge_list,
	remove_fake_edges, add_noreturn_fake_exit_edges,
	flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
	Likewise.
	* cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
	find_sub_basic_blocks): Likewise.
	* cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
	Likewise.
	* cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
	Likewise.
	* cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
	Likewise.
	* cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
	commit_edge_insertions, commit_edge_insertions_watch_calls,
	print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
	* combine.c (combine_instructions, reg_dead_at_p): Likewise.
	* conflict.c (conflict_graph_compute): Likewise.
	* df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
	df_modified_p, df_refs_unlink, df_dump): Likewise.
	* dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
	* final.c (compute_alignments): Likewise.
	* flow.c (update_life_info, update_life_info_in_dirty_blocks,
	delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
	count_or_remove_death_notes): Likewise.
	* gcse.c (oprs_unchanged_p, record_last_reg_set_info,
	compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
	classic_gcse, compute_transp, cprop, compute_pre_data,
	compute_transpout, invalidate_nonnull_info,
	delete_null_pointer_checks_1, delete_null_pointer_checks,
	compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
	compute_store_table, build_store_vectors, store_motion): Likewise.
	* global.c (global_conflicts, mark_elimination): Likewise.
	* graph.c (print_rtl_graph_with_bb): Likewise.
	* haifa-sched.c (sched_init): Likewise.
	* ifcvt.c (if_convert): Likewise.
	* lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
	compute_available, compute_nearerout, compute_rev_insert_delete,
	optimize_mode_switching): Likewise.
	* local-alloc.c (local_alloc, update_equiv_regs): Likewise.
	* predict.c (estimate_probability, note_prediction_to_br_prob,
	propagate_freq, counts_to_freqs, expensive_function_p,
	estimate_bb_frequencies): Likewise.
	* profile.c (instrument_edges, get_exec_counts,
	compute_branch_probabilities, compute_checksum, branch_prob,
	find_spanning_tree): Likewise.
	* recog.c (split_all_insns, peephole2_optimize): Likewise.
	* reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
	Likewise.
	* regclass.c (scan_one_insn, regclass): Likewise.
	* regmove.c (mark_flags_life_zones, regmove_optimize,
	record_stack_memrefs): Likewise.
	* regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
	* reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
	* resource.c (find_basic_block): Likewise.
	* sched-ebb.c (schedule_ebbs): Likewise.
	* sched-rgn.c (is_cfg_nonregular, build_control_flow,
	find_single_block_region, find_rgns, schedule_insns)
	* sibcall.c (optimize_sibling_and_tail_recursive_call)
	* ssa-ccp.c (optimize_unexecutable_edges,
	ssa_ccp_df_delete_unreachable_insns): Likewise.
	* ssa-dce.c (ssa_eliminate_dead_code): Likewise.
	* ssa.c (find_evaluations, compute_dominance_frontiers_1,
	rename_block, convert_to_ssa, compute_conservative_reg_partition,
	compute_coalesced_reg_partition, rename_equivalent_regs,
	convert_from_ssa): Likewise.
	* config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
	process_for_unwind_directive): Likewise.

	* df.c (FOR_ALL_BBS): Removed.
	* gcse.c (struct null_pointer_info): Type of current_block field
	changed.
	(struct reg_avail_info): Type of last_bb field changed.
	* config/ia64/ia64.c (block_num): Removed.
	(need_copy_state): Type changed.
	(last_block): New.

2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c (mark_named_operators): Split out from init_builtins.
	(cpp_finish_options): Call it from here instead.

2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>

	* builtin-attrs.def: Update copyright years.
	(ATTR_NONNULL): New attribute identifier.
	(ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
	attribute tree lists.
	(DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
	format operand.
	(ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
	(DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
	attribute lists.  Chain the appropriate nonnull attribute.
	* c-format.c (check_format_arg): Remove null format string
	warning.
	* testsuite/gcc.dg/format/null-1.c: New test.

2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.in (ADAC): Define.
	(SYSLIBS): Define.
	(.SUFFIXES): Move before language makefile fragments.
	(STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.

2002-05-23  Mark Mitchell  <mark@codesourcery.com>

	* varasm.c (make_decl_rtl): Don't allow weak variables to be
	placed in common.

Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cfg.c (dump_flow_info): Print results of
	maybe_hot/probably_never_executed predicates.
	* toplev.c (open_dump_file): Print function frequency.

2002-05-23  David S. Miller  <davem@redhat.com>

	* cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
	regsets.

2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>

	* c-common.c (warn_nonnull): Declare.
	(c_common_attribute_table): Add "nonnull" attribute.
	(handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
	check_nonnull_arg, get_nonnull_operand, check_function_arguments,
	check_function_arguments_recurse): New functions.
	* c-common.h (warn_nonnull): Declare extern.
	(check_function_arguments, check_function_arguments_recurse): New
	prototypes.
	* c-decl.c (c_decode_option): Add -Wnonnull option.
	* c-format.c (set_Wformat): Set warn_nonnull if enabling
	format checking.
	(format_check_context): New structure.
	(check_format_info_recurse): Remove recursion and rename to...
	(check_format_arg): ...this.  Update comment.
	(check_format_info): Use check_function_arguments_recurse.
	* c-typeck.c (build_function_call): Call check_function_arguments
	instead of check_function_format.
	* doc/extend.texi: Document "nonnull" attribute.
	* doc/invoke.texi: Docuemnt -Wnonnull option.
	* testsuite/gcc.dg/nonnull-1.c: New test.
	* testsuite/gcc.dg/nonnull-2.c: New test.

2002-05-23  David S. Miller  <davem@redhat.com>

	* basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
	* cfgcleanup.c (cleanup_cfg): If it is set do not
	attempt to delete trivially dead insns.
	* except.c (finish_eh_generation): Pass it to cleanup_cfg.
	* toplev.c (rest_of_compilation): Document non-trivial aspect
	the RTL before optimize_save_area_alloca is run.

2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-lex.c (indent_level): Remove.
	(cb_file_change, c_lex): Remove indent level handling.
	* c-lex.h (indent_level): Remove.
	* input.h (struct file_stack): Remove indent_level.
	* toplev.c (push_srcloc): Remove indent_level handling.

2002-05-23  Jakub Jelinek  <jakub@redhat.com>

	PR target/6753
	* config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
	of x in constraints for clarity.
	(sse_mov?fcc split): abort if op2 == op3.
	(sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
	sse_movsfcc_const0_4): Add earlyclobber.
	(sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
	sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
	Use Y instead of x in constraints.

2002-05-23  Richard Henderson  <rth@redhat.com>

	* doc/extend.texi (C99 Thread-Local Edits): New subsection.
	(C++98 Thread-Local Edits): New subsection.

	* config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
	(ix86_arch): Set type to enum processor_type.

	* config/i386/i386.md (movsi_1, movdi_1_rex64): Use
	LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.

2002-05-23  Jakub Jelinek  <jakub@redhat.com>

	* configure.in: Fix as version test for binutils 2.12.1 releases
	(without dates).
	* configure: Rebuilt.

2002-05-23  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (get_pic_label_name): New.
	(load_pic_register): Remove.
	(output_set_got): New.
	(ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
	* config/i386/i386.md (UNSPEC_SET_GOT): New.
	(UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
	(prologue_set_got, prologue_get_pc): Remove.
	(set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
	(builtin_setjmp_receiver): Use gen_set_got.
	* config/i386/i386-protos.h: Update.

Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* gcse.c (hash_expr): Do not use alias set for hashing.

2002-05-22  Kevin Buettner  <kevinb@redhat.com>

	* dbxout.c (dbxout_class_name_qualifiers): New function.
	(dbxout_symbol): Output class/struct qualifiers for a .stabs entry.

2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpperror.c (_cpp_begin_message): No special casing
	of CPP_FATAL_LIMIT.
	* cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
	(output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
	* cpplib.c (do_include_common): Use DL_ERROR.
	* cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
	(DL_ICE): Renumber.
	* fix-header.c (read_scan_file): Update.

2002-05-22  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_expand_call): New function, extracted
	from md call patterns.  Add pic_offset_table_rtx to
	CALL_INSN_FUNCTION_USAGE when needed.
	* config/i386/i386.md (call_pop, call): Use ix86_expand_call.
	(call_value_pop, call_value, untyped_call): Likewise.
	(call_exp, call_value_exp): Remove.
	* config/i386/i386-protos.h: Update.

2002-05-22  Richard Henderson  <rth@redhat.com>

	* varasm.c (default_section_type_flags): Check for VAR_DECL
	before using DECL_THREAD_LOCAL.

2002-05-22  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
	(STARTFILE_SPEC): Delete PE crt0.o.
	* config/rs6000/aix51.h: Same.
	* config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
	* config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
	function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
	(ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
	* config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.

2002-05-22  Richard Henderson  <rth@redhat.com>

	* varasm.c (default_section_type_flags): Handle tls data and
	default sections.
	(default_unique_section): Handle tls sections.

2002-05-23  Alan Modra  <amodra@bigpond.net.au>

	* configure.in (CROSS): Define NATIVE_CROSS.
	* configure: Regenerate.
	* gcc.c (STARTFILE_PREFIX_SPEC): Define.
	(startfile_prefix_spec): New var.
	(static_specs): Add startfile_prefix_spec.
	(do_spec_2): Split out from..
	(do_spec): ..here.
	(main): Process startfile_prefix_spec.
	* config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
	dynamic linker.
	(STARTFILE_PREFIX_SPEC): Define.
	(STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
	absolute paths.

2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>

	* cpperror.c: Fix formatting.
	* cppexp.c: Likewise.
	* cppfiles.c: Likewise.
	* cpphash.c: Likewise.
	* cpphash.h: Likewise.
	* cppinit.c: Likewise.
	* cpplex.c: Likewise.
	* cpplib.c: Likewise.
	* cppmacro.c: Likewise.
	* cppmain.c: Likewise.
	* cppspec.c: Likewise.

2002-05-22  Jakub Jelinek  <jakub@redhat.com>

	* combine.c (force_to_mode): Use gen_int_mode.
	Don't clear CONST_INT bits outside of mode.

2002-05-22  Richard Henderson  <rth@redhat.com>

	* fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
	* fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.

2002-05-22  Jakub Jelinek  <jakub@redhat.com>

	PR c/6643
	* emit-rtl.c (widen_memory_access): Only call compare_tree_int
	if DECL_SIZE_UNIT is INTEGER_CST.

2002-05-22  Richard Henderson  <rth@redhat.com>

	* flow.c (life_analysis): Delete broken reg_label check.

2002-05-22  Richard Henderson  <rth@redhat.com>

	* fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
	* fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.

Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
	(embed-bb.c): New rule.
	* t-sh64 (LIB2FUNCS_EXTRA): Don't change.
	* config/sh/embed_bb.c: Delete.

Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* c-common.c (cb_register_builtins): Don't indent '#' of #define.

2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*andorqi3): New.

2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>

	PR preprocessor/6517
	* Makefile.in: Update.
	* c-common.c (c_common_post_options): Add preprocessor
	errors to the error count.
	* c-lang.c (c_post_options): Kill.
	(LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
	* hooks.h: Add header guards.
	* langhooks-def.h: Include hooks.h.
	(LANG_HOOKS_POST_OPTIONS): Update.
	* langhooks.h (struct lang_hooks): Update post_options.
	* toplev.c (parse_options_and_default_flags): Update.
objc:
	* objc-lang.c (objc_post_options): Kill.
	(LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.

2002-05-21  Bruce Korb  <bkorb@gnu.org>

	* fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
	* fixinc/inclhack.def(thread_keyword): use c_fix = format.
	* fixinc/fixincl.x: regen.

2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>

	* cfgbuild.c: Fix formatting.
	* cfg.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfglayout.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgrtl.c: Likewise.

2002-05-21  Richard Henderson  <rth@redhat.com>

	* c-common.h (enum rid): Add RID_THREAD.
	* c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
	(grokdeclarator): Grok __thread.
	* c-parse.in (reswords): Add __thread.
	(rid_to_yy): Add RID_THREAD.

	* tree.h (DECL_THREAD_LOCAL): New.
	(struct tree_decl): Add thread_local_flag.
	* print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
	* tree.c (staticp): TLS variables are not static.

	* target-def.h (TARGET_HAVE_TLS): New.
	* target.h (have_tls): New.
	* output.h (SECTION_TLS): New.
	* varasm.c (assemble_variable): TLS variables can't be common for now.
	(default_section_type_flags): Handle .tdata and .tbss.
	(default_elf_asm_named_section): Handle SECTION_TLS.
	(categorize_decl_for_section): Handle DECL_THREAD_LOCAL.

	* flags.h (flag_tls_default): Declare.
	* toplev.c (flag_tls_default): Define.
	(display_help): Display help for it.
	(decode_f_option): Set it.

	* doc/extend.texi (Thread-Local): New node describing language-level
	thread-local storage.
	* doc/invoke.texi (-ftls-model): Document.

	* fixinc/inclhack.def (thread_keyword): New.
	* fixinc/fixincl.x: Rebuild.

2002-05-21  Jeffrey A Law  <law@redhat.com>

	* optabs.c (expand_binop): For double-word integer multiplies,
	do not compute intermediate results into something that is
	not a register (such as a SUBREG or MEM).

	* i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
	(ix86_sched_reorder): Make sure to initialize scheduling
	data even when there's only one insn in the ready queue.

2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (reserv_sets_hash_value): Fix a typo.

2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (reserv_sets_hash_value): Define hash_value as
	set_el_t.  Transform the hash value into unsigned.
	(output_cycle_reservs): Fix bug with output of repeated `nothing'.
	(transform_3): Add code to process `(A,B)+(D,E)'.

2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>

	* reload1.c (do_output_reload): Run delete_output_reload
	only if optimizing.

2002-05-21  Roger Sayle  <roger@eyesopen.com>

	PR middle-end/6600
	* expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
	larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
	(can_store_by_pieces): ... and here to limit the largest mode used.
	Add a comment to document this function.

2002-05-21  Richard Henderson  <rth@redhat.com>

	* flow.c (life_analysis): Fix test for deleted label.

2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>

	* doc/tm.texi: Fix typo.

2002-05-21  Zack Weinberg  <zack@codesourcery.com>

	* c-common.c (c_common_init): Set options->unsigned_char from
	flag_signed_char.
	(cb_register_builtins): Define __STRICT_ANSI__ and
	__CHAR_UNSIGNED__ here...
	* cppinit.c (init_builtins): Not here.
	(cpp_create_reader): unsigned_char option defaults to 0, not
	!DEFAULT_SIGNED_CHAR.
	(COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
	and -funsigned-char.

	* cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
	* cpphash.c (_cpp_init_hashtable): Don't set it.
	* cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
	directly.  Clarify comment.

2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
	neighboring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
	BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
	BASIC_BLOCK (n_basic_blocks - 1).
	* cfganal.c (can_fallthru, flow_call_edges_add,
	flow_preorder_transversal_compute): Too.
	* cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
	find_sub_basic_blocks): Too.
	* cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
	* cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
	fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
	* cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
	* combine.c (this_basic_block): Type changed to basic_block.
	(combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
	nonzero_bits, num_sign_bit_copies, get_last_value_validate,
	get_last_value, distribute_notes, distribute_links): Too.
	* final.c (compute_alignments): Too.
	* flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
	* function.c (thread_prologue_and_epilogue_insns): Too.
	* gcse.c (compute_code_hoist_vbeinout): Too.
	* global.c (build_insn_chain): Too.
	* ifcvt.c (find_if_block, find_cond_trap): Too.
	* predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
	* regmove.c (regmove_optimize): Too.
	* resource.c (find_basic_block): Too.
	* sched-ebb.c (schedule_ebbs): Too.
	* ssa-dce.c (find_control_dependence, find_pdom): Too.

2002-05-21  Andreas Jaeger  <aj@suse.de>

	* cppinit.c (sanity_checks): Avoid printf mismatch warnings.

2002-05-21  Richard Henderson  <rth@redhat.com>

	* reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
	unspec names, not numbers.

2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/sourcebuild.texi: Mention snapshot-README and
	snapshot-index.html as needing updating for new front ends.

2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
	disabling checking, and avoid multiple evaluation of RTX.

2002-05-21  Richard Earnshaw  <rearnsha@arm.com>

	* bitmap.c (bitmap_find_bit): Return early if we have the correct
	element cached.

Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* profile.c (gen_edge_profiler):  Set alias set before the memory is
	used.

2002-05-20  David S. Miller  <davem@redhat.com>

	* cselib.c (max_value_regs): New.
	(cselib_lookup, cselib_invalidate_regno): Initialize it when
	adding new entries to the REG_VALUES table and we are dealing with
	a hard register.
	(clear_table): Initialize it.
	(cselib_invalidate_regno): Use it to determine which hard
	registers to scan when mode is not VOIDmode.

2002-05-20  Duraid Madina   <duraid@fl.net.au>

	* tradcpp.c (fixup_newlines): Use old-style function header.

2002-05-20  Krister Walfridsson  <cato@df.lth.se>

	* reload1.c (reload_cse_simplify): Fix typo in rtx code check.

2002-05-20  H.J. Lu  (hjl@gnu.org)

	Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:

	* config/mips/mips.h (DFMODE_NAN): Defined.
	(SFMODE_NAN): Likewise.

2002-05-20  Dale Johannesen  <dalej@apple.com>

	* combine.c (cant_combine_insn_p):  Back out my
	previous patch.

2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>

	* params.c: Fix formatting.
	* params.h: Likewise.
	* predict.c: Likewise.
	* prefix.c: Likewise.
	* print-rtl.c: Likewise.
	* print-tree.c: Likewise.
	* profile.c: Likewise.

2002-05-20  H.J. Lu  (hjl@gnu.org)

	* gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.

2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
	switches straight on to the assembler, do not abbreviate them.
	* config/arm/elf.h (ASM_SPEC): As above.
	* config/arm/semi.h (ASM_SPEC): As above.
	* config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
	* config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
	-mcpu=xscale on to the assembler by default.
	* config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.

2002-05-20  Richard Henderson  <rth@redhat.com>

	* cse.c (canon_hash): Reorder do_not_record test.  Always
	allow pic_offset_table_rtx.

2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>

	* optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
	(expand_binop): Ditto (3 times).

2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>

	* Makefile.in (distclean): Remove QMTest stuff.
	(QMTEST_PATH): New variable.
	(QMTESTFLAGS): Likewise.
	(QMTESTRUNFLAGS): Likewise.
	(QMTEST): Likewise.
	(QMTEST_GPP_TESTS): Likewise.
	(QMTEST_DIR): Likewise.
	(QMTEST_DIR/context): New target.
	(qmtest-g++): Likeise.
	(qmtest-gui): Likewise.
	(QMTEST_DIR/gpp-expected.qmr): Likewise.

2002-05-19  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
	an altivec register if TARGET_ALTIVEC.

	* config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
	to ALTIVEC_VECTOR_MODE.
	(rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
	(rs6000_va_arg): Vectors may go in registers if they are not
	altivec vectors.

2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>

	* protoize.c: Fix formatting.

2002-05-19  Richard Henderson  <rth@redhat.com>

	* gensupport.c (init_include_reader): Merge into ...
	(process_include): ... here.  Simplify composite path creation.
	Plug memory leaks.  Fix file/line number tracking.  Do not
	process_define_cond_exec.  Return void.
	(process_rtx): Don't check process_include return value.

2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* basic_block.h (struct basic_block_def): Added prev_bb and next_bb
	fields.
	(FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
	traversing basic block chain.
	(create_basic_block_structure, create_basic_block): Declaration changed.
	(link_block, unlink_block): Declare.
	* cfg.c (entry_exit_blocks): Initialize new fields.
	(link_block, unlink_block): New.
	(expunge_block_nocompact): Unlink basic block.
	(dump_flow_info): Print prev_bb/next_bb fields.
	* cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
	* cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
	* cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
	* cfgrtl.c (create_basic_block_structure, create_basic_block,
	split_block, force_nonfallthru_and_redirect, split_edge): Modified.
	(verify_flow_info): Check that list agrees with numbering.

2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (preprocessing_asm): New macro.
	* c-lex.h (builtin_define, builtin_assert): Use pfile.
doc:
	* tm.texi: Update.
config/alpha:
	* alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
	(CPP_SPEC): Simplify.
	(TARGET_CPU_CPP_BUILTINS): Update.
	* freebsd.h (TARGET_OS_CPP_BUILTINS): New.
	(CPP_SPEC): Simplify.
	* linux.h (CPLUSPLUS_CPP_SPEC): Remove.
	(TARGET_OS_CPP_BUILTINS): Update.
	* osf.h (CPP_XFLOAT_SPEC): Kill.
	(TARGET_OS_CPP_BUILTINS): Update.
	(CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
	* osf5.h (CPP_XFLOAT_SPEC): Kill.
	* vms.h (CPP_SUBTARGET_SPEC): Kill.
	(TARGET_OS_CPP_BUILTINS): Update.

2002-05-19  Richard Henderson  <rth@redhat.com>

	* varasm.c (default_binds_local_p): Fix typo.

2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (machine_dependent_reorg): Sign extend the
	CONST_INT operand to the correct mode after adding 1 to it.

2002-05-19  Mark Mitchell  <mark@codesourcery.com>

	* config.gcc (powerpc-wrs-windiss*): New target.

2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* config/rs6000/rs6000.md (ashrdi3_no_power): New.
	(ashrdi3): Use it.

2002-05-18  Mark Mitchell  <mark@codesourcery.com>

	* configure.in (AC_CHECK_FUNCS): Add checks for scandir and
	alphasort.
	* config.in: Regenerated.
	* configure: Regenerated.

2002-05-19  Richard Henderson  <rth@redhat.com>

	* target-def.h (TARGET_BINDS_LOCAL_P): New.
	* target.h (struct gcc_target): Move boolean fields to the end.
	Add binds_local_p.
	* varasm.c (default_binds_local_p): New.
	* output.h: Declare it.

	* config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
	* config/cris/cris.c (cris_encode_section_info): Likewise.
	* config/i386/i386.c (i386_encode_section_info): Likewise.
	* config/ia64/ia64.c (ia64_encode_section_info): Likewise.
	* config/sh/sh.c (sh_encode_section_info): Likewise.

	* doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
	(TARGET_BINDS_LOCAL_P): New.

2002-05-19  Richard Henderson  <rth@redhat.com>

	* system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
	FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
	MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.

	* toplev.c (display_help): Kill -a -ax help.

	* config/1750a/1750a.h, config/alpha/alpha.h,
	config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
	config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
	config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
	(FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.

	* libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
	* config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.

	* config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
	(ix86_output_function_block_profiler): Kill.
	* config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
	(m68hc11_function_block_profiler): Kill.
	* config/m68hc11/m68hc11-protos.h: Update.
	* config/m88k/m88k.c (output_block_profiler): Kill.
	(output_function_block_profiler): Kill.
	* config/m88k/m88k-protos.h: Update.

2002-05-19  Richard Henderson  <rth@redhat.com>

	* system.h (STRIP_NAME_ENCODING): Poison it.
	* output.h (STRIP_NAME_ENCODING): Remove.
	(default_strip_name_encoding): Declare.
	* target-def.h (TARGET_STRIP_NAME_ENCODING): New.
	* target.h (strip_name_encoding): New.
	* varasm.c (default_strip_name_encoding): New.

	* dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
	config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
	config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
	config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
	config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
	config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
	config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
	config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
	config/v850/v850.h: Use the hook, not the macro.

	* config/darwin-protos.h, config/darwin.c, config/darwin.h,
	config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
	config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
	config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
	config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
	config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
	config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
	config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
	config/v850/v850.c, config/v850/v850.h:
	Move STRIP_NAME_ENCODING to out-of-line function and add
	TARGET_STRIP_NAME_ENCODING.

	* config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
	config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
	with TARGET_STRIP_NAME_ENCODING referencing existing function;
	make function static.

	* xcoffout.c: Include target.h
	* Makefile.in (xcoffout.o): Update.

	* config/avr/avr.c (avr_encode_section_info): Correct prototype.
	* config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
	* config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
	reloc argument unused.
	* config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.

	* doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
	STRIP_NAME_ENCODING docs.

2002-05-19  Andreas Jaeger  <aj@suse.de>

	* gengenrtl.c: Add prototype for excluded_rtx.

	* real.h: Add prototype for exact_real_truncate.

2002-05-18  Richard Henderson  <rth@redhat.com>

	* system.h (ENCODE_SECTION_INFO): Poison it.
	* target-def.h (TARGET_ENCODE_SECTION_INFO): New.
	* target.h (encode_section_info): New.
	* varasm.c (make_decl_rtl, output_constant_def): Use it.
	* hooks.c (hook_tree_int_void): New.
	* hooks.h: Declare it.

	* config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
	config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
	config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
	config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
	config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
	config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
	config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
	config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
	config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
	config/mcore/mcore-protos.h, config/mcore/mcore.c,
	config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
	config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
	config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
	config/stormy16/stormy16.c, config/stormy16/stormy16.h:
	Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
	referencing existing function.  Make function static.

	* config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
	config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
	config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
	config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
	config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
	config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
	config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
	config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
	config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
	config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
	config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
	config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
	config/xtensa/xtensa.c, config/xtensa/xtensa.h:
	Move ENCODE_SECTION_INFO to out-of-line function and add
	TARGET_ENCODE_SECTION_INFO.

	* config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
	(ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.

	* config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
	from SUBTARGET_*
	(switch_to_section): Replace in_rdata case with in_readonly_data.

	* config/h8300/h8300.c (h8300_encode_label): Make static.
	* config/h8300/h8300-protos.h: Update.

	* config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
	from rs6000_encode_section_info; make static.
	(rs6000_xcoff_encode_section_info): New.

	* config/v850/v850.c (v850_encode_data_area): Make static.
	* config/v850/v850-protos.h: Update.

	* config/vax/vax.c: Include flags.h.
	(vms_select_section): Fix typo.

	* doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
	ENCODE_SECTION_INFO docs.

2002-05-18  Richard Henderson  <rth@redhat.com>

	* config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
	REGISTER_TARGET_PRAGMAS.
	* config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.

	* config.gcc: Do not use rs6000-c.c on powerpc-darwin.

2002-05-18  Richard Henderson  <rth@redhat.com>

	* system.h (SELECT_RTX_SECTION): Poison.
	* target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
	* target.h (select_rtx_section): New.
	* varasm.c (output_constant_pool): Use it.
	(default_select_rtx_section, default_elf_select_rtx_section): New.
	* output.h: Declare them.

	* config/darwin.h (SELECT_RTX_SECTION): Move ...
	* config/darwin.c (machopic_select_rtx_section): ... here.
	* config/darwin-protos.h: Update.

	* config/nextstep.h (SELECT_RTX_SECTION): Move ...
	* config/nextstep.c (machopic_select_rtx_section): ... here.
	(nextstep_select_section): Rename variable to avoid macro clash.
	* config/nextstep-protos.h: Update.

	* config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
	config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
	config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
	config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
	config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
	config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
	config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
	config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
	config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
	(SELECT_RTX_SECTION): Remove.

	* config/darwin.h, config/elfos.h, config/nextstep.h,
	config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
	config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
	config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
	config/sparc/lynx.h, config/xtensa/xtensa.c
	(TARGET_ASM_SELECT_RTX_SECTION): New.

	* config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
	* config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
	* config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
	* config/ia64/ia64.c (ia64_select_rtx_section): ... here.
	(ia64_aix_select_rtx_section): New.
	* config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
	redefining.
	* config/mips/mips.c (mips_select_rtx_section): Make static.
	Support ELF SHF_MERGE features.
	* config/mips/mips-protos.h: Update.
	* config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
	* config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
	(rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
	make static, fall back to default_elf_select_rtx_section.
	* config/rs6000/rs6000-protos.h: Update.
	* config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
	* config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
	* config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
	* config/romp/romp.c (romp_select_rtx_section): New.
	* config/s390/s390.c (s390_select_rtx_section): New.
	* config/xtensa/xtensa.c: Include output.h.  Shuffle local function
	declarations before target macro definition.
	(xtensa_emit_call): Use static buffer.
	(xtensa_select_rtx_section): New.
	* config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
	(IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
	(ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.

	* doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
	SELECT_RTX_SECTION docs.

Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movsi/movdi): Fix template.
	(sse2 patterns): Set attributes consistently.

	* i386.md (pushqi2, ashrqi_*): Fix constraint.

2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>

	* optabs.c (complex_part_zero_p): New.
	* (expand_cmplxdiv_straight): Use it.
	* (expand_cmplxdiv_wide): Ditto.
	* (expand_binop): Ditto.

2002-05-18  Richard Henderson  <rth@redhat.com>

	* final.c (HAVE_READONLY_DATA_SECTION): New.
	(shorten_branches): Use it instead of ifdefs.
	* varasm.c (enum in_section): Add in_readonly_data.
	(text_section, data_section): Tidy.
	(readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.

	* config/darwin.h, config/nextstep.h, config/h8300/elf.h,
	config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
	(READONLY_DATA_SECTION): Don't undef.

	* config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
	config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
	config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.

	* config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
	config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
	config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
	config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.

	* config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
	config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
	config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
	config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
	config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
	config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
	config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
	config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
	CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.

	* config/elfos.h, config/netware.h, config/1750a/1750a.h,
	config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
	config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
	config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
	config/pa/pa64-hpux.h, config/sparc/litecoff.h
	(EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.

	* config/elfos.h, config/netware.h, config/svr3.h,
	config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
	config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
	config/h8300/h8300.h, config/i386/i386-interix.h,
	config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
	config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.

	* config/elfos.h, config/netware.h, config/svr3.h,
	config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
	config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
	config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
	config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.

	* config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
	config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
	config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
	config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
	config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
	config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
	config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
	config/rs6000/sysv4.h, config/v850/v850.h
	(EXTRA_SECTIONS): Remove in_const/in_rdata.
	(EXTRA_SECTION_FUNCTIONS): Remove accompanying function.

	* config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
	config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
	config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
	config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
	* config/alpha/alpha.c (alpha_start_function): Likewise.
	(alpha_write_linkage): Likewise.
	* config/m32r/m32r.c (m32r_select_section): Likewise.
	* config/m88k/m88k.c (m88k_select_section): Likewise.
	* config/mips/mips.c (mips_select_rtx_section): Likewise.
	* config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
	(rs6000_elf_select_section): Likewise.
	* config/v850/v850.c (v850_select_section): Likewise.

	* config/1750a/1750a.h, config/i860/sysv3.h
	(READONLY_DATA_SECTION_ASM_OP): New.
	READONLY_DATA_SECTION_ASM_OP.
	* config/i386/interix.c, config/i386/winnt.c
	(i386_pe_unique_section): Always use .rdata prefix.
	* config/pa/som.h (readonly_data): Always switch to read-only section.
	(READONLY_DATA_SECTION): Predicate on flag_pic.
	* config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
	* doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
	(READONLY_DATA_SECTION): Update.

2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>

	* c-common.c (c_common_post_options): Warn if -Wformat-zero-length
	is used without -Wformat.
	* c-common.h (warn_format_zero_length): Declare extern.
	* c-decl.c (warn_options): Add "format-zero-length".
	* c-format.c (warn_format_zero_length): Declare.
	(set_Wformat): Set warn_format_zero_length for -Wformat.
	(check_format_info): Only warn about zero-length formats if
	warn_format_zero_length is true.  Include the format type
	name in the warning message.
	* doc/invoke.texi: Document -Wformat-zero-length.
	* testsuite/gcc.dg/format/zero-length-1.c: New test.

2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>

	* timevar.c: Fix formatting.
	* tlink.c: Likewise.
	* toplev.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-inline.c: Likewise.

2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c (cpp_post_options): If preprocessed, turn off
	traditional.  If traditional, turn off column numbers.
	* cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
	* cpptrad.c (handle_newline): Update line_base.
	(skip_comment): Handle -Wcomment.

2002-05-17  Zack Weinberg  <zack@codesourcery.com>

	* cppinit.c (struct builtin): Remove unused fields.
	(CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
	(operator_array): New - was second half of builtin_array.
	(init_builtins): Simplify loop over builtin_array/operator_array.

2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>

	* defaults.h (UNIQUE_SECTION): Remove.
	* system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.

2002-05-17  Richard Henderson  <rth@redhat.com>

	* expr.c (init_expr_once): Don't use start/end_sequence.
	Use rtx_alloc instead of emit_insn.
	* toplev.c (lang_dependent_init): Run init_expr_once here ...
	(lang_independent_init): ... not here.

2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.

2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_regs_to_save): New function.  Also check
	for fixed registers, possibly used for global register variables.
	(initial_elimination_offset, avr_output_function_prologue,
	avr_output_function_epilogue):  Move common code to avr_regs_to_save.

2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in: Update for cpptrad.c.
	* cpphash.h (struct cpp_buffer): New members for buffer
	overlays.
	(struct cpp_reader): New members for traditional output.
	(_cpp_read_logical_line, _cpp_overlay_buffer): New.
	* cppinit.c (cpp_create_reader): Set trad_line.
	(cpp_destroy): Free trad_out_base if used.
	(cpp_read_main_file): Overlay an empty buffer if traditional.
	(cpp_finish_options): Don't do builtins.
	(COMMAND_LINE_OPTIONS): Add -traditional-cpp.
	(cpp_handle_option): Handle it.
	* cpplex.c (continue_after_nul): New.
	(_cpp_lex_direct): Use handle_nul.
	* cpplib.h (struct cpp_options): New traditional option.
	* cpptrad.c: New file.

2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (c_common_init_options): Use C89 for Objective-C,
	and set the options flag.
	* cppinit.c (lang_flags): Remove objc.
	(lang_defaults): Remove OBJC and OBJCXX.
	(set_lang): Update.
	(COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
	(cpp_handle_option): Remove -+ and -lang-objc++.
	For ObjC, just set a flag.
	(print_help): Update.
	* cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.

2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* doc/install.texi (Specific, mips-sgi-irix6): Document need to
	bootstrap with -mips3.

2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>

	* final.c: Fix formatting.
	* fix-header.c: Likewise.
	* flow.c: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.

2002-05-17  David S. Miller  <davem@redhat.com>

	PR c/6689, PR optimization/6615
	* local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
	and make it a pointer to rtx.  Update comments.
	(update_equiv_regs): When scanning for equivalences, record
	address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
	it while making the equiv replacements.

2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.

2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
	when encoding visibility into SYMBOL_REF_FLAG.

2002-05-17  Richard Sandiford  <rsandifo@redhat.com>

	* expr.c (force_operand): Fix reversed move.

2002-05-17  Kurt Wall <kwall@kurtwerks.com>

	* doc/install.texi (Testing): Mention two common DejaGnu warnings
	that can be ignored.

2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi (Final install): Recommend to install into a
	"clean" target directory.

2002-05-17  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.md: Use braced strings instead of quoted strings
	for code blocks.  Tidy whitespace.

2002-05-17  Richard Henderson  <rth@redhat.com>

	* hooks.c (hook_tree_bool_false): New.
	* hooks.h: Declare it.
	* target-def.h (TARGET_ASM_SELECT_SECTION): New.
	(TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
	* target.h (select_section, unique_section): New.
	(in_small_data_p): New.
	* varasm.c (resolve_unique_section): Use hooks instead of macros.
	(variable_section, output_constant_def_contents): Likewise.
	(default_select_section, default_unique_section): New.
	(categorize_decl_for_section, default_elf_select_section): New.
	* output.h: Declare them.

	* config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
	(TARGET_ASM_SELECT_SECTION): New.
	(SELECT_SECTION): Move ...
	* config/darwin.c (machopic_select_section): ... here.
	* config/darwin-protos.h: Update.

	* config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
	(SELECT_SECTION): Move ...
	* config/nextstep.c (nextstep_select_section): ... here.
	* config/nextstep-protos.h: Update.

	* config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
	(TARGET_ASM_SELECT_SECTION): New.
	* config/svr3.h (SELECT_SECTION): Remove.

	* config/alpha/alpha.c (unicosmk_unique_section): Make static.
	(TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
	(TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
	(alpha_encode_section_info): Use it.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/elf.h (DO_SELECT_SECTION): Remove.
	(SELECT_SECTION, UNIQUE_SECTION): Remove.
	(TARGET_ASM_SELECT_SECTION): New.
	* config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.

	* config/arm/pe.h (UNIQUE_SECTION): Remove.
	(TARGET_ASM_UNIQUE_SECTION): New.

	* config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
	(avr_unique_section): Rename from unique_section; make static.
	* config/avr/avr-protos.h: Update.
	* config/avr/avr.h (UNIQUE_SECTION): Remove.

	* config/c4x/c4x.h (SELECT_SECTION): Remove.

	* config/i386/cygwin.h (UNIQUE_SECTION): Remove.
	(TARGET_ASM_UNIQUE_SECTION): New.
	* config/i386/i386-interix.h: Likewise.
	* config/i386/win32.h: Likewise.
	* config/i386/djgpp.h (UNIQUE_SECTION): Remove.
	* config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
	* config/i386/sco5.h (SELECT_SECTION): Remove.
	(TARGET_ASM_SELECT_SECTION): New.
	* config/i386/svr3gas.h (SELECT_SECTION): Remove.

	* config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
	instead of SELECT_SECTION.
	* config/m68k/dpx2.h: Likewise.
	* config/rs6000/lynx.h: Likewise.

	* config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
	(TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
	* config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
	(ia64_in_small_data_p): New.
	(ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
	(ia64_aix_select_section, ia64_aix_unique_section): New.
	* config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
	(SELECT_SECTION, UNIQUE_SECTION): Remove.

	* config/m32r/m32r.h (SELECT_SECTION): Remove.
	(TARGET_ASM_SELECT_SECTION): New.
	* config/m32r/m32r.c (m32r_select_section): Take align argument.
	* config/m32r/m32r-protos.h: Update.

	* config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
	(SELECT_SECTION): Move ...
	* config/m88k/m88k.c (m88k_select_section): ... here.

	* config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
	* config/mcore/mcore.h (UNIQUE_SECTION): Remove.
	* config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
	(mcore_unique_section): Make static.
	* config/mcore/mcore-protos.h: Update.

	* config/mips/elf.h (UNIQUE_SECTION): Remove.
	(TARGET_ASM_UNIQUE_SECTION): New.
	* config/mips/elf64.h: Likewise.
	* config/mips/iris6gld.h: Likewise.
	* config/mips/linux.h: Likewise.
	* config/mips/mips-protos.h: Update.
	* config/mips/mips.c (mips_select_section): Add align argument.
	* config/mips/mips.h (SELECT_SECTION): Remove.
	(TARGET_ASM_SELECT_SECTION): New.

	* config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
	* config/mmix/mmix.c (mmix_select_section): Remove.
	(mmix_unique_section): Remove.
	* config/mmix/mmix-protos.h: Update.

	* config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
	(SELECT_SECTION): Move ...
	* config/pa/pa.c (pa_select_section): ... here.
	* config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.

	* config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
	from rs6000_select_section and make static.
	(rs6000_elf_unique_section): Similarly.
	(rs6000_xcoff_select_section): From xcoff.h.
	(rs6000_xcoff_unique_section): Likewise.
	* config/rs6000/rs6000-protos.h: Update.
	* config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
	(TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
	* config/rs6000/xcoff.h: Likewise.

	* config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
	(SELECT_SECTION): Move ...
	* config/sparc/sparc.c (sparc_aout_select_section): ... here.

	* config/v850/v850.h (SELECT_SECTION): Move ...
	* config/v850/v850.c (v850_select_section): ... here.
	(TARGET_ASM_SELECT_SECTION): New.

	* config/vax/vms.h (SELECT_SECTION): Move ...
	* config/vax/vax.c (vms_select_section): ... here.
	(TARGET_ASM_SELECT_SECTION): New.

	* doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
	for the target hooks.

2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c (emit_multi_reg_push): Do not set
	RTX_FRAME_RELATED_P on the SEQUENCE.

2002-05-16  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
	splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.

2002-05-16  Richard Henderson  <rth@redhat.com>

	* config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.

	* config/ia64/ia64.c (saveable_obstack): Do not declare.

2002-05-16  Richard Henderson  <rth@redhat.com>

	* basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
	cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
	conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
	gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
	local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
	recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
	reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
	sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
	Revert "Basic block renumbering removal", and two followup patches.

2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>

	* lcm.c (optimize_mode_switching): Revert previous change.

2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* sched-rgn.c (schedule_insns): Initialize large_region_blocks
	with only extant block numbers.

2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>

	* lcm.c (optimize_mode_switching): Fix typo.

2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* flow.c (calculate_global_regs_live): Queue blocks in program order.

2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* doc/install.texi (Configuration): Document PWDCMD.

2002-05-16  Dale Johannesen  <dalej@apple.com>

	* combine.c (cant_combine_insn_p):  Reenable combinations
	involving hard regs unless CLASS_LIKELY_SPILLED_P.

2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (cb_register_builtins): Handle more built-ins
	here rather than in gcc.c specs.
	* gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
	(cpp_options): Pass -O flags even when only preprocessing.
	* toplev.c (set_fast_math_flags): New prototype.
	(fast_math_flags_set_p): New.
	(set_no_fast_math_flags): Remove.
	(decode_f_option): Update.
	* toplev.h (set_fast_math_flags): Update.
	(fast_math_flags_set_p): New.
	(set_no_fast_math_flags): Remove.
config:
	* c4x/c4x.c (c4x_override_options): Update.

2002-05-16  Zack Weinberg  <zack@codesourcery.com>

	* c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
	Default-define here.
	(builtin_define_with_value): Can now wrap the expansion in
	quotation marks if such is wanted.
	(cb_register_builtins): Update calls to	builtin_define_with_value.
	Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
	here.
	(c_common_init): Set options->stdc_0_in_system_headers.
	* c-lex.h: Update prototype of builtin_define_with_value.
	* cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
	and REGISTER_PREFIX.

	* cppinit.c (VERS, ULP, C, X): Kill.
	(builtin_array): Remove entries for __VERSION__,
	__USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
	__HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
	a constant.
	(init_builtins): Kill off a bunch of now-dead code.
	(COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
	-fno-leading-underscore.
	(cpp_handle_option): Remove code to set user_label_prefix.
	(cpp_post_options): Likewise.

	* cpplib.h (struct cpp_options): Remove user_label_prefix.
	(stdc_0_in_system_headers): New.
	* cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
	stdc_0_in_system_headers) too to decide the value of __STDC__.

	* tradcpp.c (user_label_prefix): Kill.
	(main): Remove code handling -f(no-)leading-underscore.
	(initialize_builtins): Don't define __REGISTER_PREFIX__
	or __USER_LABEL_PREFIX__.
	(install_value): Wrap compound statement in dummy loop so the
	macro works properly in an if statement.


2002-05-16  Janis Johnson  <janis187@us.ibm.com>

	* loop.h (struct loop_info): Add member has_prefetch.
	* loop.c (PREFETCH_CONDITIONAL): Change default to 1.
	(prescan_loop): Initialize has_prefetch.
	(struct prefetch_info): Change prefetch_in_loop and
	prefetch_before_loop from bit fields to ints.
	(emit_prefetch_instructions): Several small fixes.
	(check_dbra_loop): Don't reverse loop that uses prefetch.

2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* Makefile.in: Allow for PWDCMD to override hardcoded pwd.
	* configure.in: Likewise.
	* fixinc/check.tpl: Likewise.
	* fixinc/fixinc.dgux: Likewise.
	* fixinc/fixinc.svr4: Likewise.
	* fixinc/fixinc.winnt: Likewise.
	* fixinc/fixincl.sh: Likewise.
	* fixproto: Likewise.
	* configure: Regenerate.

2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	Basic block renumbering removal:
	* basic_block.h (struct basic_block_def): Renamed index to sindex,
	added prev_bb and next_bb fields.
	(n_basic_blocks): Renamed to num_basic_blocks.
	(last_basic_block): New, index of last basic block.
	(FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
	traversing basic block chain.
	(BLOCK_NUM): index -> sindex.
	(create_basic_block_structure, create_basic_block): Declaration changed.
	(debug_num2bb): Declare.
	(expunge_block_nocompact): Declaration removed.
	(link_block, unlink_block, compact_blocks): Declare.
	* bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
	* cfg.c (entry_exit_blocks): Initialize new fields.
	(clear_edges, alloc_block, expunge_block, cached_make_edge,
	redirect_edge_pred, dump_flow_info, dump_edge_info,
	alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
	free_aux_for_edges): Modified.
	(link_block, unlink_block, compact_blocks, debug_num2bb): New.
	(expunge_block_nocompact): Removed.
	* cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
	find_unreachable_blocks, create_edge_list, print_edge_list,
	verify_edge_list, flow_edge_list_print, remove_fake_successors,
	remove_fake_edges, flow_reverse_top_sort_order_compute,
	flow_depth_first_order_compute, flow_preorder_transversal_compute,
	flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
	flow_dfs_compute_reverse_execute): Modified.
	* cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
	find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
	Modified.
	* cfgcleanup.c (try_simplify_condjump, try_forward_edges,
	merge_blocks_move_predecessor_nojumps,
	merge_blocks_move_successor_nojumps, merge_blocks,
	outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
	try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
	* cfglayout.c (skip_insns_after_block, label_for_bb,
	record_effective_endpoints, scope_to_insns_finalize,
	fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
	fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
	cfg_layout_duplicate_bb): Modified.
	* cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
	flow_loop_entry_edges_find, flow_loop_exit_edges_find,
	flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
	flow_loops_find, flow_loop_outside_edge_p): Modified.
	* cfgrtl.c (create_basic_block_structure, create_basic_block,
	flow_delete_block, compute_bb_for_insn, split_block,
	try_redirect_by_replacing_jump, redirect_edge_and_branch,
	force_nonfallthru_and_redirect, tidy_fallthru_edge,
	back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
	commit_edge_insertions, commit_edge_insertions_watch_calls,
	dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
	purge_all_dead_edges): Modified.
	* combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
	try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
	get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
	Modified.
	* conflict.c (conflict_graph_compute): Modified.
	* df.c (FOR_ALL_BBS): Removed.
	(df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
	df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
	df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
	* df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
	* dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
	calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
	* final.c (compute_alignments, final_scan_insn): Modified.
	* flow.c (verify_local_live_at_start, update_life_info,
	update_life_info_in_dirty_blocks, free_basic_block_vars,
	delete_noop_moves, calculate_global_regs_live,
	initialize_uninitialized_subregs, allocate_bb_life_data,
	regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
	mark_used_reg, count_or_remove_death_notes): Modified.
	* function.c (thread_prologue_and_epilogue_insns): Modified.
	* gcse.c (struct null_pointer_info): Change typo of current_block
	to basic_block.
	(gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
	oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
	compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
	alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
	expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
	classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
	one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
	pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
	pre_delete, one_pre_gcse_pass, compute_transpout,
	invalidate_nonnull_info, delete_null_pointer_checks_1,
	free_code_hoist_mem, compute_code_hoist_vbeinout,
	hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
	compute_ld_motion_mems, store_ops_ok, find_moveable_store,
	compute_store_table, build_store_vectors, insert_insn_start_bb,
	insert_store, replace_store_insn, free_store_memory, store_motion):
	Modified.
	* global.c (global_alloc, global_conflicts, mark_elimination,
	build_insn_chain): Modified.
	* graph.c (print_rtl_graph_with_bb): Modified.
	* haifa-sched.c (sched_init): Modified.
	* ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
	(find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
	if_convert): Modified.
	* lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
	compute_insert_delete, pre_edge_lcm, compute_available,
	compute_farthest, compute_nearerout, compute_rev_insert_delete,
	pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
	Modified.
	* local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
	* loop.c (loop_dump_aux): Modified.
	* predict.c (combine_predictions_for_insn, estimate_probability,
	last_basic_block_p, process_note_prediction, process_note_predictions,
	note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
	expensive_function_p, estimate_bb_frequencies,
	compute_function_frequency): Modified.
	* print-rtl.c (print_rtx): Modified.
	* profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
	get_exec_counts, compute_branch_probabilities, compute_checksum,
	branch_prob, find_spanning_tree): Modified.
	* recog.c (split_all_insns, peephole2_optimize): Modified.
	* reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
	convert_regs_1, convert_regs_2, convert_regs): Modified.
	* regclass.c (scan_one_insn, regclass): Modified.
	* regmove.c (mark_flags_life_zones, regmove_optimize,
	combine_stack_adjustments): Modified.
	* regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
	* reload1.c (reload, reload_combine, copy_eh_notes): Modified.
	* reorg.c (dbr_schedule): Modified.
	* resource.c (find_basic_block, init_resource_info): Modified.
	* sbitmap.c (sbitmap_intersection_of_succs,
	sbitmap_intersection_of_preds, sbitmap_union_of_succs,
	sbitmap_union_of_preds): Modified.
	* sched-deps.c (init_dependency_caches): Modified.
	* sched-ebb.c (schedule_ebbs): Modified.
	* sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
	find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
	* sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
	* ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
	ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
	ssa_const_prop): Modified.
	* ssa-dce.c (set_control_dependent_block_to_edge_map_,
	find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
	* ssa.c (remove_phi_alternative, find_evaluations,
	compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
	insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
	make_regs_equivalent_over_bad_edges,
	make_equivalent_phi_alternatives_equival,
	compute_conservative_reg_partition,
	coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
	rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
	Modified.

2002-05-16  Mark Mitchell  <mark@codesourcery.com>

	* cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.

2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c (arm_rtx_costs): Check for RTX being a
	SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
	(arm_adjust_cost): Check for RTX being a SYMBOL_REF before
	calling CONSTANT_POOL_ADDRESS_P.
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
	to decide whether to define __arm__ or __thumb.
	(THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
	SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.

2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>

	* config/arc/arc.h (CPP_PREDEFINES): Remove.
	(CPP_SPEC): Update.
	(TARGET_CPU_CPP_BUILTINS): New.

2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpphash.h (cpp_macro): Move here, and make expansion a union.
	* cppmacro.c (cpp_macro): Remove.
	(enter_macro_context, replace_args, warn_of_redefinition,
	_cpp_create_definition, cpp_macro_definition): Update.

2002-05-16  Jason Merrill  <jason@redhat.com>

	* config/mips/mips.c (mips_output_external): Don't do sdata
	optimization for a variable with DECL_COMDAT set.

2002-05-15  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h: Cleanups for tighter typechecking.
	Cleanups for accepting modifiers on pointers.
	Fix predicate typos.
	Allow long pointers as well as int pointers.

2002-05-15  Richard Henderson  <rth@redhat.com>

	* varasm.c (merge_weak): Remove special case for extern and common.

2002-05-15  Matt Hiller  <hiller@redhat.com>

	* testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
	XFAILing.
	* testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
	* testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
	* testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
	* testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
	* testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
	* testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.

2002-05-15  Aldy Hernandez  <aldyh@redhat.com>

	* reload1.c (forget_old_reloads_1): Do not use subreg offset.

2002-05-15  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
	("altivec_mfvscr"): Read from VSCR.

	Add vscr sets for the following insns: altivec_vctuxs,
	altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
	altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
	altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
	altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
	altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
	altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
	altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
	altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
	altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
	altivec_vsum2sws, altivec_vsumsws.

	* config/rs6000/rs6000.h: Add VSCR fixed register.
	(CALL_REALLY_USED_REGISTERS): Add vscr.
	(CALL_USED_REGISTERS): Same.
	(FIXED_REGISTERS): Same.
	(REG_ALLOC_ORDER): Same.
	(reg_class): Add VSCR_REGS.
	(REG_CLASS_NAMES): Same.
	(REG_CLASS_CONTENTS): Same.
	(VSCR_REGNO): New.
	(REGISTER_NAMES): Add vscr.
	(DEBUG_REGISTER_NAMES): Same.
	(ADDITIONAL_REGISTER_NAMES): Same.
	(FIRST_PSEUDO_REGISTER): Increment.
	(CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.

2002-05-15  Jakub Jelinek  <jakub@redhat.com>

	* fold-const.c (fold): Fix a typo.

2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>

	* fold-const.c (fold) [LT_EXPR]: Move the transformation of a
	comparison against the highest or lowest integer value before
	the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
	transformation and that of an unsigned comparison against 0
	right after.

2002-05-15  Richard Henderson  <rth@redhat.com>

	* varasm.c (merge_weak): Error for any weakening after definition.
	Adjust weakening after use warning to catch more cases.
	(assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
	* config/alpha/alpha.c (alpha_encode_section_info): Do not abort.

Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* invoke.texi (-malign-double): Re-add lost warning.

	* i386-protos.h (x86_output_mi_thunk): Declare.
	* unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
	* i386.c (x86_output_mi_thunk): ... here; handle 64bits.

	* dwarf2out.c (output_call_frame_info): Do not skip unwind info
	when flag_asynchronous_unwind_tables is set.

	* flags.h (flag_reorder_functions): Declare.
	* function.c (prepare_function_start): Initialize frequnecy.
	* params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
	* Makefile.in (predict.o): Add dependency on target.h and params.h
	* defaults.h (HOT_TEXT_SECTION_NAME,
	UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
	* predict.c (choose_function_section): New function.
	(estimate_bb_frequencies): Use it.
	* toplev.c (flag_reorder_functions): New global variable.
	(lang_independent_options): New.
	(parse_options_and_default_flags): Set.
	* varasm.c (assemble_start_function): Bypass functdion alignment
	for never executed functions.
	* invoke.texi (-freorder-blocks, -freorder-functions): Document.
	(param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
	* tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
	Document.

	Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>

	* predict.c: Inlude profile.h
	(MIN_COUNT): Rename to MIN_COUNT_FRACTION
	(maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
	Use the information about maximal counter in the program.

	Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
	probably_never_executed_bb_p): New functions.
	* cfgcleanup.c (outgoing_edges_match): Use them.
	* predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
	(maybe_hot_bb_p, probably_cold_bb_p,
	probably_never_executed_bb_p): New functions.

	* function.h (function): Add new field function_frequency.
	* predict.c (compute_function_frequency): New function.
	(estimate_probability): Call it.

2002-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/5172, optimization/5200
	* gcse.c (gcse_main): Disable store_motion.

2002-05-14  Zack Weinberg  <zack@codesourcery.com>

	* c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
	(c_common_nodes_and_builtins): Use it.
	(builtin_define_with_value): New function.
	(cb_register_builtins): Define __SIZE_TYPE__,
	__PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
	using builtin_define_with_value.  Use consistent notation when
	defining __GXX_WEAK__.
	(WCHAR_TYPE_SIZE): Don't redefine.
	(combine_strings): Don't use WCHAR_TYPE_SIZE.

	* cppdefault.h: Don't provide defaults for SIZE_TYPE,
	PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
	* cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
	* tradcpp.c (initialize_builtins): Likewise.
	* gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.

	* c-lex.h (builtin_define_with_value): Prototype.
	* system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
	NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
	* doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.

	* config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
	config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
	config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
	config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
	config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
	config/sparc/linux64.h, config/sparc/netbsd-elf.h,
	config/sparc/sol2-bi.h, config/sparc/sparc.h:
	Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
	to __SIZE_TYPE__ etc from all spec strings. When this makes
	extra specs empty, delete them.

2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
	for PA8000 or generating dwarf2 call frame information.
	(output_call): Remove DO_FRAME_NOTES check from return pointer
	optimization.
	(following_call): Return 0 when scheduling for PA8000 or generating
	dwarf2 call frame information.  Revise comment.

2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>

config/alpha:
	* alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
	and __IEEE_FP_INEXACT as appropriate.
	(CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
	(CPP_SPEC): Remove ieee defines.
	* freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.

2002-05-14  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_save_reg): Make regno unsigned.
	(ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.

2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>

	* arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
	(CPP_SPEC): Update.
	(CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
	CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
	CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
	CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
	(EXTRA_SPECS): Update.
	* arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
	arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
	arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
	define TARGET_OS_CPP_BUILTINS if necessary.

2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>

	* gcc.c (cpp_options): Must pass -m* and -f* options
	to the front end even when only preprocessing.
	(cc1_options): Remove redundant -lang-c.
	* tradcpp.c (main): Ignore -m options.
objc:
	* lang-specs.h: Similarly.

2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (transform_3): Add code for transformation
	`(A,B,...)+C -> A+C,B,...'.

Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* final.c (end_final): Do not output profile_arcs constructor, when
	no functions are instrumented.

Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (testsi to testqi_zext_1 splitter): Fix typo.

2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi: Remove special markup originally required for
	HTML generation with texi2html.

2002-05-14  Andreas Schwab  <schwab@suse.de>

	* config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
	SELECT_SECTION.
	(UNIQUE_SECTION): Define to get small data correctly.

	* varasm.c (resolve_unique_section): Add third parameter
	flag_function_or_data_sections and use it instead of
	flag_function_sections.
	(assemble_start_function): Pass flag_function_sections.
	(asm_emit_uninitialised): Pass flag_data_sections.
	(assemble_variable): Likewise.

2002-05-14  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.md: Use define_constants for unspec numbers.
	* config/i386/i386.c: Likewise.

2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>

	* doc/contrib.texi: Update my entry.

2002-05-13  Mark Mitchell  <mark@codesourcery.com>

	* fixinc/inclhack.def (winidss_valist): Limit applicability.
	* fixinc/fixincl.x: Regenerated.
	* fixinc/tests/base/math.h: Update.
	* fixinc/tests/base/testing.h: Likewise.

2002-05-13  Zack Weinberg  <zack@codesourcery.com>

	* genattr.c (gen_attr): Don't emit a comma after the last
	enumerator.

2002-05-13  Richard Henderson  <rth@redhat.com>

	* cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
	by non-local gotos.
	* recog.c (peephole2_optimize): Likewise.

2002-05-13  Andris Pavenis  <pavenis@lanet.lv>

	* cppfiles.c (open_file): Change mode (DJGPP only) of redirected
	input to O_BINARY.

2002-05-13  Jeffrey A Law  (law@redhat.com)

	* flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
	Update prototype and callers.
	(propagate_one_insn): Stack pointer adjustments kill MEMs on
	the mem_set_list which reference the stack pointer, as do
	calls to constant functions as they may clobber outgoing
	argument space.

	* i386.c (ia32_multipass_dfa_lookahead): Prototype.

	* i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
	(ia32_multipass_dfa_lookahead): New function.

2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>

	* gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
	(translate_options): Remove 'V'.
	(process_command): Similarly.
doc:
	* invoke.texi: Remove documentation of 'V'.

2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux.h: Revert 2002-04-22 changes.

2002-05-13  Scott Marks <SMarks@mobile-mind.com>

	* config/fr30/fr30.md: Only allow splits of immediate loads
	if the destination is a register.

2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (c-common.o, cppinit.o): Update.
	* c-common.c: Include except.h.
	(cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
	Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
	* cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
	* defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
	CPP_PREDEFINES): Handle here.
config:
	* alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
	alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
	alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
	TARGET_OS_CPP_BUILTINS.
	* alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
	(CPP_SPEC, EXTRA_SPECS): Update.
	(CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
	CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
	CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
	CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
	CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
doc:
	* tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
	(TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.

2002-05-12  Zack Weinberg  <zack@codesourcery.com>

	* emit-rtl.c (global_rtl): Update comment.
	(const_double_htab, const_double_htab_hash,
	const_double_htab_hash, lookup_const_double): New.
	(const_int_htab_hash, const_int_htab_eq): Remove const
	qualifiers, which cause tons of warnings with RTL checking on.
	(gen_rtx_CONST_DOUBLE): Deleted.
	(const_double_from_real_value): New function - bears some
	resemblance to the former immed_real_const_1.
	(immed_double_const): Moved here from varasm.c and
	simplified.
	(gen_rtx_REG): Make REGNO unsigned to squelch warnings.
	(gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
	(gen_rtx): Use immed_double_const.
	(init_emit_once): Initialize the const_double_htab.  Use
	REAL_VALUE_FROM_INT where possible.  Can now use
	CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
	* varasm.c (struct varasm_status): Remove x_const_double_chain.
	(const_double_chain, immed_real_const, clear_const_double_mem): Delete.
	(immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
	(init_varasm_status, mark_varasm_status): Don't touch
	x_const_double_chain.

	* output.h: Delete prototype for clear_const_double_mem.
	* real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
	'0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
	const_double_from_real_value, not immed_real_const_1, and use
	it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
	CONST_DOUBLE_ATOF.
	* rtl.h (CONST_DOUBLE_CHAIN): Kill.
	(CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
	(gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
	(gen_rtx_REG): Second arg is unsigned.

	* gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
	(excluded_rtx): New, return true for CONST_DOUBLE.
	(genmacro): Write nothing for excluded codes.
	* combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
	* expr.c (expand_expr): Likewise.
	* ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
	CONST_DOUBLE_CHAIN.
	* toplev.c (rest_of_compilation): Don't call
	clear_const_double_mem.

	* config/rs6000/rs6000.c (rs6000_float_const): Delete.
	(rs6000_hash_constant): Remove CONST_DOUBLE special case.
	(toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
	* config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
	* config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
	* config/dsp16xx/dsp16xx.md, config/mips/mips.md,
	config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
	* config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.

2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.

2002-05-12  Tom Tromey  <tromey@redhat.com>

	* tree.h (copy_node): Don't mention TREE_PERMANENT.

2002-05-12  Zack Weinberg  <zack@codesourcery.com>

	* gensupport.c (n_comma_elts): Moved here from genattrtab.c.
	(scan_comma_elt): New function.  Accepts whitespace in comma lists.
	* gensupport.h: Prototype new routines.
	* genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
	use of printf.
	* genattrtab.c (n_comma_elts): Moved to gensupport.c.
	(next_comma_elt): Use scan_comma_elt.

	* config/i386/i386.md: Use new attribute notation to break up
	long lines in define_attr forms.

2002-05-12  Richard Henderson  <rth@redhat.com>

	* expr.c (compress_float_constant): New.
	(emit_move_insn): Use it.
	(float_extend_from_mem): New.
	(init_expr_once): Initialize it.
	* real.c (exact_real_truncate): New.

	* config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
	dropped into memory; penalize for size.
	(RTX_COSTS): FLOAT_EXTEND is free.
	* config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
	extenddfxf2, extenddftf2): Accept constants and drop them to memory.

2002-05-12  Richard Henderson  <rth@redhat.com>

	* profile.h (profile_info): Add missing extern to declaration.
	* profile.c (profile_info): Define it.

2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
	used for DImode and TImode.

2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplex.c (_cpp_lex_direct): When in a directive at EOF
	fake a newline.

2002-05-11  Zack Weinberg  <zack@codesourcery.com>

	* config/rs6000/rs6000.c (rs6000_default_long_calls,
	rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
	(TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
	(rs6000_override_options): Handle -m(no-)longcall.
	(init_cumulative_args, output_mi_thunk): Check for both
	longcall and shortcall attributes on the function.
	(rs6000_attribute_table): Add "shortcall".
	(rs6000_handle_longcall_attribute): Update comment.
	(altivec_expand_unop_builtin, altivec_expand_binop_builtin,
	altivec_expand_ternop_builtin): Add default clauses to switches
	to silence warnings.

	* config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
	rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
	(TARGET_OPTIONS): Add longcall and no-longcall.

	* config/rs6000/rs6000.md (call_nonlocal_sysv,
	call_value_nonlocal_sysv): Split by alternatives.  One pair
	accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
	the call cookie.  The other pair accepts only LR/CTR and has
	no restriction.

	* config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
	Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
	tmake_file.
	* config/rs6000/rs6000-c.c: New file.
	* config/rs6000/t-rs6000-c-rule: New file.
	* config/rs6000/rs6000-protos.c: Add multiple-include guard.
	Prototype rs6000_pragma_longcall.

	* doc/extend.texi: Document shortcall attribute.
	* doc/invoke.texi: Document -mlongcall, -mno-longcall.

2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* reorg.c (dbr_schedule): Remove unnecessary test.

Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (testsi to testqi spliters): New.

	2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>

	cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.

	Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>

	* basic-block.h: New flag EDGE_CAN_FALLTHRU
	* cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
	that can be made fallthru.

	Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>

	* cfglayout.c (cleanup_unconditional_jumps): New static function.
	(cfg_layout_initialize): Use it.

2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_mcu_types): Update supported devices.
	* config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.

2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>

	* dbxout.c: Fix formatting.
	* dependence.c: Likewise.
	* df.c: Likewise.
	* diagnostic.c: Likewise.
	* doloop.c: Likewise.
	* dominance.c: Likewise.
	* doschk.c: Likewise.
	* dwarf2asm.c: Likewise.
	* dwarf2out.c: Likewise.
	* dwarfout.c: Likewise.

2002-05-10  Richard Henderson  <rth@redhat.com>

	* final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
	Convert integers constants as needed.  Replace "nwords" field with
	"sizeof_bb".
	(final): Save profile data if cfun->arc_profile, not profile_arc_flag.
	* function.h: Fix typo in comment.
	* libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".

2002-05-10  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
	into the equivalent (signed char)c > 0.

2002-05-10  Janis Johnson  <janis187@us.ibm.com>

	* loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
	(PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
	(struct prefetch_info): Fix spelling of member bytes_accessed.
	(emit_prefetch_instructions): Make dump messages more regular;
	restructure code to add more dump messages; use new macros for
	heuristics. (There are no code generation changes in any of this).

2002-05-10  David S. Miller  <davem@redhat.com>

	* rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
	(struct rtx_def): Update unchanging flag comment.
	* doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
	* reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
	to be handled to INSN too.
	(dbr_schedule): Likewise.
	* resource.c (next_insn_no_annul): Likewise.

	* cse.c (rtx_cost): Remove multiplication by power of 2 special
	casing.

2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi (Specific, *-*-solaris2*): Update passus on
	setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
	(possibly) work around broken /bin/sh.

2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
	. as N64/N32 libgcc_s.so subdirs.

2002-05-10  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.md: Use define_constants for unspec numbers.

	* rtl.h (struct rtx_def): Document unchanging and in_struct flags
	more accurately.
	(INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
	comment.
	(INSN_FROM_TARGET_P): Valid also for CALL_INSN.
	* doc/rtl.texi: Document these macros more accurately.
	* recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
	JUMP_INSNs and CALL_INSNs.
	* resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
	or INSN_FROM_TARGET_P if the code is appropriate.

2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
	before using SYMBOL_REF_FLAG (addr).

	* config/avr/avr-protos.h (avr_io_address_p): Declare.
	* config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
	Make non-static.  Update all callers.
	* config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
	New insns to clear/set/test a single bit in I/O address space.

2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.

2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in: Update.
	* c-common.c (flag_iso, flag_undef, cb_register_builtins,
	builtin_define_std): New.
	(c_common_init): Register CPP builtins callback.
	* c-common.h (flag_iso, flag_undef): New.
	* c-decl.c (c_decode_option): Set flag_iso and flag_undef.
	* c-lex.c: Don't include target.h.
	(cb_register_builtins): Move to c-common.c.
	(init_c_lex): Don't register hook here.
	* c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
	(cpp_define, cpp_assert): Remove.
	* gcc.c (cc1_options): Pass -undef to front end.
	* target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
	(TARGET_INITIALIZER): Update.
	* target.h (struct cpp_reader): Don't predeclare.
	(struct gcc_target): Remove cpp builtin hook.
	* tree.c (default_register_cpp_builtins): Remove.
doc:
	* tm.texi: Update.

2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppexp.c (_cpp_expand_op_stack): Set op_limit.

2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
	(SHLIB_LINK, SHLIB_INSTALL): Adjust.

2002-05-09  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
	* config/sparc/libgcc-sparc-glibc.ver: New file.
	* config/cris/t-linux (SHLIB_MAPFILES): Remove.
	* mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.

2002-05-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/6429
	* Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
	* mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
	shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
	base multilibs.
	* config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
	* config/t-slibgcc-sld (SHLIB_LINK): Likewise.
	* config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
	* config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.

2002-05-09  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.md: Use define_constants for unspec numbers.
	* config/ia64/ia64.c: Likewise.

2002-05-09  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
	(save_restore_insns): Likewise.
	(mips_expand_prologue, mips_expand_epilogue): Update callers.
	(highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.

Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)

	* athlon.md, k6.md, pentium.md, ppro.md): New files.
	* i386.md: Move scheduling information into new files.

	* i386.md (type attribute): Add "rotate" for rotate insns.
	(rotate insns): Set type to "rotate".
	(various attributes and function units): Treat rotate like shift.
	(pent_pair attribute): Only rotates by one bit position are
	pairable.
	(sbb insns): Explicitly set pent_pair attribute on a couple
	that were missing it.

Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (sh_builtin_saveregs): If starting with an odd fp register,
	make sure that buffer starts on odd word address.
	(sh_va_arg): Skip odd fp registers when reading a double precision
	value.

2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>

	* tree.h (preserve_data, object_permanent_p, type_precision):
	Remove.

2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
	* cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
doc:
	* cpp.texi: Update for removal of obsolete features.

Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
			  Jeffrey A Law  (law@redhat.com)

	* i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
	the DFA interface for Pentium processors.
	(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
	(attr_pent_pair, ix86_pent_find_pair): Remove.
	(ix86_sched_reorder_pentium): Remove.
	(ix86_sched_reorder): Remove reordering for Pentium.
	* i386.md (Pentium scheduling): Rewrite using DFA description.

Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cfganal.c (can_fallthru): Fix fast path.
	* cfgrtl.c (verify_flow_info): Avoid crash on conditionals
	with edges to the next block.

Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
			       Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>

	* final.c (end_final): Use C trees to output data structures for profiling.

	* Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
	(profile.o): New dependency profile.h
	(final.o): New dependency profile.h
	* profile.h: New file. New global structure profile_info.
	* final.h (count_edges_instrumented_now): Declare.
	(current_function_cfg_checksum): Declare.
	(function_list): New structure.
	(functions_head, functions_tail): New static variables.
	(end_final): Emits more data, removed some -ax stuff.
	(final): Stores function names and chcksums.
	* gcov-io.h (__write_gcov_string): New function.
	(__read_gcov_string): New function.
	* gcov.c (read_profile): New function.
	(create_program_flow_graph): Uses read_profile instead of reading
	da_file.
	(read_files): Removed da_file checking, it's done by read_profile now.
	* libgcc2.c (bb_function_info): New structure.
	(bb): New field in structure, removed some -ax stuff.
	(__bb_exit_func): Changed structure of da_file.
	* profile.c (count_edges_instrumented_now): New global variable.
	(current_function_cfg_checksum): New global variable.
	(max_counter_in_program): New global variable.
	(get_exec_counts): New function.
	(compute_checksum): New function.
	(instrument_edges): Sets count_edges_instrumented_now.
	(compute_branch_probabilities): Uses get_exec_counts instead of
	reading da_file.
	(branch_prob): Calls compute_checksum and writes extra data to bbg_file.
	(init_branch_prob): Removed da_file checking, done in get_exec_counts
	now.
	(end_branch_prob): Removed da_file checking, done in get_exec_counts
	now.
	* gcov.texi: Updated information about gcov file format.

2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>

	* sbitmap.c: Fix formatting.
	* scan.c: Likewise.
	* scan-decls.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-ebb.c: Likewise.
	* sched-rgn.c: Likewise.
	* sched-vis.c: Likewise.
	* sdbout.c: Likewise.
	* sibcall.c: Likewise.
	* simplify-rtx.c: Likewise.
	* ssa.c: Likewise.
	* ssa-ccp.c: Likewise.
	* ssa-dce.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* stringpool.c: Likewise.

2002-05-09  David S. Miller  <davem@redhat.com>

	* config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.

2002-05-07  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
	* config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
	* config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
	library implementation clobbers the output before the inputs
	are fully consumed, use stack temporary for the output.

2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/netbsd.h (CPP_SPEC): Remove.
	* config/i386/netbsd-elf.h (CPP_SPEC): Define.
	* config/i386/netbsd.h (CPP_SPEC): Define.
	* config/ns32k/netbsd.h (CPP_SPEC): Define.
	* config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
	* config/sparc/netbsd.h (CPP_SPEC): Define.
	* config/vax/netbsd.h (CPP_SPEC): Define.

2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>

	* read-rtl.c: Fix formatting.
	* real.c: Likewise.
	* recog.c: Likewise.
	* regclass.c: Likewise.
	* regmove.c: Likewise.
	* reg-stack.c: Likewise.
	* reload1.c: Likewise.
	* reload.c: Likewise.
	* resource.c: Likewise.
	* rtlanal.c: Likewise.
	* rtl.c: Likewise.
	* rtl-error.c: Likewise.

2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
	* pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.

2002-05-08  Bernd Schmidt  <bernds@redhat.com>

	* config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
	use __SSE2__ macro instead.
	* config/i386/xmmintrin.h: Likewise.

2002-05-08  Janis Johnson  <janis187@us.ibm.com>

	* rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
	and use it in all invocations of these macros.  Clean up comments.
	* rtl.c (rtl_check_failed_flag): Add an argument for the name
	of the flag access macro whose check failed.
	* doc/rtl.texi (Flags): Document additional flag uses.

2002-05-08  Robert Spier <rspier@pobox.com>
	    Neil Booth  <neil@daikokuya.demon.co.uk>

	PR preprocessor/6521
	* cppfiles.c (handle_missing_header): Don't do anything
	different for <> includes.
doc:
	* cppopts.texi: Update documentation for -MG.

2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplex.c (cpp_interpret_charconst): Truncate as well as
	sign-extend.
doc:
	* cpp.texi: Clarify multichar charconst valuation.

2002-05-08  Mark Mitchell  <mark@codesourcery.com>

	* doc/invoke.texi: Document -mwindiss option.

2002-05-08  Jason Merrill  <jason@redhat.com>

	* dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.

	* dwarf2out.c (gen_type_die): Abort on broken recursion.

	PR c++/6381
	* dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
	REAL_CST.

2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
	little-endian multilibs to override arm/thumb multilibs.
	Do not build hardware floating point multilibs, nor apcs-26
	multilibs for the Thumb.

2002-05-08  Mark Mitchell  <mark@codesourcery.com>

	PR c/6569.
	* varasm.c (mark_weak): New function.
	(merge_weak): Use it.  Do not call declare_weak.
	(declare_weak): Use merge_weak.

Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cse.c (dead_libcall_p): Update counts.
	(delete_trivially_dead_insns): Update call of dead_libcall_p.

Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cfglayout.c (function_tail_eff_head): Rename to ...
	(function_footer): ... this one.
	(unlink_insn_chain): New functions.
	(label_for_bb): Only call block_label and emit debug message.
	(record_effective_endpoints): Actually unlink the headers and footers.
	(fixup_reorder_cahin): Re-insert the unlinked sequences.
	(cfg_layout_duplicate_bb): Use duplicate_insn_chain.
	* cfglayout.h (struct reorder_block_def): New fields footer/header;
	remove eff_head/eff_end.
	* rtl.h (set_first_insn): Declare.
	* emit-rtl.c (set_first_insn): New function.

	* cfglayout.c (fixup_reorder_chain): Dump duplicated
	(cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
	cfg_layout_duplicate_bb): New global function.
	(duplicate_insn_chain): New static function.
	* cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
	cfg_layout_duplicate_bb): Declare.
	(struct reorder_block_def): Add "original" field.
	* emit-rtl.c (emit_copy_of_insn_after): New function.
	* rtl.h (emit_copy_of_insn_after): Declare.

	* cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
	(fixup_reorder_chain): properly handle edges to exit block.

Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
			       Jan Hubicka  <jh@suse.cz>

	* basic-block.h (note_prediction_to_br_prob): declare.
	* c-semantics.c: Include predit.h
	(expand_stmt): predict GOTO_STMT as not taken.
	* cfgcleanup.c: (delete_unreachable_blocks): Make global.
	(cleanup_cfg): Do not free tail_recursion_list.
	* cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
	(flow_delete_block): Kill predictions past end of basic block.
	* output.h (delete_unreachable_blocks): Declare.
	* predict.c (predicted_by_p, process_note_predictions,
	process_note_prediction, last_block_p): New function.
	(estimate_probability): Bypass loop on PRED_CONTINUE;
	do not handle noreturn heuristics; kill PRED_RETURN; add
	PRED_EARLY_RETURN.
	* predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
	PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
	* predict.h (IS_TAKEN): New constant.
	* print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
	* rtl.c (NOTE_INSN_PREDICTION): New.
	* rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
	New macro.
	(insn_note): add NOTE_INSN_PREDICTION.
	* sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
	CFG; free tail_recursion_label_list.
	* stmt.c: Include predict.h;
	(return_prediction): New.
	(expand_value_return): Use it.
	* toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.

2002-05-08  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.md: Name the unspecs with define_constant.
	(*HILO_delay): Rename to 'hilo_delay' (no star).
	(reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
	(reload_outdi, reload_outsi): Likewise.

2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>

	* toplev.c: Fix formatting.

2002-05-07  Janis Johnson  <janis187@us.ibm.com>

	* config.in (ENABLE_RTL_FLAG_CHECKING): New.
	* configure.in (ac_rtlflag_checking): New.
	* doc/install.texi (--enable-checking): Document RTL flag checking.

2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (c_common_init): Set options->unsigned_wchar.
	* cppinit.c (cpp_create_reader): Default unsigned_wchar,
	group target dependencies.
	(init_builtins, cpp_handle_option): Update.
	* cpplex.c (cpp_interpret_charconst): Update.
	* cpplib.h (struct cpp_options): Add unsigned_wchar, rename
	signed_char to unsigned_char, group target dependencies.
	* defaults.h (WCHAR_UNSIGNED): Remove.
	* system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
config:
	* freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
	i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
	i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
	i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
	sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
doc:
	* tm.texi: Remove MAX_CHAR_TYPE_SIZE.

2002-05-07  Mark Mitchell  <mark@codesourcery.com>

	* fixinc/inclhack.def (windiss_math1): New fix.
	(windiss_math2): Likewise.
	(windiss_valist): Likewise.
	* fixinc/fixincl.x: Regenerated.

2002-05-07  Andreas Jaeger  <aj@suse.de>

	* genautomata.c (output_internal_min_issue_delay_func): Add
	ATTRIBUTE_UNUSED to avoid warning with empty dfa.
	(output_internal_trans_func): Likewise.

Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)

	* pa.c (hppa_profile_hook): Use force_reg to get the address
	of the profile hook into an appropriate pseudo register.

2002-05-07  Mark Mitchell  <mark@codesourcery.com>

	* config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
	(LINK_START_SPEC): Handle it.
	(LINK_OS_SPEC): Likewise.
	(CPP_SPEC): Likewise.
	(STARTFILE_SPEC): Likewise.
	(LIB_SPEC): Likewise.
	(ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
	all platforms.
	(CRTSAVRES_DEFAULT_SPEC): New macro.
	(LIB_WINDISS_SPEC): New macro.
	(CPP_OS_WINDISS_SPEC): Likewise.
	(STARTFILE_WINDISS_SPEC): Likewise.
	(ENDFILE_WINDISS_SPEC): Likewise.
	(LINK_START_WINDISS_SPEC): Likewise.
	(LINK_OS_WINDISS_SPEC): Likewise.
	* config/rs6000/windiss.h: New file.

2002-05-07  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.

2002-05-06  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.md (shift insns): Do not mask off
	second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
	take care of it.

2002-05-06  Richard Henderson  <rth@redhat.com>

	PR c++/6212
	* expr.c (highest_pow2_factor_for_type): New.
	(expand_assignment): Use it.

2002-05-06  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
	unspec_volatile.
	("altivec_mfvscr"): Same.

2002-05-06  Janis Johnson  <janis187@us.ibm.com>

	* rtl.h (struct rtx_def): Update comments.
	(RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
	(RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
	RTL_FLAG_CHECK macros with list of expected RTL codes.
	* rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
	(rtl_check_failed_flag): New.
	* reload1.c (reload): Use REG macro before changing rtx to MEM.
	(reload_cse_noop_set_p): Check rtx code before using access macro.
	* config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
	before using access macro.

2002-05-06  Janis Johnson  <janis187@us.ibm.com>

	* doc/rtl.texi (Flags): Update to reflect current usage.

2002-05-06  Roger Sayle  <roger@eyesopen.com>

	PR opt/3995
	* fold-const.c (sign_bit_p): New function.
	(fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
	(A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
	Reapply fold when converting (A & C) == C into (A & C) != 0.
	(fold_binary_op_with_conditional_arg): Fix typo in comment.

2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (warn_multichar): New.
	(c_common_init): Set CPP's warn_multichar.
	* c-common.h (warn_multichar): New.
	* c-decl.c (warn_multichar): Remove.
	* c-lex.c (lex_charconst): Update.
	* c-tree.h (warn_multichar): Remove.
	* cppexp.c (eval_token): Sign-extend charconst value.
	* cppinit.c (cpp_create_reader): Set warn_multichar.
	* cpplex.c (cpp_interpret_charconst): Don't sign-extend
	each character.  Update prototype.  Sign-extend the result.
	* cpplib.h: Fix conditions.
	(struct cpp_options): Add new warning flag.
	(cpp_interpret_charconst): Update prototype.
doc:
	* cpp.texi: Update documentation.

2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
	Fix typo in usage of allof instead of unit.

2002-05-06  Richard Henderson  <rth@redhat.com>

	* recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
	and any jump or call for IN.

2002-05-06  Bernd Schmidt  <bernds@redhat.com>

	* config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
	-msse2.
	* config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.

2002-05-06  Roger Sayle  <roger@eyesopen.com>

	* fold-const.c (lshift-double): Cast the high word to an unsigned
	HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
	(div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
	avoid compiler warning.  (fold): Remove redundant code from
	BIT_AND_EXPR as integer operands are canonicalized to be arg1.

2002-05-06  Jeff Law  <law@redhat.com>

	* pa-protos.h (hppa_fpstore_bypass_p): Declare.
	* pa.c (pa_adjust_cost): Remove all true dependency cost
	adjustments.  Also remove support for non-DFA scheduling.
	* pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
	to adjust true dependency costs.  Update various comments.
	(7100lc, 7200, 7300 scheduling): Simplify by combining the
	FP ALU & MPY units into a single unit.

2002-05-06  Catherine Moore  <clm@redhat.com>

	* config/v850/v850.c (compute_register_save_size): Make sure
	to count all of the registers that will be saved.

Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (q_regs_operand): Use ANY_QI_REGS_P.

2002-05-06  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
	allow result to overlap input operands in memory.

2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>

doc:
	* cpp.texi: Update multichar charconst docs.

2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplex.c (cpp_interpret_charconst): Sign-extend each
	character.  Don't ignore excess characters.  Treat
	multicharacter character constants as signed.
	(cpp_parse_escape): Clarify diagnostic.

2002-05-05  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
	use add instead of shift.
	(ashldi3_sp64): Likewise.
	(ashlsi3_const1, ashldi3_const1): Remove.
	* config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
	* config/sparc/sparc.c (const1_operand): New.

2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (alpha*-*-netbsd*): Don't use crtstuff.

2002-05-05  Jakub Jelinek  <jakub@redhat.com>

	PR target/6561
	* config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.

2002-05-05  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
	memory latency adjustments.
	(alpha_variable_issue): Remove.
	(alpha_use_dfa_pipeline_interface): New.
	(alpha_multipass_dfa_lookahead): New.
	* config/alpha/alpha.md: Remove define_function_unit scheduling;
	include new dfa scheduling.
	(attr type): Add none.
	(blockage): Use it.
	* config/alpha/ev4.md: New.
	* config/alpha/ev5.md: New.
	* config/alpha/ev6.md: New.

2002-05-05  David S. Miller  <davem@redhat.com>

	* recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.

2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>

	* cse.c: Fix formatting.
	* emit-rtl.c: Likewise.

2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (initiate_states): Add additional guard to
	initialize `units_array'.

2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
	process_unit_to_form_the_same_automaton_unit_lists,
	form_the_same_automaton_unit_lists
	check_unit_distributions_to_automata): New prototypes and
	functions.
	(check_automata): Rename it into `check_automata_insn_issues'.
	(unit_decl): New fields `the_same_automaton_unit' and
	`the_same_automaton_message_reported_p'.
	(unit_decl_t): New typedef.
	(the_same_automaton_lists): New gloval variable.
	(unit_regexp, unit_set_el, units_array, units_cmp,
	output_get_cpu_unit_code_func): Use the typedef.
	(evaluate_max_reserv_cycles): Increment
	`description->max_insn_reserv_cycles'.
	(initiate_states): Don't increment `max_cycles_num'.
	(transform_insn_regexps): Move code around transformation of
	regexps from `generate'.
	(generate): Remove call of `transform_insn_regexps'.
	(expand_automata): Call `transform_insn_regexps' and
	`check_unit_distributions_to_automata'.  Check errors before
	`generate'.

	* config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
	automaton `ultrasparc3_1'.

2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (c_common_init): Set up CPP arithmetic.
	* cppinit.c (cpp_create_reader): Default CPP arithmetic to
	something reasonable for the host.
	(sanity_checks): Add checks.
	(cpp_read_main_file): Call sanity_checks() from here...
	(cpp_post_options): ... not here.
	* cpplex.c (cpp_interpret_charconst): Get max_chars right.
	* cpplib.h (struct cpp_options): New member int_precision.

2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.

2002-05-04  David S. Miller  <davem@redhat.com>

	* config/sparc/linux.h, config/sparc/linux64.h
	(HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.

	* config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
	more RTX codes.
	* config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.

	* recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
	of SETs.

2002-05-05  Tim Josling  <tej@melbpc.org.au>

	* treelang; New directory for new sample language treelang.

2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (c-lex.o): Update.
	* c-lex.c: Include target.h.
	(cb_register_builtins): New.
	(init_c_lex): Set builtins callback.
	* c-lex.h (cpp_define, cpp_assert): New prototypes.
	* cppinit.c (init_builtins): Use callback, including for
	GXX_WEAK.
	* cpplib.h (struct cpp_callbacks): New member.
	* target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
	(TARGET_INITIALIZER): Update.
	* target.h (struct gcc_target): New hook.
	* tree.c (default_register_cpp_builtins): New.
	* tree.h (default_register_cpp_builtins): New.
doc:
	* tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.

2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
	(cpp_post_options): Move sanity checks to...
	(sanity_checks): New.
	* cpplex.c (maybe_read_ucs): Fix prototype.
	(parse_string, cpp_parse_escape): Cast for %c format specifier.
	* cpplib.h (cppchar_t): Use unsigned long or unsigned long long
	if necessary.

2002-05-04  Bernd Schmidt  <bernds@redhat.com>

	* config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
	builtins.  Use V2DI patterns instead of TI for logical operations.
	(ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
	Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
	(ix86_expand_builtins): Change the pattern used for movntdq.
	* config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
	sse2_nandv2di3): New patterns.
	(sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
	on operands.
	(sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
	(cvtdq2pd): Correct mode on operand 1.
	(sse2_umulsidi3): Describe without unspec.
	(sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
	machine modes.
	(lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
	(ashlv2di3): Likewise, from sse2_ashlv2di3.
	(ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
	ashlv4si3, ashlv2di3): Use SImode for shift count.
	(ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
	lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
	New patterns.
	* config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
	New typedefs.
	(__m128i, __m128d): New macros.
	(_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
	_mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
	_mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
	_mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
	_mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
	_mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
	_mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
	_mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
	_mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
	_mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
	_mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
	_mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
	_mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
	_mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
	_mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
	_mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
	_mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
	_mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
	_mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
	_mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
	_mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
	_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
	_mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
	_mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
	_mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
	_mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
	_mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
	_mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
	_mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
	_mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
	_mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
	_mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
	_mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
	_mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
	_mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
	_mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
	_mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
	functions.
	(_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
	_mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.

2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>

	* dwarf2out.c: Fix formatting.
	* varasm.c: Likewise.

2002-05-04  David Edelsohn  <edelsohn@gnu.org>

	PR c/6543
	* config/rs6000/rs6000.md (sCC pattern and splitter): Remove
	clobber and use result as temporary value.

Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* expr.c (force_operand): Use expand_simple_* to handle more
	cases.

2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-lex.c (lex_string): Let cpp_parse_escape handles truncation
	and sign-extension.
	(lex_charconst): Update for change in prototype of
	cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
	appropriately.
	* cpphash.h (BITS_PER_CPPCHAR_T): New.
	* cppinit.c (cpp_create_reader): Initialize them for no
	change in semantics.
	(cpp_post_options): Add sanity checks.
	* cpplex.c (cpp_parse_escape): Handle precision, sign-extension
	and truncation issues.  Calculate in type cppchar_t.
	(MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
	(cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
	run-time dependent precision correctly.  Return whether the
	result is signed or not.
	* cpplib.c (dequote_string): Use cppchar_t; update.
	* cpplib.h (cppchar_signed_t): New.
	struct cpp_options): New precision members.
	(cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
	* cppexp.c (eval_token): Update.

2002-05-03  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc-protos.h (sparc_rtx_costs): New.
	* config/sparc/sparc.c (sparc_rtx_costs): New function
	implementing RTX_COSTS and CONST_COSTS.
	* config/sparc/sparc.h (CONST_COSTS): Delete.
	(RTX_COSTS_CASES): Define.
	(RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
	the work.

	* config/sparc/sparc.md (DFA schedulers): Split out...
	* config/sparc/cypress.md, config/sparc/hypersparc.md,
	config/sparc/sparclet.md, config/sparc/supersparc.md,
	config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.

	* config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
	checks on it, always defined for SPARC.

	* config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
	Tweak, and add more detailed comments.

2002-05-03  Zack Weinberg  <zack@codesourcery.com>

	* Re-apply patch accidentally reverted with
	DFA scheduler merge: remove all rules and variables to slurp
	source files out of libiberty and rebuild them with HOST_CC.
	($(HOST_PREFIX_1)varray.o): New rule.
	(genattrtab rule): Word wrap.

2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
	(CPP_SUBTARGET_SPEC): Define.
	(SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
	cpp_subtarget specs.
	(CPP_SPEC): Redefine to include %(cpp_subtarget).

2002-05-03  David S. Miller  <davem@redhat.com>

	* target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
	* target.h (struct gcc_target): Delete cycle_display member.

	* config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
	(rtx_needs_barrier): Delete reference to cycle_display unspec.
	(ia64_sched_reorder2): Mention need for cycle display handling
	once such notes exist.

2002-05-03  Richard Henderson  <rth@redhat.com>

	* real.c (etoasc): Strip most trailing zeros for clarity.
	* sched-vis.c: Include real.h.
	(print_value): Use REAL_VALUE_TO_DECIMAL as needed.
	* Makefile.in (sched-vis.o): Add real.h.

2002-05-03  David S. Miller  <davem@redhat.com>

	* haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
	no longer needed.

2002-05-03  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
	when we get an out of range literal.
	(altivec_expand_ternop_builtin): Same.
	(altivec_expand_unop_builtin): Same.
	(altivec_expand_builtin): Same, for dss.
	(altivec_expand_builtin): Use trees instead of rtl when
	determining literal argument validity.

2002-05-03  David S. Miller  <davem@redhat.com>

	Delete cycle display scheduling hook.
	* config/ia64/ia64.c (ia64_cycle_display,
	TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
	(ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
	and use emit_insn_before instead of ia64_emit_insn_before.
	* config/ia64/ia64.md (unspec usage): Delete cycle display.
	(cycle_display): Delete insn pattern.
	* config/sparc/sparc.md (unspec usage): Delete cycle display.
	(cycle_display): Delete insn pattern.
	* config/sparc/sparc.c (sparc_cycle_display,
	TARGET_SCHED_CYCLE_DISPLAY): Delete.
	* doc/md.texi (cycle_display): Don't mention.
	* doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.

2002-05-03  Richard Henderson  <rth@redhat.com>

	* recog.c (store_data_bypass_p, if_test_bypass_p): New.
	* recog.h: Declare them.

	* config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
	* config/sparc/sparc.md: Use store_data_bypass_p instead.
	* config/sparc/sparc-protos.h: Update.

2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
	-D__arch64__.  Add -D_LP64.
	(CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
	from sparc.h.
	(CPP_ARCH64_SPEC): Likewise.
	(NO_BUILTIN_PTRDIFF_TYPE): Undef.
	(NO_BUILTIN_SIZE_TYPE): Undef.

2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (min_issue_delay_pass_states): Change return type
	in the prototype.
	(min_issue_delay_pass_states): Change the algorithm.
	(min_issue_delay): Set up min_insn_issue_delay for the state.
	(output_min_issue_delay_table): Interchange the nested loops and
	and initiate min_insn_issue_delay for states.

Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
	jump is simplejump.

Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
	sequence.

2002-05-03  Richard Henderson  <rth@redhat.com>

	PR opt/6534
	* ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
	noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
	noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
	code before JUMP, not EARLIEST.

2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>

	* c-format.c (check_format_info_main): Don't check for presence of
	parameter for * width until after operand number has been read,
	and only check for it if format parameters are available.
	Fixes PR c/6547.

2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
	(LINK_SPEC): Undef before defining.

2002-05-03  Jakub Jelinek  <jakub@redhat.com>

	PR preprocessor/6489
	* tradcpp.c (fixup_newlines): New.
	(main, finclude): Use it.

2002-05-03  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
	* config/mips/mips.c (mips_unique_section): Strip encoding from
	decl name.

2002-05-03  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
	mode.

2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* doc/install.texi (Installing): Mention GCC 3.1 buildstats.
	(Specific): Removed buildstats references.
	(Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
	(Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
	Accomodate Solaris versions beyond 8.
	(Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
	(Specific, *-*-solaris2.8): Removed, obsolete.

2002-05-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/6542
	* config/sparc/sparc.h (leaf_reg_remap): Remove const.
	(CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
	fill leaf_reg_remap with identity.
	* config/sparc/sparc.c (leaf_reg_remap): Remove const.

2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/crti.asm: Remove trailing spaces.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/lib1funcs.asm: Likewise.

2002-05-02  Jason Merrill  <jason@redhat.com>

	* defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
	* c-decl.c (c_init_decl_processing): Use it.
	* config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
	* config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
	* config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.

2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>

	* regrename.c: Fix formatting.
	* tree.c: Likewise.

Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (attribute memory): Handle compares properly.

Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (sse_clrsf, sse_clrsi): Set memory attribute
	to none.

2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>

	* function.c: Fix formatting.

2002-05-02  Jan Hubicka  <jh@suse.cz>

	* haifa-sched.c (schedule_insn): Print table of instructions and
	reservations.
	(sched_block): Do not print ready list at verbosity level 1.
	* sched-vis.c (print_insn): Make global.
	* sched-ebb.c (ebb_print_insn): Rename from...
	(print_insn): ... this one.
	* sched-int.h (print_insn): Declare

2002-05-02  Richard Henderson  <rth@redhat.com>

	* haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
	emitted by cycle_display.

2002-05-02  Loren J. Rittle  <ljrittle@acm.org>

	* doc/install.texi (*-*-freebsd*): Update to latest status.

2002-05-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/6540
	* config.gcc (sparc*-*-solaris2*): Set float_format to i128.
	* config/float-sparc.h: Assume 128-bit long double if
	__LONG_DOUBLE_128__ is defined.

2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>

	* genattrtab.c (write_function_unit_info): Add a dummy element
	when num_units == 0.

2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>

	* predict.c: (propagate_freq, estimate_bb_frequencies): Use
	TYPE_MODE (double_type_node) instead of DFmode.

Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
	jumps post reload.
	* toplev.c (rest_of_compilation): Revert Richard's patch.

2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.

2002-05-02  Catherine Moore  <clm@redhat.com>

	* config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.

2002-05-02  Kazu Hirata  <kazu@hxi.com>

	* combine.c: Fix comment typos.
	* expr.c: Likewise.
	* genautomata.c: Likewise.
	* stmt.c: Likewise.
	* tree.h: Likewise.

2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/install.texi: State GNAT version requirements.

2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
	of the frame pointer or arg pointer register which strict register
	checking is not enabled.

2002-05-02  Aldy Hernandez  <aldyh@redhat.com>

	* gcc.dg/altivec-8.c: New.

	* config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
	PRE_INC and PRE_DEC for altivec modes.

2002-05-01  Bruce Korb  <bkorb@gnu.org>

	* fixinc/check.tpl(set-writable): make sure the function exists first
	* fixinc/inclhack.def(alpha_assert): fix test_text
	* fixinc/tests/base/assert.h: add in missing result

2002-05-01  Jeff Law  <law@redhat.com>

	* pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
	'T' constraint.

2002-05-01  Joel Brobecker  <brobecker@gnat.com>

	* dbxout.c (dbxout_type): Emit size information for range types,
	as well, but only when using GDB extensions.

2002-05-01  Richard Henderson  <rth@redhat.com>

	* configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
	target-independent gnu binutils date test.

2002-05-01  Richard Henderson  <rth@redhat.com>

	* cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
	info before expunging the block.

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

	* cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
	(cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
	-M -or -MM is in effect.

2002-05-01  Zack Weinberg  <zack@codesourcery.com>

	* config.gcc: Correct test of --enable-obsolete.  Obsolete all
	A29k configurations.
	* doc/install.texi: Update to match.

2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	PR bootstrap/6514
	* varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
	for duplicates. Always loop over whole list.

Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* reload.c (find_reloads, case 'p'): Set BADOP to 0.

2002-05-01	Joel Sherrill <joel@OARcorp.com>

	* config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
	support routines.

2002-05-01	Joel Sherrill <joel@OARcorp.com>

	* config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.

2002-05-01  David Edelsohn  <edelsohn@gnu.org>

	* rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
	(nabs_nopower): Same.
	(floatdisf2): New pattern.
	(absdi2): Convert to define_insn_and_split.
	(nabsdi2): Same.
	(trunctfsf2): Same.
	(floatditf2): Same.
	(floatsitf2): Same.
	(fix_trunctfdi2): Same.
	(fix_trunctfsi2): Same.

2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/install.texi: Update Texinfo version requirement
	documentation.

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

	PR target/6512, PR target/5628
	* config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
	when memory is not aligned.
	(movdf_insn_v9only_vis): Likewise.
	* config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
	temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.

2002-05-01  Aldy Hernandez  <aldyh@redhat.com>

	* gcc.dg/altivec-7.c: New.

	* config/rs6000/altivec.h: Cleanup.

2002-04-30  Aldy Hernandez  <aldyh@redhat.com>

	* doc/invoke.texi (Option Summary): Add -mvrsave=.
	(RS/6000 and PowerPC Options): Document -mvrsave=.

	* config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
	(rs6000_altivec_vrsave_string): Same.
	(rs6000_override_options): Call rs6000_parse_vrsave_option.
	(rs6000_parse_vrsave_option): New.
	(rs6000_stack_info): Only generate vrsave instructions when
	TARGET_ALTIVEC_VRSAVE.

	* config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
	(rs6000_altivec_vrsave_string): Define extern.
	(rs6000_altivec_vrsave): Same.
	(TARGET_ALTIVEC_VRSAVE): New.

2002-04-30  Richard Henderson  <rth@redhat.com>

	PR opt/6516
	* toplev.c (rest_of_compilation): Don't run cross-jump before
	bb-reorder.

2002-04-30  Tom Rix  <trix@redhat.com>

	* regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
	check which_alternative.

2002-04-30  Kazu Hirata  <kazu@hxi.com>

	* cpplex.c: Fix comment formatting.
	* function.c: Likewise.
	* integrate.c: Likewise.
	* regrename.c: Likewise.
	* sibcall.c: Likewise.
	* simplify-rtx.c: Likewise.
	* tree-inline.c: Likewise.

2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
	hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
	hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
	hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
	* pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
	* pa/x-ada: New file.  Define ADA_CFLAGS.

2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
	from MMIX_LAST_REGISTER_FILE_REGNUM.
	(NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
	(struct machine_function): New member highest_saved_stack_register
	previously static variable in mmix.c.
	(MACHINE_DEPENDENT_REORG): Define.
	* config/mmix/mmix.c (highest_saved_stack_register): Deleted.
	(MMIX_OUTPUT_REGNO): New.
	(mmix_target_asm_function_prologue): Move calculation of last used
	saved-stack-register into...
	(mmix_machine_dependent_reorg): New function.  Update to also handle
	!TARGET_ABI_GNU.
	(mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
	register names, simplify somewhat by new variable regno.
	<case 'p'>: Remove fixed FIXME.  Always emit highest used saved
	register.
	(mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
	emitting register names.
	(mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
	(mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
	Remove fixed FIXME.
	* config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
	Declare.

	* config/mmix/mmix.md ("divmoddi4"): Update head comment.

2002-04-30  Richard Henderson  <rth@redhat.com>

	* config/sparc/sparc.c (emit_soft_tfmode_libcall,
	emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
	emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
	emit_tfmode_cvt): New.
	* config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
	trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
	fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
	addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
	* config/sparc/sparc-protos.h: Update.

2002-04-30  Janis Johnson  <janis187@us.ibm.com>

	* install.texi (Final install): Add to the list of info to include
	in a report of a successful bootstrap, and add link to 3.1 list.

Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
	(mode): Add vector modes
	(i387): Kill attribute.
	(unit): New attribute.
	(length_immediate): Grok new types.
	(prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
	(modrm): Use "unit".
	(memory): Handle MMX/SSE properly.
	(scheduling descriptions): Kill uses of fop1.
	(sse, mmx, fp patterns): Set type and mode properly.

Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)

	* pa.c (override_options): Default to PA8000 scheduling.
	* doc/invoke.texi (HP-PA options): Mention newly added 7300
	scheduling parameter.

	* pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
	handling of double precision multiplies.

	* pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
	fpdiv and fpsqrt instructions.
	(7200 & 7300 scheduling): Fix typo in handling of
	store-load and store-store penalties.

2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Use MIPS instead of Mips and
	mips.  Add two missing commas.

2002-04-30  Paolo Carlini  <pcarlini@unitus.it>

	* doc/contrib.texi (Contributors): Update Paolo Carlini's
	and Benjamin Kosnik's entries.

2002-04-29  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
	SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
	* config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
	* config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.

2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* combine.c (find_split_point): Use gen_int_mode.

2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>

	Merging code from dfa-branch:

	2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (output_reserv_sets): Fix typo.

	2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (output_reserv_sets): Remove
	next_cycle_output_flag.

	Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)

	* sched-rgn.c (init_ready_list): Make the DFA code handle
	USE/CLOBBER insns in the same way as the traditional
	scheduler.
	(new_ready): Similarly..

	2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>

	* haifa-sched.c (schedule_block): Change the DFA state only after
	issuing insn.

	Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)

	* pa.c (hppa_use_dfa_pipeline_interface): New function.
	(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
	(override_options): Add PA7300 scheduling support.
	(pa_adjust_cost): Update various comments.  Properly
	handle anti and output dependencies when using the
	DFA scheduler.
	(pa_issue_rate): Add PA7300 scheduling support.
	(pa_can_combine_p): Call extract_insn before calling
	constrain_operands (taken from mainline tree).
	* pa.h (enum processor_type): Add PROCESSOR_PA7300.
	* pa.md (cpu attr): Add 7300.  Rewrite pipeline
	descriptions using DFA descriptions.  Add PA7300
	scheduling support.

	2002-03-30  David S. Miller  <davem@redhat.com>

	Add UltraSPARC-III DFA scheduling support.
	* config/sparc/sparc.md (define_attr type): Add fpcrmove.
	Update FP conditional move on register insn patterns to use it, as
	appropriate.
	(define_attr cpu): Add ultrasparc3.
	(define_attr us3load_type): New, update integer load patterns to
	set it, as appropriate.
	(define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
	(rest): Add UltraSPARC3 scheduling description.
	* config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
	(PROCESSOR_ULTRASPARC3): New.
	({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
	({ASM,CPP}_CPU_SPEC): Likewise.
	(REGISTER_MOVE_COST): Likewise.
	(RTX_COSTS): Likewise.
	* config/sparc/sparc.c (sparc_override_options,
	sparc_initialize_trampoline, sparc64_initialize_trampoline,
	sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
	sparc_issue_rate): Likewise.
	* config/sparc/sol2.h: Likewise.
	* config/sparc/sol2-sld-64.h: Likewise.
	* config/sparc/linux64.h: Likewise.

	2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>

	* doc/md.texi: Add comments about usage the latency time for the
	different dependencies and about case when two or more conditions
	in different define_insn_reservations returns TRUE for an insn.

	* doc/md.texi: Add reference for automaton based pipeline
	description.

	2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>

	* doc/passes.texi: Add missed information about genattrtab.

	2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (output_automata_list_transition_code): Check
	automata_list on NULL.

	2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (output_insn_code_cases,
	output_automata_list_min_issue_delay_code,
	output_automata_list_transition_code,
	output_automata_list_state_alts_code): Comment the functions.

	2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (automata_list_el_t): New typedef.
	(get_free_automata_list_el,free_automata_list_el,
	free_automata_list, automata_list_hash, automata_list_eq_p,
	initiate_automata_lists, automata_list_start, automata_list_add,
	automata_list_finish, finish_automata_lists,
	output_insn_code_cases, output_automata_list_min_issue_delay_code,
	output_automata_list_transition_code,
	output_automata_list_state_alts_code, add_automaton_state,
	form_important_insn_automata_lists): New functions and prototypes.
	(insn_reserv_decl): Add members important_automata_list and
	processed_p.
	(ainsn): Add members important_p.
	(automata_list_el): New structure.
	(first_free_automata_list_el, current_automata_list,
	automata_list_table): New global variables.
	(create_ainsns): Initiate member important_p.
	(output_internal_min_issue_delay_func): Generate the switch and
	call output_insn_code_cases.
	(output_internal_trans_func, output_internal_state_alts_func):
	Ditto.
	(generate): Call initiate_automata_lists.
	(automaton_states): New global variable.
	(expand_automata): Call form_important_insn_automata_lists.
	(write_automata): Call finish_automata_lists.

	2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (add_excls, add_presence_absence): Check that
	cpu units in the sets belong the same automaton.

	* rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
	about that cpu units in the sets belong the same automaton.

	* doc/md.texi: Ditto.

	2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
		    Nitin Gupta  <niting@noida.hcltech.com>

	* config/sh/sh.c (sh_use_dfa_interface): New function.

	(sh_issue_rate): New Function.
	TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
	TARGET_SCHED_ISSUE_RATE: define.

	* config/sh/sh.md: Add DFA based pipeline description for SH4.

	(define_attr insn_class): New attribute used for DFA
	 scheduling.
	(define_insn cmpgtsi_t): Set attribute insn_class mt_group.
	(cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
	 cmpeqdi_t): Likewise.

	(add,addc1,addsi3,subc,subc1,*subsi3_internal,
	 negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
	 ex_group.
	(iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.

	2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>

	* haifa-sched.c (queue_to_ready): Remove unnecessary condition for
	break.

	2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>

	* genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
	(output_dfa_insn_code_func): Expand dfa_insn_codes if it is
	necessary.
	(output_dfa_start_func): Initiate new variable insn_codes_length,
	(write_automata): Output definition of the new variable.

	2001-10-02  David S. Miller  <davem@redhat.com>

	* haifa-sched.c (advance_one_cycle): New function.
	(schedule_block): Use it.
	(queue_to_ready): Use it, and also make sure to advance the DFA
	state on all stall cycles, not just those where insn_queue links
	are found.

	2001-10-02  Richard Sandiford  <rsandifo@redhat.com>

	* haifa-sched.c (max_issue): Remove last_p argument.  Only return
	nonzero if the highest-priority instruction could be scheduled.
	(choose_ready): Remove last argument from max_issue call.

	2001-09-28  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
	ultrasparc and 3 for other multi-issue sparcs.

	2001-09-27  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.md (cycle_display): New pattern.
	* config/sparc/sparc.c (sparc_cycle_display): New.
	(TARGET_SCHED_CYCLE_DISPLAY): Set it.

	2001-09-25  David S. Miller  <davem@redhat.com>

	Convert all of SPARC scheduling to DFA
	* config/sparc/sparc.md: Kill all define_function_unit
	directives and replace with DFA equivalent.
	* config/sparc/sparc.c (ultrasparc_adjust_cost,
	mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
	ultra_fpmode_conflict_exists, ultra_find_type,
	ultra_build_types_avail, ultra_flush_pipeline,
	ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
	ultrasparc_variable_issue, ultrasparc_sched_init,
	sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
	ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
	ultra_cur_hist, ultra_cycles_elapsed): Kill.
	(sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
	ultrasparc_store_bypass_p): New.
	* config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
	Declare.

	2001-09-24  David S. Miller  <davem@redhat.com>

	* haifa-sched.c (ready_remove): Fix thinko, we want to copy around
	ready->vec[foo] not ready[foo].

	2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>

	* doc/md.texi: Correct examples for define_insn_reservations
	`mult' and `div'.

	2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (create_automata): Print message about creation of
	each automaton.
	(generate): Remove printing meease about creation of
	automata.

	2001-09-05  David S. Miller  <davem@redhat.com>

	* config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
	* config/sparc/linux64.h: Likewise.

	2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>

	* haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
	schedule_block, sched_init, sched_finish): Add missed calls of
	use_dfa_pipeline_interface.

	* sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
	Ditto.

	* sched-vis.c (get_visual_tbl_length): Ditto.

	2001-08-27  Richard Henderson  <rth@redhat.com>

	* genattr.c (main): Emit state_t even when not doing scheduling.

	2001-08-27  Richard Henderson  <rth@redhat.com>

	* genautomata.c (expand_automata): Always create a description.

	2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>

	* rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
	PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
	AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
	RTL constructions.

	* genattr.c (main): New variable num_insn_reservations.  Increase
	it if there is DEFINE_INSN_RESERVATION.  Output automaton based
	pipeline hazard recognizer interface.

	* genattrtab.h: New file.

	* genattrtab.c: Include genattrtab.h.
	(attr_printf, check_attr_test, make_internal_attr,
	make_numeric_value): Move protypes into genattrtab.h.  Define them
	as external.
	(num_dfa_decls): New global variable.
	(main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
	DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
	DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
	DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.

	* genautomata.c: New file.

	* rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.

	* sched-int.h: (curr_state): Add the external definition for
	automaton pipeline interface.
	(haifa_insn_data): Add comments for members blockage and units.

	* target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
	TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
	TARGET_SCHED_DFA_PRE_CYCLE_INSN,
	TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
	TARGET_SCHED_DFA_POST_CYCLE_INSN,
	TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
	TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
	macros.
	(TARGET_SCHED): Use the new macros.

	* target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
	dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
	first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
	dfa_bubble): New members in gcc_target.sched.

	* haifa-sched.c (insert_schedule_bubbles_p): New variable.
	(MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
	(insn_queue): Redefine it as pointer to array.
	(NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
	INSN_QUEUE_SIZE.
	(max_insn_queue_index_macro_value): New variable.
	(curr_state, dfa_state_size, ready_try): New varaibles for
	automaton interface.
	(ready_element, ready_remove, max_issue): New function prototypes
	for automaton interface.
	(choose_ready): New function prototype.
	(insn_unit, blockage_range): Add comments.
	(unit_last_insn, unit_tick, unit_n_insns): Define them for case
	FUNCTION_UNITS_SIZE == 0.
	(insn_issue_delay, actual_hazard_this_instance, schedule_unit,
	actual_hazard, potential_hazard): Add comments.
	(insn_cost): Use cost -1 as undefined value.  Remove
	LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
	pipeline interface.
	(ready_element, ready_remove): New functions for automaton
	interface.
	(schedule_insn): Add new code for automaton pipeline interface.
	(queue_to_ready): Add new code for automaton pipeline interface.
	Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
	(debug_ready_list): Print newline when the queue is empty.
	(max_issue): New function for automaton pipeline interface.
	(choose_ready): New function.
	(schedule_block): Add new code for automaton pipeline interface.
	Print ready list before scheduling each insn.
	(sched_init): Add new code for automaton pipeline interface.
	Initiate insn cost by -1.
	(sched_finish): Free the current automaton state and finalize
	automaton pipeline interface.

	* sched-rgn.c: Include target.h.
	(init_ready_list, new_ready, debug_dependencies): Add new code for
	automaton pipeline interface.

	* sched-vis.c: Include target.h.
	(get_visual_tbl_length): Add code for automaton interface.
	(target_units, print_block_visualization):  Add comments.

	* Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
	USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
	(sched-rgn.o, sched-vis.o): Add new dependency file target.h.
	(getruntime.o, genautomata.o): New entries.
	(genattrtab.o): Add new dependency file genattrtab.h.
	(genattrtab): Add new dependencies.  Link it with `libm.a'.
	(getruntime.o, hashtab.o): New entries for canadian cross.

	* doc/md.texi: Description of automaton based model.

	* doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
	Add comments.
	(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
	TARGET_SCHED_DFA_PRE_CYCLE_INSN,
	TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
	TARGET_SCHED_DFA_POST_CYCLE_INSN,
	TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
	TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
	TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
	hook descriptions.
	(TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
	MAX_DFA_ISSUE_RATE): New macro descriptions.

	* doc/contrib.texi: Add dfa based scheduler contribution.

	* doc/gcc.texi: Add more information about genattrtab.

Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* reload1.c (eliminate_regs, case SUBREG): Fix typo in
	adjust_address_nv call.

2002-04-29  Janis Johnson  <janis187@us.ibm.com>

	* doc/install.texi (Testing): Provide additional information, and
	a stronger encouragement, for running the testsuites.

2002-04-29  DJ Delorie  <dj@redhat.com>

	* config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
	given in upper case.

2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
	Solaris 2 <widec.h> if missing.
	* fixinc/fixincl.x: Regenerate.
	* fixinc/tests/base/widec.h: New file.

2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>

	* toplev.c (f_options): Add "profile" switch so that
	-fno-profile can be used to disable -p.

2002-04-29  Bernd Schmidt  <bernds@redhat.com>

	* c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
	UV2DImode.
	* tree.c (build_common_tree_nodes_2): Likewise.
	* tree.h (enum tree_index): Likewise.
	(V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.

	* config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
	entries.
	(init_mmx_sse_builtins): Initialize SSE2 builtins.
	(ix86_expand_builtin): Add support for SSE2 builtins.
	* config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
	(VALID_SSE_REG_MODE): Use it.
	(VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
	(enum ix86_builtins): Add SSE2 builtins.
	* config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
	movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
	addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
	divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
	sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
	vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
	vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
	sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
	cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
	cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
	cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
	ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
	subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
	mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
	sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
	sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
	sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
	gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
	ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
	ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
	sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
	sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
	sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
	sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
	sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
	sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
	lfence_insn): New patterns.
	(sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
	sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.

Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (sse_mov?fcc*): Revert patch of Mar 14th.

2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Add Paolo Carlini and
	Janis Johnson.
	Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
	Refer to Objective-C instead of	ObjC, SPARC instead of sparc,
	and CPU instead of cpu.

Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (flag_if_conversion, flag_if_conversion2): New static
	variables.
	(lang_independent_options): Add -fif-conversion, -fif-conversion2
	(rest_of_compilation): Do if conversion only when asked for.
	(parse_options_and_default_flags): Set new variables to 1 for -O1
	* invoke.texi (-fif-conversion, -fif-conversion2): Document.

Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (dbx64_register_map): Fix typo.

Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
	real_one_half, real_bb_freq_max): New static variables.
	(debug_profile_bbauxs): Kill.
	(process_note_predictions): Kill unused variable.
	(block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
	volatile double.
	(propagate_freq): Use REAL_ARITHMETICS.
	(estimate_bb_frequencies): Likevise; init new static variables.
	* Makefile.in (predict.o): Add dependency on real.h

2002-04-28  David S. Miller  <davem@redhat.com>

	PR target/6500
	* config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
	64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
	several {reads,writes} instead.
	* config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
	Define.

2002-04-27  David S. Miller  <davem@redhat.com>

	PR target/6494
	* config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
	of the stack bias.

	* config/sparc/linux.h, config/sparc/linux64.h: Don't bother
	including signal.h and sys/ucontext.h, not needed.

2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* varasm.c (output_constant_def): Correct test for not calling
	ENCODE_SECTION_INFO for INTEGER_CST.

2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppexp.c (lex): Move some code to _cpp_parse_expr, but
	keep most cases as function eval_token.
	(eval_token): New function.
	(_cpp_parse_expr): Read token here for improved diagnostics.
	Don't use op_as_text.  Detect bad ':' here.
	(reduce): Don't detect bad ':' here.
	(op_as_text): Remove.
	* cpphash.h (_cpp_test_assertion): Change prototype.
	* cpplib.c (_cpp_test_assertion): Change prototype.

2002-04-28  Richard Henderson  <rth@redhat.com>

	PR c/5154
	* ggc-common.c (ggc_mark_rtx_children_1): Rename from...
	(ggc_mark_rtx_children): New.

2002-04-28  Jakub Jelinek  <jakub@redhat.com>

	PR target/6496
	* config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
	after call peepholes for UltraSPARC.
	(call + jump 64-bit peepholes): Remove.

2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	PR c/6497
	* config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
	result as temporary value.

2002-04-28  Jakub Jelinek  <jakub@redhat.com>

	PR c++/6396
	* toplev.c (rest_of_compilation): Only run regrename and copy
	propagation if optimizing.

2002-04-28  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/6475
	* reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
	register of REGNO_DECL (i).
	* Makefile.in (reload1.o): Add $(TREE_H).

2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppexp.c (lex): Update to use state.skip_eval.
	(struct op): Remove prio and flags members.
	(FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
	SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
	(LEFT_ASSOC): New macro.
	(optab): New table of operator priorities and flags.
	(SHIFT): Update.
	(_cpp_parse_expr): Clean up logic.  Return bool.  Use a
	malloc-ed parser stack.
	(reduce): New; reduce the operator stack.
	(_cpp_expand_op_stack): Expand the operator stack as necessary.
	* cpphash.h (struct op): Predeclare.
	(struct cpp_reader): New members op_stack, op_limit.
	(struct lexer_state): New member skip_eval.
	(_cpp_parse_expr): Update.
	(_cpp_expand_op_stack): New.
	* cpplib.c (do_if): Update.
	* cppinit.c (cpp_create_reader): Create op stack.
	(cpp_destroy): And destroy it.
	* cpplib.h (CPP_LAST_CPP_OP): Correct.
	(TTYPE_TABLE): Correct.

2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	PR c/6343
	* c-decl.c (duplicate_decls): Call merge_weak.
	* c-pragma.c (apply_pragma_weak): Warn about misuse.
	* output.h (merge_weak): Prototype merge_weak.
	* varasm.c (merge_weak): New function.
	(declare_weak): Make sure we don't give an error on VAR_DECLs.
	Mark RTL with SYMBOL_REF_WEAK.

2002-04-27  Kurt Garloff <garloff@suse.de>

	* tree-inline.c (inlinable_function_p): Improve heuristics
	by using a smoother function to cut down allowable inlinable size.
	* param.def: Add parameters max-inline-insns-single,
	max-inline-slope, min-inline-insns that determine the exact
	shape of the above function.
	* param.h: Likewise.

2002-04-26  Richard Henderson  <rth@redhat.com>

	* c-parse.in (malloced_yyss, malloced_yyvs): New.
	(yyoverflow): Re-add.  Set them.
	(free_parser_stacks): New.
	* c-common.h: Declare it.
	* c-lex.c (c_common_parse_file): Call it.

2002-04-26  Richard Henderson  <rth@redhat.com>

	* cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
	for fallthru search.

2002-04-26  Eric Christopher  <echristo@redhat.com>

	PR optimization/3700
	* config/mips/mips.c (mips_issue_rate): Define.  New function.
	(TARGET_SCHED_ISSUE_RATE): Use.

2002-04-25  David S. Miller  <davem@redhat.com>

	PR target/6422
	* reorg.c (optimize_skip): Do not allow exception causing
	instructions to be considered for delay slots.
	(fill_simply_delay_slots, fill_slots_from_thread): Likewise.
	(relax_delay_slots): Do not try to consider exception causing
	instructions as redundant.

2002-04-26  Richard Henderson  <rth@redhat.com>

	PR c/5225
	* c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.

2002-04-26  Mark Mitchell  <mark@codesourcery.com>

	PR bootstrap/6445
	* config/i386/i386.md (untyped_call): Return the value in a float
	register if TARGET_FLOAT_RETURNS_IN_80387, not just if
	TARGET_80387.

2002-04-26  Alexandre Oliva  <aoliva@redhat.com>

	* tree.c (tree_int_cst_lt): Compare constants whose types differ
	in unsigned-ness correctly.

2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
	portable runtime model.

2002-04-26  Richard Henderson  <rth@redhat.com>

	* c-parse.in (yyoverflow): Revert.

2002-04-26  David Edelsohn  <edelsohn@gnu.org>
	    Richard Henderson  <rth@redhat.com>

	* config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
	result as temporary value.

2002-04-26  Richard Henderson  <rth@redhat.com>

	PR c/3581
	* c-common.c (fix_string_type): Split out of ...
	(combine_strings): ... here.  Take a varray, not a tree list.
	(c_expand_builtin_printf): Use fix_string_type.
	* c-common.h: Update decls.
	* c-parse.in (string): Remove.  Update all uses to use STRING
	instead, and not call combine_strings.
	(yylexstring): New.
	(_yylex): Use it.
	* c-typeck.c (simple_asm_stmt): Don't call combine_strings.
	(build_asm_stmt): Likewise.
	* objc/objc-act.c (my_build_string): Use fix_string_type.
	(build_objc_string_object): Build varray for combine_strings.

2002-04-26  Bo Thorsen  <bo@suse.co.uk>

	* config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
	x86-64.

2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
	(HAVE_NO_R_OPERAND): Remove.
	(HAVE_VALUE): Remove.
	(op_to_prio): Update.
	(UNARY): Don't alter flags.
	(_cpp_parse_expr): want_value used to indicate whether
	a number or unary operator is expected next.  Distinguish
	unary and binary +/-.
	(op_as_text): Update for unary operators.

2002-04-25  Richard Henderson  <rth@redhat.com>

	PR c/2161
	* c-parse.in (yyoverflow): New.

2002-04-25  Richard Henderson  <rth@redhat.com>

	PR c/2098
	* c-common.c (shorten_compare): Simplfy conditions leading to
	the generation of a warning.

2002-04-25  Richard Henderson  <rth@redhat.com>

	PR c/2035
	* expmed.c (extract_bit_field): Fall through to generic code rather
	than aborting on subreg special case.

2002-04-25  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
	for DECL being NULL.

2002-04-25  Steve Christiansen  <smc@us.ibm.com>

	* doc/md.texi (Machine Constraints): Add IA-64 constraints.

2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>

	* c-decl.c (grokdeclarator): Remove outdated ??? note
	on invalid declaration of flexible array members.

2002-04-25  Richard Henderson  <rth@redhat.com>

	* doc/invoke.texi: Document -gdwarf{,-2} vs debug level.

2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_emit_epilogue): Always restore registers
	needed by the compiler, even if they are used as global regs.

2002-04-25  Matt Hiller  <hiller@redhat.com>

	* mips.c (mips_class_max_nregs, mips_register_move_cost): New
	functions.
	* mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
	of the corresponding functions.
	* mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
	New prototypes.

2002-04-25  Matt Hiller  <hiller@redhat.com>

	* config/mips/mips.h (mips_sw_reg_names): Declare as extern.

	(ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
	(FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
	registers, adjust comment accordingly.
	(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
	reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
	DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
	for coprocessor registers.
	(ADDITIONAL_REGISTER_NAMES): Include
	ALL_COP_ADDITIONAL_REGISTER_NAMES.

	(COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
	COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
	COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
	COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
	COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.

	(mips_char_to_class): Adjust comment to include coprocessor
	constraint letters.

	* config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
	New functions.
	(mips_reg_names, mips_regno_to_class): Include coprocessor
	information.
	(mips_sw_reg_names): Ditto, make non-static.
	(mips_move_1word): Handle moves to and from coprocessor registers.
	(mips_move_2words): Handle moves to and from coprocessor
	registers.
	(mips_class_max_nregs, mips_register_move_cost): Handle
	coprocessor register classes.
	(override_options): Initialize mips_char_to_class and
	mips_hard_regno_mode_ok properly for coprocessor registers.

	* config/mips/mips.md (movdi_internal, movdi_internal2,
	movsi_internal1, movsi_internal2): Add constraint-sets for
	coprocessor registers.
	* testsuite/gcc.c-torture/mipscop-1.c: New testcase.
	* testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
	isn't mips.
	* testsuite/gcc.c-torture/mipscop-2.c: New testcase.
	* testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
	isn't mips.
	* testsuite/gcc.c-torture/mipscop-3.c: New testcase.
	* testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
	isn't mips.
	* testsuite/gcc.c-torture/mipscop-4.c: New testcase.
	* testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
	isn't mips.

	* doc/tm.texi: Document feature.

2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>

	* integrate.c (function_attribute_inlinable_p): Simplify.
	Check the table pointer is not NULL.

2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>

	* doc/c-tree.texi: Fix typo in introduction.

2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.h (c_common_parse_file): Update.
	* c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
	* c-lex.c (YYDEBUG): Get from c-lex.h.
	(c_common_parse_file): Update.
	* c-lex.h (YYDEBUG, yydebug): New.
	* c-parse.in (YYDEBUG): Get from c-lex.h.
	(c_set_yydebug): Remove.
	* c-tree.h (c_set_yydebug): Remove.
	* langhooks-def.h (lhd_do_nothing_i): New.
	(lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
	(LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c  (lhd_do_nothing_i): New.
	(lhd_set_yydebug): Remove.
	* langhooks.h (struct lang_hooks): Update.
	* toplev.c (set_yydebug): New.
	(compile_file): Update call to parse_file hook.
	(decode_d_option): Update.
objc:
	* objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.

Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* loop.c (load_mems): Don't change the interface of called functions.

	* calls.c (expand_call): Take current_function_pretend_args_size
	into account when setting argblock for sibcalls.

2002-04-24  Matt Hiller  <hiller@redhat.com>

	* cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
	* c-lex.c: Ditto.

	* cpplex.c (skip_line_comment): Process comment one multibyte
	character at a time rather than one char at a time, if
	appropriate.
	(parse_string): Process string one multibyte character at a time
	rather than one char at a time, if appropriate.
	* c-lex.c (lex_string): Lex and copy multibyte strings
	appropriately.
	* cpplib.h (cppchar_t): Change to unsigned.

2002-04-24  Richard Henderson  <rth@redhat.com>

	PR c/3467
	* c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
	for c99.

Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (sh_va_arg): If argument was passed by reference,
	dereference the pointer.

	* sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.

	* sh.md (divsi3_i4_media): Use match_operand for input values
	rather than hard registers.
	(divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
	unnecessarily through hard registers.  Keep copies of pseudo
	registers outside of the libcall sequence.

	* sh.md (casesi_shift_media): Add modes.

	* sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
	values in memory.

2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>

	* attribs.c (c_common_attribute_table): Move table and handlers
	to c-common.c.
	(format_attribute_table, lang_attribute_table,
	lang_attribute_common): Remove.
	(init_attributes): Replace NULL pointers with pointers to the
	empty table.
	(handle_packed_attribute, handle_nocommon_attribute,
	handle_common_attribute, handle_noreturn_attribute,
	handle_noinline_attribute, handle_always_inline_attribute,
	handle_used_attribute, handle_unused_attribute,
	handle_const_attribute, handle_transparent_union_attribute,
	handle_constructor_attribute, handle_destructor_attribute,
	handle_mode_attribute, handle_section_attribute,
	handle_aligned_attribute, handle_weak_attribute,
	handle_alias_attribute, handle_visibility_attribute,
	handle_no_instrument_function_attribute, handle_malloc_attribute,
	handle_no_limit_stack_attribute, handle_pure_attribute,
	handle_deprecated_attribute, handle_vector_size_attribute,
	vector_size_helper): Move to c-common.c.
	* c-common.c (c_common_attribute_table,
	handle_packed_attribute, handle_nocommon_attribute,
	handle_common_attribute, handle_noreturn_attribute,
	handle_noinline_attribute, handle_always_inline_attribute,
	handle_used_attribute, handle_unused_attribute,
	handle_const_attribute, handle_transparent_union_attribute,
	handle_constructor_attribute, handle_destructor_attribute,
	handle_mode_attribute, handle_section_attribute,
	handle_aligned_attribute, handle_weak_attribute,
	handle_alias_attribute, handle_visibility_attribute,
	handle_no_instrument_function_attribute, handle_malloc_attribute,
	handle_no_limit_stack_attribute, handle_pure_attribute,
	handle_deprecated_attribute, handle_vector_size_attribute,
	vector_size_helper): Move from attribs.c.
	* c-common.h (c_common_attribute_table,
	c_common_format_attribute_table): New.
	* c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
	LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
	* langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
	LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): 3 new attribute hooks.
	* target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
	* target.h: Update comment.
	* tree.c (default_target_attribute_table): Remove.
	* tree.h (default_target_attribute_table, format_attribute_table,
	lang_attribute_table, lang_attribute_common): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
	LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.

2002-04-24  Jason Merrill  <jason@redhat.com>

	* dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
	* dwarf2out.c (dwarf_attr_name): Support it.
	(gen_array_type_die): Emit it.
	(lookup_type_die): No special handling for VECTOR_TYPE.
	(gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.

2002-04-24  Richard Henderson  <rth@redhat.com>

	* config/mips/mips.md (movdi_usd): Renumber.

2002-04-24  David S. Miller  <davem@redhat.com>

	PR target/6420
	* config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
	32-bit SPARC and current_function_returns_struct is true.

Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* loop.c (canonicalize_condition): Use gen_int_mode.

2002-04-24  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h: Cleanup file.  Add non individual
	variants.
	(vec_vaddubm): New.
	(vec_vadduhm): New.
	(vec_vadduwm): New.
	(vec_vaddfp): New.
	(vec_vaddcuw): New.
	(vec_vaddubs): New.
	(vec_vaddsbs): New.
	(vec_vadduhs): New.
	(vec_vadduws): New.
	(vec_vaddsws): New.
	(vec_vand): New.
	(vec_vandc): New.
	(vec_vavgub): New.
	(vec_vavgsb): New.
	(vec_vavguh): New.
	(vec_vavgsh): New.
	(vec_vavguw): New.
	(vec_vavgsw): New.
	(vec_vrfip): New.
	(vec_vcmpbfp): New.
	(vec_vcmpequb): New.
	(vec_vcmpequh): New.
	(vec_vcmpequw): New.
	(vec_vcmpeqfp): New.
	(vec_vcmpgefp): New.
	(vec_vcmpgtub): New.
	(vec_vcmpgtsb): New.
	(vec_vcmpgtuh): New.
	(vec_vcmpgtsh): New.
	(vec_vcmpgtuw): New.
	(vec_vcmpgtsw): New.
	(vec_vcmpgtfp): New.
	(vec_vcmpgefp): New.
	(vec_vcfux): New.
	(vec_vcfsx): New.
	(vec_vctsxs): New.
	(vec_vctuxs): New.
	(vec_vexptefp): New.
	(vec_vrfim): New.
	(vec_lvx): New.
	(vec_lvebx): New.
	(vec_lvehx): New.
	(vec_lde): Add vector float variant.
	(vec_lvewx): New.
	(vec_lvxl): New.
	(vec_vlogefp): New.
	(vec_vmaddfp): New.
	(vec_vmhaddshs): New.
	(vec_vmaxub): New.
	(vec_vmaxsb): New.
	(vec_vmaxuh): New.
	(vec_vmaxsh): New.
	(vec_vmaxuw): New.
	(vec_vmaxsw): New.
	(vec_vmaxsw): New.
	(vec_vmaxfp): New.
	(vec_vmrghb): New.
	(vec_vmrghh): New.
	(vec_vmrghw): New.
	(vec_vmrglb): New.
	(vec_vmrglh): New.
	(vec_vmrglw): New.
	(vec_vminub): New.
	(vec_vminsb): New.
	(vec_vminuh): New.
	(vec_vminsh): New.
	(vec_vminuw): New.
	(vec_vminsw): New.
	(vec_vminfp): New.
	(vec_vmladduhm): New.
	(vec_vmhraddshs): New.
	(vec_msumubm): New.
	(vec_vmsummbm): New.
	(vec_vmsumuhm): New.
	(vec_vmsumshm): New.
	(vec_vmsumuhs): New.
	(vec_vmsumshs): New.
	(vec_vmuleub): New.
	(vec_vmulesb): New.
	(vec_vmuleuh): New.
	(vec_vmulesh): New.
	(vec_vmuloub): New.
	(vec_mulosb): New.
	(vec_vmulouh): New.
	(vec_vmulosh): New.
	(vec_vnmsubfp): New.
	(vec_vnor): New.
	(vec_vor): New.
	(vec_vpkuhum): New.
	(vec_vpkuwum): New.
	(vec_vpkpx): New.
	(vec_vpkuhus): New.
	(vec_vpkshss): New.
	(vec_vpkuwus): New.
	(vec_vpkswss): New.
	(vec_vpkshus): New.
	(vec_vpkswus): New.
	(vec_vperm): New.
	(vec_vrefp): New.
	(vec_vrlb): New.
	(vec_vrlh): New.
	(vec_vrlw): New.
	(vec_vrfin): New.
	(vec_vrsqrtefp): New.
	(vec_vsel): New.
	(vec_vslb): New.
	(vec_vslh): New.
	(vec_vslw): New.
	(vec_vsldoi): New.
	(vec_vsl): New.
	(vec_vslo): New.
	(vec_vspltb): New.
	(vec_vsplth): New.
	(vec_vspltw): New.
	(vec_vspltisb): New.
	(vec_vspltish): New.
	(vec_vspltisw): New.
	(vec_vsrb): New.
	(vec_vsrh): New.
	(vec_vsrw): New.
	(vec_vsrab): New.
	(vec_vsrah): New.
	(vec_vsraw): New.
	(vec_vsr): New.
	(vec_vsro): New.
	(vec_stvx): New.
	(vec_stvebx): New.
	(vec_stvehx): New.
	(vec_stvewx): New.
	(vec_stvxl): New.
	(vec_vsububm): New.
	(vec_vsubuhm): New.
	(vec_vsubuwm): New.
	(vec_vsubfp): New.
	(vec_vsubcuw): New.
	(vec_vsububs): New.
	(vec_vsubsbs): New.
	(vec_vsubuhs): New.
	(vec_vsubshs): New.
	(vec_vsubuws): New.
	(vec_vsubsws): New.
	(vec_vsum4ubs): New.
	(vec_vsum4sbs): New.
	(vec_vsum4shs): New.
	(vec_vsum2sws): New.
	(vec_vsumsws): New.
	(vec_vrfiz): New.
	(vec_vupkhsb): New.
	(vec_vupkhpx): New.
	(vec_vupkhsh): New.
	(vec_vupklsb): New.
	(vec_vupklpx): New.
	(vec_vupklsh): New.
	(vec_vxor): New.

2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>

	PR c/5430
	* fold-const.c (split_tree): Add MINUS_LITP parameter; separate
	added literals from substracted literals.
	(associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
	(fold) [associate]: Preserve MINUS_EXPR if needed.

2002-04-23  Zack Weinberg  <zack@codesourcery.com>

	* doc/install.texi: Clarify which versions of alpha*-dec-osf*
	are obsoleted.

2002-04-23  Tom Tromey  <tromey@redhat.com>

	* gcc.c: Added --resource.  For PR java/6314.

2002-04-23  David O'Brien  <obrien@FreeBSD.org>

	* cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
	* config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
	these libraries.

2002-04-23  David O'Brien  <obrien@FreeBSD.org>

	* config/freebsd.h(OBJECT_FORMAT_ELF): Define.

Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
	workaround.
	(ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
	(ix86_expand_clrstr): Fix typo.
	* loop.c (gen_load_of_final_value): New.
	(loop_givs_rescan, strength_reduce, check_dbra_loop):
	Use it.

2002-04-23  Roger Sayle  <roger@eyesopen.com>

	* builtins.c (builtin_memset_gen_str): New function.
	(expand_builtin_memset): Optimize the case of constant length, but
	unknown value.

2002-04-23  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h (vec_step): Remove extraneous
	parentheses.
	(vec_ctu): Cast return.

2002-04-23  Alan Modra  <amodra@bigpond.net.au>

	PR target/6413
	* function.h: (struct function): Add profile_label_no field.
	(current_function_profile_label_no): Define.
	* function.c: (profile_label_no): New static var.
	(expand_function_start): Increment it, and copy to
	current_function_profile_label_no.
	* output.h (profile_label_no): Delete.
	* final.c (profile_label_no): Delete.
	(profile_function): Use current_function_profile_label_no.
	(final_end_function): Don't increment profile_label_no here.
	* config/i386/i386.c (ix86_osf_output_function_prologue): Replace
	profile_label_no with current_function_profile_label_no.
	* config/pa/pa.c (current_function_number): Delete.
	(pa_output_function_prologue): Don't output profile label here.
	(hppa_profile_hook): Use label_no param rather than
	current_function_number.
	(FUNC_BEGIN_PROLOG_LABEL): Move to ..
	* config/pa/pa.h: .. here.
	(FUNCTION_PROFILER): Output profile label here.

2002-04-22  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
	patch of 2002-04-09 due to binutils issues.
	(FUNCTION_ARG_REGNO_P): Ensure even numbered float register.

2002-04-22  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
	constraint to 'o' for m=r and r=m alternatives.
	("*movv8hi_internal1"): Same.
	("*movv16qi_internal1"): Same.
	("*movv4sf_internal1"): Same.

2002-04-22  Janis Johnson  <janis187@us.ibm.com>

	* rtl.h (RTX_FLAG): New macro.
	* emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
	* final.c (alter_subreg): Use macro to access rtx flag.
	* integrate.c (copy_rtx_and_substitute): Use new access macro.
	* print-rtl.c (print_rtx): Use new access macro.

	* cse.c (insert): Check rtx code before accessing flag.

	* genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
	ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
	(attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
	convert_const_symbol_ref, make_canonical, make_alternative_compare,
	evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
	simplify_test_exp, optimize_attrs, simplify_by_exploding,
	find_and_mark_used_attributes, unmark_used_attributes,
	add_values_to_cover, simplify_with_current_value,
	simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
	copy_rtx_unchanging, main): Use new access macros.

2002-04-22  Tom Rix  <trix@redhat.com>

	* expmed.c (init_expmed): Generate shifted constant once.

2002-04-22  Zack Weinberg  <zack@codesourcery.com>

	* c-lex.c (lex_charconst): Call convert to get constant in
	proper type; don't just smash the type field.
	Fixes PR c/6300.

	* config.gcc: Add list of obsolete configurations.  Disallow
	building these without --enable-obsolete.
	* doc/install.texi: Document --enable-obsolete and obsoletion
	policy.  Mention obsoletion of individual targets in
	appropriate places.

2002-04-22  Richard Henderson  <rth@redhat.com>

	* config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.

2002-04-22  Mark Mitchell  <mark@codesourcery.com>

	PR f/6138.
	* function.c (fixup_memory_subreg): Add promoted_mode parameter.
	(walk_fixup_memory_subreg): Likewise.
	(fixup_var_refs_insn): Adjust accordingly.
	(fixup_var_refs_1): Likewise.

2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
	LIBPATH_ARCH64_SPEC): Define.
	(EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
	(STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
	(LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
	(LINK_ARCH64_SPEC): Add libpath_arch64 to search path.

2002-04-22	Joel Sherrill <joel@OARcorp.com>

	* gthr-rtems.h: Correct prototypes to remove warnings.

2002-04-22  Richard Henderson  <rth@redhat.com>

	PR c/6344
	* alias.c (canon_true_dependence): Special case (mem:blk (scratch)).

	* gcse.c (free_insn_expr_list_list): New.
	(clear_modify_mem_tables): Use it.  Fix bit set usage.
	(canon_list_insert): Use EXPR_LISTs for expressions.
	(record_last_mem_set_info): Factor BLOCK_NUM (insn).

2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
	file change and include code to _cpp_pop_buffer.
	* cpphash.h (struct pending_option): Predeclare.
	(struct cpp_reader): New member next_include_file.
	(_cpp_pop_file_buffer): Update.
	(_cpp_push_next_buffer): Update, rename.
	* cppinit.c (cpp_destroy): Free include chain and pending here.
	(cpp_finish_options): Simplify.
	(_cpp_push_next_buffer): Rename and clean up.
	* cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
	Clarify.
	* cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.

2002-04-22  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h (vec_xor): Add variant for both args
	being vector signed int.
	(vec_andc): Same.
	(vec_xor): Add variant for both args being vector signed char.
	Remove redundant variant.
	(vec_andc): Same.

2002-04-21  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.md (set then compare DI mode peephole2): Fix
	compare mode in output RTL.

2002-04-22  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_override_options): Correct
	style and formatting of previous patch.

2002-04-22  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_override_options): Always clear
	flag_pic for ABI_AIX.

2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
	* cppfiles.c (read_include_file): Similarly.
	* cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
	uxstrdup ustrchr, ufputs): Similarly.
	* cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
	* cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
	cpp_ideq, parse_identifier, parse_number): Similarly.
	* cpplib.c (struct directive, dequote_string, D, run_directive,
	cpp_push_buffer): Similarly.
	* cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
	_cpp_create_definition, check_trad_stringification,
	cpp_macro_definition): Similarly.

2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppmacro.c (funlike_invocation_p): Don't step back
	over CPP_EOF.

2002-04-21  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (output_profile_hook): Do not increment
	labelno.

2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/invoke.texi: Remove Chill references.
	* doc/gcc.texi: Update last modified date.

2002-04-20  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
	push and pop.  Replace add.l with add.w.

2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>

	* config/h8300/lib1funcs.asm (___mulsi3): Use hardware
	multiply instructions for H8/300H case.

2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>

	* config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
	Bum three instructions from each routine.

2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in: Update.
	* decl.c (push_c_function_context, pop_c_function_context,
	mark_c_function_context): Rename for consistency.
	* c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
	* c-tree.h (push_c_function_context, pop_c_function_context,
	mark_c_function_context): Rename for consistency.
	* c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
	LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
	* function.c (init_lang_status, save_lang_status,
	restore_lang_status, mark_lang_status, free_lang_status):
	Move to langhooks.h.
	(push_function_context_to, pop_function_context_from,
	free_after_parsing, prepare_function_start, ggc_mark_struct_function):
	Update.
	* function.h (init_lang_status, save_lang_status,
	restore_lang_status, mark_lang_status, free_lang_status):
	Move to langhooks.h.
	* langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
	LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
	LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
	LANG_HOOKS_FUNCTION_INITIALIZER): New.
	(LANG_HOOKS_INITIALIZER): Update.
	(lhd_do_nothing_f): New.
	* langhooks.h (struct lang_hooks_for_functions): New.
	(struct lang_hooks): New hooks.
	* langhooks.c (lhd_do_nothing_f): New.
objc:
	* objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
	LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.

2002-04-19  David S. Miller  <davem@redhat.com>

	* config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
	* config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.

2002-04-19  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/3756
	* config/i386/i386.c (ix86_expand_int_movcc): Optimize
	x = ((int) y < 0) ? cst1 : cst2.

2002-04-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/6358
	* function.c: Reapply patch for c/6358.
	(expand_function_end): Copy decl_rtl's mode, not
	current_function_return_rtx mode.

2002-04-19  Joel Sherrill  <joel@OARcorp.com>

	* config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
	targets.

2002-04-19  Tom Tromey  <tromey@redhat.com>

	* doc/install.texi (Specific): Update status of Solaris 2.8.
	For PR libgcj/6158.

2002-04-19  Andreas Schwab  <schwab@suse.de>

	* real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
	(PUT_REAL): Restore old definition.

2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
	    Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
	binutils 2.11.2 and higher generate smaller binaries than Sun's
	native tools.

2002-04-19  Mark Mitchell  <mark@codesourcery.com>

	PR c++/6352
	* toplev.c (rest_of_compilation): Do not defer functions for which
	TREE_SYMBOL_REFERENCED has already been set.

Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movsi_1, movhi_1): Force reload to use more flexible
	alternative.

2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>

	* builtins.c: Include langhooks.h.
	(lang_type_promotes_to): Remove.
	(expand_builtin_va_arg): Use new hook.
	* c-common.c (c_common_nodes_and_builtins): Don't set hook.
	(simple_type_promotes_to): Move to c-typeck.c.
	* c-common.h (simple_type_promotes_to): Remove.
	* c-decl.c (duplicate_decls, grokdeclarator): Update.
	* c-format.c: Include langhooks.h.
	(check_format_types): Update.
	* c-tree.h (c_type_promotes_to): New.
	* c-typeck.c (c_type_promotes_to): Move from c-common.c.
	(type_lists_compatible_p): Update.
	* langhooks-def.h (lhd_type_promotes_to): New.
	(LANG_HOOKS_TYPE_PROMOTES_TO): New.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
	* langhooks.c (lhd_type_promotes_to): New.
	* langhooks.h (struct lang_hooks_for_types): New hook.
	* tree.h (lang_type_promotes_to): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.

2002-04-18  Richard Henderson  <rth@redhat.com>

	* function.c: Revert patch for c/6358.

2002-04-18  Richard Henderson  <rth@redhat.com>

	* ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
	blocks.  Handle multiple references to the TRAP block.  Handle
	non-adjacent THEN and OTHER blocks.

2002-04-18  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
	crash with no type for by-mode libcalls.

	* config/ia64/ia64.md (conditional_trap): Fix predicate polarity.

2002-04-18  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
	__xtensa_nonlocal_goto): Use a syscall instructions to flush
	the register windows.

2002-04-18  Zack Weinberg  <zack@codesourcery.com>

	* real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
	appropriate.  Document need for extended precision even when
	MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
	based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
	REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
	instead of relying on later syntax error when REAL_WIDTH > 5.
	* real.c: Define NE based only on whether or not we have a
	full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
	Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
	define GET_REAL and PUT_REAL as simple memcpy operations; no
	need to byteswap or round.
	Use #error instead of #ifdef-ing out the entire file, for
	prompt error detection.

	* rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.

2002-04-18  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.h (BRANCH_COST): Define.

	* fold-const.c (BRANCH_COST): Don't provide default here, expr.h
	does it.

2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>

	* flow.c (update_life_info): Ignore return value of cleanup_cfg.
	Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
	propagate_block calls after relaxation loop using new variable
	stabilized_prop_flags.

2002-04-18  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
	(ia64_va_arg): Expect variable sized types by reference.
	* config/ia64/ia64-protos.h: Update.
	* config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
	ia64_function_arg_pass_by_reference.

2002-04-18  Richard Henderson  <rth@redhat.com>

	* ifcvt.c: Include except.h.
	(block_has_only_trap): Break out from find_cond_trap.
	(find_cond_trap): Use it.  Always delete the trap block.
	(merge_if_block): Allow then block null.  Be less simplistic about
	what insns can end a block.
	* Makefile.in (ifcvt.o): Depend on except.h.

	* config/ia64/ia64.md (trap, conditional_trap): New.

2002-04-18  Jakub Jelinek  <jakub@redhat.com>

	PR c/6358
	* function.c (assign_parms): Assign hard current_function_return_rtx
	register here...
	(expand_function_end): ...not here.

2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
	* c-tree.h (c_incomplete_type_error): New.
	* c-typeck.c (require_complete_type, build_component_ref): Update.
	(incomplete_type_error): Rename.
	* langhooks-def.h (lhd_incomplete_type_error): New.
	(LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
	* langhooks.c (lhd_incomplete_type_error): New.
	* langhooks.h (struct lang_hooks_for_types): New hook.
	* tree.c (size_in_bytes): Use new hook.
	* tree.h (incomplete_type_error): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.

2002-04-18  Zack Weinberg  <zack@codesourcery.com>

	* config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
	TARGET_FLOAT_FORMAT blocks.

2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi (Downloading the source): Do not mention Chill
	any longer, but mention Ada.
	(Configuration): Do not mention Chill any longer.

2002-04-18  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (TARGET_VERSION): Remove local version number.

Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
	in last patch.

2002-04-18  Jakub Jelinek  <jakub@redhat.com>

	* fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
	instead of unsigned_type.

Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
	* i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
	later.

2002-04-18  Bernd Schmidt  <bernds@redhat.com>

	* attribs.c (vector_type_node_list): New static variable.
	(handle_vector_size_attribute): Use it to avoid generating a
	new type node each time we are called.

	* combine.c (subst): Avoid trying to make a vector mode subreg of
	an integer constant.
	(gen_lowpart_for_combine): Likewise.

2002-04-18  Roger Sayle  <roger@eyesopen.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
	for integer constant c (if x has unsigned type or sign bit is not
	set in c).  This folds the zero/sign extension into the bit-wise and
	operation.

2002-04-18  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/6205
	* config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
	otherwise xorps.

2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>

	* config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.

2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>

	* gcc.c (read_specs): Detect and fail if an attempt is made to
	rename a spec string to an already existing string.

2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (legitimize_pic_address): Do not generate
	illegal address constant without CONST.

2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
	* sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.

2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>

	PR optimization/6305
	* config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
	to make sure previous reloads are taken into account.  Generate
	better code if one operand is an in-range immediate constant.

2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>

	* doc/install.texi (Building): libgcj requires GNU make.

2002-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/6315
	* config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
	even if hard quad and register is not floating.
	(movtf reg<-mem split): Disallow splitting if hard quad and
	register is floating.
	(movtf mem<-reg split): Likewise.
	* config/sparc/sparc.c (fp_register_operand): New predicate.
	* config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.

2002-04-17  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in (PROTO_OBJS): Add cppdefault.o.
	(protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
	(unprotoize.o): Ditto.  Build from protoize.c.  Define
	UNPROTOIZE on command line.
	* protoize.c: Include cppdefault.h.  Delete include_defaults.
	(in_system_include_dir): Use cpp_include_defaults (defined in
	cppdefault.o).
	* unprotoize.c: Delete file.

2002-04-17  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h (vec_ld): Add array variants.
	(vec_lde): Same.
	(vec_ldl): Same.

2002-04-17  Alan Matsuoka  <alanm@redhat.com>
	    Aldy Hernandez <aldyh@redhat.com>

	* config/rs6000/altivec.h: Define __ALTIVEC__.
	(bool): New.
	(__pixel): New.
	(pixel): New.
	(vec_cfux): New.
	(vec_vmaddfp): New.
	(vec_vsldoi): New.
	Add parentheses to all macro arguments.

2002-04-16  Richard Henderson  <rth@redhat.com>

	PR c++/6320
	* except.c (remove_eh_handler): Insert inner regions at beginning
	of sibling chain.  Refactor expressions.

2002-04-16  Richard Henderson  <rth@redhat.com>

	* config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
	* config/sparc/sol2-gas-bi.h: New file.
	* config.gcc (sparc*-solaris): Add it as needed.
	* configure.in (AS_SPARC64_FLAG): Remove check.
	* config.in, configure: Regenerate.

	* config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.

2002-04-16  Richard Henderson  <rth@redhat.com>

	* config/mips/mips.c (override_options): Don't override N32 for
	a 64-bit ISA.

	PR 6202
	* config/mips/mips.md (can_delay): Split out of existing define_delays.
	(HILO_delay): Set can_delay false.

2002-04-16  Dale Johannesen <dalej@apple.com>

	* config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
	instruction addresses.
	(rs6000_output_function_epilogue): Likewise.

2002-04-16  Paolo Carlini  <pcarlini@unitus.it>

	* c-parse.in (poplevel, compstmt_start,
	compstmt_primary_start): Add ending ';', in accordance
	with POSIX.

2002-04-16  Richard Henderson  <rth@redhat.com>

	* config.gcc (sparcv9-solaris): Configure for 64-bit default.
	Adjust tm_file order to get TARGET_DEFAULT set properly.
	(sparc-solaris): Configure 2.[78] for 64-bit multilibs.
	* doc/install.texi (sparc-solaris): Update.

2002-04-16  Dale Johannesen <dalej@apple.com>

	* config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
	comparison operands do not match each other or if modes of
	conditions do not match result.

2002-04-16  Hartmut Penner <hpenner@de.ibm.com>

	PR target/6305
	* config/s390/s390.md (mulsidi3): Set both subregs of the
	multiword register.

2002-04-16  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h (vec_addc): Type check.

2002-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/6279
	* expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.

	* expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.

2002-04-15  Richard Henderson  <rth@redhat.com>

	* config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
	call_really_used_regs too.

2002-04-15  Richard Henderson  <rth@redhat.com>

	* config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.

2002-04-15  David S. Miller  <davem@redhat.com>

	* rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
	as being CLOBBERed.

2002-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR c/6290
	* config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
	CONST_VECTOR is { 0, ... 0 }.

2002-04-15  Loren J. Rittle  <ljrittle@acm.org>

	* doc/install.texi (Installing GCC: Configuration): Clarify
	the only supported ways to configure gcc.

2002-04-15  Roland McGrath  <roland@frob.com>

	* config.gcc (alpha*-*-gnu*): New target configuration.
	* config/alpha/gnu.h: New file for it.
	* config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.

2002-04-16  Mark Mitchell  <mark@codesourcery.com>

	* c-common.h (STMT_EXPR_NO_SCOPE): New macro.
	* c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
	* tree.h (expand_start_stmt_expr): Update prototype.
	* stmt.c (expand_start_stmt_expr): Add has_scope parameter.
	* tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
	on the STMT_EXPR created for the inline function.

2002-04-15  Richard Henderson  <rth@redhat.com>

	* config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
	config/i386/linux-aout.h, config/i386/linux-oldld.h,
	config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
	config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
	config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
	config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
	config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
	Define __gnu_linux__, not gnu_linux.
	* config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.

2002-04-15  Mark Mitchell  <mark@codesourcery.com>

	Remove Chill front end.
	* gcc.c (default_compilers): Remove Chill entries.
	* ch: Remove directory.
	* doc/frontends.texi: Remove information about Chill.
	* doc/sourcebuild.texi: Likewise.
	* doc/standards.texi: Likewise.

2002-04-15  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
	(LONGLONG_STANDALONE): Define.

2002-04-15  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.c (sparc_emit_float_lib_cmp):
	Call emit_library_call with LCT_NORMAL.
	(sparc_initialize_trampoline): Use LCT_foo instead of
	magic constant in emit_library_call invocations.
	(sparc64_initialize_trampoline): Likewise.
	(sparc_profile_hook): Likewise.
	* config/sparc/sparc.md: Likewise.

	* config/sparc/sparc.c (sparc_extra_constraint_check):
	Fix type of argument 'c'.
	* config/sparc/sparc-protos.h (sparc_extra_constraint_check):
	Likewise.

2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>

	* diagnostic.h (output_buffer_state): Redefine.
	(output_format_decoder): New macro.
	(output_prefixing_rule): Likewise.
	(output_line_cutoff): Likewise.
	(diagnostic_format_decoder): Adjust.
	(diagnostic_prefixing_rule): Likewise.
	(diagnostic_line_cutoff): Likewise.
	(diagnostic_state): Likewise.
	(diagnostic_kind_count): Likewise.
	(diagnostic_buffer): Now a macro.

	* diagnostic.c (diagnostic_buffer): Remove definition.
	(output_is_line_wrapping): Adjust.
	(set_real_maximum_length): Likewise.
	(output_set_maximum_length): Likewise.
	(init_output_buffer): Likewise.
	(lhd_print_error_function): Likewise.
	(output_do_verbatim): Likewise.

2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpperror.c (print_location): Don't print include chain
	if line == 0.
	(cpp_begin_message): Update to use DL_ macros.
	(cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
	cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
	cpp_notice, cpp_notice_from_errno): Remove.
	(cpp_error, cpp_error_with_line): Update to take a diagnostic
	level.
	(cpp_errno): New.
	* cppexp.c (CPP_ICE): Remove.
	(SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
	lex, integer_overflow, _cpp_parse_expr): Update.
	* cppfiles.c (read_include_file, find_include_file,
	handle_missing_header, _cpp_read_file, remap_filename): Update.
	* cpphash.h (enum error_type): Remove.
	(_cpp_begin_message): Update.
	* cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
	cpp_handle_option, cpp_post_options): Update.
	* cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
	skip_whitespace, parse_identifier, parse_slow, parse_string,
	_cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
	cpp_interpret_charconst): Update.
	* cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
	lex_macro_node, do_undef, glue_header_name, parse_include,
	do_include_common, read_flag, do_line, do_linemarker, do_ident,
	cpp_register_pragma, do_pragma_once, do_pragma_system_header,
	do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
	do_elif, do_endif, parse_answer, parse_assertion, do_assert,
	_cpp_pop_buffer, do_diagnostic): Update.
	* cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
	DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
	(cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
	cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
	cpp_notice, cpp_notice_from_errno): Remove.
	(cpp_error, cpp_error_with_line): Update to take a diagnostic
	level.
	(cpp_errno): New.
	* cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
	collect_args, enter_macro_context, save_parameter, parse_params,
	_cpp_create_definition, check_trad_stringification,
	cpp_macro_definition): Update.
	* cppmain.c (cpp_preprocess_file): Update.
	* fix-header.c (read_scan_file): Update.

2002-04-14  Andreas Schwab  <schwab@suse.de>

	* config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.

2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>

	* config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.

2002-04-13  Mark Mitchell  <mark@codesourcery.com>

	* config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
	not gnu_hurd.

2002-04-13  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.

2002-04-13	Joel Sherrill <joel@OARcorp.com>

	* config/sparc/t-elf: Enable v8 multilibs.  Impacts
	sparc-elf and sparc-rtems targets.

2002-04-13  Mark Mitchell  <mark@codesourcery.com>

	* alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
	defined, and __gnu_hurd__ wherever __GNU__ is defined.
	* arm/linux-elf.h: Likewise.
	* cris/aout.h: Likewise.
	* cris/linux.h: Likewise.
	* i370/linux.h: Likewise.
	* i386/gnu.h: Likewise.
	* i386/linux-aout.h: Likewise.
	* i386/linux-oldld.h: Likewise.
	* i386/linux.h: Likewise.
	* i386/linux64.h: Likewise.
	* ia64/linux.h: Likewise.
	* m68k/linux-aout.h: Likewise.
	* m68k/linux.h: Likewise.
	* mips/linux.h: Likewise.
	* pa/pa-linux.h: Likewise.
	* pj/linux.h: Likewise.
	* rs6000/sysv4.h: Likewise.
	* s390/linux.h: Likewise.
	* sh/linux.h: Likewise.
	* sparc/linux-aout.h: Likewise.
	* sparc/linux.h: Likewise.
	* sparc/linux64.h: Likewise.
	* xtensa/linux.h: Likewise.

2002-04-13  Richard Sandiford  <rsandifo@redhat.com>

	* stmt.c (check_unique_operand_names): Expect operand names to
	be strings rather than identifiers.  Use simple_cst_equal to
	compare them.
	(resolve_operand_name_1): Make same identifier to string change here.
	* c-parse.in (asm_operand): Convert a named operand into a string.
	* cp/parse.y (asm_operand): Likewise.

2002-04-13  Andreas Schwab  <schwab@suse.de>

	* config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).

2002-04-12  Mark Mitchell  <mark@codesourcery.com>

	Revert these changes:

	2002-04-06  Mark Mitchell  <mark@codesourcery.com>

	PR c++/5571
	* stor-layout.c (layout_decl): Reset the RTL for the decl.

2002-04-12  Richard Henderson  <rth@redhat.com>

	* config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
	(sparc*-*-solaris): Clean up header files.
	* configure.in (AS_SPARC64_FLAG): Error out if can't find it
	and plan on generating 64-bit code.
	* toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
	* config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
	* config/sparc/sol2-sld-64.h: Rename ...
	* config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
	for AS_SPARC64_FLAG not defined.
	* config/sparc/sol2-gld-bi.h: New.
	* config/sparc/sol2-sld.h: Remove.
	* config/sparc/sol26-sld.h: New.
	* config/sparc/sol2.h: Tidy comments.
	* doc/install.texi: Document sparc-solaris configury changes.

2002-04-12  Richard Henderson  <rth@redhat.com>

	* recog.c (offsettable_address_p): Match the logic in adjust_address.

	* config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
	in 64-bit mode only.  Use only for 32-bit or MEDLOW.

2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.

Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)

	* pa.c (pa_can_combine_p): Call extract_insn before calling
	constrain_operands.

2002-04-12  Douglas B Rupp  <rupp@gnat.com>

	* config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
	(TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
	(DEFAULT_PCC_STRUCT_RETURN): Define as 0.
	(CPP_PREDEFINES): Handle __declspec.
	* config/i386/t-interix (USER_H): Remove.

2002-04-12  DJ Delorie  <dj@redhat.com>

	* integrate.c (compare_blocks): Make comparisons safe for when
	sizeof(int) < sizeof(char *).
	(find_block): Likewise.

2002-04-12  Jan Hubicka  <jh@suse.cz>
	    David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
	registers.
	(symbol_ref_operand): New.
	* config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
	* config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.

2002-04-12  Andreas Schwab  <schwab@suse.de>

	* config/ia64/ia64.h (ASM_SPEC): Moved from here ...
	* config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
	overrides the definition in config/svr4.h.

2002-04-12	Eric Norum <eric.norum@usask.ca>

	* config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
	config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
	config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
	config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
	config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
	config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
	config/v850/rtems.h (*-rtems*): Cleanup pass to move common
	definitions to config/rtems.h and make the targets more similar.

Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expr.c (expand_assigment): Remove duplicate conversions #ifdef
	POINTERS_EXTEND_UNSIGNED.
	(store_constructor, expand_expr, case COMPONENT_REF): Likewise.
	(store_expr): Use TYPE_MODE (sizetype), not ptr_mode.

	* emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
	not specified.

Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
	depends on TARGET_SHMEDIA, not TARGET_SH5.

2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>

	* function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
	For paradoxical (subreg VAR), replace VAR, don't try the subreg.

Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (broken_move): Constant 0. / 1. load is OK if there is
	no r0 clobber.

2002-04-12  Andreas Schwab  <schwab@suse.de>

	* config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.

2002-04-12  Richard Henderson  <rth@redhat.com>

	PR bootstrap/4191
	* config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.

	* flow.c (mark_used_reg): Manage reg_cond_dead properly for
	modes spanning multiple hard regs.

	* recog.c (peephole2_optimize): Rebuild jump labels as needed.

2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (pa_output_function_prologue): Don't accumulate the total
	number of code bytes when using TARGET_64BIT, or gas, SOM and not
	the portable runtime.
	(output_deferred_plabels): Handle 64bit plabels.
	(output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
	generating pic code using the GAS assembler for object formats that
	are not SOM (ie., ELF32 and ELF64).
	(output_millicode_call): Check attribute type if attribute length is 28.
	Likewise use $PIC_pcrel$0.  Only call get_attr_length and
	dbr_sequence_length once.
	(output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
	dbr_sequence_length once.
	* pa.h (TARGET_SOM): Define if not defined.
	* pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
	with GAS and not SOM.
	(jump, call_internal_reg, call_value_internal_reg): Likewise.
	* som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.

2002-04-11  David O'Brien  <obrien@FreeBSD.org>

	* config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
	(DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
	(USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
	DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
	elfos.h and dbxelf.h values are fine now.
	* config/i386/freebsd.h, config/alpha/freebsd.h
	(DEFAULT_PCC_STRUCT_RETURN): Define to 0.

2002-04-11  David O'Brien  <obrien@FreeBSD.org>

	* config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
	or set Acpu or Amachine.  Reformat.
	(ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
	define.
	(LINK_SPEC): Do not need to undef.
	* config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
	* config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
	(ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
	define.
	* config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
	(ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
	(LINK_SPEC): Do not need to undef.
	(DONT_USE_BUILTIN_SETJMP): Do not define.
	* config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
	(CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
	(DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
	Remove trailing spaces.
	* config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
	__ELF__, or set Acpu or Amachine.  Reformat.
	(ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
	define.

2002-04-11  David O'Brien  <obrien@FreeBSD.org>

	* config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
	all other *-*-freebsd* targets.

2002-04-11  Richard Henderson  <rth@redhat.com>

	* config.gcc (alpha*-*-linux*ecoff): Detect and reject.

2002-04-11  David O'Brien  <obrien@FreeBSD.org>

	* config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
	Include {cpu}/{cpu}.h thru tm_file.
	(alpha*-*-linux*ecoff): Remove target.
	* config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
	(LINK_SPEC): Remove, is not OS independent.
	* config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
	(LINK_SPEC): Do not need to #undef any longer.
	* config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
	any longer.
	* config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
	__ELF__.
	(LINK_SPEC): Moved here from alpha/elf.h.
	* config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
	SUB_CPP_PREDEFINES.
	* config/alpha/linux-ecoff.h: Remove.
	* config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
	(CPP_SPEC): Define _POSIX_SOURCE as needed.
	(CPP_SUBTARGET_SPEC): Do not define.
	(LINK_SPEC): Do not need to #undef any longer.
	* config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
	* config/alpha/vms.h: Likewise.

2002-04-11  Richard Sandiford  <rsandifo@redhat.com>

	* doc/extend.texi: Remove old claim that typedefs cannot have
	an alignment attribute.

2002-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/6177
	* expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
	bitpos is 0 and bitsize CONCAT size.

2002-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR c/6223
	* combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.

2002-04-10  David O'Brien  <obrien@FreeBSD.org>

	* config/alpha/freebsd.h: Minor reformatting.
	(CPP_SPEC): Define ELF and add cpp_subtarget.
	(ASM_SPEC): No longer needed.

2002-04-11  Richard Henderson  <rth@redhat.com>

	* config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
	(movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
	(dimode mem/zero splitter): New.

2002-04-11  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_override_options): Tweak error message
	for PIC not implemented.

	* config/cris/cris.h: Tweak comments related to parameter-passing.

	* t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.

2002-04-10  Richard Henderson  <rth@redhat.com>

	* except.c (add_ehl_entry): Allow duplicates after landing pad
	creation.

2002-04-10  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.

2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>

	* c-decl.c (c_init_decl_processing): Move generation of
	decls for g77_integer_type_node and friends from here ...
	* c-common.c (c_common_nodes_and_builtins): ... to here.

2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
	is only used as frame pointer when frame_pointer_needed is true.

2002-04-10  Richard Earnshaw  <rearnsha@arm.com>

	PR target/817
	* arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
	for the fact that the pool entry uses two words.
	(movdf_hard_insn): Similarly.  Also, ADR instruction can span
	1k bytes.
	(movdf_soft_insn): Similarly.
	(movxf_hard_insn): Adjust neg_pool_range attribute to allow
	for the fact that the pool entry uses three words.

2002-04-10  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.c (mips_va_arg): When using the struct version
	of the EABI va_list, allow arguments in the register save area to
	take up less room than a stack argument.

2002-04-10  Richard Henderson  <rth@redhat.com>

	* expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
	if EXPAND_INITIALIZER.

2002-04-09  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (movdi_er_maybe_g): New.
	* config/alpha/alpha.c (alpha_expand_mov): Use it.

2002-04-10  Alan Modra  <amodra@bigpond.net.au>

	PR optimization/6233
	* rtlanal.c (pure_call_p): New function.
	* rtl.h (pure_call_p): Declare.
	* loop.c (prescan_loop): Use it to set has_nonconst_call.
	* gcse.c (store_killed_in_insn): Use pure_call_p here too.

2002-04-09  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
	information to .comm directive.

2002-04-09  Richard Henderson  <rth@redhat.com>

	PR c/5078
	* expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.

2002-04-09  Richard Henderson  <rth@redhat.com>

	* basic-block.h (flow_delete_block_noexpunge): Declare.
	(expunge_block_nocompact): Declare.
	* cfg.c (expunge_block_nocompact): Split out from ...
	(expunge_block): ... here.
	* cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
	(flow_delete_block_noexpunge): Split out from ...
	(flow_delete_block): ... here.
	* cfgcleanup.c (delete_unreachable_blocks): Compact while
	removing dead blocks.
	* except.c (exception_handler_labels): Remove.
	(exception_handler_label_map): New.
	(struct eh_region): Add aka member.
	(mark_ehl_map_entry, mark_ehl_map, free_region): New.
	(ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
	(for_each_eh_label, for_each_eh_label_1): New.
	(init_eh): Register exception_handler_label_map.
	(free_eh_status): Use free_region.
	(find_exception_handler_labels): Use the map, not the list.
	(remove_exception_handler_label): Likewise.
	(maybe_remove_eh_handler): Likewise.
	(remove_eh_handler): Use the region aka bitmap.
	* except.h (exception_handler_labels): Remove.
	(for_each_eh_label): Declare.
	* jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
	* loop.c (invalidate_loops_containing_label): New.
	(find_and_verify_loops): Use it.  Use for_each_eh_label.
	* sched-rgn.c (is_cfg_nonregular): Use
	current_function_has_exception_handlers.

2002-04-09  Richard Henderson  <rth@redhat.com>

	* sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
	sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
	Do not return changed status.
	(sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
	sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
	New functions that do return changed status.
	* sbitmap.h: Update decls.
	* gcse.c, lcm.c: Use _cg functions as needed.

Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
	(sh64-*-elf*, sh-*-rtemself*): Likewise.
	* config/sh/embed_bb.c: New file.
	* config/sh/embed-elf.h: New file.
	* sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
	if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
	(CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
	__PTRDIFF_TYPE__ .
	(SUBTARGET_CPP_PTR_SPEC): Don't define.
	(EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
	Add subtarget_asm_endian_spec.
	(ASM_SPEC): Use subtarget_asm_endian_spec.
	(SUBTARGET_ASM_ENDIAN_SPEC): Define.
	(RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
	(WCHAR_UNSIGNED): Define.
	(SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
	(DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
	(ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
	Fix value.
	* sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
	(sh_adjust_cost): Likewise.
	sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
	__PTRDIFF_TYPE__ .
	(SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
	(WCHAR_TYPE_SIZE): Likewise.
	(ASM_SPEC): Use subtarget_asm_endian_spec.
	(SH_ELF_WCHAR_TYPE): #undef/ #define.
	(MAX_WCHAR_TYPE_SIZE): Don't #undef.
	* config/sh/elf.h (WCHAR_UNSIGNED): #undef .
	(MAX_WCHAR_TYPE_SIZE): Don't #define .
	(WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
	(USER_LABEL_PREFIX): Don't #undef /#define .
	(DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
	* config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
	(SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
	(ASM_SPEC): Likewise.
	(SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
	(CC1_SPEC): don't supply -m3 for -m4*, -m5*.
	* t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
	(LIB2FUNCS_EXTRA): Define.
	* t-sh64 (LIB2FUNCS_EXTRA): Define.
	* config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
	(LIB1ASMFUNCS_CACHE): Define.
	(LIB2FUNCS_EXTRA): Redefine empty.

2002-04-08  Richard Henderson  <rth@redhat.com>

	* reorg.c (get_branch_condition): Use reversed_comparison_code.

2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/larith.asm (__map_data_section): Fix condition
	and optimize for size.
	(__do_global_ctors): Fix pointer comparison.
	(__do_global_dtors): Likewise.

2002-04-09  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.c (sparc_extra_constraint_check): New
	function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
	allow reloading pseudos.
	* config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
	* config/sparc/sparc-protos.h: Declare it.

	* config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
	unsigned comparison warning.
	(output_restore_regs): Mark leaf_function as unused.

Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expr.c (is_aligning_offset): New function.
	(expand_expr, case COMPONENT_EXPR): Call it.

2002-04-08  David S. Miller  <davem@redhat.com>

	PR target/6082
	* config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW

	Make init_priority work on SPARC when using GNU ld.
	* config/sparc/linux.h, config/sparc/linux64.h,
	config/sparc/netbsd-elf.h, config/sparc/freebsd.h
	(CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
	* config/sparc/sol2-gld.h: New file to do the same.
	* config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
	sparc/sol2-gld.h to tm_file.

	PR optimization/4328
	* config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
	* doc/md.texi: Document it.
	* config/sparc/sparc.md (movdi_insn_sp64_novis,
	movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
	movdf_insn_v9only_vis, movdf_insn_sp64_novis,
	movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
	* config/sparc/sparc.c (mem_min_alignment): Fix comment.

2002-04-08  Andreas Jaeger  <aj@suse.de>

	* stmt.c (expand_asm_operands): Revert last patch from Richard
	Henderson.

2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Add John David Anglin and Loren
	J. Rittle (the latter also to Testers).  Update David O'Brien's entry.

2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Add David O'Brien.

2002-04-08  Alan Modra  <amodra@bigpond.net.au>

	* configure.in (auto-build.h): Use target_alias and build_alias
	when running configure.
	(gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
	(gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
	* configure: Regenerate.

2002-04-07  David S. Miller  <davem@redhat.com>

	* config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.

2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	PR 5933
	* pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
	generating 32-bit pic code.

2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>

	* cppinit.c (cpp_create_reader): Initialize
	discard_comments_in_macro_exp.
	(COMMAND_LINE_OPTIONS): Add "-CC" option.
	(cpp_handle_option): Handle "-CC" option.
	* cpplex.c (save_comment): If saving a C++ comment in
	a directive, convert it to a C comment.
	(_cpp_lex_direct): Pass second comment start character to
	save_comment to indicate comment type.
	* cpplib.c (_cpp_handle_directive): If processing
	a "#define" directive and discard_comments_in_macro_exp
	is false,  re-enable saving of comments.
	(lex_macro_node): If discard_comments_in_macro_exp is false,
	discard any comments before the macro identifier.
	* cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
	member.
	* cppmacro.c (cpp_get_token): If expanding a macro while
	processing a directive, discard any comments we might encounter.
	(parse_params): If discard_comments_in_macro_exp is false,
	ignore comments in the macro parameter list.
	* gcc.c (cpp_unique_options): Add "-CC" option.
	(option_map): Map "--comments-in-macros" to "-CC".
	* doc/cppopts.texi: Document "-CC" option.
	* f/lang-specs.h: Add "-CC" option.
	* testsuite/gcc.dg/cpp/maccom1.c: New test.
	* testsuite/gcc.dg/cpp/maccom2.c: New test.
	* testsuite/gcc.dg/cpp/maccom3.c: New test.
	* testsuite/gcc.dg/cpp/maccom4.c: New test.
	* testsuite/gcc.dg/cpp/maccom5.c: New test.
	* testsuite/gcc.dg/cpp/maccom6.c: New test.

2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	PR middle-end/6180
	* reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.

2002-04-06  Mark Mitchell  <mark@codesourcery.com>

	PR c++/5571
	* stor-layout.c (layout_decl): Reset the RTL for the decl.

	PR opt/5120
	* sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
	RTX_UNCHANGING_P for the functions arguments when a tail call
	is made.

2002-04-06  Jason Merrill  <jason@redhat.com>

	* toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
	(parse_options_and_default_flags): Set them appropriately.
	* c-common.c (c_common_post_options): Don't set flag_really_no_inline.

2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
	here.

	* config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
	semicolon.

	* config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
	types come in by-reference.  Fix typo in comment.

2002-04-05  David S. Miller  <davem@redhat.com>

	* config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
	* config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
	sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
	{sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.

2002-04-05  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
	are not going to emit return instructions, emit at least a nop
	for the sake of sane backtraces.

2002-04-05  Richard Henderson  <rth@redhat.com>

	* doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).

2002-04-05  Jakub Jeilnek  <jakub@redhat.com>

	* mklibgcc.in: Use $tmpmapfile, not tmp-$@.

2002-04-05  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
	ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
	ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.

2002-04-05  Andreas Schwab  <schwab@suse.de>

	* c-convert.c: Include c-common.h.
	* Makefile.in (c-convert.o): Updated.

2002-04-05  Jakub Jelinek  <jakub@redhat.com>

	* mklibgcc.in: Use separate libgcc.map for each multilib.
	* Makefile.in (distclean): Don't remove libgcc.map here.

2002-04-05  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (s-mlib): Handle --disable-multilib by separate
	genmultilib invocation.

2002-04-04  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
	to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
	to num_gprs for symmetry.
	* config/mips/mips.c: Adjust accordingly.

2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (truthvalue_conversion): Rename, update.
	* c-common.h (c_common_truthvalue_conversion): New.
	* c-convert.c (convert): Update.
	* c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
	* c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
	* c-typeck.c (build_binary_op, build_unary_op,
	build_conditional_expr): Update.
	* fold-const.c (constant_boolean_node, fold): Use langhook.
	* langhooks-def.h (LANGHOOK_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New hook.
	* stmt.c (expand_decl_cleanup): Use langhook.
	* tree.h (truthvalue_conversion): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.

2002-04-05  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
	Add rules to make null object file.

2002-04-04  Jim Blandy  <jimb@redhat.com>

	* cppmacro.c (cpp_macro_definition): Do not emit spaces after
	macro formal parameter names.

2002-04-04  David S. Miller  <davem@redhat.com>

	* calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.

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

	PR middle-end/5099
	* stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
	Support copies into and out of memory.  Don't accept allows_reg
	and allows_mem as gospel.

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

	PR opt/6165
	* alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
	(write_dependence_p): Likewise.

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

	* predict.c (estimate_bb_frequencies): Do frequency calculation
	with a volatile temporary.

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

	* config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.

2002-04-04  Jakub Jelinek  <jakub@redhat.com>

	PR c++/6119
	* final.c (final_start_function): Don't bump profile_label_no here...
	(final_end_function): ...but here.

2002-04-04  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/sparc.md (pic): New attribute.
	(do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
	into stack slots.
	(split after do_builtin_setjmp_setup): New.

2002-04-04  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/6106
	* config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
	change.

2002-04-04  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
	UNITS_PER_WORD for zero sized aggregates.

2002-04-03  David S. Miller  <davem@redhat.com>

	* gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
	one-character spec for this, just use %(link_gcc_c_sequence).

2002-04-03  David S. Miller  <davem@redhat.com>

	* config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
	handling.

2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
	(DWARF_FRAME_RETURN_COLUMN): Move.
	(ASM_PREFERRED_EH_DATA_FORMAT): Define.
	(ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
	* pa.c (except.h, predict.h): Include.
	(FRP): Delete.
	(store_reg_modify, set_reg_plus_d): Revise prototypes.
	(output_ascii): Add cast.
	(store_reg_modify): Revise to add frame notes.
	(set_reg_plus_d): Likewise.
	(compute_frame_size): Include space for eh data registers in frame if
	the current function calls eh_return.
	(hppa_expand_prologue):  Ensure register %r2 is saved if the current
	function calls eh_return.  Save eh data registers if the current
	function calls eh_return.  Fix code to add frame notes.  Emit
	blockage to prevent insns with frame notes being scheduled in the
	delay slot of calls.
	(hppa_expand_epilogue): Restore eh data registers and do final stack
	adjustment if the current function calls eh_return.  Don't add frame
	notes.
	(output_call): Revise for change in length of call insn.  Don't do
	return pointer adjustment for an unconditional jump in the delay slot
	of a call when using frame notes.
	* pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
	(EH_RETURN_HANDLER_RTX): Use saved value on stack.
	(ARG_POINTER_CFA_OFFSET): Define.
	* pa.md (return_external_pic): New pattern.
	(prologue): Correct formatting.  Use return_external_pic if current
	function calls eh_return.
	(call_internal_symref, call_value_internal_symref,
	sibcall_internal_symref, sibcall_value_internal_symref): Change default
	lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
	respectively.
	(exception_receiver): Use hppa_pic_save_rtx () to restore pic register.

	* configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
	list of targets to check using "nop" insn.
	* configure: Rebuilt.

2002-04-04  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.

2002-04-03  David S. Miller  <davem@redhat.com>

	* gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
	library sequence passed to the linker.
	(LINK_COMMAND_SPEC): Use it.
	* doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
	a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
	* config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.

2002-04-03  Jason Merrill  <jason@redhat.com>

	* except.c (struct eh_status): Remove protect_list.
	(begin_protect_partials, end_protect_partials): Remove.
	(add_partial_entry): Remove.
	* except.h: Remove prototypes.

	* expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
	expand_decl_cleanup_eh.

	PR c++/5636
	* tree.h (CLEANUP_EH_ONLY): New macro.
	* stmt.c (expand_decl_cleanup_eh): New fn.
	(expand_cleanups): Check CLEANUP_EH_ONLY.
	* c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
	Use expand_decl_cleanup_eh.
	(expand_stmt): Adjust.
	* c-common.h: Adjust prototype.

2002-04-04  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_target_asm_function_prologue): Cast
	uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
	(cris_target_asm_function_epilogue): Ditto.
	(cris_initial_frame_pointer_offset): Ditto.
	(cris_simple_epilogue): Ditto.
	(cris_expand_builtin_va_arg): Variable-size types come in
	by-reference.

2002-04-03  David S. Miller  <davem@redhat.com>

	* config/sparc/crtfastmath.c (FPRS_NS): Get it right for
	little-endian.
	(set_fast_math): Correct 'fsr' type.

2002-04-03  Richard Henderson  <rth@redhat.com>

	PR opt/3569
	* langhooks.h (lang_hooks.decls.warn_unused_global): New.
	* toplev.c (check_global_declarations): Use it.
	* langhooks-def.h (lhd_warn_unused_global_decl): Declare.
	(LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
	(LANG_HOOKS_DECLS): Add it.
	* langhooks.c (lhd_warn_unused_global_decl): New.
	* c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
	* c-objc-common.c (c_warn_unused_global_decl): New.
	* c-tree.h (c_warn_unused_global_decl): Declare.
	* objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.

2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>

	* langhooks-def.h (lhd_set_decl_assembler_name,
	LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
	* langhooks.h (struct lang_hooks): New hook.
	* tree.c (set_decl_assembler_name): Move to langhooks.c.
	(lang_set_decl_assembler_name): Remove.
	(init_obstacks): Don't set hook.
	(decl_assembler_name): New function.
	* tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
	(decl_assembler_name): New.
	(lang_set_decl_assembler_name): Remove.

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

	* configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
	works properly with .hidden symbols.
	* configure: Rebuilt.
	* config.in: Rebuilt.
	* config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
	DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
	properly with .hidden symbols.

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

	PR middle-end/6102
	* df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
	USE argument.

2002-04-03  Richard Henderson  <rth@redhat.com>

	PR opt/4120
	* sched-rgn.c (sets_likely_spilled): New.
	(sets_likely_spilled_1): New.
	(add_branch_dependences): Use it.

2002-04-02  Richard Henderson  <rth@redhat.com>

	PR opt/4311
	* loop.h (LOOP_FIRST_PASS): New.
	* loop.c (strength_reduce): Mind it when deciding to unroll.
	* toplev.c (rest_of_compilation): Set it.

2002-04-02  David S. Miller  <davem@redhat.com>

	* config/sparc/sparc.md (ldd peephole2s): Fix final arg to
	mems_ok_for_ldd_peep when the order of the loads being examined
	is reversed.
	* config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
	existing comment to increase comprehension of this situation.

2002-04-02  Zack Weinberg  <zack@codesourcery.com>

	* config/sh/sh.md: Don't use union real_extract.

2002-04-02  Richard Henderson  <rth@redhat.com>

	* libgcc2.c (__bb_exit_func): Revert 03-31 change.

2002-04-02  David O'Brien  <obrien@FreeBSD.org>

	* config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
	i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
	i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
	i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
	i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
	i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
	i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
	i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
	i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
	i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
	i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
	i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
	i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
	i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
	Include as many configury headers via tm_file as possible.  This
	includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
	* config/openbsd-oldgas.h: New file.
	* config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
	config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
	config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
	config/i386/i386-coff.h, config/i386/i386-interix.h,
	config/i386/iscdbx.h, config/i386/linux-aout.h,
	config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
	config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
	config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
	config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
	config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
	config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
	config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
	config/i386/vxi386.h: Do not directly include configury headers.
	* config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
	Directly include configury headers that are no longer automatically
	included by the above headers.
	* config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
	* config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
	config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
	config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
	config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
	config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
	config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
	(TARGET_VERSION): Define.
	* config/i386/beos-elf.h, config/i386/freebsd.h,
	config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
	config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
	config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
	config/i386/sco5.h, config/i386/sysv4.h
	(TARGET_VERSION): Do not need to protect.
	* config/i386/freebsd64.h (TARGET_VERSION): Fix style.
	* config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
	config/i386/freebsd-aout.h, config/i386/i386-aout.h,
	config/i386/i386-interix.h, config/i386/linux-aout.h,
	config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
	config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
	(YES_UNDERSCORES): Do not define - not needed.
	* config/i386/bsd.h, config/i386/gas.h (LPREFIX,
	ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
	USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
	* config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
	(LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
	USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
	* config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
	* config/i386/isccoff.h, config/i386/v3gas.h: Remove.

2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
	    Richard Henderson  <rth@redhat.com>

	PR c/5484
	* function.c (assign_temp): Accept either type or decl argument.
	Detect variables whose size is too large to fit into an integer.
	* stmt.c (expand_decl): Pass the decl, not the type.

2002-04-02  David O'Brien  <obrien@FreeBSD.org>

	* protoize.c: Match include directory usage with cppdefault.c.

2002-04-03  Jeffrey A Law  (law@redhat.com)
	    Hans-Peter Nilsson  <hp@bitrange.com>

	* combine.c (simplify_comparison): Avoid narrowing a comparison
	with a paradoxical subreg when doing so would drop signficant bits.

2002-04-02  Steve Ellcey  <sje@cup.hp.com>

	* builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
	if POINTERS_EXTEND_UNSIGNED is defined.

2002-04-02  Richard Henderson  <rth@redhat.com>

	PR opt/3967
	* local-alloc.c (contains_replace_regs): LO_SUM may contain
	replace regs.

2002-04-02  Richard Henderson  <rth@redhat.com>

	* doc/standards.texi: Document required freestanding libc entry points.

2002-04-02  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
	associated splitter.  Remove MQ constraint.
	(ctrdi_internal4): Correct CCmode clobber.

2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* milli64.S ($$dyncall): New function.
	* t-linux (LIB1ASMFUNCS): Revise module list.
	(LIB1ASMSRC): Use pa/milli64.S.

2002-04-02  Richard Henderson  <rth@redhat.com>

	* fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
	rename solaris_sys_varargs_h.

Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
	the same mode as its component.

2002-04-02  Richard Henderson  <rth@redhat.com>

	PR opt/190
	* final.c (this_is_asm_operands): Export.
	* output.h (this_is_asm_operands): Declare.
	* config/i386/i386.c (print_operand): Error odd asm operands.

2002-04-02  Richard Henderson  <rth@redhat.com>

	PR opt/420
	* config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.

2002-04-01  Richard Henderson  <rth@redhat.com>

	PR target/1538
	* fixinc/inclhack.def (solaris_sys_varargs_h): New.
	* fixinc/fixincl.x: Rebuild.

2002-04-01  Richard Henderson  <rth@redhat.com>

	* config/ia64/unwind-ia64.c: Include ia64intrin.h.
	(atomic_alloc, atomic_free): New.
	(SIZE, MASK_FOR, PTR_IN): New.
	(emergency_reg_state, emergency_reg_state_free): New.
	(emergency_labeled_state, emergency_labeled_state_free): New.
	(reg_state_alloced, labeled_state_alloced): New.
	(alloc_reg_state, free_reg_state): New.
	(alloc_label_state, free_label_state, free_label_states): New.
	(push, pop, dup_state_stack, free_state_stack): Use them.
	(desc_label_state): Likewise.
	(uw_frame_state_for): Free label states and state stack.
	(uw_update_reg_address): Eliminate warnings.

2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>

	* config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
	ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.

2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-decl.c (grokdeclarator): Update.
	* c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
	* c-tree.h (c_mark_addressable): New.
	* c-typeck.c (default_function_array_conversion, build_unary_op,
	build_array_ref, convert_for_assignment): Update.
	(mark_addressable): Rename.
	* calls.c (try_to_integrate, expand_call): Use langhook.
	* expr.c (expand_expr): Use langhook.
	* langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New hook.
	* stmt.c (expand_asm_operands): Use langhook.
	* tree.h (mark_addressable): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.

2002-04-01  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
	in previous change.

2002-04-01  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
	for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).

2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (unsigned_conversion_warning, convert_and_check,
	unsigned_type, signed_type, shorten_compare,
	c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
	(unsigned_type, signed_type, signed_or_unsigned_type): Rename.
	* c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
	New.
	* c-decl.c (grokdeclarator): Update.
	* c-format.c (check_format_types): Update.
	* c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
	* c-typeck.c (build_binary_op, convert_for_assignment): Update.
	* convert.c (convert_to_integer): Use new hooks.
	* expmed.c (make_tree): Use new hooks.
	* expr.c (store_expr): Use new hooks.
	* fold-const.c (operand_equal_for_comparison_p, build_range_check,
	all_ones_mask_p, unextend, fold): Use new hooks.
	* langhooks.h (struct lang_hooks_for_types): New hooks.
	* tree.h (signed_or_unsigned_type, signed_type,
	unsigned_type): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
	LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.

2002-03-31  Richard Henderson  <rth@redhat.com>

	* config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
	(desc_frgr_mem): Fix reference to f16-f31.

2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
	RTVEC_ELT): Const-ify.
	* varray.h (VARRAY_CHECK): Const-ify.
	* ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
	ggc_mark_rtvec, ggc_mark): Const-ify.

2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>

	* diagnostic.c: Include langhooks-def.h.
	* Makefile.in (diagnostic.o): Update.

2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (c_unsafe_for_reeval): Rename.
	* c-common.h (c_unsafe_for_reeval): Rename.
	* c-decl.c (finish_incomplete_decl): Rename.
	(c_init_decl_processing): Don't set langhook.
	* c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
	LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
	* c-objc-common.c (c_objc_common_init): Don't set langhook.
	* c-tree.h (finish_incomplete_decl): Rename.
	* langhooks-def.h (lhd_unsafe_for_reeval): New.
	(LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_unsafe_For_reeval): New.
	* langhooks.h (struct langhooks): New hooks.
	* toplev.c (incomplete_decl_finalize_hook): Remove.
	(wrapup_global_declarations): Update.
	* tree.c (lang_unsafe_for_reeval): Remove.
	(unsafe_for_reeval): Update.
	* tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
	Remove.
objc:
	* objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
	LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.

2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>

	* diagnostic.c (print_error_function): Remove.
	(default_print_error_function): Rename.
	(report_error_function): Update.
	* diagnostic.h (print_error_function): Remove.
	(default_print_error_function): Remove.
	* langhooks-def.h (struct diagnostic_context): Predeclare.
	(lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct diagnostic context): Predeclare.
	(struct lang_hooks): New hook.

2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
	(PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
	!flag_pic.
	(CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
	* config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
	of PIC_OFFSET_TABLE_REGNUM thruout.
	* config/rs6000/rs6000.md: Likewise.
	* config/rs6000/darwin.h: Likewise.

Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* emit-rtl.c (adjust_address_1, offset_address): Cast value to
	unsigned HOST_WIDE_INT, not unsigned int.

2002-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/6096, middle-end/6098, middle-end/6099
	* reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
	CODE_LABELs.
	(fill_slots_from_thread): Likewise.

2002-03-31  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/sparc.c (function_arg_record_value_1): Pass complex
	floating fields in float regs.
	(function_arg_record_value_2): Likewise.

2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.md (define_constants): Remove misleading
	FIXME.  Add MMIX_fp_rO_OFFSET.
	("nonlocal_goto_receiver"): Don't have stack-frame address of
	saved rO as part of the pattern.  Remove FIXME.
	("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
	here, at output-time.

2002-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/6100
	* config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
	REG_BR_PRED.
	(output_v9branch): Likewise.

2002-03-31  Alexandre Oliva  <aoliva@redhat.com>

	* gcc.c: Revert previous patch for now.
	* config/i386/djgpp.h: Likewise.

2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/crti.asm (_init): Register _fini with atexit.
	* config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".

2002-03-31  Richard Henderson  <rth@redhat.com>

	PR target/3997
	* config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
	(ASM_OUTPUT_DEF_FROM_DECLS): New.

2002-03-31  Richard Henderson  <rth@redhat.com>

	* libgcc2.c (__bb_exit_func): Make static.

	* config/alpha/alpha.md (trap): New.

2002-03-31  Richard Henderson  <rth@redhat.com>

	* builtins.c (expand_builtin_va_arg): Give warnings not errors for
	promoted argument types; build trap.
	(expand_builtin_trap): New.
	(expand_builtin): Use it.
	* stmt.c (expand_nl_goto_receivers): Likewise.
	* expr.h (expand_builtin_trap): Declare.
	* libfuncs.h (LTI_abort, abort_libfunc): New.
	* optabs.c (init_optabs): Init abort_libfunc.

2002-03-31  Alexandre Oliva  <aoliva@redhat.com>

	* gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
	(LINK_COMMAND_SPEC): ... from here.
	(init_gcc_specs): Duplicate it here too, omitting
	shared_name in the second copy.
	(init_spec): Test for duplicate
	* config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.

2002-03-30  David S. Miller  <davem@redhat.com>

	* config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
	* config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.

2002-03-30  Roger Sayle <roger@eyesopen.com>
	    Richard Henderson  <rth@redhat.com>

	* regmove.c (combine_stack_adjustments_for_block): Avoid
	emitting a stack adjustment of zero bytes.  Let delete_insn
	update bb->head.

2002-03-30  Richard Henderson  <rth@redhat.com>

	* config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
	(sparc_emitting_epilogue): New.
	(leaf_label, output_return, sparc_return_peephole_ok): Remove.
	* config/sparc/sparc-protos.h: Update.
	* config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
	(TARGET_SWITCHES): Update.
	* config/sparc/sparc.md (return): Remove.
	(return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
	* config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
	config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
	config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
	config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
	config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
	config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
	Remove MASK_EPILOGUE.
	* doc/invoke.texi: Update.

2002-03-30  Daniel Berlin  <dan@dberlin.org>

	* dwarf2out.c (dwarf2out_define): Remove start_source_file call,
	CPP will start the file for us.

2002-03-30  Richard Henderson  <rth@redhat.com>

	PR target/5446
	* config/ia64/ia64.c (group_barrier_needed_p): Special case
	prologue_allocate_stack.
	(ia64_single_set): Use insn codes for recognition of special
	cases, not rtl matching.
	* config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.

Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.

2002-03-30  Richard Henderson  <rth@redhat.com>

	PR target/6032
	* config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
	or -fomit-frame-pointer with profiling.
	(SUBTARGET_OVERRIDE_OPTIONS): Remove.
	(FUNCTION_PROFILER): Do nothing.
	(PROFILE_HOOK): New.
	* config/sparc/sparc.c (sparc_override_options): Don't check
	code models for profiling.
	(sparc_function_profiler): Remove.
	(sparc_profile_hook): New.
	* config/sparc/sparc-protos.h: Update.

2002-03-30  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/6086
	* combine.c (combine_simplify_rtx): If simplify_rtx failed because
	of SUBREG of volatile MEM or because the MEM was mode dependent,
	return CLOBBER instead of unmodified SUBREG.

Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>

	* local-alloc.c (local_alloc): Avoid call of update_equiv_regs
	when not optimizing.

	* toplev.c (rest_of_compilation): Cann mark_constant_function
	only when optimizing.

	* flow.c (calculate_global_regs_live): Ensure that all AUX fields
	are NULL.

	* cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
	(thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
	(try_optimize_cfg): clear all AUX fields.

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

2002-03-29  Richard Henderson  <rth@redhat.com>

	PR target/5672
	* expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.

2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
	for aggregate and TFmode types.

2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].

2002-03-29  Richard Henderson  <rth@redhat.com>

	PR target/5886
	* config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
	* config/ia64/hpux.h, config/ia64/linux.h: Likewise.

2002-03-29  Richard Henderson  <rth@redhat.com>

	PR target/6041
	* config/i386/i386.c (x86_arch_always_fancy_math_387): New.
	(override_options): Disable NO_FANCY_MATH_387 if the arch allows.
	* config/i386/i386.h (x86_arch_always_fancy_math_387): New.
	* config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
	conditional.
	* docs/invoke.texi: Update -mno-fancy-math-387 docs.

2002-03-29  Dale Johannesen <dalej@apple.com>

	* loop.c (combine_movables): Do allow combination of pseudos.

2002-03-29  Loren J. Rittle  <ljrittle@acm.org>

	* config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
	* config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
	No functional change except ...
	* config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
	* doc/install.texi (*-*-freebsd*): Document port configuration.

2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (convert.o, calls.o, expmed.o): Update.
	* attribs.c (handle_mode_attribute, handle_vector_size_attribute):
	Use new hooks.
	* builtin-types.def (BT_PTRMODE): Update.
	* c-common.c (type_for_size): Rename c_common_type_for_size.
	(type_for_mode): Similarly.
	(shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
	Use new hook.
	* c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
	* c-decl.c (finish_enum, build_enumerator): Use new hooks.
	* c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
	Redefine.
	* c-typeck.c (common_type, comptypes, default_conversion):
	Use new hooks.
	* calls.c: Include langhooks.h.
	(emit_library_call_value_1): Use new hooks.  Avoid redundant
	calls.
	* convert.c: Include langhooks.h
	(convert_to_pointer, convert_to_integer): Use new hooks.
	* except.c (init_eh): Similarly.
	* expmed.c: Include langhooks.h.
	(expand_mult_add): Use new hooks.
	* expr.c (store_expr, store_constructor, expand_expr, do_jump,
	try_casesi): Similarly.
	* fold-const.c (optimize_bit_field_compare, make_range,
	decode_field_reference, fold_truthop, fold): Similarly.
	* function.c (assign_stack_local_1, assign_stack_temp_for_type,
	put_var_into_stack): Similarly.
	* langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
	LANG_HOOKS_TYPE_FOR_SIZE): New.
	(LANG_HOOKS_TYPES_INITIALIZER): Update.
	* langhooks.h (lang_hooks_for_types): New hooks.
	* stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
	* tree.c (get_unwidened, get_narrower): Similarly.
	* tree.h (type_for_mode, type_for_size): Remove.
	* varasm.c (force_const_mem): Use new hooks.
	* utils2.c (nonbinary_modular_operation): Update.
objc:
	* objc-act.c (handle_impent): Update.
	* objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
	Redefine.

2002-03-29  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
	* config/ia64/ia64.c (basereg_operand): New.
	* config/ia64/ia64-protos.h (basereg_operand): Declare.
	* config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.

2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
	unwind information when frame_pointer_needed.
	(mmix_assemble_integer): Tweak wording in comment.

2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (except.o): Update.
	* except.c: Include langhooks.h.
	(init_eh): Use langhook.
	* langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
	LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (lang_hooks_for_types): New.
	(struct lang_hooks): Add it.
	* tree.c (make_lang_type_fn, make_lang_type): Remove.
	* tree.h (make_lang_type_fn, make_lang_type): Remove.
config:
	* alpha/alpha.c: Include langhooks.h.
	(alpha_build_va_list): Use langhook.
	* d30v/d30v.c: Include langhooks.h.
	(d30v_build_va_list): Use langhook.
	* i386/i386.c: Include langhooks.h.
	(ix86_build_va_list): Use langhook.
	* rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
	* s390/s390.c: Include langhooks.h.
	(s390_build_va_list): Use langhook.
	* stormy16/stormy16.c: Include langhooks.h.
	(stormy16_build_va_list): Use langhook.

2002-03-29  Jakub Jelinek  <jakub@redhat.com>

	PR c++/5964
	* config/sparc/sparc.md (empty_delay_slot, branch_type): New
	attributes.
	(length): Compute variable length for branches/calls/jumps here.
	(branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
	normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
	define branch_type attribute.
	(divsi3_sp32): Maximum length is 6 not 7.
	(call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
	call_address_untyped_struct_value_sp32,
	call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
	* config/sparc/sparc.c (empty_delay_slot): New function.
	* config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
	* config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.

2002-03-29  Jakub Jelinek  <jakub@redhat.com>

	* combine.c (set_nonzero_bits_and_sign_copies): Don't call
	nonzero_bits if not needed.
	(nonzero_bits) [XOR]: Likewise.
	(nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
	reg_last_set_mode and mode are both MODE_INT, but not equal.
	(record_value_for_reg): Compute reg_last_set_nonzero_bits
	in nonzero_bits_mode for MODE_INT modes.

2002-03-28  Richard Henderson  <rth@redhat.com>

	PR target/5715
	* config/alpha/osf.h (ASM_SPEC): Don't pass any special options
	to GAS.  Correct drift between alternatives.

2002-03-28  Richard Henderson  <rth@redhat.com>

	PR target/6087
	* reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.

2002-03-28  Alexandre Oliva  <aoliva@redhat.com>

	* config/i386/freebsd.h (LINK_SPEC): Don't pass default
	emulation to the linker.

2002-03-28  Loren J. Rittle  <ljrittle@acm.org>

	* config/alpha/freebsd.h (LINK_SPEC): Likewise.
	* config/sparc/freebsd.h (LINK_SPEC): Likewise.

Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)

	* combine.c (simplify_and_const_int): Make sure to apply mask
	when force_to_mode returns a constant integer.  PR3311.

2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa-linux.h (LOCAL_LABEL_PREFIX): Define.

2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
	and Objective-C Dialect Options.

2002-03-28  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
	comparison should be done vs !=0 not >0 return code.  Tidy cases.

2002-03-28  Richard Henderson  <rth@redhat.com>

	* c-decl.c (finish_function): New arg can_defer_p.  Pass it
	on to c_expand_body.
	* c-tree.h (finish_function): Update decl.
	* c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.

Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>

	* ifcvt.c (if_convert): Clear aux_for_blocks early enough.

Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>

	* rtlanal.c: Include flags.h
	(may_trap_p): Do not mark FP operations if trapping
	if !flag_trapping_math
	* Makefile.in (rtlanal.o): Add dependency on flag.h
	* ifcvt.c (noce_operand_ok): Avoid the lameness.

2002-03-27  Zack Weinberg  <zack@codesourcery.com>

	* mips.md: Use dconst1, not 1.0, as first argument of
	REAL_VALUE_LDEXP.  Don't use union real_extract.

2002-03-28  Alan Modra  <amodra@bigpond.net.au>

	* configure.in (gcc_cv_as): Use $target_alias in directory searchs
	rather than $target.  Heed program_prefix and
	program_transform_name.  Search for gas in cross-compiler case too.
	"test -x" rather than "test -f".
	(gcc_cv_ld): Likewise.
	(gcc_cv_nm): Heed program_prefix and program_transform_name.
	(gcc_cv_objdump): Likewise.
	* configure: Regenerate.

2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (attribs.o): Update.
	* attribs.c: Include langhooks.h.
	(decl_attributes): Use langhook.
	* c-decl.c (insert_default_attributes): Rename.
	* c-tree.h (c_insert_default_attributes): New.
	* langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New hook.
	* tree.h (insert_default_attributes): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.

2002-03-27  Andreas Schwab  <schwab@suse.de>

	* config/i386/i386.c (classify_argument): Also check for
	QUAL_UNION_TYPE.

2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
	any more.

Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i960.md (ret): Set PC.
	(nonlocal_goto): Fix expander.
	* builtins.c (epxand_builin_longjmp): Check that we've emitted
	some jump or call.

Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>

	* optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
	of libcall regions.

Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>

	* cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
	assigning to BLOCK_FOR_INSN directly.

Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.

2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.c (c_expand_expr): Fix prototype.
	* c-common.h (c_expand_expr): Always declare, update.
	* c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
	* c-objc-common.c (c_objc_common_init): No global hook.
	* expr.c (expand_expr): Use langhook.
	* expr.h (enum expand_modifier): Conditionally declare.
	* langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_expand_expr): New.
	* langhooks.h (struct lang_hooks): New hook.
	* toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
	(lang_independent_init): Don't default hook.
objc:
	* objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.

2002-03-27  Richard Henderson  <rth@redhat.com>

	PR target/6054
	* config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
	TARGET_CONST_GP.  Simplify conditions.

2002-03-27  Richard Henderson  <rth@redhat.com>

	* config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
	config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
	config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.

2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
	TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
	(MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
	Remove unnecessary masks.
	(MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
	(SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
	-mwindows, -mdll switches and their negations.

2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>

	* gcc-common.c (lang_mark_false_label_stack): Remove.
	* ggc.h (lang_mark_false_label_stack): Similarly.

2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>

	* pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.

	* pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
	or __rtems_ is defined.

2002-03-26  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
	if a non-trivial load was emitted.
	(alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
	in high+extra+low case.

2002-03-26  Richard Henderson  <rth@redhat.com>

	* config.gcc (sparc*-solaris): Use float_format=sparc.

2002-03-26  Richard Henderson  <rth@redhat.com>

	* config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
	* config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
	* config/sparc/linux.h, config/sparc/linux64.h: Likewise.
	* config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
	(WINT_TYPE_SIZE): Fix at 32.

2002-03-26  Richard Henderson  <rth@redhat.com>

	* toplev.c (rest_of_compilation): Delay emit_initial_value_sets
	until after eh landing pad generation.
	* config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
	* config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.

2002-03-26  Richard Henderson  <rth@redhat.com>

	* expr.h (ADD_PARM_SIZE): One more convert for INC.

2002-03-26  Phil Edwards  <pme@gcc.gnu.org>

	* gcc.c (cpp_options):  Preserve relative ordering of -pedantic
	and warning switches.
	(cc1_options):  Likewise.

2002-03-26  Hans Boehm <Hans_Boehm@hp.com>

	* config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
	Restore more of the signal context.  Set no_reg_stack_frame.
	* config/ia64/unwind-ia64.c (unw_state_record):
	Add no_reg_stack_frame, comments.
	(uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
	(uw_update_context): Adjust bsp when unwinding from leaf,
	but not signal frame.

2002-03-26  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix51.h (WCHAR_TYPE): Define.

2002-03-26  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.

2002-03-26  Richard Earnshaw  <rearnsha@arm.com>

	PR target/5621
	* arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
	"Add a pool_range attribute", which was lost during the ARM/Thumb
	merge.

2002-03-26  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
	a register into the MAC16 accumulator.

2002-03-26  Andrew Cagney  <ac131313@redhat.com>

	* doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
	(Warning Options): Document -Wswitch-enum.
	* toplev.c (W_options): Add -Wswitch-enum.  Update comment on
	-Wswitch.
	(warn_switch_enum): Define variables.
	* flags.h (warn_switch_enum): Declare variables.
	* stmt.c (expand_end_case_type): When warn_switch_enum /
	-Wswitch-enum, perform switch checks.
	Fix PR c/5044.

2002-03-26  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
	(reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
	(reload_muladdsi_compare0_scratch): Delete.

2002-03-26  Loren J. Rittle  <ljrittle@acm.org>

	* doc/install.texi (*-*-freebsd*): Update.

2002-03-26  Richard Henderson  <rth@redhat.com>

	* expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
	(SUB_PARM_SIZE): Cast DEC to ssizetype.

	* config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
	types from the normal argument frame.

	* config/sparc/sparc.c (function_arg_pass_by_reference): Pass
	variable sized objects by reference.
	(sparc_va_arg): Receive them by reference too.

2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>

	* config/s390/s390.c (s390_emit_epilogue): Change epilogue
	code to not restoring global registers.

2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (ggc-common.o): Update.
	* c-decl.c (lang_mark_tree): Rename c_mark_tree.
	* c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
	* c-tree.h (c_mark_tree): New.
	* ggc-common.c: Include langhooks.h.
	(gcc_mark_trees): Use new langhook.
	* ggc-callbacks.c: Delete file.
	* ggc.h (lang_mark_tree): Remove.
	* langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New hook.
objc:
	* objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.

2002-03-25  Zack Weinberg  <zack@codesourcery.com>

	* doc/cpp.texi: Exclude entire Top node from printed manual.
	Move option index after directive index.  Insert page breaks
	before GFDL and concept index.  Index environment variables
	with command line options.
	* doc/cppenv.texi: Use @vtable for environment variable list.
	Add paragraph explaining semantics of empty elements in path
	variables.  Exclude a cross-reference to Fishkill from the
	manpage.  Remove an unnecessary cross-reference of the entry
	right above the referer.  Don't use @anchor in text that goes
	into manpage.
	* doc/cppopts.texi: Cross-reference the environment variables
	section, not the specific environment variable, for consistency.

2002-03-25  Richard Henderson  <rth@redhat.com>

	* recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
	anywhere in the block.  Don't refer to insns that have been
	removed from the chain.  Iterate backward through the new insns.
	Don't refer to edges that have been removed.

2002-03-26  Alan Modra  <amodra@bigpond.net.au>

	* combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
	test for overflow of constant.

2002-03-25  Richard Earnshaw  <rearnsha@arm.com>

	PR target/2623
	* arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
	(loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
	these patterns on arm_archv4.

2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>

	* config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
	int".

2002-03-25  Zack Weinberg  <zack@codesourcery.com>

	* toplev.c: Don't include setjmp.h.  Kill float_handler_set,
	float_handled, float_handler, float_signal, set_float_handler,
	and do_float_handler.  Set handler for SIGFPE to crash_signal.
	* toplev.h: Don't prototype do_float_handler.

	* c-lex.c: Fold parse_float into lex_number.  Make warning
	about portability of hex float constants more informative, and
	don't issue it on top of a syntax error.
	* fold-const.c: Fold const_binop_1 and fold_convert_1 into
	their callers.
	* real.h: Define REAL_VALUE_ABS here...
	* simplify-rtx.c: ... not here.  Fold check_fold_consts,
	simplify_unary_real, simplify_binary_real, and
	simplify_binary_is2orm1 into their callers.
	* tree.c: Fold build_real_from_int_cst_1 into caller.

	* doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.

	* tsystem.h: Include float.h here...
	* libgcc2.c: ... not here.

2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>

	Fixes for: PR bootstrap/3591, target/5676
	* config/mcore/mcore.h (CC1_SPEC): Define only if not already
	defined.  Do not disable exceptions or rtti.
	* config/mcore/mcore-pe.h (CC1_SPEC): Define before including
	mcore.h.  Disable exceptions and rtti, since they are not
	supported by EPOC.

2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-decl.c (maybe_build_cleanup): Remove.
	* expr.c (expand_expr): Use langhook.
	* langhooks-def.h (lhd_return_null_tree,
	LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
	(LANGHOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_return_null_tree): New.
	* langhooks.h (struct lang_hooks): New hook.
	* tree-inline.c (initialize_inlined_parameters): Use langhook.
	* tree.h (maybe_build_cleanup): Remove.

2002-03-25  Jakub Jelinek  <jakub@redhat.com>

	* regrename.c (build_def_use): Move recog_memoized
	before extract_insn.

2002-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR target/6043
	* expr.c (emit_group_store): Handle storing into CONCAT.

2002-03-25  Jakub Jelinek  <jakub@redhat.com>

	* regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
	corresponding MATCH_DUP.

2002-03-24  Richard Henderson  <rth@redhat.com>

	* unroll.c (unroll_loop): Zero label_map.

	* gcse.c: Include except.h.
	* Makefile.in (gcse.o): Update.

2002-03-24  Richard Henderson  <rth@redhat.com>

	* varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
	Do resolve_unique_section before shared data clause.

2002-03-24  Richard Henderson  <rth@redhat.com>

	* config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.

2002-03-24  Richard Henderson  <rth@redhat.com>

	* recog.c (peephole2_optimize): Split blocks when EH insns are
	generated in the middle of a block.  Do global life update if
	zapped EH edges.

2002-03-24  Richard Henderson  <rth@redhat.com>

	* mips.c (mips_function_value): Only promote_mode for non-libcalls.

2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>

	preprocessor/3951
	* gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
	* cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
	(init_dependency_output): Don't make no_output decision here.

2002-03-24  Andrew Cagney  <ac131313@redhat.com>

	* stmt.c (check_for_full_enumeration_handling): Remove tests of
	warn_switch.  Update description.
	(expand_end_case_type): Call check_for_full_enumeration_handling
	when warn_switch.

2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
	(m68hc11_split_move): Call it to see if the source and destination
	operands use the same direction auto inc/dec mode, otherwise make the
	source an offsetable memory operand and generate an add.

2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
	register for operand 2.
	("*subsi3_zero_extendqi"): Likewise.
	("*iorhi3_gen"): Do the operation on the upper bits and then lower
	bits so that it is compatible with a pop.
	("*andhi3_gen"): Likewise.
	("xorhi3"): Likewise.

2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c (cpp_handle_option): Set warn_endif_labels if
	-pedantic here...
	(cpp_post_options): ... not here.

2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
	    Aldy Hernandez  <aldyh@redhat.com>

	Removal of separate preprocessor cpp0.

	* Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
	cpp0, install-common): Update.
	* c-common.c (flag_preprocess_only): New.
	(c_common_init): Preprocess for -E.
	* c-common.h (flag_preprocess_only): New.
	* c-decl.c (c_decode_option): Handle -E and -std=c++98.
	* c-objc-common.c (c_init_decl_processing): Exit quickly
	for NULL return from c_common_init.
	* cpplib.h (cpp_preprocess_file): New.
	* cppmain.c (main, general_init, pfile, progname): Remove.
	(do_preprocessing): Rename cpp_preprocess_file, don't call
	cpp_finish.  Don't close stdout here.
	(setup_callbacks): Update prototype.
	* gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
	Update.
	* tradcpp.c (main): Ignore -quiet.
objc:
	* lang-specs.h (default_compilers): Preprocess with cc1obj.

2002-03-24  Richard Henderson  <rth@redhat.com>

	PR optimization/5742
	* machmode.def: Add inner mode field to complex modes.
	* config/mips/mips.c (mips_function_value): Always define.  Add
	new argument to handle libcalls.
	* config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
	(FUNCTION_VALUE): Likewise.
	* config/mips/abi64.h (FUNCTION_VALUE): Remove.
	* config/mips/mips-protos.h: Update.

2002-03-23  Richard Henderson  <rth@redhat.com>

	* config/sparc/sparc.c (sparc_emit_floatunsdi): New.
	* config/sparc/sparc-protos.h: Update.
	* config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.

2002-03-23  Richard Henderson  <rth@redhat.com>

	* config/sparc/gmon-sol2.c (internal_mcount): Assume either
	_start or _init begins the text segment.

2002-03-23  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
	not HOST_WIDEST_INT.
	(RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.

2002-03-23  Richard Earnshaw  <rearnsha@arm.com>

	PR java/5489
	* arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
	operand argument to output_return_instruction.
	* arm.c (arm_print_operand, case 'd'): If the operand is
	const_true_rtx then just return.
	(arm_print_operand, case 'D'): If the operand is const_true_rtx
	then abort.

2002-03-23  Andrew Cagney  <ac131313@redhat.com>

	* doc/invoke.texi (Option Summary): Mention -Wswitch-default.
	(Warning Options): Document -Wswitch-default.
	* toplev.c (W_options): Add -Wswitch-default.  Update comment on
	-Wswitch.
	(warn_switch_default): Define variable.
	(warn_switch): Update comment.
	* flags.h (warn_switch_default): Declare variable.
	(warn_switch): Update comment.
	* stmt.c (expand_end_case): Check for and, when
	warn_switch_no_default, warn of a missing default case.

2002-03-23  Alan Modra  <amodra@bigpond.net.au>

	* real.h (N): Special case 128 bit doubles.

	* combine.c (simplify_comparison): When widening modes, ignore
	sign extension on CONST_INTs.

2002-03-22  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (print_operand): Fix incorrect mode
	passed to adjust_address.  Fix comment formatting.


2002-03-22  Zack Weinberg  <zack@codesourcery.com>

	* real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
	Always make REAL_VALUE_TYPE a struct containing an array of
	HOST_WIDE_INT, not a double.  Tidy up the code deciding how
	big it is.  Don't declare or use union real_extract.

	* emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
	decode_rtx_const, output_constant_pool), config/a29k/a29k.c
	(print_operand), config/arm/arm.c (output_move_double),
	config/arm/arm.md (consttable_4, consttable_8),
	config/romp/romp.c (output_fpops), config/s390/s390.h
	(ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
	(xtensa_output_literal): Don't use union real_extract.

	* config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
	(sfmode_constant_to_ulong), config/ns32k/merlin.h
	(PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
	config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
	(PRINT_OPERAND): Don't use local version of union
	real_extract.

	* config/convex/convex.c (check_float_value), config/vax/vax.c
	(vax_float_literal), config/m88k/m88k.md (divdf3),
	config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
	config/pdp11/pdp11.c (output_move_quad): Don't do host
	arithmetic on target floating point quantities.

	* config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
	(output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.

	* fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
	Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.

	* real.c (earith): Test INFINITY rather than REAL_INFINITY;
	NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
	INFINITY.
	* print-rtl.c (print_rtx): Disable code which needs
	floating-point emulator.
	* libgcc2.c: Include float.h and use DBL_MANT_DIG,
	FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
	depending on HOST_FLOAT_FORMAT to be defined properly.

	* config/1750a/1750a.c (get_double, float_label): Delete.
	(print_operand): Delete huge commented-out chunk.  Use
	REAL_VALUE_TO_DECIMAL.
	* config/1750a/1750a-protos.h: Delete prototypes of deleted
	functions.
	* config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
	IEEE_FLOAT_FORMAT.
	* config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
	Use REAL_VALUE_TO_DECIMAL as ELF version does.
	* config/m88k/m88k.c (real_power_of_2_operand,
	legitimize_operand): Take the REAL_VALUE_TYPE and/or union
	real_extract out of the union; run the input through
	REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
	from that into the union.
	* config/pdp11/pdp11.c (output_move_double): Rearrange
	parentheses to make automatic indenter happy.

	* doc/tm.texi (Cross-compilation): Rename node to "Floating
	Point" and rewrite to describe current situation.  Also adjust
	documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
	match code.
	* doc/rtl.texi: Adjust cross reference.

2002-03-22  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
	(xtensa_valid_move, xtensa_preferred_reload_class): Define.
	* config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
	(xtensa_valid_move, xtensa_preferred_reload_class): Define to
	prevent use of sp as a reload register.
	(xtensa_emit_move_sequence): Use xtensa_valid_move instead of
	non_acc_reg_operand.
	* config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
	(PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
	* config/xtensa/xtensa.md (movsi_internal, movhi_internal,
	movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.

2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
	* cpplex.c (unterminated): Delete.
	(parse_string): No string literal may extend over multiple
	lines.  Suppress the error when preprocessing assembly.
	* cppmain.c (scan_translation_unit): Strings are single-line.

	* doc/cpp.texi: Update to match.

2002-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/5854
	* config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
	Shut up warnings.
	(CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
	(EXTRA_CONSTRAINT): Use S for non-push memory operand.
	* config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
	const0 if scratch register was not allocated.
	(m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
	m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
	with GEN_INT (...).
	(m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
	* config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
	with GEN_INT (...) everywhere.  Remove constraints in define_split
	patterns.
	(movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
	require scratch register for setting 0 into regs/non-pushable memory.

2002-03-22  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (MASK_RETURN_ADDR): Define.
	(TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.

2002-03-22  Phil Edwards  <pme@gcc.gnu.org>

	* cpplib.h (struct cpp_options):  New member, warn_endif_labels.
	* cppinit.c (cpp_create_reader):  On by default.
	(cpp_handle_option):  Handle -W[no-]endif-labels.
	(cpp_post_options):  Also enable if -pedantic.
	* cpplib.c (do_else):  Use it.
	(do_endif):  Likewise.
	* doc/cppopts.texi:  Document new option.
	* doc/invoke.texi:  Document new option.

2002-03-22  Lars Brinkhoff  <lars@nocrew.org>

	* config/i386/i386.c, config/i386/i386.md: Change all occurences
	of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).

2002-03-22  Alexandre Oliva  <aoliva@redhat.com>

	* flow.c (calculate_global_regs_live): Clear aux fields of
	ENTRY and EXIT.

2002-03-22  Jakub Jelinek  <jakub@redhat.com>

	* config/v850/v850.c (v850_reorg): Only call alter_subreg on
	REG or MEM subregs, pass rtx * instead of rtx to it.
	* config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
	rtx * instead of rtx to alter_subreg.
	* config/m32r/m32r.c (gen_split_move_double): Likewise.
	* config/pj/pj.c (pj_output_rval): Likewise.

2002-03-22  Richard Henderson  <rth@redhat.com>

	PR target/3177
	* config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
	(INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
	* config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
	(ia64_expand_prologue): Look at int_regs, not words, for number
	of incomming int regs.

2002-03-22  Andrew MacLeod  <amacleod@redhat.com>

	* expr.c (expand_expr): A RESULT_DECL is part of a call.

Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (flag_loop_optimize, flag_crossjumping):
	New static variables.
	(rest_of_compilation): Conditionalize crossjumping and
	loop optimizer.
	(parse_options_and_default_flags): Default loop_optimize and
	crossjumping.
	(lang_independent_options): Add -fcrossjumping and -floop-optimize
	* invoke.texi (crossjumping, loop-optimize): Document.

2002-03-22  Richard Sandiford  <rsandifo@redhat.com>

	* real.c (eiisneg): Move outside #ifdef NANS.

Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (outgoing_edges_math): Fix condition; relax
	frequencies match; avoid match on different loop depths.
	(try_crossjump_to_bb): Kill tests that no longer brings time
	savings.
	* cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
	updating code.
	(split_edge): Likewise.

	* flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
	variable.

	* Makefile.in (cfgrtl): Add insn-config.h depenendency.
	* cfgrtl.c: Include insn-config.h
	(split_block) Dirtify block in presence of conditional execution

2002-03-22  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
	* config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
	(function_arg): Constify CUMULATIVE_ARGS.
	(function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
	* config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
	(UNITS_PER_DOUBLE): New macro.
	(SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
	(CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
	last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
	fp_regs and stack_words.
	(EABI_FLOAT_VARARGS_P): New macro.
	* config/mips/mips.c (struct mips_arg_info): New.
	(mips_arg_info): New function.
	(function_arg_advance): Use it.  Add adjustment instructions here
	rather than in function_arg.
	(function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
	for VOIDmode at the beginning of the function.
	(function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
	(function_arg_pass_by_reference): Likewise.
	(mips_setup_incoming_varags): New, largely based on old abi64.h code.
	(mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
	(mips_va_start): Likewise.  Use the new stack_words field of
	CUMULATIVE_ARGS to set up overflow area.  Reformat.
	(mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
	doubles and other types, aligning the overflow pointer for non-doubles
	too.  Remove some code duplication.  Replace hard-coded constants.

2002-03-22  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
	(CLASS_UNITS): Undefine.
	(CLASS_MAX_NREGS): Use FP_INC.
	* config/mips/mips.c (compute_frame_size): Likewise.
	(override_options): Use FP_INC and UNITS_PER_FPVALUE.

2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
	prototype, and handle lexing numbers and identifiers.
	(parse_identifier): Update to new form of parse_slow.
	(parse_number): Fast path only, use parse_slow otherwise.
	(_cpp_lex_direct): Update calls to parse_number.

2002-03-21  DJ Delorie  <dj@redhat.com>

	* bb-reorder.c (make_reorder_chain_1): Protect against
	when redundant edges are omitted.
	* predict.c (dump_prediction): Likewise.

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

	PR target/5996
	* fixinc/inclhack.def (solaris_stdio_tag): New.
	* fixinc/fixincl.x: Regenerate.

2002-03-21  Eric Botcazou <ebotcazou@multimania.com>

	PR c/5597
	* c-typeck.c (process_init_element): Flag non-static
	initialization of a flexible array member as illegal.

2002-03-22  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/t-linux64: New.
	* config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
	t-ppccomm.  Use t-rs6000 and t-linux64.
	(powerpc64-*-gnu* <tmake_file>): Likewise.
	* mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
	* mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
	* Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.

2002-03-21  Aldy Hernandez  <aldyh@redhat.com>

	* langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
	flag_really_no_inline instead of optimize == 0.

	* c-objc-common.c (c_cannot_inline_tree_fn): Same.

	* cp/tree.c (cp_cannot_inline_tree_fn): Same.

	* flags.h (flag_really_no_inline): New.

	* c-common.c (c_common_post_options): Initialize
	flag_really_no_inline.

	* toplev.c (flag_really_no_inline): New.

2002-03-21  Jakub Jelinek  <jakub@redhat.com>

	* config/avr/avr.md (length): Fix length computation for
	conditional branches.

2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (fold-const.o, stor-layout.o, stmt.o,
	sdbout.o, profile.o): Update.
	* c-common.c (c_common_nodes_and_builtins): Use pushdecl
	langhook.
	* c-common.h (gettags): Move here from tree.h.
	* c-tree.h (pushdecl, pushlevel, poplevel, set_block,
	insert_block, getdecls, kept_level_p, global_bindings_p): New.
	* dbxout.c (dbxout_init): Use getdecls langhook.
	* expr.c (expand_expr): Use insert_block langhook.
	* fold-const.c: Include langhooks.h.
	(fold_range_test, fold_binary_op_with_conditional_arg,
	fold): Use global_bindings_p langhook.
	* integrate.c (expand_inline_function): Use insert_block langhook.
	* langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
	LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
	LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
	LANG_HOOKS_GETDECLS): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
	langhook.
	* langhooks.h (struct lang_hooks_for_decls): New.
	(struct lang_hooks): Update.
	* profile.c: Include langhooks.h.
	(output_func_start_profiler): Use new langhooks.
	* sdbout.c: Include langhooks.h.
	(sdbout_init, sdbout_finish): Use getdecls langhook.
	* stmt.c: Include langhooks.h.
	(expand_fixup, fixup_gotos): Use new langhooks.
	* stor-layout.c: Include langhooks.h.
	(variable_size): Use global_bindings_p langhook.
	* toplev.c (compile_file): Use getdecls langhook.
	* tree-inline.c (remap_block): Use insert_block langhook.
	* tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
	insert_block, getdecls, kept_level_p, global_bindings_p): Remove.

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

	* config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
	constants in .data when -fpic.

2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
	where appropriate.

2002-03-21  Tom Tromey  <tromey@redhat.com>

	* config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.

Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.

	* expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.

2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
	    Richard Henderson  <rth@redhat.com>

	PR c/5354
	* c-common.c (c_expand_expr): Preserve result of a statement
	expression if needed.

2002-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/4195
	* genrecog.c (maybe_both_true_mode): Remove.
	(maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
	* machmode.def (Pmode): Likewise.

Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)

	* alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
	(nonlocal_mentioned_p_1): New function.
	(nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
	(nonlocal_set_p, nonlocal_set_p_1): Likewise.
	(mark_constant_function): Recognize pure functions.
	* rtl.h (global_reg_mentioned_p): New prototype.
	* rtlanal.c (global_reg_mentioned_p,
	global_reg_mentioned_p_1): New function.

2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
	UNIX assert.h.
	* fixinc/fixincl.x: Regenerate.

2002-03-20  Jason Merrill  <jason@redhat.com>

	* config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.

2002-03-20  Michael Meissner  <meissner@redhat.com>

	* doc/invoke.texi (Optimize Options): Document that -O2 sets
	-fstrict-aliasing.

2002-03-20  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
	".literal_position" directive before the constant pool.

2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Update Geoffrey Keating.
	Add Craig Rodrigues.
	Add Brad Lucier to testers.

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

	PR target/4792
	* config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
	to if_then_else.
	(movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
	* config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
	instead of insn_extract.

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

	PR bootstrap/4192
	* config/fr30/fr30.md (jump): Remove clobber of fixed register.

	* genemit.c (output_added_clobbers_hard_reg_p): Only output return
	stmt if some case has been output.

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

	PR c/5972
	* config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
	movsfcc_1, movdfcc_1): Add %O2.
	* config/i386/i386.c (print_operand): Handle %ON.
	Print . before float condition codes in Sun as cmov syntax.
	* config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
	* config.gcc (i[34567]86-*-solaris2*): Remove comment which is
	no longer true.

2002-03-20  Philip Blundell  <pb@nexus.co.uk>

	* config/arm/arm.c (arm_output_epilogue): Don't generate separate
	return instruction if PC was popped.

2002-03-20  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.md: Remove unused type attributes.
	(adddi_carry, subddi_carry): Change type attribute to "multi".

2002-03-19  Dale Johannesen  <dalej@apple.com>

	PR optimization/5999, middle-end/5731
	* expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
	multiplications by reciprocals.

2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in: Update.
	* c-common.c: Include langhooks.h.
	(inline_forbidden_p): Use new hook.
	* diagnostic.c: Include langhooks.h.
	(format_with_decl, announce_function,
	default_print_error_function): Use new hook.
	* dwarf2out.c (dwarf2_name): Use new hook.
	* function.c: Include langhooks.h.
	(init_function_start): Use new hook.
	* langhooks-def.h (lhd_decl_printable_name): New.
	(LANGHOOKS_DECL_PRINTABLE_NAME): New.
	(LANGHOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_decl_printable_name): New.
	* langhooks.h (struct lang_hooks): New hook.
	* toplev.c (decl_name, decl_printable_name): Remove.
	(open_dump_file): Use new hook.
	(process_options): Remove old hook.
	* tree.h (decl_printable_name): Remove.
objc:
	* objc-act.c (objc_init): Remove old hook.
	(objc_printable_name): Export.
	* objc-act.h (objc_printable_name): New.
	* objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.

2002-03-19  Jim Blandy  <jimb@redhat.com>

	* c-lex.c (cb_file_change): Pass the #inclusion's line number to
	the start_source_file debug hook, not the current line number.

2002-03-19  Richard Henderson  <rth@redhat.com>

	* flow.c (EH_USES): Provide default.
	(calculate_global_regs_live): Use it for EH edges and noreturn calls.
	* doc/tm.texi (EH_USES): New.

	* config/ia64/ia64.c (ia64_eh_uses): New.
	* config/ia64/ia64-protos.h: Update.
	* config/ia64/ia64.h (EH_USES): New.

2002-03-19  Richard Henderson  <rth@redhat.com>

	* varasm.c (output_constant_def): Fix stupid typo.

2002-03-19  Richard Henderson  <rth@redhat.com>

	PR 5879
	* except.c (current_function_has_exception_handlers): New.
	* except.h: Declare it.
	* sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
	Combine tests that disable all sibcalls for the function.

2002-03-19  Olivier Hainque  <hainque@act-europe.fr>

	* varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
	for INTEGER_CST.

2002-03-19  Richard Henderson  <rth@redhat.com>

	PR 5977, 5991
	* config/ia64/ia64.c: Revert 2002-03-01 patch.
	* config/ia64/ia64.h (INIT_EXPANDERS): New.

2002-03-19  Jim Blandy  <jimb@redhat.com>

	* cppmacro.c (cpp_macro_definition): Emit a space after the macro
	name, even if the replacement list contains no tokens, as required
	by Dwarf.

2002-03-19  Jason Merrill  <jason@redhat.com>

	* varasm.c (globalize_decl): Get the name from the RTL, not
	DECL_ASSEMBLER_NAME.

	* Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.

2002-03-19  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
	subdi_carry): Define.

2002-03-19  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_override_options): Only warn
	about -fpic/-fPIC if extra_warnings set.

2002-03-19  David Edelsohn  <edelsohn@gnu.org>

	* expr.c (expand_expr): Sign-extend CONST_INT generated from
	TREE_STRING_POINTER.
	* fold-const.c (fold): Delete #if 0 ARRAY_REF case.

Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
	in favor of SP if FRAME_POINTER_REQUIRED is false.

2002-03-19  Lars Brinkhoff  <lars@nocrew.org>

	* emit-rtl.c (gen_int_mode): New function.
	* rtl.h: Prototype for it.
	* combine.c (make_extraction, simplify_comparison), expmed.c
	(store_bit_field, expand_mult_highpart, expand_divmod), expr.c
	(convert_modes, store_field), optabs.c (expand_fix),
	simplify-rtx.c (neg_const_int, simplify_unary_real),

	* config/rs6000/rs6000.c, config/rs6000/rs6000.md:
	Use it instead of GEN_INT (trunc_int_for_mode (...)).

2002-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR c/5656
	* langhooks.h (struct lang_hooks_for_tree_inlining): Add
	convert_parm_for_inlining.
	* c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
	Define.
	* langhooks-def.h: Likewise.
	* objc/objc-lang.c: Likewise.
	* langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
	function.
	* tree-inline.c (initialize_inlined_parameters):
	Call convert_parm_for_inlining lang hook if needed.
	* c-typeck.c (c_convert_parm_for_inlining): New function.
	* c-tree.h (c_convert_parm_for_inlining): Add prototype.

2002-03-18  Mark Mitchell  <mark@codesourcery.com>

	* calls.c (precompute_arguments): Do not assume that temporaries
	can be destroyed after expanding the argument.
	(expand_call): Likewise.

2002-03-15  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.md (movdf_internal2): Add two new move constraints.
	Fix register preference on last change.
	* config/mips/mips.c (mips_return_in_memory): New function.
	* config/mips/mips.h (RETURN_IN_MEMORY): Use.
	* config/mips/mips-protos.h: Declare.
	* config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
	* config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.

2002-03-18  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
	a register too.
	(anddi3, iorsi3): Likewise.

	* config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
	use %gprel for symbols that are going to be placed in linkonce
	sections.

	* config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
	RETURN_ADDRESS_POINTER_REGNUM to $ra.
	(CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
	not needed.  Disregard leaf_function_p().
	(INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
	mips16 frame pointer.
	* config/mips/mips.md (store ra): Only to small SP offsets.
	2001-08-22  Graham Stott  <grahams@redhat.com>
	* config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
	return a REG rtx for the return address register.

2002-03-18  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
	constant-pool addresses as "mode-dependent".
	(GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.

2002-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR target/5740
	* expr.c (emit_group_load): Use extract_bit_field if
	needed for CONCAT arguments.

2002-03-18  Richard Earnshaw  <rearnsha@arm.com>

	PR target/4863
	* arm.md (tablejump): Make this a define_expand.  For PIC add the
	offset to the base of the table.
	(thumb_tablejump): Matcher for Thumb tablejump insn.
	* config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
	as the difference of two labels.
	* config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
	* config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
	tables in the code.
	* config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
	* arm.c (get_jump_table_size): If the table is not in the text
	section, return zero.

2002-03-18  Bernd Schmidt  <bernds@redhat.com>

	* config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
	of gen_rtx_SUBREG.
	(arm_reload_out_hi): Use gen_lowpart instead of
	gen_rtx_SUBREG to access QImode components.
	* config/arm/arm.md: Disable zero_extend split for QImode
	subregs in BIG_ENDIAN mode.
	(storehi_bigend): Match use of least significant byte.
	(storeinthi): Remove extraneous SUBREG.
	Add missing construction of operands[2].
	(movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
	(movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
	Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.

2002-03-18  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
	any_operand.

2002-03-17  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
	explicitly.

2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
	(unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).

2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ifcvt.c (dead_or_predicable): Fix uninitialized variable.

	* predict.c (estimate_bb_frequencies): Delete unused variables.

2002-03-17  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_attribute_table): Move before
	targetm definition.  Make static.

2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-common.h (yyparse, c_common_parse_file): New.
	* c-lang.c: Include c-common.h.
	(LANG_HOOKS_PARSE_FILE): Redefine.
	* c-lex.c: Include c-common.h.
	(yyparse): Rename c_common_parse_file.  Call yyparse.
	* c-parse.in (yyparse): Remove macro.
	* c-tree.h (yyparse_1): Remove.
	* langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hoooks): New hook parse_file.
	* toplev.c (compile_file): Use parse_file hook.
	* tree.h (yyparse): Remove.
	* objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.

2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.md ("truncdfsf2"): Correct operator is
	float_truncate, not fix.
	("*truncdfsf2_real"): Ditto.
	("*nonlocal_goto_receiver_expanded"): Fix output template formatting.

	* config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.

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

	* config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
	(s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
	where appropriate.  Make the second reference to
	leaf_function_p a function call, as intended.  Reindented.

	* config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
	* config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.

	* config/mips/mips.md (addsi3, adddi3): Use scratch register to
	add register to non-constant into sp.

	* config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
	* config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
	(mips16_gp_pseudo_rtx): Lose.
	(INIT_EXPANDERS): Deleted.
	* config/mips/mips.c (mips_init_machine_status): New.
	(mips_free_machine_status): New.
	(mips_mark_machine_status): New.
	(override_options): Set them.
	(embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
	(struct machine_function): ... new.  Replaced all references.
	(mips_add_gc_roots): Don't mark them.
	(embedded_pic_fnaddr_reg): New, extracted from...
	(embedded_pic_offset): ... here.
	* config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
	(movsi): Likewise.

2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c: Revert -MD removal.

2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
	soft registers by default for 68HC12.
	(m68hc11_conditional_register_usage): Don't use Z register for 68HC12
	when compiling with -fomit-frame-pointer.
	(expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
	(expand_epilogue): Likewise.
	(m68hc11_gen_rotate): Use exg when rotating by 8.

2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
	* config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
	(splits): Remove unused add splits.
	("*addhi3_68hc12"): Tune constraints.
	("addhi_sp"): Try to use X instead of Y in all cases and if the
	constant fits in 8-bits and D is dead use abx/aby instructions.
	("*addhi3"): Remove extern declaration of ix_reg.
	("*subsi3"): Optimize and provide new split.
	("subhi3"): Cleanup.
	("*subhi3_sp"): Avoid saving X if we know it is dead.
	(arith splits): For 68hc12 save the address register on the stack
	and do the arithmetic operation with a pop.

2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
	allocating QImode in address registers.
	("*movqi_m68hc11"): Likewise.

Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>

	* cfgcleanup.c (cleanup_cfg): Fix updating of liveness.

2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c (print_help): Display -MD and -MMD.
	Don't display usage string.  Update assertion syntax and
	typo.
	(COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
	(cpp_handle_option): Update.

2002-03-15  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
	MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
	and define it so that regardless of target CPU size,
	__SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
	of "int" rather than "long."

2002-03-15  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_va_arg): Manipulate the type
	size as a tree.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
	("tstqi" split): Avoid using memory for tstqi on address register.
	(splits): Remove constraints.
	("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
	("cmpdf", "cmpsf"): Remove since not used.
	("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
	(peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
	("neghi2"): Tighten constraints.
	("one_cmplsi2"): Optimize and simplify split.
	* config/m68hc11/larith.asm (__negsi2): Likewise for library.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
	and split of AND operation to clear the upper bits.
	("*logicalsi3_zextqi"): Likewise.
	("*logicallhi3_zexthi_ashift8"): Likewise.
	("*logicalsi3_silshr16"): Likewise.
	("logicalsi3_silshl16"): Likewise.
	("anddi3", "iordi3", "xordi3" splits): Remove constraints.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
	(m68hc11_indirect_p): New function.
	(m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
	(m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
	TARGET_M6812.
	(asm_print_register): Likewise.
	* config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
	(m68hc11_indirect_p): Declare.
	* config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
	(TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
	(TARGET_SWITCHES): New option -mrelax.
	* config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
	destination.
	("iorsi3", "xorsi3"): Likewise.
	("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
	("*andhi3_mem"): New to handle destination in memory with bclr
	and a scratch register.
	("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
	("*andhi3_const"): New when operand2 is constant.
	("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
	("*andhi3_gen"): Cleanup of the old "andhi3".
	("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
	("xorqi3"): Update constraints.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
	for reg_equiv_memory_loc when the operand is a register that does
	not get a hard register (stack location).
	(tst_operand): After reload, accept all memory operand.
	(symbolic_memory_operand): Fix detection of symbolic references.
	* config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
	accept symbols and any constant.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
	note on the insn that sets the soft frame register.
	(must_parenthesize): ix and iy are also reserved names.
	(print_operand_address): One more place where parenthesis are required
	to avoid confusion with register names.
	(m68hc11_gen_movhi): Allow push of stack pointer.
	(m68hc11_check_z_replacement): Fix handling of parallel with a
	clobber.
	(m68hc11_z_replacement): Must update the REG_INC notes to tell what
	the replacement register is.
	* config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
	and D8_REGS classes.
	(MODES_TIEABLE_P): All modes are tieable except QImode.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
	(___subdi3): Likewise.
	(__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
	(__map_data_section): Optimize 68hc11 case.

2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
	than a shift to avoid adding a register with itself.
	(m68hc11_memory_move_cost): Take into account NO_REGS.
	(m68hc11_register_move_cost): Update and use memory move cost
	for soft registers.
	(m68hc11_address_cost): Make cost of valid offset not 0 so that
	it gives more opportunities to cse to optimize.
	* config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
	* config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.

2002-03-15  Mark Mitchell  <mark@codesourcery.com>

	* c-common.c (statement_code_p): Handle CLEANUP_STMT.
	* c-common.def (CLEANUP_STMT): New tree node.
	* c-common.h (CLEANUP_DECL): New macro.
	(CLEANUP_EXPR): Likewise.
	* c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
	* expr.c (expand_expr): Tidy.
	* tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
	* tree-inline.c (initialize_inlined_parameters): Clean up
	new local variables.

2002-03-15  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/4128
	* config/sparc/sparc.c (gen_v9_scc): Move early clobber test
	before movrXX only, use reg_overlap_mentioned_p.
	Only special case NE if just one insn can be generated.

2002-03-15  Jason Merrill  <jason@redhat.com>

	* varasm.c (assemble_variable): Call resolve_unique_section before
	checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
	of error_mark_node.

2002-03-15  Richard Earnshaw  <rearnsha@arm.com>

	PR target/5170
	* arm.md (split pattern for thumb shiftable immediates): Add comment
	explaining non-obvious test.

2002-03-15  Richard Earnshaw  <rearnsha@arm.com>

	PR target/5712
	* arm.md (movaddr, movaddr_insn): Delete.

2002-03-15  Jason Merrill  <jason@redhat.com>

	* toplev.c (wrapup_global_declarations): Clarify variable handling.
	-fkeep-static-consts doesn't apply to comdats.

2002-03-14  Richard Henderson  <rth@redhat.com>

	* c-decl.c: Include c-pragma.h.
	(start_decl, start_function): Invoke maybe_apply_pragma_weak.
	(finish_function): Tidy.
	* c-pragma.c: Include c-common.h.
	(pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
	(handle_pragma_weak): Use them.
	(init_pragma): Register pending_weaks.
	* c-pragma.h (maybe_apply_pragma_weak): Declare.
	* print-tree.c (print_node): Print DECL_WEAK.
	* varasm.c (mark_weak_decls): Remove.
	(remove_from_pending_weak_list): Remove.
	(add_weak): Remove.
	(asm_emit_uninitialised): Call globalize_decl for weak commons.
	(weak_decls): Make a tree_list.
	(declare_weak): Cons weak_decls directly.
	(globalize_decl): Remove weak_decls elements directly.
	(weak_finish): Simplify weak_decls walk.  Don't weaken unused
	symbols.  Don't pretend to handle aliases.
	(init_varasm_once): Update weak_decls registry.
	* Makefile.in: Update dependencies.

2002-03-14  Richard Henderson  <rth@redhat.com>

	PR target/5312
	* config/ia64/ia64.c: Include tm_p.h last.
	(gen_nop_type): Remove duplicate definition.
	(cycle_end_fill_slots): Set sched_data for second L slot.
	(maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
	(nop_cycles_until): Fix typos.

2002-03-15  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/5891
	* unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.

2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>

	* config/ia64/unwind-ia64.c: Handle copy_state and label_state
	  descriptors correctly.

2002-03-14  Michael Meissner  <meissner@redhat.com>

	* params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
	100, allowing MAX_UNROLLED_INSNS to be overridden.

	* params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
	--param.

	* unroll.c (params.h): Include.
	(MAX_UNROLLED_INSNS): Delete, now in params.h.

	* doc/invoke.texi (--param max-unroll-insns): Document.

	* Makefile.in (unroll.o): Add $(PARAMS_H) dependency.

2002-03-14  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md: Fix warnings about constraints in peepholes and splits.

2002-03-14  Zack Weinberg  <zack@codesourcery.com>

	* cpphash.h (struct lexer_state): Remove line_extension member.
	* cpplib.c (dequote_string, do_linemarker): New functions.
	(linemarker_dir): New data object.
	(DIRECTIVE_TABLE): No longer need to interpret #line in
	preprocessed source.  Delete obsolete comment about return
	values of handlers.
	(end_directive, directive_diagnostics, _cpp_handle_directive):
	Don't muck with line_extension.
	(directive_diagnostics): No need to issue warnings for
	linemarkers here.
	(_cpp_handle_directive): Issue warnings for linemarkers here,
	when appropriate.  Dispatch linemarkers to do_linemarker, not
	do_line.
	(do_line): Code to handle linemarkers split out to do_linemarker.
	Convert escape sequences in filename argument, both places.

	* cppmacro.c (quote_string): Rename cpp_quote_string and
	export.  All callers changed.
	* cpplib.h (cpp_quote_string): Prototype.
	* cppmain.c (print_line): Call cpp_quote_string on to_file
	before printing it.

	* doc/cpp.texi: Document that escapes are now interpreted in
	#line and in linemarkers, and that non-printing characters are
	converted to octal escapes when linemarkers are generated.

Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>

	* emit-rtl.c (try_split): Use delete_insns.
	* recog.c (split_all_insns): Fix terminating condition.

2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
	    Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>

	PR target/5828
	* arm.c (arm_output_epilogue): Fix floating-point register save
	adjustment when using a frame pointer.

2002-03-14  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
	* config/mips/mips.c (compute_frame_size): Retrofit them here.
	(save_restore_insns, mips_expand_epilogue): And here.
	(build_mips16_call_stub): And here.
	(mips_function_value): Use the new macros to decide whether a single
	or complex float can be returned in floating-point registers.  Return
	a parallel rtx in the complex case.

Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
	call after liveness analysis.

	* recog.c (split_insn): Use delete_insn_and_edges.

	* cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
	instructions to have branch prediction notes.
	* ia64reorg.c (ia64_reorg): Do not rebuild CFG.

2002-03-14  Geoffrey Keating  <geoffk@redhat.com>

	* configure.in: Don't pass -Wno-long-long to a ADA compiler
	that doesn't support it.
	* configure: Regenerate.

2002-03-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/5626
	* config/sparc/sparc.md (normal_branch, inverted_branch,
	normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
	inverted_fp_branch): Adjust calls to output_cbranch.
	Set length attribute.
	(normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
	output_v9branch.  Set length attribute.
	* config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
	predicates.
	(noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
	(output_cbranch): Likewise.  Handle far branches.
	(output_v9branch): Handle far branches.
	* config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
	Adjust prototypes.
	* config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
	noov_compare64_op predicates.

2002-03-13  Jason Merrill  <jason@redhat.com>

	* gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
	into the function and constify it.
	* gthr-dce.h, gthr-solaris.h: Likewise.

2002-03-13  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
	* config/rs6000/rs6000.c (rs6000_va_arg): Use
	std_expand_builtin_va_arg if not ABI_V4.

2002-03-13  Jason Merrill  <jason@redhat.com>

	* varasm.c (globalize_decl): New fn.
	(assemble_start_function): Use it.
	(asm_emit_uninitialized): Use it.
	(assemble_alias): Use it.
	(assemble_variable): Use it.

2002-03-13  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_target_asm_function_prologue): Revert
	2002-03-12 internal visibility change.
	(cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
	visibility into SYMBOL_REF_FLAG.

2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
	VOIDmode operand.  Add compile-time optimization for constant results.

2002-03-12  Jason Merrill  <jason@redhat.com>

	* c-typeck.c (convert_for_assignment): Don't allow conversions
	between pointers and references.  Only allow lvalues to convert to
	reference.

2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>

	* config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
	before prologue, to avoid scheduling problems.

2002-03-13  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
	(ELIMINABLE_REGS): Add sfp->sp.
	(INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.

2002-03-13  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/5892
	* config/ia64/ia64.c (rotate_one_bundle): Update current packet.

2002-03-13  Jakub Jelinek  <jakub@redhat.com>

	* loop.c (basic_induction_var): Don't call convert_modes if mode
	classes are different.

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

	PR optimization/5901
	* function.c (reposition_prologue_and_epilogue_notes): Position
	the markers after/before the last/first insn not deleted.

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

	PR optimization/5878
	* config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
	config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
	(PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.

	* config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
	config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
	PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.

	* config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
	* config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
	(arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
	also.  Don't set it if not flag_pic.
	* config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
	to be INVALID_REGNUM when not used.

2002-03-13  Aldy Hernandez  <aldyh@redhat.com>

	* expmed.c (store_bit_field): Reset alias set for memory.
	(extract_bit_field): Same.

2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-common.c (c_tree_code_type, c_tree_code_length,
	c_tree_code_name, add_c_tree_codes): Delete.
	* c-common.h (add_c_tree_codes): Delete.
	* c-lang.c (tree_code_type, tree_code_length, tree_code_name):
	Define.
	* c-objc-common.c (c_objc_common_init): Don't call
	add_c_tree_codes, instead set lang_unsafe_for_reeval.
	* objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
	objc_tree_code_name, add_objc_tree_codes): Delete.
	(objc_init): Don't call add_objc_tree_codes.
	* objc/objc-lang.c (tree_code_type, tree_code_length,
	tree_code_name): Define.
	* toplev.c (lang_independent_init): Don't set
	tree_code_length[IDENTIFIER_NODE].
	* tree.c (tree_code_type, tree_code_length, tree_code_name):
	Delete definitions, moved to language front-ends.
	* tree.def (IDENTIFIER_NODE): Hardwire the length.
	* tree.h (tree_code_type, tree_code_length, tree_code_name):
	Const-ify.
	(tree_code_length): Change type to unsigned char.

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

	* config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
	internal visibility change.

2002-03-12  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.c (xtensa_expand_block_move): Use
	validize_mem() instead of change_address to avoid clobbering
	memory attributes.

2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-lex.h (position_after_whitespace): Remove.

2002-03-12  Jakub Jelinek  <jakub@redhat.com>

	* c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
	(lex_string): Use unsigned char pointers.

2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
	is not a valid memory_operand.

2002-03-12  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
	* config/xtensa/lib1funcs.asm: Fix copyright to include
	special case for libgcc files.
	(__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
	(__divsi3): Likewise.
	(__umodsi3): Likewise.
	(__modsi3): Likewise.
	* config/xtensa/lib2funcs.S: Fix copyright to include
	special case for libgcc files.

2002-03-12  Tom Rix  <trix@redhat.com>

	* collect2.c (resolve_lib_name): Move outside of
	OBJECT_FORMAT_COFF ifdef.
	(ignore_library): Same.

2002-03-12  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.

2002-03-12  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
	to function_section before writing out the constant pool.

2002-03-12  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
	zero_constant.
	* config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.

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

	* config/rs6000/rs6000.md (addsi3): Optimize sign extension.
	(adddi3): Likewise.
	(movdf): Likewise.
	(movdi): Likewise.
	(cmpsi splitter): Likewise.
	(modsi3): Fail if <= 0.
	* config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
	redundant test when HOST_BITS_PER_WIDE_INT != 32.
	(reg_or_sub_cint64_operand): Likewise.
	(num_insns_constant_wide): Optimize sign extension.
	(rs6000_legitimize_address): Likewise.

2002-03-12  Andrew MacLeod  <amacleod@redhat.com>

	* config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
	* config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.

2002-03-12  Andrew MacLeod  <amacleod@redhat.com>

	* config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
	address calculation.

2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md (reload_insi, reload_indi): Change mode of
	scratch register to DImode / TImode.
	config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
	register used does not overlap the target.

2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (debug.o): Depend on debug.h.
	* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
	* debug.c (do_nothing_debug_hooks): Likewise.
	* debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
	sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
	dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
	* dwarf2out.c (dwarf2_debug_hooks): Likewise.
	* dwarfout.c (dwarf_debug_hooks): Likewise.
	* integrate.c (output_inline_function): Likewise.
	* objc/objc-act.c (synth_module_prologue): Likewise.
	* sdbout.c (sdb_debug_hooks): Likewise.
	* toplev.c (debug_hooks): Likewise.
	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.

2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
	dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
	m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
	ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
	v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
	* defaults.h (POINTER_SIZE): Define.
	* doc/tm.texi (POINTER_SIZE): Document default.

2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* mn10200.h (PTRDIFF_TYPE): Change it to a signed type.

2002-03-11  Richard Henderson  <rth@redhat.com>

	* toplev.c (rest_of_compilation): Call purge_all_dead_edges
	if rebuild_label_notes_after_reload.

2002-03-12  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_target_asm_function_prologue):  Do not
	emit pic register load if "internal" visibility.
	(cris_print_operand): Avoid traditional-warning for 0xffffffff.
	(cris_expand_builtin_va_arg): Do all computations on trees.

2002-03-11  Richard Henderson  <rth@redhat.com>

	* rtlanal.c: Include recog.h.
	(keep_with_call_p): Fix thinko.
	* Makefile.in (rtlanal.o): Update dependencies.

2002-03-11  Chris Meyer  <cmeyer@gatan.com>

	* genflags.c (gen_insn): Use IS_VSPACE.
	* genoutput.c (output_insn_data): Likewise.
	(process_template): Likewise.

2002-03-11  Richard Henderson  <rth@redhat.com>

	* toplev.c (rest_of_compilation): Don't compile if we've had errors.

2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in: Update.
	* doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
	Update documentation.
	* doc/gcc.texi: Include cppopts.texi and cppenv.texi.
	* doc/cpp.texi: Include cppopts.texi and cppenv.texi.

2002-03-11  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in: Give texi2pod its input file as a command line
	argument, not on stdin.

2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
	    Daniel Berlin  <dan@dberlin.org>

	C++ alias analysis improvement.
	* alias.c (record_component_aliases): Record aliases for base
	classes too.

2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.

2002-03-11  Douglas B Rupp  <rupp@gnat.com>

	* toplev.c (vms_fopen): Remove, not needed.

	* vmsdbgout.c (lookup_filename): Adjust creation date for GMT.

	* config/alpha/xm-vms.h (__UNIX_FWRITE): Define.

	* config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
	for FP, already done later.

	* toplev.c (debug_args): Add entry for VMS_DEBUG.
	* vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.

2002-03-11  Richard Sandiford  <rsandifo@redhat.com>

	* defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
	(MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
	LARGEST_EXPONENT_IS_NORMAL for the given mode.
	(MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
	* real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
	(ediv, emul, eldexp, esqrt): Likewise.
	(etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
	(e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
	(saturate): New function.
	(toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
	(make_nan): Use a saturation value instead of a NaN if
	LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
	* fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
	inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
	zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
	(unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
	(_fpmul_parts, _fpdiv_parts): Only round to nearest if
	!ROUND_TOWARDS_ZERO.
	* doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
	(ROUND_TOWARDS_ZERO): Document.

2002-03-11  Andreas Jaeger  <aj@suse.de>

	* cfg.c (dump_flow_info): Remove unused variable.

2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
	computations on trees.

2002-03-10  Richard Henderson  <rth@redhat.com>

	PR 5693:
	* reload.c (copy_replacements_1): New.
	(copy_replacements): Use it to recurse through the rtx.

2002-03-10  Richard Henderson  <rth@redhat.com>

	* loop.c (strength_reduce): Compute number of iterations as
	unsigned HOST_WIDE_INT.

2002-03-10  Richard Henderson  <rth@redhat.com>

	* sched-rgn.c (add_branch_dependences): Don't allow insns that throw
	to move away from the end of the block.

2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>

	PR preprocessor/5899
	* cppinit.c (init_dependency_output): Don't ignore -dM etc.

2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* mbchar.c (JIS_state_table, JIS_action_table): Const-ify.

	* attribs.c (decl_attributes): Fix signed/unsigned warning.

2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c: Improve comments.
	(mmix_target_asm_function_prologue): Drop variable
	empty_stack_frame.  Don't allocate unused slot above fp.
	(mmix_target_asm_function_epilogue): Mirror prologue changes.
	* config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
	brace in first column.
	(enum reg_class): Ditto.
	(FIRST_PARM_OFFSET): Now 0.
	(USER_LABEL_PREFIX): Remove #if 0:d definition.

2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* combine.c (make_extraction): Fix error in last change.

2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c4x.c (c4x_fp_reglist): Const-ify.
	* cris.c (cris_print_operand): Likewise.
	* i386.c (ix86_va_arg): Likewise.
	* ia64/unwind-ia64.c (unw_decode_table): Likewise.
	* m32r.c (m32r_hard_regno_mode_ok): Likewise.
	* m32r.h (m32r_hard_regno_mode_ok): Likewise.
	* mcore.c (regno_reg_class, mcore_unique_section): Likewise.
	* mcore.h (regno_reg_class): Likewise.
	* mips.c (gen_int_relational): Likewise.
	* ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
	* ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
	* pdp11.c (move_costs): Likewise.
	* pj.h (INITIALIZE_TRAMPOLINE): Likewise.
	* s390.c (s390_branch_condition_mnemonic, regclass_map):
	Likewise.
	* s390.h (regclass_map): Likewise.
	* sh.c (shift_amounts): Likewise.
	* sh.md (rotlsi3): Likewise.

2002-03-09  Geoffrey Keating  <geoffk@redhat.com>

	* config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
	(ne0+5): Use new clobber to generate proper shift pattern.
	Patch by Michael Matz <matz@kde.org>.

2002-03-09  Andreas Schwab  <schwab@suse.de>

	* gcc.c (validate_all_switches): Also handle `%W{...}'.

2002-03-09  Geoffrey Keating  <geoffk@redhat.com>

	* config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.

2002-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/5877
	* expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
	even for non-representable constants.

Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
	* function.c (fixup_var_refs): Add MAY_SHARE parameter.
	(fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
	(fixup_var_refs_insn, fixup_var_refs_1): Likewise.
	(pop_function_context): Compute MAY_SHARE parameter for
	fixup_var_refs.
	(fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
	(gen_mem_addressof): Call fixup_var_refs with new parm.

	* combine.c (make_extraction): Don't make extension of CONST_INT.

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

	* config/mips/mips.c (function_arg_pass_by_reference): Force to 0
	in o32 and o64 ABIs.
	* config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
	but getting fixed-size structs passed in registers regardless of
	padding in o32 and o64 ABIs.

	* config/mips/mips.c (mips_va_arg): Apply big-endianness address
	offset before loading address of argument passed by transparent
	reference.

2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.

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

	* config/mips/mips.c (mips_expand_prologue): Set regno of vararg
	marker such that registers after it are saved.

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

	* sparc.c (arith_4096_operand): Fix error in last change.

2002-03-08  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
	defaults for MEABI.

2002-03-08  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
	vectors.

2002-03-08  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.

Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
	removed; fix return value.
	* combine.c (combine_instructions): Dirtify blocks where we failed to
	update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
	* toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.

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

	* gcse.c (insert_insn_end_bb): Fix typo in last change.

Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>

	* recog.c (peephole2_optimize): Re-distribute EH edges.

2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>

	* expr.c (expand_expr): Use unsave lang hook.
	* langhooks-def.h (LANG_HOOKS_UNSAVE): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.h (struct lang_hooks): New hook unsave.
	* tree.c (lang_unsave, lang_unsave_expr_now): Remove.
	(unsave_expr_1): Remove unused lang_unsave_expr_now.
	(unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
	(unsave_expr_now): Remove.
	* tree.h (unsave_expr_now, lang_unsave,
	lang_unsave_expr_now): Remove.
	(lhd_unsave): New.

2002-03-08  Andreas Jaeger  <aj@suse.de>

	* flow.c (propagate_block_delete_insn): Remove unused variable.

2002-03-08  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
	insn length for memory load/store.

2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* doc/install.texi (--with-libiconv-prefix): Document.

2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>

	* doc/sourcebuild.texi: Fix typo.

2002-03-08  Jakub Jelinek  <jakub@redhat.com>

	PR c/3711
	* builtins.c (std_expand_builtin_va_arg): Do all computations on
	trees.

Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* rtl.c (copy_most_rtx): Move from here ...
	* emit-rtl.c (copy_most_rtx): ... to here.

2002-03-08  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
	SUBTARGET_CPP_SIZE_SPEC.
	* config/mips/abi64.h (LONG_MAX_SPEC): Delete.

	* config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.

2002-03-07  Matt Hiller  <hiller@redhat.com>

	* gensupport.c (first_dir_md_include): Renamed from include;
	change all references.
	(last_dir_md_include): Renamed from last_include; change all
	references.
	(init_md_reader): Unconditionally initialize base_dir whether or
	not filename is a relative path.

2002-03-07  Alexandre Oliva  <aoliva@redhat.com>

	* config/fp-bit.c (_unord_f2): Compile it in even if
	US_SOFTWARE_GOFAST is enabled.

	* config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
	NULL_RTX.  Set all HFmode operations as NULL_RTX.
	* optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
	NULL_RTX, try reversing the comparison and the operands.

2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
	genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
	and MATCH_OP_DUP.

Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>

	* reload1.c (reload_cse_delete_noop_set): Purge dead edges.

Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (fixup_abnormal_edges): Declare.
	* reload1.c (fixup_abnormal_edges): New function.
	* reg-stack.c (convert_regs): Use it.

	* gcse.c (insert_insn_end_bb): Handle trapping insns.

	* gcse.c (hash_scan_set): Refuse instructions with EH edges.

2002-03-07  Richard Sandiford  <rsandifo@redhat.com>

	* defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
	(MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
	* flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
	(HONOR_SIGN_DEPENDENT_ROUNDING): New.
	* builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
	* c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
	unless x and y could be infinite.
	(expand_unordered_cmp): New, mostly split from expand_tree_builtin.
	Check that the common type of both arguments is a real, even for
	targets without unordered comparisons.  Allow an integer argument
	to be compared against a real.
	(expand_tree_builtin): Use expand_unordered_cmp.
	* combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
	* cse.c (fold_rtx): Likewise.  Fix indentation.
	* fold-const.c (fold_real_zero_addition_p): New.
	(fold): Use it, and the new HONOR_... macros.
	* ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
	* jump.c (reversed_comparison_code_parts): After searching for
	the true comparison mode, use HONOR_NANS to decide whether it
	can be safely reversed.
	(reverse_condition_maybe_unordered): Remove IEEE check.
	* simplify-rtx.c (simplify_binary_operation): Use the new macros
	to decide which simplifications are valid.  Allow the following
	simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
	and (a - -b) to (a + b).
	(simplify_relational_operation): Use HONOR_NANS.
	* doc/tm.texi: Document the MODE_HAS_... macros.

2002-03-07  Richard Earnshaw  <rearnsha@arm.com>

	* combine.c (simplify_comparison): If simplifying a logical shift
	right and compare with constant, force the comparison to unsigned.

2002-03-07  Aldy Hernandez  <aldyh@redhat.com>

	* doc/invoke.texi: Add documentation for -mabi=no-altivec.

	* config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
	-mabi=no-altivec
	(alt_reg_names): Remove % for vrsave.

2002-03-06  Richard Henderson  <rth@redhat.com>

	PR optimization/5844
	* genemit.c (gen_exp): New argument used.  Invoke copy_rtx
	if used indicates we've already emitted one copy of an operand.
	(gen_insn, gen_expand, output_add_clobbers): Supply a null used.
	(gen_split): Supply a non-null used.

2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload1.c (reload): Unshare all rtl after reload is done.

	* simplify-rtx.c (simplify_plus_minus): Do not abort,
	but simply fail if the expression is too complex to simplify.
	(simplify_gen_binary): Handle simplify_plus_minus failures.

Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Do jump threading before SSA path;
	consistently call delete_trivially_dead_insns after CSE and GCSE;
	fix DFI_life dumping; do jump threading after liveness; do crossjumping
	after liveness2; update comment in last crossjumping.
	* cfgcleanup.c (try_crossjump_to_edge): Dirtify block.

Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)

	* ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
	after completing fast dead code elimination.

	* m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
	COMPARE operator.

2002-03-06  Phil Edwards  <pme@gcc.gnu.org>

	* version.c:  Fix misplaced leading blanks on first line.

Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.

Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (mentions_nonequal_regs): New function.
	(thread_jump): Use it.
	* toplev.c (rest_of_compilation): Run jump threading after
	liveness.

2002-03-06  Jakub Jelinek  <jakub@redhat.com>

	* ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
	patch.

Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>

	* predict.c (estimate_bb_frequencies): Do not reload the
	frequencies from notes.

Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
	* rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare

	* basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
	delete_noop_moves): Return indeger.
	* flow.c (ndead): New variable.
	(propagate_block_delete_insn): Use delete_insn_and_edges; remove
	BB argument; update callers.
	(propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
	(life_analysis): Do not call purge_all_dead_edges.
	(update_life_info): Return number of deleted insns; print statistics.
	(update_life_info_in_dirty_blocks): likewise.
	(delete_noop_moves): Use delete_insn_and_edges; print statistics;
	return number of insns deleted.

	* cse.c: Include timevar.h
	(delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
	iterate until stabilizes; print statistics; return number of killed
	insns.
	* Makefile.in: (cse.o): Add timevar.h dependency
	* rtl.h (delete_trivially_dead_insns): New.
	* timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
	* toplev.c (rest_of_compilation): Update callers.

	* cfgcleanup.c (try_optimize_cfg): Kill blocks.
	(try_optimize_cfg): Do not update liveness.
	(cleanup-cfg): Loop until try_optimize_cfg and dead code
	removal stabilizes; use delete_trivially_dead_insns.

	* cfgrtl.c (verify_flow_info): Sanity check outgoing edges.

2002-03-05  Zack Weinberg  <zack@codesourcery.com>

	* cppmain.c (setup_callbacks): Disable #pragma and #ident
	callbacks when processing assembly language.

2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.h (ASM_FILE_END): Define.
	* som.h (ASM_FILE_END): Delete.

	* pa.c (function_arg): Don't pass floats in general registers in
	indirect calls if TARGET_ELF32.

2002-03-05  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.md (floatsidf2): Conditionalize on hard-float.

2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>

	* gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.

2002-03-05  Jakub Jelinek  <jakub@redhat.com>

	* mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
	-r command line.  Don't hide any symbols if not building
	shared libgcc.

Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfg.c (dump_flow_info): Warn about profile mismatches.
	* cfgrtl.c (verify_flow_info): Few aditional sanity checks.
	(purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.

2002-03-05  Jakub Jelinek  <jakub@redhat.com>

	* expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
	wide volatile memory by parts.

2002-03-05  Jakub Jelinek  <jakub@redhat.com>

	* ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
	is NULL.

2002-03-05  Richard Henderson  <rth@redhat.com>

	* rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.

2002-03-04  Geoffrey Keating  <geoffk@redhat.com>

	* toplev.c (documented_lang_options): Document more
	language-specific options.
	* doc/invoke.texi (Warning Options): Correct documentation for
	-Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
	* c-decl.c (c_decode_option): Use a table to handle warning options.

2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
	parameter to mmix_encode_section_info.
	(LINK_SPEC): Don't defsym __.MMIX.start..text if linking
	relocatably.  Always produce ELF, not mmo if linking relocatably.
	* config/mmix/mmix.c (mmix_encode_section_info): If new parameter
	first is nonzero, don't add symbol prefix.
	* config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
	prototype accordingly.

2002-03-04  Krister Walfridsson  <cato@df.lth.se>

	* config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.

2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>

	* configure.in: Increase required makeinfo version to 4.1.
	* configure: Regenerate.

2002-03-04  Geoffrey Keating  <geoffk@redhat.com>

	* .cvsignore: Remove *.info* and genrtl*; these files are generated
	elsewhere now.

2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/include/texinfo.tex: Update to version 2002-03-01.06.
	* doc/invoke.texi: Fix @math uses.

Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
	removal

2002-03-03  Aldy Hernandez  <aldyh@redhat.com>

	* config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
	(powerpc-*-eabisimaltivec*): Same.

	* config/rs6000/t-ppcendian: New.

2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>

	* c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
	nonimmediate_src_operand and nonimmediate_lsrc_operand to
	disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.

2002-03-03  Richard Henderson  <rth@redhat.com>

	* toplev.c (rest_of_decl_compilation): Revert last two changes.

2002-03-03  Zack Weinberg  <zack@codesourcery.com>

	* emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
	print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
	tree.c, config/m68k/m68k.c:
	Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
	REAL_ARITHMETIC blocks unconditional.  Delete some further
	#ifdef blocks predicated on REAL_ARITHMETIC.
	* flags.h, toplev.c: Delete remaining references to
	flag_pretend_float.

	* doc/invoke.texi: Remove documentation of -fpretend-float.
	* doc/tm.texi: Describe the various REAL_* macros as provided by
	real.h, not by the target configuration files.

	* config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
	config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
	config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
	config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
	config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
	config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
	config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
	config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
	config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
	config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.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/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
	config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
	config/xtensa/xtensa.h:
	Do not define, undefine, or mention in comments any of
	REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
	REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
	REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
	REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
	REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
	REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
	REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
	REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
	REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.

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

	* 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
	convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
	i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
	m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
	pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
	stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
	Delete.
	* defaults.h (BITS_PER_WORD): Define.
	* doc/tm.texi (BITS_PER_WORD): Document default value.

	* 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
	m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
	stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.

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

	* attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
	lieu of explicit sizeof/sizeof.
	* i386.c (override_options, ix86_init_mmx_sse_builtins,
	ix86_expand_builtin): Likewise.
	* mips.c (mips_add_gc_roots): Likewise.
	* mmix.c (mmix_output_condition): Likewise.
	* rs6000.c (rs6000_override_options, altivec_expand_builtin,
	altivec_init_builtins): Likewise.
	* sparc.c (mark_ultrasparc_pipeline_state): Likewise.
	* cppexp.c (Nsuff, parse_number): Likewise.
	* cppinit.c (builtin_array_end): Likewise.
	* gcc.c (n_default_compilers, process_command): Likewise.
	* genpreds.c (output_predicate_decls): Likewise.
	* ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
	* lcm.c (N_ENTITIES): Likewise.
	* stor-layout.c (set_sizetype): Likewise.

2002-03-03  Richard Henderson  <rth@redhat.com>

	* toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
	for types or labels.

2002-03-03  Richard Henderson  <rth@redhat.com>

	* c-decl.c (start_decl): Initialized variables are not common.

2002-03-02  Per Bothner  <per@bothner.com>

	* gcc.c (option_map):  Suport new --bootclasspath option.
	--CLASSPATH is now just an alias for --classpath.

2002-03-02  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
	load if "internal" visibility.
	* doc/extend.texi: Document visibility meanings.

2002-03-02  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
	to functions as well.

2002-03-02  Richard Henderson  <rth@redhat.com>

	* attribs.c (handle_alias_attribute): Don't call assemble_alias.
	(handle_visibility_attribute): Don't call assemble_visibility.
	* toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
	without asmspec.  Invoke assemble_alias when needed.
	* varasm.c (maybe_assemble_visibility): New.
	(assemble_start_function, assemble_variable, assemble_alias): Use it.

2002-03-02  Richard Henderson  <rth@redhat.com>

	* varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
	invoke ENCODE_SECTION_INFO with first call flag.

	* config/darwin-protos.h, config/darwin.c, config/darwin.h,
	config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
	config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
	config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
	config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
	config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
	config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
	config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
	config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
	config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
	config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
	config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
	config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
	config/m68hc11/m68hc11.h, config/m88k/m88k.h,
	config/mcore/mcore-protos.h, config/mcore/mcore.c,
	config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
	config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
	config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
	config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
	config/sh/sh.h, config/sparc/sparc.h,
	config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
	config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
	config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
	FIRST argument.  As needed, examine it and do nothing.

	* config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
	config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
	config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.

	* config/arm/t-pe (pe.o): Add dependencies.

2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
	cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
	i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
	mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
	pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
	vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
	* defaults.h (BITS_PER_UNIT): Define.
	* doc/tm.texi (BITS_PER_UNIT): Document default value.

2002-03-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Add a prototype for
	compute_a_shift_length.
	* config/h8300/h8300.c (h8300_asm_insn_count): New.
	(compute_a_shift_length): Likewise.
	(h8300_adjust_insn_length): Do not adjust insn length of shift
	insns.
	* config/h8300/h8300.md (anonymous shift patterns): Use
	compute_a_shift_length.

Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* config/sparc/sparc.c (sparc_initialize_trampoline): Use
	trunc_int_for_mode.

	* emit-rtl.c (offset_address): Call update_temp_slot_address.

2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
	* doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
	* flags.h (flag_zero_initialized_in_bss): Declare.
	* toplev.c (flag_zero_initialized_in_bss): New flag.
	(lang_independent_options): Add flag_zero_initialized_in_bss.
	* tree.c (initializer_zerop): New function.
	* tree.h (initializer_zerop): Declare.
	* varasm.c (assemble_variable): If we can emit bss, put zero
	initializers in the bss section.

2002-03-02  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
	like more than one symbol per .weak directive.

2002-03-01  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
	adjust argument_pointer by pretend_args_size.
	(ia64_va_start): Adjust va_start address by -pretend_args_size.

2002-03-01  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.

Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Delete dead jumptables before
	loop.
	* flow.c (delete_dead_jumptables): Make global.
	* rtl.h (delete_dead_jumptables): Declare.

2002-03-01  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
	* config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
	* config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.

2002-03-01  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Fix formatting.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/h8300.h: Likewise.

2002-03-01  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (print_operand): Support 16-bit
	constant addresses.
	* config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.

2002-02-28  Richard Henderson  <rth@redhat.com>

	* expmed.c (store_bit_field): Prevent generation of CONCATs;
	pun complex values as integers; use gen_lowpart instead of
	gen_rtx_SUBREG.
	(extract_bit_field): Likewise.

2002-03-01  Alan Modra  <amodra@bigpond.net.au>
	    David Edelsohn  <edelsohn@gnu.org>

	* doc/tm.texi (ASM_WEAKEN_DECL): Document.
	(ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
	(SUPPORTS_WEAK): Likewise.
	* output.h (add_weak): Add tree param.
	* varasm.c (add_weak): Likewise.  Save decl.
	(struct weak_syms): Add decl field.
	(mark_weak_decls): New function.
	(init_varasm_once): ggc_add_root mark_weak_decls.
	(assemble_start_function): Use ASM_WEAKEN_DECL.
	(assemble_variable): Likewise.
	(assemble_alias): Likewise.
	(declare_weak): Pass decl to add_weak.
	(weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
	(remove_from_pending_weak_list): Declare and define for
	ASM_WEAKEN_DECL.
	* c-pragma.c (handle_pragma_weak): Adjust add_weak call.
	* c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
	* defaults.h (SUPPORTS_WEAK): Likewise.
	* config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
	.weak for code sym.  Do emit .size for descriptor sym.
	(ASM_DECLARE_FUNCTION_SIZE): Define.
	* config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
	(ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
	.lglobl unless TARGET_XCOFF.  Formatting fixes.
	* config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
	.weak for code sym.
	(HANDLE_PRAGMA_WEAK): Remove.
	(ASM_WEAKEN_LABEL): Remove.
	* config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.

2002-03-01  Jason Merrill  <jason@redhat.com>

	* tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
	(TARGET_EXPR_CLEANUP): New macro.

2002-02-28  Steve Ellcey  <sje@cup.hp.com>

	* doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
	to take ptr_extend into account as third type of extension.
	(SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
	fields used by SUBREG_PROMOTED_UNSIGNED_P.
	* rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
	(SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
	* calls.c (precompute_arguments): Use new macro.
	(expand_call): Ditto.
	* combine.c (nonzero_bits): Ditto.
	(record_promoted_value): Ditto.
	* expr.c (store_expr): Ditto.
	(expand_expr): Ditto.
	* function.c (assign_parms): Ditto.

2002-02-28  Alexandre Oliva  <aoliva@redhat.com>

	* gcc.c (init_gcc_specs): Get -static and -static-libgcc to
	override -shared and -shared-libgcc.

2002-02-28  David O'Brien  <obrien@FreeBSD.org>

	* config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
	of "ultrasparc".
	* config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
	to be broken.

2002-02-28  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
	4 cycle latency from MM producers.
	(ia64_internal_sched_reorder): Likewise with pipeline flush.

2002-02-28  Jakub Jelinek  <jakub@redhat.com>

	* mklibgcc.in: Don't use GNU make extension.

2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-parse.in (STATIC): New terminal.
	(scspec): New non-terminal.  Update productions accordingly.
	(program): Remove bogus ifc / end ifc.
	(array_declarator): Simplify production using STATIC.

2002-02-28  Jim Meyering  <meyering@lucent.com>

	* cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
	\a still means TARGET_BELL.

2002-02-28  Richard Henderson  <rth@redhat.com>

	* haifa-sched.c (sched_emit_insn): New.
	(schedule_block): Use last_scheduled_insn to track last insn.
	* sched-int.h (sched_emit_insn): Prototype.
	* config/ia64/ia64.c (last_issued): Remove.
	(ia64_variable_issue): Don't set it.
	(nop_cycles_until): Use sched_emit_insn.

2002-02-28  Andrew MacLeod  <amacleod@redhat.com>

	* config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
	extended constants.

2002-02-28  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c: Fix formatting.
	* config/h8300/h8300.h: Likewise.

2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
	which may overwrite the high byte of the frame pointer.

2002-02-28  Bo Thorsen  <bo@suse.de>

	* config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
	(STARTFILE_SPEC): Add 64 bit files.
	(ENDFILE_SPEC): Likewise.

2002-02-28  Jason Merrill  <jason@redhat.com>

	* c-decl.c (finish_function): Only warn about missing return
	statement with -Wreturn-type.

Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (purge_dead_edges): Fix handling of EH edges.

	* i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
	PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM

Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (BB_REACHABLE): Renumber.
	(BB_DIRTY, BB_NEW): New flags.
	(clear_bb_flags): Declare.
	(update_life_info_in_dirty_blocks): Declare.
	* cfg.c (clear_bb_flags): New function.
	* cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
	* emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
	reorder_insns, emit_insn_after): Mark block as dirty.
	* flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
	(update_life_info_in_dirty_blocks): New function.
	* recog.c (apply_change_group): Dirtify block.

	* cse.c (cse_insn): Reorder emitting of jump insn to keep
	cfg consistent.
	* gcse.c (delete_null_pointer_checks): Likewise.

	* toplev.c (dump_file_index): Move cse2 after bp,
	add DFI_null
	(dump_file_info): Similary.
	(rest_of_compilation): Avoid most of CFG rebuilds;
	do first if converision after null pointer checks, do cse2
	after branch prediction; avoid full liveness rebuild after
	initializing subregs.
	* invoke.texi (-d options): Document -du, renumber.

	* cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
	(notice_new_block): Do not set BB_UPDATE_LIFE.
	(try_forward_edges, merge_blocks_move_predecessor_nojumps,
	 merge_blocks_move_successor_nojumps, merge_blocks,
	 try_crossjump_to_edge): Likewise.
	(try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
	* cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
	* ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
	(merge_of_block): Do not use life_data_ok.
	(find_if_case_1): Do not use SET_UPDATE_LIFE.
	(if_convert): Use BB_DIRTY mechanizm to update life.
	* lcm.c (optimize_mode_switching): Update
	update_life_info_in_dirty_blocks

2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>

	* Makefile.in (integrate.o): Update.
	* c-decl.c (copy_lang_decl): Rename.
	* c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
	* integrate.c: Include langhooks.h.
	(copy_decl_for_inlining): Update to use langhook.
	* langhooks-def.h (lhd_do_nothing_t,
	LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* langhooks.c (lhd_do_nothing_t): New.
	* langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
	* tree.h (copy_lang_decl): Remove.
objc:
	* objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.

2002-02-27  Andrew MacLeod  <amacleod@redhat.com>

	* dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
	POST_DEC, and POST_MODIFY.

2002-02-27  Zack Weinberg  <zack@codesourcery.com>

	* c-typeck.c (digest_init): Remove unused parameter; all
	callers changed.

2002-02-27  Geoffrey Keating  <geoffk@redhat.com>

	* expmed.c (expand_shift): Correctly test for low part of a
	subreg.

2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_chunkify_pool): Do not confuse
	insn UIDs with insn addresses.

2002-02-27  Zack Weinberg  <zack@codesourcery.com>

	* c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
	c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
	cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
	builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
	gcc.c, toplev.c: Delete code implementing -traditional mode.

	* doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
	doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
	Document removal of -traditional mode for compilation, and
	remove documentation only relevant to that mode.

	* config/nextstep.h, config/ptx4.h, config/svr4.h,
	config/convex/convex.h, config/d30v/d30v.h,
	config/i386/dgux.h, config/i386/osf1elf.h,
	config/i386/osfelf.h, config/i386/osfrose.h,
	config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
	config/m68k/hp310.h, config/m88k/dgux.h,
	config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
	config/m88k/m88k.h, config/m88k/openbsd.h,
	config/mips/abi64.h, config/mips/osfrose.h,
	config/mips/svr4-5.h, config/mips/svr4-t.h,
	config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
	config/stormy16/stormy16.h: Remove all references to
	-traditional from target specs.  Delete all mention of the
	no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
	delete a couple of commented-out definitions of
	DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
	to -traditional.

	* system.h: Poison TRADITIONAL_RETURN_FLOAT.
	* doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.

2002-02-27  Zack Weinberg  <zack@codesourcery.com>

	* mklibgcc.in: Don't use \n in a line subject to
	interpretation by echo.

2002-02-27  Graham Stott  <grahams@redhat.com>

	* config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
	Constify NAME.

	* loop.c (prescan_loop): Handle PARALLEL.

	* unroll.c (loop_iterations): Return 0 if the add_val for
	a BIV is REG.

	* final.c (output_operand_lossage): Constify PFX_STR.

	* df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.

Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>

	* linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
	* x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.

Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>

	* linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.

2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplex.c (_cpp_lex_token): Handle directives in macro
	arguments.
	* cpplib.c (_cpp_handle_directive): Save and restore state
	if parsing macro args when entering a directive.
	* cppmacro.c (collect_args): No need to handle directives
	in macro arguments.
	(enter_macro_context, replace_args): Use the original macro
	definition in case it was redefined whilst collecting arguments.
doc:
	* cpp.texi: Update.

2002-02-26  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
	* config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
	* config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
	method on AIX.
	* config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
	(movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
	(load_toc_v4_PIC_2): Same.

2002-02-26  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.

2002-02-26  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (ashldi_se): Re-enable.

2002-02-26  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_encode_section_info): Examine
	MODULE_LOCAL_P; improve commentary.

2002-02-26  Zack Weinberg  <zack@codesourcery.com>

	* doc/cpp.texi: Clarify documentation of relationship between
	#line and #include.

2002-02-26  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Update the prototype for
	compute_logical_op_length.  Add the prototype for
	compute_logical_op_cc.
	* config/h8300/h8300.c (compute_logical_op_length): Figure out
	code from operands.
	(compute_logical_op_cc): New.
	* config/h8300/h8300.md: Combine all the logical op patterns
	in HImode and SImode.  Use compute_logical_op_cc.

2002-02-26  Kelley Cook  <kelleycook@comcast.net>

	* config/i386/i386.c (print_operand): Don't append ATT-style
	length suffixs to x87 opcodes when in Intel mode.

2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>

	* emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
	(init_emit_once): Update calls.
	* fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
	(init_syntax_once): Prototype.

2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa-linux.h (LIB_SPEC): Update definition.
	* pa32-linux.h (LINK_COMMAND_SPEC): Delete.

2002-02-26  Richard Henderson  <rth@redhat.com>

	* config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
	if we emitted a stop bit.

2002-02-26  Jakub Jelinek  <jakub@redhat.com>

	* configure.in (libgcc_visibility): Substitute.
	* configure: Rebuilt.
	* mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
	defined symbols .hidden.

2002-02-26  Jakub Jelinek  <jakub@redhat.com>

	* attribs.c (c_common_attribute_table): Add visibility.
	(handle_visibility_attribute): New function.
	* varasm.c (assemble_visibility): New function.
	* output.h (assemble_visibility): Add prototype.
	* tree.h (MODULE_LOCAL_P): Define.
	* crtstuff.c (__dso_handle): Use visibility attribute.
	* config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
	for MODULE_LOCAL_P symbols too.
	* config/ia64/ia64.c (ia64_encode_section_info): Handle
	MODULE_LOCAL_P symbols the same way as local symbols.
	Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
	into .sdata/.sbss by the user.
	* doc/extend.texi (Function Attributes): Document visibility
	attribute.

2002-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR debug/5770
	* dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
	STRING_CST initializer spanning the whole variable without
	embedded zeros.
	If expand_expr returned MEM, don't use it.

2002-02-26  Alexandre Oliva  <aoliva@redhat.com>

	* dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
	generate a die for the lexical block.

2002-02-26  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Add a prototype for
	compute_logical_op_length.
	* config/h8300/h8300.c (compute_logical_op_length): New.
	* config/h8300/h8300.md (anonymous logical patterns): Use
	compute_logical_op_length for length.

2002-02-26  Aldy Hernandez  <aldyh@redhat.com>

	* dwarf2out.c (modified_type_die): Do not call type_main_variant
	for vectors.
	(gen_type_die): Same.

	* attribs.c (handle_vector_size_attribute): Set debug information.

2002-02-26  Daniel Egger  <degger@fhm.edu>

	* config/rs6000/rs6000.md: Swap define_insn attributes to
	fix incorrect generation of merge high instructions instead
	of merge low.

2002-02-26  Aldy Hernandez  <aldyh@redhat.com>

	* c-typeck.c (really_start_incremental_init): Use
	bitsize_zero_node for vectors.

2002-02-26  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
	("*set_vrsave_internal"): Same.

2002-02-25  Richard Henderson  <rth@redhat.com>

	* expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
	in EXPAND_SUM case.  Use host_integerp/tree_low_cst.

2002-02-25  Jakub Jelinek  <jakub@redhat.com>

	PR target/5755
	* config/i386/i386.c (ix86_return_pops_args): Only pop
	fake structure return argument if it was passed on the stack.

2002-02-25  Jason Merrill  <jason@redhat.com>

	* attribs.c (decl_attributes): Also re-layout PARM_DECL and
	RESULT_DECL.

2002-02-25  Alexandre Oliva  <aoliva@redhat.com>

	* gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
	link with shared_name only.
	* doc/invoke.texi (Link Options): Document new behavior.

2002-02-25  Aldy Hernandez  <aldyh@redhat.com>

	* c-typeck.c (push_init_level): Handle vectors.

2002-02-25  Alexandre Oliva  <aoliva@redhat.com>

	* config/sparc/sparc.c (const64_high_operand): Zero-extend
	operands of SPARC_SETHI_P.
	(input_operand): Likewise.
	(sparc_emit_set_const32): Likewise.
	* config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
	(SPARC_SETHI32_P): Zero-extend operand from 32 bits.
	(CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
	* config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
	(movdi_insn_sp64_vis): Likewise.
	(movdi split, movdf split): Use SETHI32.
	* doc/md.texi: Document SPARC constraints L, M and N.

2002-02-25  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md ("get_vrsave_internal"): New.
	("*set_vrsave_internal"): use mfspr for Darwin.

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Call
	gen_get_vrsave_internal.

Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.

2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplex.c (cpp_interpret_charconst): Get signedness or
	otherwise of wide character constants correct.
	* cppexp.c (lex): Get signedness of wide charconsts correct.

Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* optabs.c (widen_operand): Only call convert_modes for
	promoted SUBREG if signedness matches.
	* config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.

2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpplib.c (glue_header_name): Use local buffer to build up
	header name.

2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>

	* doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.

2002-02-23  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
	H8/300[HS] separately.
	* config/h8300/h8300.md: Remove the early clobber constraint
	from bit field patterns.

2002-02-23  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (mulqihi3): Tighten predicates to
	register_operand.
	(mulhisi3): Likewise.
	(umulqisi3): Likewise.
	(umulhisi3): Likewise.

2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c (output_deps): Correct test for stdout output.
	(init_dependency_output): Cure warning.

Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expr.c (store_expr): When converting expression to promoted
	equivalent type, allow using SUBREG_REG of TARGET as the target
	of the expansion of EXP.
	* loop.c (basic_induction_var, case SUBREG): Always look inside.
	* config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
	(alpha_emit_set_const): Handle SImode when can't make new pseudos.
	(alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
	* config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.

2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/contribute.texi, doc/extend.texi, doc/install.texi,
	doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
	doc/standards.texi, doc/tm.texi: Remove trailing whitespace.

2002-02-23  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/5747
	* loop.c (scan_loop): Update reg info if move_movables created new
	pseudos.

2002-02-23  David Edelsohn  <edelsohn@gnu.org>

	* gcc.c (init_gcc_spec): Revert last change.

2002-02-23  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
	gpc_reg_operand constraint.

2002-02-23  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
	Simplify comparison of `low'.
	(add_operand): Fix formatting.
	(non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
	(mask_operand): Disallow mask to wrap in 64-bit mode.
	(rs6000_stack_info): Remove redundant test setting push_p.
	(output_toc): Fix formatting.
	* config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
	cc_reg_not_cr0_operand constraint.
	(booldi3, boolcdi3 splitters): Same.

2002-02-23  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h: Add extra level of parentheses on casts.

2002-02-22  David Edelsohn  <edelsohn@gnu.org>

	* gcc.c (init_gcc_spec): Do not link with static libgcc.a if
	gcc invoked with -shared-libgcc.

2002-02-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/5748
	* stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
	decl if any of elements was TREE_USED.

2002-02-22  Alexandre Oliva  <aoliva@redhat.com>

	* config/sparc/sol2.h: Don't include sys/mman.h.
	* config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
	(arith_4096_operand): Don't throw high bits away.
	(const64_operand): Take sign extension of CONST_INTs into account.
	(const64_high_operand, sparc_emit_set_const32): Likewise.
	(GEN_HIGHINT64): Likewise.
	(sparc_emit_set_const64_quick1): Likewise.
	(const64_is_2insns): Likewise.
	(print_operand): Use trunc_int_for_mode for sign extension.
	* config/sparc/sparc.h (SMALL_INT32): Likewise.
	* config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
	chars.  Assume CONST_INT is already properly sign-extended.
	(movdi split): Sign-extend each SImode part.
	(andsi3 split): Don't mask high bits off, so that result
	remains properly sign-extend.
	(iorsi3 split): Likewise.
	(xorsi3 split): Likewise.

2002-02-22  Richard Sandiford  <rsandifo@redhat.com>

	* fold-const.c (fold): Fix typo in comments.

2002-02-21  Diego Novillo  <dnovillo@redhat.com>

	* Makefile.in (langhooks.o): Update dependencies.

2002-02-21  Diego Novillo  <dnovillo@redhat.com>

	* langhooks.c: Include flags.h.

2002-02-21  Aldy Hernandez  <aldyh@redhat.com>

	* testsuite/gcc.dg/attr-alwaysinline.c: New.

	* c-common.c (c_common_post_options): Set inline trees by
	default.

	* doc/extend.texi (Function Attributes): Document always_inline
	attribute.
	Update documentation about inlining when not optimizing.

	* cp/decl.c (duplicate_decls): Merge always_inline attribute.

	* cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
	unless DECL_ALWAYS_INLINE.

	* c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
	unless DECL_ALWAYS_INLINE.
	(c_disregard_inline_limits): Disregard if always_inline set.

	* langhooks.c (lhd_tree_inlining_disregard_inline_limits):
	Disregard if always_inline set.
	(lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
	unless DECL_ALWAYS_INLINE.

	* attribs.c (handle_always_inline_attribute): New.
	(c_common_attribute_table): Add always_inline.

	* config/rs6000/altivec.h: Add prototypes for builtins
	requiring the always_inline attribute.

2002-02-21  Eric Christopher  <echristo@redhat.com>

	* expmed.c (store_bit_field): Try to simplify the subreg
	before generating a new one when when the mode size of
	value is less than maxmode.

2002-02-21  Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (offset_address): Use simplify_gen_binary rather
	than gen_rtx_PLUS to form the sum.
	* explow.c (force_reg): Rearrange to not allocate new pseudo
	when force_operand returns a register.
	* expr.c (expand_assignment): Allow offset_rtx expansion to
	return a sum.  Do not force addresses into registers.
	(expand_expr): Likewise.
	* simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
	to canonicalize arithmetic that didn't simpify.
	(simplify_plus_minus): New argument force; update
	all callers.  Don't split CONST unless we can do something with it,
	and wouldn't lose the constness of the operands.

	* config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
	that we generated earlier.

2002-02-21  Tom Tromey  <tromey@redhat.com>

	* dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
	(output_line_info): Use constant `1', with a long explanatory
	comment.
	* system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.

Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* jump.c (redirect_jump): If old label has no UID, don't try to
	delete it.

Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
	If input is constant, do shifts at compile time.

2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/extend.texi: Fix some more overfull hboxes.

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

	PR optimization/4994
	* config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
	register moves.

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

	PR c++/4574
	* expr.h (expand_and): Add mode argument.
	* expmed.c (expand_and): Add mode argument.
	(expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
	* expr.c (store_field, expand_expr, do_store_flag): Likewise.
	* except.c (expand_builtin_extract_return_addr): Likewise.
	* config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
	* config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
	* config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
	Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
	* config/c4x/c4x.md: Use GEN_INT (x) instead of
	gen_rtx (CONST_INT, VOIDmode, x).

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

	PR c/4697:
	* stmt.c (warn_if_unused_value): Move side effects test once more.

2002-02-20  Torbjorn Granlund  <tege@swox.com>

	* config/avr/avr.md: Add more patterns for mized-mode add and subtract
	(addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).

Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>

	* rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
	SUBREG or ZERO_EXTEND.

Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (current_function_anonymous_args): Remove.
	(SETUP_INCOMING_VARARGS): Don't set it - just check that one
	of current_function_varargs and current_function_stdarg is set.
	* sh.c (sh_expand_prologue): Check current_function_varargs /
	current_function_stdarg / TARGET_SH5 instead of
	current_function_anonymous_args.

	* sh64.h (TARGET_VERSION): Define.

2002-02-20  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
	VRSAVE_REGNO on TARGET_ALTIVEC.

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

	* config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
	bits of SImode const_int.
	(includes_rshift_p): Likewise.
	(print_operand): Call mask_operand and mask64_operand with correct
	mode.
	(rs6000_output_function_epilogue): Pad traceback table to word.
	* config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
	(EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
	mask64_operand with correct mode.
	(FUNCTION_ARG_REGNO_P): Correct parentheses.

2002-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/4461
	* varasm.c (get_pool_constant_mark): New.
	* rtl.h (get_pool_constant_mark): Add prototype.
	* dwarf2out.c (mem_loc_descriptor): A pool constant cannot
	be represented if it has not been output.

2002-02-20  Alexandre Oliva  <aoliva@redhat.com>

	* combine.c (do_SUBST): Sanity check substitutions of
	CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
	(subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
	CONST_INT into its operand.
	(known_cond): Likewise, for ZERO_EXTEND.
	* simplify-rtx.c (simplify_unary_operation): Fix condition to
	allow for simplification of wide modes.  Reject CONST_INTs in
	ZERO_EXTEND when their actual mode is not given.

2002-02-20  Alexandre Oliva  <aoliva@redhat.com>

	* c-decl.c (pushdecl): If no global declaration is found for an
	extern declaration in block scope, try a limbo one.

2002-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/4401
	* c-common.c (pointer_int_sum): Moved from...
	* c-typeck.c (pointer_int_sum): ...here.
	* c-common.h (pointer_int_sum): Add prototype.

2002-02-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/5713
	* c-decl.c (duplicate_decls): Return 0 if issued error about
	redeclaration.

2002-02-20  Roger Sayle  <roger@eyesopen.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c/4389
	* tree.c (host_integerp): Ensure that the constant integer is
	representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
	when pos is zero or nonzero respectively.  Clarify comment.
	* c-format.c (check_format_info_recurse): Fix host_integerp
	usage; the pos argument should be zero when assigning to a
	signed HOST_WIDE_INT.

2002-02-20  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.c (ix86_expand_vector_move): Use the mode
	of the operand, rather than assuming TImode.
	(ix86_expand_binop_builtin): Cope with commutative patterns
	using nonimmediate_operand for both operands.
	(ix86_expand_timode_binop_builtin): Likewise.
	(ix86_expand_store_builtin): Validate operand 1.
	(ix86_expand_unop1_builtin): Likewise.

2002-02-20  Philip Blundell  <philb@gnu.org>

	PR 5705
	* config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.

2002-02-20  Richard Henderson  <rth@redhat.com>

	PR c/5615
	* expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.

2002-02-20  Tom Tromey  <tromey@redhat.com>

	* config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
	* config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
	* config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
	* config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
	* dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
	unconditionally.

Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>

	* config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
	  for (const_int 0) in X not just INTVAL.

2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/extend.texi: Avoid or reduce overfull hboxes.

2002-02-20  Diego Novillo  <dnovillo@redhat.com>

	* expmed.c (store_bit_field): Do not store bit fields using SUBREG
	operations if the field does not start at a mode boundary.

2001-02-20	Joel Sherrill <joel@OARcorp.com>

	* config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
	config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
	Also done for -Acpu and -Amachine.

2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppinit.c (init_dependency_output): Take deps output file
	from -o if none given with -MF.  Suppress normal output.
	* gcc.c (cpp_unique_options): Have -M and -MM imply -E.
	* doc/cpp.texi, doc/invoke.texi: Update.

2002-02-19  Zack Weinberg  <zack@codesourcery.com>

	* toplev.c (output_quoted_string): Write unprintable
	characters with octal escapes.

2002-02-19  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
	really_call_used[VRSAVE_REGNO] if not Altivec.

2002-02-19  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
	MODE_MASK.
	(constant_pool_expr_1): Fix formatting.
	(rs6000_legitimize_reload_address): Likewise.

Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
	now that we have one.

2002-02-19  Zack Weinberg  <zack@codesourcery.com>

	* tree.h (struct tree_common): Remove aux.  Add unused_0 at
	end of first block of bitfields (which was only seven bits);
	rename dummy to unused_1; remove comment which is no longer true.

2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>

	* doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.

2002-02-19  Philip Blundell  <pb@nexus.co.uk>

	PR 5399
	* config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
	if generating PIC.

	PR 5054
	* config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
	arm_is_longcall_p rather than inspecting call-type cookie
	directly.
	(call_value_insn) [TARGET_THUMB]: Likewise.

2002-02-19  Graham Stott  <grahams@redhat.com>

	* config/i386/i386.c (ix86_expand_builtin): Fix typo.

2002-02-19  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
	({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
	(FP_SAVE_INLINE): Delete.

	* config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
	* config/rs6000/eabi.asm: Remove ABI save restore routines.
	* config/rs6000/t-ppccomm: Build crtsavres.o.
	* config/rs6000/crtsavres.asm: New file.

2002-02-19  Philip Blundell  <philb@gnu.org>

	* config/arm/arm.c (use_return_insn): Don't reject interrupt
	functions.
	(arm_compute_save_reg_mask): Save LR for interrupt functions too.
	(output_return_instruction): Allow interrupt functions to return with
	ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
	(arm_expand_prologue): Subtract 4 before stacking LR in an
	interrupt function.

2002-02-19  Philip Blundell  <pb@nexus.co.uk>

	* config/arm/arm.c (arm_encode_call_attribute): Operate on any
	decl, not just FUNCTION_DECL.
	(legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
	(arm_assemble_integer): Likewise.
	* config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
	marked local.

2002-02-19  matthew green  <mrg@eterna.com.au>

	* config.gcc (sparc-*-netbsdelf*): Enable target.
	(sparc64-*-netbsd*): New target.
	* config/sparc/netbsd-elf.h: New file.
	* config/sparc/t-netbsd64: New file.

2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>

	* doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.

2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>

	* doc/invoke.texi: explicitly list the style guidelines that
	-Weffc++ checks for.

Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>

	* regmove.c (regmove_optimize): Avoid increasing of register pressure.

2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>

	PR other/5718
	* gcc.c (cpp_unique_options): Treat -o as indicating object file
	only if not -E.  If -E, pass -o through to the preprocessor.

2002-02-19  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
	register number with an appropriate macro.

2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* doc/rtl.texi (Constants): Close @code tag.

2002-02-19  Aldy Hernandez  <aldyh@redhat.com>

	* config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
	("mmx_uavgv4hi3"): Same.
	("pmulhrwv4hi3"): Same.

	* tree-inline.c (walk_tree): Handle vectors.

	* c-common.c (constant_expression_warning): Handle vectors.
	(overflow_warning): Same.

	* sched-deps.c (sched_analyze_2): Handle vectors.

	* rtlanal.c (rtx_unstable_p): Handle vectors.
	(rtx_varies_p): Same.
	(count_occurrences): Same.
	(regs_set_between_p): Same.
	(modified_between_p): Same.
	(modified_in_p): Same.
	(volatile_insn_p): Same.
	(volatile_refs_p): Same.
	(side_effects_p): Same.
	(may_trap_p): Same.
	(inequality_comparisons_p): Same.
	(replace_regs): Same.
	(computed_jump_p_1): Same.

	* rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
	argument.
	(inner_mode_array): New.
	(copy_rtx): Handle vectors.
	(copy_most_rtx): Same.
	(rtx_equal_p): Same.
	(get_mode_alignment): Adjust for vectors.

	* resource.c (mark_referenced_resources): Handle vectors.
	(mark_set_resources): Same.

	* reload1.c (eliminate_regs): Handle vectors.
	(elimination_effects): Same.
	(scan_paradoxical_subregs): Same.

	* reload.c (subst_reg_equivs): Handle vectors.

	* regrename.c (scan_rtx): Handle vectors.

	* regclass.c (reg_scan_mark_refs): Handle vectors.

	* recog.c (find_single_use_1): Handle vectors.

	* local-alloc.c (equiv_init_varies_p): Handle vectors.
	(contains_replace_regs): Same.
	(memref_referenced_p): Same.

	* integrate.c (copy_rtx_and_substitute): Handle vectors.
	(subst_constants): Same.

	* genattrtab.c (attr_copy_rtx): Handle vectors.
	(encode_units_mask): Same.
	(clear_struct_flag): Same.
	(count_sub_rtxs): Same.

	* gcse.c (want_to_gcse_p): Handle vectors.
	(oprs_unchanged_p): Same.
	(hash_expr_1): Same.
	(oprs_not_set_p): Same.
	(expr_killed_p): Same.
	(compute_transp): Same.
	(store_ops_ok): Same.

	* function.c (purge_addressof_1): Do not allow paradoxical subregs
	of vectors.
	(fixup_var_refs_1): Same.
	(instantiate_virtual_regs_1): Same.

	* fold-const.c (operand_equal_p): Handle vectors.
	(fold): Same.
	(rtl_expr_nonnegative_p): Same.

	* flow.c (mark_used_regs): Handle vectors.

	* df.c (df_uses_record): Handle vectors.

	* cselib.c (cselib_subst_to_values): Handle vectors.
	(cselib_mem_conflict_p): Same.
	(hash_rtx): Same.

	* cse.c (canon_reg): Handle vectors.
	(fold_rt): Same.
	(cse_process_notes): Same.
	(count_reg_usage): Same.
	(canon_hash): Same.

	* alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.

	* combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.

	* emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
	(gen_rtx): Handle CONST_VECTOR.
	(gen_const_vector_0): New.
	(copy_rtx_if_shared): CONST_VECTORs can be shared.
	(reset_used_flags): Same.
	(copy_insn_1): Same.
	(initializer_constant_valid_p): Handle VECTOR_CST.

	* doc/c-tree.texi (Expression trees): Document VECTOR_CST.

	* doc/rtl.texi (Constants): Document const_vector.
	(CONST0_RTX): Update for vectors.
	(RTL sharing): Same.

	* print-tree.c (print_node): Add case for VECTOR_CST.

	* tree.h (TREE_VECTOR_CST_ELTS): New.
	(struct tree_vector): New.
	(union tree_node): Add vector node.
	(build_vector): Add prototype.

	* tree.def (VECTOR_CST): New.

	* tree.c (build_vector): New.

	* expmed.c (make_tree): Handle CONST_VECTOR.

	* rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
	(CONST_VECTOR_ELT): New.
	(CONST_VECTOR_NUNITS): New.

	* machmode.h (GET_MODE_INNER): New.
	(DEF_MACHMODE): Accept 8th arg.

	* machmode.def: Add 8th argument for vector inner mode.
	Add inner vector modes for vectors.

	* rtl.def (VEC_CONST): Remove.
	(CONST_VECTOR): New.

	* expr.c (clear_storage): Allow vectors.
	(is_zeros_p): Handle VECTOR_CST.

	* varasm.c (output_constant_pool): Handle vectors.
	(rtx_const): Add veclo and vechi fields.
	(kind): Add RTX_VECTOR.
	(decode_rtx_const): Add case for vector.

	* config/rs6000/rs6000-protos.h: Add zero_constant.

	* config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
	constants.  Force easy vector constants into memory.
	(easy_vector_constant): New.
	(emit_easy_vector_constant): New.
	(rs6000_legitimize_reload_address): Do not generate bad reloads on
	darwin.

	* config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
	instruction does.
	("altivec_lvxl"): Same.
	(altivec_lvebx): Same.
	(altivec_lvehx): Same.
	(altivec_lvewx): Same.
	("*movv4si_const0"): New.
	("*movv4sf_const0"): New.
	("*movv8hi_const0"): New.
	("*movv16qi_const0"): New.

2002-02-18  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (notice_update_cc): Use
	cc_status.value2.

2002-02-18  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (divmod patterns): Change the
	constraints for operands[1] to register_operand.

2002-02-18  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Remove the prototype for
	p_operand.
	* config/h8300/h8300.c (p_operand): Remove.
	* config/h8300/h8300.md: Replace p_operand with
	const_int_operand.

2002-02-18 Philip Blundell <pb@nexus.co.uk>

	* config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
	comment.
	(output_return_instruction): Allow use of LDR to unstack
	return addresss even for interrupt handlers or when
	interworking.  If compiling for ARMv5, use interworking-safe
	return instructions by default.  Remove duplicated code and
	lengthy "strcat" sequences.

2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
	(LINK_EH_SPEC): Define.
	* config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.

2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_emit_prologue): Do not set the
	frame_related flag for call-clobbered registers.

Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
	(construct_container): Fix handling of SSE operands.
	(ix86_expand_builtin): Fix handling of 64bit pointers.
	(mmx_maskmovq_rex): New pattern.

Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>

	* regrename.c (kill_set_value): Handle subregs properly.

2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>

	* objc/objc-act.c (handle_impent): Remove leading '*'
	from objc_class_name.

2002-02-17  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (some_small_symbolic_operand,
	some_small_symbolic_operand_1, split_small_symbolic_operand,
	split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
	Handle small SYMBOL_REFs anywhere, not just inside memories.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.h (PREDICATE_CODES): Update.
	* config/alpha/alpha.md (small symbolic operand splitter): Update.

2002-02-17  Roland McGrath  <roland@frob.com>

	* config.gcc (powerpc-*-gnu-gnualtivec*,
	powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
	* config/rs6000/gnu.h: New file.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
	Grok "gnu" in rs6000_abi_name.
	(ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
	CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
	Grok -mcall-gnu analogous to -mcall-linux et al.
	(LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
	LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
	(SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.

2002-02-17  Jakub Jelinek  <jakub@redhat.com>

	PR c/3444:
	* c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
	shortening.

2002-02-17  Philipp Thomas  <pthomas@suse.de>

	* config/cris/cris.h: Undefine STARTFILE_SPEC and
	ENDFILE_SPEC before (re)defining them.

2002-02-17  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c: Fix formatting.
	* config/h8300/h8300.h: Likewise.

2002-02-17  Philipp Thomas  <pthomas@suse.de>

	* doc/tm.texi: Explain why empty strings should not be
	marked for translation.

2002-02-17  Philipp Thomas  <pthomas@suse.de>

	* final.c (output_operand_lossage): Changed to accept
	printf style arguments. Change calls where necessary.
	* output.h (output_operand_lossage): Change declaration
	accordingly. Update copyright.
	* config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
	config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
	Update copyright date where necessary.

	* config/i386/i386.c (print_operand): Likewise. Remove use of
	sprintf.

	* config/cris/cris.c (cris_operand_lossage): Likewise.
	Rename parameter so that exgettext recognizes it as
	translatable message.
	(LOSE_AND_RETURN): Rename parameter to msgid.

2002-02-17  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
	hard coded register number with an appropriate macro.
	(HARD_REGNO_MODE_OK): Likewise.
	(ARG_POINTER_REGNUM): Likewise.
	(STATIC_CHAIN_REGNUM): Likewise.
	(RETURN_ADDRESS_POINTER_REGNUM): Likewise.
	* config/h8300/h8300.md (define_constants): Define more
	register numbers.

2002-02-17  Philipp Thomas  <pthomas@suse.de>

	* config/i386/i386.h: Don't mark empty strings for translation.

2002-02-16  H.J. Lu <hjl@gnu.org>

	* config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.

2002-02-16  Zack Weinberg  <zack@codesourcery.com>

	* cppinit.c (merge_include_chains): Check for brack being
	NULL before attempting to merge it with qtail.

2002-02-16  Andrew Cagney  <ac131313@redhat.com>

	* config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
	DBX_DEBUG.

2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa/t-pa, pa/t-pro, som.h: Revert last patch.

2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
	* pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
	* som.h (DO_GLOBAL_DTORS_BODY): Delete define.

Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
	now only if !TARGET_FIX.
	(*movsi_nt_vms_fix): New pattern.

2002-02-16  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha.c: Implement null frame procedure types on VMS.
	(alpha_procedure_type): Replaces alpha_is_stack_procedure.
	(alpha_sa_mask, alpha_sa_size): Reflect above change.
	(alpha_pv_save_size, alpha_expand_prologue): Likewise.
	(alpha_start_function, alpha_expand_epilogue): Likewise.
	(unicosmk_gen_dsib): Likewise.

Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.

2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
	check_and_change_labels, s390_final_chunkify): Delete.
	(s390_split_branches, s390_chunkify_pool): New functions.
	(s390_function_prologue): Call them.

	* config/s390/s390.h (S390_REL_MAX): Delete.
	(S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.

	* config/s390/s390.md (cjump, icjump, jump): Fix length
	attribute calculation.


2002-02-15  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
	* config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.

2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
	* config/pa/pa-linux.h (LIB_SPEC): Likewise.
	* config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.

2002-02-15  Richard Sandiford  <rsandifo@redhat.com>

	* c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.

2002-02-15  Richard Sandiford  <rsandifo@redhat.com>

	* reload.c (find_dummy_reload): Check that an output register
	is valid for its mode.

2002-02-14  Alexandre Oliva  <aoliva@redhat.com>

	* combine.c (known_cond): After replacing the REG of a SUBREG, try
	to simplify it.

	* function.c (assign_parms): Demote promoted argument passed by
	transparent reference.

2001-02-14	Joel Sherrill <joel@OARcorp.com>

	* config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
	-Acpu() and -Amachine() to eliminate warnings.

2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.

2002-02-14  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Update the prototype for
	const_costs.
	* config/h8300/h8300.c (const_costs): Treat SET as a little
	more expensive operation.
	* config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
	reference to const_costs.

2002-02-14  Hans-Peter Nilsson  <hp@axis.com>

	* config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.

2002-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR c/5503:
	* c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
	use arguments from newtype.

2002-02-13  Eric Christopher  <echristo@redhat.com>

	* config/mips/mips.c (override_options): Add check for march/mipsX
	on the same command line. Fix error message in cpu processing.
	Remove architecture and ISA checks.

2002-02-14  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.

	* config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.

2002-02-14  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
	alternatives.
	("*movv8hi_internal1"): Same.
	("*movv16qi_internal1"): Same.
	("*movv4sf_internal1"): Same.

	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
	not push_reload for altivec modes.

2002-02-13  Joel Sherrill  <joel@OARcorp.com>

	* config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
	all RTEMS targets including removal of #includes from config/*/rtems*.h
	file and adding them to tm_file setting. Added xm_defines=POSIX to
	many targets.
	* config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
	* config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
	* config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
	* config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
	* config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
	config/m68k/rtemself.h: Ditto.
	* config.gcc (mips*-*-rtems*), config/mips/rtems.h,
	config/mips/rtems64.h: Ditto.
	* config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
	* config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
	Ditto.
	* config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
	config/sparc/rtemself.h: Ditto.
	* config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
	* config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
	arm-rtems stanza closer to other arm-elf targets and made arm-rtems
	more like arm-elf.
	* config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
	config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
	target made more similar to i386-elf.
	* config/i386/t-rtems-i386: Added soft float support and multilibs.
	* config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
	be similar to config/m68k/t-m68kelf.
	* gthr-rtems.h: Encapsulate with extern "C" for C++.

Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>

	* regmove.c (kill_value): Handle subregs.

Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (mul patterns): Allow memory operand to be first;
	add expanders where needed; fix constraints.
	(min?f_nonieee, max?f_nonieee, SSE TImode patterns):
	Allow memory operand to be the first.

	* i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
	operands.

2002-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR c/5681:
	* expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
	GET_MODE (x).

2002-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR optimization/5547:
	* config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
	all valid IA-32 address modes involving non-scaled %ebx and
	GOT/GOTOFF as displacement.

2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
	after emitting ltorg insns.

	* config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
	*cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
	*muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
	*abssf2): Fix "op_type" attribute.

2002-02-13  Douglas B Rupp  <rupp@gnat.com>

	* mkconfig.sh: Avoid using a subshell redirect.
	($output.T): Change to $(output)T.
	(ENABLE_NLS): Remove unneeded undef.

	* config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
	* config/alpha/x-vms (libsubdir): Define.

	* config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
	register frame procedures. Optimize retrieving context.

	* config/alpha/t-vms (MULTILIB_OPTIONS): Define.
	(MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
	* config/alpha/vms.h (ASM_FILE_START): Write .arch directive.

Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
	Make same change as for find_base_value.

2002-02-13  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
	of QImode and SImode.

2002-02-13  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
	length computation of movsi.
	* config/h8300/h8300.md (movsi_h8300hs): Correct the length.

2002-02-13  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (subqi3): Tighten the predicate for
	operands[2] to register_operand.

Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (fop_*_comm_*): allow nonimmediate in the first operand.

2002-02-12  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md: Use predicate altivec_register_operand
	for altivec_lvx* and altivec_stvx*.
	("*movv4si_internal"): Add constraint for loading from GPRs.
	("*movv8hi_internal1"): Same.
	("*movv16qi_internal1"): Same.
	("*movv4sf_internal1"): Same.

	* config/rs6000/rs6000.c (altivec_register_operand): New.

	* config/rs6000/rs6000.h (PREDICATE_CODES): Add
	altivec_register_operand.

2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
	handle SYMBOL_REF.

2002-02-13  Stan Shebs  <shebs@apple.com>

	* c-typeck.c (digest_init): Handle vectors.
	(really_start_incremental_init): Same.
	(pop_init_level): Same.
	(process_init_element): Same.

	* varasm.c (output_constant): Same.

	* expr.c (clear_storage): Same.
	(store_constructor): Same.

2002-02-12  Eric Christopher  <echristo@redhat.com>

	* explow.c (hard_function_value): Add comment explaining
	signed/unsigned comparison.

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

	* jump.c (never_reached_warning): Add finish argument.
	If finish is NULL, stop on CODE_LABEL, otherwise stop before first
	real insn after end.
	* rtl.h (never_reached_warning): Adjust prototype.
	* cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
	* cfgrtl.c (flow_delete_block): Pass b->end as finish to
	never_reached_warning.

2002-02-12  Graham Stott  <grahams@redhat.com>

	* config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.

2002-02-12  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
	logical shifts on H8/300.
	(shift_alg_si): Improve several shifts on H8/300.
	(get_shift_alg): Likewise.

2002-02-12  Graham Stott  <grahams@redhat.com>

	* config/pa/pa.c (compute_movstrsi_length): Fix typos.

Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
	Handle #ifdef POINTERS_EXTEND_UNSIGNED.

2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
	non-CONST_INT through default_assemble_integer.
	<case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
	<case 8>: Abort for CONST_DOUBLE.

2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
	is specified.
	* config/pa/pa-linux.h (LIB_SPEC): Delete.
	* config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.

2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>

	* config/stormy16/stormy16.md (zero_extendqihi2): New.

2002-02-11  Alexandre Oliva  <aoliva@redhat.com>

	* regrename.c (regrename_optimize): Don't accept a
	part-clobbered register if the replaced register is not part
	clobbered.

	* calls.c (store_one_arg): In the non-BLKmode non-partial case,
	take padding into account when computing the argument value.

	* config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.

	* combine.c (try_combine): Apply substitutions in
	CALL_INSN_FUNCTION_USAGE too.

2002-02-11  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (altivec_init_builtins): Handle
	__builtin_altivec_abs*.
	(bdesc_abs): New.

	* config/rs6000/rs6000.h (rs6000_builtins): Add
	ALTIVEC_BUILTIN_ABS*.

	* config/rs6000/altivec.h: Use const char for builtins expecting
	literals.
	(vec_abs): New versions for C and C++.
	(vec_abss): Same.

2002-02-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
	using Pmode.

2002-02-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
	constant definition from h8300.md.
	(FRAME_POINTER_REGNUM): Likewise.
	* config/h8300/h8300.md (define_constants): Add FP_REG.

2002-02-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (print_operand): Remove redundant code.

2002-02-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
	* config/h8300/h8300.c (byte_reg): Make it static.

2002-02-10  Richard Henderson  <rth@redhat.com>

	PR c/5623
	* c-typeck.c (incomplete_type_error): Handle flexible array members.

2002-02-10  Richard Henderson  <rth@redhat.com>

	PR c++/5624
	* tree.c (append_random_chars): Don't abort if main_input_filename
	does not exist.

2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.

2002-02-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
	(pushhi1): Likewise.

2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
	* pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.

2002-02-09  David O'Brien  <obrien@FreeBSD.org>

	* config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
	remove MASK_VIS.
	(ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.

2002-02-09  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (output_logical_op): Use sub.w to clear
	a half of an SImode register on H8/300.

Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movdi_2): Add missing '!'.

2002-02-09  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h: Fix formatting.  Remove commented-out
	definitions.

2002-02-09  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (length): Correct the distance valid
	for the short branch.

2002-02-09  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (iorhi3): Tighten the predicates.

2002-02-09  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
	registers in SImode.
	(HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
	part-clobbered.

	* config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
	patch.

	Contribute sh64-elf.
	2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
	(sh_cannot_modify_jumps_p): New function.
	2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
	(sh_ms_bitfield_layout_p): New function.
	2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
		    Zack Weinberg  <zack@codesourcery.com>
	* config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
	expand_simple_binop instead of expand_binop.
	2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
	use of .quad and .uaquad.
	* config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
	TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
	2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (movdi_const, movdi_const_32bit,
	movdi_const_16bit): Make sure all CONSTs have modes.
	(sym2PIC): Ditto, but by adjusting all callers.
	* config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
	if the prologue calls the SHmedia argument decoder or register
	saver.
	2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
	(TARGET_ASM_ALIGNED_DI_OP): Likewise.
	(sh_expand_epilogue): Don't emit USE of return target register.
	(prepare_move_operands): Legitimize DImode PIC addresses.
	(sh_media_register_for_return): Skip tr0, used to initialize the
	PIC register.
	(sh_expand_prologue): Remove explicit USE of return register.
	(nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
	CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
	* config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
	(OVERRIDE_OPTIONS): Don't disable PIC on SH5.
	(EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
	EXTRA_CONSTRAINT_T.
	(GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
	(MOVI_SHORI_BASE_OPERAND_P): New.
	(NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
	(EXTRA_CONSTRAINT_T): Define in terms of them.
	(OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
	* config/sh/sh.md (movsi_media, movsi_media_nofpu,
	movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
	alternatives supporting TARGET_REGS.
	(UNSPEC_GOTPLT): New constant.
	(movdi split): Move incrementing of LABEL_NUSES...
	(movdi_const, movdi_const_32bit): Here.  Use
	MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
	(movdi_const_16bit): New.
	(call, call_value) [flag_pic]: Use GOTPLT.
	(call_pop, call_value_pop): New expands.
	(call_pop_compact, call_pop_rettramp): New insns.
	(call_value_pop_compact, call_value_pop_rettramp): New insns.
	(sibcall) [flag_pic]: Use GOT.
	(builtint_setjmp_receiver): Remove bogus, unused expand.
	(GOTaddr2picreg): Implement for SHcompact and SHmedia.
	(*pt, *ptb, ptrel): New insns.
	(sym2GOT): Handle DImode GOT.
	(sym2GOTPLT, symGOTPLT2reg): New expands.
	(sym2PIC): New expand.
	(shcompact_return_tramp): Use GOTPLT to return trampoline.
	(shcompact_return_tramp_i): Use return register explicitly.
	* config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
	disable flag_reorder_blocks.
	2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (sibcall_compact): Reorder return, uses and
	clobbers, for clarity.
	(sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
	restoring of r0 in macl as MAYBE_DEAD.
	2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
	* config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
	alter_subreg all over.
	(jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
	reload, instead of emitting instructions that would require
	reloading.
	(casesi_load_media): Add missing modes.
	2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (sh_expand_prologue): Mark the PIC register
	as used if the argument decoder is called.
	2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
	Pmode, then extend it to DImode if necessary.
	2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
	* config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
	constants in FPU-enabled SHmedia, let them be loaded from memory.
	2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
	Adjust whitespace in assembly output templates.
	2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
	* config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
	mode of if_then_else.
	2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
	sh.h.
	2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
		    Joern Rennecke <amylaar@redhat.com>
	* config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
	(SUBTARGET_CPP_PTR_SPEC): New.
	(SUBTARGET_CPP_SPEC): Remove.
	2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
	* config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
	Fix typo in previous checkin.
	2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
	* config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
	2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
		    Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
	what single FP register can hold for SHmedia target.
	2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
		    Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
	Do not split into SUBREG.
	2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
	and added new functions as specified in SH5 ABI r9.
	2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
	8-byte boundary.
	2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (dump_table): Add const0_rtx in calls of
	gen_consttable_4 and gen_consttable_8.  Emit multiple labels
	and consttable_window_ends.
	2001-06-03  Graham Stott  <grahams@redhat,com>
	* config/sh/sh.md (movdi split): Remove unused variable last_insn.
	2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (print_operand): Handle floating-point pair,
	vector and matrix registers.
	* config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
	vector modes into account.
	* config/sh/sh.md (movv2sf): Split move between registers into
	movdf.
	(movv4sf, movv16sf): Introduce insns that get split only after
	reload.
	* config/sh/shmedia.h: Fix Copyright dates.
	* config/sh/ushmedia.h: Likewise.  Move loop counter
	declarations into conditionals that uses them.
	(sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
	loop boundary.
	* config/sh/sshmedia.h: Fix Copyright dates.
	(sh_media_PUTCFG): Fix constraints.
	2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
	ptrmemfunc_vbit_in_delta for SH5.
	2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
	* invoke.texi: Likewise.
	2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
	GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
	GCC_pop_shmedia_regs_nofpu): New global symbols.
	* config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
	* config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
	* config/sh/sh.c (calc_live_regs): Account for PR's saving in
	compact function with nonlocal labels.
	(sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
	(sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
	(initial_elimination_offset): Account for their stack space.
	* config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
	* config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
	movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
	movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
	least one of the operands to be a register.
	(movv2sf): Likewise.  Renamed to movv2sf_i.
	(movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
	prepare_move_operands() before emitting SHmedia insns.
	2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
	Don't save nor initialize r12.  Don't mis-align the stack.
	Pad the code with a nop.
	* config/sh/crti.asm: Don't restore r12.  Don't mis-align the
	stack.
	2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
	* gcc/longlong.h (__umulsidi3, count_leading_zeros)
	[__SHMEDIA__]: Implement.
	2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md: Set latency of `pt' closer to reality.
	(movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
	movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
	Set move, load and store type attributes.
	* config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
	* config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
	profiling.
	* config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
	* config/sh/sh-protos.h (sh_media_register_for_return): Declare.
	* config/sh/sh.c (sh_media_register_for_return): New function.
	(sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
	branch-target register.
	(sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
	* config/sh/sh.md (return_media_i): Use any call-clobbered
	branch-target register.
	(return_media): If r18 wasn't copied in the prologue, copy it
	here.
	* config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
	Clear class FP0_REGS.
	* config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
	from elf.h.
	2001-03-08  DJ Delorie  <dj@redhat.com>
	* config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
	2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (sibcall_compact): Set fp_mode to single.
	2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
	2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
	return value correctly for call_cookie.
	2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/crt1.asm (start): Modified so as to call
	___setup_argv_and_call_main.
	2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
	SHmedia mode.
	2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
	(STRIP_NAME_ENCODING): Use it.
	(ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
	2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
	prepare_scc_operands().
	* config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
	(DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
	2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
	2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
	* config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
	used in shcompact_incoming_args.
	* config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
	change.
	* config/sh/crt1.asm (start) [SH5]: Switch to single-precision
	mode.
	* config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
	Adjust accordingly.
	* config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
	Simplify.  Adjust.  Add sanity check.
	* config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
	FPU_SINGLE_BIT.
	* config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
	TARGET_SHCOMPACT.
	(udivsi3, divsi3): Use them.
	(force_mode_for_call): New insn.
	(call, call_value, sibcall_value): Emit it before SHcompact
	calls.
	2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (call, call_value, sibcall): Make sure the
	call cookie is non-NULL before taking its value.
	2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
	* config.gcc (sh64): Set target_requires_64bit_host_wide_int.
	2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (shcompact_incoming_args): Set argument memory
	block.
	* config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
	* config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
	temporary for stack adjusts.  Use MACL and MACH to pass
	arguments to shcompact_incoming_args.
	* config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
	clobber r1.
	* config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
	(nested_trampoline): Load static chain address into r1.
	* config/sh/sh.md (movdi_media splits): Fix sign-extension.
	2001-01-07  Alexandre Oliva  <aoliva@redhat.com
	* config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
	fp_arith_reg_operand().
	2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (casesi): Sign-extend the first two operands,
	and use signed compares for them.
	* config/sh/sh.c (dump_table): Don't emit 8-byte constants after
	4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
	ones properly aligned.
	(find_barrier): Account for extra alignment needed for 8-byte wide
	constants.
	(machine_dependent_reorg): Require a label for the second 4-byte
	constant after an 8-byte one.
	* config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
	change.
	2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
	last_float when switching float modes.
	* config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
	auto-increment for general-purpose registers.
	* config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
	result.
	* config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
	for stack adjust.
	* config/sh/sh.c (sh_builtin_saveregs): Support using all
	registers for varargs.
	2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
	* config/sh/sh.h (CALL_COOKIE_STACKSEQ,
	CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
	(CALL_COOKIE_INT_REG_SHIFT): Adjust.
	(FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
	call_cookie accordingly.
	(FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
	(SHCOMPACT_BYREF): Likewise.
	(SHCOMPACT_FORCE_ON_STACK): New macro.
	* config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
	(sh_builtin_saveregs): Likewise.
	* config/sh/lib1funcs.asm (shcompact_call_trampoline,
	shcompact_incoming_args): Use new shift values.  Support
	sequences of consecutive and non-consecutive pushes/pops.
	* config/sh/sh.md (return): Don't explicitly use PR_REG.
	2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
	* config/sh/sh.h (TEXT_SECTION): Define.
	* config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
	2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
	* config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
	return values on FPU-enabled SHmedia.
	(FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
	FPU-enabled SHmedia.
	(INIT_CUMULATIVE_ARGS): Set up return trampoline only if
	value is returned in a non-FP reg and is not returned by
	reference.
	* config/sh/sh.md (shcompact_return_tramp_i): Change type to
	jump_ind.
	2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
	(FUNCTION_ARG_CALLEE_COPIES): Require argument to be
	quad-aligned to be passed by callee-copy reference.
	2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
	* config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
	2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
	copying low-numbered FP regs to r7 and r8.
	* config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
	FP regs to general-purpose regs only if the copy was passed on the
	stack.
	* config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
	copying FP reg to r9.
	* config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
	copy FP regs to general-purpose regs only in outgoing calls.
	* config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
	change from	2000-10-30.  Adjust for 64-bit (or 32-bit)
	HOST_WIDE_INT.
	* config/sh/sh.h (struct sh_args): Document all fields.
	(FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
	passed partially on the stack should not consider making
	sibcalls.
	* config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
	stack_regs only for incoming calls.  When passing FP args,
	make sure there are FP regs available before modifying
	call_cookie.
	(SHCOMPACT_BYREF): Pass double args in general-purpose
	registers by reference.
	2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
	attempt to generate sibcalls if the caller got any arguments
	by reference.
	* config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
	* config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
	to 8-byte boundaries.
	* config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
	* config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
	* config/sh/sh.c (sh_expand_prologue): Preserve args that will be
	stored in the stack.
	* config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
	for the offsets to have the ISA bit set.
	(shcompact_call_trampoline): Document.  Swap r0 and r1, to match
	invocation.  Use beq instead of bgt to mark end of sequence of
	loads.
	(shcompact_incoming_args): Fix store of r2.  Use beq instead of
	bgt to mark end of sequence of stores.
	* config/sh/sh.c (arith_operand): Don't check whether
	CONST_OK_FOR_J for now.
	* config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
	instead of long for conversion.
	2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (print_operand_address): Convert INTVAL to int
	before passing it to fprintf.
	2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
	Call set_fpscr before reading/writing SR.
	* config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
	Call set_fpscr.
	* config/sh/lib1funcs.asm: Add `.align 2' directives before
	SHmedia code.
	(FMOVD_WORKS): Define on SH5 with FPU.
	(set_fpscr): Define on SH5.  Remove separate _fpscr_values
	setting.
	* config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
	_fpscr_values.
	2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
	* config/sh/lib1funcs.asm (ct_main_table): Align contents to even
	address.
	(ia_main_table): Ditto.
	2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
	* config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
	the definitions from sh.h.
	* config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
	TARGET_SH5.
	(SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
	* config/sh/elf.h (PTRDIFF_TYPE): Likewise.
	* config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
	2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
	Increment LABEL_NUSES.

	* config/sh/sh.h (SIZE_TYPE): Define as conditional on
	TARGET_SH5.
	(SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
	defined.
	* config/sh/elf.h (SIZE_TYPE): Likewise.
	* config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
	* config/sh/lib1funcs.asm (shcompact_call_trampoline,
	shcompact_incoming_args): Load switch table addresses using
	datalabel.
	* config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
	(NO_BUILTIN_SIZE_TYPE): Define.
	(SIZE_TYPE): Don't define.
	* config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
	* config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
	definition of __SH5__=32 for -m5-compact-nofpu.
	* config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
	ADDR_DIFF_VEC.
	2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
	2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
	(FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
	(INSN_LENGTH_ALIGNMENT): Likewise.
	2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (call, call_value, sibcall): Simplify
	copying of non-branch-target register.
	2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
	* glimits.h (__LONG_MAX__): Revert	2000-12-13's patch.
	* config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
	2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
	floating-point values as structs.
	(FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
	(SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
	general-purpose register.
	(SH5_PROTOTYPED_FLOAT_ARG): New macro.
	2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
	* config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
	* config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
	(ENCODE_SECTION_INFO): Enclose variables and constants in
	DATALABEL unspecs.
	(SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
	(STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
	(ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
	* config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
	only for LABEL_REFs.  For SYMBOL_REFs, prepend
	SH_DATALABEL_ENCODING to the symbol name.
	* config/sh/sh.md (indirect_jump): Use SUBREG instead of
	convert_mode().
	2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
	UNSPEC_DATALABEL.
	* config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
	* config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
	(DATALABEL_REF_P): Don't require CONST.
	(ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
	REL label.
	2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
	right.
	2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (movsi_media, call, call_value, sibcall):
	Use shallow_copy_rtx and PUT_MODE to change the mode of
	SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
	* config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
	on SHmedia using GENERAL_REGs.
	* config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
	bltu_media_i): Fix reversion of conditions.
	2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.md (zero_extendhidi2): Use logical shift right.
	* config/sh/sh.c (output_far_jump): Save r13 in macl.
	2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
	2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
	(GCC_nested_trampoline): Likewise.
	* config/sh/sh-protos.h (gen_datalabel_ref): Declare.
	* config/sh/sh.c (gen_datalabel_ref): Define.
	* config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
	(INITIALIZE_TRAMPOLINE): Likewise.
	(TRAMPOLINE_ADJUST_ADDRESS): Define.
	(DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
	(EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
	(OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
	* config/sh/sh.md (UNSPEC_DATALABEL): New constant.
	(ic_invalidate): Adjust for SH5.
	(ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
	* config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
	_nested_trampoline.
	2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
	(MOVE_MAX_PIECES): Set to 8 on SHmedia too.
	2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
	* config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
	2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (target_reg_operand): Match only target-branch
	registers and pseudos that aren't virtual registers.
	* config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
	Copy operands that don't match target_reg_operand to pseudos.
	(call_media, call_value_media, sibcall_media): Use
	target_reg_operand instead of target_operand.
	2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
	* glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
	* config/sh/sh.c (target_reg_operand): Match hardware registers
	other than branch-target registers.
	* config/sh/sh.md (zero_extendqidi2): Input operand is %1.
	* config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
	(fpscr_values) [SH5 == 32]: Define.
	* config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
	* config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
	Handle function addresses coming in SUBREGs.
	2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/lib1funcs.asm (shcompact_call_trampoline,
	shcompact_return_trampoline): Use datalabel where appropriate.
	2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
	general-purpose register to copy one branch-target register to
	another.
	2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (target_operand): Accept LABEL_REFs and
	SYMBOL_REFs with VOIDmode.
	* config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
	bltu_media_i): New insns.
	2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
	(INIT_CUMULATIVE_ARGS): Likewise.
	2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
	* machmode.def (V16SFmode): New mode.
	* c-common.c (type_for_mode): Support V2SF and V16SF.
	* tree.c (build_common_tree_nodes_2): Likewise.
	* tree.h (tree_index): Likewise.
	* calls.c (emit_call_1): Take args_so_far.  Adjust all
	callers.  Introduce CALL_POPS_ARGS.
	* tm.texi (CALL_POPS_ARGS): Document.
	* config/sh/crt1.asm: Implement in SHmedia mode.
	* config/sh/crti.asm, config/sh/crtn.asm: Likewise
	* config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
	(DBX_REGISTER_NUMBER): Renumber registers for SH5.
	* config/sh/lib1funcs.asm: Disable functions unused in SH5.
	Implement divsi and udivsi in SHmedia mode.  Introduce
	SHcompact trampolines.
	* config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
	only in SHmedia64.
	(regno_reg_class): Rewrite.
	(fp_reg_names): Remove.
	(sh_register_names, sh_additional_register_names): New.
	(print_operand): Added `u'.  Support SUBREGs in addresses.
	Add parentheses around shifted CONSTs.
	(output_file_start): Output .mode and .abi directives.
	(shiftcosts, addsubcosts, multcosts): Adjust.
	(output_stack_adjust): Compute alignment.  Sanity-check SIZE.
	(push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
	(calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
	bytes, not registers.  Take into account the need for the
	SHcompact incoming args trampoline.  Adjust all callers.
	(sh_expand_prologue): Take stack_regs into account.  Call
	incoming args trampoline.  Keep stack aligned as per SH5 ABI.
	(sh_expand_epilogue): Take stack_regs into accoutn.  Keep
	stack aligned as per SH5 ABI.
	(sh_builtin_saveregs): Support SH5 ABI.
	(sh_build_va_list, sh_va_start): Likewise.
	(initial_elimination_offset): Take alignment into account.
	Compute location of PR according to the SH5 stack frame.
	(arith_reg_operand): Reject branch-target registers.
	(shmedia_6bit_operand): New.
	(logical_operand): Use CONST_OK_FOR_P on SHmedia.
	(target_reg_operand): Match DImode only.  Accept SUBREGs.
	(target_operand): New.
	* config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
	(CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
	SIBCALL_REGS for SHmedia.
	(TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
	(TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
	(TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
	(TARGET_SWITCHES): New SH5 flags.
	(OVERRIDE_OPTIONS): Set SH5-specific options.  Use
	VALID_REGISTER_P to disable unsupported registers.
	(LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
	(POINTER_SIZE, PARM_BOUNDARY): Adjust.
	(FUNCTION_ARG_PADDING): Define.
	(FASTEST_ALIGNMENT): Adjust.
	(SH_REGISTER_NAMES_INITIALIZER): New.
	(sh_register_names): Declare.
	(DEBUG_REGISTER_NAMES): Define.
	(REGISTER_NAMES): Define based on sh_register_names.
	(SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
	(sh_additional_register_names): Declare.
	(LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
	(FIRST_TARGET_REG, LAST_TARGET_REG): Define.
	(TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
	(REGISTER_NATURAL_MODE): Define.
	(FIRST_PSEUDO_REGISTER): Adjust.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
	(HARD_REGNO_CALL_PART_CLOBBERED): Define.
	(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
	(VECTOR_MODE_SUPPORTED_P): Define.
	(REG_CLASS_CONTENTS): Adjust.
	(SMALL_REGISTER_CLASSES): Adjust.
	(REG_ALLOC_ORDER): Adjust.
	(INDEX_REG_CLASS): Adjust.
	(CONST_OK_FOR_O, CONST_OK_FOR_P): New.
	(CONST_OK_FOR_LETTER_P): Adjust.
	(PREFERRED_RELOAD_CLASS): Adjust.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
	(SECONDARY_INPUT_RELOAD_CLASS): Adjust.
	(NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
	(FIRST_FP_PARM_REG): Adjust.
	(CALL_POPS_ARGS): Define.
	(FUNCTION_ARG_REGNO_P): Adjust.
	(struct sh_args): New fields.
	(GET_SH_ARG_CLASS): Adjust.
	(INIT_CUMULATIVE_ARGS): Adjust.
	(INIT_CUMULATIVE_INCOMING_ARGS): Define.
	(FUNCTION_ARG_ADVANCE): Adjust.
	(FUNCTION_ARG): Adjust.
	(FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
	(FUNCTION_ARG_CALLEE_COPIES): Define.
	(SH5_PROTOTYPELESS_FLOAT_ARG): Define.
	(STRICT_ARGUMENT_NAMING): Define.
	(PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
	(FUNCTION_ARG_PARTIAL_NREGS): Adjust.
	(SH5_WOULD_BE_PARTIAL_NREGS): Define.
	(SETUP_INCOMING_VARARGS): Adjust.
	(HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
	(USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
	(REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
	(SUBREG_OK_FOR_INDEX_P): Adjust.
	(EXTRA_CONSTRAINT_S): Update.
	(EXTRA_CONSTRAINT_T): New.
	(EXTRA_CONSTRAINT): Adjust.
	(GO_IF_LEGITIMATE_INDEX): Adjust.
	(GO_IF_LEGITIMATE_ADDRESS): Adjust.
	(LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
	(MOVE_MAX): Adjust.
	(MAX_MOVE_MAX): Define.
	(Pmode): Adjust.
	(CONST_COSTS): Adjust.
	(REGISTER_MOVE_COST): Adjust.
	(BRANCH_COST): Adjust.
	(TEXT_SECTION_ASM_OP): Adjust.
	(DBX_REGISTER_NUMBER): Adjust.
	(ASM_OUTPUT_DOUBLE_INT): New.
	(UNALIGNED_DOUBLE_INT_ASM_OP): New.
	(PREDICATE_CODES): Adjust.
	(PROMOTE_MODE): Adjust.
	(CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
	* config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
	(MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
	(PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
	(DR0_REG, DR2_REG, DR4_REG): Renumber.
	(TR0_REG, TR1_REG, TR2_REG): New.
	(XD0_REG): Renumber.
	(UNSPEC_COMPACT_ARGS): New.
	(type): Added pt and ptabs.
	(length): Default to 4 on SHmedia.  Default pt length to 12
	and	20 on SHmedia32 and SHmedia64, respectively.
	(pt): New function unit.
	(movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
	Add whitespace between operands of SHmedia instructions.
	(movdicc): Fix.
	(adddi3_media, addsi3_media): Adjust constraints.
	(subsi3) [SHmedia]: Force operand 1 into a register.
	(udivsi3_i1_media, udivsi3_i4_media): New.
	(udivsi3): Support SHmedia.
	(divsi3_i1_media, divsi3_i4_media): New.
	(divsi3): Support SHmedia.
	(anddi3, iordi3, xordi3): Adjust constraints.
	(zero_extendhidi2, zero_extendqidi2): New.
	(extendsidi2, extendhidi2, extendqidi2): New.
	(push, pop, push_e, push_fpul, push_4): Disable on SH5.
	(pop_e, pop_fpul, pop_4): Likewise.
	(movsi_media): Support FP and BT registers.
	(movsi_media_nofpu): New.  Adjust splits to DImode.
	(lduw, ldub): Renamed to zero_extend* above.
	(movqi_media): Fix typo.
	(movdi_media): Support FP and BT registers.
	(movdi_media_nofpu): New.  Adjust splits for SHmedia32.
	(movdi_const_32bit): New.
	(shori_media): Require immediate operand.  Use `u' for output.
	(movdf_media, movsf_media): Simplified.
	(movdf_media_nofpu, movsf_media_nofpu): New.
	(movdf, movsf): Adjust
	(movv2sf, movv2sf, movv16sf): New.
	(beq_media, beq_media_i): Adjust constraints.  Don't use
	scratch BT register.
	(bne_media, bne_media_i): Likewise.
	(bgt_media, bgt_media_i): Likewise.
	(bge_media, bge_media_i): Likewise.
	(bgtu_media, bgtu_media_i): Likewise.
	(bgeu_media, bgeu_media_i): Likewise.
	(beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
	bunordered): Emit jump insn.  Force operands to registers when
	needed.
	(jump_media, jump): Simplify.
	(call_compact, call_compact_rettramp): New.
	(call_value_compact, call_value_compact_rettramp): New.
	(call_media, call_value_media): Simplify.
	(sibcall_compact, sibcall_media): New.
	(call, call_value): Adjust for SHmedia and SHcompact.
	(sibcall, sibcall_value, untyped_call): Likewise.
	(sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
	(indirect_jump): Adjust for SHmedia.
	(casesi_jump_media): New.
	(nop): Re-enable for SHmedia.
	(call_site): Restrict to SH1.
	(casesi): Adjust for SHmedia.
	(casesi_shift_media, casesi_load_media): New.
	(return): Explicitly use PR register.  Call return trampoline
	on SHcompact.
	(return_i): Explicitly use PR register.
	(shcompact_return_tramp, shcompact_return_tramp_i): New.
	(return_media): Adjust.
	(shcompact_incoming_args): New.
	(epilogue): Adjust.
	(seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
	(movstrsi): Disable on SH5.
	(fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
	(addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
	(subsf3, subsf3_media): Likewise.
	(mulsf3, mulsf3_media, mac_media): Likewise.
	(divsf3, divsf3_media): Likewise.
	(floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
	(floatsisf2, fux_truncsfsi2): Likewise.
	(fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
	constraints.
	(cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
	(cmpunsf_media, cmpsf): Likewise.
	(negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
	(abssf2, abssf2_media): Likewise.
	(adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
	(muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
	(floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
	(floatsidf2, fix_truncdfsi2): Likewise.
	(fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
	constraints.
	(cmpeqdf_media, cmpgtdf_media): Likewise.
	(cmpgedf_media, cmpundf_media, cmpdf): Likewise.
	(negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
	(absdf2, absdf2_media): Likewise.
	(extendsfdf2, extendsfdf2_media): Likewise.
	(truncsfdf2, truncsfdf2_media): Likewise.
	* config/sh/sh64.h: New file.
	* config/sh/t-sh64: New file.
	* config/sh/shmedia.h: New file.
	* config/sh/ushmedia.h: New file.
	* config/sh/sshmedia.h: New file.
	* configure.in: Added sh64-*-elf.
	* configure: Rebuilt.
	2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
	(reg_class_from_letter): Use `b' for TARGET_REGS.
	(print_operand): Support `%M', `%m', `AND' and
	`ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
	(andcosts): Adjust for SHmedia.
	(output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
	Likewise.
	(target_reg_operand): New function.
	* config/sh/sh-protos.h (target_reg_operand): Declare.
	* config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
	FP registers on SH5.
	(HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
	on SH4.
	(TARGET_REGISTER_P): New macro.
	(reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
	(FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
	(EXTRA_CONSTRAINT_S): New macro.
	(EXTRA_CONSTRAINT): Adjust.
	(FLOAT_TYPE_SIZE): Define to 32.
	(Pmode): DImode on SHmedia.
	(CONST_COSTS): Adjust for SHmedia literals.
	(PREDICATE_CODES): Added target_reg_operand.
	(PROMOTE_MODE): Promote signed types to DImode on SHmedia.
	* config/sh/sh.md: Remove all attrs from SHmedia insns.
	(cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
	(cmpdi): Accept SHmedia.
	(movdicc_false, movdicc_true): New insns.
	(movdicc): New expand.
	(adddi3): Accept arith_operand for op2, but FAIL on SH1 if
	no_new_pseudos.
	(addsi3_media): Match `S' constraint.
	(anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
	(negdi2): Expand for SHmedia.
	(one_cmpldi2): New expand.
	(zero_extendsidi2): Change from expand to insn.
	(extendsidi2): Add constraints.
	(movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
	LD/ST address.  Fix SI immediate loading split.
	(movhi_media, movqi_media, lduw, ldub): New insns.
	(movhi, movqi): Accept SHmedia.
	(shori_media, movdi_media): Relax input constraints.  Split
	symbolic constants.
	(movdf_media, movsf_media): New insn.  New split to movdi.
	(movdf, movsf): Match on SHmedia.
	(beq_media, bne_media, bgt_media, bge_media, bgtu_media,
	bgeu_media): New insns and splits.  New insns with `_i' suffix.
	(beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
	(bunordered): New expand.
	(jump_compact): Renamed from `jump'.
	(jump_media): New insn.
	(jump): New expand.
	(call_media, call_value_media): New insns.
	(call, call_value): Adjust.
	(indirect_jump_compact): Renamed from `indirect_jump'.
	(indirect_jump_media): New insn.
	(indirect_jump): New expand.
	(untyped_call, return): Accept SHmedia.
	(return_media): New insn.
	(prologue, epilogue, blockage): Accept SHmedia.
	(seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
	(sunordered): New expand.
	(addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
	cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
	(addsf3_media, subsf3_media, mulsf3_media, mac_media,
	divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
	fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
	cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
	abssf2_media): New insns.
	(adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
	cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
	(adddf3_media, subdf3_media, muldf3_media, divdf3_media,
	floatdidf2, floatsidf2_media, fix_truncdfdi2,
	fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
	cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
	absdf2_media): New insns.
	(extendsfdf2, truncdfsf2): Adjust for SHmedia.
	(extendsfdf2_media, truncdfsf2_media): New insns.
	2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
	* config/sh/sh.h (CONST_OK_FOR_J): Document.
	(LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
	* config/sh/sh.md (adddi3): New expand.
	(adddi3_media, adddi3z_media): New insns.
	(adddi3_compact): Renamed from adddi3.
	(addsi3_media): Use add.l r63 to add constant zero.
	(subdi3): New expand.
	(subdi3_media): New insn.
	(subdi3_compact): Renamed from subdi3.
	(mulsidi3): New expand.
	(mulsidi3_media): New insn.
	(mulsidi3_compact): Renamed from mulsidi3.
	(umulsidi3): New expand.
	(umulsidi3_media): New insn.
	(umulsidi3_compact): Renamed from umulsidi3.
	(ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
	(ashlsi3, ashrsi3, lshrsi3): Use them.
	(ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
	(ashldi3, ashrdi3, lshrdi3): Use them.
	(zero_extendsidi2): New expand.
	(extendsidi2): New insn.
	(movsi_media): New insn.  Split to movdi to load constants.
	(movsi): Enable for shmedia.
	(movdi_media): New insn.  Use shori_media to load wide constants.
	(short_media): New insn.
	(movdi): Enable for shmedia.
	2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
	* config/sh/sh.h (CPP_SPEC): Added `m5'.
	(SUBTARGET_CPP_SPEC): Added `!m5'.
	(SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
	(TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
	to all other SH variants.
	(TARGET_DEFAULT): Set to SH1_BIT.
	(OVERRIDE_OPTIONS): Recognize sh5 CPU.
	(BITS_PER_WORD): Raise to 64 on shmedia.
	(MAX_BITS_PER_WORD): Change to 64.
	(MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
	(INT_TYPE_SIZE): Keep as 32.
	(UNITS_PER_WORD): Raise to 8 on shmedia.
	(MIN_UNITS_PER_WORD): Keep as 4.
	(POINTER_SIZE): Raise to 64 on shmedia.
	(CONST_OK_FOR_J): New macro.
	(CONST_OK_FOR_LETTER_P): Use it.
	(processor_type): Add PROCESSOR_SH5.
	* config/sh/sh.md: Conditionalize all expands, insns and
	splits to TARGET_SH1.
	(cpu): Added sh5.
	(addsi3_compact): Renamed from...
	(addsi3): Now an expand.
	(addsi3_media, subsi3_media): New insns.
	(subsi3): Don't negate constants with SHmedia.

	* hooks.c: New file.
	* hooks.h: New file.
	* Makefile.in (HOOKS_H): New.
	(TARGET_DEF_H): Added $(HOOKS_H).
	(OBJS): Added hooks.o.
	(cfgcleanup.o, bb-reorder.o): Added target.h.
	(hooks.o): Added dependencies.
	* target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
	(TARGET_INITIALIZER): this.
	* doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
	* target.h (struct gcc_target): Added cannot_modify_jumps_p.
	* bb-reorder.c: Include target.h.
	(reorder_basic_blocks): Skip if cannot modify jumps.
	* cfgcleanup.c: Include target.h.
	(try_optimize_cfg): Skip merge blocking if cannot modify jumps.

2002-02-08  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.md (casesi_internal, casesi_internal_di):
	Protect jump delay slot instructions with .set noreorder and
	.set nomacro.

2002-02-08  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.md (casesi_internal_di): Calculate
	the index into the target offset table correctly.

2002-02-08  Richard Henderson  <rth@redhat.com>

	* expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
	* final.c (output_addr_const): Accept and discard SUBREG.
	* varasm.c (decode_addr_const): Don't abort on unknown expressions --
	mark them unknown instead.
	(simplify_subtraction): Handle RTX_UNKNOWN.
	(initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.

2002-02-08  David Edelsohn  <edelsohn@gnu.org>

	* doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.

2002-02-08  Richard Henderson  <rth@redhat.com>

	* config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.

2002-02-08  Andreas Jaeger  <aj@suse.de>

	* config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
	* config/i386/t-linux64: New file.

2002-02-08  Jakub Jelinek  <jakub@redhat.com>

	* c-common.c (c_expand_expr): Revert 2002-02-06 patch.
	* c-parse.in (compstmt): Clear last_expr_type.

2002-02-07  Richard Henderson  <rth@redhat.com>

	* loop.c (strength_reduce): Sink final_value when not
	eliminating a biv.

2002-02-07  David O'Brien  <obrien@FreeBSD.org>

	* config/sparc/freebsd.h: Fix mismatched spec {.

2002-02-07  Richard Henderson  <rth@redhat.com>

	* cfgrtl.c: Include recog.h and insn-config.h.
	(keep_with_call_p): Fix general_operand invocation.
	* Makefile.in (cfgrtl.o): Update dependencies.

2002-02-07  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
	comment.  Accept HImode only if TARGET_H8300.

2002-02-07  Eric Christopher  <echristo@redhat.com>

	* config/mips/crtn.asm: Cleanup #ifdefs.

2002-02-07  Eric Christopher  <echristo@redhat.com>

	* config/mips/crti.asm: Add changes for mips16. mips16 uses
	register 7 as RA instead of $31.
	* config/mips/crtn.asm: Ditto.
	* config/mips/mips.c (mips_move_2words): Add case for
	TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
	(compute_frame_size): Fix typo.
	(save_restore_insns): Ditto.  Make documentation about using
	register $7 as return register more precise.
	(mips_expand_epilogue): Fix comment. Add code to work around not
	being able to add to the stack pointer directly.
	* config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
	to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
	epilogue.

2002-02-07  Tom Rix  <trix@redhat.com>

	* config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
	immediates in ldu and stdu DS opcode field.
	* config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
	* config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
	* config/rs6000/rs6000.h (PREDICATE_CODES): Same.

2002-02-07  Jeff Sturm  <jsturm@one-point.com>

	* config/sparc/sparc.c (compute_frame_size): Don't correct frame
	offset for stack bias.

2002-02-07  H.J. Lu <hjl@gnu.org>

	* config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.

2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>

	* testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.

Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386-protos.h (x86_order_regs_for_local_alloc): Declare
	* i386.c (x86_order_regs_for_local_alloc): New global function.
	* i386.h (REG_ALLOC_ORDER): CLeanup.
	(ORDER_REGS_FOR_LOCAL_ALLOC): New.

2002-02-07  Richard Henderson  <rth@redhat.com>

	PR optimization/2463
	* alias.c (find_base_value): Recall base values for fixed hard regs.
	* loop.c (loop_regs_update): Don't use single_set on non-insns.

2002-02-07  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.md (define_delay) [mips16]: Adjust required
	length.

2002-02-06  Richard Henderson  <rth@redhat.com>

	PR c/5609
	* stmt.c (resolve_operand_name_1): Take more care with mixed
	named and unnamed operands.

2002-02-06  Janis Johnson  <janis187@us.ibm.com>
	    Jan Hubicka  <jh@suse.cz>

	* loop.c (remove_constant_addition): Avoid clobbering a shared
	CONST expression.

2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
	* config/s390/t-linux64: New file.
	* config/s390/libgcc-glibc.ver: New file.

2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux64.h: Delete file.
	* config/s390/s390x.h: New file.
	* config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
	as target header file.
	* config/s390/linux.h (TARGET_VERSION): Define depending on
	DEFAULT_TARGET_64BIT.
	(CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
	(SIZE_TYPE, PTRDIFF_TYPE): Likewise.
	(NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
	(CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
	(LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
	(EXTRA_SPEC): New define.
	* config/s390/s390.h (TARGET_VERSION): Define depending on
	DEFAULT_TARGET_64BIT.
	(MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.

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

	* c-decl.c (finish_function): Warn about a non-void function with
	no return statement and no abnormal exit.
	(current_function_returns_abnormally): New variable.
	(start_function): Clear it.
	(struct c_language_function): Add returns_abnormally.
	(push_c_function_context): Save it.
	(pop_c_function_context): Restore it.
	(builtin_function): Set TREE_THIS_VOLATILE on return fns.
	(grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
	an explicit return type.
	* c-tree.h: Declare current_function_returns_abnormally.
	(C_FUNCTION_IMPLICIT_INT): New macro.
	* c-typeck.c (build_function_call): Set it.
	(c_expand_return): Set current_function_returns_value even if the
	value is erroneous.

2002-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR c/5420:
	* c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
	unsafe for reevaluation.

2002-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR c/5482:
	* c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
	EXPR_STMT, but COMPOUND_STMT, recurse into it.

2002-02-06  Richard Henderson  <rth@redhat.com>

	* cfganal.c (keep_with_call_p): Source for fixed_reg dest must
	be a general_operand.  Dest for function value must be a pseudo.

2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>

	* dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
	as SYMBOL_REFs from the constant pool.

2002-02-06  Alexandre Oliva  <aoliva@redhat.com>

	* dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
	passed by invisible reference.

2002-02-05  Richard Henderson  <rth@redhat.com>

	* config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.

2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>

	Implement using "base addresses" in insn operands as default.
	* config/mmix/mmix.c (mmix_conditional_register_usage): if
	-mabi=gnu, modify fixed_regs to fit the GNU ABI.
	(mmix_extra_constraint): Use 'R' to indicate that GETA should be
	used to read the rtx value.
	(mmix_target_asm_function_epilogue): Fix spacing.
	(mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
	(mmix_legitimate_address): Ditto.
	(mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
	should be loaded with a GETA insn.  Don't allocate needless extra
	char for nul termination and fix misleading comment.
	(mmix_print_operand_address): Handle constants if
	TARGET_BASE_ADDRESSES.
	(mmix_output_register_setting): Use base addressing if
	TARGET_BASE_ADDRESSES and the number of insns is 3.
	* config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
	* config/mmix/mmix.md ("movdi"): Change the alternative with GETA
	to use R as constraint, add LDA to match s.
	* config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
	(TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
	(TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
	(FIXED_REGISTERS): Make registers $231..$246 fixed by default.
	(MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
	order with other fixed registers.
	(MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
	other parameter/call-clobbered registers.
	* doc/invoke.texi (Option Summary) <MMIX Options>: Add
	-mbase-addresses, -mno-base-addresses.
	(MMIX Options): Ditto.

2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.h (PREDICATE_CODES): Add reg_before_reload_operand.

2002-02-06  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h: Change elem to _S_elem.

2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/netbsd.h (WCHAR_TYPE): Define.
	(WCHAR_TYPE_SIZE): Ditto.
	(WINT_TYPE): Ditto.
	* config/alpha/netbsd.h (WCHAR_TYPE): Remove.
	(WCHAR_UNSIGNED): Ditto.
	(WCHAR_TYPE_SIZE): Ditto.
	(WINT_TYPE): Ditto.
	* config/arm/netbsd.h: Likewise.
	* config/i386/netbsd-elf.h: Likewise.
	* config/i386/netbsd.h: Likewise.
	* config/m68k/netbsd-elf.h: Likewise.
	* config/m68k/netbsd.h: Likewise.
	* config/ns32k/netbsd.h: Likewise.
	* config/sparc/netbsd.h: Likewise.
	* config/vax/netbsd.: Likewise.

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

	* target.h (struct gcc_target): Added ms_bitfield_layout_p.
	* target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
	(TARGET_INITIALIZER): this.
	* doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
	(BITFIELD_NBYTES_LIMITED): Markup fix.
	* tree.h (default_ms_bitfield_layout_p): Declare.
	(record_layout_info): Added prev_field.
	* tree.c (default_ms_bitfield_layout_p): New fn.
	* c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
	PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
	* stor-layout.c: Include target.h.
	(start_record_layout): Initialize prev_field.
	(place_field): Handle MS bit-field layout, and disregard
	EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
	PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
	* Makefile.in (stor-layout.o): Adjust dependencies.

2002-02-05  Jason Merrill  <jason@redhat.com>

	* collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.

2002-02-05  Andreas Jaeger  <aj@suse.de>

	* crtstuff.c: Fix comments.

2002-02-05  Richard Henderson  <rth@redhat.com>

	PR fortran/3393
	* loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
	(loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.

	PR fortran/3392
	* config/mips/mips.c (function_arg): Handle TImode.
	(function_arg_advance): Likewise.

2002-02-05  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h (vec_step_help): Rename to
	__vec_step_help.

2002-02-05  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h: Fix typos.

2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/arm/netbsd.h: Correct a comment.

2002-02-05  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
	building void typed builtins.

	* config/rs6000/altivec.h (vec_ld*): Fix typos.
	(vec_step): Implement for C++.

Mon Feb	 4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.

2002-02-04  Richard Henderson  <rth@redhat.com>

	* combine.c (nonzero_bits): Re-introduce special case for
	sp/fp/ap wrt REGNO_POINTER_ALIGN.

2002-02-05  Aldy Hernandez  <aldyh@redhat.com>

	* doc/extend.texi: Warn about unsupported usage of altivec
	builtins.

	* config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
	(altivec_predicate_*): New.

	* config/rs6000/altivec.h: Rewrite predicates to use new builtins.
	Add C++ version of vec_*() functions.

	* config/rs6000/rs6000.c (bdesc_altivec_preds): New.
	(bdesc_2arg): Remove altivec predicates.
	(altivec_expand_builtin): Handle predicates.
	(altivec_init_builtins): Handle predicates.
	(altivec_expand_predicate_builtin): New.

2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (DO_FRAME_NOTES): Move forward.
	(store_reg): Revise handling of frame notes.
	(load_reg): Likewise.
	(set_reg_plus_d): Likewise.
	(hppa_expand_prologue): Likewise.
	(hppa_expand_epilogue): Likewise.

2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.

2002-02-04  Jakub Jelinek  <jakub@redhat.com>

	PR c/4475, c++/3780:
	* c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
	* c-common.h (SWITCH_TYPE): Define.
	* c-typeck.c (c_start_case): Set SWITCH_TYPE.
	* stmt.c (all_cases_count): Set lastval to thisval at end of loop.
	Rename spareness variable to sparseness.
	(expand_end_case_type): Renamed from expand_end_case, use orig_type
	if non-NULL instead of TREE_TYPE (orig_index).
	* tree.h (expand_end_case_type): Renamed from expand_end_case.
	(expand_end_case): Define using expand_end_case_type.
	* c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
	to expand_end_case_type.
	* doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.

2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
	(BIGGEST_ALIGNMENT): Change to 128.

2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa32-linux.h (LINK_COMMAND_SPEC): Define.

2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.md (call_internal_reg_64bit): Remove unused variable.

2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.h (machine_function): Add uses_anonymous_args
	field.
	(SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
	* config/arm/arm.c (current_function_anonymous_args): Delete,
	replace uses with cfun->machine->uses_anonymous_args.
	(arm_reorg): Do not reset uses_anonymous_args.

	* config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
	any geenral register.

2001-02-04  Bernd Schmidt  <bernds@redhat.com>s

	* cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
	the entry block.

2002-02-04  Richard Henderson  <rth@redhat.com>

	* combine.c (force_to_mode): Remove STACK_BIAS code.
	(nonzero_bits): Likewise.  Replace sp/fp special case with
	REGNO_POINTER_ALIGN.

	* config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
	(HARD_FRAME_POINTER_REGNUM): New.
	(FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
	(FIXED_REGS, CALL_USED_REGS): Update.
	(REG_ALLOC_ORDER, REGISTER_NAMES): Update.
	(CONDITIONAL_REGISTER_USAGE): Update for HFP.
	(HARD_REGNO_NREGS): Update for SFP.
	(STACK_POINTER_OFFSET): Include bias here ...
	(FIRST_PARM_OFFSET): ... not here.
	(STACK_BIAS): Remove.
	(INIT_EXPANDERS): New.
	(STARTING_FRAME_OFFSET): Do not include bias.
	(ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
	(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
	(REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
	* config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
	* config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
	* config/sparc/sparc.c (mem_min_alignment): Update for HFP.
	(sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
	(MUST_SAVE_REGISTER): Likewise.
	(sparc_flat_function_prologue): Likewise.
	(sparc_flat_function_epilogue): Likewise.
	(HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
	(sparc_init_modes): SFP is GENERAL_REGS.
	(sparc_builtin_saveregs): SFP does not have bias applied.

2002-02-04  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (current_function_is_thunk): Don't check
	current_function_is_thunk.
	(alpha_sa_mask): Distinguish between current_function_is_thunk
	called from ASM_OUTPUT_MI_THUNK and not.
	(alpha_does_function_need_gp): Thunks always need gp.
	(alpha_start_function, alpha_output_function_end_prologue): Likewise.
	(alpha_output_mi_thunk_osf): New.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.

2002-02-04  Richard Sandiford  <rsandifo@redhat.com>

	* c-typeck.c (build_c_cast): Warn when qualifiers are added to
	function types, not when they're taken away.

Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)

	* cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
	CODE_LABEL and jump table when replacing a table jump with a
	simple jump.

2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390-protos.h (legitimize_la_operand,
	s390_secondary_input_reload_class, s390_plus_operand,
	s390_expand_plus_operand): Add prototypes.

	config/s390/s390.c (s390_secondary_input_reload_class,
	s390_plus_operand, s390_expand_plus_operand): New functions.

	(struct s390_address): New member 'pointer'.
	(s390_decompose_address): Compute it.
	(legitimate_la_operand_p): Use it.
	(legitimize_la_operand): New function.
	(movti, movdi, movdf splitters): Call it.

	config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
	(PREDICATE_CODES): Add s390_plus_operand.

	config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
	(la_ccclobber): Allow GENERAL_REGS as output operand.

	(reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
	*reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
	(*la_64, *la_31, reload_indi, reload_insi): ... these.

2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>

	* gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
	register names for regular asm () construct.

2002-02-04  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.md (movsf_1): Allow moving SF values in MMX
	registers.

2002-02-04  Jakub Jelinek  <jakub@redhat.com>

	* combine.c (recog_for_combine): Create a dummy insn with PATTERN
	pat for recog.

2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>

	* varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
	constant pool to be identical by string address and index.

2002-02-04  Anthony Green  <green@redhat.com>

	* output.h (SECTION_OVERRIDE): Define.
	* varasm.c (named_section): Obey SECTION_OVERRIDE.

2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
	by existing arm*-*-netbsd* (a.out) target.
	(ns32k-*-netbsdelf*): Likewise.
	(sparc-*-netbsdelf*): Likewise.
	(vax-*-netbsdelf*): Likewise.

2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>

	* gthr-win32.h: Protect against conflicting typedef for BOOL in windows
	headers and libobjc headers.

2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>

	* gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
	(_mingw.h): Remove duplicate include.

2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc: Set cpu_type to m68k for 68010, as well.
	(m68010-*-netbsdelf*): New...
	(m68k*-*-netbsdelf*): ...targets.
	* config/m68k/netbsd-elf.h: New file.

2002-02-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (hand_list): Move inside function_arg.

2002-02-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (h8_push_ops): Move inside
	h8300_init_once.
	(h8_pop_ops): Likewise.
	(h8_move_ops): Likewise.

2002-02-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (os_task): Make it static.
	(monitor): Likewise.
	(pragma_saveall): Likewise.

2002-02-02  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (ic_invalidate_line): Make sure the immediate
	constant is a valid sign-extension for Pmode.

2002-02-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c: Fix formatting.

2002-02-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Fix formatting.

2002-02-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (one_cmpl patterns): Tighten the
	predicates of operands[1].  Split the patterns for each
	processor variant.

2002-02-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (xor patterns): Tighten the predicates
	of operands[1] to register_operand.

2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
	* cpphash.c (_cpp_init_hashtable): Similarly.
	* cppinit.c (cpp_create_reader): Default the signed_char flag.
	(init_builtins): Define __CHAR_UNSIGNED__ appropriately.
	(COMMAND_LINE_OPTIONS): Recognize -f{un,}signed-char.
	(cpp_handle_option): Handle the new options.
	* cpplex.c (cpp_interpret_charconst): Use new flag.
	* cpplib.h (struct cpp_options): New member signed_char.
	* gcc.c (cpp_unique_options): Remove %c spec and documentation.
	(cpp_options): Handle -fsigned-char and -funsigned-char.
	(static_specs): Remove signed_char_spec.
	(do_spec1): Don't handle %c.
	* system.h: Poison SIGNED_CHAR_SPEC.
	* tradcif.y (yylex): Use flag_signed_char.
	* tradcpp.h (flag_signed_char): New.
	* tradcpp.c (flag_signed_char): New.
	(main): Handle new command-line options.
	(initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
config:
	* alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
	* avr/avr.h: Remove old comments.
	* i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
	(CC1_SPEC): Pass -fsigned-char if -mic*.
	(SIGNED_CHAR_SPEC): Remove.
doc:
	* tm.texi (SIGNED_CHAR_SPEC): Remove documentation.

2002-02-01  Eric Christopher  <echristo@redhat.com>

	From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
	* config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
	* config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
	(ASM_OUTPUT_REG_POP): Ditto.

2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>

	* c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
	patch.

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

	* config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.

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

	PR c/5304:
	* expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
	unconditionally.

2002-02-01  Janis Johnson  <janis187@us.ibm.com>

	* cfganal.c: Include tm_p.h.
	(keep_with_call_p): Fix the test that determines if a register holds
	the return value of a call.

2002-02-01  DJ Delorie  <dj@redhat.com>

	* config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
	we are given conflicting registers, switch to the other one we
	had allocated for us.
	* config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
	as TImode so we know when the "other" register is available.

2002-02-01  David O'Brien  <obrien@FreeBSD.org>

	* config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
	sparc/sparc_bi.h.

2002-02-01  Janis Johnson  <janis187@us.ibm.com>

	* cfganal.c (keep_with_call_p): New function.
	(flow_call_edges_add): Prevent splitting a block between a call and
	a single-set instruction that should be kept in the same block.

2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* doc/install.texi (avr): Update outdated URL.

2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>

	* config/stormy16/stormy16.md (pushqi): New.
	(popqi): New.
	(pushhi): New.
	(pophi): New.
	(movhi): Remove stack operands.
	(movqi): Likewise.
	* config/stormy16/stormy16.h (PREDICATE_CODES): Add
	nonimmediate_nonstack_operand.
	* config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
	New.
	* config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
	New.

2002-01-31  Jason Merrill  <jason@redhat.com>

	* Makefile.in (c-parse.c): Handle .output file.
	* objc/Make-lang.in (objc-parse.c): Likewise.

2002-02-01  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
	the -me[lb] option is given.  Don't output the default flag
	twice.

2002-01-31  Zack Weinberg  <zack@codesourcery.com>

	* c-lex.c (yyparse): Call debug_hooks->start_source_file for
	the primary source file; this has not been done yet.
	* c-decl.c (c_expand_body): Reset input_filename from
	DECL_SOURCE_FILE (fndecl) before calling init_function_start.

2002-01-31  Kazu Hirata  <kazu@hxi.com>

	* rtlanal.c (subreg_regno_offset): Do not use
	SUBREG_REGNO_OFFSET.
	* system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
	* doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.

2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>

	* gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
	version rather than GNATS version in --version output.

2002-01-31  Richard Sandiford  <rsandifo@redhat.com>

	* ifcvt.c (noce_process_if_block): Make a copy of the destination
	when copying back from a temporary.

2002-01-30  Richard Henderson  <rth@redhat.com>

	* ifcvt.c (dead_or_predicable): Handling merging when other_bb
	and new_dest are the same.

2002-01-30  Richard Henderson  <rth@redhat.com>

	PR opt/5076
	* rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
	* rtl.c (note_insn_name): Update.
	* emit-rtl.c (remove_unnecessary_notes): Kill it.
	* stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
	to perform loop rotation.
	(expand_exit_loop_top_cond): New.
	* tree.h (expand_exit_loop_top_cond): Declare it.
	* c-semantics.c (genrtl_while_stmt): Use it.
	(genrtl_for_stmt): Likewise.

2002-01-30  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
	arguments to 64-bit boundaries on 64-bit ABIs.

2002-01-30  Steve Ellcey  <sje@cup.hp.com>

	* loop.c (loop_invariant_p): Special case pic_offset_table_rtx.

2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>

	* c-decl.c (grokdeclarator): Handle type being a typedef for an
	invalid type.

2002-01-30  David O'Brien  <obrien@FreeBSD.org>

	* config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
	* config/sparc/sparc_bi.h: Remove file.
	* config/sparc/biarch64.h: New file (rename of sparc_bi.h).

2002-01-30  Richard Henderson  <rth@redhat.com>

	* sched-deps.c (sched_analyze): Make a call read the frame pointer.

2002-01-30  Zack Weinberg  <zack@codesourcery.com>

	* expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.

2002-01-30  Jason Merrill  <jason@redhat.com>

	* dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
	(output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
	(reg_save): Use DW_CFA_offset_extended_sf instead.

	* dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.

2002-01-29  Jakub Jelinek  <jakub@redhat.com>

	* cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
	in cselib_lookup.

2002-01-29  Aldy Hernandez  <aldyh@redhat.com>

	* rs6000.md ("*call_value_local32"): Remove constraints.
	("*call_value_local64"): Same.
	("*call_value_indirect_nonlocal_aix32"): Same.
	("*call_value_nonlocal_aix32"): Same.
	("*call_value_indirect_nonlocal_aix64"): Same.
	("*call_value_nonlocal_aix64"): Same.
	("*call_value_nonlocal_sysv"): Same.

2002-01-29  Richard Henderson  <rth@redhat.com>

	* config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.

2002-01-29  Richard Henderson  <rth@redhat.com>

	* expr.c (force_operand): Ignore flag_pic for detecting pic
	address loads.
	* regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
	for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
	* resource.c (mark_target_live_regs): Use regs_invalidated_by_call
	instead of open-coded loop.
	* doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
	be fixed when in use.

2002-01-29  Richard Henderson  <rth@redhat.com>

	* sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
	* sched-rgn.c (propagate_deps): Update them.
	* sched-deps.c (sched_analyze_insn): Update them.  Flush the
	clobbers list when either gets too long.

2002-01-29  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
	and INDEX_REGS the same as GENERAL_REGS.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.

2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>

	* tree.c (build_nonstandard_integer_type): Correct prototype.

2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md (movstrsico, movstrdix_64,
	movstrsix_31): Remove, replace by ...
	(movstrdi_short, movstrsi_short, movstrdi_long,
	movstrsi_long): ... these.  New.
	(movstrdi, movstrsi): Adapt.

	(rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
	ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
	Remove unnecessary CC clobber.
	(*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
	*ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.

	(divmoddi4): Don't partially initialize TImode register.

2002-01-29  Geoffrey Keating  <geoffk@redhat.com>

	* doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.

2002-01-29  Richard Henderson  <rth@redhat.com>

	* flow.c (print_rtl_and_abort): Remove.
	(print_rtl_and_abort_fcn): Remove.
	(verify_local_live_at_start): Use dump_bb instead.
	(verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
	(verify_wide_reg_1): Return 2 on mode test failure.

2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>

	PR c/3325, c/3326, c/2511, c/3347
	* c-decl.c (enum_decl_context): Remove BITFIELD.
	(grokdeclarator): Take bitfield width as an input.
	Ensure bitfields are given the correct type.  Perform
	bitfield width validation with build_bitfield_integer_type
	rather than waiting for finish_struct.
	(grok_typename, grok_typename_in_parm_context, start_decl,
	push_parmdecl, grokfield, start_function): Update calls to
	grokdeclarator.
	(build_bitfield_integer_type): New function.
	(finish_struct): Move bitfield validation to grokdeclarator
	and build_bitfield_integer_type.
	* tree.c (build_nonstandard_integer_type): New function.
	* tree.h (build_nonstandard_integer_type): New prototype.
objc:
	* objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.

2002-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR other/1502:
	* cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
	don't ignore unrecognized -W* options.
	(cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
	* cpplib.h (cpp_handle_option): Adjust prototype.
	* c-decl.c (c_decode_options): Pass 0 as last argument to
	cpp_handle_option.

	PR c/2896:
	* gcc.c (cpp_unique_options): Split from cpp_options.
	(cpp_options): Source cpp_unique_options.
	(default_compilers): Use cpp_unique_options instead of cpp_options
	when used together with cc1_options.
	(static_specs): Add cpp_unique_options.
	* objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
	when used together with cc1_options.

2002-01-29  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Update the prototype of
	output_a_shift.
	* config/h8300/h8300.c (output_a_shift): Remove an unused
	argument 'insn'.  Remove redundant code.
	* config/h8300/h8300.md: Adust to the new prototype of
	output_a_shift.

2002-01-29  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Update the prototypes of
	emit_a_rotate and expand_a_rotate.
	* config/h8300/h8300.c (emit_a_rotate): Change the type of the
	first argument to 'enum rtx_code'.
	(expand_a_rotate): Likewise.

2002-01-28  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Update the prototype of
	output_simode_bld.
	* config/h8300/h8300.c (output_simode_bld): Remove an argumen
	'log2'.
	* config/h8300/h8300.md: Adjust to the new prototype.

2002-01-28  Kazu Hirata  <kazu@hxi.com>

	* conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
	redundant code.

2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
	is a fixed register before returning pic_offset_table_rtx.
	* loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
	when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.

2002-01-28  Jason Merrill  <jason@redhat.com>

	* dwarf2.h: Sync with src version.

2002-01-28  Paul Koning  <pkoning@equallogic.com>

	* builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
	BT_FN_VOID_PTR_VAR.
	* builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
	* doc/extend.texi (__builtin_prefetch): Update documentation:
	first argument is now const void ptr.

2002-01-28  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Remove an unused prototype.

2002-01-28  Roman Zippel  <zippel@linux-m68k.org>

	* toplev.c (lang_independent_init): Round up identifier size.

2002-01-28  Richard Earnshaw  <rearnsha@arm.com>

	* config.gcc: Revert previous change.

2002-01-28  Andris Pavenis  <pavenis@latnet.lv>

	* config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION

2002-01-28  Richard Earnshaw  <rearnsha@arm.com>

	* config.gcc (*-*-netbsdelf*): Set up generic parameters.
	(*-*-netbsd*): Always use collect2.  Remove collect2 settings from
	other non-elf netbsd config frags.
	* config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
	collect2 will does that.
	* config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
	shared-lib frobbing will work.

2002-01-28  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h: Fix formatting.
	* config/h8300/h8300.md: Likewise.

2002-01-28  Loren J. Rittle  <ljrittle@acm.org>

	* fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
	the old, removed AAA_standards fix.
	* fixinc/fixincl.x: Rebuilt.

2002-01-28  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
	atexit call in crtbegin, hooked in after call to frame_dummy;
	register EH before registering __fini__start.

2002-01-28  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/altivec.h: Remove spurious semicolons.

2002-01-27  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Replace dead bit extraction patterns
	with ones that work.

Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
	if not STRICT_ALIGNMENT.
	* rtl.h (MEM_ALIGN): Likewise.

2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* doc/invoke.texi (-fdump-translation-unit): Revert this
	patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>

2002-01-27  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (define_constants): New.
	(anonymous patterns) Use defined constants appropriately.

2002-01-27  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (function_arg): Remove redundant code.

2002-01-26  Richard Henderson  <rth@redhat.com>

	* sched-deps.c (reg_pending_uses_head): New.
	(reg_pending_barrier): Rename from reg_pending_sets_all.
	(find_insn_list): Don't mark inline.
	(find_insn_mem_list): Remove.
	(add_dependence_list, add_dependence_list_and_free): New.
	(flush_pending_lists): Replace only_write param with separate
	for_read and for_write parameters.  Update all callers.  Use
	add_dependence_list_and_free.
	(sched_analyze_1): Do not add reg dependencies here; just set
	the pending bits.  Use add_dependence_list.
	(sched_analyze_2): Likewise.
	(sched_analyze_insn): Replace schedule_barrier_found with
	reg_pending_barrier.  Add all dependencies for pending reg
	uses, sets, and clobbers.
	(sched_analyze): Don't add reg dependencies for calls, just
	set pending bits.  Use regs_invalidated_by_call.  Treat
	sched_before_next_call as a normal list, not a fake insn.
	(init_deps): No funny init for sched_before_next_call.
	(free_deps): Free pending mems lists.  Don't zero reg_last.
	(init_deps_global): Init reg_pending_uses.
	(finish_deps_global): Free it.
	* sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
	(find_insn_mem_list): Remove.
	* sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
	(propagate_deps): Use them.  Zero temp mem lists.

2002-01-26  Richard Henderson  <rth@redhat.com>

	* Makefile.in (CRTSTUFF_CFLAGS): New.
	(crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
	* config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
	crtstuff.c instead of alpha assembly version.
	* crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
	entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
	not FORCE_{INIT,FINI}_SECTION_ALIGN.
	(__do_global_dtors_aux): Mark used.
	(frame_dummy, __do_global_ctors_aux): Mark used.
	(fini_dummy, init_dummy): Remove.

	* config/alpha/crtbegin.asm: Remove file.
	* config/alpha/crtend.asm: Remove file.
	* config/alpha/t-crtbe: Remove file.
	* config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
	(LINK_EH_SPEC): New.

	* config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
	FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
	calling constructors.
	* config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.

	* config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
	* config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
	CRT_END_INIT_DUMMY hack.
	* config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
	FORCE_{INIT,FINI}_SECTION_ALIGN.

	* config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
	FORCE_{INIT,FINI}_SECTION_ALIGN.

	* config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
	invocation sequence.
	* config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.

	* doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
	(FORCE_CODE_SECTION_ALIGN): New.

2002-01-26  Richard Henderson  <rth@redhat.com>

	* config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.

2002-01-26  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
	(alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.

2002-01-26  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Remove bit extraction patterns that
	cannot be triggered.
	Restrict each bit extraction pattern to a variant on which the
	pattern is tested.

2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/include/texinfo.tex: Update to version 2002-01-04.07.

2002-01-26  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Remove bit test patterns that cannot
	be triggered.
	Restrict each bit test pattern to a variant on which the
	pattern is tested.

2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* builtins.c (expand_builtin_strncat): Remove redundant check for
	INTEGER_CST.

2002-01-25  David O'Brien  <obrien@FreeBSD.org>

	* config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
	default setting.
	* config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
	existing setting.

2002-01-25  Geoffrey Keating  <geoffk@redhat.com>

	* dbxout.c (dbxout_init): Use assemble_name rather than just
	stripping off the first character.
	(dbxout_source_file): Likewise.

2002-01-25  DJ Delorie  <dj@redhat.com>

	* config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
	using rtx_equal_p, not by comparing pointers.

2002-01-25  Steve Ellcey  <sje@cup.hp.com>

	* emit-rtl.c (gen_rtx_REG): Always return the same rtx
	for PIC_OFFSET_TABLE_REGNUM.
	(init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.

2002-01-25  David O'Brien  <obrien@FreeBSD.org>

	* config.gcc (x86_64-*-freebsd*): New target.
	(x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
	value.
	(i[34567]86-*-freebsd*): Don't include svr4.h.
	* config/i386/freebsd64.h: New file.

2002-01-25  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/x-vms (version): Make static.

	* config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
	in previous checkin.

	* Makefile.in (install-headers-cp): New target.
	* config.gcc (alpha-dec-*vms*): Install headers with
	install-headers-cp

Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>

	* unroll.c (unroll_loop): Lower final_value to nonmemory operand;
	avoid it's copies.

Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* builtins.c (expand_builtin_strncpy): Use integer_zerop instead
	of compare_tree_int.
	(expand_builtin_strncat): Likewise.
	* c-decl.c (finish_struct): Use tree_low_cst.
	* tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
	* tree.c (compare_tree_int): Likewise.

2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload1.c (eliminate_regs_in_insn): Recognize frame pointer
	adjustments even if they are implemented by more than two insns.

Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>

	* df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
	* df.h (struct ref): Kill B.
	(DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.

	* basic-block.h (PROP_EQUAL_NOTES): New flag.
	* flow.c (propagate_one_insn): Use it.
	(mark_used_regs): Handle NIL.

2002-01-25  Geoffrey Keating  <geoffk@redhat.com>

	* config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
	to help folding.

2002-01-25  David Edelsohn  <edelsohn@gnu.org>

	* rs6000.md (prefetch): Make address V4SI mode so that the address
	is restricted to legitimate form for instruction.

2002-01-25  Bob Wilson  <bob.wilson@acm.org>

	* doc/install.texi (xtensa-*-elf): New target.
	(xtensa-*-linux*): New target.
	* doc/contrib.texi: Add myself.

2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
	purpose register to hold an SImode (or smaller) value.

2002-01-25  Jakub Jelinek  <jakub@redhat.com>

	* unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
	registry only.
	* crtstuff.c: Likewise.

2002-01-25  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (negation patterns): Tighten
	predicates to register_operand.

2002-01-24  Aldy Hernandez  <aldyh@redhat.com>

	* loop.c (emit_prefetch_instructions): Use the prefetch insn's
	mode, not Pmode.

	* builtins.c (expand_builtin_prefetch): Same.

2002-01-24  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
	modes.

2002-01-24  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (print_operand): Remove support for
	operand character 'A'.
	* config/h8300/h8300.md (three anonymous patterns): Replace
	operand character 'A' with either 'T' or 'S'.

2002-01-24  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (print_operand): Remove support for
	operand character 'U'.

2002-01-24  Andris Pavenis  <pavenis@latnet.lv>

	* config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.

2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
	values to be assigned to the stack pointer.

2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>

	* emit_rtl.c (gen_lowpart_common): Conversion from const_int
	to const_double needs to be done right for big-endian systems.

2002-01-24  Jason Merrill  <jason@redhat.com>

	PR c++/2432
	* config/sparc/sparc.md (call-jump peepholes): Pass the right insn
	to can_throw_internal.

2002-01-23  Richard Henderson  <rth@redhat.com>

	* fold-const.c (fold): Change UINT_MAX test to check vs precision
	rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.

2002-01-24  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
	(symGOT2reg): Use them, then set as GOT value as unchanging.
	(symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
	as a temporary, if possible.
	(symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
	sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).

2002-01-23  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Fix xorqi and xorqi so that they will
	accept to accept 0x80 as operands[2].

2002-01-24  Alexandre Oliva  <aoliva@redhat.com>

	* config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.

2002-01-23  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.

2002-01-23  Aldy Hernandez  <aldyh@redhat.com>

	* c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
	(parmlist_or_identifiers_1): Verify that only a parmlist follows
	an attribute.

2002-01-23  Richard Henderson  <rth@redhat.com>

	* expr.c (move_by_pieces_1): Extend size before negation.

	* config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
	(MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
	(MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
	* config/m68k/t-m68kelf: Likewise.

2002-01-23  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/elf.h: New file.
	* config/xtensa/lib1funcs.asm: New file.
	* config/xtensa/lib2funcs.S: New file.
	* config/xtensa/linux.h: New file.
	* config/xtensa/t-xtensa: New file.
	* config/xtensa/xtensa-config.h: New file.
	* config/xtensa/xtensa-protos.h: New file.
	* config/xtensa/xtensa.c: New file.
	* config/xtensa/xtensa.h: New file.
	* config/xtensa/xtensa.md: New file.
	* config.gcc (xtensa-*-elf*): New target.
	(xtensa-*-linux*): New target.
	* cse.c (canon_hash): Compare rtx pointers instead of register
	numbers.  This is required for the Xtensa port.
	* integrate.c (copy_insn_list): Handle case where the static
	chain is in memory and the memory address has to be copied to
	a register.
	* doc/invoke.texi (Option Summary): Add Xtensa options.
	(Xtensa Options): New node.
	* doc/md.texi (Machine Constraints): Add Xtensa machine constraints.

2002-01-23  Zack Weinberg  <zack@codesourcery.com>

	* diagnostic.c (internal_error): Do ICE suppression only
	when ENABLE_CHECKING is not defined.

	* c-typeck.c (require_complete_type): Return error_mark_node
	if type is error_mark_node.

2002-01-23  Janis Johnson  <janis187@us.ibm.com>

	* toplev.c (process_options): Disable -fprefetch-loop-arrays with
	-Os and issue a warning.

2002-01-23  Zack Weinberg  <zack@codesourcery.com>

	* doc/fragments.texi, doc/hostconfig.texi: Update to reflect
	current (lack of) need for host configuration by hand.

	* doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
	references.  Documentation of some target macros moved from
	hostconfig.texi to tm.texi.

2002-01-23  Will Cohen  <wcohen@redhat.com>

	* config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
	defined.

2002-01-23  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
	operand[3].

2002-01-23  Jason Merrill  <jason@redhat.com>

	* tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.

	* function.c (assign_parms): Don't put args of inline functions
	into registers when not optimizing.

2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
	(prologue_use): New pattern.
	* config/arm/arm.c (expand_prologue): Use gen_prologue_use in
	preference to gen_rtx_USE.
	(thumb_expand_prologue): Use gen_prologue_use in preference to
	gen_rtx_USE.
	(thumb_expand_epilogue): Use gen_prologue_use in preference to
	gen_rtx_USE.

2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>

	* loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.

2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>

	PR c/3504
	* doc/extend.texi: Correct documentation of __alignof__.

2002-01-22  Zack Weinberg  <zack@codesourcery.com>

	* params.h: Rename arguments of DEFPARAM so that it will be
	recognized as a translation keyword.

2002-01-22  Aldy Hernandez  <aldyh@redhat.com>

	* extend.texi: Document altivec functions.
	Fix N-bit adjectives in X86 builtin documentation.

2002-01-22  Alexandre Oliva  <aoliva@redhat.com>

	* reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
	auto_inc_dec values.

2002-01-22  Richard Earnshaw  <rearnsha@arm.com>

	* config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
	after backslash.
	(ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.

2002-01-22  Alexandre Oliva  <aoliva@redhat.com>

	* config/i386/freebsd-aout.h (ASM_QUAD): Undefine.

2002-01-22  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
	copy_insn not copy_rtx.

2002-01-23  Alan Modra  <amodra@bigpond.net.au>

	* combine.c (simplify_and_const_int): Don't trunc_int_for_mode
	"nonzero" as that might add "1" bits.  Ensure "constop" is
	properly sign extened.
	(force_to_mode): Tweak for sign extended constop.

2002-01-22  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
	for_each_rtx instead of assuming we're already looking at the MEM.
	(split_small_symbolic_mem_operand): Likewise.
	* config/alpha/alpha.h (PREDICATE_CODES): Update.
	* config/alpha/alpha.md (small symbolic memory splitters): Update.

2002-01-22  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
	sequence number for the literal.
	(divmoddi_internal_er): Likewise.

2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	PR java/4972
	* aclocal.m4 (AM_ICONV): Put linking flags for libiconv
	in LIBICONV variable.
	* configure: Regenerated.

2002-01-22  Krister Walfridsson  <cato@df.lth.se>

	* dependence.c (build_def_use): Remove array_idx.

	* dwarfout.c (last_filename): Remove.
	(output_compile_unit_die): Remove last_filename.

2002-01-22  Roger Sayle  <roger@eyesopen.com>
	    Richard Henderson  <rth@redhat.com>

	PR opt/3640
	* fold-const.c (fold): Optimize unsigned comparisons against
	UINT_MAX (and similar unsigned constants).

2002-01-22  Janis Johnson  <janis187@us.ibm.com>

	* Makefile.in (loop.o): Depend on OPTABS_H.
	* loop.c (emit_prefetch_instructions): Check the prefetch operand
	against the predicate.

	PR target/5379
	* config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
	for the address operand.

2002-01-22  Richard Henderson  <rth@redhat.com>

	* config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.

2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	PR other/5450
	* config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
	preprocessor flags.

2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (x86_64-*-netbsd*): New target.
	* config/i386/netbsd64.h: New file.

2002-01-22  Aldy Hernandez  <aldyh@redhat.com>

	* regrename.c (kill_value): Fix typo.

2002-01-22  Aldy Hernandez  <aldyh@redhat.com>

	* doc/tm.texi: Remove STARTING_FRAME_PHASE.

	* config/rs6000/rs6000.h: Same.

	* function.c (instantiate_virtual_regs): Remove
	STARTING_FRAME_PHASE.
	(assign_stack_local_1): Same.
	Calculate frame phase.

2002-01-22  Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
	variable declaration to outer scope in order to simplify
	future extensions.
	(HARD_REGNO_MODE_OK): Replace macro body with a with a call to
	arm_hard_regno_mode_ok.
	* config/arm/arm-protos.h: Add a prototype for
	arm_hard_regno_mode_ok.
	* config/arm/arm.c (soft_df_operand): Remove now redundant
	check for DImode values using IP_REGNUM.
	(nonimmediate_soft_df_operand): Remove now redundant check for
	DImode values using IP_REGNUM.
	(arm_hard_regno_mode_ok): New function. New check: make sure
	that DImode values are not stored in IP_REGNUM.

	* config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
	note with a USE.
	(thumb_expand_prologue): Replace REG_MAYBE_DEAD	note with a USE.

2002-01-22  Jason Merrill  <jason@redhat.com>

	* c-semantics.c (genrtl_compound_stmt): Only check nesting
	consistency if this COMPOUND_STMT is scoped.

2002-01-22  Kazu Hirata  <kazu@hxi.com>

	* predict.c: Fix formatting.
	* print-tree.c: Likewise.
	* protoize.c: Likewise.
	* real.h: Likewise.
	* rtl.h: Likewise.
	* sbitmap.h: Likewise.
	* scan.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-vis.c: Likewise.
	* sdbout.c: Likewise.
	* sibcall.c: Likewise.
	* ssa.c: Likewise.
	* ssa-ccp.c: Likewise.
	* ssa-dce.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* system.h: Likewise.

Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* tree.c (int_fits_type_p): If bounds of a subtype are variable, see
	if fits in bounds of base type.

	* dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
	(loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
	(add_bound_info, default): If can't find a context, make a
	SAVE_EXPR.
	(dwarf2out_finish): Check for SAVE_EXPR in node->created_for.

2002-01-22  Hans-Peter Nilsson  <hp@axis.com>

	* c-typeck.c (parser_build_binary_op): If result from
	build_binary_op is ERROR_MARK just return error_mark_node without
	further processing.

2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/netbsd.h (TARGET_HAS_F_SETLKW): define.
	Split a.out-specific bits into...
	* config/netbsd-aout.h: ...this.
	* config/netbsd-elf.h: New file.
	* config/alpha/netbsd-elf.h: Remove.
	* config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
	* config/i386/netbsd-elf.h (LIB_SPEC): Remove.
	(STARTFILE_SPEC): Remove redundant definition.
	(ENDFILE_SPEC): Likewise.
	(LINK_SPEC): Likewise.
	(CPP_SPEC): Likewise.
	(ASM_SPEC): Likewise.
	(LIB_SPEC): Likewise.
	(SWITCH_TAKES_ARG): Likewise.
	(TARGET_MEM_FUNCTIONS): Likewise.
	(CPP_PREDEFINES): Redefine.
	(ASM_FINAL_SPEC): Remove redefinition.
	(ASM_COMMENT_START): Redefine.
	(FUNCTION_PROFILER): Define.
	(TARGET_VERSION): Redefine.
	Comment and formatting cleanup.
	* config/i386/netbsd.h: Include <netbsd-aout.h>.
	* config/m68k/netbsd.h: Include <netbsd-aout.h>.
	* config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
	big- or little-endian.
	* config/ns32k/netbsd.h: Include <netbsd-aout.h>.
	* config.gcc (*-*-netbsd*): Add definitions common to all
	NetBSD configs.
	(alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
	gnu_ld definitions.  Add netbsd-elf.h to and remove
	alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
	tmake_file, and don't lose previous tmake_file contents.
	(arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
	(i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
	gnu_ld definitions.  Add netbsd-elf.h to tm_file.
	(mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
	(mipsel-*-netbsd*): Rename this to...
	(mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
	mips/little.h to tm_file for mips*el-*.
	(powerpc-*-netbsd*): Remove redundant xm_defines definition.
	(sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
	(vax-*-netbsd*): Add netbsd-aout.h to tm_file.

2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa-protos.h (reg_before_reload_operand): New function prototype.
	* pa.c (reg_before_reload_operand): New function implementation.
	* pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
	contraints to "*m".

2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.

2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
	(MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
	(MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
	(EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
	(ENDFILE_SPEC): Undefine.
	(STARTFILE_SPEC): Redefine for PA.

2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.

2002-01-21  Daniel Jacobowitz  <drow@mvista.com>

	* config.gcc: Add entries to supported PowerPC --with-cpu
	types.

2002-01-21  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_function_arg_regno_p): Never return
	true for 64-bit mode only SSE registers in 32-bit mode.

2002-01-21  Kazu Hirata  <kazu@hxi.com>

	* unwind-dw2.c: Fix formatting.
	* unwind-dw2-fde.c: Likewise.
	* unwind-dw2-fde.h: Likewise.
	* unwind-pe.h: Likewise.
	* varasm.c: Likewise.
	* varray.h: Likewise.

2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>

	Remove workaround for register stack overwrite bug in mmix.
	* config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
	support for TARGET_REG_STACK_FILL_BUG.
	* config/mmix/mmix.h: Remove member has_call_without_parameters.
	(TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
	Delete.
	(TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
	(TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
	-mno-reg-stack-fill-bug-workaround.
	* config/mmix/mmix.md ("call", "call_value"): Don't set struct
	machine member has_call_without_parameters.
	* doc/invoke.texi (Option Summary) <MMIX Options>: Remove
	-mreg-stack-fill-bug-workaround	and
	-mno-reg-stack-fill-bug-workaround.
	(MMIX Options): Ditto.

2002-01-21  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
	as appropriate.
	Remove redundant code.

2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>

	* config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
	config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
	config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
	config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
	config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
	out target macro definitions and non-target-specific comments
	mostly taken from old versions of the manual.

2002-01-20  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h: Fix comment formatting.
	* config/ia64/aix.h: Likewise.
	* config/ia64/ia64-protos.h: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/ia64/ia64intrin.h: Likewise.
	* config/ia64/linux.h: Likewise.
	* config/ia64/unwind-aix.c: Likewise.
	* config/ia64/unwind-ia64.c: Likewise.

2002-01-20  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c: Revise comments about shift code.

2002-01-20  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (function_arg): Update a comment.

2002-01-20  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Update the comments at the beginning
	of the file.

2002-01-20  Kazu Hirata  <kazu@hxi.com>

	* config/i370/i370.c: Fix comment formatting.
	* config/i370/i370.h: Likewise.
	* config/i370/i370.md: Likewise.
	* config/i370/linux.h: Likewise.

Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* reg-stack.c (subst_stack_regs): Properly check for deleted insn.

	* dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
	(gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
	in incomplete case.

2002-01-20  Graham Stott  <grahams@redhat.com>

	* cfgloop.c (flow_loop_preheader_scan): Fix typo.

2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.

2002-01-19  Tom Rix  <trix@redhat.com>

	* config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.

2002-01-18  Aldy Hernandez  <aldyh@redhat.com>

	* doc/tm.texi (STARTING_FRAME_PHASE): Document.

	* function.c (assign_stack_local_1): Adjust x_frame_offset with
	STARTING_FRAME_PHASE.
	(STARTING_FRAME_PHASE): New.
	(instantiate_virtual_regs): Check saneness of
	STARTING_FRAME_PHASE.

	* config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.

2002-01-19  Alexandre Oliva  <aoliva@redhat.com>

	* config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.

2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
	be used for bootstrapping GCC 3.0.

2002-01-18  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Fix an insn length.

2002-01-18  Kazu Hirata  <kazu@hxi.com>

	* bitmap.h: Fix comment formatting.
	* combine.c: Likewise.
	* cppfiles.c: Likewise.
	* c-pragma.h: Likewise.
	* c-typeck.c: Likewise.
	* df.c: Likewise.
	* dwarf2out.c: Likewise.
	* function.c: Likewise.
	* gcc.c: Likewise.
	* genattrtab.c: Likewise.
	* gthr-win32.h: Likewise.
	* haifa-sched.c: Likewise.
	* predict.c: Likewise.
	* rtlanal.c: Likewise.
	* rtl.h: Likewise.
	* unwind-dw2-fde.h: Likewise.
	* unwind-pe.h: Likewise.
	* vmsdbgout.c: Likewise.

Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
	if type_required and passed decl.

2002-01-17  Aldy Hernandez  <aldyh@redhat.com>

	* config.gcc (cpu_type): Include altivec.h in powerpc
	extra_headers.
	Same for darwin.

	* config/rs6000/altivec.h: New.

2002-01-17  David Edelsohn  <edelsohn@gnu.org>

	* doc/install.texi (*-ibm-aix*): Update assembler and exception
	handling information.
	* doc/trouble.texi (Interoperation): Add libstdc++ information
	for AIX.
	(Misunderstandings): Add template instantiation and static template
	member information for AIX.

2002-01-17  Jason Merrill  <jason@redhat.com>

	* dbxout.c (dbxout_type): Support const and volatile.

	* except.c (add_partial_entry): Remove backwards compatibility code.
	(end_protect_partials): Likewise.

2002-01-17  Jakub Jelinek  <jakub@redhat.com>

	* config/ia64/ia64.md (prologue_use): New.
	* config/ia64/ia64.c (ia64_expand_prologue): Use
	gen_prologue_use instead of gen_rtx_USE.
	(group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
	as CODE_FOR_pred_rel_mutex.
	(ia64_sched_reorder2): Likewise.

2002-01-16  Eric Christopher  <echristo@redhat.com>

	* config/mips/r3900.h: Reformat.
	(SUBTARGET_CPP_SIZE_SPEC): Remove.
	* config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
	* config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
	(SUBTARGET_CPP_SIZE_SPEC): Rewrite.
	* config/mips/t-elf: Remove mips3 multilib.

2002-01-16  H.J. Lu <hjl@gnu.org>

	* config/mips/linux.h: Include "mips/abi64.h".

2002-01-16  H.J. Lu <hjl@gnu.org>

	* config/mips/t-linux: New.

	* config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.

	* config/mips/linux.h: Don't include "gofast.h".
	(INIT_SUBTARGET_OPTABS): Removed.

2002-01-16  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Replace emit_a_shift with
	output_a_shift.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/h8300.md: Likewise.

2002-01-16  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
	spaces after an opcode name.
	(pushqi1_h8300hs): Likewise.
	(pushhi1_h8300hs): Likewise.

2002-01-16  Kazu Hirata  <kazu@hxi.com>

	* doc/extend.texi: Replace "option" with "attribute"
	appropriately.

2002-01-16  Jakub Jelinek  <jakub@redhat.com>

	* config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
	(and:DI () (const_int -8)).
	(split_small_symbolic_mem_operand): Split
	(mem (and:DI () (const_int -8)).

2002-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/5309:
	* config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
	same way as TYPE_IMUL.
	(ultrasparc_sched_reorder): Likewise.
	* config/sparc/sparc.md (type): Add comment to update
	ultrasparc_sched_reorder when making changes.

2002-01-16  Kazu Hirata  <kazu@hxi.com>

	* doc/invoke.texi: Change the dump file name of block
	reordering pass from 28.bbro to 29.bbro.
	Mention -dk option.

Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (minsf splitter): Fix pasto.

2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
	to frame pointer initialisation instruction.
	(thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
	initialisation instruction.
	(soft_df_operand): Do not accept the IP register.
	(nonimmediate_soft_df_operand): Do not accept the IP register.

2002-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/5357:
	* config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
	MASK_V8 being both set.

2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_emit_prologue): Do not emit USE
	insn for GOT register; add REG_MAYBE_DEAD notes instead.
	config/s390/s390.md (call, call_value): Add GOT register to
	CALL_INSN_FUNCTION_USAGE where needed.
	(call_exp, call_value_exp): New.

2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c: General formatting tidy up.

2002-01-16  Graham Stott  <grahams@redhat.com>

	* calls.c (try_to_integrate): Use "(size_t)" intermediate
	cast and when casting an integer literal to "rtx" pointer.
	(expand_call): Likewise.
	* flow.c (try_pre_increment): Likewise.
	(find_use_as_address): Likewise.
	* integrate.c (expand_iline_function): Likewise.
	* regmove.c (try_auto_increment): Likewise.

2002-01-16  Graham Stott  <grahams@redhat.com>

	* sched-rgn.c (passed): Use sbitmap_free.
	(header): Likewise.
	(inner): Likewise.
	(in_queue): Likewise.
	(in_stack): Likewise.

2002-01-15  Eric Christopher  <echristo@redhat.com>

	* flow.c (propagate_one_insn): Change to use fatal_insn.

2002-01-15  Kazu Hirata  <kazu@hxi.com>

	* expmed.c (extract_fixed_bit_field): Remove unused code.
	* system.h: Poison SLOW_ZERO_EXTEND.
	* doc/tm.texi: Remove.
	* config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
	* config/arm/arm.h: Likewise.
	* config/avr/avr.h: Likewise.
	* config/clipper/clipper.h: Likewise.
	* config/convex/convex.h: Likewise.
	* config/d30v/d30v.h: Likewise.
	* config/dsp16xx/dsp16xx.h: Likewise.
	* config/elxsi/elxsi.h: Likewise.
	* config/fr30/fr30.h: Likewise.
	* config/h8300/h8300.h: Likewise.
	* config/i370/i370.h: Likewise.
	* config/i386/i386.h: Likewise.
	* config/m68k/m68k.h: Likewise.
	* config/mips/mips.h: Likewise.
	* config/ns32k/ns32k.h: Likewise.
	* config/pdp11/pdp11.h: Likewise.
	* config/pj/pj.h: Likewise.
	* config/s390/s390.h: Likewise.
	* config/sh/sh.h: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* config/v850/v850.h: Likewise.
	* config/vax/vax.h: Likewise.
	* config/we32k/we32k.h: Likewise.

2002-01-15  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
	(altivec_lvsl): Change constraint to b.
	(altivec_lvsr): Same.
	(altivec_lvebx): Same.
	(altivec_lvehx): Same.
	(altivec_lvewx): Same.
	(altivec_lvxl): Same.
	(altivec_lvx): Same.
	(altivec_stvx): Add parallel.
	(altivec_stvxl): Same.
	(altivec_stvehx): Same.
	(altivec_stvebx): Same.
	(altivec_stvebx): Same.

2002-01-15  Aldy Hernandez  <aldyh@redhat.com>

	* config.gcc: Change altivec.h to altivec-defs.h.

	* config/rs6000/altivec.h: Delete.

	* config/rs6000/altivec-defs.h: Add.

2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
	and UMOD modes.

	* vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
	less than or equal to eight bytes.

	* vax.md (andsi3): Remove constraints and change SET destination
	operand type to nonimmediate_operand.
	(andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
	when it is a CONST_INT.

2002-01-15  Jason Merrill  <jason@redhat.com>

	* c-common.def (FILE_STMT): New code.
	* c-common.c (statement_code_p): It's a statement.
	* c-common.h (stmt_tree_s): Add x_last_filename.
	(FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
	(last_expr_filename): New macro.
	* c-semantics.c (begin_stmt_tree): Initialize it.
	(add_stmt): If the filename changed, also insert a
	FILE_STMT.
	(expand_stmt): Handle seeing one.

2002-01-15  Eric Christopher  <echristo@redhat.com>

	* flow.c (propagate_one_insn): Add error message and print out
	insn for debugging.

2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>

	* system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
	ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
	* config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
	TRAMPOLINE_ALIGNMENT.
	* config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
	to be in bits.
	* config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
	PCC_BITFIELD_TYPE_MATTERS.
	* config/interix.h (STDC_VALUE): Remove.  Use
	STDC_0_IN_SYSTEM_HEADERS.
	* config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
	(ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
	ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.

2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* doc/install.texi (hppa*-hp-hpux11): --enable-threads does
	not work on this platform currently.

2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>

	* c-typeck.c (build_unary_op): Don't wrap msgid argument of
	readonly_warning in _().

2002-01-15  Douglas B Rupp  <rupp@gnat.com>

	* gcc.c (delete_if_ordinary): Backout previous change.

2002-01-15  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (print_operand): Remove support for
	unused operand characters.

	* read-rtl.c: Fix formatting.
	* real.c: Likewise.
	* recog.c: Likewise.
	* regclass.c: Likewise.
	* regmove.c: Likewise.
	* reg-stack.c: Likewise.
	* reload1.c: Likewise.
	* rtlanal.c: Likewise.

2002-01-15  Kazu Hirata  <kazu@hxi.com>

	* config/i386/i386.c: Fix formatting.

2002-01-15  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (process_init_element): Don't save_expr
	COMPOUND_LITERAL_EXPR if just its initializer will be used.

2002-01-15  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
	emit optional traceback table if optimize_size or TARGET_ELF.
	* config/rs6000/rs6000.md (prefetch): New.

2002-01-15  Andreas Jaeger  <aj@suse.de>

	* config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.

2002-01-15  Kazu Hirata  <kazu@hxi.com>

	* mips-tfile.c: Fix formatting.

Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>

	* unroll.c (final_reg_note_copy): Fix previous commit.

2002-01-14  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300-protos.h: Remove the prototype for
	eq_operator.
	* config/h8300/h8300.c (eq_operator): Remove.

2002-01-14  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.md (prefetch): Tidy.
	(prefetch_3dnow): Fix locality operand.

2002-01-14  Richard Henderson  <rth@redhat.com>

	* config/mips/mips.h (HI_AND_FP_REGS): New register class.
	(CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.

2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>

	* reload1.c (reload_combine): Pass reg_sum replacement through
	copy_rtx in loop performing multiple changes.

2002-01-14  Jakub Jelinek  <jakub@redhat.com>

	* except.c (remove_unreachable_regions): New.
	(free_eh_status): Clear exception_handler_labels.
	(convert_from_eh_region_ranges): Call remove_unreachable_regions.
	(find_exception_handler_labels): Don't add the same label more than
	once.
	(remove_exception_handler_label): Don't die if
	find_exception_handler_labels hasn't been called for the current
	function yet.

Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Rebuild jump labels after
	gcse.

2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/extend.texi: Move documentation of X86 built-in functions
	here.
	* doc/invoke.texi: From here.
	* doc/sourcebuild.texi: Document location of documentation for
	machine built-in functions.

2002-01-13  Christopher Faylor  <cgf@redhat.com>

	* cppfiles.c (TEST_THRESHOLD): New macro.
	(SHOULD_MMAP): Ditto.
	(read_include_file): Use SHOULD_MMAP macro to decide when mmap should
	be used.

Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>

	* unroll.c (final_reg_note_copy): Properly handle
	REG_LABEL
	(unroll_loops): Fix LOOP_CONDITION heuristics.

2002-01-14  Geoffrey Keating  <geoffk@redhat.com>

	* doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
	* doc/md.texi (Machine Constraints): Use @minus{} where appropriate.

Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
	threaded loop.

2002-01-14  Tom Rix  <trix@redhat.com>

	* config/rs6000/rs6000.md: Fix typo with sradi.

2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
	movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
	(clrstrdi, clrstrsi): Adapt callers.

	(extendsidi2, zero_extendsidi2): Remove no-conflict blocks.

	(movti splitter): Never use register 0 as base register.

2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>

	* combine.c (simplify_shift_const): Always generate new rtx
	for shift expression instead of reusing given expression.

Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* config/alpha/alpha.c (alpha_expand_mov): Don't call
	alpha_legitimize_address unless mode is Pmode.

2002-01-13  Geoffrey Keating  <geoffk@redhat.com>

	* doc/md.texi (Modifiers): Document the '*' constraint for the
	user.

	* doc/md.texi (Machine Constraints): Add constraints for xstormy16.
	* doc/extend.texi (Function Attributes): 'interrupt' is valid
	for xstormy16 too.

2002-01-13  Richard Henderson  <rth@redhat.com>

	* reload.c (find_reloads): Use a hard reg destination as reload reg
	for an input reload of the source.

2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi (Binaries): Make link to ftp.writtenword.com
	more generic.

Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>

	* Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
	* mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.

	* config/alpha/x-vms (USE_COLLECT2): Set to empty.

Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.

2002-01-12  Tom Rix  <trix@redhat.com>

	* config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
	TARGET_POWERPC64.

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

	* config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.

	* doc/invoke.texi: Update Alpha options.

	* doc/invoke.texi: Update i386 built-in function lists.

Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>

	* unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
	referencing outside.

Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* diagnostic.c (warn_deprecated_use): Rework to lower indentation.
	* expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
	offsets, and change line folding.
	* optabs.c (expand_binop): Remove warnings.
	* sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.

2002-01-12  Graham Stott <grahams@redhat.com>

	* attribs.c (handle_deprecated_attribute): constify WHAT.
	* diagnostic.c (warn_deprecated_use): Add braces, fixes
	dangling else warning and constify WHAT.
	* except.h (struct function, struct inline_remap): Move
	struct tag forward defs before all prototypes.
	(duplicate_eh_regions): Whitespace.

2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
	MODE_BASE_REG_CLASS.
	(THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.

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

	* config/i386/i386.c (override_options): If SSE, enable sse prefetch.
	(ix86_expand_vector_move): New.
	(bdesc_2arg): Remove andps, andnps, orps, xorps.
	(ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
	Remove old prefetch builtins.  Special case the logicals removed above.
	(ix86_expand_builtin): Likewise.
	(safe_vector_operand): Use V4SFmode, not TImode.
	(ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
	(ix86_expand_timode_binop_builtin): New.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.h (enum ix86_builtins): Update.
	* config/i386/i386.md: Correct predicates on MMX/SSE patterns.
	Use ix86_expand_vector_move in vector move expanders.
	(movti_internal, movti_rex64): Add xorps alternative.
	(sse_clrv4sf): Rename and adjust from sse_clrti.
	(prefetch): Don't work so hard.
	(prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
	* config/i386/xmmintrin.h (__m128): Use V4SFmode.
	(_mm_getcsr, _mm_setcsr): Fix typo in builtin name.

2002-01-11  Richard Henderson  <rth@redhat.com>

	* config/i386/mmintrin.h: New file.
	* config/i386/xmmintrin.h: New file.
	* config.gcc (i?86-*-*): Add extra_headers.
	* simplify-rtx.c (simplify_unary_operation): Handle saturating
	truncation codes.
	(simplify_binary_operation): Handle saturating arithmetic codes.
	* config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
	not the lowpart subreg.
	(ix86_expand_builtin): Return a TImode dummy register instead of 0
	on error.
	* config/i386/i386.md (mmx_clrdi): Override memory attribute.

2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* conflict.c (conflict_graph_compute): Free regsets when finished.
	* ssa.c (compute_coalesced_reg_partition): Likewise.

2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>

	* global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
	every where we allocate a register.

2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
	* lcm.c (compute_earliest, compute_farthest): Likewise.

2002-01-11  Janis Johnson  <janis187@us.ibm.com>

	* expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.

2002-01-11  Janis Johnson  <janis187@us.ibm.com>

	* doc/rtl.texi (Insns): Fix 2 typos.

2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
	options.  Use @table @gcctabopt for MMIX options.  Add index
	entries for MMIX options.  Start new paragraph with first
	heading of the machine-dependent options.

2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	PR other/5299
	* config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
	* combine.c (force_to_mode): Same.
	* reload1.c (clear_reload_reg_in_use): Same.

2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>

	* config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
	and 'subtargets'.

2002-01-11  Andreas Jaeger  <aj@suse.de>,
	    Brad Lucier <lucier@math.purdue.edu>

	* config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
	mcpu.

Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
	Protect with IN_LIBGCC.
	(LINK_EH_SPEC): Add required trailing space.

Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	* c-tree.h: Move function declarations so that they are listed
	under the filename which contains them.
	(check_identifier, finish_decl_top_level,
	lookup_name_current_level_global, shadow_record_fields): Remove.

2002-01-11  Andreas Jaeger  <aj@suse.de>

	* config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
	march.

2002-01-10  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (print_operand): Add 'J'.
	* config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
	new operand with the sequence number for the lituse.  When splitting
	the insns, use gen_movdi_er_high_g and generate a sequence number.
	(gen_movdi_er_high_g): Print the sequence number if nonzero.

2002-01-10  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (altivec_init_builtins): Add support for
	lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
	stvxl.
	(altivec_expand_builtin): Same.
	(altivec_expand_stv_builtin): New.

	* config/rs6000/rs6000.h (rs6000_builtins): Same.

	* config/rs6000/rs6000.md ("altivec_lvebx"): New.
	("altivec_lvehx"): New.
	("altivec_lvewx"): New.
	("altivec_lvxl"): New.
	("altivec_lvx"): New.
	("altivec_stvx"): New.
	("altivec_stvebx"): New.
	("altivec_stvehx"): New.
	("altivec_stvewx"): New.
	("altivec_stvxl"): New.

2002-01-10  Richard Henderson  <rth@redhat.com>

	* cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
	* reload1.c (delete_output_reload): Zap spill_reg_store.  Take
	care not to delete instructions twice.

2002-01-10  Zack Weinberg  <zack@codesourcery.com>

	* toplev.c: Don't declare environ (it's not used anywhere).
	* configure.in: Don't check for declaration of environ.
	* config/i386/xm-mingw32.h: Don't #define environ.
	* config.in, configure: Regenerate.

2002-01-10  Zack Weinberg  <zack@codesourcery.com>

	* configure.in: Set stage1_cflags for powerpc-*-darwin*.
	* configure: Regenerate.

	* config/interix.h: Set DO_GLOBAL_CTORS_BODY and
	DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
	* config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
	alpha/xm-vms.h.
	* config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
	LIMITS_H_TEST here, not in m68k/x-next.
	* config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
	SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.

	* config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
	LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
	* config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.

	* config/i386/x-djgpp: Renamed i386/t-djgpp.
	* config/m88k/x-dolph: Renamed m88k/t-dolph.
	* config/m88k/x-texXD88: Renamed m88k/t-texXD88.
	* config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
	replacement of quadlib.asm with quadlib.c.

	* config/x-interix3, config/xm-interix.h, config/i386/x-beos,
	config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
	config/rs6000/xm-beos.h: Delete file.

	* config.gcc: Update to match above changes.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h: Fix comment typos.
	* config/h8300/h8300.md: Likewise.
	* config/h8300/lib1funcs.asm: Likewise.

2002-01-10  Dale Johannesen  <dalej@apple.com>

	PR optimization/5269
	* unroll.c (precondition_loop_p): Make *increment be the correct
	sign when n_iterations known, to avoid confusing caller.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* doc/extend.texi (deprecated): Fix a typo.

Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>

	* basic-block.h (update_br_prob_note): Declare.
	* cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
	(try_forward_edges): Care negative frequencies and update note.
	(outgoing_edges_match): Tweek conditional merging heuristics.
	(try_crossjump_to_edge): use update_br_prob_note.
	* cfglayout.c (fixup_reorder_chain): Likewise.
	* cfrtl.c (update_br_prob_note): New.
	* ifcvt.c (dead_or_predicable): Call update_br_prob_note.

	* i386.c (ix86_decompose_address): Return -1 if address contains
	shift.
	(legitimate_address_p): Require ix86_decompose_address to return 1.

	* gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
	(cprop_insn): Likewise.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* toplev.c: Fix formatting.
	* tree.c: Likewise.
	* tree-dump.c: Likewise.
	* unroll.c: Likewise.
	* unwind-dw2.c: Likewise.
	* unwind-dw2-fde.c: Likewise.
	* unwind-dw2-fde-glibc.c: Likewise.
	* unwind-sjlj.c: Likewise.

2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/invoke.texi: Document PDP-11 options.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.h: Fix formatting.

2002-01-10  Ira Ruben	<ira@apple.com>

	Add __attribute__ ((deprecated)).
	* extend.texi: Document __attribute__ ((deprecated)).
	* invoke.texi: Document -Wno-deprecated-declarations.
	* testsuite/g++.dg/other/deprecated.C: New C++ test.
	* testsuite/gcc.dg/deprecated.c: New C test.
	* attribs.c (enum attrs): Declare handle_deprecated_attribute().
	(c_common_attribute_table): Add "deprecated" entry.
	(handle_deprecated_attribute): New function.
	* c-decl.c (deprecated_states): New enum.
	deprecated_state: State of "deprecated" handling.
	(start_decl): Set deprecated_state based on attributes.
	(grokdeclarator): Test for deprecated uses, propagate attribute.
	* c-typeck.c (build_component_ref): Test for deprecated fields.
	(build_external_ref): Test for deprecated primaries.
	* diagnostic.c (warn_deprecated_use) New function to issue
	warnings about __attribute__ ((depricated)) references.
	* flags.h (warn_deprecated_decl): Extern declared for
	-W[no-]deprecated-declarations option.
	* print-tree.c (print_node): Show deprecated flag status.
	* toplev.c (warn_deprecated_decl): Defined.
	(W_options): Added "deprecated-declaration".
	* toplev.h (warn_deprecated_use): Extern declared.
	* tree.h (struct tree_common): Define deprecated_flag.
	(TREE_DEPRECATED): New macro to access flag.
	* cp/call.c (build_call): Test for deprecated calls.
	* cp/class.c (add_implicitly_declared_members): Set global
	flag to tell grokdeclarator to not issue deprecated warnings.
	* cp/cp-tree.h: Add extern for adding_implicit_members.
	* cp/decl.c (deprecated_states): New enum.
	(start_decl): Set deprecated_state based on attributes.
	(grokdeclarator): Test for deprecated uses, propagate attribute.
	* cp/lex.c (do_identifier): Test for deprecated primaries.
	* cp/typeck.c (build_component_ref): Test for deprecated fields.

2002-01-10  Ira Ruben	<ira@apple.com>

	Fix to assign attributes to inline member functions.
	* cp/decl.c (start_method): Handle attrlist.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* combine.c (expand_field_assignment): Use subreg_lsb().

2002-01-10  David Edelsohn  <edelsohn@gnu.org>

	* alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
	POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
	(find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
	Recurse for any operand of AND as long as constant is nonzero.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Remove constraints from expanders.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* varasm.c: Fix formatting.
	* varray.c: Likewise.
	* vmsdbgout.c: Likewise.
	* xcoffout.c: Likewise.

Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
	update edge probabilities to match.

2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>

	* Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
	dependencies.
	* doc/languages.texi, doc/sourcebuild.texi: New files.
	* doc/configfiles.texi: Make a subsubsection.  Update.
	* doc/configterms.texi: Add @node.  Remove warning that this isn't
	instructions for building GCC.
	* doc/makefile.texi: Make a subsection.
	* doc/gccint.texi: Update.

Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (sse_mov?fcc_const0_?): Fix constraints.

Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	* doc/cpp.texi: Document the __OBJC__ preprocessor macro.

Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>

	* optabs.c (expand_fix): Look for wider integer modes first.

	* i386.md (mov?f): Avoid the fake const double trick for medium
	memory model.
	(min?f*/max?f*): Prohibit memory operands for i387 variant.
	(fop_df_4): Disable for SSE compilation.

2002-01-10  Graham Stott  <grahams@redhat.com>

	* dwarf2out.c (indirect_string_alloc, output_indirect_string):
	Move prototype into DWARF2_DEBUGGING_INFO conditional block.

2002-01-10  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.

2002-01-10  Richard Henderson  <rth@redhat.com>

	* regrename.c (find_oldest_value_reg): Fix typo in mode change check.
	(copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.

2002-01-10  Kazu Hirata  <kazu@hxi.com>

	* combine.c (can_combine_p): Fix a comment typo.

2002-01-09  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in (s-gencheck, s-options, s-specs): Handle an
	empty list correctly.  Change loop index $t to $f for
	consistency with rest of Makefile.

2002-01-08  Aldy Hernandez  <aldyh@redhat.com>

	* testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
	mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.

	* config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
	mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
	(altivec_init_builtins): Same.
	(altivec_expand_unop_builtin): Return NULL_RTX on error.
	(altivec_expand_binop_builtin): Same.
	(altivec_expand_ternop_builtin): Same.
	(bdesc_dst): New.

	* config/rs6000/rs6000.md ("altivec_mtvscr"): New.
	("altivec_vctuxs"): Fix typo.
	("altivec_vnmsubfp"): Same.
	("altivec_dssall"): New.
	("altivec_mfvscr"): New.
	("altivec_dss"): New.
	("altivec_lvsl"): New.
	("altivec_lvsr"): New.
	("altivec_dstt"): New.
	("altivec_dstst"): New.
	("altivec_dststt"): New.
	("altivec_dst"): New.

	* config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
	mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.

2002-01-09  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.

2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
	function.
	* config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
	prototype.
	* config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.

2002-01-09  Kazu Hirata  <kazu@hxi.com>

	* read-rtl.c: Fix formatting.
	* real.c: Likewise.
	* regclass.c: Likewise.
	* regrename.c: Likewise.
	* reg-stack.c: Likewise.
	* reload1.c: Likewise.
	* reload.c: Likewise.
	* rtl.c: Likewise.

2002-01-09  Kazu Hirata  <kazu@hxi.com>

	* rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
	to extract items in the expr_list chain.

2002-01-09  Richard Henderson  <rth@redhat.com>

	* config/vax/vax.c (vax_rtx_cost): Never abort.

	* config/vax/vax.h (REAL_ARITHMETIC): Define.

2002-01-09  Jan Hubicka  <jh@suse.cz>

	* gcse.c (cprop_jump): Delete insn if simplified jump is no-op.

2002-01-09  Richard Henderson  <rth@redhat.com>

	* config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
	Unify code from various alternatives.

2002-01-09  Richard Henderson  <rth@redhat.com>

	* regrename.c (copy_value): Ignore the copy if the source register
	is present in the value chain with a narrower mode.

2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>

	* real.c (c4xtoe, toc4x): Do some special conversion on long doubles
	for the c4x target. Also improve layout.

2002-01-09  Richard Henderson  <rth@redhat.com>

	* config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
	* config/m32r/m32r.md (and ior xor splitters): Swap operands
	to match insn patterns.

2002-01-09  Richard Henderson  <rth@redhat.com>

	* regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
	(copyprop_hardreg_forward_1): Likewise.

2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.md (decrement_and_branch_until_zero): Change predicate for
	operand 0 from register_operand to reg_or_nonsymb_mem_operand.

2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>

	* ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
	gets undefined. For Darwin.

2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>

	* config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.

2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x/md: Remove extraneous constraints from define_splits.

2002-01-08  Richard Henderson  <rth@redhat.com>

	* regrename.c (copy_value): Ignore overlapping copies.

2002-01-08  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
	as needed to avoid shared structure.

2002-01-08  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
	H8/300H and H8S.

2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
	LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
	documentation of obsolete macros.
	* system.h: Poison these macros.
	* config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
	config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
	config/c4x/c4x.h, config/clipper/clipper.h,
	config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
	config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
	config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
	config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
	config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
	config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
	config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
	config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
	config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
	config/rs6000/rs6000.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/we32k/we32k.h: Remove
	definitions and commented out definitions of obsolete macros.
	* config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
	of MAX_INT_TYPE_SIZE.

2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_preferred_reload_class): Never
	return ADDR_REGS if it isn't a subset of the given class.
	* config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
	FP_REGS, but all superclasses as well.

	* config/s390/s390.c (s390_function_profiler): Fix thinko.

	* config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
	cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
	must not be a const_int.

2002-01-08  Richard Henderson  <rth@redhat.com>

	* Makefile.in (toplev.o): Depend on options.h.
	(gcc.o): Depend on specs.h.

2002-01-08  Jakub Jelinek  <jakub@redhat.com>

	* expr.c (store_expr): Convert VOIDmode constants back to target's
	mode.

2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/invoke.texi: Markup gcc as @command.  Refer to
	http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
	of http://gcc.gnu.org/thanks.html.

2002-01-08  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/rs6000.md: Add missing int register
	target case to movdf_low.

2002-01-08  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
	except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
	(cppinit.o): Depend on except.h.
	(gencheck.h, options.h, specs.h, s-gencheck, s-options,
	s-specs): New rules.

	* configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
	Don't create specs.h/options.h/gencheck.h here.  Remove
	unnecessary variable settings from last argument of AC_OUTPUT.
	* config.in, configure: Regenerate.
	* intl.c: Hardcode package name as "gcc".

	* cppinit.c: Include except.h.
	(builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
	appropriate.
	* unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
	Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
	(!)USING_SJLJ_EXCEPTIONS.
	* doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.

2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
	ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
	OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
	documentation of obsolete macros.
	* system.h: Poison these macros.
	* config/d30v/d30v.h, config/ns32k/encore.h,
	config/stormy16/stormy16.h: Remove definitions and commented out
	definitions of obsolete macros.

Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>

	* objc/objc-act.c (handle_class_ref): Mark the declaration of
	%sobjc_class_ref_%s as used - to prevent unwanted compiler
	warnings.

2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
	* config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
	to insn adjusting stack/frame pointer.
	* config/s390/s390.md (reload_la_64, reload_la_31): Do not
	accept operands that cause the insn to be non-splittable.

2002-01-08  Graham Stott  <grahams@redhat.com>

	* c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
	(C_TYPE_FIELDS_VOLATILE): Likewise.
	(C_TYPE_BEING_DEFINED): Likewise.
	(C_IS_RESERVED_WORD): Likewise.
	(C_TYPE_VARIABLE_SIZE): Likewise.
	(C_DECL_VARIABLE_SIZE): Likewise.
	(C_MISSING_PROTOTYPE_WARNED): Likewise.
	(C_SET_EXP_ORIGINAL_CODE): Likewise.
	(C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
	parenthesis.
	(C_DECL_ANTICIPATED): Likewise.
	(c_build_type_variant): Add parenthesis.

2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>

	* gcc.c (option_map): Remove --version.
	(process_command): Handle -fversion following the GNU Coding
	Standards.  Partially addresses PR other/704.

2002-01-08  Graham Stott  <grahams@redhat.com>

	* combine.c (combine_instructions): Fix typo.

2002-01-08  Graham Stott  <grahams@redhat.com>

	* debug.h: Use "tree" and "rtx" throughout.

	* debug.c: Likewise.

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

	* dbxout.c (dbxout_symbol_location): If a symbol ref is in the
	constant pool, use the pool's version of the symbol instead.

2002-01-07  Richard Henderson  <rth@redhat.com>

	* regrename.c (find_oldest_value_reg): Ignore the value chain if
	the original register was copied in a mode with a fewer number of
	hard registers than the desired mode.
	(copyprop_hardreg_forward_1): Likewise.
	(debug_value_data): Fix loop test.
	* toplev.c (parse_options_and_default_flags): Reenable
	-fcprop-registers at -O1.

2002-01-07  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
	(altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.

	* config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
	predicates.

	* config/rs6000/rs6000.md: Add altivec predicate patterns.

2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
	(pa_output_function_prologue): Output local label at the beginning of
	the prologue when profiling.
	(hppa_profile_hook): Use the local label rather than the function label.
	* pa.h (PROFILE_BEFORE_PROLOGUE): Define.

2002-01-07  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (print_operand): Remove extra space.
	(altivec_expand_unop_builtin): Fix thinko.
	(altivec_expand_binop_builtin): Same.
	(altivec_expand_ternop_builtin): Same.
	(altivec_expand_builtin): Same.

2002-01-07  Richard Henderson  <rth@redhat.com>

	* config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.

2002-01-07  Jason Merrill  <jason@redhat.com>

	* unwind-dw2.c (execute_cfa_program): Use < again.

2002-01-07  Jakub Jelinek  <jakub@redhat.com>

	* predict.c (combine_predictions_for_insn): Avoid division by zero.

2002-01-07  Jakub Jelinek  <jakub@redhat.com>

	* simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
	Don't allow -1 - x -> ~x simplifications in the first pass.

2002-01-07  Aldy Hernandez  <aldyh@redhat.com>

	* rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
	arguments.
	(altivec_expand_binop_builtin): Same.
	(altivec_expand_unop_builtin): Same.
	(print_operand): Fix typo.
	(bdesc_1arg): Add vupk* variants.

	* rs6000.h (rs6000_builtins): Add vupk* enums.

	* rs6000.md: Add altivec_vupk* variants.

2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>

	* doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
	doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
	and last update dates.

2002-01-07  Janis Johnson  <janis187@us.ibm.com>

	* doc/rtl.texi (Flags): Clean up documentation of RTL flags

2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (avr_mcu_types): Add new MCU types.
	* config/avr/avr.h (CPP_SPEC): Likewise.
	(LINK_SPEC): Likewise.
	(CRT_BINUTILS_SPECS): Likewise.
	* config/avr/t-avr (MULTILIB_MATCHES): Likewise.
	* doc/invoke.texi (AVR Options): Document them.

Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>

	* unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
	LABEL_NUSES.

2002-01-07  Graham Stott  <grahams@redhat.com>

	* config/i386/i386.h: Update copyright date.
	(HALF_PIC_PTR): Add parenthesis.
	(OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
	(CONSTANT_ALIGNMENT): Add parenthesis.
	(DATA_ALIGNMENT): Likewise.
	(LOCAL_ALIGNMENT): Likewise.
	(FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
	(IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
	(CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
	(HARD_REGNO_NREGS): Add paranethesis.
	(VALID_SSE_REG_MODE): Whitespace.
	(VALID_MMX_REG_MODE): Whitespace.
	(VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
	(ix86_hard_regno_mode_ok): Add parenthesis.
	(HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
	(RETURN_IN_MEMORY): Whitespace.
	(N_REG_CLASSES): Add parenthesis.
	(INTEGER_CLASS_P): Add parenthesis and wrap.
	(FLOAT_CLASS_P): Likewise.
	(SSE_CLASS_P): Likewise.
	(MMX_CLASS_P): Likewise.
	(MAYBE_INTEGER_CLASS_P): Likewise.
	(MAYBE_FLOAT_CLASS_P): Likewise.
	(MAYBE_SSE_CLASS_P): Likewise.
	(MAYBE_MMX_CLASS_P): Likewise.
	(Q_CLASS_P): Likewise.
	(GENERAL_REGNO_P): Uppercase macro parameter.
	(REX_INT_REGNO_P): Uppercase macro parameter and wrap.
	(FP_REGNO_P): Likewise.
	(ANY_FP_REGNO_P): Uppercase macro parameter.
	(SSE_REGNO_P): Likewise.
	(SSE_REGNO): Likewise.
	(SSE_REG_P): Likewise.
	(SSE_FLOAT_MODE_P): Likewise.
	(MMX_REGNO_P): Likewise.
	(MMX_REG_P):Likewise.
	(STACK_REG_P): Likewise.
	(NON_STACK_REG_P): Likewise.
	(STACK_TOP_P): Likewise.
	(CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
	(PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
	(SECONDARY_MEMORY_NEEDED): Likewise.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
	(MD_ASM_CLOBBERS): Whitespace and wrap.
	(MUST_PASS_IN_STACK): Whitespace and wrap.
	(RETURN_POPS_ARGS): Add parenthesis.
	(INIT_CUMULATIVE_ARGS): Likewise.
	(FUNCTION_ARG): Likewise.
	(FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
	(SETUP_INCOMING_VARARGS): Likewise.
	(BUILD_VA_LIST_TYPE):  Add parenthesis.
	(EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
	parenthsis.
	(EXPAND_BUILTIN_VA_ARG): Likewise.
	(FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
	(INITIALIZE_TRAMPOLINE): Add parenthesis.
	(INITIAL_ELIMINATION_OFFSET): Likewise.
	(REGNO_OK_FOR_INDEX_P): Add parenthesis.
	(REGNO_OK_FOR_BASE_P): Likewise.
	(REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
	(REGNO_OK_FOR_DIREG_P): Likewise.
	(REG_OK_FOR_INDEX_P): Whitespace.
	(REG_OK_FOR_BASE_P): Whitespace.
	(GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
	parenthesis.
	(FIND_BASE_TERM): Fix typo.
	(LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
	(REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
	(SYMBOLIC_CONST; Whitespace.
	(GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
	(ENCODE_SECTION_INFO): Whitespace.
	(FINALIZE_PIC): Remove do { ... } while (0).
	(PROMOTE_MODE): Wrap in do { ... } while (0).
	(CONST_COSTS): Whitespace.
	(RTX_COSTS): Add paramethesis, whitespace and wrap.
	(REGISTER_MOVE_COST): Add parenthesis.
	(MEMORY_MOVE_COST): Likewise.
	(EXTRA_CC_MODES): Whitespace.
	(SELECT_CC_MODE): Add parenthesis and whitespace.
	(DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
	(ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
	(ASM_OUTPUT_LABEL): Add paramethesis.
	(ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
	(ASM_OUTPUT_REG_POP): Likewise.
	(ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.

	* config/i386/i386.c: Update copyright.
	(CHECK_STACK_LIMIT): Add parenthesis.
	(AT_BP): Uppercase macro parameter.
	(x86_64_int_parameter_registers): Constify.
	(x86_64_int_return_registers): Likewise.
	(ix86_compare_op0): Use rtx.
	(construct_container): Constify INTREG parameter.
	(function_arg): Use rtx.

	* diagnostic.h: Update copyright date.
	(output_buffer_state): Add parenthesis.
	(output_buffer_format_args): Likewise.

	* combine.c (combine_instructions): Replace XEXP (links, 0)
	with link.

2002-01-06  H.J. Lu <hjl@gnu.org>

	* cfgcleanup.c (thread_jump): Fix 2 typos.

2002-01-06  Aldy Hernandez  <aldyh@redhat.com>

	* config.gcc: Add support for --enable-altivec.

2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* emit-rtl.c (gen_highpart): Add check for NULL_RTX.

2002-01-06  Jakub Jelinek  <jakub@redhat.com>

	* objc/objc-act.c (handle_impent): Use assemble_variable to emit
	__objc_class_name_*.

2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* doc/install.texi (sparcv9-*-solaris2*): Add documentation.

2002-01-06  Richard Henderson  <rth@redhat.com>

	* reorg.c (emit_delay_sequence): Remove death notes, not merely
	nop them out.  Increment label reference count for REG_LABEL.
	(fill_slots_from_thread): Frob label reference count around
	delete_related_insns.

2002-01-05  Richard Henderson  <rth@redhat.com>

	* cfgcleanup.c (try_forward_edges): Detect infinite loops while
	jump threading.

2002-01-05  Richard Henderson  <rth@redhat.com>

	* c-decl.c (c_expand_body): Don't call outlining_inline_function.
	* integrate.c (output_inline_function): Likewise.
	* toplev.c (rest_of_compilation): Do it here instead.  Move call
	to remove_unnecessary_notes after emitting abstract instance.
	Force an emitted nested function to have its parent emited as well.
	* dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
	for null.
	(rtl_for_decl_location): Do not look at reload data structures
	before reload has run.

2002-01-05  Kazu Hirata  <kazu@hxi.com>

	* cse.c: Fix formatting.
	* dwarf2asm.c: Likewise.
	* dwarf2out.c: Likewise.
	* explow.c: Likewise.
	* expmed.c: Likewise.
	* function.c: Likewise.
	* gcov.c: Likewise.
	* gencheck.c: Likewise.
	* genrecog.c: Likewise.
	* ggc-common.c: Likewise.
	* ggc-page.c: Likewise.
	* global.c: Likewise.

2002-01-05  Kazu Hirata  <kazu@hxi.com>

	* combine.c: Fix formatting.

2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>

	PR middle-end/1557
	* config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.

2002-01-05  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
	as 1 for __powerpc64__ as well.

	* config/rs6000/t-aix43 (T_ADAFLAGS): Define.

	* alias.c (find_base_value, PLUS/MINUS): If we found a base,
	return it.

2002-01-05  Daniel Berlin  <dan@dberlin.org>

	* lcm.c: Revert change, due to performance regression it causes on
	SPEC because it's slightly more conservative (sigh, I hate
	edge-based LCM).

Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (try_forward_edges): Allow multiple jump threading.

2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>

	* doc/cppinternals.texi: Update.

2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>

	* doc/invoke.texi (Option Summary) <MMIX Options>: Document
	-mbranch-predict, -mreg-stack-fill-bug-workaround and their
	negatives.
	(MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
	* config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
	kludge for pre-october-14th mmix versions to handle new-found bug
	with PUSHJ/PUSHGO and the register stack.
	* config/mmix/mmix.h (struct machine_function): Rename member
	has_call_value_without_parameters to has_call_without_parameters.
	All referers changed.
	(TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
	TARGET_MASK_BRANCH_PREDICT): New macros.
	(TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
	-mno-reg-stack-fill-bug-workaround.
	* config/mmix/mmix.md ("call"): Set struct machine member
	has_call_without_parameters.

Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (thread_jump): Fix handling of reversed branches.

Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c: Include tm_p.h
	(mark_effect): Fix handling of hard register; fix handling of SET

2002-01-04  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md (anonymous patterns): Check that
	operands are registers before using REGNO on them.

2002-01-03  Roland McGrath  <roland@frob.com>

	* doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.

2002-01-04  Jakub Jelinek  <jakub@redhat.com>

	* tree.h (expand_expr_stmt_value): Add maybe_last argument.
	* c-common.h (genrtl_expr_stmt_value): Likewise.
	* stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
	(expand_expr_stmt_value): Add maybe_last argument.
	Don't warn about statement with no effect if it is the last statement
	in expression statement.
	* c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
	(genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
	expand_expr_stmt_value.
	(expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
	genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
	* expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
	as maybe_last to expand_expr_stmt_value.

Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)

	* c-common.c (c_expand_start_cond): Expect the IF_STMT node to
	be passed in, do not build it.
	(c_begin_if_stmt): New function.
	(c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
	* c-common.h (c_expand_start_cond): Update prototype.
	(c_begin_if_stmt): Prototype new function.
	(c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
	* c-parse.in (if_prefix): Use c_begin_if_stmt,
	c_begin_while_stmt and c_finish_while_stmt_cond.

2002-01-04  William Cohen  <wcohen@redhat.com>

	* config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
	* config/pa/pa-linux.h (ASM_FILE_START): Likewise.
	* config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
	* config/pa/som.h (ASM_FILE_START): Likewise.

2002-01-04  Daniel Berlin  <dan@cgsoftware.com>

	* lcm.c: Include df.h.
	Add available_transfer_function prototype.
	(compute_available): Rework to use iterative dataflow framework.
	(struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
	with bb_info in df.h
	(available_transfer_function): New function.

	* Makefile.in (lcm.o): add df.h to dependencies.

2002-01-04  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.c (some_operand): Accept HIGH.
	(input_operand): Likewise; accept simple references to globals.
	(alpha_const_ok_for_letter_p): New, outlined from alpha.h.
	(alpha_const_double_ok_for_letter_p): Likewise.
	(alpha_extra_constraint): Likewise.
	(alpha_preferred_reload_class): Likewise.  Do not force
	symbolic constants to memory.
	(alpha_legitimate_address_p): Accept simple references
	to small_symbolic_operand.
	(alpha_legitimize_address): New arg scratch.  Be prepared to be
	called when no_new_pseudos.  Emit simple symbolic references.
	Split integers into low, high, and rest.
	(alpha_expand_mov): Use alpha_legitimize_address.
	(some_small_symbolic_mem_operand): New.
	(split_small_symbolic_mem_operand): New.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
	(CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
	(EXTRA_CONSTRAINT): Likewise.
	(PREFERRED_RELOAD_CLASS): Likewise.
	(LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
	(PREDICATE_CODES): Update.
	* config/alpha/alpha.md: New post-reload splitters to convert
	simplfied symbolic operands to the form that references $29.
	(divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
	(movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.

2002-01-03  Richard Henderson  <rth@redhat.com>

	* local-alloc.c (function_invariant_p): Update commentary.

2002-01-04  H.J. Lu <hjl@gnu.org>

	* toplev.c (rest_of_compilation): Fix a typo when calling
	cleanup_cfg.

2002-01-03  Kazu Hirata  <kazu@hxi.com>

	* c-common.c: Fix formatting.
	* diagnostic.c: Likewise.
	* doloop.c: Likewise.
	* dwarf2out.c: Likewise.

2002-01-03  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
	of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.

2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cpperror.c: Update comments and copyright.
	* cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
	cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.

2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* collect2.c (main): Use strcmp when testing for "-shared".

2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>

	* cppmacro.c: Don't include intl.h.  Update comments.
	(new_number_token): Allocate enough buffer for 64-bit unsigned
	integers; update prototype.
	* cppmain.c: Update comments.

2002-01-03  William Cohen  <wcohen@redhat.com>

	* function.h (struct function): Add profile.
	(current_function_profile): New.
	doc/extend.texi: Update documentation.
	* final.c (final_start_function): Use current_function_profile
	instead of profile_flag.
	(profile_after_prologue): Likewise.
	* function.c (expand_function_start): Likewise.
	(expand_function_start): Likewise.
	* config/alpha/alpha.c (direct_call_operand):
	(alpha_does_function_need_gp): Likewise.
	(alpha_expand_prologue): Likewise.
	* config/arm/arm.c (arm_expand_prologue): Likewise.
	thumb_expand_prologue: Likewise.
	* config/d30v/d30v.c (d30v_stack_info): Likewise.
	* config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
	(fr30_expand_prologue): Likewise.
	* config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
	* config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
	* config/i386/i386.h (FINALIZE_PIC): Likewise.
	* config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
	* config/i960/i960.c (i960_output_function_prologue): Likewise.
	* config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
	* config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
	(m32r_expand_prologue): Likewise.
	* config/m88k/m88k.c (m88k_layout_frame): Likewise.
	(m88k_expand_prologue): Likewise.
	* config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
	* config/mips/mips.c (compute_frame_size): Likewise.
	(mips_expand_prologue): Likewise.
	(mips_can_use_return_insn): Likewise.
	* config/pa/elf.h (ASM_FILE_START): Likewise.
	* config/pa/pa-linux.h (ASM_FILE_START): Likewise.
	* config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
	* config/pa/som.h (ASM_FILE_START): Likewise.
	* config/romp/romp.c (romp_using_r14): Likewise.
	* config/rs6000/rs6000.c (first_reg_to_save): Likewise.
	(rs6000_stack_info): Likewise.
	* config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
	* config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
	* config/v850/v850.c (compute_register_save_size): Likewise.

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

	* simplify-rtx.c (simplify_binary_operation) [DIV]: If
	gen_lowpart_common fails, use gen_lowpart_SUBREG.

2002-01-03  Turly O'Connor  <turly@apple.com>

	* darwin.c (machopic_output_possible_stub_label): Don't generate
	stub routines for pseudo-stubs which we've just defined.

2002-01-03  Kazu Hirata  <kazu@hxi.com>

	* builtins.c: Fix formatting.
	* c-typeck.c: Likewise.
	* combine.c: Likewise.
	* expr.c: Likewise.
	* loop.c: Likewise.

2002-01-03  Andreas Schwab  <schwab@suse.de>

	* cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
	and return true if _cpp_push_next_buffer pushed a new include
	file.
	* cpplib.c (_cpp_pop_buffer): Only call obstack_free if
	_cpp_pop_file_buffer did not push a new file.
	* cpphash.h (_cpp_pop_file_buffer): Update declaration.

2002-01-02  Eric Christopher  <echristo@redhat.com>

	* final.c (final_scan_insn): Change 0 -> NULL_RTX in
	FIND_REG_INC_NOTE call. Update copyright.
	* loop.c (canonicalize_condition): Ditto.
	* reorg.c (delete_scheduled_jump): Ditto.

2002-01-03  Kazu Hirata  <kazu@hxi.com>

	* gcse.c: Fix formatting.

2002-01-03  Graham Stott  <grahams@redhat.com>

	* mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
	forward defs for struct tags rtx_def, union_tree, rtvec_def
	also output corresponding typedefs for rtx, tree, and rtvec.

	* system.h: Move forward defs for struct tags rtx_def, union_tree,
	rtvec_def along with corresponding typedefs for rtx, tree, and
	rtvec to config.h, hconfig.h, tconfig.h.

2002-01-03  Graham Stott  <grahams@redhat.com>

	* tree.h: Update copyright date.
	(IS_EXPR_CODE_CLASS): Add parenthesis.
	(TREE_SET_CODE): Add whitespace.
	(TREE_CHECK): Add parenthesis.
	(TREE_CLASS_CODE): Add parenthesis and wrap long line.
	(CST_OR_CONSTRUCTOR_CHECK):
	(EXPR_CHECK): Add parenthis, whitespace and wrap line.
	(TREE_SYMBOL_REFERENCED): Whitespace.
	(INT_CST_LT): Likewise.
	(INT_CST_LT_UNSIGNED): Likewise.
	(tree_real_cst): Unwrap comment.
	(tree_string): Likewise.
	(tree_complex): Likewise.
	(IDENTIFIER_POINTER): correct cast.
	(SAVE_EXPR_CONTEXT): Whitespace.
	(EXPR_WFL_FILENAME_NODE): Likewise.
	(EXPR_WFL_FILENAME): Remove parenthesis.
	(DECL_ORIGIN): Add parenthesis.
	(DECL_FROM_INLINE): Use NULL_TREE.
	(build_int_2): Whitespace.
	(build_type_variant): Add parenthesis.

	* gcc/jcf-parse.c: Update copyright date.
	(yyparse): Constify resource_filename.

2002-01-03  Graham Stott  <grahams@redhat.com>

	* rtl.h: Update copyright date.
	(RTL_CHECK1): Wrap long line.
	(RTL_CHECK2): Likewise.
	(RTL_CHECKC1): Wrap long line and whitespace.
	(RTL_CHECKC2): Likewise.
	(XWINT): Whitespace.
	(XINT): Likewise.
	(XSTR): Likewise.
	(XEXP): Likewise.
	(XVEC): Likewise.
	(XMODE): Likewise.
	(XBITMAP): Likewise.
	(XTREE): Likewise.
	(XBBDEF): Likewise.
	(XTMPL): Likewise.
	(X0WINT): Likewise.
	(X0INT):Likewise.
	(X0UINT): Likewise.
	(X0STR): Likewise.
	(X0EXP): Likewise.
	(X0VEC): Likewise.
	(X0MODE): Likewise.
	(X0BITMAP): Likewise.
	(X0TREE): Likewise.
	(X0BBDEF): Likewise.
	(X0ADVFLAGS): Likewise.
	(X0CSELIB): Likewise.
	(X0MEMATTR): Likewise.
	(XCWINT): Likewise.
	(XCINT): Likewise.
	(XCUINT): Likewise.
	(XCSTR): Likewise.
	(XCEXP): Likewise.
	(XCVEC): Likewise.
	(XCMODE): Likewise.
	(XCBITMAP): Likewise.
	(XCTREE): Likewise.
	(XCBBDEF): Likewise.
	(XCADVFLAGS): Likewise.
	(XCCSELIB): Likewise.
	(XC2EXP): Likewise.
	(INSN_UID): Likewise.
	(PREV_INSN): Likewise.
	(PATTERN): Likewise.
	(INSN_CODE): Likewise.
	(PUT_REG_NOTE_KIND): Likewise.
	(CODE_LABEL_NUMBER): Likewise.
	(NOTE_SOURCE_FILE): Likewise.
	(NOTE_BLOCK): Likewise.
	(NOTE_EH_HANDLER): Likewise.
	(NOTE_RANGE_INFO): Likewise.
	(NOTE_LIVE_INFO): Likewise.
	(NOTE_BASIC_BLOCK): Likewise.
	(NOTE_EXPECTED_VALUE): Likewise.
	(NOTE_LINE_NUMBER): Likewise.
	(LABEL_NAME): Likewise.
	(LABEL_NUSES): Likewise.
	(LABEL_ALTERNATE_NAME): Likewise.
	(ADDRESSOF_DECL): Likewise.
	(JUMP_LABEL): Likewise.
	(LABEL_NEXTREF): Likewise.
	(REGNO): Likewise.
	(ORIGINAL_REGNO: Likewise.
	(HARD_REGISTER_NUM_P): Add parenthesis.
	(SUBREG_REG): Whitespace.
	(SUBREG_BYTE): Likewise.
	(ASM_OPERANDS_TEMPLATE): Remove parenthesis.
	(ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
	(ASM_OPERANDS_OUTPUT_IDX): Likewise.
	(ASM_OPERANDS_INPUT_VEC): Likewise.
	(ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
	(ASM_OPERANDS_INPUT): Likewise.
	(ASM_OPERANDS_INPUT_LENGTH): Likewise.
	(ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
	(ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
	(ASM_OPERANDS_INPUT_MODE): Likewise.
	(ASM_OPERANDS_SOURCE_FILE): Likewise.
	(ASM_OPERANDS_SOURCE_LINE): Likewise.
	(MEM_SET_IN_STRUCT_P): Minor reformat.
	(TRAP_CONDITION): Whitespace.
	(TRAP_CODE): Likewise.
	(COND_EXEC_TEST): Likewise.
	(COND_EXEC_CODE): Likewise.
	(FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
	(PHI_NODE_P): Add parenthesis.
	(plus_constant): Whitespace and add parenthesis.

2002-01-03  Kazu Hirata  <kazu@hxi.com>

	* config/avr/avr.c: Fix comment typos.
	* config/c4x/c4x.md: Likewise.
	* config/dsp16xx/dsp16xx.h: Likewise.
	* config/dsp16xx/dsp16xx.md: Likewise.
	* config/i386/i386.md: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/m32r/m32r.h: Likewise.
	* config/m68hc11/m68hc11.md: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/mn10200/mn10200.c: Likewise.
	* config/romp/romp.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* config/stormy16/stormy16.md: Likewise.

2002-01-03  Graham Stott  <grahams@redhat.com>

	* loop.h: Update copyright date.
	(LOOP_MOVABLES): Fix typo.
	(LOOP_REGS): Likewise.
	(LOOP_IVS): Likewise.

2002-01-03  Graham Stott  <grahams@redhat.com>

	* cppinit.c: Update copyright date.
	Don't include output.h
	* Makefile.in: Update copyright date.
	Update dependency.

2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	PR c/5226
	* invoke.texi (-mthreads): Remove from documented RS/6000 options.
	(-pthread) Add to RS/6000 options.

2002-01-02  Kazu Hirata  <kazu@hxi.com>

	* except.c: Fix comment typos.
	* loop.c: Likewise.
	* varasm.c: Likewise.
	* doc/tm.texi: Fix a typo.

2002-01-02  Jakub Jelinek  <jakub@redhat.com>

	* c-typeck.c (output_init_element): Allow initializing static storage
	duration objects with compound literals.

2002-01-02  Richard Henderson  <rth@redhat.com>

	* objc/objc-act.c (hack_method_prototype): Clear current_function_decl
	after abusing it.

2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* gcc.c (default_compilers): Const-ify.
	* mips-tdump.c (stab_names): Likewise.
	* mips-tfile.c (map_coff_types, map_coff_storage,
	map_coff_sym_type, map_coff_derived_type, stabs_symbol,
	pseudo_ops_t, pseudo_ops): Likewise.
	* protoize.c (default_include): Likewise

	* real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
	(ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
	Add array size in declaration.
	(endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
	emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
	esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
	etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
	eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
	efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
	c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
	emtens, make_nan): Const-ify.
	(TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
	DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.

2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>

	* config.gcc (ia64-*-*): Set extra_headers.
	(alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
	* config/alpha/t-osf: Remove.
	* config/ia64/t-ia64 (EXTRA_HEADERS): Remove.

2002-01-02  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/t-aix43: Revert previous change.

2002-01-02  Jason Merrill  <jason@redhat.com>

	* c-decl.c (c_expand_body): Call outlining_inline_function when
	emitting an inline function out of line.

2002-01-02  Richard Henderson  <rth@redhat.com>

	* dwarf2out.c (limbo_die_node): Add created_for member.
	(new_die): New argument created_for.  Update all callers.
	(mark_limbo_die_list): New.
	(dwarf2out_init): Register limbo_die_list as a root.
	(dwarf2out_finish): Force insert limbo dies into their function
	context.

2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/5089
	* doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.

2002-01-02  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/fixunssfsi.c: Update copyright.
	Fix comment typos.
	Fix formatting.
	* config/h8300/h8300.c: Update copyright.
	Eliminate warnings.

2002-01-02  Kazu Hirata  <kazu@hxi.com>

	* config/romp/romp.c: Fix comment formatting.
	* config/romp/romp.h: Likewise.
	* config/romp/romp.md: Likewise.
	* config/s390/s390.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/stormy16/stormy16.h: Likewise.

2002-01-02  Alexandre Oliva  <aoliva@redhat.com>

	* c-common.h (genrtl_expr_stmt_value): Declare.
	* c-semantics.c (genrtl_goto_stmt): Redirect to...
	(genrtl_goto_stmt_value): ... this new function.  Pass new
	argument down to expand_expr_stmt_value, taking
	TREE_ADDRESSABLE into account.
	* c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
	STMT_EXPR as addressable, i.e., one whose result we want.
	* expr.c (expand_expr): Don't save expression statement value
	of labeled_blocks or loop_exprs.
	* stmt.c (expand_expr_stmt): Redirect to...
	(expand_expr_stmt_value): ... this new function.  Use new
	argument to tell whether to save expression value.
	(expand_end_stmt_expr): Reset last_expr_type and
	last_expr_value if we don't have either.
	* tree-inline.c (declare_return_variable): Mark its use
	statement as addressable.
	* tree.h: Document new use of TREE_ADDRESSABLE.
	(expand_expr_stmt_value): Declare.

2002-01-01  Tom Rix  <trix@redhat.com>

	* config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
	rs6000_emit_allocate_stack.

2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>

	* configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
	${srcdir}/ginclude/ to every entry in extra_headers.
	* configure: Regenerate.
	* ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
	* ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
	* ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
	* ginclude/proto.h: Rename to config/convex/proto.h.

Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* attribs.c (handle_vector_size_attribute): Use host_integerp
	and tree_int_cst; remove warnings.
	* caller-save.c (insert_restore): Add cast to get rid of warning.
	(insert_save): Likewise.
	* emit-rtl.c (adjust_address_1, offset_address): Likewise.
	* regmove.c (find_matches): Add temporary var to kill a warning.

2002-01-01  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
	LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
	* config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
	(vms-dwarf2eh.o): Add Makefile rule.
	* config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
	* config/alpha/vms-dwarf2eh.asm: New file.

	* gcc.c (delete_if_ordinary): Delete all versions.

2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.md: Update FIXME to not mention
	define_constants.
	(MMIX_rJ_REGNUM): New define_constants constant.
	("movqi", "movsi", "movdi", "*movdicc_real_foldable",
	"*movdicc_real"): Adjust contraints formatting.
	("*bCC_foldable"): Add %+ for P in output format and delete FIXME
	for branch prediction.
	("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
	output template.
	("*call_real", "*call_value_real", "nonlocal_goto_receiver",
	"*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
	number.  Delete related FIXMEs.
	* config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
	from number to MMIX_rJ_REGNUM.
	(TARGET_MASK_BRANCH_PREDICT): New.
	(TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
	(TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
	value.  Add -mbranch-predict and -mno-branch-predict.
	(TARGET_VERSION): Drop date.
	(ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
	* config/mmix/mmix.c (mmix_encode_section_info): Correct condition
	for finding out global symbols.
	(mmix_asm_output_labelref): Revert condition for global symbol.
	(mmix_print_operand): <case '+'>: Emit P for a likely branch.
	(mmix_print_operand_punct_valid_p): A '+' is valid.

See ChangeLog.6 for earlier changes.
