2002-12-31  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Update the prototypes.
	* config/h8300/h8300.c (const_le_2_operand): Change to
	const_int_le_2_operand.
	(const_int_le_6_operand): Change to const_int_le_6_operand.
	* config/h8300/h8300.md (two peepholes): Update the function
	names.

2002-12-31  Tom Tromey  <tromey@redhat.com>

	* doc/install.texi (Testing): Fixed typo.

2002-12-31  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (TRAMPOLINE_TEMPLATE): Remove.
	(TRAMPOLINE_SIZE): Support the normal mode.
	(INITIALIZE_TRAMPOLINE): Emit the entire trampoline.

2002-12-31  Mark Mitchell  <mark@codesourcery.com>

	* c-common.h (pending_lang_change): Declare.

2002-12-31  Jerry Quinn  <jlquinn@optonline.net>

	* gcc/doc/invoke.texi (Optimization Options): Clean up -O flag
	descriptions.

2002-12-31  Jerry Quinn  <jlquinn@optonline.net>

	* gcc/doc/invoke.texi (Optimization Options): List the options
	enabled by each -O flag.

2002-12-31  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi (Configuration): Explicitly refer
	gcc/config.gcc for a list of cpu models.

2002-12-31  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h: Fix comment typos.

2002-12-30  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.h (WIDEST_HARDWARE_FP_SIZE): Define.

2002-12-30  Tom Tromey  <tromey@redhat.com>

	* doc/install.texi (Testing): Mention Jacks.

2002-12-30  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/gcc.texi, doc/gccint.texi: Update last modification dates.

2002-12-30  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (output_logical_op): Use extu.w in more
	cases.
	(compute_logical_op_length): Update to reflect the change in
	output_logical_op.
	(compute_logical_op_cc): Likewise.

2002-12-30  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/service.texi: Uncomment and update FAQ link.

2002-12-30  Andreas Jaeger  <aj@suse.de>

	* unwind-dw2-fde.h (last_fde): Add unused attribute for obj.

2002-12-30  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*addsi3_lshiftrt_16_zexthi): New.

2002-12-30  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (output_logical_op): Use extu.w if we
	are clearing the most significant byte.
	(compute_logical_op_length): Update to reflect the change in
	output_logical_op.
	(compute_logical_op_cc): Likewise.

2002-12-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Give internal names to anonymous
	insns.

2002-12-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Reorder some insns.

2002-12-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Add prototypes for
	const_int_qi_operand and const_int_hi_operand.
	* config/h8300/h8300.c (const_int_qi_operand): New.
	(const_int_hi_operand): Likewise.
	* config/h8300/h8300.md (three peepholes): New.

2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/cpp.texi, doc/gcc.texi, doc/gccint.texi, doc/install.texi:
	Use @copying.

2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>

	* configure.in: Increase makeinfo version requirement to 4.[2-9].
	* configure: Regenerate.
	* doc/install.texi: Update Texinfo version requirement.

2002-12-28  Andreas Jaeger  <aj@suse.de>

	* config/i386/i386.c (x86_function_profiler): Mark labelno as
	possibly unused.

	* c-parse.in (yyprint): Use HOST_WIDE_INT_PRINT_DOUBLE_HEX for
	correct format.

2002-12-27  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*iorhi_shift_8): Change the name to
	*iorhi_ashift_8.
	(*iorhi_lshiftrt_8): New.

2002-12-27  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/include/texinfo.tex: Update to version 2002-12-26.16.

2002-12-27  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Add Abramo and Roberto Bagnara.

2002-12-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Fix comment typos.
	Update copyright.
	* config/h8300/h8300.c: Fix comment typos.

2002-12-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (IDENT_ASM_OP): End with a tab.

2002-12-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/i386/athlon.md: Fix comment typos.
	* config/i386/crtdll.h: Likewise.
	* config/i386/djgpp.h: Likewise.
	* config/i386/i386-interix.h: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i386/i386.md: Likewise.
	* config/i386/k6.md: Likewise.
	* config/i386/mingw32.h: Likewise.
	* config/i386/pentium.md: Likewise.
	* config/i386/sco5.h: Likewise.
	* config/i386/winnt.c: Likewise.
	* config/i386/xmmintrin.h: Likewise.

2002-12-26  Jose Renau <renau@cs.uiuc.edu>

	* ssa-dce.c (EXECUTE_IF_UNNECESSARY): Verify INSN is an
	INSN_P before checking to see if it is dead.
	(mark_all_insn_unnecessary): Similarly.
	(ssa_eliminate_dead_code): Similarly.
	* rtl.h (struct rtx_def): Update comments for in_struct usage
	in dead code elimination pass.
	(INSN_DEAD_CODE_P): Allow JUMP_INSN and CALL_INSN as well.

2002-12-26  Andreas Schwab  <schwab@suse.de>

	* config.gcc (powerpc*-*-*, rs6000-*-*): Fix assignment syntax.

2002-12-25  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_override_options): Convert to
	tartet_flags_explicit.
	* config/rs6000/rs6000.h (MASK_MULTIPLE_SET, MASK_STRING_SET): Delete.
	Compact target_flags bits.
	(TARGET_MULTIPLE_SET, TARGET_STRING_SET): Delete.
	(TARGET_SWITCHES): Delete references to *_SET flags.

Wed Dec 25 20:30:53 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (memory attribute): Fix setcc attribute.

2002-12-25  Kazu Hirata  <kazu@cs.umass.edu>

	* output.h: Fix comment typos.
	* predict.c: Likewise.
	* print-tree.c: Likewise.
	* profile.c: Likewise.
	* ra-build.c: Likewise.
	* ra-colorize.c: Likewise.
	* ra-debug.c: Likewise.
	* ra-rewrite.c: Likewise.
	* ra.c: Likewise.
	* ra.h: Likewise.
	* real.c: Likewise.
	* recog.c: Likewise.
	* reg-stack.c: Likewise.
	* regclass.c: Likewise.

2002-12-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (print_operand_address): Do not negate
	a negative number when printing one.

2002-12-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Add prototypes for
	output_plussi, compute_plussi_length, and compute_plussi_cc.
	* config/h8300/h8300.c (output_plussi): New.
	(compute_plussi_length): Likewise.
	(compute_plussi_cc): Likewise.
	* config/h8300/h8300.md (addsi_h8300h): Call
	output_plussi, compute_plussi_length, and compute_plussi_cc.

2002-12-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (two peepholes): Use match_dup instead
	of match_operand in the new patterns.

2002-12-24  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/include/texinfo.tex: Update to version 2002-11-25.11.

2002-12-24  Nathan Sidwell  <nathan@codesourcery.com>

	* configure.in (enable-coverage): Add SELF_COVERAGE.
	* profile.c (end_branch_prob): Use SELF_COVERAGE.

2002-12-24  Jim Wilson  <wilson@redhat.com>

	* alias.c (record_set): Handle multi-reg hard registers.

2002-12-24  Kazu Hirata  <kazu@cs.umass.edu>

	* regmove.c: Fix comment typos.
	* reload.c: Likewise.
	* reload1.c: Likewise.
	* resource.c: Likewise.
	* rtl.def: Likewise.
	* rtl.h: Likewise.
	* rtlanal.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-rgn.c: Likewise.
	* sibcall.c: Likewise.
	* simplify-rtx.c: Likewise.
	* ssa-ccp.c: Likewise.
	* ssa.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* system.h: Likewise.
	* tlink.c: Likewise.
	* toplev.c: Likewise.
	* tracer.c: Likewise.
	* tree-inline.c: Likewise.
	* tree.c: Likewise.
	* tree.h: Likewise.
	* unroll.c: Likewise.
	* varasm.c: Likewise.

2002-12-23  Larin Hennessy  <larin@science.oregonstate.edu>

	* doc/install.texi: Remove i386-*-isc, i860-*-bsd,
	m68k-altos-sysv, m68k-isi-bsd, m68k-sony-bsd entries.
	* doc/invoke.texi: Remove AMD 29K, ARM RISC/iX, Clipper, Convex,
	DG/UX entries.
	* doc/md.texi: Remove AMD 29K entries.
	* doc/trouble.texi: Remove Alliant, DG/UX, Iris 4.0.5F, GAS
	1.38.1, NewsOS, RT PC, WE32K entries.

2002-12-23  Aldy Hernandez  <aldyh@redhat.com>

	PR/8763
	* config/rs6000/altivec.md (mulv4sf3): Rewrite to add -0.0 vector.
	(altivec_vspltisw_v4sf): Name pattern.
	(altivec_vslw_v4sf): New pattern.

2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/include/gcc-common.texi: Define DEVELOPMENT.

2002-12-23  Mark Mitchell  <mark@codesourcery.com>

	* stor-layout.c (update_alignment_for_field): Correct handling of
	unnamed bitfields on PCC_BITFIELD_TYPE_MATTERS machines.
	* doc/tm.texi (PCC_BITFIELD_TYPE_MATTERS): Note that an unnamed
	bitfield does not affect alignment.

2002-12-23  David Edelsohn  <edelsohn@gnu.org>

	* expr.c (expand_assignment): Apply special treatment to
	ARRAY_TYPE.

2002-12-23  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Update the prototype of
	expand_a_shift.
	* config/h8300/h8300.c (expand_a_shift): Change the return
	type to void.
	* config/h8300/h8300.md: Update all the uses of
	expand_a_shift.

2002-12-22  Nathan Sidwell  <nathan@codesourcery.com>

	* tree.c (save_expr): Allow either side of a dyadic operand to be
	constant.

	* doc/portability.texi (portability): Update portability goals.

2002-12-23  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (output_a_shift): Remove unused code.

2002-12-22  Mark Mitchell  <mark@codesourcery.com>

	* stor-layout.c (update_alignment_for_field): Guard use of
	ADJUST_FIELD_ALIGN with #ifdef.

	* stor-layout.c (update_alignment_for_field): Use
	ADJUST_FIELD_ALIGN when computing the alignment for a zero-width
	bitfield when PCC_BITFIELD_TYPE_MATTERS.

2002-12-22  Kazu Hirata  <kazu@cs.umass.edu>

	* genautomata.c: Fix comment typos.

Sun Dec 22 18:23:44 CET 2002  Jan Hubicka  <jh@suse.cz>

	* params.def (tracer-min-branch-probability-feedback): Fix default.
	* final.c (compute_alignments): Use profile to avoid code bloat.

2002-12-22  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (get_shift_alg): Make shift insn
	sequences end with a valid cc0 whenever possible.

2002-12-22  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (negsf2): New.
	(*negsf2_h8300): Likewise.
	(*negsf2_h8300hs): Likewise.

2002-12-21  Geoffrey Keating  <geoffk@apple.com>

	* integrate.c (output_inline_function): Don't hold private
	pointers to 'struct function' over GC calls.

2002-12-21  Kaz kojima  <kkojima@gcc.gnu.org>

	* config/sh/lib1funcs.asm (__fpscr_values): Conditionalize with
	NO_FPSCR_VALUES.
	* config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Add -DNO_FPSCR_VALUES.

2002-12-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (zero_extendqisi2): Correct the
	length.

2002-12-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*zero_extendqihi2_h8300): Make the
	second alternative "#".
	(*zero_extendqihi2_h8300hs): Likewise.
	(a define_split): New.

2002-12-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Update the prototype for
	split_adds_subs.
	Add prototypes for const_le_2_operand and const_le_6_operand.
	* config/h8300/h8300.c (split_adds_subs): Add an argument to
	specify whether inc/dec should be used when possible.
	(const_le_2_operand): New.
	(const_le_6_operand): Likewise.
	* config/h8300/h8300.md (two peepholes): New.

2002-12-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/fr30/fr30.md: Fix a comment typo.
	* config/i386/i386.c: Likewise.
	* config/ip2k/ip2k.h: Likewise.

2002-12-20  Jim Wilson  <wilson@redhat.com>

	* config/rs6000/spe.h (__ev_subifw): Reverse arguments.
	(__ev_subw, __ev_subiw): New.
	(ev_mwlssf, ev_mwlsmf, ev_mwlssfa, ev_mwlsmfa, ev_mwlssfaaw,
	ev_mwlsmfaaw, ev_mwlssfanw, ev_mwlsmfanw): Delete.

2002-12-20  John David Anglin  <dave.anglin@nrc.gc.ca>

	* pa-linux.h (TARGET_HAS_STUBS_AND_ELF_SECTIONS): Delete define.
	* pa32-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete define.
	* pa.c (pa_function_ok_for_sibcall): Allow non indirect sibcalls on
	TARGET_ELF32.  Add comment on sibcall issues for TARGET_64BIT.

2002-12-20  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300-protos.h: Add prototypes for
	incdec_operand and eqne_operator.
	* config/h8300/h8300.c (incdec_operand): New.
	(eqne_operator): Likewise.
	* config/h8300/h8300.h (CONST_OK_FOR_M): Likewise.
	(CONST_OK_FOR_O): Likewise.
	(CONST_OK_FOR_LETTER_P): Use CONST_OK_FOR_M and
	CONST_OK_FOR_O.
	* config/h8300/h8300.md (UNSPEC_INCDEC): New.
	(addhi3_incdec): New.
	(addsi3_incdec): Likewise.
	(two peepholes): Likewise.

2002-12-20  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (dosize): Remove warnings.
	(print_operand): Likewise.

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

	* config/alpha/alpha.c (decl_has_samegp): New.
	(samegp_function_operand): Use it.  Rename from
	current_file_function_operand.
	(direct_call_operand): Handle -msmall-text via symbol->jump.
	(tls_symbolic_operand_1): Use T for tprel64, t for smaller tprel.
	(tls_symbolic_operand_type): Likewise.
	(alpha_encode_section_info): Likewise.  Handle -msmall-text.
	(alpha_function_ok_for_sibcall): Use decl_has_samegp.
	(alpha_end_function): Set symbol->jump for functions defined in
	the text section.
	* config/alpha/alpha-protos.h: Update.
	* config/alpha/alpha.h (MASK_SMALL_TEXT, TARGET_SMALL_TEXT): New.
	(TARGET_SWITCHES): Add -msmall-text and -mlarge-text.
	(PREDICATE_CODES): Update.
	* config/alpha/alpha.md (call patterns): Update for
	samegp_function_operand rename; use !samegp reloc if
	TARGET_EXPLICIT_RELOCS.
	* doc/invoke.text: Document -msmall-text and -mlarge-text.

2002-12-20  Ian Dall  <ian@sibyl.beware.dropbear.id.au>

	* config/ns32k/ns32k.md (movdi): Use "l" instead of "f" to match
	all registers capable of holding a double float.
	(*rcond): change name of "reverse branch" insns to
	something more meaningful.
	(*rbgt, *rblt, *rbge, *rble): Reverse branches to handle IEEE
	comparisons properly.
	(*ffs): Change operand 0 from write to read-modify-write.
	(*ffsssi2): Drop constraints from define_expand.

	* config/ns32k/ns32k.h (STORE_RATIO, STORE_BY_PIECES): Avoid using
	MOVE_RATIO as default for store operations.

	* config/ns32k/ns32k.h (enum reg_class, REG_CLASS_NAMES): Add
	LONG_REGS class.
	(CANNOT_CHANGE_MODE_CLASS): Can't subreg LONG_REGS.
	(GO_IF_LEGITIMATE_ADDRESS): Remove spurious abort().
	* config/ns32k/ns32k.c (regclass_map): Add LONG_REGS class.

	* config/ns32k/STATUS: New File
	* config/ns32k/NOTES: New file.

2002-12-20  Hartmut Penner  <hpenner@de.ibm.com>

	* doc/invoke.texi: Document -mzarch, -mesa, -mcpu= and -march=
	option for S/390 and zSeries.
	* config/s390/s390.c (s390_cpu, s390_cpu_string, s390_arch,
	s390_arch_string): New variables.
	(override_options): Checking for options and setting of
	appropriate target_flags, cpu and arch flags.
	* config/s390/s390.h: (processor_type): New enum.
	(TARGET_SWITCHES): New switches -mesa/zarch.
	* config/s390/s390.md: New attribute 'cpu'.

2002-12-19  Kazu Hirata  <kazu@cs.umass.edu>

	* c-pretty-print.h: Fix comment typos.
	* integrate.c: Likewise.
	* varasm.c: Likewise.
	* config/c4x/c4x.h: Likewise.
	* config/c4x/c4x.md: Likewise.
	* config/fr30/fr30.md: Likewise.
	* config/frv/frv.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/i386.h: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/ip2k/ip2k.md: Likewise.
	* config/m68hc11/m68hc11-crt0.S: Likewise.
	* config/m68hc11/m68hc11.h: Likewise.
	* config/m68hc11/m68hc11.md: Likewise.
	* config/m68hc11/m68hc12.h: Likewise.
	* config/mcore/mcore.md: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mips/mips.md: Likewise.
	* config/mmix/mmix-modes.def: Likewise.
	* config/pa/pa.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/rs6000/rs6000.md: Likewise.

2002-12-19  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (output_a_shift): Clean up the code to
	output shifts using rotation.

2002-12-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* flow.c (allocate_reg_life_data): Reset REG_FREQ.

2002-12-19  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (pushqi_h8300): Don't push the stack
	pointer.
	(pushqi_h8300hs): Likewise.
	(pushhi_h8300): Likewise.
	(pushhi_h8300hs): Likewise.

Thu Dec 19 23:44:09 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sched-rgn.c (init_regions): Update comment.

2002-12-19  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (define_attr type): Remove altivec.
	* config/rs6000/altivec.md (movv4si_internal): Set correct instruction
	attributes.
	(movv8hi_internal,movv16qi_internal,movv4sf_internal): Same.
	(get_vrsave_internal,set_vrsave_internal): Same.
	(altivec_vspltisb,altivec_vspltish,altivec_vspltisw): Same.
	(absv16qi2,absv8hi2,absv4si2,absv4sf2): Same
	(altivec_abss_v16qi,altivec_abss_v8hi,altivec_abss_v4si): Same.

2002-12-19  Casper S. Hornstrup  <chorns@users.sourceforge.net>
	    Danny Smith  <dannysmith@users.sourceforge.net>
	    Eric Kohl  <ekohl@rz-online.de>

	* config/i386/i386.c (ix86_handle_cdecl_attribute): Check for
	attributes incompatible with fastcall attribute.
	(ix86_handle_regparm_attribute): Likewise.

	* config/i386/i386.c (ix86_comp_type_attributes): Check for mismatched
	fastcall types.

	* config/i386/cygwin.h (TARGET_OS_CPP_BUILTINS): Add fastcall
	attributes.
	(ASM_OUTPUT_LABELREF): Define as i386_pe_output_labelref.
	* config/i386/i386-protos.h (i386_pe_output_labelref): Declare.
	* config/i386/winnt.c (i386_pe_mark_dllimport). Add __imp_ prefix in
	i386_pe_output_labelref rather than here.
	(gen_fastcall_suffix): New function. Decorates a label name with the
	fastcall prefix (@) and the stdcall suffix.
	(i386_pe_encode_section_info): Call gen_fastcall_suffix() if a symbol
	has a fastcall attribute.
	(i386_pe_output_labelref): New function. Outputs a label reference.
	* config/i386/i386.c (ix86_attribute_table): Accept 'fastcall' as a
	valid attribute.
	(ix86_return_pops_args): Fastcall functions pop the stack.
	(init_cumulative_args): Reserve registers ECX and EDX if function has
	fastcall attribute.
	(function_arg): Use registers ECX and EDX if function has fastcall
	attribute.
	* config/i386/i386.h (CUMULATIVE_ARGS): Add fastcall attribute flag.
	(DLL_IMPORT_EXPORT_PREFIX): Redefine as '#'.
	(FASTCALL_PREFIX): Define as '@'.
	* config/i386/mingw32.h (TARGET_OS_CPP_BUILTINS): Add fastcall
	attributes.
	* doc/extend.texi: Add documentation of fastcall attribute.

2002-12-19  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in: FORBUILD when build!=host changed from
	../$build-alias to ../build-$build_alias to match change made
	in top directory.
	* configure: Regenerated.

2002-12-19  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR optimization/8988
	* loop.c (maybe_eliminate_biv): Kill REG_EQUAL notes mentioning
	the biv when eliminating.

2002-12-19  Devang Patel  <dpatel@apple.com>
	* gcc.c (struct default_compiler): Recognizes input file name with
	.CPP extension as C++ source files
	* cp/lang-spec.h: Same
	* doc/invoke.texi:  Add documentation for .CPP support.

2002-12-19  Aldy Hernandez  <aldyh@redhat.com>

	PR 8553
	* config/rs6000/altivec.md ("absv8hi2"): Add & to clobbered
	registers.
	("absv16qi2"): Same.
	("absv4si2"): Same.
	("absv4sf2"): Same.
	("altivec_abss_v16qi"): Same.
	("altivec_abss_v8hi"): Same.
	("altivec_abss_v4si"): Same.

2002-12-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("*tsthiCCT", "*tsthiCCT_cconly",
	"*tstqiCCT", "*tstqiCCT_cconly"): New insns.

2002-12-19  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR target/8340
	* stmt.c (expand_asm_operands): Produce an error when
	the PIC register is clobbered.

2002-12-18  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.in (OBJS): Add alloc-pool.o
	(alloc-pool.o): New object.

	* alloc-pool.c: New file.
	* alloc-pool.h: New file.

2002-12-18  Loren James Rittle  <ljrittle@acm.org>

	* gcc.c (validate_switches): Robustify against skipping past '\0'.

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

	* config.gcc: Set extra_objs in the generic Darwin rule,
	not in the machine-specific rules.

2002-12-19  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog: Follow spelling conventions.
	* ChangeLog.2: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* cppexp.c: Likewise.
	* df.c: Likewise.
	* gcov.c: Likewise.
	* gengtype.c: Likewise.
	* reload1.c: Likewise.
	* sched-rgn.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* timevar.c: Likewise.
	* toplev.c: Likewise.
	* tree.h: Likewise.
	* varasm.c: Likewise.
	* config/fr30/fr30.md: Likewise.
	* config/i386/i386.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/pa/pa.c: Likewise.

2002-12-18  Roger Sayle  <roger@eyesopen.com>

	* basic-block.h (flow_bb_inside_loop_p): Correct prototype.

2002-12-18  Aldy Hernandez  <aldyh@redhat.com>

	PR 8551
	* config/rs6000/altivec.h (vec_cmplt macro): Reverse arguments in
	macro.
	(vec_cmplt C++ functions): Reverse arguments.

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

	* config/rs6000/t-rs6000: Move contents to t-fprules,
	add rules for dependencies of rs6000.o and to build rs6000-c.o
	* config/rs6000/t-fprules: New file from t-rs6000.
	* config/rs6000/t-beos: Remove soft-fp rules.
	* config/rs6000/t-ppccomm: Likewise.
	* config/rs6000/t-newas: Likewise.
	* config/rs6000/t-rs6000-c-rule: Delete.
	* config.gcc: Use t-fprules for rs6000/ ports when appropriate.
	Use t-rs6000 for all rs6000/ ports instead of t-rs6000-c-rule.
	Create generic Darwin rules.

	* gengenrtl.c (gencode): Delete unnecessary rtl_obstack declaration.

2002-12-18  Doug Evans  <dje@sebabeach.org>

	* m32r/m32r.c (addr24_operand): Fix arg to CONSTANT_POOL_ADDRESS_P
	and LIT_NAME_P.
	(move_src_operand): Remove compile-time warning.
	* m32r/m32r.h (ROUND_ADVANCE_ARG): Ditto.

2002-12-18  Jason Merrill  <jason@redhat.com>

	* unwind-dw2-fde.c (frame_downheap): Split out from...
	(frame_heapsort): Here.

2002-12-17  Jason Merrill  <jason@redhat.com>

	* tree.c (make_node): Don't set TREE_TYPE on 's' class nodes.
	(build1): Always set TREE_SIDE_EFFECTS on 's' class nodes.

	* gcc.c (do_spec_1) ['W']: End any pending argument from the braces.

	* calls.c (expand_call): Don't try to be clever about expanding
	the return slot address.

2002-12-18  Kaz kojima  <kkojima@gcc.gnu.org>

	* config/sh/linux.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC):
	Define.

2002-12-17  Jason Merrill  <jason@redhat.com>

	* genmultilib: Use 'cd ./foo'.

2002-12-17  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/c-tree.texi: Restore deliberate spelling mistakes.

2002-12-17  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/c-tree.texi: Fix typos and follow spelling conventions.
	* doc/cpp.texi: Likewise.
	* doc/extend.texi: Likewise.
	* doc/gty.texi: Likewise.
	* doc/install.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: Likewise.
	* doc/passes.texi: Likewise.
	* doc/rtl.texi: Likewise.
	* doc/sourcebuild.texi: Likewise.
	* doc/tm.texi: Likewise.

2002-12-17  Jerry Quinn  <jlquinn@optonline.net>

	* doc/invoke.texi: Minor spelling and grammar fixes.

2002-12-17  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_output_constant_pool): Replace
	ASM_OUTPUT_INTERNAL_LABEL by (*targetm.asm_out.internal_label).

Tue Dec 17 09:47:57 CET 2002  Jan Hubicka  <jh@suse.cz>

	* convert.c (convert_to_real): Disable function transformation for
	now.

2002-12-16  Geoffrey Keating  <geoffk@apple.com>

	* gcc.c (handle_braces): Allow '@' as a switch name.

2002-12-16  Jason Merrill  <jason@redhat.com>

	* calls.c (expand_call): Handle CALL_EXPR_HAS_RETURN_SLOT_ADDR
	with special struct-return ABIs.

	* c-semantics.c (add_scope_stmt): Abort if the end SCOPE_STMT
	doesn't match the begin SCOPE_STMT in partialness.

2002-12-16  Geoffrey Keating  <geoffk@apple.com>

	* genmultilib: Create temporary files in unique subdirectory.

	* gcc.c (validate_switches): Allow '@' as a switch name.

2002-12-16  Loren J. Rittle  <ljrittle@acm.org>

	* Makefile.in (gcov-iov.h): Improve portability.

Mon Dec 16 23:39:19 CET 2002  Jan Hubicka  <jh@suse.cz>

	* mips.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not use qpword on API_N32/not
	gas
	* mips.md (tablejump insn): Likewise.

2002-12-16  Mark Mitchell  <mark@codesourcery.com>

	* doc/include/gcc-common.texi: Change version number to 3.4.

2002-12-16  Bruce Korb  <bkorb@gnu.org>

	* fixinc/fixlib.h: add: #include <signal.h>
	* fixinc/fixincl.c: remove: #include <signal.h>

Mon Dec 16 17:20:04 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (EXTRA_CONSTRAINT_Z): New macro.
	(EXTRA_CONSTRAINT): Use it.
	* sh.md (anddi3): Use 'Z' constraint for alternative 2.

2002-12-15  Zack Weinberg  <zack@codesourcery.com>

	* config.gcc (need_64bit_hwint): New variable.
	(alpha*-*-*, x86_64-*-*, ia64-*-*, mips*-*-*, powerpc*-*-*,
	mmix-knuth-mmixware, rs6000*-*-*, sparc64*-*-*, s390*-*-*,
	sh*-*-*, hppa*64*-*-linux, parisc*64*-*-linux, hppa*64*-*-hpux11*,
	sparcv9-*-solaris2*, sparc*-*-solaris2.[789], ultrasparc-*-freebsd*):
	Set it.
	(powerpc*-*-darwin*): Unset it.
	(alpha-*-interix, alpha64-dec-*vms*, i?86-*-interix3*,
	i?86-*-interix*, sparc64-*-openbsd*): Remove references to
	deleted/nonexistent xm-*.h headers.
	* configure.in: AC_DEFINE NEED_64BIT_HOST_WIDE_INT if the
	target set need_64bit_hwint in config.gcc.
	* configure, config.in: Regenerate.

	* hwint.h: Overhaul.  Don't bother trying int for
	HOST_WIDE_INT.  Do try __int64 if long is not enough.  Base
	decision to force 64-bit HOST_WIDE_INT on
	NEED_64BIT_HOST_WIDE_INT, not (MAX_)LONG_TYPE_SIZE which is
	not visible at this point.  Don't allow prior definition of
	any macro defined by this file.

	* config/alpha/xm-vms.h: Don't define HOST_WIDE_INT or
	HOST_BITS_PER_WIDE_INT.
	* config/c4x/c4x.h: Adjust redefinition of
	HOST_WIDE_INT_PRINT_HEX to match changes to hwint.h.
	* config/alpha/xm-alpha-interix.h, config/alpha/xm-vms64.h,
	config/i386/xm-i386-interix.h: Delete file.

2002-12-14  Rodney Brown  <rbrown64@csc.com.au>
	    John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa.c (output_millicode_call): Convert ASM_OUTPUT_INTERNAL_LABEL.
	* pa64-hpux.h (ASM_OUTPUT_INTERNAL_LABEL): Delete define.

2002-12-14  Zack Weinberg  <zack@codesourcery.com>

	* mkconfig.sh: Correct comment.  Add copyright boilerplate.

2002-12-14  Zack Weinberg  <zack@codesourcery.com>

	* config/t-darwin, config/arm/t-pe, config/arm/t-strongarm-pe,
	config/c4x/t-c4x, config/i370/t-i370, config/i386/t-cygwin,
	config/i386/t-interix, config/i960/t-960bare, config/ia64/t-ia64,
	config/rs6000/t-rs6000-c-rule, config/sparc/t-sol2,
	config/v850/t-v850:  Correct dependencies and normalize
	compilation commands for files that include coretypes.h and tm.h.

	* config/sparc/gmon-sol2.c: Include tconfig.h and tsystem.h,
	not config.h and system.h.

Sat Dec 14 20:43:41 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (flags_reg_operand):  New function.
	* i386.h (PREDICATE_CODES): Add flags_reg_operand.
	* i386.md (cmov splitter, movqicc): Use new predicate.

Sat Dec 14 17:03:17 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movqicc splitter): Fix template.

2002-12-13  Jason Merrill  <jason@redhat.com>

	* tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): New macro.
	* calls.c (expand_call): Handle it.
	* tree-inline.c (struct inline_data): Remove target_exprs field.
	(optimize_inline_calls): Don't initialize it.
	(expand_call_inline): Don't modify it.  Handle
	CALL_EXPR_HAS_RETURN_SLOT_ADDR.
	(declare_return_variable): Take return slot addr.
	* langhooks.h (copy_res_decl_for_inlining): Change target_exprs parm
	to return_slot_addr.
	* langhooks-def.h, langhooks.c: Adjust.
	* explow.c (maybe_set_unchanging): Don't set RTX_UNCHANGING_P for
	a decl with no DECL_INITIAL.

	* expr.c (expand_expr): Don't discard the target of a call which
	returns in memory.

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

	* cppinit.c (path_include): Take an environment variable name.
	Tidy up.
	(init_standard_includes): Simplify environment handling, and
	move to ...
	(cpp_read_main_file): ...here as -nostdinc should not affect
	environment variable paths.

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

	* pa.c (output_millicode_call): Correct typo.
	(output_call): Likewise.

Fri Dec 13 21:07:18 2002  Alexandre Oliva  <aoliva@redhat.com>

	* config/mn10300/mn10300.c (print_operand) <case N>: Check
	operand's range.  Print value directly, without aid from
	output_address.
	<case U>: New.
	<case S>: Make sure argument to fprintf has the right type.
	* config/mn10300/mn10300.h (OK_FOR_T): New macro.
	(EXTRA_CONSTRAINT): Adjust.
	* config/mn10300/mn10300.md: Add new all-QImode pattern for
	bclr.  Use %U for immediate operands of bset and bclr.
	(iorqi3): New expand, with insns for AM33 and mn10300.

Fri Dec 13 16:02:27 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (sh_register_operand): New function.
	(prepare_move_operands): Use it.
	* sh.h (PREDICATE_CODES): Add entry for sh_register_operand.
	* sh.md (movsi_media, movsi_media_nofpu): Allow stores of 0.
	(movqi_media, movhi_media, movdi_media, movdi_media_nofpu): Likewise.
	(movdf_media, movdf_media_nofpu, movv4sf_i, movsf_media): Likewise.
	(movsf_media_nofpu, movv2hi_i, movv4hi_i, movv8qi_i): Likewise.
	(movv2si_i): Likewise.

2002-12-13  Jim Wilson  <wilson@redhat.com>

	* doc/extend.texi (Complex Numbers): Update info on debug info.

2002-12-13  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (addhi3_h8300): Remove the last
	alternative.

2002-12-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* hooks.h (hook_tree_tree_bool_false): Declare
	hook_bool_tree_tree_false instead.

2002-12-12  Devang Patel  <dpatel@apple.com>

	* doc/invoke.texi: Document Darwin linker options, -bundle
	-bind_at_load, -all_load and -arch_errors_fatal

2002-12-12  Jim Wilson  <wilson@redhat.com>

	* dbxout.c (dbxout_fptype_value): New.
	(dbxout_type, case COMPLEX_TYPE): Call it.  Use 'R' instead of 'r'.

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

	* c-decl.c: Fix a comment typo.
	* cfg.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfglayout.c: Likewise.
	* cfgrtl.c: Likewise.
	* c-typeck.c: Likewise.
	* dominance.c: Likewise.
	* dwarf2asm.c: Likewise.
	* dwarfout.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* flow.c: Likewise.
	* function.c: Likewise.
	* gcc.c: Likewise.
	* genautomata.c: Likewise.
	* integrate.c: Likewise.
	* loop.c: Likewise.
	* loop.h: Likewise.
	* output.h: Likewise.
	* profile.c: Likewise.
	* ra.h: Likewise.
	* reload1.c: Likewise.
	* reload.c: Likewise.
	* sched-rgn.c: Likewise.
	* stmt.c: Likewise.
	* tree.h: Likewise.
	* vmsdbgout.c: Likewise.

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

	* config/h8300/h8300.md: Add a new peephole2.

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

	* config/h8300/h8300.md (a peephole2): Accept a constant
	that's accepted by CONST_OK_FOR_J.

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

	* config/h8300/h8300.h (CONST_OK_FOR_J): New.
	(CONST_OK_FOR_LETTER_P): Use CONST_OK_FOR_J.
	* config/h8300/h8300.md (*addhi_h8300): Add a new alternative.
	(*addhi_h8300hs): Likewise.

Thu Dec 12 16:24:59 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (reg_class_from_letter): No longer const.  Add 'e' entry.
	(sh_register_move_cost): Add clause for SImode fp-fp moves.
	Increase cost for moves involving multiple general purpose registers.
	* sh.h (OVERRIDE_OPTIONS): Set reg_class_from_letter['e'] according to
	TARGET_FMOVD.
	(HARD_REGNO_MODE_OK): Allow V2SFmode and V4SFmode in general purpose
	registers, and SImode in fp registers, for ! TARGET_SHMEDIA.
	(enum reg_class reg_class_from_letter): No longer const.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Use REGCLASS_HAS_FP_REG /
	REGCLASS_HAS_GENERAL_REG.
	Handle SImode moves from/to fp registers.
	! TARGET_SHMEDIA && TARGET_FMOVD.
	(SECONDARY_INPUT_RELOAD_CLASS): Use REGCLASS_HAS_FP_REG.
	* sh.md (movsi_ie): Add alternatives to move from / to fp regisyters.

2002-12-12  Andreas Schwab  <schwab@suse.de>

	* config/ia64/ia64.c (ia64_hpux_asm_file_end): Fix typo in last
	change and some warnings.

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

	* doc/md.texi (pushm): Fix a typo.

2002-12-12  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.c (mips_output_conditional_branch): Support
	PIC-safe out-of-range branch and branch-likely.
	* config/mips/mips.md (attr length): PIC-safe out-of-range
	branches are longer.
	("jump"): Support PIC-safe out-of-range-for-branch jumps.  Remove
	unused code to support indirect jumps.

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

	* Makefile.in (GTFILES): Add $(host_xm_file_list) and
	$(tm_file_list).

2002-12-11  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/t-rs6000-c-rule: Add coretypes.h $(TM_H) dependencies.

Wed Dec 11 15:20:45 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (cmove splitters): Avoid creation of unnecesary subregs.

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

	* pa.h (BIGGEST_ALIGNMENT): Change 32-bit value to 64 bits.
	(MAX_PARM_BOUNDARY, STACK_BOUNDARY): Express in terms of
	BIGGEST_ALIGNMENT.
	(PREFERRED_STACK_BOUNDARY): Express in terms of STACK_BOUNDARY.
	(FUNCTION_BOUNDARY): Express in terms of BITS_PER_WORD.

2002-12-11  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/invoke.texi: Correct dump file names.

2002-12-09  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.c (ia64_hpux_asm_file_end): Don't send stripped
	name to globalize_label or assemble_name.

Wed Dec 11 20:15:19 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (REG_CLASS_HAS_GENERAL_REG): Only true for SIBCALL_REGS
	if not TARGET_SHMEDIA.

Wed Dec 11 19:05:05 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (REG_CLASS_HAS_FP_REG): New.
	(REGISTER_MOVE_COST) Use it.  Put body into a function and
	move it into:
	* sh.c (sh_register_move_cost).
	* sh-protos.h (sh_register_move_cost): Declare.

	* sh.c (sh_expand_builtin): Abort for unexpected nop values.
	(sh_adjust_cost): Always return a value.

Wed Dec 11 18:39:52 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (REG_CLASS_HAS_GENERAL_REG): New.
	(REGISTER_MOVE_COST): Use it.

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

	* tree.h (MODULE_LOCAL_P): Kill.
	* varasm.c (default_binds_local_p_1): Use decl_visibility instead.

2002-12-11  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (two define_peephole2): New.

2002-12-11  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (CONST_OK_FOR_J): Remove.
	(CONST_OK_FOR_K): Likewise.
	(CONST_OK_FOR_M): Likewise.
	(CONST_OK_FOR_LETTER_P): Do not use the above macros.

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

	* c-common.c (builtin_define_type_max): Handle unsigned
	types too.

2002-12-10  David Edelsohn  <edelsohn@gnu.org>

	* haifa-sched.c (rank_for_schedule): Correct style.

2002-12-10  Per Bothner  <pbothner@apple.com>

	* cpplib.h (struct cpp_hashnode):  Split a non-portably-signed field
	directive_index into an unsigned field and a new is_directive field.
	* cppinit.c (mark_named_operators):  Update to set new fields.
	* cpplex.c (_cpp_lex_direct):  Now directive_field is unsigned.
	* cpplib.c [_cpp_handle_directive]:   Test is_directive field.
	No longer need to subtract 1 from directive_index.
	(_cpp_init_directives):  No longer need to add 1 to directive_index.
	* cpptrad.c (scan_out_logical_line):  Use is_directive field.

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

	* builtins.c (fold_builtin): Remove -funsafe-math-optimizations
	check for evaluating sqrt of a constant at compile time.
	* simplify-rtx.c (simplify_unary_operation): Likewise.

2002-12-10  Janis Johnson  <janis187@us.ibm.com>

	PR other/8882
	* doc/tm.texi (PUSH_ARGS): Remove misplaced line.

2002-12-10  Devang Patel  <dpatel@appple.com>

	* config/darwin.h(LINK_SPEC): Add darwin specific linker options.
	* doc/invoke.texi: Add new "Darwin Options" section.

2002-12-10  Jim Wilson  <wilson@redhat.com>

	* rs6000.h (RETURN_IN_MEMORY): If ABI_V4, then TFmode is returned in
	memory.

2002-12-10  Andrew Haley  <aph@redhat.com>

	* cse.c (cse_insn): Don't cse past a basic block boundary.

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

	* config/linux.h (LIB_SPEC): If -pthread, add -lpthread even if
	-shared.
	* config/alpha/linux-elf.h (LIB_SPEC): Likewise.
	* config/alpha/linux.h (LIB_SPEC): Likewise.
	* config/arm/linux-elf.h (LIB_SPEC): Likewise.
	* config/pa/pa-linux.h (LIB_SPEC): Likewise.
	* config/sparc/linux.h (LIB_SPEC): Likewise.
	* config/sparc/linux64.h (LIB_SPEC): Likewise.

2002-12-09  Larin Hennessy  <larin@science.oregonstate.edu>

	* doc/invoke.texi: Document UltraSparc III option.

2002-12-09  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
	__tune_pentium2__ and __tune_pentium3__ as necessary.

2002-12-09  Richard Henderson  <rth@redhat.com>

	* target.h (gcc_target): Add cannot_force_const_mem.
	* target-def.h (TARGET_CANNOT_FORCE_CONST_MEM): New.
	(TARGET_INITIALIZER): Add it.
	* varasm.c (force_const_mem): Fail if cannot_force_const_mem.
	* expr.c (emit_move_insn): Be prepared for force_const_mem to fail.
	* reload1.c (reload): Likewise.
	* hooks.c (hook_bool_rtx_false): New.
	* hooks.h: Declare it.

	* config/i386/i386.c (ix86_cannot_force_const_mem): New.
	(TARGET_CANNOT_FORCE_CONST_MEM): New.
	(ix86_expand_move): Remove de-const-pooling hack.

Mon Dec  9 21:33:38 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (dump_file): Fix order to match reality.

2002-12-08  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/rs6000.md (load_multiple): Use adjust_address_nv.
	(store_multiple): Likewise.

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

	* pa/fptr.c (__canonicalize_funcptr_for_compare): Don't canonicalize
	function pointers in page 0.

2002-12-09  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (TARGET_STRUCT_ARG_REG_LITTLE_ENDIAN): Remove
	definition
	(MEMBER_TYPE_FORCES_BLK): Move.
	* config/ia64/ia64.c (ia64_function_arg): Use PARALLEL to pass
	aggregate arguments.
	(ia64_function_value): Use PARALLEL to return aggregate values.

2002-12-09  Steve Ellcey  <sje@cup.hp.com>

	* doc/tm.texi (FUNCTION_ARG_REG_LITTLE_ENDIAN): Remove definition.
	* defaults.h (FUNCTION_ARG_REG_LITTLE_ENDIAN): Remove definition.
	* calls.c (store_unaligned_arguments_into_pseudos) Remove
	FUNCTION_ARG_REG_LITTLE_ENDIAN.
	* stmt.c (expand_return): Ditto.
	* expr.c (move_block_from_reg): Ditto.
	(copy_blkmode_from_reg): Ditto.
	* expmed.c (store_bit_field): Ditto.

2002-12-09  Svein E. Seldal  <Svein.Seldal@solidas.com>

	* config.gcc: Added tic4x-* target as an alias to c4x-*

Sun Dec  8 14:57:39 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc): Use force_operand instead of
	constructing insn directly.

2002-12-06  Per Bothner  <pbothner@apple.com>

	* cpplib.h (struct cpp_hashnode):  Change field directive_index from
	char to an int bit-field, for hosts where char is unsigned.

2002-12-07  Roger Sayle  <roger@eyesopen.com>
	    Richard Henderson <rth@redhat.com>

	* real.c (ieee_extended_motorola_format,
	ieee_extended_intel_96_format, ieee_extended_intel_128_format,
	ieee_quad_format, vax_d_format, vax_g_format, i370_double_format):
	Provide appropriate values for new signbit field.

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

	* real.h (real_format): Add signbit field.
	* real.c (ieee_single_format, ieee_double_format,
	ieee_extended_motorola_format, ieee_extended_intel_96_format,
	ieee_extended_intel_128_format, ibm_extended_format,
	ieee_quad_format, vax_f_format, vax_d_format,
	vax_g_format, i370_single_format, i370_double_format,
	c4x_single_format, c4x_extended_format, real_internal_format):
	Provide suitable signbit value, or -1 to avoid bit twiddling.

	* optabs.c (expand_unop): Try implementing negation of
	floating point modes by flipping the sign bit.
	(expand_abs): Try implementing abs of floating point modes
	by clearing the sign bit.

Sat Dec  7 22:29:47 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc):  Use force_operand instead
	of constructing insn directly.

2002-12-07  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*iorhi_shift_8): New.

2002-12-06  Bernd Schmidt  <bernds@redhat.com>

	* doc/invoke.texi: Document FRV port options.
	* doc/md.texi: Document FRV register classes.

2002-12-07  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/install.texi (Configuration): Improve description of cases
	where `make distclean` may fail; clarify --with-gnu-as; fix grammar.

2002-12-06  Per Bothner  <pbothner@apple.com>

	* cpplib.h (NODE_MACRO_ARG):  New flag.
	(struct cpp_hashnode):  Give _cpp_hashnode_value tag to value union.
	Remove value.operator field.  Move arg_index field to value union.
	(directive_index):  Make signed, since also used for C++ operators.
	* cppmacro.c (_cpp_save_parameter):  Use NODE_MACRO_ARG flag to
	check for duplicate parameter.  Set NODE_MACRO_ARG flag.
	Save node->value, and set node->value.arg_index.
	(_cpp_create_definition):  For each paramater, restore node->value.
	(lex_expansion_token):  Use NODE_MACRO_ARG flag, and moved arg_index.
	* cpptrad.c (scan_out_logical_line): Likewise.
	(scan_out_logical_line): Check for directive > 0.
	* cpplib.c (cpp_handle_directive):  Likewise.
	* cpplex.c (_cpp_lex_direct):  Update as value.operator is replaced
	by negative of directive_index.
	* cppinit.c (mark_named_operators):  Likewise.

	* hashtable.h (struct ht_identifier):  Swap fields, for better packing.

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

	* gcc/config/sh/sh.c (calc_live_regs): Save fpscr only if target has
	FPU.
	(push): Generate push_fpscr.
	(pop): Generate pop_fpscr.
	* gcc/config/sh/sh.md : Add define_expand "push_fpscr", "pop_fpscr".
	(fpu_switch): Add alternative to push fpscr.  Enable for TARGET_SH3E.

Fri Dec  6 19:36:24 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (dump_table): DImode pool constants need only 32 bit alignment.
	DFmode alignment depends on TARGET_FMOVD && TARGET_ALIGN_DOUBLE.

Fri Dec  6 19:17:49 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (movdi_i): Name.  Remove inappropriate comment.

Fri Dec  6 15:44:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
	Merged from basic improvements branch (excerpt):

	2002-11-19  Kaz Kojima  <kkojima@gcc.gnu.org>
	* config/sh/sh.h (SH_DBX_REGISTER_NUMBER): Handle PR_MEDIA_REG.

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

	* expr.c (expand_expr) <case COND_EXPR>: Never modify exp in place.

Thu Dec  5 16:58:25 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (dimode peep2s): Re-add "&& 1".

Thu Dec  5 14:10:15 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_prologue):  Add comment, do not use
	fast prologues for cold and normal functions.

Thu Dec  5 00:52:37 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (x86_rep_movl_optimal): New variable.
	(ix86_expand_movstr, ix86_expand_clrstr): Use TARGET_REP_MOVL_OPTIMAL
	* i386.h (TARGET_REP_MOVL_OPTIMAL): New macro.

	* i386.md (negsf2_ifs, negdf2_ifs, negdf2_ifs_rex64, abssf2_ifs,
	absdf2_ifs, absdf2_ifs_rex64): Fix constraints.
	neg?f2_ifs, abs?f2_ifs splitters): Refuse memory operand; do not
	generate unnecesary subregs.

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

	* pa32-linux.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL): Move define.
	* pa.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL): To here.

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

	* tree.c (unsafe_for_reeval):  Consider callee child of CALL_EXPR.

2002-12-05  Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/cygwin.h (SUBTARGET_PROLOGUE): Replace with
	PROFILE_HOOK.
	* config/i386/mingw32.h (SUBTARGET_PROLOGUE): Don't undef.

2002-12-05  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/spe.h (__ev_mwlufi): Remove.
	(__ev_mwlufia): Remove.
	(__ev_mwlumfaaw): Remove.
	(__ev_mwlusfaaw): Remove.
	(__ev_mwlumfanw): Remove.
	(__ev_mwlusfanw): Remove.

2002-12-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*andorsi3_shift_8): New.

2002-12-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (shift_alg_si): Optimize ashift:HI and
	lshiftrt:SI by 28, 29, and 30 bits when !TARGET_H8300.
	(get_shift_alg): Return optimal assembly instructions for the
	shifts mentioned above.

Wed Dec  4 11:53:07 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc): Force operand into register for QImode
	condtiional moves.

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

	* config/h8300/h8300.c (h8300_init_once): Do not use loop to
	implement ashiftrt:HI by 13 bits on H8S.

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

	* pa/fptr.c (__canonicalize_funcptr_for_compare): New file and function.
	* pa.md (canonicalize_funcptr_for_compare): Output library call to
	canonicalize_funcptr_for_compare_libfunc on TARGET_ELF32.
	* pa32-linux.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL,
	CTOR_LIST_BEGIN): New defines.
	* pa/t-linux (LIB2FUNCS_EXTRA): New define.
	(fptr.c): Add make rules.

2002-12-04  Geoffrey Keating  <geoffk@apple.com>

	* combine.c (combine_simplify_rtx): Add new canonicalizations.
	* doc/md.texi (Insn Canonicalizations): Document new
	canonicalizations for multiply/add combinations.
	* config/rs6000/rs6000.md: Add and modify floating add/multiply
	patterns to ensure they're used whenever they can be.

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

	* config/h8300/h8300.c: Update the comments related to shifts.

2002-12-04  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.md (get_fnaddr): Correct length attribute.

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

	* config/h8300/h8300.md (*extzv_8_8): New.
	(*extzv_8_16): Likewise.

2002-12-04  Jason Merrill  <jason@redhat.com>

	PR c++/8461, c++/8625
	* integrate.c (copy_decl_for_inlining): Handle explicit invisible
	references.
	* tree-inline.c (initialize_inlined_parameters): Likewise.

	* tree.c (variably_modified_type_p): Just return an error_mark_node.

2002-12-04  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.md (get_fnaddr): Avoid placing an "la"
	macro instruction in a branch delay slot, to avoid assembler
	warnings.

2002-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR c/7622
	* c-semantics (genrtl_scope_stmt): Do not output inlined
	nested functions that contain no code.

Wed Dec  4 15:20:54 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (force_nonfallthru_and_redirect):  Allow abnormal edge
	to be forced into nonfallthru.

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

	* config/t-netbsd (USER_H): Set to $(EXTRA_HEADERS).

2002-12-03  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/spe.md (*movv1di_const0): New pattern.

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

	* libgcc-std.ver: Inherit GCC_3.3 from GCC_3.0.

2002-12-03  Hans-Peter Nilsson  <hp@bitrange.com>

	* bitmap.c (bitmap_ior_and_compl, bitmap_union_of_diff):
	Initialize tmp.using_obstack to 0.

2002-12-03  Andreas Schwab  <schwab@suse.de>

	* config/m68k/m68k.h (EH_RETURN_DATA_REGNO): Define.
	(EH_RETURN_STACKADJ_RTX): Define.
	(EH_RETURN_HANDLER_RTX): Define.
	(ASM_PREFERRED_EH_DATA_FORMAT): Define.
	* config/m68k/m68k.c (m68k_save_reg): New function.  Handle eh
	registers and don't save fixed registers.
	(m68k_output_function_prologue): Use it.
	(use_return_insn): Likewise.
	(m68k_output_function_epilogue): Likewise.

2002-12-03  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (single_one_operand): Fix a warning.
	(single_zero_operand): Likewise.

2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.in configure configure.in dummy-conditions.c fix-header.c
	gcov-iov.c gen-protos.c genattr.c genattrtab.c genautomata.c
	gencheck.c gencodes.c genconditions.c genconfig.c genconstants.c
	genemit.c genextract.c genflags.c gengenrtl.c gengtype-lex.l
	gengtype-yacc.y gengtype.c genopinit.c genoutput.c genpeep.c
	genpreds.c genrecog.c gensupport.c mkconfig.sh read-rtl.c
	scan-decls.c scan.c config/sh/sh.h doc/configfiles.texi
	doc/install-old.texi: Replace hconfig.h with bconfig.h.
	* Makefile.in: Replace HCONFIG_H with BCONFIG_H.

2002-12-02  Andrew Pinski  <pinskia@physics.uc.edu>

	* config/rs6000/rs6000.md (ffssi): Convert to expander.
	(ffsdi): Likewise.
	(cntlzw2, cntlzd2): New patterns.

2002-12-02  H.J. Lu <hjl@gnu.org>

	* config.gcc (mips*-*-netbsd*): Remove mips/t-netbsd.
	(mips*-*-linux*): Remove mips/t-linux.

Mon Dec  2 19:26:30 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc):  Avoid overflow.

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

	* config/h8300/h8300.c (dosize): Replace argument op with
	sign.
	(h8300_output_function_prologue): Update the call to dosize.
	(h8300_output_function_epilogue): Likewise.

2002-12-02  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h: Delete ifndefs with nothing inside them.

2002-12-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>

	* configure.in: Use "missing" script to generate warning if
	flex or bison programs not found, instead of invoking "false".
	* configure: Rebuilt.

Mon Dec  2 20:28:48 CET 2002  Jan Hubicka  <jh@suse.cz>

	* unroll.c (copy_loop_body): Copy CONST_OR_PURE_CALL_P.

Mon Dec  2 19:42:52 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc):  Avoid overflow.

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

	* config/h8300/h8300.c (dosize): Output r7/er7 instead of sp.
	(push): Likewise.
	(pop): Likewise.
	(h8300_output_function_prologue): Likewise.
	(h8300_output_function_epilogue): Likewise.

Mon Dec  2 14:43:22 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* expmed.c (store_bit_field): Use int_mode_for_mode to find
	corresponding mode of non-integer mode, unless it is VOIDmode.

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

	* config/h8300/h8300.md (stm_h8300s_2): New.
	(stm_h8300s_3): Likewise.
	(stm_h8300s_4): Likewise.
	(five define_peephole2): Likewise.

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

	* ra-build.c: Fix a comment typo.

Sun Dec  1 16:50:47 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc): fix
	reversed BRANCH_COST test; be curefull about infinite recursion.

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

	* config/h8300/h8300.c (h8300_output_function_prologue):
	Remove variable idx.
	(h8300_output_function_epilogue): Likewise.

2002-12-01  Zack Weinberg  <zack@codesourcery.com>

	* config/frv/xm-frv.h: Delete, unnecessary.

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

	* config/h8300/h8300.md: Add comments for define_peephole2.

2002-12-01  Mark Mitchell  <mark@codesourcery.com>

	* builtin-types.def (BT_SIZE): Use size_type_node.
	* builtins.c (fold_builtin): Make the builtin strlen returns a
	size_t, not a sizetype.
	* c-common.c (c_sizeof_or_alignof_type): Use size_type_node, not
	c_size_type_node.
	(c_alignof_expr): Likewise.
	(c_common_nodes_and_builtins): Likewise.
	* c-common.h (CTI_C_SIZE_TYPE): Remove.
	(c_size_type_node): Likewise.
	* c-format.c (T_ST): Use size_type_node, not c_size_type_node.
	* tree.h (TI_SIZE_TYPE): New enumeral.
	(size_type_node): Likewise.

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

	* configure.in: Don't put ${tm_file} into host_xm_file,
	build_xm_file, or xm_file.  Do put tm-preds.h into tm_p_file.
	Take location of tm-preds.h into account when calculating
	tm_p_file_list.
	* configure: Regenerate.
	* mkconfig.sh: No need for separate TM_DEFINES and XM_DEFINES
	arguments.  Do not provide rtx, rtvec, tree, or GTY here.
	Remove special case code for tm_p.h and *config.h; add new
	special case code for tm.h and tconfig.h. Clean up a bit.

	* Makefile.in (tm_file, tm_file_list): New variables set from
	@-substitutions.
	(GCONFIG_H): Deleted.
	(GTM_H, TM_H): New.
	(CONFIG_H): Is now just config.h $(host_xm_file_list).
	(TM_P_H): Move up with the other mkconfig.sh-generated
	headers; don't mention tm-preds.h explicitly.
	(tm.h, cs-tm.h): New rule.
	(cs-config.h, cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): Adjust
	invocations of mkconfig.sh for changes to that program.
	(mostlyclean): Delete print-rtl1.c.
	(clean): Delete tm.h.
	Update dependencies for the files listed below.

	* mklibgcc.in:  Add 'coretypes.h $(TM_H)' to libgcc2_c_dep.

	* coretypes.h: New file.
	* system.h: #define malloc to xmalloc and realloc to xrealloc
	when FLEX_SCANNER or YYBISON is defined, independent of the
	value of GCC_VERSION.
	* alias.c, attribs.c, bb-reorder.c, bitmap.c, builtins.c,
	c-aux-info.c, c-common.c, c-convert.c, c-decl.c, c-dump.c,
	c-errors.c, c-format.c, c-lang.c, c-lex.c, c-objc-common.c,
	c-opts.c, c-parse.in, c-pragma.c, c-pretty-print.c,
	c-semantics.c, c-typeck.c, caller-save.c, calls.c, cfg.c,
	cfganal.c, cfgbuild.c, cfgcleanup.c, cfglayout.c, cfgloop.c,
	cfgrtl.c, collect2.c, combine.c, conflict.c, convert.c,
	cppdefault.c, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
	cppinit.c, cpplex.c, cpplib.c, cppmacro.c, cppmain.c,
	cppspec.c, cpptrad.c, crtstuff.c, cse.c, cselib.c, dbxout.c,
	debug.c, df.c, diagnostic.c, doloop.c, dominance.c,
	dummy-conditions.c, dwarf2asm.c, dwarf2out.c, dwarfout.c,
	emit-rtl.c, errors.c, et-forest.c, except.c, explow.c,
	expmed.c, expr.c, final.c, fix-header.c, flow.c, fold-const.c,
	function.c, gcc.c, gccspec.c, gcov-dump.c, gcov-iov.c, gcov.c,
	gcse.c, gen-protos.c, genattr.c, genattrtab.c, genautomata.c,
	gencheck.c, gencodes.c, genconditions.c, genconfig.c,
	genconstants.c, genemit.c, genextract.c, genflags.c,
	gengenrtl.c, gengtype-lex.l, gengtype-yacc.y, gengtype.c,
	genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
	gensupport.c, ggc-common.c, ggc-none.c, ggc-page.c,
	ggc-simple.c, global.c, graph.c, haifa-sched.c, hashtable.c,
	hooks.c, ifcvt.c, integrate.c, intl.c, jump.c, langhooks.c,
	lcm.c, libgcc2.c, line-map.c, lists.c, local-alloc.c, loop.c,
	main.c, mbchar.c, mips-tdump.c, mips-tfile.c, mkdeps.c,
	optabs.c, params.c, predict.c, prefix.c, print-rtl.c,
	print-tree.c, profile.c, protoize.c, ra-build.c,
	ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, read-rtl.c,
	real.c, recog.c, reg-stack.c, regclass.c, regmove.c,
	regrename.c, reload.c, reload1.c, reorg.c, resource.c,
	rtl-error.c, rtl.c, rtlanal.c, sbitmap.c, scan-decls.c,
	scan.c, sched-deps.c, sched-ebb.c, sched-rgn.c, sched-vis.c,
	sdbout.c, sibcall.c, simplify-rtx.c, ssa-ccp.c, ssa-dce.c,
	ssa.c, stmt.c, stor-layout.c, stringpool.c, timevar.c,
	tlink.c, toplev.c, tracer.c, tree-dump.c, tree-inline.c,
	tree.c, unroll.c, varasm.c, varray.c, varray.h, vmsdbgout.c,
	xcoffout.c, config/darwin-c.c, config/darwin.c,
	config/fp-bit.c, config/alpha/alpha.c, config/alpha/vms-cc.c,
	config/alpha/vms-ld.c, config/arc/arc.c, config/arm/arm.c,
	config/arm/pe.c, config/avr/avr.c, config/c4x/c4x-c.c,
	config/c4x/c4x.c, config/cris/cris.c, config/d30v/d30v.c,
	config/dsp16xx/dsp16xx.c, config/fr30/fr30.c,
	config/frv/frv.c, config/h8300/h8300.c, config/i370/i370-c.c,
	config/i370/i370.c, config/i386/i386.c, config/i386/winnt.c,
	config/i960/i960-c.c, config/i960/i960.c,
	config/ia64/ia64-c.c, config/ia64/ia64.c, config/ip2k/ip2k.c,
	config/m32r/m32r.c, config/m68hc11/m68hc11.c,
	config/m68k/m68k.c, config/m88k/m88k.c, config/mcore/mcore.c,
	config/mips/irix6-libc-compat.c, config/mips/mips.c,
	config/mmix/mmix.c, config/mn10200/mn10200.c,
	config/mn10300/mn10300.c, config/ns32k/ns32k.c,
	config/pa/pa.c, config/pdp11/pdp11.c, config/romp/romp.c,
	config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
	config/s390/s390.c, config/sh/sh.c, config/sparc/gmon-sol2.c,
	config/sparc/sparc.c, config/stormy16/stormy16.c,
	config/v850/v850-c.c, config/v850/v850.c, config/vax/vax.c,
	config/xtensa/xtensa.c, objc/objc-act.c, objc/objc-lang.c:
	Include coretypes.h and tm.h.

	* genattrtab.c, genconditions.c, genemit.c, genextract.c,
	gengenrtl.c, gengtype.c, genopinit.c, genoutput.c, genpeep.c,
	genrecog.c: Include coretypes.h and tm.h from the file
	generated by this program.

	* unwind-dw2-fde-darwin.c, unwind-dw2-fde-glibc.c,
	unwind-dw2-fde.c, unwind-dw2.c, unwind-sjlj.c: Include
	coretypes.h and tm.h, and tsystem.h when not already included.
	No need to include stddef.h nor stdlib.h.

	* fixinc/fixlib.h: Include coretypes.h and tm.h.  Do not
	include auto-host.h or ansidecl.h/
	* fixinc/server.h: Do not include stdio.h, unistd.h, or fixlib.h.
	* fixinc/procopen.c: Include server.h after fixlib.h.  Do not
	include auto-host.h, ansidecl.h, or system.h.
	* fixinc/server.c: Likewise.  Also, do not include signal.h,
	and do not redefine volatile.

Sat Nov 30 17:16:46 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movdf_integer):  Always enable in 64bit.
	(movdf_nointeger): Always disable in 64bit.

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

	* cfg.c (dump_flow_info): Use max_reg_num () to determine the largest
	pseudo register number plus 1.

Fri Nov 29 20:10:56 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* expmed.c (store_bit_field): Use int_mode_for_mode to find
	corresponding mode of non-integer mode, unless it is VOIDmode.

2002-11-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* cpplib.c (_cpp_test_assertion): Default *value to 0.

	* cppexp.c (num_part_mul): Initialize result.unsignedp, to 1.

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

	* config/s390/t-crtstuff: New target makefile fragment.
	* config.gcc [s390-*-linux, s390x-*-linux]: Use it.

2002-11-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (movsi_h8300hs): Change the order of
	alternatives to correct the length when the memory operand is
	either pre_dec or post_inc.

2002-11-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (an anonymous pattern): Give an
	internal name *tst_extzv_bitqi_1_n.
	Accept bit_operand instead of bit_memory_operand.
	Do not accept bit tests with the MSB.
	(*tst_extzv_memqi_1_n): New.

Thu Nov 28 23:56:24 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc): Add copy_rtx to avoid invalid RTX
	sharing when operand is SUBREG.

Thu Nov 28 08:57:26 CET 2002  Jan Hubicka  <jh@suse.cz>

	* athlon.md (athlon-decodev): New reservation unit.
	(athlon-direct0): New reservation.
	(athlon-vector): New use athlon-decodev.
	(athlon-double, athlon-direct): Better model.
	(athlon_imul_k8): Use athlon-direct0.
	(athlon_movlpd_load): New insn reservation.

2002-11-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_eightbit_constant_address_p):
	Fix a comment typo.
	(h8300_tiny_constant_address_p): Likewise.

2002-11-28  Michael Matz  <matz@suse.de>

	* doc/passes.texi: Mention the other register allocator.

2002-11-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (6 new peephole2 patterns): New.

2002-11-28  Jakub Jelinek  <jakub@redhat.com>

	* config.gcc (x86_64-*-linux*) [tmake_file]: Remove i386/t-crtstuff.
	* config/t-linux (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
	* config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Define.

2002-11-28  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_and_costs): New.
	* config/h8300/h8300.h (RTX_COSTS): Use h8300_and_costs.
	* config/h8300/h8300-protos.h: Add a prototype for
	h8300_and_costs.

Wed Nov 27 20:34:13 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (x86_sse_partial_regs_for_cvtsd2ss): New.
	* i386.h (x86_sse_partial_regs_for_cvtsd2ss): Declare.
	(TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS): New macro.
	* i386.md (truncdfsf patterns and splitters): Use
	TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS

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

	* config/rs6000/rs6000.c (altivec_init_builtins): Make the
	pointer argument in the prototypes of the following builtins
	be (const TYPE *) rather than (TYPE *):
	 + __builtin_altivec_ld_internal_4sf
	 + __builtin_altivec_ld_internal_4si
	 + __builtin_altivec_ld_internal_8hi
	 + __builtin_altivec_ld_internal_16qi
	 + __builtin_altivec_lvsl
	 + __builtin_altivec_lvsr
	 + __builtin_altivec_lvebx
	 + __builtin_altivec_lvehx
	 + __builtin_altivec_lvewx
	 + __builtin_altivec_lvxl
	 + __builtin_altivec_lvx
	 + __builtin_altivec_dst
	 + __builtin_altivec_dstt
	 + __builtin_altivec_dstst
	 + __builtin_altivec_dststt

2002-11-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* except.c (default_exception_section): Move variable into the
	scope where it is used.

2002-11-27  Krister Walfridsson  <cato@df.lth.se>

	* config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Test for
	correct version.

2002-11-27  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (OK_FOR_U): Remove extra parentheses.

2002-11-27  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_shift_costs): New.
	* config/h8300/h8300.h (RTX_COSTS): Use h8300_shift_costs.
	* config/h8300/h8300-protos.h: Add a prototype for
	h8300_shift_costs.

2002-11-27  Jim Wilson  <wilson@redhat.com>

	* config/rs6000/spe.md (spu_evsplatfi, spu_evsplati): Swap operands
	in output template.

2002-11-27  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Define.
	* config/i386/winnt.c (i386_pe_dllexport_name_p): Use
	DLL_IMPORT_EXPORT_PREFIX, not '@'.
	(i386_pe_dllimport_name_p): Likewise.
	(i386_pe_mark_dllexport): Likewise.
	(i386_pe_mark_dllimport): Likewise.
	(i386_pe_encode_section_info): Likewise.
	(i386_pe_strip_name_encoding): Likewise.

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

	* mkmap-symver.awk (BEGIN): Set sawsymbol false.
	(nm && NF == 3): Set sawsymbol true.
	(END): Exit if no symbols seen.
	(output): Fix map syntax error if no globals for the version.

Wed Nov 27 14:45:46 CET 2002  Jan Hubicka  <jh@suse.cz>

	* builtins.def (DEF_C99_BUILTIN): Fix.

2002-11-26  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/lib1funcs.asm (FUNC, ENDFUNC0, ENDFUNC): New macros.
	(all): Add .size and .type information.

Tue Nov 26 22:43:50 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc):  Do not emit lea for short mode on
	partial_reg_stall target.

Tue Nov 26 22:27:47 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movhicc): Allow general operand.
	(movqicc): New expander.
	(movqicc_noc): New pattern.
	* i386.c (ix86_expand_carry_flag_compare): New function.
	(ix86_expand_int_movcc): Optimize harder using sbb; support more
	HImode conversion; support QImode conditional moves

Tue Nov 26 16:30:59 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (FAST_PROLOGUE_INSN_COUNT): Set to 20.
	(ix86_expand_prologue): Multiply the count by amount of registers to be
	pushed.

Tue Nov 26 15:55:27 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (override_options): Error about wrong -mcpu on x86-64
	compilation.

2002-11-26  NIIBE Yutaka  <gniibe@m17n.org>

	* config/sh/linux.h (FUNCTION_PROFILER): Implemented.

Tue Nov 26 00:14:20 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386-protos.h (x86_extended_QIreg_mentioned_p,
	x86_extended_reg_mentioned_p): Declare.
	* i386.c (extended_reg_mentioned_1): New static function.
	(x86_extended_QIreg_mentioned_p,
	x86_extended_reg_mentioned_p): New global functions.
	* i386.h (REX_SSE_REGNO_P): New macro.
	* i386.md (prefix_rex): New attribute.
	(length attribute): Add rex.

2002-11-26  Andrew Haley  <aph@redhat.com>

	* unwind-sjlj.c (_Unwind_FindEnclosingFunction): Rename
	from_Unwind_Find_Enclosing_Function.
	* unwind-dw2.c (_Unwind_FindEnclosingFunction): Likewise.
	* config/ia64/unwind-ia64.c (_Unwind_FindEnclosingFunction): Likewise.
	* libgcc-std.ver (_Unwind_FindEnclosingFunction): Rename from
	_Unwind_Find_Enclosing_Function, export @@GCC_3.3.
	* unwind.h (_Unwind_FindEnclosingFunction): Add.

2002-11-26  Hartmut Penner  <hpenner@de.ibm.com>

	* config/s390/s390.c (390_output_constant_pool): Set alignment
	before label in 64 bit mode, behind otherwise.

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

	* c-common.c (handle_visibility_attribute): Accept "default".
	* tree.h (enum symbol_visibility): New.
	(decl_visibility): Declare.
	* target.h (gcc_target.visibility): Take visibility arg as integer.
	* varasm.c (default_assemble_visibility): Likewise.
	(decl_visibility): New.
	(maybe_assemble_visibility): Use it.
	* output.h (default_assemble_visibility): Update prototype.
	* config/rs6000/rs6000.c (rs6000_assemble_visibility): Take
	visibility arg as integer.
	* doc/extend.texi: Document default visibility.

2002-11-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c: Adjust spacing.
	* config/h8300/h8300.h: Likewise.

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

	* hooks.c (hook_bool_void_false, hook_void_tree_int,
	hook_void_FILEptr_constcharptr): Rename so that the return
	type is first.
	(hook_int_tree_tree_1, hook_void_tree, hook_void_tree_treeptr,
	hook_bool_tree_false): New.
	* hooks.h: Update.
	* langhooks-def.h: Update for renames.
	* target-def.h: Likewise.
	* tree.c (default_comp_type_attributes,
	default_set_default_type_attributes, default_insert_attributes,
	default_function_attribute_inlinable_p,
	default_ms_bitfield_layout_p): Remove.
	* tree.h: Update.

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

	* pa-protos.h (function_value): New prototype.
	* pa.c (function_value): Use a PARALLEL to return small aggregates on
	TARGET_64BIT.
	* pa.h (FUNCTION_VALUE): Use function_value.
	* pa.md (call_value_internal_symref, call_value_internal_reg_64bit,
	call_value_internal_reg, sibcall_value_internal_symref,
	sibcall_value_internal_symref_64bit): Remove =rf constraint on return
	value.

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

	* expr.c (gen_group_rtx, emit_group_move): New functions.
	* expr.h (gen_group_rtx, emit_group_move): Prototype.
	* function.c (expand_function_start): Use gen_group_rtx to create a
	PARALLEL rtx to hold the return value when the real return rtx is a
	PARALLEL.
	(expand_function_end): Use emit_group_move to move the return value
	from a PARALLEL to the real return registers.
	* rtl.h (REG_FUNCTION_VALUE_P): Allow function values to be returned
	in PARALLELs.

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

	* config/t-libc-ok: Fix typo.

2002-11-26  Jakub Jelinek  <jakub@redhat.com>

	* configure.in: Move AC_CANONICAL_SYSTEM and AC_ARG_PROGRAM back
	before AC_PROG_CC.
	* configure: Rebuilt.

2002-11-26  Nathan Sidwell  <nathan@codesourcery.com>

	* c-decl.c: (start_struct): Commonize flag setting.

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

	* config/rs6000/rs6000.h (RS6000_CPU_CPP_ENDIAN_BUILTINS): New.
	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Use
	RS6000_CPU_CPP_ENDIAN_BUILTINS.
	* config/rs6000/netbsd.h (RS6000_CPU_CPP_ENDIAN_BUILTINS): Redefine.

2002-11-26  Hartmut Penner  <hpenner@de.ibm.com>

	* config/s390/s390.md (literal_pool_64, literal_pool_31 ): New
	insns.
	* config/s390/s390.c (struct machine_function): Introduction of
	struct machine_function.
	(s390_output_symbolic_const): Use of cfun.
	(s390_optimize_prolog): Likewise.
	(s390_fixup_clobbered_return_reg): Likewise.
	(s390_frame_info): Likewise.
	(s390_emit_prologue, s390_emit_epilogue): Likewise.
	(s390_init_machine_status): New function.
	(override_options): call s390_init_machine_status.
	* config/s390/s390-protos.h (s390_output_constant_pool): Changed
	prototype.

2002-11-26  Jakub Jelinek  <jakub@redhat.com>

	* varasm.c (output_constant_pool): For pool constants in mergeable
	section ensure each constant is padded to multiple of entity size.

2002-11-26  Jakub Jelinek  <jakub@redhat.com>

	* varasm.c (default_exception_section): Move to...
	* except.c (default_exception_section): ... here. Make
	.gcc_except_table read-only if it is not expected to have any
	dynamic relocations and linker handles it.
	* dwarf2out.c (default_eh_frame_section): Make .eh_frame read-only
	if it is not expected to have any dynamic relocations and linker
	handles it.
	* configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Check what ld does
	when linking read-only and read-write sections together.
	* configure, config.in: Rebuilt.
	* crtstuff.c (EH_FRAME_SECTION_CONST): Define.
	(__EH_FRAME_BEGIN__, __FRAME_END__): Add it.

Mon Nov 25 18:32:37 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (pushsf_rex64): Fix typo.

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

	* config/rs6000/spe.h (__ev_create_sfix32_fs): Change macro into
	new function.
	(__ev_create_ufix32_fs): Same.
	(__ev_get_sfix32_fs_internal): New.
	(__ev_get_sfix32_fs): Define to use function.
	(__ev_get_ufix32_fs_internal): New.
	(__ev_get_ufix32_fs): Define to use function.
	(__ev_get_upper_ufix32_fs): Call __ev_get_ufix32_fs.
	(__ev_get_lower_ufix32_fs): Same.
	(__ev_get_upper_sfix32_fs): Call __ev_get_sfix32_fs.
	(__ev_get_lower_sfix32_fs): Same.
	(__ev_set_sfix32_fs_internal): New.
	(__ev_set_ufix32_fs_internal): New.
	(__ev_set_sfix32_fs): Call __ev_set_sfix32_fs_internal.
	(__ev_set_ufix32_fs): Call __ev_set_ufix32_fs_internal.
	(__ev_set_upper_sfix32_fs): Call function.
	(__ev_set_lower_sfix32_fs): Same.
	(__ev_set_upper_ufix32_fs): Same.
	(__ev_set_lower_ufix32_fs): Same.

2002-11-25  Douglas B Rupp  <rupp@gnat.com>

	* gcc.c (do_spec_1): Reset delete_this_arg to zero.

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

	* config/elfos.h (HANDLE_SYSV_PRAGMA): Define as 1.
	* config/interix.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/linux-aout.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/lynx-ng.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/lynx.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/netbsd.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/openbsd.h (HANDLE_SYSV_PRAGMA: Likewise.
	* config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/cris/aout.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/d30v/d30v.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/frv/frv.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/i386/djgpp.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/i386/vxi386.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/m88k/m88k.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/sparc/linux-aout.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/sparc/vxsparc64.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/alpha/osf.h (HANDLE_SYSV_PRAGMA): Don't undef before
	defining.
	* config/i386/sco5.h (HANDLE_SYSV_PRAGMA): Likewise.
	* config/mips/iris5.h (HANDLE_SYSV_PRAGMA): Likewise.

2002-11-25  Dave Pitts  <dpitts@cozx.com>

	* gcc/fixinc/mkfixinc.sh: add i370-*-openedition to bypass fixinc list

2002-11-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (an anonymous pattern): New.

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

	* alias.c (find_base_value): Use new_reg_base_value if it's live.
	(copying_arguments): Make boolean.

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

	* gcc.c (static_spec_functions): Add if-exists-else spec
	function.
	(if_exists_else_spec_function): New function.
	* doc/invoke.texi: Document the if-exists-else spec function.

	* config/netbsd-elf.h (NETBSD_STARTFILE_SPEC): For -static, use
	"%:if-exists-else(crtbeginT%O%s crtbegin%O%s)".

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

	* config.gcc (powerpc-*-netbsd*): Replace "svr4.h" with
	"netbsd.h netbsd-elf.h" in tm_file.  Set tmake_file to
	"${tmake_file} rs6000/t-netbsd".
	* config/rs6000/netbsd.h: Rewrite.
	* config/rs6000/t-netbsd: New file.

2002-11-25  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (an anonymous pattern): Relax the
	condition for the pattern.

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

	* config/rs6000/rs6000.h (enum rs6000_builtins): Remove evmwlssf,
	evmwlsmf, evmwlssfa, evmwlsmfa, evmwlssfaaw, evmwlsmfaaw,
	evmwlssfanw, evmwlsmfanw.

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

	* config/rs6000/spe.md: Same for patterns.

2002-11-25  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>

	PR c/8639
	* fold-const.c (extract_muldiv): Don't propagate division unless
	both arguments are multiples of C.

2002-11-25  Andrew Haley  <aph@redhat.com>

	* libgcc-std.ver (_Unwind_Find_Enclosing_Function): Add.
	* config/ia64/unwind-ia64.c (_Unwind_Find_Enclosing_Function): New.
	* unwind-sjlj.c (_Unwind_Find_Enclosing_Function): Likewise.
	* unwind-dw2.c (_Unwind_Find_Enclosing_Function): Likewise.

Sun Nov 24 10:38:04 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (x86_use_ffreep): New global variable.
	* i386.h (x86_use_frfeep): Declare
	(TARGET_USE_FFREEP): New macro
	* i386.md  (movs?f*): Use freep when asked for.
	(push?f): Remove dead code.

2002-11-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_init_once): Fix a typo in the
	target help message.

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

	* config.gcc (*-*-netbsd*1.[7-9]*, *-*-netbsd*[2-9]*): Set
	extra_parts to "crtbegin.o crtend.o crtbeginS.o crtendS.o
	crtbeginT.o".
	(arm*-*-netbsd*, i[34567]86-*-netbsd*, m68k*-*-netbsd*)
	(ns32k-*-netbsd*, sparc-*-netbsd*, vax-*-netbsd*): Set extra_parts
	to "" for a.out configurations.
	* config/t-netbsd (CRTSTUFF_T_CFLAGS): Set to "-fPIC".

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

	* config/alpha/netbsd.h (CPP_SUBTARGET_SPEC): Just use
	NETBSD_CPP_SPEC directly.
	(SUBTARGET_EXTRA_SPECS): Remove netbsd_cpp_spec.  Add
	netbsd_endfile_spec.
	(ENDFILE_SPEC): Use %(netbsd_endfile_spec).

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

	* config/netbsd-elf.h (STARTFILE_SPEC): Rename to
	NETBSD_STARTFILE_SPEC.
	(STARTFILE_SPEC): Redefine in terms of NETBSD_STARTFILE_SPEC.
	(ENDFILE_SPEC): Likewise.
	* config/netbsd.h (LIB_SPEC, LIBGCC_SPEC): Likewise.

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

	* Makefile.in (install-driver): Remove versioned link before
	trying to create it.

	* config/m68k/m68k.c: Fix typo in last change defining
	TARGET_ASM_CAN_OUTPUT_MI_THUNK.

2002-11-23  H.J. Lu <hjl@gnu.org>

	* aclocal.m4: Include ../config/accross.m4.
	(gcc_AC_COMPILE_CHECK_SIZEOF): Removed.
	(gcc_AC_C_COMPILE_ENDIAN): Removed.
	(gcc_AC_C_FLOAT_FORMAT): Check $ac_cv_c_bigendian
	instead of $ac_cv_c_compile_endian.

	* configure.in: Replace gcc_AC_COMPILE_CHECK_SIZEOF with
	AC_COMPILE_CHECK_SIZEOF.
	Replace gcc_AC_C_COMPILE_ENDIAN with AC_C_BIGENDIAN_CROSS.
	* configure: Rebuild.

2002-11-23  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (print_operand): Update the use of
	h8300_tiny_constant_address_p.
	(h8300_adjust_insn_length): Likewise.
	(h8300_tiny_constant_address_p): Check if the given rtx is a
	variable declared with __attribute__ ((tiny_data)).

2002-11-22  Dale Johannesen  <dalej@apple.com>

	* toplev.c (rest_of_compilation):  Fix comments.

2002-11-22  Geoffrey Keating  <geoffk@apple.com>

	* aclocal.m4 (ac_cv_func_mmap_dev_zero): Darwin does not
	allow mmap from /dev/zero.  Don't make decisions for the host
	based on presence or absence of /dev/zero on the build machine.
	(ac_cv_func_mmap_anon): Darwin does have working MMAP_ANON.
	(AC_FUNC_MMAP_FILE): Darwin does have mmap of a file.
	* configure: Regenerate.

2002-11-22  Daniel Jacobowitz  <drow@mvista.com>

	* gcc.c (make_relative_prefix, split_directories)
	(free_split_directories): Removed.

2002-11-22  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in: Set insn=nop for DWARF-2 tests on ARM.
	* configure: Regenerated.

2002-11-22  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (compute_a_shift_length): Fix the insn
	length computation when xor.l is output.

2002-11-21  Douglas B Rupp  <rupp@gnat.com>

	* alpha.md (movstrdi, clrstrdi): New VMS patterns.
	(call_vms_1, call_value_vms_1): Cleanup syntax.

Thu Nov 21 19:20:27 CET 2002  Jan Hubicka  <jh@suse.cz>

	* athlon.md (define_atuomaton): Add athlon_load.
	(athlon-double): New reservation.
	(athlon-ieu0): New CPU unit.
	(athlon-load?): Use athlon_load automaton.
	(*_k8 reservations): New.
	(other insn revervations): Activate for K8.

Thu Nov 21 15:07:42 CET 2002  Jan Hubicka  <jh@suse.cz>

	* cfgrtl.c (verify_flow_info):  Accept EDGE_CAN_FALLTHRU flag.

2002-11-21  Jim Wilson  <wilson@redhat.com>

	* config/rs6000/rs6000.c (function_arg): Set inner mode of SPE
	vectors to SI.

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

	* config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Declare.
	* config/xtensa/xtensa.c (struct machine_function): Add
	incoming_a7_copied flag.
	(xtensa_copy_incoming_a7): Define.
	(xtensa_emit_move_sequence): Use xtensa_copy_incoming_a7.
	* config/xtensa/xtensa.md (movdi, movsf, movdf): Ditto.

Thu Nov 21 23:52:04 CET 2002  Jan Hubicka  <jH@suse.cz>

	* i386-protos.h (x86_64_sign_extended_value): Fix prototype.
	* i386.c (x86_64_general_operand, x86_64_szext_general_operand,
	x86_64_nonmemory_operand, x86_64_movabs_operand,
	x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
	ix86_expand_int_movcc): Update call of x86_64_sign_extended_value.
	(local_symbolic_operand): Do not care the 64bit limits.
	(x86_64_sign_extended_value): Remove allow_rip support.
	(legitimate_pic_address_disp_p): Handle all cases allowed
	with RIP addressing.
	(legitimate_address_p): Use legitimate_pic_address_disp_p for PIC.
	(legitimize_pic_address): Reorganize.
	* i386.h (EXTRA_CONSTRAINT): Update call of x86_64_sign_extended_value.

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

	* config.gcc (arm*-*-netbsdelf*): Enable configuration.
	* config/arm/netbsd-elf.h: New file.

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

	* config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
	subtarget_asm_float_spec.
	(SUBTARGET_ASM_FLOAT_SPEC): Define, moving the
	defaults from...
	(ASM_SPEC): ...here.  Use subtarget_asm_float_spec.

2002-11-21  Nick Clifton  <nickc@redhat.com>

	* config/fr30/fr30.md (movsf_constant_store): Move code to
	detect 0.0 into fr30.c.
	* config/fr30/fr30-protos.h (fr30_const_double_is_zero):
	Prototype.
	* config/fr30/fr30.c (fr30_const_double_is_zero): New
	function.  Return true if the rtx is 0.0.

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

	* config/arm/elf.h (ASM_SPEC, LINK_SPEC): Pass -EL
	if -mlittle-endian is specified.

2002-11-21  Richard Earnshaw  <rearnsha@arm.com>

	PR optimization/2903
	* arm.md (anddi_notzesidi_di): Operand 2 is inverted not operand 1.
	(anddi_notsesidi_di): Likewise.

2002-11-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (print_operand): Use
	h8300_eightbit_constant_address_p and
	h8300_tiny_constant_address_p.
	(h8300_adjust_insn_length): Likewise.
	* config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Remove.
	(TINY_CONSTANT_ADDRESS_P): Likewise.
	(OK_FOR_U): Use eightbit_constant_address_p.

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

	* config/s390/libgcc-libc.ver: Add multilib support.
	* config/s390/linux.h (MULTILIB_DEFAULT): Define.
	* config/s390/t-linux64 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
	MULTILIB_OSDIRNAMES, LIBGCC, INSTALL_LIBGCC,
	EXTRA_MULTILIB_PARTS): Define.

2002-11-21  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (arm_get_frame_size): A leaf function does not need its
	stack padding to an aligned boundary if it has no frame.
	(thumb_get_frame_size): Likewise.

Wed Nov 20 22:25:53 CET 2002  Jan Hubicka  <jh@suse.cz>

	* x86-64.h (MCOUNT_NAME): Fix typo in my previous patch.
	(override_options): Likewise.

Wed Nov 20 19:07:17 CET 2002  Jan Hubicka  <jh@suse.cz>

	* config.gcc: Add k8 target alias support
	* i386.c (_cost): Declare costs for various variants of divides and
	multiplies.
	(k8_cost): New.
	(m_K8, m_ATHLON_K8): New macros.
	(x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
	x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_fiop,
	x86_promote_QImode, x86_sub_esp_?, x86_add_esp_?,
	x86_integer_DFmode_moves, x86_partial_reg_dependency,
	x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
	x86_prologue_using_move, x86_epilogue_using_move,
	x86_arch_always_fancy_math_387, x86_sse_partial_regs,
	x86_sse_typeless_stores): Set for K8
	(override_options): Add k8 support; fix athlon alignment;
	complain about non-x86-64 capable CPU being used in x86-64 compilation.
	(ix86_issue_rate): Set for K8.
	(ix86_adjust_cost, ia32_use_dfa_pipeline_interface,
	x86_machine_dependent_reorg): Handle K8 like
	* i386.h
	(x86_costs):  Change mult_init and divide into array.
	(TARGET_K8, TARGET_ATHLON): New macros.
	(MODE_INDEX): New macro.
	(RTX_COST): Use new costs.
	(TARGET_CPU_CPP_BUILTINS):  Define __k8__ and __tune_k8__.
	(TARGET_CPU_DEFAULT_NAMES): Add k8
	(TARGET_CPU_DEFAULT_k8): New constant
	(enum processor_type): Add PROCESSOR_K8.
	* i386.md (cpu attribute): Add k8.

	* invoke.texi: Document -march=k8.

	* i386.md (type attribute): Add leave
	(mode attribute): Remove unknownfp.
	(length_immediate, modrm, memory attributes): Handle leave correctly.
	(fp comparison patterns): Determine FP mode.
	(leave, leave_rex64): Remove special cases.
	* ppro.md (ppro_uops, ppro_p2): Add leave
	* pentiun.md (pent_pop): Handle leave too.
	* k6.md (k6_load): Handle leave.
	* athlon.md (athlon_leave, athlon_pop): Fix.
	(athlon_decode): Handle leave.

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

	* emit-rtl.c (gen_reg_rtx): Simplify mapping of Complex type
	to component type using GET_MODE_INNER.
	* expr.c (emit_move_insn_1): Ditto.
	* optabs.c (expand_binop): Ditto.
	(expand_unop): Ditto.
	(expand_complex_abs): Ditto.

2002-11-20  Douglas B Rupp  <rupp@gnat.com>

	* hwint.h (HAVE___INT64): Fix typo (was HAVE__INT64).

2002-11-20  DJ Delorie  <dj@redhat.com>

	* config/stormy16/stormy16.c (s16builtins,
	xstormy16_init_builtins, xstormy16_expand_builtin): New.
	* config/stormy16/stormy16.md (divmodhi4, sdivlh, udivlh): New.

2002-11-20  Hans-Peter Nilsson  <hp@bitrange.com>

	* Makefile.in (RUN_GEN, VALGRIND_DRIVER_DEFINES): New variables.
	(DRIVER_DEFINES): Add $(VALGRIND_DRIVER_DEFINES).
	(executing gencheck, genconfigs, genconditions, genflags,
	gencodes, genconstants, genemit, genrecog, genopinit, genextract,
	genpeep, genattr, genattrtab, genoutput, gengenrtl, genpreds,
	gengtype, genprotos): Prepend $(RUN_GEN).
	* configure.in: Move host compiler tests before --enable-checking
	tests.
	(--enable-checking=valgrind): New.
	* config.in, configure: Regenerate.
	* cppfiles.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD):
	Define as empty.
	(read_include_file): When doing the mmap+1 trick,
	valgrind-annotate the byte after the mmap:ed area as readable.
	(purge_cache): Remove above annotation.
	* gcc.c (execute) [ENABLE_VALGRIND_CHECKING]: Arrange to prepend
	VALGRIND_PATH -q to each command.

	* ggc-common.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD):
	Define as empty.
	(ggc_realloc): Update valgrind annotations.
	* ggc-page.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD):
	Define as empty.
	(alloc_anon, free_page, ggc_alloc, poison_pages): Add machinery to
	valgrind-annotate memory.

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

	* recog.c (constrain_operands): Prefer exact match over reloadable
	EXTRA_MEMORY_CONSTRAINT or EXTRA_ADDRESS_CONSTRAINT.

	* reload.c (find_reloads): Always reload EXTRA_ADDRESS_CONSTRAINT
	operands in Pmode.

2002-11-20  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR c/8518
	* c-decl.c (duplicate_decls): Outline the second definition
	of an extern inline function in all cases.

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

	* stor-layout.c (place_field): Update rli->offset as well as
	rli->bitpos.

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

	* sched-deps.c (sched_analyze): Check HARD_REGNO_CALL_PART_CLOBBERED.

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

	* config/sh/sh.md (udivsi3): Don't put udivsi3_i4_media instructions
	into a libcall block.
	(divsi3): Likewise divsi3_i4_media.

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

	* global.c (find_reg): Check HARD_REGNO_NREGS before kicking
	out another register.

2002-11-20  Jakub Jelinek  <jakub@redhat.com>

	* combine.c (force_to_mode): Only replace with (not Y) if all bits in fuller_mask
	(not just mask) are set in C.

2002-11-19  Steven Bosscher <steven.bosscher@usafa.af.mil>

	* config/mips/vr.h (DRIVER_SELF_SPECS): Change %{<mgp32} to %<mgp32.

2002-11-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* profile.c (index_counts_file): Fix obvious mistake.

2002-11-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* Makefile.in (profile.o): Add hashtab.h dependency.
	* gcov-io.h (GCOV_SUMMARY_LENGTH): New.
	* profile.c: Include hashtab.h.
	(htab_counts_index_hash, htab_counts_index_eq, htab_counts_index_del,
	cleanup_counts_index, index_counts_file, struct section_reference,
	struct da_index_entry, counts_file_name, counts_file_index): New.
	(get_exec_counts, init_branch_prob): Modified.

2002-11-19  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config.gcc (sh*-*-linux*): Add t-slibgcc-elf-ver and t-linux
	to tmake_file. Remove setting gas and gnu_ld here.
	* config/sh/libgcc-glibc.ver: New file.
	* config/sh/t-linux (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
	(SHLIB_MAPFILES): New.
	* config/sh/linux.h (MD_EXEC_PREFIX): Undefine.
	(MD_STARTFILE_PREFIX): Likewise.
	(HANDLE_PRAGMA_PACK_PACK_PUSH_POP): Define.
	(DWARF2_UNWIND_INFO): Redefine.
	(ASM_PREFERRED_EH_DATA_FORMAT): Define.
	(LINK_EH_SPEC): Redefine.
	(MD_FALLBACK_FRAME_STATE_FOR): Define except for SH-media.
	(SH_FALLBACK_FRAME_FLOAT_STATE): Define.
	(SH_DWARF_FRAME_GP0, SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_XD0,
	SH_DWARF_FRAME_BT0, SH_DWARF_FRAME_PR, SH_DWARF_FRAME_PR_MEDIA,
	SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_MACL,
	SH_DWARF_FRAME_PC, SH_DWARF_FRAME_SR, SH_DWARF_FRAME_FPUL,
	SH_DWARF_FRAME_FPSCR): Likewise.
	* config/sh/sh-protos.h (sh_set_return_address): Declare.
	* config/sh/sh.c (calc_live_regs): Count EH_RETURN_DATA_REGNO
	registers if the current function calls EH return.
	(sh_expand_epilogue): Handle EH stack adjustments.
	(sh_set_return_address): New function.
	* config/sh/sh.h (SH_DBX_REGISTER_NUMBER): Handle PR_MEDIA_REG.
	Don't abort even if the number is mapped to -1.
	(EH_RETURN_DATA_REGNO): Define.
	(EH_RETURN_STACKADJ_RTX): Define.
	* config/sh/sh.md (UNSPEC_EH_RETURN): New.
	(eh_return): New pattern.
	(eh_set_ra_di, eh_set_ra_si): Likewise.
	Add splitter to perform EH return after reload.

Tue Nov 19 12:52:07 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* stor-layout.c (excess_unit_span): New function.
	(place_field): Use it.

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

	* unwind.h (_Unwind_GetTextRelBase): Revert last change, this is
	not valid in C++.

2002-11-19  Nathanael Nerode  <neroden@gcc.gnu.org>

	* configure.in, Makefile.in: Correct BUILD/HOST confusion.
	* configure: Regenerate.

Tue Nov 19 00:11:44 CET 2002  Jan Hubicka  <jh@suse.cz>

	* convert.c (strip_float_extensions): New function.
	(convert_to_real): Optimize some cases.

2002-11-19  Andreas Jaeger  <aj@suse.de>

	* loop.c (record_giv): Initialize not_replaceable.
	(check_final_value): Likewise.

2002-11-19  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_init_once): Replace 1 with
	MASK_H8300S.

2002-11-19  Vijay L. Khuspe  <vijayk1@kpit.com>

	* config/h8300/h8300.c (h8300_init_once): Allow -mn switch
	only if -mh or -ms present.
	(h8300_eightbit_constant_address_p): Support the normal mode.
	(h8300_tiny_constant_address_p): Likewise.
	* config/h8300/h8300.h (TARGET_NORMAL_MODE): New.
	(POINTER_SIZE): Add 16 bit pointer for the normal mode.
	(Pmode): Evaluate to HImode for the normal mode.
	(SIZE_TYPE): Evaluate to unsigned int for normal mode.
	(PTRDIFF_TYPE): Evaluate to int for the normal mode.
	(ASM_WORD_OP): Evaluate to word for the normal mode.
	* config/h8300/h8300.md (tablejump_normal_mode): New.
	(indirect_jump_normal_mode): New.
	* config/h8300/t-h8300 (MULTILIB_OPTIONS): Pass -mn option to
	directory.
	(MULTILIB_DIRNAMES): Create target dependent directory
	'normal'.
	(MULTILIB_EXCEPTIONS): Don't turn on -mn on H8/300.
	* doc/invoke.texi (gccoptlist): Describe the new switch -mn.

Tue Nov 19 23:50:56 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (length_immediate): Do not refer to insn address.
	(jcc*, jmp patterns):  Compute length explicitly.

2002-11-19 Eric Botcazou <ebotcazou@libertysurf.fr>

	PR c/8588
	* optabs.c (expand_binop): Convert CONST_INTs in shift
	operations too.

2002-11-19  Roger Sayle  <roger@eyesopen.com>

	* gcse.c (gcse_emit_move_after): Correct typo in REG_EQUAL note.

2002-11-19  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (an anonymous pattern): Relax the
	condition to accept the same operands and/or subregs.

2002-11-19  Daniel Jacobowitz  <drow@mvista.com>

	* config/sh/sh.c (gen_shl_and): Revert previous patch.
	* config/sh/sh.md (ashrdi3+1, ashrdi3+2): Predicate on
	reload_completed.

2002-11-19  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (print_operand): Update the use of
	EIGHTBIT_CONSTANT_ADDRESS_P.
	(h8300_adjust_insn_length): Likewise.
	(h8300_eightbit_constant_address_p): Check if the given rtx is
	a variable with __attribute__((eightbit_data)).
	* config/h8300/h8300.h (OK_FOR_U): Update the use of
	EIGHTBIT_CONSTANT_ADDRESS_P.

2002-11-19  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Add self as second contact in
	addition to Jeff Law.

2002-11-19  Andreas Jaeger  <aj@suse.de>

	* tree-inline.c: Move prototpyes of find_alloca_call_1 and
	find_alloca_call to right place.

2002-11-19  Kazu Hirata  <kazu@cs.umass.edu>

	* cppfiles.c: Fix formatting.

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

	* gcc.c (The Specs Language): Document spec functions.
	(static_spec_functions, lookup_spec_function)
	(eval_spec_function, handle_spec_function)
	(if_exists_spec_function, alloc_args): New.
	(execute): Abort if processing_spec_function is true.
	(do_spec_1): Hand off spec to handle_spec_function if %:
	is encountered.  If processing_spec_function is true,
	end any pending argument when the end of the string is reached.
	(main): Use alloc_args to allocate the initial argument vector.
	* gcc.h (struct spec_function): New.
	(lang_specific_spec_functions): New extern.

	* config/netbsd-elf.h (STARTFILE_SPEC): Add if-exists(crti%O%s).
	(ENDFILE_SPEC): Add if-exists(crtn%O%s).
	* config/alpha/netbsd.h (ENDFILE_SPEC): Likewise.

	* doc/invoke.texi: Document spec functions.

	* cppspec.c (lang_specific_spec_functions): New.
	* gccspec.c: Likewise.

2002-11-18  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux_longdouble.h (FIXUNS_TRUNCTFSI2_LIBCALL): New.
	(FIXUNS_TRUNCTFDI2_LIBCALL): New.
	(fixunstfsi_libfunc): Change.
	(fixunstfdi_libfunc): Change.
	(sdiv_optab): Don't zero out SImode handler.
	(udiv_optab): Don't zero out SImode handler.
	(smod_optab): Don't zero out SImode handler.
	(umod_optab): Don't zero out SImode handler.

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

	PR preprocessor/8524
	* cpplib.c (run_directive): Remove previous kludge to _Pragma.
	Add a new one in its place, which hopefully works.
	(skip_rest_of_line): Change test for bottom-of-context-stack.

Mon Nov 18 21:29:03 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (addqi_1_slp): Fix output template.
	(subqi_1_slp): Fix type.

Sun Nov 17 00:01:28 CET 2002  Jan Hubicka  <jh@suse.cz>

	* calls.c (alloca_call_p): New global function.
	* tree.h (alloca_call_p): New.
	* tree-inline.c (inlinable_function_p):  Do not inline when
	function calls alloca.
	(find_alloca_call, find_alloca_call_1): New functions.

2002-11-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*andorqi3): Use bor between bld and
	bst.  Update the insn length.
	(*andorhi3): Likewise.
	(*andorsi3): Likewise.

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

	* config/sh/sh-protos.h (sh_mark_label): Declare.
	* config/sh/sh.c (sh_mark_label): New function, taken from
	movdi_const, but fixing the case when the address has an addend.
	* config/sh/sh.md (movdi_const, movdi_const_32bit): Use it.

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

	* config/sh/sh.c (pool_node): New field: part_of_sequence_p.
	(add_constant): Set it.
	(dump_table): Don't reorder a constant if part_of_sequence_p.
	(machine_dependent_reorg): Assume that float constants will
	stay in their original order if used as a sequence.

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

	* config/sh/sh.c (calc_live_regs): Update check for PIC liveness
	in compact code.

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

	* config/sh/sh.md (initialize_trampoline): Do not force the
	trampoline address into R0_REGS here.

Sun Nov 17 14:01:09 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (negsf2_ifs, negdf2_ifs, negdf2_ifs_rex64, abssf2_ifs,
	absdf2_ifs, absdf2_ifs_rex64): Fix constraints.
	(neg?f2_ifs, abs?f2_ifs splitters): Refuse memory operand; do not
	generate unnecesary subregs.

2002-11-17  Kazu Hirata  <kazu@cs.umass.edu>

	* df.c: Fix formatting.

2002-11-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (two anonymous patterns): Fix insn
	lengths.

2002-11-17  Daniel Jacobowitz  <drow@mvista.com>

	* sh.c (gen_shl_and): Don't create a zero_extend if the operand
	is not an arith_reg_operand.

2002-11-17  Graham Stott  <graham.stott@btinternet.com>

	* real.c (real_to_decimal): Fix buffer overrun when buffer size
	is smaller than representation.

2002-11-17  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.c: Fix formatting.

Sat Nov 16 16:49:58 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (truncdfsf2_1_sse, truncdfsf2_1_sse_nooverlap, truncdfsf2_2,
	floats?dff2_i387):
	Work around regclass stupidity.
	(truncdfsf_2_1_sse splitter):  Accept !TARGET_PARTIAL_SSE_REGS

Sat Nov 16 02:17:48 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (fop_df_6): New pattern.
	(fop_xf_4, fop_xf_5): Handle both SF and DFmode extensions.
	(fop_xf_6): Rewrite
	(fop_xf_7): Delete.
	(fop_tf_4, fop_tf_5): Handle both SF and DFmode extensions.
	(fop_tf_6): Rewrite
	(fop_tf_7): Delete.

2002-11-16  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (two anonymous patterns): Fix typos.

2002-11-16  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Fix formatting.

2002-11-16  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md: Replace spaces with tabs.
	* config/h8300/t-h8300: Remove a trailing empty line.

2002-11-16  Kazu Hirata  <kazu@cs.umass.edu>

	* tlink.c: Fix formatting.

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

	PR 8362
	* config/rs6000/rs6000.c (rs6000_outout_load_multiple): New function.
	* config/rs6000/rs6000.md (movti_string): Remove output modifier
	when scratch register never needed.
	(ldmsi[3-8]): New patterns.

2002-11-16  Kazu Hirata  <kazu@cs.umass.edu>

	* hard-reg-set.h: Follow spelling conventions.
	* real.c: Likewise.
	* target.h: Likewise.

2002-11-16  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/x86-64.h (MCOUNT_NAME): Change into string literal.

2002-11-16  Kazu Hirata  <kazu@cs.umass.edu>

	* optabs.c: Fix formatting.

Sat Nov 16 02:06:02 CET 2002  Jan Hubicka  <jh@suse.cz>

	* athlon.md, k6.md, pentium.md, ppro.md: Handle shift1, rotate1
	* i386.md (attribute type): Add type shift1 and rotate1.
	(*_slp): Rewrite to have just two operands to avoid reload problems.

2002-11-15  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (4 anonymous patterns): New.

2002-11-15  Geoffrey Keating  <geoffk@apple.com>

	* params.def (GGC_MIN_HEAPSIZE): Fix GGC_ALWAYS_COLLECT problem.
	* doc/invoke.texi: Correct description of what needs to be done to
	force collection at every ggc_collect call.

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

	* config/s390/s390.c (optimization_options): Set
	flag_asynchronous_unwind_tables to 1 by default.

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

	* config/s390/s390.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.

Fri Nov 15 14:54:19 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386-protos.h (x86_function_profiler): New function
	* i386.h (MCOUNT_NAME): New.
	(PROFILE_COUNT_REGISTER): New.
	(FUNCTION_PROFILER): Move offline to ...
	* i386.c (x86_function_profiler) ... here; fix 64bit support
	* beos-elf.h (FUNCTION_PROFILER): Kill.
	(MCOUNT_NAME): New.
	* freebsd-aout.h (FUNCTION_PROFILER): Kill.
	(MCOUNT_NAME): New.
	(PROFILE_COUNT_REGISTER): New.
	* linux.h (FUNCTION_PROFILER): Kill.
	(MCOUNT_NAME): New.
	* x86-64.h (FUNCTION_PROFILER): Kill.
	(MCOUNT_NAME): New.
	* freebsd.h (FUNCTION_PROFILER): Kill.
	(MCOUNT_NAME): New.

2002-11-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>

	* config/arm/arm.h (EXPAND_BUILTIN_VA_ARG,
	FUNCTION_ARG_PASS_BY_REFERENCE): Define.
	* config/arm/arm.c (arm_va_arg,
	arm_function_arg_pass_by_reference): New.
	* config/arm/arm-protos.h: Add prototypes.

2002-11-14  Kazu Hirata  <kazu@cs.umass.edu>

	* gthr-single.h: Fix formatting.

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

	* tree.c (tree_vec_elt_check_failed): New function.
	* tree.h (TREE_VEC_ELT_CHECK): New checking macro.
	(TREE_VEC_ELT): Use it.

	* tree-inline.c (optimize_inline_calls): Don't copy a
	zero-length vector.

2002-11-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* diagnostic.c (sorry): Don't repeat "sorry, unimplemented" text.

2002-11-14  Jakub Jelinek  <jakub@redhat.com>

	* varasm.c (output_addressed_constants) [MINUS_EXPR]: Clear reloc if
	both operands contain local relocations.
	(categorize_decl_for_section): Don't use mergeable sections if
	initializer has any relocations.

2002-11-14  Kazu Hirata  <kazu@cs.umass.edu>

	* gthr-vxworks.h: Fix formatting.

2002-11-13  Janis Johnson  <janis187@us.ibm.com>

	* doc/install.texi (Testing): Document extra Java testing.
	* doc/sourcebuild.texi (Test Suites): Document libgcj testing.

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

	* pa64-hpux.h (LINK_SPEC): Move "+Accept TypeMismatch" switch to the
	beginning of the spec.
	(LDD_SUFFIX, PARSE_LDD_OUTPUT): Delete.
	(LD_INIT_SWITCH, LD_FINI_SWITCH): Define but don't enable.  Add comment
	regarding problems with global constructors when using GNU ld.

2002-11-13  Kazu Hirata  <kazu@cs.umass.edu>

	* gthr-solaris.h: Fix formatting.

2002-11-13  Kazu Hirata  <kazu@cs.umass.edu>

	* gthr-posix.h: Fix formatting.

2002-11-12  Devang Patel <dpatel@apple.com>
	* gcc.c (display_help): Two new options -Xpreprocessor and -Xassembler.
	(process_command): Same.
	* doc/invoke.texi: Info about these two new options.

2002-11-12  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (*andorsi3): New.

2002-11-12  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* doc/install.texi (powerpc-*-linux-gnu*): Update binutils requirement.

2002-11-12  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (tiny_constant_address_p): Parenthesize
	expressions appropriately.

2002-11-12  Kazu Hirata  <kazu@cs.umass.edu>

	* gthr-win32.h: Fix formatting.

2002-11-12  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (single_one_operand): Correctly compute
	mask when mode is SImode.
	(single_zero_operand): Likewise.
	* config/h8300/h8300.md (two new anonymous insns): New.

2002-11-12  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* doc/contrib.texi (Contributors): Use GCJ instead of gcj to refer
	to that entire project.

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

	* config/mips/t-iris6 (MULTILIB_OSDIRNAMES): Restore old
	directories.

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

	* params.def (ggc-min-expand, ggc-min-heapsize): New parameters.
	* doc/invoke.texi: Document them.

	* ggc-page.c: Include params.h.  Remove definitions of
	GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED.  Replace
	GGC_POISON with ENABLE_GC_CHECKING in ifdefs, delete #define.
	(init_gcc): Don't set G.allocated_last_gc here.
	(ggc_collect): Use PARAM_VALUE (GGC_MIN_HEAPSIZE) and
	PARAM_VALUE (GGC_MIN_EXPAND) to decide whether or not to
	perform collection.
	* ggc-simple.c: Similarly.
	* Makefile.in (ggc-common.o, ggc-simple.o): Add $(PARAMS_H) to
	dependencies.

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

	* gthr-dce.h: Fix formatting.

2002-11-11  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	PR c/8467
	* stmt.c (tail_recursion_args): Handle DECL_MODE differing from the
	mode of DECL_RTL case.

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

	* doc/contrib.texi: Merge in the list from the libstdc++ web pages.

Mon Nov 11 12:06:08 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (construct_container): Fix handling of SSE_CLASS.

2002-11-10  Joel Sherrill <joel@gcc.gnu.org>

	* config/m68k/t-crtstuff (crti.o): Use this...
	($(T)crti.o): ... instead.
	(crtn.o): Use this...
	($(T)crtn.o): ... instead.

2002-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR c/8439
	* recog.c (validate_replace_rtx_1) [PLUS]: Simplify only
	if there is something new to be simplified.

2002-11-10  H.J. Lu <hjl@gnu.org>

	* calls.c (PUSH_ARGS_REVERSED): Define only if not defined.
	* expr.c (PUSH_ARGS_REVERSED): Likewise.

	* config/i386/i386.h (PUSH_ARGS_REVERSED): Set to 1.

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

	* config/rs6000/sysv4.h: Define NO_IMPLICIT_EXTERN_C here...
	* config/rs6000/linux.h, config/rs6000/linux64.h,
	config/rs6000/windiss.h: ... not here.

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

	* config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define
	__ABICALLS__ if TARGET_ABICALLS.

Sun Nov 10 18:49:21 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.h (MIN_UNITS_PER_WORD): Define to 8 for x86-64 libgcc.

2002-11-10  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-decl.c (grokdeclarator): Make error for duplicate type
	qualifiers into a pedwarn, disabled for C99.

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

	* config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Define the same
	as FUNCTION_ARG_PASS_BY_REFERENCE.

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

	* doc/install.texi: Add *-*-vxworks* specific installation
	instructions.

	* config/vxlib.c: Rewrite using generation numbers to identify
	valid TSD keys.

Sat Nov  9 00:10:54 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (x86_machine_dependent_reorg): Fix even more side cases.

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

	* pa.h (STARTING_FRAME_OFFSET): Change offset for TARGET_64BIT to 16.

	* config.gcc (hppa*64*-*-linux*): Shorten lines in tm_file define.
	(hppa*64*-*-hpux11*): Likewise.  Use elfos.h with gas.
	* pa.c (output_millicode_call): Use symbol difference rather than
	$PIC_pcrel$0 when using HP assembler.
	* pa64-hpux.h (TARGET_GAS): Define to 1 or 0 depending on whether or
	not elfos.h (i.e., gas) is being used.
	(ASM_FILE_START, STRING_ASM_OP, TEXT_SECTION_ASM_OP,
	DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_COMMON,
	ASM_OUTPUT_ALIGNED_LOCAL, GLOBAL_ASM_OP, ASM_DECLARE_FUNCTION_NAME,
	ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL,
	ASM_OUTPUT_INTERNAL_LABEL, ASM_GENERATE_INTERNAL_LABEL): Define when
	using elfos.h.
	(TARGET_ASM_GLOBALIZE_LABEL): Undefine when using elfos.h.
	(DWARF2_ASM_LINE_DEBUG_INFO): Delete.
	(ASM_FILE_START): Add standard .SPACE and .SUBSPA defines when not
	using elfos.h.
	(TEXT_SECTION_ASM_OP, READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
	BSS_SECTION_ASM_OP): New HP style defines when not using elfos.h.
	(TARGET_ASM_NAMED_SECTION, MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL):
	Don't define when not using elfos.h.
	(ASM_DECLARE_RESULT): Don't define.
	* doc/install.texi (hppa*-hp-hpux*): Remove statement that HP assembler
	doesn't work on hppa64-hp-hpux11.
	(hppa*-hp-hpux11): Update.

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

	* config/mips/netbsd.h (SUBTARGET_ASM_SPEC): Don't pass -KPIC
	to the assembler if -mno-abicalls was specified.

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

	* pa-linux.h (PREFERRED_DEBUGGING_TYPE, DWARF2_ASM_LINE_DEBUG_INFO,
	ASM_OUTPUT_DEF): Delete.

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

	* c-opts.c (COMMAND_LINE_OPTIONS): Fix -Wimplicit.

2002-11-08  Roger Sayle  <roger@eyesopen.com>

	* real.c (real_sqrt): Update comment with bibliographic reference.

Fri Nov  8 13:33:58 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (sse_loadss, sse2_loadsd): Fix expander.

Fri Nov  8 13:25:41 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (x86_machine_dependent_reorg): Fix handling of empty functions.

Fri Nov  8 13:01:42 CET 2002  Jan Hubicka  <jh@suse.cz>

	* builtins.c (expand_builtin_mathfn): Handle floor/ceil/trunc/round/nearbyint
	(expand_builtin): Likewise.
	* builtins.def: Add
	__builtin_floor, __builtin_floorf, __builtin_floorl
	__builtin_ceil, __builtin_ceilf, __builtin_ceill
	__builtin_round, __builtin_roundf, __builtin_roundl
	__builtin_trunc, __builtin_truncf, __builtin_truncl
	__builtin_nearbyint, __builtin_nearbyintf, __builtin_nearbyintl.
	* genopinit.c (optabs): Initialize the new optabs.
	* optab.c (init_optabs): Likewise.
	* optabs.h (optab_index): Add OTI_floor, OTI_ceil, OTI_trunc,
	OTI_round, OTI_nearbyint.
	(floor_optab, ceil_optab, trunc_optab, round_optab, nearbyint_optab): New.
	* doc/md.texi: Document new named patterns.
	* doc/extend.texi (builtin functions)  Document
	floor, floorf, floorl, ceil, ceilf,
	ceill, round, roundf, roundl, trunc,
	truncf, truncl, nearbyint, nearbyintf, nearbyintl.

Fri Nov  8 11:36:11 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (sse_movdfcc, sse_movsfcc): Fix typo in previous patch.

2002-11-08  Dale Johannesen  <dalej@apple.com>

	* dbxout.c (dbxout_type):  Fix stabs info for vector types.

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

	PR preprocessor/8497
	PR preprocessor/8501
	* cpptrad.c (scan_out_logical_line): A '#' from a macro doesn't
	start a directive.  In assembler, #NUM is not a line directive.

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

	* cppmain.c (cpp_preprocess_file): Loop to pop any -included
	buffers.

2002-11-08  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (two anonymous test insns): New.

Fri Nov  8 11:20:19 CET 2002  Jan Hubicka  <jh@suse.cz>

	* jump.c (mark_jump_label): Handle subregs of label_refs.

Thu Nov  7 21:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (sse_movdfcc, sse_movsfcc): Avoid overactive matching.
	* i386.c (ix86_expand_fp_movcc): Match the reversed cases.

2002-11-07  David Mosberger  <davidm@hpl.hp.com>

	* config/ia64/crtend.asm: Include "auto-host.h".
	[HAVE_INITFINI_ARRAY]: Invoke __do_global_ctors_aux via .init_array.
	* config/ia64/crtbegin.asm: Similarly.
	* config/ia64/t-ia64 (crtbegin.o): Include from current directory.
	(crtend.o, crtbeginS.o, crtendS.o): Likewise.

	* aclocal.m4 (gcc_AC_INITFINI_ARRAY): New.
	* configure.in: Use it if --enable-initfini-array not specified.
	* doc/install.texi (Configuration): Document --enable-initfini-array.
	* configure, config.in: Rebuild.

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

	* config/arm/arm-protos.h (arm_get_frame_size)
	(thumb_get_frame_size): New prototypes.
	* config/arm/arm.c (arm_get_frame_size)
	(thumb_get_frame_size): New functions.
	(use_return_insn, arm_output_epilogue, arm_output_function_epilogue)
	(arm_compute_initial_elimination_offset, arm_expand_prologue): Use
	arm_get_frame_size.
	(thumb_expand_prologue, thumb_expand_epilogue): Use
	thumb_get_frame_size.
	* config/arm/arm.h (PREFERRED_STACK_BOUNDARY): Define.
	(machine_function): Add frame_size member.
	(THUMB_INITIAL_ELIMINATION_OFFSET): Use thumb_get_frame_size.

2002-11-07  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c (bit_count): Make argument unsigned long.  Return unsigned.
	Adjust code to use portable unsigned bit manipulation.
	(insn_flags, tune_flags): Change type to unsigned.
	(struct processors): Make flags unsigned long.
	(arm_override_options): Change type of count and current_bit_count
	to unsigned.

2002-11-07  Richard Earnshaw  <rearnsha@arm.com>

	* arm/elf.h (TYPE_OPERAND_FMT): Prefix type with %.

Thu Nov  7 15:50:18 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (DWARF_FRAME_RETURN_COLUMN): Use DWARF_FRAME_REGNUM.

Thu Nov  7 11:18:01 CET 2002  Jan Hubicka  <jh@suse.cz>

	* reg-stack.c (compensate_edge): Fix sanity check.

2002-11-05  Geoffrey Keating  <geoffk@apple.com>

	* config.gcc: Don't create crtbegin, crtend on Darwin; do create
	crt2.o.  Rearrange t-darwin makefiles.
	* crtstuff.c [OBJECT_FORMAT_MACHO]: Delete.
	* unwind-dw2-fde-darwin.c: New.
	* unwind-dw2-fde-glibc.c: Correct comment.
	* unwind-dw2-fde.c (__register_frame_info_bases)
	[DWARF2_OBJECT_END_PTR_EXTENSION]: Clear fde_end.
	(classify_object_over_fdes): Use last_fde.
	(add_fdes): Likewise.
	(linear_search_fdes): Likewise.
	* unwind-dw2-fde.h (struct object)
	[DWARF2_OBJECT_END_PTR_EXTENSION]: Add fde_end field.
	(last_fde): New.
	* config/darwin.h (STARTFILE_SPEC): Include crt2.o not crtbegin.o.
	(ENDFILE_SPEC): No crtend.o.
	* config/t-darwin: New.
	* config/i386/t-darwin: Delete.
	* config/darwin-crt2.c: New.
	* config/rs6000/t-darwin: Delete contents duplicated in t-rs6000
	or config/t-darwin.

2002-11-06  Douglas B Rupp  <rupp@gnat.com>

	* config/i386/i386-interix.h (TARGET_SUBTARGET_DEFAULT): Or
	MASK_MS_BITFIELD_LAYOUT
	(SUBTARGET_OVERRIDE_OPTIONS): Warn about and turn off
	MS bitfields for Objective-C.
	(PCC_BIT_FIELD_TYPE_TEST, GROUP_BITFIELDS_BY_ALIGN): Remove
	defines.

	* config/i386/i386.c (ix86_ms_bitfield_layout): New function.
	(TARGET_MS_BITFIELD_LAYOUT_P): Define to above function.
	(TARGET_USE_MS_BITFIELD_LAYOUT): Define.

	* config/i386/i386.h (MASK_MS_BITFIELD_LAYOUT: New mask.
	TARGET_USE_MS_BITFIELD_LAYOUT): New macro.
	(TARGET_SWITCHES): Add above mask.

	* testsuite/gcc.dg/bf-ms-layout.c: New test case.
	* testsuite/gcc.dg/bf-no-ms-layout.c: New test case.
	* testsuite/gcc.dg/i386-bitfield1.c (dg-options): Add appropriate
	flags for interix.

Wed Nov  6 18:54:47 2002  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output
	.gpword/.gpdword for ABI_N32 and ABI_64 too, if using the GNU
	assembler.
	* config/mips/mips.md (tablejump_internal3): Output .cpadd
	before jump on ABI_N32 too.
	(tablejump_internal4): Ditto on ABI_64.  Increase maximum
	length to match.

Wed Nov  6 17:16:48 CET 2002  Jan Hubicka  <jh@.suse.cz>

	* i386.md (negsf splitter): Accept memory operand in second register.
	(abssf/absdf splitters): Simplify
	(sse_loadss, sse_loadsd): Turn into expander.

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

	PR target/8480
	* config/rs6000/rs6000.md (movdi_internal64): Discourage
	FPR to FPR moves.

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

	* doc/contrib.texi: Merge in the list from the Java web pages.

2002-11-06  David O'Brien  <obrien@FreeBSD.org>

	* config/sparc/freebsd: Fix typo.

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

	* pa64-hpux.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Define.

2002-11-06  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.md (call_value_multiple_internal2): Use dla for
	non-SImode addresses.

Tue Nov  5 14:34:36 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (float_truncate SSE splitter): Ensure that operand is not
	stack register.
	(float SSE splitters): Reorder conditional.

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

	* config/xtensa/elf.h (LIB_SPEC): Add "-lhal".

2002-11-05  John David Anglin  <dave2hiauly1.hia.nrc.ca>

	* pa64-hpux.h (LIB_SPEC): Fix p and pg options.
	(STARTFILE_SPEC): Remove p and pg options.

2002-11-05  Andrew Haley  <aph@redhat.com>

	* fold-const.c (fold): Don't transform (a0 op compound(a1,a2))
	to (compound(a1,a0 op a2)) if a0 or a1 have side effects.

2002-11-05  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Move comment to...
	* config/mips/mips.c (mips_cannot_change_mode_class): ...here.

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

	* gthr-vxworks.h: Rewritten from scratch.
	* config/vxlib.c: New file.
	* config/t-vxworks: Add config/vxlib.c to LIB2FUNCS_EXTRA.
	* config/rs6000/t-vxworks: Add config/vxlib.c to
	LIB2FUNCS_EXTRA here too, because of clash with
	config/rs6000/t-ppccomm.

2002-11-04  Dale Johannesen  <dalej@apple.com>

	* doloop.c (doloop_modify_runtime):  Fix loop count computation
	for unrolled loops.
	* loop.c (loop_invariant_p):  Support calling from unroller.

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

	* config/s390/s390.c (s390_decompose_address): Use arg_pointer_rtx
	for comparison.

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

	* hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): New.

	* config/rs6000/rs6000.h (CLASS_CANNOT_CHANGE_MODE_P): Remove.
	(CLASS_CANNOT_CHANGE_MODE): Remove.
	(CANNOT_CHANGE_MODE_CLASS): New.

	* config/alpha/alpha.h: Same.

	* config/ia64/ia64.h: Same.

	* config/mips/mips.h: Same.

	* config/s390/s390.h: Same.

	* config/sh/sh.h: Same.

	* config/pa/pa64-regs.h: Same.

	* config/sh/sh-protos.h (sh_cannot_change_mode_class): Add prototype.

	* config/sh/sh.c (sh_cannot_change_mode_class): New.

	* config/mips/mips-protos.h (mips_cannot_change_mode_class): Add
	prototype.

	* config/mips/mips.c (mips_cannot_change_mode_class): New.

	* doc/tm.texi (Register Classes): Remove
	CLASS_CANNOT_CHANGE_MODE and CLASS_CANNOT_CHANGE_MODE_P.
	Document CANNOT_CHANGE_MODE_CLASS.

	* reload.c (push_reload): Use CANNOT_CHANGE_MODE_CLASS.
	(push_reload): Same.

	* simplify-rtx.c (simplify_subreg): Same.

	* reload1.c (choose_reload_regs): Same.

	* recog.c (register_operand): Same.

	* regrename.c (mode_change_ok): Change to use new
	CANNOT_CHANGE_MODE_CLASS infrastructure.

	* regclass.c (cannot_change_mode_set_regs): New.
	Declare subregs_of_mode.
	(regclass): Use subregs_of_mode.
	Remove references to reg_changes_mode.
	(init_reg_sets_1): Remove class_can_change_mode and
	reg_changes_mode code.
	(invalid_mode_change_p): New.
	(dump_regclass): Use invalid_mode_change_p instead of
	class_can_change_mode.
	(regclass): Same.
	(record_operand_costs): Do not set reg_changes_mode.

	* local-alloc.c (struct qty): Remove changes_mode field.
	(alloc_qty): Remove changes_mode initialization.
	(update_qty_class): Remove set of changes_mode.
	(find_free_reg): Use subregs_of_mode.

	* global.c (find_reg): Use subregs_of_mode info.

	* rtl.h (cannot_change_mode_set_regs): New prototype.
	(invalid_mode_change_p): Same.
	(REG_CANNOT_CHANGE_MODE_P): New macro.

	* flow.c (mark_used_regs): Calculate subregs_of_mode.  Remove
	REG_CHANGES_MODE.
	(life_analysis): Clear subregs_of_mode.

	* combine.c (subst): Pass class to CLASS_CANNOT_CHANGE_MODE_P.
	Remove use of CLASS_CANNOT_CHANGE_MODE.
	(simplify_set): Same.
	(gen_lowpart_for_combine): Calculate subregs_of_mode.  Remove
	REG_CHANGES_MODE.

	* regs.h: Add extern for subregs_of_mode;
	Include hard-reg-set and basic-block.
	(REG_CHANGES_MODE): Delete.

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

	* real.c (real_sqrt): New function to calculate square roots.
	* real.h (real_sqrt): Add function prototype.
	* builtins.c (fold_builtin): Fold sqrt of constant argument.
	* simplify-rtx.c (simplify_unary_operation): Simplify sqrt
	of constant argument.

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

	* jump.c (never_reached_warning): Don't set contains_insn until the
	first line note is seen.

2002-11-03  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (movti_string): Use string instructions.

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

	PR c/7128
	* c-typeck.c (c_expand_asm_operands): Defend against
	error_mark_nodes in the output argument to avoid ICE.

2002-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR middle-end/8408
	* genrecog.c (preds): Handle ADDRESSOF.
	(validate_pattern): Mark it as an lvalue.

2002-11-02  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_override_options): Use string
	instructions when optimizing for size.

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

	* config/h8300/h8300.h: Fix comment typos.
	* config/h8300/h8300.md: Likewise.
	* config/h8300/lib1funcs.asm: Likewise.

2002-11-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	Revert this change:

	*doc/install.texi (Installing GCC: Configuration): Clarify
	the only supported ways to configure gcc.

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

	* config/h8300/h8300.md (anonymous and:QI pattern): Use 'n'
	instead of 'O' for the constraint for the second operand.

2002-11-01  Mark Mitchell  <mark@codesourcery.com>

	PR c++/8391
	* toplev.c (rest_of_compilation): Do not refuse to output code for
	an inline function in a local class.

2002-11-01  David O'Brien  <obrien@FreeBSD.org>

	* config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Define __arch64__.
	(TRANSFER_FROM_TRAMPOLINE): Reformat.
	Add comment.

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

	* config/h8300/h8300.h (CAN_ELIMINATE): Simplify.

2002-11-01  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>

	* config/h8300/h8300.h (OPTIMIZATION_OPTIONS): New.

2002-11-01  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.h (MASK_INLINE_DIV_LAT): Remove.
	(MASK_INLINE_DIV_THR): Remove.
	(TARGET_INLINE_DIV_LAT): Remove.
	(TARGET_INLINE_DIV_THR): Remove.
	(TARGET_INLINE_DIV): Remove.
	(MASK_INLINE_FLOAT_DIV_LAT): New macro.
	(MASK_INLINE_FLOAT_DIV_THR): New macro.
	(MASK_INLINE_INT_DIV_LAT): New macro.
	(MASK_INLINE_INT_DIV_THR): New macro.
	(TARGET_INLINE_FLOAT_DIV_LAT): New macro.
	(TARGET_INLINE_FLOAT_DIV_THR): New macro.
	(TARGET_INLINE_INT_DIV_LAT): New macro.
	(TARGET_INLINE_INT_DIV_THR): New macro.
	(TARGET_INLINE_FLOAT_DIV): New macro.
	(TARGET_INLINE_INT_DIV): New macro.
	* config/ia64/ia64.md (divsi3): Change to use new macros.
	(modsi3): Ditto.
	(udivsi3): Ditto.
	(umodsi3): Ditto.
	(divsi3_internal): Ditto.
	(divdi3): Ditto.
	(moddi3): Ditto.
	(udivdi3): Ditto.
	(umoddi3): Ditto.
	(divdi3_internal_lat): Ditto.
	(divdi3_internal_thr): Ditto.
	(divsf3): Ditto.
	(divsf3_internal_lat): Ditto.
	(divsf3_internal_thr): Ditto.
	(divdf3): Ditto.
	(divdf3_internal_lat): Ditto.
	(divdf3_internal_thr): Ditto.
	(divtf3): Ditto.
	(divtf3_internal_lat): Ditto.
	(divtf3_internal_thr): Ditto.
	* config/ia64/ia64.c (ia64_override_options): Change
	to check new macros for conflicts in settings.
	* doc/invoke.texi (-minline-divide-min-latency): Remove.
	(-minline-divide-max-throughput): Remove.
	(-minline-float-divide-min-latency): New.
	(-minline-float-divide-max-throughput): New.
	(-minline-int-divide-min-latency): New.
	(-minline-int-divide-max-throughput): New.

2002-11-01  Richard Earnshaw  (rearnsha@arm.com)

	PR target/7856
	* arm.c (use_return_insn): Don't use a return insn if there are
	saved integer regs, but LR is not one of them.

Fri Nov  1 10:33:15 CET 2002  Jan Hubicka  <jh@suse.cz>

	* expr.c (emit_move_insn):  Use SCALAR_FLOAT_MODE_P
	* machmode.h (SCALAR_FLOAT_MODE_P): New macro.

Thu Oct 31 18:20:50 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (sse_loadss, sse_loadsd):  Canonicalize; add expander
	(movps, movpd splitters): Use canonical form.
	(movv2di): Fix merge problem.

Thu Oct 31 16:22:31 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (negdf2_ifs_rex64): Don't allow GPR operand.

2002-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>

	PR optimization/6162
	* doc/md.texi: Document restriction on commutative operand
	specification.

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

	* explow.c (convert_memory_address): Use shallow_copy_rtx.

2002-10-31  Steve Ellcey  <sje@cup.hp.com>

	* expmed.c (store_bit_field): Check FUNCTION_ARG_REG_LITTLE_ENDIAN.

2002-10-31  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Set for non-floats.

Thu Oct 31  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/darwin.h:  Correct formatting in previous.

Thu Oct 31  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/darwin.h:  Enable -falign-xxx options.

Thu Oct 31 18:08:00 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (override_options): Set defaults for flag_omit_frame_pointer,
	flag_asynchronous_unwind_tables, flag_pcc_struct_return.
	* i386.c (optimization_options): Set flag_omit_frame_pointer,
	flag_asynchronous_unwind_tables, flag_pcc_struct_return to 2.
	Do not clear -momit-leaf-frame-pointer when profiling.
	(ix86_frame_pointer_required): Frame pointer is always required when
	profiling.

Thu Oct 31 16:09:44 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (negdf2_ifs_rex64): Don't allow GPR operand.

Thu Oct 31 12:45:55 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (binary_logical_operator): Declare.
	* sh.c (binary_logical_operator): New function.
	* sh.md (xordi3+1): New combiner splitter pattern.

2002-10-31  David O'Brien  <obrien@FreeBSD.org>

	* config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Define
	__enable_execute_stack function.

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

	* gthr.h, gthr-dce.h, gthr-posix.h, gthr-rtems.h,
	gthr-solaris.h, gthr-win32.h: Remove __gthread_key_dtor.
	* unwind-sjlj.c (fc_key_dtor): Delete.
	(fc_key_init): Adjust __gthread_key_create call to match.

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

	* c-common.c: Add GTY to vector_type_node_list.

2002-10-30  John David Anglin  <dave@hiauly.hia.nrc.ca>

	* pa-linux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
	* pa-protos.h (attr_length_millicode_call, attr_length_call,
	pa_init_machine_status): Declare new global functions.
	* pa.c (void copy_fp_args, length_fp_args, get_plabel): Declare and
	implement new functions.
	(attr_length_millicode_call, attr_length_call): Implement.
	(total_code_bytes): Change type to long.
	(pa_output_function_prologue): Compute total_code_bytes on TARGET_64BIT.
	Reset counter if flag_function_sections.
	(output_deferred_plabels): Set output alignment to 3 for TARGET_64BIT.
	(output_cbranch): Move call to gen_label_rtx.
	(output_millicode_call): Rewrite adding long TARGET_64BIT call, expose
	delay slot in all variants, shorten pc-relative calls.
	(output_call): Rewrite adding long TARGET_64BIT call, improved delay
	slot usage and exposure, various new call variants, and shortened
	sequences for some variants on TARGET_PA_20.
	Miscellaneous format changes.
	* pa.h (total_code_bytes): Change type to long.
	(MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_LONG_ABS_CALL,
	TARGET_LONG_PIC_SDIFF_CALL, TARGET_LONG_PIC_PCREL_CALL): Define.
	(TARGET_SWITCHES): Add "-mlong-calls" and "-mno-long-calls" options.
	(EXTRA_CONSTRAINT, GO_IF_LEGITIMATE_ADDRESS,
	LEGITIMIZE_RELOAD_ADDRESS): Don't use long floating point loads and
	stores on TARGET_ELF32.
	*pa.md (define_delay): Allow insns in delay on TARGET_PORTABLE_RUNTIME.
	(unnamed patterns for mulsi3, divsi3, udivsi3, modsi3, umodsi3 and
	canonicalize_funcptr_for_compare expanders): Calculate attribute length
	attr_length_millicode_call().
	(call_internal_symref, call_value_internal_symref): Clobber register 1.
	Calculate attribute length using attr_length_call().
	(call_internal_reg_64bit, call_value_internal_reg_64bit): Move gp load
	to delay slot.
	(sibcall, sibcall_value): Rewrite.
	(sibcall_internal_symref, sibcall_value_internal_symref): Clobber
	register 1.  Use attr_length_call().
	(sibcall_internal_symref_64bit, sibcall_value_internal_symref_64bit):
	New patterns.
	(unamed pattern for canonicalize_funcptr_for_compare): Rewrite.
	* som.h (MEMBER_TYPE_FORCES_BLK): Define.
	* t-pa64 (TARGET_LIBGCC2_CFLAGS): Add "-mlong-calls".
	* doc/invoke.texi (mlong-calls): Document.

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

	* fold-const.c (fold_binary_op_with_conditional_arg):  Improve
	handling of cases where one or both branches of the conditional
	have void type, i.e. throw an exception or don't return.
	(fold): Only apply (and undo) type conversion to the non-void
	branches of a COND_EXPR.

2002-10-30  Mark Mitchell  <mark@codesourcery.com>

	PR c++/8333
	* varasm.c (asm_output_aligned_bss): Do not call
	ASM_GLOBALIZE_LABEL.

2002-10-30  David Edelsohn  <edelsohn@gnu.org>
	    Torbjorn Granlund  <tege@swox.com>

	* config/rs6000/rs6000.md (load_toc_v4_PIC_1): Use preferred form
	for addressibility.
	(load_toc_v4_PIC_1b): Same.

2002-10-30  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_eightbit_constant_address_p):
	Truncate the addresses for H8/300 using HImode.

Tue Oct 29 23:28:10 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (negdf splitter): Fix construction of the constant.

Tue Oct 29 20:47:06 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (negsf, negdf): Reorganize to use vector modes
	for SSE variants.
	(abssf, absdf): Use force_reg.
	(movv4sf, movv2df): New splitters.
	* i386.h (PREDICATE_CODES): add zero_extended_scalar_load_operand
	* i386.c (zero_extended_scalar_load_operand

	* i386-protos.h (ix86_expand_call): Update prototype.
	* i386.c (ix86_function_ok_for_sibcall): Handle 64bit
	(ix86_expand_call): Use r11 for indirect sibcalls.
	* i386.md (call, call_value, untyped_call, call_value_pop):
	update x86_expand_call call.
	(sibcall, sibcall_value): new patterns
	(call_rex64, call_value_rex64): Do not accept sibcalls.
	(sibcall_rex64, sibcall_value_rex64,
	sibcall_rex64_v, sibcall_value_rex64_v): New.

Tue Oct 29 15:37:39 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Reorganize way reg_scan is called
	before final pass.

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

	* toplev.c (rest_of_type_compilation): Return early in case of
	errors.
	(check_global_declarations): Don't call debug_hooks->global_decl
	in case of errors.

2002-10-28  Andreas Bauer  <baueran@in.tum.de>

	* doc/c-tree.texi (Tree overview): Fix typos.

2002-10-29  Phil Edwards  <pme@gcc.gnu.org>

	* Makefile.in (gnucompare*):  Only record bad comparisons
	if there really was a bad comparison.

Tue Oct 29 19:32:16 CET 2002  Jan Hubicka  <jh@suse.cz>

	* i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'H'
	* i386.md (movsf*, movdf*): Use 'C' instead of 'H'
	* md.texi (machine dependent constraints): Document 'C'

	* simplify-rtx.c (simplify_subreg): Fix const_int->vector subregging.

	* i386.c (ix86_expand_vector_move): Fix.

	* i386.c (ix86_expand_builtin): Use sse2_maskmovdqu_rex64.
	* i386.md (sse2_maskmovdqu_rex64): New pattern

	PR target/8322
	* xmmintrin.h (_mm_stream_pi, _mm_stream_pd): Fix cast.
	(ix86_init_mmx_sse_builtins): Fix type.

2002-10-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* gthr-posix.h: Include <unistd.h> for feature tests.
	(sched_get_priority_max, sched_get_priority_min)
	(pthread_getschedparam, pthread_setschedparam): Only use
	if _POSIX_THREAD_PRIORITY_SCHEDULING is defined.
	(__gthread_objc_thread_set_priority): Don't treat all nonzero
	returns from sched_get_priority_max and sched_get_priority_min
	as an error.

2002-10-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (TARGET_DEFAULT): Make it
	MASK_QUICKCALL.

2002-10-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_eightbit_constant_address_p): New.
	(h8300_tiny_constant_address_p): Likewise.
	* config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Use
	h8300_eightbit_constant_address_p.
	(TINY_CONSTANT_ADDRESS_P): Use h8300_tiny_constant_address_p.
	* config/h8300/h8300-protos.h: Add the prototypes for the two
	new functions.

2002-10-29  Kazu Hirata  <kazu@cs.umass.edu>

	* reload1.c (update_eliminables): Unconditionally check if
	frame_pointer_needed has changed.

Tue Oct 29 15:37:39 CET 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Reorganize way reg_scan is called
	before final pass.

2002-10-29  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR optimization/8334
	* expr.c (expand_expr) [PLUS]: Don't use simplify_binary_operation;
	check for zero operands explicitly.

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

	* config/mips/mips.md (extv, extzv, insv): Set size of referenced
	memory after adjusting to BLKmode.

2002-10-29  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (MASK_*): New.
	(TARGET_*): Use MASK_*.

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

	* config.gcc (*-*-vxworks, powerpc-wrs-vxworks*): New stanzas.
	* config/t-vxworks, config/vxworks.h, config/rs6000/t-vxworks,
	config/rs6000/vxworks.h: New files.
	* config/rs6000/sysv4.h: Rip out -mvxworks and all related code.

	* config.gcc (alpha*-*-vxworks*, arm-*-vxworks*,
	i?86-wrs-vxworks*, i960-wrs-vxworks* [all],
	m68k-wrs-vxworks*, mips-wrs-vxworks, powerpc-wrs-vxworks*,
	powerpcle-wrs-vxworks*, sparc*-wrs-vxworks* [all],
	sparc-*-vxsim*): Delete stanzas.
	* gthr-vxworks.h: Rip out all substantive code and just
	include gthr-single.h.

	* config/alpha/vxworks.h, config/arm/vxarm.h,
	config/i386/vxi386.h, config/i960/t-vxworks960,
	config/i960/vx960-coff.h, config/i960/vx960.h,
	config/m68k/t-vxworks68, config/m68k/vxm68k.h,
	config/mips/vxworks.h, config/rs6000/vxppc.h,
	config/sparc/t-vxsparc, config/sparc/t-vxsparc64,
	config/sparc/vxsim.h, config/sparc/vxsparc.h,
	config/sparc/vxsparc64.h: Delete files.

2002-10-28  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (*-*-netbsd*): Add NETBSD_ENABLE_PTHREADS to
	tm_defines if pthreads are enabled.
	* config/netbsd.h (LIB_SPEC): Only support the -pthread option
	if NETBSD_ENABLE_PTHREADS is defined.

2002-10-28  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog.1: Fix typos.
	* cse.c: Fix a comment typo.
	* reload1.c: Likewise.

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

	* fixinc/inclhack.def (libc1_G_va_list): Correct test_text.
	* fixinc/tests/base/_G_config.h: New file.

2002-10-27  Kazu Hirata  <kazu@cs.umass.edu>

	* combine.c: Fix comment formatting.
	* loop.c: Likewise.
	* real.c: Likewise.
	* regclass.c: Likewise.
	* regmove.c: Likewise.
	* regrename.c: Likewise.
	* reg-stack.c: Likewise.
	* reload1.c: Likewise.
	* reload.c: Likewise.
	* reload.h: Likewise.
	* unroll.c: Likewise.

2002-10-27  Kazu Hirata  <kazu@cs.umass.edu>

	* reload1.c (reload): Fix a comment typo.

Sun Oct 27 10:15:24 CET 2002  Jan Hubicka  <jh@suse.cz>

	* linux64.h (DEFAULT_PCC_STRUCT_RETURN):  Define.

2002-10-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* Makefile.in (dwarf2out.o): Add dependendcy on hashtab.h.
	* dwarf2out.c: Include hashtab.h.
	(is_main_source): New static variable.
	(attr_checksum, die_checksum): Modified to handle die references.
	(same_loc_p, same_dw_val_p, same_attr_p, same_die_p, same_die_p_wrap,
	unmark_all_dies, htab_cu_hash, htab_cu_eq, htab_cu_del, check_duplicate_cu,
	record_comdat_symbol_number): New static functions.
	(output_comp_unit, compute_section_prefix, is_type_die, break_out_includes,
	mark_dies, unmark_dies, dwarf2out_start_source_file): Modified.
	* toplev.c (rest_of_decl_compilation): Call of dwarf2out_decl for type
	declarations added.

2002-10-26  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (initial_offset): Change to
	h8300_initial_elimination_offset.
	* config/h8300/h8300.h (INITIAL_ELIMINATION_OFFSET): Use
	h8300_initial_elimination_offset.
	* config/h8300/h8300-protos.h: Update the prototype.

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

	* config/mmix/mmix.h (LIBCALL_VALUE): Use
	MMIX_RETURN_VALUE_REGNUM, not MMIX_OUTGOING_RETURN_VALUE_REGNUM.
	(FUNCTION_VALUE_REGNO_P): Similar, but move code to...
	* config/mmix/mmix.c (mmix_function_value_regno_p): New.
	* config/mmix/mmix-protos.h: Remove needless ifdefs on TREE_CODE
	and RTX_CODE.
	(mmix_function_value_regno_p): Declare.

	* config/mmix/mmix.md ("fixuns_truncdfdi2"): Replace unsigned_fix,
	invalid for floating point mode result, with fix.

Fri Oct 25 00:04:21 2002  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (GCC_FOR_TARGET): Add -L$(objdir)/../ld.
	(STAGE2_FLAGS_TO_PASS): Pass GCC_FOR_TARGET.
	(stage1_build): Likewise.

2002-10-25  Mike Stump  <mrs@apple.com>

	Fixes gcc.dg/warn-1.c.
	* c-typeck.c (warn_for_assignment): Don't print argument number,
	if zero.

Sat Oct 26 01:44:46 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (dump_file_index): Add DFI_ce3.
	(dump_file_info): Likewise.
	(rest_of_compilation): Run first ifcvt pass before tracer.

2002-10-25  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (BITS_BIG_ENDIAN): Remove.

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

	* real.c (real_to_decimal): If the >1 tens reduction loop results
	in a negative exponent, fall into the <1 pten computation.

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

	PR middle-end/6994
	* c-objc-common.c (inline_forbidden_p): Can not inline
	functions containing structures or unions containing VLAs.
	* tree-inline.c (walk_tree): For all class 't' nodes, walk
	TYPE_SIZE and TYPE_SIZE_UNIT.
	(copy_tree_r): Copy types if they are variably modified.

2002-10-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md: Remove old-style peepholes.

2002-10-25  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_decompose_address): Do not range check the
	displacement if base or index is the argument pointer register.

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

	PR other/3337
	PR bootstrap/6763
	PR bootstrap/8122
	* fixinc/inclhack.def (libc1_G_va_list): New fix.
	* fixinc/fixincl.x: Regenerate.
	* config/i386/linux.h: Move MD_FALLBACK_FRAME_STATE_FOR inside
	ifndef IN_LIBGCC2.  Wrap it together with signal.h and
	sys/ucontext.h inclusion in ifndef USE_GNULIBC_1.
	* configure.in (gcc_AC_CHECK_DECLS): Check vasprintf too.
	* config.in, configure: Regenerate.

2002-10-24  Igor Shevlyakov <igor@microunity.com>

	* varasm.c (struct rtx_const): Array size 16 for V16QImode.

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

	* config/i386/i386.c (x86_output_mi_thunk): Fix x86_64 pic jump.

2002-10-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (initial_offset): Simplify by using
	round_frame_size.

2002-10-24  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* doc/install.texi (avr): Update required binutils version.

2002-10-24  Theodore A. Roth  <troth@openavr.org>

	* doc/install.texi: Point avr users at more up-to-date information.

2002-10-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md (movdi, movsi, movhi, movqi): Add peepholes2
	to pull operands out of the literal pool where possible.

2002-10-24  Denis Chertykov  <denisc@overta.ru>

	* config/avr/avr.c (init_cumulative_args): Test fntype for zero.

2002-10-24  Steve Ellcey  <sje@cup.hp.com>

	* expr.c (convert_move): If unsignedp is less then zero there
	is no equivalent code.

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

	* tree.def: Delete mention of nonexistent ARRAY_TYPE fields.

2002-10-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.h: Rework comments; re-sort target macro definitions
	according to the sequence they are defined in the manual.
	(POINTER_BOUNDARY): Remove.

2002-10-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (round_frame_size): Replace 8 with
	BITS_PER_UNIT.

2002-10-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Make it
	64-bit safe.
	(TINY_CONSTANT_ADDRESS_P): Likewise.

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

	* config/ia64/ia64.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): True.
	(ia64_output_mi_thunk): Rewrite to use rtl, and to handle the
	vcall offset.

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

	PR opt/7944
	* reload.c (find_reloads_toplev): Mode of X is not important
	when simplifying subregs of constants.

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

	* config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Add
	MIPS_MARCH_CONTROLS_SOFT_FLOAT=1 to $tm_defines.
	* config/mips/mips.c (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Default to 0.
	(override_options): Base default setting of MASK_SOFT_FLOAT on -march
	if MIPS_MARCH_CONTROLS_SOFT_FLOAT.

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

	* optabs.c (expand_binop): Don't reuse the shift target in the
	middle of shift sequences.

Wed Oct 23 22:48:44 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (abs splitters): Do not produce nested subregs.

Wed Oct 23 12:42:32 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movti_rex64): Fix constraints.

Wed Oct 23 12:01:21 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (abssf,absdf): Use vector operands for SSE
	(abssf2_ifs, absdf2_ifs, absdf2_ifs_rex64 and splitters): Update for
	vector operand.

2002-10-23  Ziemowit Laski <zlaski@apple.com>

	* objc/objc-act.c (get_static_reference): Remove unneeded
	TYPE_BINFO initialization.
	(get_object-reference): Likewise.
	(build_constructor): Tighten precondition check.
	(finish_message_expr): Likewise.

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

	* config/i386/i386.c (local_symbolic_operand): Move LABEL_REF test
	after CONST test.

2002-10-23  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.c (hfa_element_mode): Don't allow 128 bit floats
	in HFAs.

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

	* config/alpha/alpha.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): True.
	(alpha_output_mi_thunk_osf): Handle vcall_offset.

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

	* langhooks.h (struct lang_hooks_for_tree_inlining): Add
	var_mod_type_p.
	* langhooks-def.h: Default for tree_inlining.var_mod_type_p is
	hook_tree_bool_false.

	* tree.c (variably_modified_type_p): Moved here from
	cp/tree.c.  Use lang_hooks.tree_inlining.var_mod_type_p for
	language-specific cases.  Due to this, must weaken some 'if
	and only if' checks to merely 'if'.
	* tree.h: Prototype variably_modified_type_p.

	* tree-inline.c (walk_tree): #undef WALK_SUBTREE_TAIL at end.

2002-10-23  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux.h (CC1_SPEC, CC1PLUS_SPEC): Remove.
	* config/s390/s390.c (optimization_options): Disable -fcaller-saves.

	* config/s390/s390-protos.h (fp_operand): Remove.
	* config/s390/s390.c (fp_operand): Remove.
	* config/s390/s390.md ("movdi"): Replace fp_operand by FP_REG_P.
	("*movdi_lhi", "*movdi_lli", "*movdi_larl"): Likewise.
	("movsi", "*movsi_lhi", "*movsi_lli"): Likewise.
	(movdi_31, movdf_31 splitters): Likewise.

	* config/s390/s390.h (IEEE_FLOAT): Remove.
	(TARGET_FLOAT_FORMAT): Define in terms of TARGET_IEEE_FLOAT.
	(INT_REGNO_P): Rename to ...
	(GENERAL_REGNO_P): ... this.
	(FLOAT_REGNO_P): Rename to ...
	(FP_REGNO_P): ... this.
	(ADDR_REGNO_P): New macro.
	(GENERAL_REG_P, ADDR_REG_P, FP_REG_P, CC_REG_P): New macros.
	(REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
	(DATA_REG_P, FP_REG_P, ADDRESS_REG_P): Likewise.
	(HARD_REGNO_NREGS): Adapt to macro renaming.
	(HARD_REGNO_MODE_OK): Likewise.

2002-10-23  David Edelsohn  <edelsohn@gnu.org>
	    Geoff Keating  <geoffk@apple.com>

	* config/rs6000/rs6000.c (rs6000_register_move_cost): New function.
	(rs6000_memory_move_cost): New function.
	* config/rs6000/rs6000-protos.h: Declare them.
	* config/rs6000/rs6000.h: Use them.

2002-10-23  Ulrich Weigand  <uweigand@de.ibm.com>

	* libgcc2.c (__udiv_w_sdiv): Use attribute ((always_inline)) when
	inlining it into other libgcc2 routines.
	(__udivmoddi4): Likewise.

2002-10-22  Nathanael Nerode  <neroden@gcc.gnu.org>

	* doc/sourcebuild.texi (Test Suites): Improve.

2002-10-22  Stan Shebs  <shebs@apple.com>

	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Add missing
	case for Darwin.

2002-10-22  Jim Wilson  <wilson@redhat.com>

	* config/i386/i386.md (subdi3_1): Add call to ix86_binary_operator_ok.

Wed Oct 23 01:52:36 CEST 2002  Jan Hubicka  <jh@suse.cz>

	PR other/8289
	* xmmintrin.h: Add const to the argument of loads.

	* i386.md (pushv2di): New pattern.
	PR target/6890
	* xmmintrin.h (_MM_TRANSPOSE4_PS): New.

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

	* target.h (gcc_target.asm_out): Merge output_mi_thunk and
	output_mi_vcall_thunk into a single hook.  Add can_output_mi_thunk.
	* target-def.h (TARGET_ASM_OUTPUT_MI_THUNK): Don't conditionalize.
	(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Remove.
	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
	(TARGET_ASM_OUT): Update.
	* hooks.c (hook_bool_tree_hwi_hwi_tree_false): New.
	(hook_bool_tree_hwi_hwi_tree_true): New.
	(default_can_output_mi_thunk_no_vcall): New.
	* hooks.h: Declare them.
	* system.h (ASM_OUTPUT_MI_THUNK): Poison.

	* config/alpha/alpha.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
	(alpha_output_mi_thunk_osf): Add VCALL_OFFSET parameter.
	* config/arm/arm.c, config/cris/cris.c, config/frv/frv.c,
	config/i960/i960.c, config/ia64/ia64.c, config/m68k/m68k.c,
	config/mmix/mmix.c, config/pa/pa.c, config/sparc/sparc.c,
	config/stormy16/stormy16.c: Similarly.

	* config/i386/i386.c (x86_output_mi_thunk): Merge vcall_offset code.
	Handle 64-bit properly.  Streamline.
	(x86_output_mi_vcall_thunk): Remove.
	(x86_this_parameter): Rename from ia32_this_parameter; handle 64-bit.
	(x86_can_output_mi_thunk): New.
	(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Remove.
	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
	(override_options): Don't zap targetm.asm_out.output_mi_vcall_thunk.

	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Rename from
	output_mi_thunk; make static; always use function_section.
	(TARGET_ASM_OUTPUT_MI_THUNK): New.
	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
	(rs6000_ra_ever_killed): Test no_new_pseudos not
	targetm.asm_out.output_mi_thunk in conjunction with thunks.
	* config/rs6000/rs6000-protos.h: Update.
	* config/rs6000/sysv4.h (TARGET_ASM_OUTPUT_MI_THUNK): Remove.
	* config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't call
	xcoffout_declare_function when using rs6000_output_mi_thunk.

	* config/s390/s390.c (s390_output_mi_thunk): Rename from
	s390_output_mi_vcall_thunk.
	(TARGET_ASM_OUTPUT_MI_THUNK): Remove.
	(TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.

	* config/vax/vax.c (vax_output_mi_thunk): Static; add vcall_offset.
	(TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): New.
	* config/vax/vax-protos.h: Update.
	* config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove.

Wed Oct 23 00:33:11 CEST 2002  Jan Hubicka  <jh@suse,cz>

	* i386.c (standard_sse_constant_p): Accept vector and integer zeros too.
	* i386.h (EXTRA_CONSTRAINT): Recognize 'C'
	* i386.md (movti_internal): Use 'C'

	* xmmintrin.h (_mm_cmplt_epi*): New.

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

	* config/s390/s390.md ("*movdi_64"): Fix op_type attribute.
	("*movdf_64"): Likewise.
	("*lshrdi3_64"): Likewise.
	("blockage"): Add length attribute.
	("lit"): Likewise.

Tue Oct 22 23:51:34 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md: FIx typo.
	(sse2_cvtsi2sd, sse2_pslrdq): Fix template.
	(sse2_umulv2siv2di3): Fix predicate.
	(sse2_psadbw, ashrv8hi3, ashrv4si3, lshrv8hi3 lshrv4si3,
	lshrv2di3, ashlv8hi3, ashlv4si3, ashlv2di3): Likewise.
	* xmmintrin.h (_mm_mul_epu16): Rename to...
	(_mm_mul_epu32): This one.
	(_mm_cvtsi32_si128, _mm_cvtsi128_si32): New.

	(contains_128bit_aligned_vector_p): Undo accidental checkin.

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

	* config/sparc/sparc.h: Add #error.

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

	* config.gcc [s390-*-linux]: Remove s390/t-linux from tmake_file.
	[s390x-*-linux*]: Likewise.
	* config/s390/t-linux: Remove.
	* config/s390/s390.h: Include fixdfdi.h when building libgcc2.

Tue Oct 22 19:07:03 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (builtin_description): Add IX86_BUILTIN_PUNPCKHQDQ128.
	(ix86_expand_builtin): Fix MASKMOVDQU expasion.
	* i386.h (ix86_builtins): Add IX86_BUILTIN_PUNPCKHQDQ128.
	* i386.md (mmx_punpck?dq): Simplify.
	(sse2_pubpcklqdq): Fix.
	(sse2_pubpckhqdq): New.
	* xmmintrin.h (_mm_unpackhi_epi32): New.

	* xmmintrin.h (_mm_cvt*, _mm_stream_pd): Fix prototypes.
	(_mm_shufflehi_epi16, _mm_shufflelo_epi16): Fix typo.

2002-10-22  Nathan Sidwell  <nathan@codesourcery.com>

	PR c++/7209
	* fold_const.c (fold_binary_op_with_conditional_arg): Always
	build compound_expr if we used save_expr.

2002-10-22  Alan Modra  <amodra@bigpond.net.au>

	* output.h (SECTION_NOTYPE): Define.
	* varasm.c (default_section_type_flags_1): Set SECTION_NOTYPE for
	init array sections.
	(default_elf_asm_named_section): Mind SECTION_NOTYPE.
	* config/arm/arm.c (arm_elf_asm_named_section): Likewise.  Also
	merge TLS support.

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

	* config/i386/i386.c (ix86_function_ok_for_sibcall): Look at
	the function type, not the return type.

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

	* real.c (sticky_rshift_significand): Return inexact, don't
	or it in immediately.
	(sub_significands): Accept incoming carry.
	(div_significands, rtd_divmod): Update for sub_significands change.
	(round_for_format): Update for sticky_rshift_significand change.
	(do_add): Don't involve the inexact bit in addition, do give the
	inexact bit as the subtraction carry-in.
	(encode_internal, decode_internal, real_internal_format): New.
	* real.h (real_internal_format): Declare.

2002-10-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* libgcc2.c: Fix __udiv_w_sdiv breakage on platforms that
	don't define sdiv_qrnnd.

2002-10-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Simplify
	using IN_RANGE.
	(TINY_CONSTANT_ADDRESS_P): Likewise.

Tue Oct 22 00:04:20 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (builtin_description): Add punpcklqdq and movdq2q
	(ix86_init_mmx_sse_builtins): Add v2di_ftype_void, di_ftype_v2di,
	v16qi_ftype_pchar, void_ftype_pchar_v16qi, v4si_ftype_pchar,
	void_ftype_pchar_v4si; Initialize __builtin_ia32_movdq2q,
	__builtin_ia32_loaddqa, __builtin_ia32_loaddqu, __builtin_ia32_loadd
	__builtin_ia32_storedqa, __builtin_ia32_storedqu, __builtin_ia32_stored
	__builtin_ia32_setzero128.
	(ix86_expand_builtin): Handle IX86_BUILTIN_CLRTI, IX86_BUILTIN_LOADDQA,
	IX86_BUILTIN_LOADDQU, IX86_BUILTIN_LOADD, IX86_BUILTIN_STOREDQA,
	IX86_BUILTIN_STOREDQU, IX86_BUILTIN_STORED, Ix86_BUILTIN_MOVQ.
	* i386.h (ix86_builtins): Add IX86_BUILTIN_LOADDQA, IX86_BUILTIN_LOADDQU,
	IX86_BUILTIN_STOREDQA, IX86_BUILTIN_STOREDQU, IX86_BUILTIN_LOADD,
	IX86_BUILTIN_STORED, IX86_BUILTIN_CLRTI, IX86_BUILTIN_MOVDQ2Q,
	IX86_BUILTIN_PUNPCKLQDQ128, Ix86_BUILTIN_MOVQ.
	* i386.md (sse2_punpcklqdq, sse2_movqsse2_loadd, sse2_stored,
	sse2_movq): New patterns.
	(sse2_movdqa, sse2_movdqu, sse2_movdq2q): Fix.
	* xmmintrin.h (_mm_load_si128, _mm_loadu_si128, _mm_loadl_epi64,
	_mm_store_si128, _mm_storeu_si128, _mm_storel_epi64,
	_mm_setzero_si128, _mm_set_epi64, _mm_set_epi32, _mm_set_epi16,
	_mm_set_epi8, _mm_set1_epi64, _mm_set1_epi32, _mm_set1_epi16,
	_mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
	_mm_setr_epi8, _mm_unpacklo_epi64,_mm_set_moveq): New functions.
	(_mm_insert_epi16): Fix.

2002-10-21  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/rs6000.c (rs6000_reverse_condition): Handle
	    unsafe math reversals correctly for RTL generation.
	  (output_cbranch):  Replace rs6000_reverse_condition call
	    by its former definition.

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

	* config/i386/i386.c (x86_64_sign_extended_value): Add allow_rip
	argument.  In CM_SMALL_PIC model consider SYMBOL_REFs binding locally or
	from constant pool or LABEL_REFs as sign extended if allow_rip.
	Change all +-1GB limits to +-16MB.
	(x86_64_general_operand, x86_64_szext_general_operand,
	x86_64_nonmemory_operand, x86_64_movabs_operand,
	x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
	legitimate_address_p, ix86_expand_int_movcc): Update callers.
	(local_symbolic_operand): Don't allow offsets bigger than +-16MB
	in CM_SMALL_PIC model.
	(legitimate_pic_address_disp_p): Don't check offsets before
	calling local_symbolic_operand.
	(legitimize_pic_address): Force offsets bigger than +-16MB into
	register.
	* config/i386/i386.h (EXTRA_CONSTRAINT, CONST_COSTS): Likewise.
	* config/i386/i386-protos.h (x86_64_sign_extended_value): Update
	prototype.

	* configure.in: Test for @GOTNTPOFF and @INDNTPOFF on IA-32 too.
	Add x86-64 test.  Set tls_first_minor to 14 on IA-32 and x86-64.
	* configure: Rebuilt.
	* config/i386/i386.c (x86_64_sign_extended_value): Don't allow TLS
	SYMBOL_REFs unless enclosed in UNSPEC.  Handle UNSPEC_DTPOFF,
	UNSPEC_GOTNTPOFF and UNSPEC_NTPOFF.
	(legitimate_address_p): Allow foo@dtpoff(base) even on TARGET_64BIT
	-fpic.
	(ix86_encode_section_info): Don't ever generate TLSGD or TLSLD for
	non-pic code if TARGET_64BIT.
	(legitimize_address): Generate 64-bit TLS sequences.
	(output_pic_addr_const): Support x86-64 TLS operators.
	(i386_output_dwarf_dtprel): Output 64-bit DTPOFF as .long f@DTPOFF, 0.
	(print_operand_address): Use %fs instead of %gs on TARGET_64BIT.
	Don't append (%rip) in 64-bit TLSGD and TLSLD sequences.
	(output_addr_const_extra): Support x86-64 TLS operators.
	(maybe_get_pool_constant): Handle TARGET_64BIT -fpic.
	(ix86_tls_get_addr): Use __tls_get_addr on TARGET_64BIT
	unconditionally.
	* config/i386/i386.md (*tls_global_dynamic_gnu): Renamed to...
	(*tls_global_dynamic_32_gnu): ..., add !TARGET_64BIT.
	(*tls_global_dynamic_sun): Renamed to...
	(*tls_global_dynamic_32_sun): ..., add !TARGET_64BIT.
	(tls_global_dynamic): Renamed to...
	(tls_global_dynamic_32): ... this.
	(tls_global_dynamic_64, *tls_global_dynamic_64): New.
	(*tls_local_dynamic_base_dynamic_gnu): Renamed to...
	(*tls_local_dynamic_base_dynamic_32_gnu): ..., add !TARGET_64BIT.
	(*tls_local_dynamic_base_dynamic_sun): Renamed to...
	(*tls_local_dynamic_base_dynamic_32_sun): ..., add !TARGET_64BIT.
	(tls_local_dynamic_base_dynamic): Renamed to...
	(tls_local_dynamic_base_dynamic_32): ... this.
	(tls_local_dynamic_base_dynamic_64,
	*tls_local_dynamic_base_dynamic_64): New.
	(*tls_local_dynamic_once): Renamed to...
	(*tls_local_dynamic_32_once): ... this.

2002-10-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* libgcc2.c: Inline __udiv_w_sdiv when compiling __udivdi3,
	__divdi3, __umoddi3, or __moddi3.

2002-10-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* c-opts.c (missing_arg): Use cl_options[opt_index].opt_code
	instead of just opt_index as switch expression.

	* calls.c (store_one_arg): Change type of 'excess_align'
	to unsigned int.

	* profile.c (output_gcov_string): Change type of 'temp'
	to size_t.

2002-10-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/fixdfdi.h (__fixunsdfdi, __fixdfdi): Add prototypes.
	(__fixunssfdi, __fixsfdi): Likewise.
	* config/s390/s390.c (s390_single_hi): Initialize 'value'.
	(s390_single_qi): Likewise.
	(s390_emit_epilogue): Initialize 'offset'.  Remove signed vs.
	unsigned comparison warning.
	(s390_return_addr_rtx): New function.
	* config/s390/s390-protos.h (s390_return_addr_rtx): Declare it.
	* config/s390/s390.h (RETURN_ADDR_RTX): Use it.
	(HARD_REGNO_MODE_OK): Rewrite condition to silence warnings.

2002-10-21  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_output_mi_vcall_thunk): New function.
	(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Define target hook.
	(s390_output_mi_thunk): Remove.
	(TARGET_ASM_OUTPUT_MI_THUNK): Remove.

2002-10-21  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.h (N_REG_CLASSES): Parenthesize.

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

	* config/i386/i386.c (ix86_function_ok_for_sibcall): Fix an
	inverted test in the conditional determining the possibility
	of sibcalls in PIC mode.

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

	* target.h (struct gcc_target): Line wrap.

	* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Static.
	(TARGET_ASM_OUTPUT_MI_THUNK): Define here...
	* config/alpha/alpha.h: ... not here.
	* config/alpha/alpha-protos.h: Update.

	* config/arm/arm.c, config/arm/arm.h, config/arm/arm-protos.h
	config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
	config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h,
	config/i386/i386-protos.h, config/i386/i386.c, config/i386/openbsd.h,
	config/i386/unix.h, config/i960/i960-protos.h, config/i960/i960.c,
	config/i960/i960.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
	config/ia64/ia64.h, config/m68k/linux.h, config/m68k/m68k-protos.h,
	config/m68k/m68k.c, config/m68k/netbsd-elf.h, config/m68k/openbsd.h,
	config/mmix/mmix-protos.h, config/mmix/mmix.c, config/mmix/mmix.h,
	config/pa/pa-protos.h, config/pa/pa.c, config/pa/pa.h,
	config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h,
	config/sparc/openbsd.h, config/sparc/sparc-protos.h,
	config/sparc/sparc.c, config/sparc/sparc.h,
	config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
	config/stormy16/stormy16.h: Similarly.

	* config/m68k/m68k.c (m68k_output_mi_thunk): Replicate mnemonic
	selection logic from call patterns.

2002-10-20  Mark Mitchell  <mark@codesourcery.com>

	* config/m68k/m68k.c (m68k_output_mi_thunk): Fix typo.

2002-10-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	PR other/8202
	* i386.c (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Define and
	expand __builtin_ia32_pslldqi128 and __builtin_ia32_psrldqi128.
	* i386.h (IX86_BUILTIN_PSLLDQI128, IX86_BUILTIN_PSRLDQI128): New.
	* xmmintrin.h (_mm_srli_si128, _mm_slli_si128): New.

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

	PR c/761
	* toplev.c (flag_unsafe_profile_arcs): Remove.
	(flag_bounded_pointers): Remove.
	(flag_bounds_check): Correct comments.
	(lang_independent_options): Remove -funsafe-profile-arcs and
	-fbounded-pointers.  Correct -fbounds-check comments.

	* flags.h: Correct flag_schedule_interblock comments.
	(flag_bounded_pointers): Remove prototype.
	(flag_bounds_check): Correct comments.

	* c-opts.c (c_common_init_options): No need to mark
	flag_bounds_check as unspecified.
	(c_common_post_options): And no need to set it from
	flag_bounded_pointers if its still unspecified.

	* doc/invoke.texi: Fix some overfull hboxes in "make dvi".
	Document --version, -feliminate-dwarf-2-dups, -fno-sched-interblock,
	-fno-sched-spec, -fsched-spec-load, -fsched-spec-load-dangerous,
	-fsched-verbose=n, -fno-branch-count-reg and -fbounds-check.

Sat Oct 19 22:02:28 2002  Alexandre Oliva  <aoliva@redhat.com>
	Angela Marie Thomas  <angela@releasedominatrix.com>
	Brendan Kehoe  <brendan@zen.org>
	Nick Clifton  <nickc@redhat.com>
	Andrew Haley  <aph@redhat.com>

	* configure.in (--with-sysroot): New.  Don't inhibit libc if
	given.  AC_SUBST TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT_DEFINE
	and CROSS_SYSTEM_HEADER_DIR.
	* configure: Rebuilt.
	* Makefile.in (CROSS_SYSTEM_HEADER_DIR): Set in configure.
	(TARGET_SYSTEM_ROOT): New.
	(DRIVER_DEFINES): Define CROSS_INCLUDE_DIR from
	CROSS_SYSTEM_HEADER_DIR.
	(install-gcc-tooldir): New target.
	(stmp-fixinc): Do not create $(libsubdir), but rather bail out
	if SYSTEM_HEADER_DIR does not exist and it's not the default
	sys-include directory.
	(deduced.h, stmp-fixproto): Quote SYSTEM_HEADER_DIR properly.
	(install-mkheaders): Likewise.
	* gcc.c (target_system_root): New variable.
	(add_sysrooted_prefix): New function.
	(process_command): Recompute run-time target_system_root from
	gcc_exec_prefix, keeping it unchanged if the relocated sysroot
	does not exist.
	(do_spec_1): Process 'R' spec.
	(main): Add md_exec_prefix to exec_prefixes regardless of
	startfile_prefix_spec.  Use add_sysrooted_prefix for
	startfile_prefixes, and don't skip the default ones when cross
	compiling with sysroot enabled.  Removed unused case of
	non-absolute standard_startfile_prefix.
	* config/interix.h: Remove the only potential, yet disabled,
	occurrence of non-absolute (empty) standard_startfile_prefix.
	* config/sh/linux.h (LIB_SPEC): Add -rpath-link in non-static
	linking.
	* config/mips/linux.h (LIB_SPEC): Define as in sh/linux.h.
	* doc/install.texi (--with-sysroot): Document.
	(--with-headers, --with-libs): Deprecate.

2002-10-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
	    Mark Mitchell  <mark@codesourcery.com>

	* alpha-protos.h (alpha_output_mi_thunk_osf): Update signature to
	match target.h.
	* arm-protos.h, arm.c (arm_output_mi_thunk): Likewise.
	* cris-protos.h, cris.c (cris_asm_output_mi_thunk): Likewise.
	* frv-protos.h, frv.c (frv_asm_output_mi_thunk): Likewise.
	* i386-protos.h, i386.c (x86_output_mi_vcall_thunk,
	x86_output_mi_thunk): Likewise.
	* i960-protos.h, i960.c (i960_output_mi_thunk): Likewise.
	* ia64-protos.h, ia64.c (ia64_output_mi_thunk): Likewise.
	* m68k-protos.h, m68k.c (m68k_output_mi_thunk): Likewise.
	* mmix-protos.h, mmix.c (mmix_asm_output_mi_thunk): Likewise.
	* rs6000-protos.h, rs6000.c (output_mi_thunk): Likewise.
	* s390-protos.h, s390.c (s390_output_mi_thunk): Likewise.
	* stormy16-protos.h, stormy16.c (xstormy16_asm_output_mi_thunk):
	Likewise.
	* vax-protos.h, vax.c (vax_output_mi_thunk): Likewise.

	* target.h (gcc_target): Update output_mi_thunk and
	output_mi_vcall_thunk to take a HOST_WIDE_INT delta and
	vcall_index.

	* config/alpha/alpha.c: Replace ASM_OUTPUT_MI_THUNK with
	TARGET_ASM_OUTPUT_MI_THUNK in comments.
	* config/alpha/vms.h (ASM_OUTPUT_MI_THUNK): Don't #undef it.
	(TARGET_ASM_OUTPUT_MI_THUNK): #undef it.
	* config/frv/frv.h (DEFAULT_VTABLE_THUNKS): Remove definition.
	* config/i386/i386-protos.h (x86_output_mi_vcall_thunk): Update
	signature.
	* config/i386/i386.c (x86_output_mi_vcall_thunk): Likewise.
	* config/i386/openbsd.h: Replace ASM_OUTPUT_MI_THUNK with
	TARGET_ASM_OUTPUT_MI_THUNK in comments.
	* config/i960/i960.h (ASM_OUTPUT_MI_THUNK): Don't define.
	(TARGET_ASM_OUTPUT_MI_THUNK): Do define.
	* config/m68k/openbsd.h: Replace ASM_OUTPUT_MI_THUNK with
	TARGET_ASM_OUTPUT_MI_THUNK in comments.
	* config/rs6000/rs6000.c (rs6000_ra_ever_killed): Remove #ifdef
	ASM_OUTPUT_MI_THUNK and replace with check of targetm.

	* doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Update signature.
	(TARGET_ASM_OUTPU_MI_VCALL_THUNK): Likewise.

2002-10-19  Brad Lucier  <lucier@math.purdue.edu>

	* real.c (do_add): Fix 0+0 sign corner case.
	(do_divide): Fix Inf/0 corner case.

Sun Oct 20 00:31:31 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (classify_argument): Pass MMX arguments in memory
	(ix86_expand_builtin): Expand proper address mode for cflush.
	* i386.md (movdqa): Fix typo.
	(sse2_cflush): Accept DImode addresses.

	* xmmintrin.h (_mm_sqrt_sd): Accept two arguments.
	(_mm_max_sd): Fix pasto.
	(_mm_storeh_pd, _mm_storel_pd): Fix.

	* i386.c (bdesc_comi): Fix to match specification.
	(ix86_expand_sse_comi): Emit the comparison properly.
	* i386.md (sse_comi, sse2_comi, sse_ucomi, sse2_ucomi):
	Do not use comparison operator.
	(vnmaskcmp): Fix template.

	* xmmintrin.h (_mm_cvtps_pi16): Fix.

2002-10-19  Sebastian Pop  <s.pop@laposte.net>

	* dependence.c : Removed.
	* Makefile.in : Remove dependence.o.

Sat Oct 19 10:46:52 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* mmintrin.h (__m64): typedef it to v2si.
	(_mm_cvtsi32_si64, _mm_cvtsi32_si64_mm_sll_pi16,
	_mm_sll_pi32, _mm_sll_pi64, _mm_slli_pi64, _mm_sra_pi16,
	_mm_sra_pi32, _mm_srl_pi16, _mm_srl_pi32, _mm_srl_pi64,
	_mm_srli_pi64, _mm_and_si64, _mm_andnot_si64,
	_mm_or_si64, _mm_xor_si64): Add neccesary casts.
	* xmmintrin.h (_mm_setzero_si64): Likewise.

	* i386.h (ALIGN_MODE_128): Update comment; add missing modes
	(SSE_REG_MODE_P, MMX_REG_MODE_P): New macros.

	PR target/7693
	Patch by Shawn Wagner
	* mmintrin.h: Replace pi64 by si64.

2002-10-18  David Edelsohn  <edelsohn@gnu.org>

	* rs6000.md (movdf_hardfloat32): Order alternatives consistently.
	Use length of 4 not *.
	(movdf_hardfloat64): Same.  Support DFmode moves to/from CTR/LR.
	(movdf_softfloat64): Likewise.
	(movdi_internal32): Use length of 4 not *.
	(movti_power): Same.
	(ctrsi, ctrdi): Same.

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

	* c-decl.c (start_decl): Point users of the old initialized-
	typedef extension at __typeof__.

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

	* real.c (cmp_significand_0, rtd_divmod, ten_to_mptwo): New.
	(real_to_decimal): Re-implement using the logic from the
	gcc 3.2 etoasc.  Comment heavily.
	(div_significands): Simplify loop startup and comparison logic.

2002-10-18  Mark Mitchell  <mark@codesourcery.com>

	* target-def.h (TARGET_ASM_OUTPUT_MI_THUNK): Default to NULL.
	(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Likewise.
	(TARGET_ASM_OUT): Add them.
	* target.h (asm_out): Add output_mi_thunk and
	output_mi_vcall_thunk.
	* config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/arm/arm-protos.h (arm_output_mi_thunk): Declare.
	* config/arm/arm.c (arm_output_mi_thunk): Define.
	* config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/cris/cris.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/frv/frv.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/i386/i386-protos.h (x86_output_mi_thunk): Adjust
	prototype.
	(x86_output_mi_vcall_thunk): Declare.
	* config/i386/i386.c (override_options): Clear
	output_mi_vcall_thunk in 64-bit mode.
	(ix86_fntype_regparm): New function.
	(ix86_return_pops_args): Use it.
	(ia32_this_parameter): New function.
	(x86_output_mi_vcall_thunk): New function.
	(x86_output_mi_thunk): Use it
	* config/i386/unix.h (TARGET_ASM_OUTPUT_MI_THUNK): Adjust.
	(TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Define.
	* config/i960/i960-protos.h (i960_output_mi_thunk): Declare.
	* config/i960/i960.c (i960_output_mi_thunk): New function.
	* config/i960/i960.h (ASM_OUTPUT_MI_THUNK): Adjust.
	* config/ia64/ia64-protos.h (ia64_output_mi_thunk): Declare.
	* config/ia64/ia64.c (ia64_output_mi_thunk): Define.
	* config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/m68k/m68k-protos.h (m68k_output_mi_thunk): New function.
	* config/m68k/linux.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/m68k/netbsd-elf.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/mmix/mmix.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/pa/pa.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/rs6000/sysv4.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/s390/s390-protos.h (s390_output_mi_thunk): Declare.
	* config/s390/s390.c (s390_output_mi_thunk): Define.
	* config/s390/s390.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/stormy16/stormy16.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* config/vax/vax-protos.h (vax_output_mi_thunk): Declare.
	* config/vax/vax.c (vax_output_mi_thunk): Define.
	* config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Rename to ...
	(TARGET_ASM_OUTPUT_MI_THUNK): ... this.
	* doc/tm.texi: Adjust documentation.

2002-10-18  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Define
	__enable_execute_stack function.
	* config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Define
	as NETBSD_ENABLE_EXECUTE_STACK.
	* config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Ditto.
	* config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Ditto.
	* config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Ditto.
	* config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Ditto.
	* config/sparc/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Ditto.

2002-10-18  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/i386/i386.c (x86_initialize_trampoline): Emit a call
	to __enable_execute_stack with the address of the trampoline
	if TRANSFER_FROM_TRAMPOLINE is defined.
	* config/i386/i386.h (TARGET_64BIT): Expand to a compile-time
	constant if building libgcc2.

Thu Oct 17 17:40:05 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (pentium4_cost): Fix according to Intel recommendations.
	(ix86_memory_move_cost): Fix for 64bit compilation.

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

	* doc/c-tree.texi: Update description of COND_EXPR tree nodes.

2002-10-17  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Allow arbitrary modes
	in CTR/LR/MQ.
	* config/rs6000/rs6000.md (movcc_internal1): Support CCmode moves
	to/from CTR/LR/MQ.
	(movsf_hardfloat): Support SFmode moves to/from CTR/LR/MQ.
	(movsf_softfloat): Likewise.

2002-10-17  Janis Johnson  <janis187@us.ibm.com>

	* Makefile.in (site.exp): Add ALT_CXX_UNDER_TEST and COMPAT_OPTIONS.

2002-10-17  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/alpha/alpha.c (alpha_initialize_trampoline): Use
	tramp, not addr, to pass the trampoline address to
	__enable_execute_stack.

Thu Oct 17 18:40:47 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* mmintrin.h: Guard by __MMX__
	* xmmintrin.h: Guard by __SSE__

	PR other/8062
	* xmmintrin.h (_MM_SHUFFLE2): New macro.
	(_mm_load*_?d): New functions.
	(_mm_set*_?d): New functions.
	(_mm_store*_?d): New functions.

Wed Oct 16 15:01:29 CEST 2002  Jan Hubicka  <jh@suse.cz>

	Really commit patch announced at Oct 14
	PR c/7344
	* predict.c (can_predict_insn_p): New function.
	(estimate_probability): Avoid unnecesary work.
	(process_note_prediction): Likewise.
	* toplev.c (rest_of_compilation): Account early branch prediction pass
	as TV_BRANCH_PROB.

	PR other/8048
	Found by Ian Ollmann
	* xmmintrin.h (_mm_shuffle_pd): Fix typo.
	(_mm_load?_pd): Likewise.
	(_mm_store?_pd): Likewise.

	PR target/7386
	* i386.c (builtin_description):Drop cmpg[te]s[sd].
	* xmmintrin.h (__mm_cmpg[te]_s[sd]): Rewrite using
	swapped alternative.

	PR opt/7630
	* reload1.c (reload_inner_reg_of_subreg): New argument output;
	(push_reload): Update call.

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

	* config.gcc (mips*-*-*): Add OBJECT_FORMAT_ELF to $tm_defines
	if using mips/elf.h or mips/elf64.h.
	* config/mips/elf.h (OBJECT_FORMAT_ELF): Remove.
	* config/mips/elf64.h (OBJECT_FORMAT_ELF): Remove.

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

	* config/rs6000/rs6000.c (function_arg): Set inner mode of V1DI to
	SI.

2002-10-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/linux.h (ASM_DOUBLE, _ASM_OUTPUT_LONG): Remove.
	(LPREFIX): Likewise.
	(ASM_COMMENT_START, LOCAL_LABEL_PREFIX, ASM_FORMAT_PRIVATE_NAME,
	ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT,
	ASM_OUTPUT_ALIGN, ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_BSS,
	TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
	GLOBAL_ASM_OP, ASM_OUTPUT_MI_THUNK): Move to s390.h.

	* config/s390/s390.h (ASM_COMMENT_START, LOCAL_LABEL_PREFIX,
	ASM_FORMAT_PRIVATE_NAME, ASM_OUTPUT_ALIGN, ASM_OUTPUT_SKIP,
	ASM_OUTPUT_ALIGNED_BSS, TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
	BSS_SECTION_ASM_OP): Move from linux.h.
	(ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
	Also, use ASM_GENERATE_INTERNAL_LABEL instead of LPREFIX.

	* config/s390/s390.c (s390_function_profiler): Use
	ASM_GENERATE_INTERNAL_LABEL instead of LPREFIX.

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

	* stor-layout.c (layout_type): Call GET_MODE_BITSIZE once.
	* java/parse.y (obtain_incomplete_type): Make pointer
	ptr_mode.

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

	* real.c (real_to_decimal): Accept BUF_SIZE and CROP_TRAILING_ZEROS
	as arguments.  Bound DIGITS by the available buffer size.
	(real_to_hexadecimal): Likewise.
	* real.h (real_to_decimal, real_to_hexadecimal): Update prototypes.
	(REAL_VALUE_TO_DECIMAL): Remove.
	* c-common.c, c-pretty-print.c, print-rtl.c, print-tree.c,
	sched-vis.c, config/arc/arc.c, config/c4x/c4x.c, config/fr30/fr30.c,
	config/i370/i370.h, config/i386/i386.c, config/i960/i960.c,
	config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
	config/m68k/hp320.h, config/m68k/m68k.h, config/m68k/sun2o4.h,
	config/m68k/sun3.h, config/mips/mips.c, config/ns32k/ns32k.c,
	config/pdp11/pdp11.h, config/vax/vax.h: Update all callers to
	use real_to_decimal directly, and with the proper arguments.
	* doc/tm.texi (REAL_VALUE_TO_DECIMAL): Remove.

2002-10-15  Jim Wilson  <wilson@redhat.com>

	* reload1.c (merge_assigned_reloads): After converting overlapping
	reloads to RELOAD_OTHER, abort if there are now conflicting reloads.

	* config/i386/i386.md (adddi3_1): Add call to ix86_binary_operator_ok.

Tue Oct 15 22:08:35 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* expr.c (do_tablejump): Fix typo in my previous commit.

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

	* config/mips/vr.h (DRIVER_SELF_SPECS): Change %<mgp32 to %{<mgp32}.

2002-10-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_split_branches): Add return
	value.  Add parameters TEMP_REG and TEMP_USED.  Use unspec 104.

	(find_base_register_in_addr): New function.
	(find_base_register_ref): New function.
	(replace_base_register_ref): New function.

	(struct constant_pool): Add members pool_insn, insns, and anchor.
	Remove member last_insn.
	(s390_start_pool): Initialize them.
	(s390_end_pool): Emit pool placeholder insn.
	(s390_add_pool_insn): New function.
	(s390_find_pool): Use insns bitmap instead of addresses.
	(s390_dump_pool): Replace placeholder insn.  Emit anchor.
	Replace unspec 104 by local-pool-relative references.
	(s390_output_constant_pool): Output anchor label if required.
	(s390_output_symbolic_const): Handle unspec 104 and 105.
	(s390_add_pool): Remove, replace by ...
	(s390_add_constant, s390_find_constant): ... these new functions.
	(s390_add_anchor): New function.

	(s390_chunkify_pool): Delete, replace by ...
	(s390_chunkify_start, s390_chunkify_finish,
	s390_chunkify_cancel): ... these new functions.
	(s390_optimize_prolog): Add parameter TEMP_REGNO.
	Recompute register live data for special registers.
	(s390_fixup_clobbered_return_reg): New function.
	(s390_machine_dependent_reorg): Rewrite to use new
	s390_chunkify_... routines.

	config/s390/s390.md ("reload_base"): Rename to ...
	("reload_base_31"): ... this.
	("reload_base_64"): New insn.
	("reload_base2"): Remove.
	("reload_anchor"): New insn.
	("pool"): New insn.

	s390.c (s390_pool_overflow): Remove.
	s390.h (s390_pool_overflow): Likewise.
	s390.md ("cjump", "icjump", "doloop_si"): Remove s390_pool_overflow.

Tue Oct 15 16:51:04 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (movv8qi_i+2): Don't split if source is -1.

2002-10-15  Janis Johnson  <janis187@us.ibm.com>

	* doc/install.texi: Formatting changes for conformance to HTML 4.01.

2002-10-15  Ulrich Weigand  <uweigand@de.ibm.com>

	PR opt/7409
	* loop.c (loop_regs_scan): Mark registers used for function
	argument passing as MAY_NOT_OPTIMIZE.

Mon Oct 14 19:22:19 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* gcov-io.h (gcov_info): Fix type.
	* profile.c (create_profiler): Fix type mismatch.

Mon Oct 14 20:33:12 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (movv2di_internal): New pattern.
	(movv2df_internal, movv8hi_internal, movv16qi_internal): Fix predicate.
	(movv2di): New expander.
	* i386.c (ix86_preferred_reload_class): Return NO_REGS for vector operands.

	* i386.c (ix86_expand_timode_binop_builtin): Delete.
	(builtin_description): Add SSE1 logicals; rename SSE2 logicals.
	(ix86_init_mmx_sse_builtins): Kill SSE1 logicals.
	(ix86_expand_builtin): Likewise.
	* i386.h (sse_andti4_df_1, sse_andti3_df_2, sse_andti3_sf_1, sse_andti3_sf_2,
	sse_andti3,
	sse_andnti4_df_1, sse_andti3_df_2, sse_andti3_sf_1, sse_andti3_sf_2,
	sse_andnti3,
	sse_orti4_df_1, sse_orti3_df_2, sse_orti3_sf_1, sse_orti3_sf_2,
	sse_orti3,
	sse_xorti4_df_1, sse_xorti3_df_2, sse_xorti3_sf_1, sse_xorti3_sf_2,
	sse_xorti3): Kill.
	(sse_andv4sf3, sse_andnv4sf3, sse_orv2df3, sse_xorv2df3, sse_andv2df3,
	 sse_andnv2df3, sse_orv2df3, sse_xorv2df3): New expanders.
	(*sse_andv4sf3, *sse_andnv2df3, *sse_orv4sf3, *sse_xorv4sf3, *sse_andv2df3,
	 *sse_andnv2df3, *sse_orv2df3, *sse_xorv2df3): New patterns.
	(*sse_andsf3, *sse_andndf3, *sse_ordf3, *sse_xordf3, *sse_anddf3,
	 *sse_andndf3, *sse_orv2df3, *sse_xorv2df3): New patterns.

	* xmmintrin.h (__m128i): Define as __v2di.

	PR c++/6419
	(expand_expr): Use DECL_RTL_SET_P.

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

	* combine.c (simplify_set):  Treat MODE_CC registers like cc0.

2002-10-14  Roger Sayle  <roger@eyesopen.com>
	    Zack Weinberg <zack@codesourcery.com>

	* config/i386/i386.c (k6_cost): Correct typo.

2002-10-14  Mark Mitchell  <mark@codesourcery.com>

	PR optimization/6631
	* alias.c (objects_must_conflict_p): Check honor_readonly when
	examining TYPE_READONLY.
	* function.c (assign_stack_temp_for_type): Likewise.

2002-10-14  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>

	* config/alpha/alpha.md (extendsidi2_nofix, extendsidi2_fix):
	Swap zero extension arguments.
	(umaxhi3): Fix instruction class.
	PR target/7211
	(prefetch): Fix prefetch instructions.
	PR target/7238
	(pkwb): Fix output constraint.

2002-10-14  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.c (print_operand): Increase buffer size for
	real numbers.

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

	PR opt/8165
	* gcse.c (adjust_libcall_notes): Revert last change.
	* simplify-rtx.c (simplify_replace_rtx): Handle LO_SUM.

2002-10-14  Andrew Haley  <aph@redhat.com>

	* tree-inline.c (remap_block): All local class initialization
	flags go in the outermost scope.
	(expand_call_inline): Call java_inlining_map_static_initializers.
	(expand_call_inline): Call java_inlining_merge_static_initializers.
	* java/lang.c (merge_init_test_initialization): New.
	(java_inlining_merge_static_initializers): New.
	(inline_init_test_initialization): New.
	(java_inlining_map_static_initializers): New.

	* tree-inline.c (expand_call_inline): Convert retvar to expected
	type.

2002-10-14  Graham Stott  <graham.stott@btinternet.com>

	* stmt.c (decl_conflicts_with_clobbers_p): Add REG_P check.

2002-10-14  Aldy Hernandez  <aldyh@redhat.com>

	* stmt.c: Fix typo in comment.

Mon Oct 14 11:35:49 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* c-common.c (c_common_type_for_mode): Add V2HImode case.
	* tree.c (build_common_tree_nodes_2): Initialize
	unsigned_V2HI_type_node and V2HI_type_node.
	* tree.h (enum tree_index): Add TI_UV2HI_TYPE and TI_V2HI_TYPE.
	(unsigned_V2HI_type_node, V2HI_type_node): Define.

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

	* config/i386/i386.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP):
	Handle TARGET_64BIT.

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

	* config/mips/vr.h (DRIVER_SELF_SPECS): Define.
	* config/mips/t-vr (MULTILIB_OPTIONS): Remove mlong32.
	(MULTILIB_DIRNAMES): Remove long32.
	(MULTILIB_EXCEPTIONS): Don't build -mabi=32 -mgp32 multilibs.
	(MULTILIB_REDUNDANT_DIRS): Remove.

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

	* doc/tm.texi (DRIVER_SELF_SPECS): Document.
	* gcc.c (driver_self_specs): New variable.
	(do_self_spec): New function.
	(main): Use it to process driver_self_specs.

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

	* config/i386/i386.c (ix86_function_ok_for_sibcall): Reject
	indirect sibcalls when regparm >= 3.

	* config/i386/i386.c (sibcall_insn_operand): New.
	* config/i386/i386.h (PREDICATE_CODES): Update.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.

	* rtl.c (shallow_copy_rtx): Use memcpy for the entire node.

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

	* simplify-rtx.c (simplify_binary_operation) [ASHIFTRT]: Optimize
	arithmetic right shifts of ~0 during RTL simplifications.

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

	PR preprocessor/7862
	PR preprocessor/8190
	* gcc.c (cpp_unique_options): Don't delete .d files.
	Remove stray whitespace.

2002-10-12  Naohiko Shimizu  <pshimizu@fa2.so-net.ne.jp>

	* pdp11.h (ASM_OUTPUT_SKIP): Add preceding 0 for octal constant.
	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
	* pdp11.c (pdp11_output_function_prologue): 0%o -> %#o.
	(pdp11_output_function_epilogue, output_ascii): Likewise.
	(output_addr_const_pdp11): Likewise.
	* pdp11.md (movdi): Use offsetable memory for floating store.
	(lshrsi3, negsi2): Delete irrelevant comment.

2002-10-11  Andreas Bauer  <baueran@in.tum.de>

	* config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
	indirect calls to be sibcall optimized.
	* config/i386/i386.md (sibcall_1): New.
	(call_1): Add no-sibcalls condition.
	(sibcall_value_1): New.
	(call_value_1): Add no-sibcalls condition.

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

       * output.h (default_valid_pointer_mode): Declare.
       * varasm.c (default_valid_pointer_mode): Define.
       * target-def.h (TARGET_VALID_POINTER_MODE): Use.
       * target.h: Ditto.
       * tree.c (build_pointer_type_for_mode): New function.
       (build_pointer_type): Use.
       (build_reference_type_for_mode): New function.
       (build_reference_type): Use.
       * tree.h: Declare new functions.
       * c-common.c (handle_mode_attribute): Use new functions, check
       for type.
       * stor-layout.c (layout_type): Depend on machine mode for
       REFERENCE_TYPE and POINTER_TYPE.
       * dwarf2out.c (simple_type_size_in_bits): Move upward in file.
       (modified_type_die): Use instead of PTR_SIZE for POINTER_TYPE
       and REFERENCE_TYPE.
       * config/mips/mips.c (mips_valid_pointer_mode): New function.
       (TARGET_VALID_POINTER_MODE): Use and define.
       * config/mips/mips-protos.h (mips_valid_pointer_mode): Declare.

2002-10-11  Geoffrey Keating  <geoffk@apple.com>

	* cse.c (mention_regs): Set SUBREG_TICKED to the register number,
	not the address of the REG.
	(struct cse_reg_info): Make subreg_ticked unsigned.

2002-10-11  Janis Johnson  <janis187@us.ibm.com>

	* doc/compat.texi: Add info about C++ libraries.

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

	PR opt/8165
	* gcse.c (adjust_libcall_notes): Also adjust notes for INSN.

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

	* cfganal.c (dfs_enumerate_from): Use PARAMS.
	* genautomata.c (output_insn_code_cases): Likewise.
	* real.c (real_format): Likewise.
	* tree.c (tree_size): Revise expressions using TREE_CODE_LENGTH to
	ensure value is promoted before doing subtraction.

Fri Oct 11 22:22:38 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* calls.c (expand_call): Simplify noreturn call.

	PR c/7344
	* cfgbuild.c (make_edges): Create edge cache when we do have
	large jumptable.
	* expr.c (do_tablejump): Note size of maximal jumptable.
	* function.c (prepare_function_start): Zero out size.
	* function.h (function): Add max_jumptable_ents.

	* cfgcleanup.c (insn_match_p): Verify sibcall flag for calls to.

Fri Oct 11 12:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (movv8qi_i+2): For V8QI destinations, generate V4HI
	register for mperm_w operation.

Fri Oct 11 10:56:17 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* emit-rtl.c (gen_lowpart_common): When asked to make a vector from
	an integer, use simplify_gen_subreg.

2002-10-10  Diego Novillo  <dnovillo@redhat.com>

	* calls.c (flags_from_decl_or_type): Make extern.
	(ECF_*): Move ...
	* rtl.h (ECF_*): ... here.
	(flags_from_decl_or_type): Declare.

2002-10-10  Roger Sayle  <roger@eyesopen.com>
	    Nathan Sidwell <nathan@codesourcery.com>

	* fold-const.c (fold) [RSHIFT_EXPR]: Optimize arithmetic right
	shifts of the form -1 >> x.

Thu Oct 10 16:52:55 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* cfgcleanup.c (insn_match_p): Verify sibcall flag for calls to.

2002-10-10  Aldy Hernandez  <aldyh@redhat.com>

	* extend.texi (Vector Extensions): Remove comment about single
	element vectors.

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

	* fold-const.c (size_htab_hash): Use htab_hash_pointer.
	* function.c (insns_for_mem_hash): Likewise.
	* varasm.c (STRHASH): Likewise.

2002-10-10  Stuart Hastings  <stuart@apple.com>

	* cse.c (struct cse_reg_info): Add subreg_ticked.
	(SUBREG_TICKED): New.
	(get_cse_reg_info): Initialize SUBREG_TICKED.
	(mention_regs): Use it.
	(invalidate): Set SUBREG_TICKED.
	(invalidate_for_call): Likewise.
	(addr_affects_sp_p): Likewise.

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

	* config/i386/i386.md (tls_local_dynamic_base): Put pic reg
	into proper operand.

2002-10-10  Denis Chertykov  <denisc@overta.ru>

	* config/ip2k/ip2k.c (function_epilogue): Optimize stack
	deallocation.
	* config/ip2k/libgcc.S: Combine routines used by function
	epilogue.

2002-10-10  Jim Wilson  <wilson@redhat.com>

	* cse.c (fold_rtx): Don't perform associative optimization for DIV and
	UDIV.

2002-10-10  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix52.h: New file.
	* config/rs6000/t-aix52: New File.
	* config.gcc (rs6000-ibm-aix5.1.*): New entry.
	(rs6000-ibm-aix[56789].*): Default to AIX 5.2.

Thu Oct 10 19:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>

	PR target/5610
	* invoke.texi (-msse-math): Kill
	(-msse): Add note to mfpmath=sse.

Thu Oct 10 17:08:30 CEST 2002  Jan Hubicka  <jh@suse.cz>

	PR target/7723
	* i386.c (ix86_expand_vector_move): Do not generate const0->mem moves.

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

	PR preprocessor/8179
	* gcc.c (cpp_options): Add {ansi}, move %{m*} to same location
	as cc1_options.
	(default_compilers): Pass debug options when preprocessing
	stdin.

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

	* toplev.c (rest_of_compilation): Revert opt/2960 change.

Wed Oct  9 21:18:43 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (*_cost): Add branch costs.
	(override_options): set ix86_branch_cost.
	(ix86_expand_int_movcc): Use BRANCH_COST.
	* i386.h (costs): Add branch_cost.

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

	PR c/7353
	* c-decl.c (start_decl): Unconditionally issue error for
	'typedef foo = bar'.
	(finish_decl): Remove special case for TYPE_DECL with initializer.

	* doc/extend.texi: Delete "Naming Types" section.  Change all
	cross-references to that section to refer to "Typeof" instead.
	Add the useful safe-max()-macro example from "Naming Types" to
	"Typeof", rewritten using that extension.  Add some compatibility
	notes to "Typeof."

2002-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* loop.c: Revert 2002-08-15 change.
	(LOOP_REGNO_NREGS): Ensure type is int.

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

	* config/rs6000/rs6000.md (extenddftf2): Change to define_insn
	which copies first FPR and clears second.
	(extendsftf2): Same.
	(floatditf2): Fix typo.
	(floatsitf2): Same.
	(fix_trunctfdi2): Same.
	(fix_trunctfsi2): Same.

2002-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* conflict.c (arc_hash): Change return type to hashval_t.
	* cselib.c (get_value_hash): Likewise.
	* genautomata.c (automaton_decl_hash, insn_decl_hash, decl_hash,
	state_hash, automata_list_hash): Likewise.
	* read-rtl.c (def_hash): Likewise.
	* tree.c (type_hash_hash): Likewise.

2002-10-08  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_ra_ever_killed): Call
	prologue_epilogue_contains instead of using REG_MAYBE_DEAD notes.

Wed Oct  9 15:54:49 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (ffssi2): Fix emitted code.

2002-10-09  Ulrich Weigand  <uweigand@de.ibm.com>

	* cse.c (insn_live_p): Pass insn pattern, not full insn
	to may_trap_p.

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

	* cppmacro.c (paste_tokens): Only allow / to paste with =.

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

	* config/rs6000/rs6000.md (movdf splitter): Use gen_int_mode on
	64-bit hosts.
	(movtf_internal): Reference correct displacement for second value
	in memory.
	(movtf splitter): Correct generation of constants in 64-bit mode.

2002-10-09  Alan Modra  <amodra@bigpond.net.au>

	* libgcc2.c (__floatdisf): Properly cure double rounding.

2002-10-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-common.c (cb_register_builtins): Define __WCHAR_MAX__.
	* doc/cpp.texi (Common Predefined Macros): Document.

2002-10-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	PR doc/7484
	* doc/invoke.texi (Option Summary): List
	-Wmissing-declarations as a C only option.

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

	* fold-const.c (fold) [LROTATE_EXPR, RROTATE_EXPR]: Optimize
	left and right rotates of ~0, i.e. integer_all_onesp (arg0).
	[LSHIFT_EXPR, RSHIFT_EXPR]: Optimize shifts and rotates of zero.

Tue Oct  8 01:24:19 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (x86_sse_partial_reg_dependency, x86_sse_partial_regs,
	x86_sse_typeless_stores, x86_sse_load0_by_pxor): New global
	variables.
	(safe_vector_operand): Update sse_clrv4sf call.
	(ix86_expand_buildin): Likewise
	* i386.h (x86_sse_partial_reg_dependency, x86_sse_partial_regs,
	x86_sse_typeless_stores, x86_sse_load0_by_pxor): Declare.
	(TARGET_SSE_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REGS,
	TARGET_SSE_TYPELESS_STORES, TARGET_SSE_TYPELESS_LOAD0): New
	macros.
	* i386.md (movsf*, movdf*, movti, movv4sf, movv2df, movv16qi, movv8hi,
	movv4si):  Obey the new flags.
	(floatsi2sf, floatdi2sf, truncatedf2sf): Emit extra load of 0 to avoid
	reformating penalty.
	(anddf, cmov patterns): Avoid reformating by first converting.
	(sse_cvtsd2ss): Fix predicate.
	(sse2_clrti): Fix mode,
	(sse_clrv4sf): Avoid unspec.

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

	* config/sparc/t-linux64 (MULTILIB_OPTIONS): Remove
	mno-app-regs|mcmodel=medany.
	(MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): Remove alt.
	(MULTILIB_EXCEPTIONS, MULTILIB_EXCLUSIONS, MULTILIB_MATCHES): Remove.
	(CRTSTUFF_T_CFLAGS): Define.

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

	PR target/8087
	* simplify-rtx.c (avoid_constant_pool_reference):  Allow constant
	pool references that are constructed using LO_SUM.

2002-10-08  Nathan Sidwell  <nathan@codesourcery.com>

	* c-opts.c (c_common_decode_option): Add warn_strict_aliasing to
	-Wall.
	* c-typeck.c (build_c_cast): Use warn_strict_aliasing, tweak
	message.
	* flags.h (warn_strict_aliasing): Declare.
	* toplev.c (warn_strict_aliasing): Define.
	(lang_independent_options): Add it.
	* doc/invoke.texi (-Wstrict-aliasing): Document it.

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

	* system.h (GCCBUGURL): Delete.
	* version.c (bug_report_url): New.  Add commentary about
	modifying both these strings in modified distributions.
	* version.h: Declare bug_report_url.

	* diagnostic.c, gcc.c, gcov.c: Globally replace GCCBUGURL with
	bug_report_url.

2002-10-08  Nick Clifton  <nickc@redhat.com>

	* config/rs6000/spe.h (__ev_set_acc_u64): Use __ev_create_u64 to
	convert uint64_t into __ev64_opaque__.
	(__ev_set_acc_s64): Likewise, but using signed types.

2002-10-08  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("*doloop_si_long"): Add missing operand.
	("*doloop_di_long"): Likewise.

Tue Oct  8 16:50:10 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* print-rtl.c (print_rtx): Increase buffer size for real numbers.

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

	* config/mips/mips.md (define_attr cpu): Add r4111.

2002-10-08  Anthony Green  <green@redhat.com>

	* bitmap.c (bitmap_equal_p): Clear all bitmap_head fields.

2002-10-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>

	* config/c4x/c4x.c (c4x_print_operand): Enlarge buffer
	for REAL_VALUE_TO_DECIMAL output.

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

	* cse.c (fixed_base_plus_p): Turn FIXED_BASE_PLUS_P into a
	function; cleanup PLUS case by using recursion.  Update all users.
	(NONZERO_BASE_PLUS_P): Remove.
	(find_comparison_args): Use rtx_addr_can_trap_p instead.
	(fold_rtx): Use nonzero_address_p.
	* rtl.h (nonzero_address_p): Declare.
	* rtlanal.c (rtx_varies_p): Handle ADDRESSOF.
	(rtx_addr_can_trap_p): Likewise.
	(nonzero_address_p): New.
	* simplify-rtx.c (NONZERO_BASE_PLUS_P): Remove.
	(simplify_relational_operation): Use nonzero_address_p.

2002-10-07  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_override_options): Set
	real_format_for_mode for IBM extended format, if enabled.
	(easy_fp_constant): Add TFmode.
	(rs6000_legitimize_address): Add TFmode.
	(rs6000_legitimate_address): Same.
	(function_arg_advance): TFmode uses two FPRs.
	(rs6000_emit_prologue): Fix warning.
	(rs6000_output_function_epilogue): Add TFmode.
	(output_toc): Add TFmode.
	* rs6000.h (SLOW_UNALIGNED_ACCESS): Add TFmode.
	(LEGITIMATE_OFFSET_ADDRESS_P): Add TFmode.
	* rs6000.md (movtf splitter): Load TFmode constant.

2002-10-07  Dale Johannesen  <dalej@apple.com>

	* rtl.h:  Add NOTE_PRECONDITIONED.
	* unroll.c:  Set it.
	* loop.c:  Set loop_info->preconditioned from it.
	* doloop.c:  Permit doloop treatment when loop_info->preconditoned.

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

	* config/i960/i960.c (i960_setup_incoming_varargs): Create a
	new rtx for comparing the argument pointer against zero.
	(i960_va_start): Similarly.

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

	* config/i960/i960.md (*): Use TFmode, not XFmode.
	* config/i960/i960.c (*): Likewise.
	(i960_arg_size_and_align): Remove XFmode alignment hack.
	(i960_round_align): Merge code from ROUND_TYPE_ALIGN.
	* config/i960/i960.h (LONG_DOUBLE_TYPE_SIZE): Use 128, not 96.
	(MAX_LONG_DOUBLE_TYPE_SIZE): Likewise.
	(DATA_ALIGNMENT, ROUND_TYPE_SIZE): Remove.

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

	* config/fp-bit.c (EXTENDED_FLOAT_STUBS): Flush out all XF/TFmode
	entry points; use void return value and argument list.

2002-10-06  Andreas Bauer  <baueran@in.tum.de>

	* calls.c (expand_call): Fix function-is-volatile check.

2002-10-05  Naohiko Shimizu <nshimizu@keyaki.cc.u-tokai.ac.jp>

	* t-pdp11: Add MULTILIB support for msoft-float.
	* pdp11.h (LEGITIMATE_CONSTANT_P): Fix soft-float case.

	* t-pdp11: Add LIB2FUNCS_EXTRA.
	* pdp11.c (pdp11_output_function_prologue): Restrict offset to 16bit,
	add preceding 0 to the octal constant, rename 'fp' to 'r5', rename
	'fldd' to 'ldd', rename 'fstd' to 'std'.
	(pdp11_output_function_epilogue): Likewise.
	(output_move_quad): Make the comment gas compatible.
	(output_ascii): Add preceding 0 to the octal constant.
	(print_operand_address): Add pre_modify, post_modify.
	(output_addr_const_pdp11): Add preceding 0 to the octal constant.
	* pdp11.h (GO_IF_LEGITIMATE_ADDRESS) : Add 'movb' pre_modify case
	with the indication of Paul Koning.
	(PRINT_OPERAND): Fix floating constant.
	* pdp11.md (movdi): Restrict matching pattern.
	(movqi): Generalize the matching pattern.
	(movdf): Restrict matching pattern.
	(zero_extendqihi2): Change constant representation.
	(floatsidf2): Fix wrong operands.
	(addqi3): Fix wrong instruction name.
	(subqi3): Fix wrong instruction name.
	(andsi3, andhi3, andqi3): Simplify and fix to use 'bic'.
	(xorsi3): Fix wrong insn.
	(one_cmplqi2): Add two operand pattern.
	(lsrsi3): New.
	(negsi2): New.
	(call): Add register indirect case.
	(mod): Fix wrong subreg.

2002-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
	    Volker Reichelt <reichelt@igpm.rwth-aachen.de>

	PR c/7411
	* expr.c (expand_expr) [PLUS]: Simplify after the operands
	have been expanded in EXPAND_NORMAL mode.

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

	* config/rs6000/rs6000.md (load_toc_v4_PIC_2): Fix base constraint.

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

	PR optimization/2960
	* toplev.c (rest_of_compilation): Don't copy_loop_headers if
	optimize_size.

2002-10-06  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (SIZE_TYPE, PTRDIFF_TYPE): Override
	previously definitions.

2002-10-06  Frank Ch. Eigler  <fche@redhat.com>

	* cppinit.c (init_standard_includes, parse_option): Use strncmp.
	* c-opts.c (find_opt): Similarly.

Sat Oct  5 22:48:06 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* athlon.md: rewrite to DFA.
	* i386 (ix86_adjust_cost): Drop memory latency code.
	(ia32_use_dfa_pipeline_interface): Return true for Athlon.

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

	* gcc.c (set_multilib_dir): Don't access *end.
	Use memcpy instead of strncpy.  Don't write beyond malloced buffer.
	(print_multilib_info): Don't show paths starting with ".:".
	* genmultilib: Add new option, "yes" if multilibs are enabled.
	Update comments.  If multilibs not enabled, print .:${osdirout}
	for each directory.  If multilibs are enabled, always print
	${dirout}:${osdirout}, even if the two are the same.
	* Makefile.in (s-mlib): Pass @enable_multilib@ to genmultilib.
	Pass all MULTILIB_* variables to genmultilib even if
	--disable-multilib but MULTILIB_OSDIRNAMES is not empty.

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

	* gcc.c (process_command): Set .validated for -pipe.  Correct
	grammar in comment.

2002-10-04  Bruce Korb  <bkorb@gnu.org>

	* fixinc/inclhack.def(hpux11_abs):  use format fix
	* fixinc/fixincl.x: regenerate
	* fixinc/tests/base/stdlib.h: accommodate new fix test

Sat Oct  5 19:42:45 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* c-common.c (cb_register_builtins):  Use really_no_inline.

2002-10-04  David Edelsohn  <edelsohn@gnu.org>

	* unroll.c (copy_loop_body): Remove REG_EQUAL note attached to
	copied instruction if the note is not loop invariant.

2002-10-04  Loren J. Rittle  <ljrittle@acm.org>

	* gcc/ginclude/stddef.h: Support the FreeBSD 5 typedef system.

2002-10-04  Steve Ellcey  <sje@cup.hp.com>

	* doc/invoke.texi (HPPA):  Add -mlinker-opt, -mgnu-ld,
	and -mhp-ld options to list of options.  Add -mgnu-ld
	and -mhp-ld option descriptions.

2002-10-04  Steve Ellcey  <sje@cup.hp.com>

	* fixinc/inclhack.def (hpux11_abs):  New.
	(stdio_va_list): change __va_list__ to __gnuc_va_list.
	* fixinc/fixincl.x: Rebuild.

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

	* config/i386/i386.h (processor_costs): Add new fields fadd,
	fmul, fdiv, fabs, fchs and fsqrt to costs structure.
	(RTX_COSTS): Use these fields to determine the RTX costs
	of floating point addition/subtraction, multiplication,
	division, fabs, negation and square root respectively.
	* config/i386/i386.c (size_cost): Provide instruction sizes
	for these new fields.
	(i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
	k6_cost, athlon_cost, pentium4_cost): Provide typical cycle
	counts for these new fields for all x86 processor variants.

2002-10-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* mips.c (mips_const_double_ok): Delete unused variable.

	* gengtype.c (rtx_next): Change type to int.

2002-10-04  Andreas Jaeger  <aj@suse.de>

	* config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Fix value.

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

	* real.h (SIGNIFICAND_BITS): Add one more word.
	(CONST_DOUBLE_FORMAT): Accomodate 6 words.
	* real.c (times_pten): New.
	(real_to_decimal, real_from_string): Use it.
	(sticky_rshift_significand): Use & to find modulus.
	(rshift_significand, lshift_significand): Likewise.
	(do_divide): Apply sticky bit after normalization.
	(real_to_decimal, real_to_hexadecimal): Fix sign of Inf and NaN.

2002-10-03  Andreas Bauer  <baueran@in.tum.de>

	* doc/tm.texi (FUNCTION_OK_FOR_SIBCALL): Remove.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): New.

2002-10-03  Andreas Jaeger  <aj@suse.de>

	* gengtype.c (adjust_field_rtx_def): Cast variables of type size_t
	to unsigned long, adjust printf format string.
	(output_mangled_typename): Likewise.

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

	* config/vax/vax.c (vax_output_function_prologue): Use asm_fprintf.
	* config/vax/vax.h (VAX_FUNCTION_PROFILER_NAME): New.
	(FUNCTION_PROFILER): Rewrite to use ASM_GENERATE_INTERNAL_LABEL,
	assemble_name, asm_fprintf, and VAX_FUNCTION_PROFILER_NAME.
	(ASM_OUTPUT_MI_THUNK): Use asm_fprintf instead of REGISTER_PREFIX.
	(PRINT_OPERAND_PUNCT_VALID_P): Fix comment.
	* config/vax/elf.h (FUNCTION_PROFILER): Remove.
	(VAX_FUNCTION_PROFILER_NAME): Redefine as "__mcount".

2002-10-03  Mark Mitchell  <mark@codesourcery.com>

	* doc/invoke.texi (-Wabi): Document mangling bug.

2002-10-04  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use a
	name for the tbtab label that depends on the function asm name.
	Don't output tbtab label unless optional_tbtab.
	(output_mi_thunk): Formatting.

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

	* config/m68k/m68k.h (OVERRIDE_OPTIONS): Move additional code ...
	* config/m68k/m68k.c (override_options): ... here.
	* config/m68k/m68kelf.h (OVERRIDE_OPTIONS): Remove.
	* config/m68k/m68kv4.h (OVERRIDE_OPTIONS): Remove.
	* config/m68k/linux.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
	* config/m68k/netbsd-elf.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.

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

	* real.h (struct real_value): Use ENUM_BITFIELD.

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

	* config/i960/i960.md (call, call_value): Use emit_call_insn.

2002-10-03  Steve Ellcey  <sje@cup.hp.com>

	* config/pa/pa64-hpux.h (INIT_ENVIRONMENT): New.

2002-10-03  Steve Ellcey  <sje@cup.hp.com>

	* config.gcc (hppa*64*-*-hpux11*): Check gnu_ld.
	* config/pa/pa.h (MASK_GNU_LD): New.
	(TARGET_GNU_LD): New.
	* config/pa/pa64-hpux.h (LINK_SPEC): Set based
	on gnu-ld and MASK_GNU_LD.
	(SUBTARGET_SWITCHES): New gnu-ld & hp-ld flags.

Thu Oct  3 23:35:51 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (athlon_cost): Fix the move costs.

Thu Oct  3 23:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* final.c (final): Use symbol name as function name for profiling.
	* profile.c (get_exec_counts): Likewise.
	(branch_prob): Likewise.

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

	* longlong.h (__udiv_qrnnd): Remove PARAMS from prototype.

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

	* gcc.c (print_multi_os_directory): New variable.
	(option_map): Support --print-multi-os-directory.
	(struct prefix_list): Add os_multilib field.
	(multilib_os_dir): New variable.
	(static_specs): Add multilib_options.
	(find_a_file): Add multilib argument.  Search in GCC or OS multilib
	subdirs if nonzero.
	(read_specs, execute): Update callers.
	(find_file): Likewise.  Don't prefix name with multilib_dir, instead
	pass 1 as multilib option.
	(display_help): Include --print-multi-os-directory.
	(add_prefix): Add os_multilib argument.  Initialize pl->os_multilib.
	(process_command): Update callers.  Handle --print-multi-os-directory.
	(do_spec_1) ['D']: Use multilib_os_directory if pl->os_multilib is
	set.
	(main): Update find_a_file and add_prefix callers.
	Handle print_multi_os_directory.
	(struct mdswitchstr): New.
	(mdswitches, n_mdswitches): New variables.
	(used_arg): Add MULTILIB_DEFAULT switches too if they are not
	present on the command line nor their mutually incompatible
	switches.
	(default_arg): Optimize.
	(set_multilib_dir): Compute multilib_os_dir.  Initialize mdswitches
	array.
	(print_multilib_info): Only print GCC multilib dir name, not OS
	multilib dirname.
	* genmultilib: Add osdirnames parameter.  Output multilib_options
	variable.  If osdirnames is specified, output dirnames as
	dirname:osdirname.
	* mklibgcc.in: Use MULTILIB_OSDIRNAMES, --print-multi-directory
	and --print-multi-os-directory instead of SHLIB_SLIBDIR_SUFFIXES
	to compute libgcc_s soname and install path.
	* Makefile.in (libgcc.mk): Pass MULTILIB_OSDIRNAMES instead of
	SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
	(s_mlib): Pass MULTILIB_OSDIRNAMES or nothing as last genmultilib
	argument.

	* config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Set.
	(SHLIB_SLIBDIR_SUFFIXES): Remove.
	* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64,
	ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_COMMON): Remove.
	(STARTFILE_SPEC, ENDFILE_SPEC): Don't distinguish between -m32
	and -m64.
	* config/sparc/t-sol2-64 (MULTILIB_OSDIRNAMES): Set.
	(SHLIB_SLIBDIR_SUFFIXES): Remove.
	* config/sparc/sol2-bi.h (STARTFILE_ARCH64_SPEC): Remove.
	(STARTFILE_ARCH_SPEC): Remove.
	* config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Set.
	(SHLIB_SLIBDIR_SUFFIXES): Remove.
	* config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Remove.
	* config/mips/t-iris6 (MULTILIB_OSDIRNAMES): Set.
	(SHLIB_SLIBDIR_SUFFIXES): Remove.

Thu Oct  3 21:42:20 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* predict.c (choose_function_section): Avoid choice for linkonce functions.

Thu Oct  3 15:15:00 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (lea to mul peep2): Fix condition.

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

	* pa-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete macro.
	* pa32-linux.h (FUNCTION_OK_FOR_SIBCALL): Define.

2002-10-02  David Mosberger-Tang  <David.Mosberger@acm.org>

	* unwind.h (_Unwind_GetTextRelBase): Mark _C argument with
	attribute "unused".

	* config/t-libunwind: Mention unwind-sjlj.c.
	* unwind-libunwind.c: Change #ifdef __USING_LIBUNWIND_EXCEPTIONS__
	to #ifndef __USING_SJLJ_EXCEPTIONS__.

	* configure.in: Move sjlj-exceptions and --enable-libunwind-exceptions
	before inclusion of config.gcc, but after configuring the compiler etc.
	Determine default value for --enable-libunwind-exceptions based on
	whether the host has a libunwind library (not guaranteed to be correct,
	but it's a reasonable first guess and can always be overridden with an
	explicit --enable/disable-libunwind-exceptions.
	* config.gcc: For target ia64*-*-linux*, mention t-libunwind as a
	tmake_file when $use_libunwind_exceptions is enabled.
	* Makefile.in: Update comment: LIB2ADDEH is updated not just by
	ia64 (e.g., config/t-linux also updates it).
	* gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS]: Mention -lunwind
	along with the shared version of libgcc since the latter requires
	the former.
	* unwind-libunwind.c: New file.
	* config/t-libunwind: Ditto.

2002-10-02  Nathanael Nerode  <neroden@gcc.gnu.org>

	* config.gcc: Remove support for vax-*-vms*.
	* config/vax/vms.h: Remove.
	* config/vax/xm-vms.h: Remove.
	* config/vax/vax-protos.h: Remove VMS-specific code.
	* config/vax/vax.c: Remove VMS-specific code.

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

	PR opt/7124
	* config/i386/i386.c (ix86_register_move_cost): Increase cost
	for secondary_memory_needed pairs.

2002-10-02  Nathanael Nerode  <neroden@gcc.gnu.org>

	* doc/vms.texi: Blow away false include file section.

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

	PR optimization/6627
	* toplev.c (force_align_functions_log): New global variable.
	* flags.h (force_align_functions_log): Add extern prototype.
	* varasm.c (assemble_start_function): Use it to force minimum
	function alignment.
	* config/i386/i386.h (FUNCTION_BOUNDARY): Set the correct
	minimum function alignment to one byte.
	(TARGET_PTRMEMFUNC_VBIT_LOCATION): Store the virtual bit in
	the least significant bit of vtable member function pointers.
	* tree.h (enum ptrmemfunc_vbit_where_t): Move definition to
	here from cp/cp-tree.h.

Wed Oct  2 17:01:36 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (print_operand_address): Use RIP addressing for offsetted
	label refs too.

2002-09-30  David S. Miller  <davem@redhat.com>

	PR middle-end/7151
	* config/sparc/sparc.md (movdi_insn_sp32_v9): Accept 'e' regs.
	(movdi reg/reg split): Match only on sparc32, and v9 when int regs.

2002-10-01  Andreas Bauer  <baueran@in.tum.de>

	* calls.c (expand_call): Remove the `no indirect check'
	for sibcall optimization; use function_ok_for_sibcall
	target hook; refine check for `function is volatile'.
	(FUNCTION_OK_FOR_SIBCALL): Remove the redefinition.
	* hooks.c (hook_tree_tree_bool_false): New.
	* hooks.h (hook_tree_tree_bool_false): Declare.
	* target-def.h (TARGET_FUNCTION_OK_FOR_SIBCALL): New.
	(TARGET_INITIALIZER): Add it.
	* target.h (struct gcc_target): Add function_ok_for_sibcall.
	* config/alpha/alpha.c: (alpha_function_ok_for_sibcall): New.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly.
	* config/alpha/alpha.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/arm/arm-protos.h: (arm_function_ok_for_sibcall):
	Remove function declaration.
	* config/arm/arm.c: (arm_function_ok_for_sibcall): Make
	function static and accept another argument of type `tree'.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly.
	* config/arm/arm.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/frv/frv.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/i386/i386.c: (ix86_function_ok_for_sibcall): New.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly.
	* config/i386/i386.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/pa/pa-linux.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	(TARGET_HAS_STUBS_AND_ELF_SECTIONS): New definition.
	* config/pa/pa.c: (pa_function_ok_for_sibcall): New.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly.
	* config/pa/pa.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/rs6000/rs6000-protos.h: (function_ok_for_sibcall):
	Remove function declaration.
	* config/rs6000/rs6000.c: (rs6000_function_ok_for_sibcall):
	Rename function_ok_for_sibcall to rs6000_function_ok_for_sibcall;
	rename first argument to `decl'; accept another argument
	of type `tree'; make static.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly.
	* config/rs6000/rs6000.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/sh/sh.c: (sh_function_ok_for_sibcall): New.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly.
	* config/sh/sh.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/sparc/sparc.c: (sparc_function_ok_for_sibcall): New.
	(TARGET_FUNCTION_OK_FOR_SIBCALL): Redefine accordingly.
	* config/sparc/sparc.h: (FUNCTION_OK_FOR_SIBCALL): Remove.
	* config/xtensa/xtensa.h: (FUNCTION_OK_FOR_SIBCALL): Remove.

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

	* unroll.c (loop_iterations): Revert 2002-09-08 change.

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

	* real.c (real_to_decimal): Crop trailing zeros for DIGITS < 0.
	(real_to_hexadecimal): Likewise.
	* print-rtl.c (print_rtx): If we are linked with real.c, don't
	dump the XWINT fields of a floating point CONST_DOUBLE.

2002-10-01  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/vax/elf.h (FUNCTION_PROFILER): Fix __mcount call.

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

	* calls.c (precompute_register_parameters): Force non-legitimate
	constants into pseudos.

2002-10-01  Nick Clifton  <nickc@redhat.com>

	* config/rs6000/spe.md (spe_evrlwi): Add missing third operand
	to assembler template.

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

	* dwarf2out.c (loc_descriptor_from_tree): Relax requirement
	for TLS debug info to !DECL_EXTERNAL.

2002-10-01  Matt Thomas  <matt@3am-software.com>
	    Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (vax-*-netbsdelf*): Enable configuration.
	* config/elfos.h (PCC_BITFIELD_TYPE_MATTERS): Define only
	if not already defined.
	* config/vax/elf.h: New file.
	* config/vax/netbsd-elf.h: New file.
	* config/vax/vax.c: Include "debug.h".
	(vax_output_function_prologue): Add dwarf2 support.  Use
	MAIN_NAME_P when checking for VMS_TARGET stack adjust.
	* config/vax/vax.h (CONST_OK_FOR_LETTER_P): Add cases for
	'J' [0..63], 'K' [-128..127], 'L' [-32768..32767],
	'M' [0..255], 'N' [0..65535], and, 'O' [-63..-1].
	(VAX_ISTREAM_SYNC): Remove.
	(INITIALIZE_TRAMPOLINE): Use gen_sync_istream.
	(JUMP_TABLES_IN_TEXT_SECTION): Define.
	(ASM_OUTPUT_REG_POP): Use reg_names for the stack pointer.
	(ASM_OUTPUT_ADDR_VEC_ELT): Use ASM_GENERATE_INTERNAL_LABEL
	and assemble_name.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
	(PRINT_OPERAND_PUNCT_VALID_P): Accept '|'.
	(PRINT_OPERAND): Output REGISTER_PREFIX for '|'.
	(INCOMING_RETURN_ADDR_RTX): Define.
	* config/vax/vax.md (VUNSPEC_BLOCKAGE)
	(VUNSPEC_SYNC_ISTREAM): Define.
	(blockage): Use VUNSPEC_BLOCKAGE.
	(sync_istream): New insn.

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

	* config/vax/vax.md (call_pop, *call_pop, call_value_pop)
	(*call_value_pop, call, call_value): Add dwarf2 EH support.
	(*call): New insn.

2002-10-01  Nathan Sidwell  <nathan@codesourcery.com>

	PR c/8083
	* c-typeck.c (build_c_cast): Warn about type punning which breaks
	type based aliasing.

2002-10-01  Mark Mitchell  <mark@codesourcery.com>

	* stor-layout.c (update_alignment_for_field): New function.
	(place_union_field): Use it.
	(place_field): Likewise.

2002-10-01  Nathan Sidwell  <nathan@codesourcery.com>

	PR other/8077
	* gcc.c (cc1_options): Add space on -auxbase-strip.

2002-10-01  Jim Wilson  <wilson@redhat.com>

	* config/v850/v850.h (EPILOGUE_USES): Define.

2002-09-30  Andrew Haley  <aph@redhat.com>

	* flow.c (insn_dead_p): When using non-call-exceptions, don't
	eliminate insns that may trap.
	* cse.c (insn_live_p): Likewise.

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

	* config/mips/mips.h (PROCESSOR_R4121): Rename to PROCESSOR_R4120.
	(TARGET_MIPS4121): Rename to TARGET_MIPS4120.
	* config/mips/mips.c (mips_cpu_info): Rename vr4121 to vr4120.
	* config/mips/mips.md: Apply same renaming here.

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

	* config/mips/mips.c (PROCESSOR_R4320, TARGET_MIPS4320): Remove.
	(GENERATE_MULT3_SI): Remove use of TARGET_MIPS4320.
	* config/mips/mips.c (mips_cpu_info): Remove vr4320 entry.
	* config/mips/mips.md (define_attr cpu): Remove r4320.
	Remove vr4320 scheduler and uses of TARGET_MIPS4320.

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

	* config/mips/mips.c (mips16_strings): New variable.
	(mips_output_function_epilogue): Clear the SYMBOL_REF_FLAG of every
	symbol in mips16_strings.  Free the list.
	(mips_encode_section_info): Keep track of local strings.

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

	* config/mips/mips.md (bunge, bltgt, bungt): New define_expands.
	(sordered_df, sordered_sf): Remove.
	* config/mips/mips.c (get_float_compare_codes): New fn.
	(gen_int_relational, gen_conditional_move): Use it.

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

	* config/mips/mips-protos.h (mips_emit_fcc_reload): Declare.
	* config/mips/mips.h (PREDICATE_CODES): Add fcc_register_operand.
	* config/mips/mips.c (fcc_register_operand): New function.
	(mips_emit_fcc_reload): New function, extracted from reload_incc.
	(override_options): Allow TFmode values in float registers
	if ISA_HAS_8CC.
	* cnfig/mips/mips.md (reload_incc): Change destination prediate
	to fcc_register_operand.  Remove misleading source constraint.
	Use mips_emit_fcc_reload.
	(reload_outcc): Duplicate reload_incc.

2002-09-30  Zack Weinberg  <zack@codesourcery.com>

	* gcc.c (validate_switches): Handle all new forms of spec
	syntax introduced recently.  Now returns a char *.
	(validate_all_switches): Repetitive logic broken out to...
	(validate_switches_from_spec): ...here.
	* mklibgcc.in: Don't @-flag commands to generate .oS files.

2002-09-30  Ulrich Weigand  <uweigand@de.ibm.com>

	* longlong.h: Partially synchronize with GMP-4.1 version:
	Use i370 definitions also for s390.
	Add generic definition of umul_ppmm in terms of smul_ppmm.
	[s390] (umul_ppmm): Remove.
	[s390] (smul_ppmm): Fix incorrect assembler constraints.
	[s390] (smul_ppmm, sdiv_qrnnd): Rename __xx to __x.

2002-09-30  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/xtensa.h (REG_CLASS_NAMES, REG_CLASS_CONTENTS):
	Add new RL_REGS register class.
	(PREFERRED_RELOAD_CLASS, PREFERRED_OUTPUT_RELOAD_CLASS):
	Call xtensa_preferred_reload_class for both input and output reloads.
	* config/xtensa/xtensa.c (xtensa_regno_to_class): Use new RL_REGS class.
	(xtensa_preferred_reload_class): Handle output reloads; use RL_REGS
	instead of either AR_REGS or GR_REGS classes.
	(xtensa_secondary_reload_class): Use new RL_REGS class.
	* config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class): Update.

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

	* pa.c (hppa_encode_label): Don't drop '*' from function labels.
	(pa_strip_name_encoding): Strip '@' and '*', in that order.
	* pa.h (ASM_OUTPUT_LABELREF): Output user_label_prefix except when
	there is a '*' prefix in NAME.

Mon Sep 30 21:33:23 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* reload.c (push_reload): Handle subregs and secondary memory.
	* reload1.c (gen_reload): Likewise.

	* jump.c (reg_or_subregno): New function.
	* rtl.h (reg_or_subregno): Declare
	* unroll.c (find_splittable_givs): Handle subregs.

2002-09-30  Mark Mitchell  <mark@codesourcery.com>

	* store-layout.c (finish_record_layout): Add free_p parameter.
	(layout_type): Pass it.
	* tree.h (finish_record_layout): Update prototype.

Mon Sep 30 14:57:18 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.h (TARGET_CPP_CPU_BUILTINS): Define __SSE_MATH__.

	* gcse.c (cprop_jump): Check that the register has not
	been modified
	(cprop_jump): Likewise.

2002-09-30  Richard Earnshaw  <rearnsha@arm.com>

	* arm.h (BASE_REG_CLASS): Always return LO_REGS for Thumb.
	(MODE_BASE_REG_CLASS, case Thumb): Only return BASE_REGS if we know
	that we have a SImode access, and only then if reload hasn't completed;
	for all other cases, use LO_REGS.

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

	* openbsd.h: Fix typo in last change.

2002-09-29  Richard Henderson  <rth@redhat.com>

	* real.c (real_from_string): Apply sign last.  Tidy exponent handling.

2002-09-29  Richard Henderson  <rth@redhat.com>

	PR c/8002
	* combine.c (force_to_mode): Handle FLOAT_MODE destinations
	for CONST_INT.

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

	* real.h (ibm_extended_format): Declare.
	* real.c (encode_ibm_extended, decode_ibm_extended): New
	functions.

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

	* darwin-protos.h (darwin_asm_output_dwarf_delta): Prototype.

	* ia64.c (ia64_hpux_asm_file_end): Const-ify.

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

	* expmed.c (extract_bit_field): Fix bit-field extraction from SUBREGs.

2002-09-29  Kazu Hirata  <kazu@cs.umass.edu>

	* builtins.def: Fix comment formatting.
	* c-common.def: Likewise.
	* cfgcleanup.c: Likewise.
	* combine.c: Likewise.
	* gengtype.c: Likewise.
	* params.def: Likewise.
	* predict.def: Likewise.
	* rtl.def: Likewise.
	* stab.def: Likewise.
	* stor-layout.c: Likewise.
	* tree.def: Likewise.
	* config/darwin.c: Likewise.
	* config/darwin.h: Likewise.
	* config/dbxcoff.h: Likewise.
	* config/elfos.h: Likewise.
	* config/fp-bit.c: Likewise.
	* config/freebsd-spec.h: Likewise.
	* config/interix.h: Likewise.
	* config/libgloss.h: Likewise.
	* config/linux-aout.h: Likewise.
	* config/linux.h: Likewise.
	* config/lynx-ng.h: Likewise.
	* config/lynx.h: Likewise.
	* config/netbsd-aout.h: Likewise.
	* config/netbsd.h: Likewise.
	* config/netware.h: Likewise.
	* config/psos.h: Likewise.
	* config/ptx4.h: Likewise.

2002-09-28  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog.4: Fix typos.
	* ChangeLog.6: Likewise.
	* FSFChangeLog.10: Likewise.
	* genattrtab.c: Fix comment typos.
	* haifa-sched.c: Likewise.
	* real.c: Likewise.
	* tree.h: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/crti.asm: Likewise.
	* config/arm/crtn.asm: Likewise.
	* config/frv/frv.c: Likewise.
	* config/frv/frv.md: Likewise.
	* config/h8300/h8300.md: Likewise.
	* config/i386/rtemself.h: Likewise.
	* config/ia64/unwind-ia64.c: Likewise.
	* config/ip2k/ip2k.h: Likewise.
	* config/m88k/m88k.c: Likewise.
	* config/m88k/m88k.md: Likewise.
	* config/mips/sr71k.md: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/sh/sh.md: Likewise.

2002-09-26  Theodore A. Roth  <troth@verinet.com>

	* config/avr/avr.c: Eliminate use of _PC_ in pc relative insns.
	* config/avr/avr.md: Ditto.

2002-09-27  Alexander N. Kabaev <ak03@gte.com>

	PR preprocessor/8055
	* cppmacro.c (stringify_arg): Do not overflow the buffer
	with the terminating NUL when the argument to be stringified
	has no tokens.

2002-09-27  Richard Henderson  <rth@redhat.com>

	* unroll.c (simplify_cmp_and_jump_insns): New.
	(unroll_loop): Use it.  Use simplify_gen_foo+force_operand
	instead of expand_simple_foo.

2002-09-27  Richard Henderson  <rth@redhat.com>

	PR optimization/7520
	* cfganal.c (flow_active_insn_p): New.
	(forwarder_block_p): Use it.

2002-09-27  Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (active_insn_p): Revert last change.

2002-09-27  Jakub Jelinek  <jakub@redhat.com>

	* doc/extend.texi (tls_model): Document.
	* varasm.c (decl_tls_model): New.
	* c-common.c (handle_tls_model_attribute): New.
	(c_common_attribute_table): Add tls_model.
	* config/alpha/alpha.c (alpha_encode_section_info): Use
	decl_tls_model.
	* flags.h (enum tls_model, flag_tls_default): Move...
	* tree.h (enum tls_model, flag_tls_default): ...here.
	(decl_tls_model): New prototype.
	* config/ia64/ia64.c (ia64_encode_section_info): Likewise.
	* config/i386/i386.c (ix86_encode_section_info): Likewise.
	* config/i386/i386.md (tls_global_dynamic, tls_local_dynamic_base):
	Allow !flag_pic.

2002-09-27  Kazu Hirata  <kazu@cs.umass.edu>

	* LANGUAGES: Follow spelling conventions.
	* rtl.def: Likewise.
	* sbitmap.c: Likewise.
	* sched-int.h: Likewise.
	* sched-rgn.c: Likewise.
	* sibcall.c: Likewise.
	* simplify-rtx.c: Likewise.
	* ssa.c: Likewise.
	* stab.def: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* target.h: Likewise.
	* timevar.c: Likewise.
	* toplev.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-inline.c: Likewise.
	* tree.c: Likewise.
	* tree.def: Likewise.
	* tree.h: Likewise.
	* unroll.c: Likewise.
	* varasm.c: Likewise.
	* vmsdbgout.c: Likewise.
	* treelang/treelang.texi: Likewise.
	* treelang/treetree.c: Likewise.

2002-09-27  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (compute_saved_regs): Use a macro
	instead of a hard register number.
	(get_shift_alg): Use an enumerated type instead of numbers.
	(h8300_shift_needs_scratch_p): Likewise.

2002-09-26  Kazu Hirata  <kazu@cs.umass.edu>

	* varasm.c (force_data_section): Remove.
	(assemble_constant_align): Likewise.
	* output.h: Remove corresponding prototypes.

2002-09-26  Roger Sayle  <roger@eyesopen.com>

	* stmt.c (expand_exit_loop_if_false): Expand a simple conditional
	jump, if the loop to exit is the top of the current nesting stack.

2002-09-26  Torbjorn Granlund  <tege@swox.com>

	* libgcc2.c (fixunsdfdi, fixunssfdi): Rewrite, avoiding `long long'
	arithmetic.

2002-09-26  David S. Miller  <davem@redhat.com>

	PR optimization/7335
	* calls.c (emit_library_call_value_1): Passing args by reference
	converts a CONST function into a PURE one.

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

	* dbxout.c (FORCE_TEXT): Switch to current_function_decl, not
	text_section.
	* xcoffout.h (DBX_STATIC_BLOCK_START): Remove explicit change to
	text section.
	* config/rs6000/rs6000.c (rs6000_override_options): Allow
	function-sections and data-sections functionality on AIX.

2002-09-26  David Edelsohn  <edelsohn@gnu.org>
	    Dale Johannesen  <dalej@apple.com>

	* config/rs6000/rs6000.c (rs6000_emit_move): Insert zero-extend
	in RTL for sub-word loads from memory.

2002-09-26  Richard Henderson  <rth@redhat.com>

	PR c/7160
	* sched-deps.c (sched_analyze_insn): Make clobber insns depend
	on call insns.

2002-09-26  Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (const_double_htab_eq): Remove unused variable.

2002-09-26  Chris Lattner  <sabre@nondot.org>

	* ssa.c (rename_insn_1): Handle RENAME_NO_RTX correctly when
	handling undefined values.

2002-09-26  Richard Henderson  <rth@redhat.com>

	PR opt/7520
	* emit-rtl.c (active_insn_p): Consider a clobber of the
	function return value to be active even after reload.

2002-09-27  Alan Modra  <amodra@bigpond.net.au>

	* doloop.c (doloop_modify_runtime <biv skips initial incr>): Adjust
	by absolute loop increment, not loop increment.

2002-09-26  Kazu Hirata  <kazu@cs.umass.edu>

	* c-common.h: Follow spelling conventions.
	* cpplex.c: Likewise.
	* cpplib.h: Likewise.
	* gthr-dce.h: Likewise.
	* gthr-posix.h: Likewise.
	* optabs.c: Likewise.
	* output.h: Likewise.
	* profile.c: Likewise.
	* protoize.c: Likewise.
	* ra-rewrite.c: Likewise.
	* real.c: Likewise.
	* recog.c: Likewise.
	* reg-stack.c: Likewise.
	* regclass.c: Likewise.
	* regmove.c: Likewise.
	* reload.c: Likewise.
	* reload.h: Likewise.
	* reload1.c: Likewise.
	* reorg.c: Likewise.
	* resource.c: Likewise.
	* rtl.h: Likewise.
	* rtlanal.c: Likewise.

2002-09-26  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.c (ia64_expand_load_address): Ensure correct mode
	for symbol address.

2002-09-24  Eric Christopher  <echristo@redhat.com>

	* config/mips/elf.h: Add HANDLE_SYSV_PRAGMA.
	* config/mips/elf64.h: Ditto.

2002-09-24  Eric Christopher  <echristo@redhat.com>

	* except.c (expand_builtin_extract_return_address): Handle case
	where Pmode != ptr_mode.

2002-09-26  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): New

2002-09-26  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (TARGET_DEFAULT): Include TARGET_ILP32.

2002-09-26  Igor Shevlyakov <igor@microunity.com>

	* combine.c (simplify_set): Don't call to force_to_mode if size
	of integer type is larger than HOST_BITS_PER_WIDE_INT.

2002-09-26  Janis Johnson  <janis187@us.ibm.com>

	* Makefile.in (qmtest-g++): Fix file path.

2002-09-26  Ulrich Weigand  <uweigand@de.ibm.com>

	* expr.c (expand_expr) [MINUS_EXPR]: Convert A - const to
	A + (-const) on RTX level, even for unsigned types.

2002-09-26  Ulrich Weigand  <uweigand@de.ibm.com>

	* reload.c (dup_replacements): New function.
	(find_reloads): Use it to duplicate replacements at the top level
	of match_dup operands.

2002-09-26  Miles Bader  <miles@gnu.org>

	* v850.md ("length"): Change default value to 4.

2002-09-26  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog.1: Follow spelling conventions.
	* ChangeLog.4: Likewise.
	* ChangeLog.6: Likewise.
	* FSFChangeLog.11: Likewise.
	* doc/cpp.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/tm.texi: Likewise.

2002-09-26  Nick Clifton  <nickc@redhat.com>

	* config.gcc: Add x prefix to v850e case for handling
	--with-cpu=v850e.

2002-09-25  Zack Weinberg  <zack@codesourcery.com>

	* gcc.c (input_suffix_matches, switch_matches,
	mark_matching_switches, process_marked_switches,
	process_brace_body): New functions - split from handle_braces.
	(handle_braces): Rewrite; handle %{S:X;T:Y;:D} syntax; accept
	and ignore whitespace in more places.
	(specs documentation comment): Document %{S:X;T:Y;:D}.
	Clarify other %{...} docs.
	* doc/invoke.texi: Document %{S:X;T:Y;:D}.  Clarify other
	%{...} docs.

	* config/arm/aof.h (LINK_SPEC): Change %{ov*,*} to %{ov*}.
	* config/rs6000/sysv4.h: Use N-way choice spec syntax.

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

	PR target/7842
	* config/sparc/sparc.c (set_extends): SImode ASHIFT does not
	extend.

2002-09-25  Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (const_double_htab_eq): Distinguish integer and
	fp CONST_DOUBLE; use real_identical.

2002-09-25  Mark Mitchell  <mark@codesourcery.com>

	* doc/invoke.texi: Add more -Wabi examples.

2002-09-25  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (TARGET_MIPS4100): Add missing bracket.

2002-09-24  Nathan Sidwell  <nathan@codesourcery.com>

	* profile.c (end_branch_prob): Only look for __gcov_init on
	weak-enabled native compilers.

2002-09-24  Denis Chertykov  <denisc@overta.ru>

	* config/ip2k/ip2k.c (function_epilogue): Fix wrong numbers in
	cases of optimizing "add sp,w" to "inc sp".

2002-09-24  Adam Nemet  <anemet@lnxw.com>

	* config/arm/arm.c (thumb_unexpanded_epilogue): Don't generate
	epilogue for naked functions.

2002-09-24  Adam Nemet  <anemet@lnxw.com>
	    Nick Clifton  <nickc@redhat.com>

	* config/arm/arm.h (THUMB_FUNCTION_PROFILER): Remove.
	(FUNCTION_PROFILER): Only invoke THUMB_FUNCTION_PROFILER if it
	is defined.

2002-09-24  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (preferred_la_operand_p): New function.
	* config/s390/s390-protos.h (preferred_la_operand_p): Declare it.
	* config/s390/s390.md ("addaddr_esame", "*la_ccclobber"): Replace by ...
	("*la_64_cc", "*la_31_cc", splitters): ... these.
	("*la_31"): Deactivate for TARGET_64BIT.
	("*la_31_and", "*la_31_and_cc"): New.

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

	* real.h (real_value): Make `exp' explicitly signed.

2002-09-24  Kazu Hirata  <kazu@cs.umass.edu>

	* config/elfos.h: Follow spelling conventions.
	* config/alpha/alpha.h: Likewise.
	* config/arc/arc.h: Likewise.
	* config/arm/arm.md: Likewise.
	* config/avr/avr.h: Likewise.
	* config/cris/cris.md: Likewise.
	* config/d30v/d30v.h: Likewise.
	* config/frv/frv.c: Likewise.
	* config/frv/frv.h: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/h8300.h: Likewise.
	* config/h8300/h8300.md: Likewise.
	* config/i386/cygwin.h: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i386/sysv3.h: Likewise.
	* config/i960/i960.h: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/ia64/ia64.md: Likewise.
	* config/ip2k/ip2k.h: Likewise.
	* config/m32r/m32r.h: Likewise.
	* config/m68k/m68k.h: Likewise.
	* config/m88k/m88k.h: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mcore/mcore.h: Likewise.
	* config/mcore/mcore.md: Likewise.
	* config/mips/mips.h: Likewise.
	* config/mmix/mmix.h: Likewise.
	* config/mmix/mmix.md: Likewise.
	* config/ns32k/netbsd.h: Likewise.
	* config/ns32k/ns32k.h: Likewise.
	* config/ns32k/ns32k.md: Likewise.
	* config/pa/pa.h: Likewise.
	* config/romp/romp.h: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/rs6000/rs6000.md: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/stormy16/stormy-abi: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* config/vax/vax.h: Likewise.

2002-09-23  Kazu Hirata  <kazu@cs.umass.edu>

	* config/alpha/alpha.h: Remove commented-out macro
	definitions of HAVE_{POST|PRE}_{INC|DEC}REMENT.
	* config/avr/avr.h: Likewise.
	* config/d30v/d30v.h: Likewise.
	* config/dsp16xx/dsp16xx.h: Likewise.
	* config/i370/i370.h: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i960/i960.h: Likewise.
	* config/m68k/m68k.h: Likewise.
	* config/m88k/m88k.h: Likewise.
	* config/mips/mips.h: Likewise.
	* config/ns32k/ns32k.h: Likewise.
	* config/pdp11/pdp11.h: Likewise.
	* config/romp/romp.h: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/s390/s390.h: Likewise.
	* config/sh/sh.h: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* config/vax/vax.h: Likewise.

2002-09-23  Kazu Hirata  <kazu@cs.umass.edu>

	* function.c (push_temp_slots_for_block): Remove.
	(push_temp_slots_for_target): Likewise.
	(get_target_temp_slot_level): Likewise.
	(set_target_temp_slot_level): Likewise.
	(get_first_block_beg): Likewise.
	* function.h: Remove corresponding prototypes.

2002-09-23  Zack Weinberg  <zack@codesourcery.com>

	* version.c (version_string): Now const char[].
	* version.h: Update to match.

2002-09-23  Richard Henderson  <rth@redhat.com>

	* config/i386/i386.h (MASK_ACCUMULATE_OUTGOING_ARGS_SET, MASK_MMX_SET,
	MASK_SSE_SET, MASK_SSE2_SET, MASK_3DNOW_SET, MASK_3DNOW_A_SET): Kill.
	(TARGET_SWITCHES): Don't reference them.
	* config/i386/i386.c (override_options): Use target_flags_explicit
	to examine bits set by the user.

2002-09-23  Dale Johannesen  <dalej@apple.com>

	* dbxout.c (dbxout_parms):  Set current_sym_code for params
	passed on stack by invisible reference.

2002-09-23  Richard Earnshaw  <rearnsha@arm.com>

	* arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Always allocate
	at least one byte of space.

2002-09-23  Mark Mitchell  <mark@codesourcery.com>

	* c-common.h (flag_abi_version): Fix typo in comment.
	* doc/invoke.texi (flag_abi_version): Document default value.

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

	* doc/extend.texi (Extended Asm): Clarify that overlap between
	asm-declared register variables used in an asm and the asm clobber
	list is not allowed.
	* stmt.c (decl_conflicts_with_clobbers_p): New function.
	(expand_asm_operands): Keep track of clobbered registers.  Call
	decl_conflicts_with_clobbers_p for each input and output operand.
	If no conflicts found before, also do conflict sanity check when
	emitting clobbers.

2002-09-23  Richard Henderson  <rth@redhat.com>

	* c-common.c (cpp_define_data_format): Remove.
	(cb_register_builtins): Don't define __WCHAR_BIT__, __SHRT_BIT__,
	__INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__,
	__DOUBLE_BIT__, __LONG_DOUBLE_BIT__.
	* doc/cpp.texi: Don't document them either.
	(__SCHAR_MAX__, __SHRT_MAX__, __INT_MAX__, __LONG_MAX__,
	__LONG_LONG_MAX__): Document.
	(__TARGET_FLOAT_FORMAT__): Remove.

2002-09-23  Richard Henderson  <rth@redhat.com>

	* real.c (do_multiply): Normalize U before addition.

2002-09-23  Mark Mitchell  <mark@codesourcery.com>

	* c-common.c (flag_abi_version): New variable.
	* c-common.h (flag_abi_version): Declare it.
	* c-opts.c (missing_arg): Add -fabi-version.
	(c_common_decode_option): Process -fabi-version.
	* doc/invoke.texi (-fabi-version): Document it.
	(-Wabi): Add information about bit-fields in unions.

2002-09-22  Roger Sayle  <roger@eyesopen.com>

	* expr.c (STORE_BY_PIECES_P): New target macro.
	(can_store_by_pieces, store_by_pieces): Use STORE_BY_PIECES_P
	instead of MOVE_BY_PIECES_P.
	* doc/tm.texi: Document this new macro.

2002-09-22  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/mips/netbsd.h (SUBTARGET_ASM_SPEC): Always pass -KPIC
	unless -fno-pic or -fno-PIC is specified.

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

	* c-common.c (preprocessing_trad_p): Define.
	* pa-hiux.h, pa-hpux.h, pa-hpux7.h (CPP_PREDEFINES): Delete.
	(TARGET_OS_CPP_BUILTINS, SUBTARGET_SWITCHES): Define.
	* pa-hpux10.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC): Define.
	* pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define.
	* pa-linux.h (CPP_PREDEFINES): Delete.
	(TARGET_OS_CPP_BUILTINS, CPP_SPEC): Define.
	* pa32-linux.h, pa64-linux.h (CPP_SPEC): Delete.
	* pa-osf.h, pa-pro-end.h, rtems.h (CPP_PREDEFINES): Delete.
	(TARGET_OS_CPP_BUILTINS): Define.
	* pa.h (MASK_SIO, TARGET_SIO, TARGET_PA_10): Define.
	(TARGET_SWITCHES): Reformat.  Use N_() macro.  Add SUBTARGET_SWITCHES.
	(SUBTARGET_SWITCHES): Provide default definition.
	(TARGET_OPTIONS): Reformat.  Use N_() macro.
	(CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC, CPP_64BIT_SPEC,
	CPP_CPU_DEFAULT_SPEC, CPP_64BIT_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS,
	EXTRA_SPECS, CPP_SPEC, CPLUSPLUS_CPP_SPEC, CPP_PREDEFINES): Delete.
	(TARGET_CPU_CPP_BUILTINS): Define.
	(TARGET_OS_CPP_BUILTINS): Define for BSD-like systems.
	* doc/invoke.texi (msio, mwsio): Document new hppa options.
	* doc/tm.texi (TARGET_CPU_CPP_BUILTINS): Document macro
	preprocessing_trad_p().

2002-09-22  Jason Thorpe  <thorpej@wasabisystems.com>

	* doc/install.texi: Document behavior of --with-headers and
	--with-libs when arguments are omitted.

2002-09-22  Kazu Hirata  <kazu@cs.umass.edu>

	* dbxout.c: Follow spelling conventions.
	* defaults.h: Likewise.
	* df.c: Likewise.
	* diagnostic.h: Likewise.
	* doloop.c: Likewise.
	* dwarf2out.c: Likewise.
	* dwarfout.c: Likewise.
	* emit-rtl.c: Likewise.
	* except.c: Likewise.
	* explow.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* expr.h: Likewise.
	* flags.h: Likewise.
	* flow.c: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.
	* function.h: Likewise.
	* gcc.c: Likewise.
	* gcov-io.h: Likewise.
	* gcov.c: Likewise.
	* gcse.c: Likewise.
	* genattrtab.c: Likewise.
	* genconfig.c: Likewise.
	* genrecog.c: Likewise.
	* ggc-page.c: Likewise.
	* ggc.h: Likewise.
	* global.c: Likewise.
	* gthr-win32.h: Likewise.
	* integrate.c: Likewise.
	* jump.c: Likewise.
	* langhooks.c: Likewise.
	* langhooks.h: Likewise.
	* line-map.h: Likewise.
	* local-alloc.c: Likewise.
	* longlong.h: Likewise.
	* loop.c: Likewise.
	* loop.h: Likewise.

Tue Aug 27 22:26:35 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.h (BIGGEST_FIELD_ALIGNMENT): Set proper default for x86_64.

Tue Aug 27 20:07:01 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (overwrite_options): Set -mpreferred-stack-boundary to 128
	for -Os/TARGET_64BIT too.

2002-09-21  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog: Follow spelling conventions.
	* ChangeLog.0: Likewise.
	* ChangeLog.1: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.3: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* ChangeLog.6: Likewise.
	* FSFChangeLog.10: Likewise.
	* FSFChangeLog.11: Likewise.
	* alias.c: Likewise.
	* basic-block.h: Likewise.
	* c-aux-info.c: Likewise.
	* c-common.c: Likewise.
	* c-common.h: Likewise.
	* c-decl.c: Likewise.
	* c-format.c: Likewise.
	* c-semantics.c: Likewise.
	* c-typeck.c: Likewise.
	* calls.c: Likewise.
	* cfganal.c: Likewise.
	* cfgloop.c: Likewise.
	* collect2.c: Likewise.
	* combine.c: Likewise.
	* conflict.c: Likewise.
	* cppexp.c: Likewise.
	* cppfiles.c: Likewise.
	* cpphash.h: Likewise.
	* cppinit.c: Likewise.
	* cpplex.c: Likewise.
	* cpplib.c: Likewise.
	* cpplib.h: Likewise.
	* cppmacro.c: Likewise.
	* cse.c: Likewise.

2002-09-21  Richard Earnshaw  <rearnsha@arm.com>

	* netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): New, takes old definition of
	LINK_SPEC.
	(LINK_SPEC): Define to NETBSD_LINK_SPEC_AOUT.
	* arm/netbsd.h (SUBTARGET_EXTRA_SEPCS): Add NETBSD_LINK_SPEC_AOUT.
	(LINK_SPEC): Rework to use NETBSD_LINK_SPEC_AOUT).

2002-09-21  Richard Earnshaw  <rearnsha@arm.com>

	PR opt/7930
	* cse.c (fold_rtx): Calculate old_cost before we fold each
	operand.

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

	* c-common.c (cpp_define_data_format): Remove __GCC_LITTLE_ENDIAN__,
	__GCC_BIG_ENDIAN__, __TARGET_BITS_ORDER__, __TARGET_BYTES_ORDER__,
	__TARGET_INT_WORDS_ORDER__, __TARGET_FLOAT_WORDS_ORDER__,
	__TARGET_USES_VAX_F_FLOAT__, __TARGET_USES_VAX_D_FLOAT__,
	__TARGET_USES_VAX_G_FLOAT__, __TARGET_USES_VAX_H_FLOAT__.
	* doc/cpp.texi: Don't document them.

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

	* c-common.c (builtin_define_float_constants): Use real_format
	to get the floating-point parameters.

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

	* real.c (struct real_format): Move to real.h.
	(real_format_for_mode): Rename from fmt_for_mode; update all users;
	initialize with ieee defaults.
	(real_to_target_fmt, real_from_target_fmt): New.
	(ieee_single_format, ieee_double_format, ieee_extended_motorola_format,
	ieee_extended_intel_96_format, ieee_extended_intel_128_format,
	ieee_quad_format, i370_single_format, i370_double_format,
	c4x_single_format, c4x_extended_format): Rename from s/_format//.
	(ieee_quad_format): Fix emin.
	(format_for_size, init_real_once): Remove.
	* real.h (struct real_format): Move from real.c.
	(real_format_for_mode): Declare.
	(real_to_target_fmt, real_from_target_fmt): Declare.
	(ieee_single_format, ieee_double_format, ieee_extended_motorola_format,
	ieee_extended_intel_96_format, ieee_extended_intel_128_format,
	ieee_quad_format, vax_f_format, vax_d_format, vax_g_format,
	i370_single_format, i370_double_format, c4x_single_format,
	c4x_extended_format): Declare.
	* toplev.c (do_compile): Don't call init_real_once.

	* defaults.h (INTEL_EXTENDED_IEEE_FORMAT): Remove.
	* doc/tm.texi (INTEL_EXTENDED_IEEE_FORMAT): Remove.

	* config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Define.
	* config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): 64, if vax mode.
	* config/alpha/alpha.c (override_options): Set real_format_for_mode
	for VAX, if enabled.

	* config/c4x/c4x.c (c4x_override_options): Set real_format_for_mode
	for C4X.

	* config/i370/i370.h (OVERRIDE_OPTIONS): New.
	* config/i370/i370.c (override_options): New.
	* config/i370/i370-protos.h: Update.

	* config/i386/i386.c (override_options): Set real_format_for_mode
	for Intel 80-bit extended.
	* config/i386/i386.h (INTEL_EXTENDED_IEEE_FORMAT): Remove.

	* config/i960/i960.h (LONG_DOUBLE_TYPE_SIZE): Mind -mlong-double-64.
	(OVERRIDE_OPTIONS): Move code...
	* config/i960/i960.c (i960_initialize): ... here.  Set
	real_format_for_mode for Intel 80-bit extended.

	* config/ia64/ia64.c (ia64_override_options): Set real_format_for_mode
	for Intel 80-bit extended, if enabled.

	* config/m68k/m68k.c (override_options): Set real_format_for_mode
	for Motorola 96-bit extended.

	* config/vax/vax.h (OVERRIDE_OPTIONS): New.
	* config/vax/vax.c (override_options): New.
	* config/vax/vax-protos.h: Update.

2002-09-21  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md (builtin_setjmp_receiver): Add
	#if TARGET_MACHO.

	* config/rs6000/rs6000.md (floatdisf2_internal2): Combine
	insns.  Supply missing clobber of scratch reg.

2002-09-20  Kazu Hirata  <kazu@cs.umass.edu>

	* config/m32r/m32r.c: Follow spelling conventions.
	* config/m32r/m32r.h: Likewise.
	* config/m32r/m32r.md: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/m88k/m88k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mips/mips.h: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/mn10200/mn10200.c: Likewise.
	* config/ns32k/ns32k.h: Likewise.
	* config/pa/pa.c: Likewise.
	* config/pa/pa64-linux.h: Likewise.
	* config/pdp11/pdp11.h: Likewise.
	* config/romp/romp.c: Likewise.
	* config/romp/romp.h: Likewise.
	* config/rs6000/eabi.asm: Likewise.
	* config/rs6000/linux64.h: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/rs6000/rs6000.md: Likewise.
	* config/rs6000/sysv4.h: Likewise.
	* config/rs6000/xcoff.h: Likewise.

2002-09-20  Jim Wilson  <wilson@redhat.com>

	* config/v850/v850/lib1funcs.asm (__muldi3): Change r5 to r28.

2002-09-20  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.md (UNSPEC_GOTNTPOFF, UNSPEC_INDNTPOFF): New.
	* config/i386/i386.c (legitimate_pic_address_disp_p): Handle
	UNSPEC_GOTNTPOFF and UNSPEC_INDNTPOFF like UNSPEC_GOTTPOFF.
	(legitimate_address_p): Likewise.
	(legitimize_address): Use @gotntpoff and @indntpoff.
	(output_pic_addr_const): Handle UNSPEC_GOTNTPOFF and UNSPEC_INDNTPOFF.
	(output_addr_const_extra): Likewise.

2002-09-20  Jim Wilson  <wilson@redhat.com>

	* combine.c (try_combine): When split an instruction pair, where the
	first has a sign_extend src, verify that the src and dest modes match.

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

	* config/mips/mips.c (dfhigh, dflow, sfhigh, sflow): Remove.
	(override_options): Do not initialize them.
	(mips_const_double_ok): Allow no fp constants except zero,
	and not even that for mips16.
	(const_float_1_operand): Use dconst1.
	* config/mips/mips.md (movsf, movsf_internal1, movsf_internal2,
	movdf, movdf_internal1, movdf_internal1a, movdf_internal2):
	Don't allow arbitrary constants; fix predicates and C constraint.

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

	* cppmacro.c: Don't warn about function-like macros without
	'(' during pre-expansion.

2002-09-20  Jim Wilson  <wilson@redhat.com>

	* config/v850/v850.c (current_function_anonymous_args): Delete.
	(expand_prologue): Use current_function_args_info.anonymous_args.
	(expand_epilogue): Delete use of current_function_anonymous_args.
	* config/v850/v850.h (struct cum_arg): Add anonymous_args field.
	(INIT_CUMULATIVE_ARGS): Clear anonymous_args field.
	(current_function_anonymous_args): Delete extern declaration.
	(SETUP_INCOMING_VARARGS): Set anonymous_args field.

2002-09-20  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Update for change
	to load_macho_picbase.
	* config/rs6000/rs6000.md: Document Darwin-specific unspec IDs.
	(load_macho_picbase): Take the symbol to use as a parameter.
	(macho_correct_pic): New insn.
	(builtin_setjmp_reciever): On Darwin, restore the PIC register.

	* config/rs6000/rs6000.h (ELIMINABLE_REGS): Use
	RS6000_PIC_OFFSET_TABLE_REGNUM rather than hardcoding 30.
	(CAN_ELIMINATE): Likewise.
	(INITIAL_ELIMINATION_OFFSET): Likewise.
	(TOC_REGISTER): Likewise.

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

	* real.c (real_hash): New.
	* real.h: Declare it.
	* cse.c (canon_hash): Use it.
	* cselib.c (hash_rtx): Likewise.
	* emit-rtl.c (const_double_htab_hash): Likewise.
	* rtl.h (CONST_DOUBLE_REAL_VALUE): New.
	* varasm.c (struct rtx_const): Reduce vector size; separate
	integer and fp vectors.
	(HASHBITS): Remove.
	(const_hash_1): Rename from const_hash.  Use real_hash.  Do not
	take modulus MAX_HASH_TABLE.
	(const_hash): New.  Do take modulus MAX_HASH_TABLE.
	(output_constant_def): Do not take modulus MAX_HASH_TABLE.
	(SYMHASH): Don't use HASHBITS.
	(decode_rtx_const): Copy only active bits from REAL_VALUE_TYPE.
	Fix CONST_VECTOR thinko wrt fp vectors.  Fix kind comparison.
	(simplify_subtraction): Fix kind comparison.
	(const_hash_rtx): Return unsigned int.  Don't use HASHBITS.
	Use a union to pun integer array.
	* config/rs6000/rs6000.c (rs6000_hash_constant): Use real_hash;
	only hash two words of integral CONST_DOUBLE.

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

	* config/ia64/hpux.h (STARTFILE_SPEC): Modify.
	(STARTFILE_PREFIX_SPEC): New.
	(LINK_SPEC): Modify.
	(LIB_SPEC): Modify.
	(LIBGCC_SPEC): New.

2002-09-20  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (legitimate_pic_address_disp_p): Allow
	UNSPEC_NTPOFF and UNSPEC_DTPOFF to be offsetted by constant.

2002-09-20  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>

	* config/arm/arm.md (sign_extract_onebit, not_signextract_onebit):
	Add clobber of the condition code register.

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

	* real.c (do_fix_trunc): Static.
	(encode_ieee_single, encode_ieee_double, encode_ieee_extended,
	encode_ieee_quad, encode_vax_f, encode_vax_d, encode_vax_g,
	encode_i370_single, encode_i370_double, encode_c4x_single,
	encode_c4x_extended): Add default abort case.

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

	* real.h (enum real_value_class, SIGNIFICAND_BITS, EXP_BITS,
	MAX_EXP, SIGSZ, SIG_MSB, struct real_value): Move from real.c.
	(struct realvaluetype): Remove.
	(REAL_VALUE_TYPE): Use struct real_value.
	(REAL_VALUE_TYPE_SIZE): Use SIGNIFICAND_BITS.
	(test_real_width): New.
	* real.c: Global replace struct real_value with REAL_VALUE_TYPE.
	(real_arithmetic): Avoid hoops for REAL_VALUE_TYPE parameters.
	(real_compare, real_exponent, real_ldexp, real_isinf, real_isnan,
	real_isneg, real_isnegzero, real_identical, exact_real_inverse,
	real_to_integer, real_to_integer2, real_to_decimal,
	real_to_hexadecimal, real_from_string, real_from_integer,
	real_inf, real_nan, real_2expN, real_convert, real_to_target,
	real_from_target): Likewise.
	* tree.h (struct tree_real_cst): Use real_value not realvaluetype.
	* gengtype-yacc.y (bitfieldopt): Accept an ID as well.

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

	* real.h (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT,
	IBM_FLOAT_FORMAT, C4X_FLOAT_FORMAT, TARGET_FLOAT_FORMAT): Move ...
	* defaults.h: ... here.
	* config/arm/arm.h, config/avr/avr.h, config/d30v/d30v.h,
	config/fr30/fr30.h, config/frv/frv.h, config/ia64/ia64.h,
	config/ip2k/ip2k.h, config/mips/mips.h, config/stormy16/stormy16.h,
	config/xtensa/xtensa.h (TARGET_FLOAT_FORMAT): Remove.

2002-09-20  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.md ("negdf2"): Rewrite.
	("*expanded_negdf2"): New.

2002-09-19  Jim Wilson  <wilson@redhat.com>

	* combine.c (simplify_set): When optimizing a subreg src with a
	cc0 dest, use GET_MODE (src) for mask instead of inner_mode.

2002-09-19  Dale Johannesen <dalej@apple.com>
	* combine.c (make_extraction): Don't create
	invalid subreg.

2002-09-19  Roger Sayle  <roger@eyesopen.com>

	* tree.c (integer_nonzerop): New predicate for nonzero integers.
	* tree.h (integer_nonzerop): Add function prototype.
	* stmt.c (expand_end_loop):  Don't rotate the loop when there
	are no instructions in the test, i.e. the loop is unconditional.
	(expand_exit_loop_if_false):  Optimize RTL generation of loop
	tests when the condition is always true or always false.
	* c-semantics.c (genrtl_do_stmt):  Optimize RTL generation of
	do-loops when the condition is always true.
	(genrtl_for_stmt):  Optimize RTL generation of for-loops when
	the for-expression is empty.

2002-09-19  Zack Weinberg  <zack@codesourcery.com>

	* gcc.c (use_pipes): New flag.
	(process_command): Set it.  Adjust check for -pipe conflicting
	with -time or -save-temps.
	(do_spec_1): Use it.  Handle %|SUFFIX, %mSUFFIX, and
	%<SWITCH.  Drop %| (without a SUFFIX).
	(handle_braces): Drop %{<SWITCH}, %{^SWITCH}, %{|...}.
	(give_switch): Third argument eliminated.
	(invoke_as, @assembler_with_cpp spec): Use %|.s or %m.s
	depending on AS_NEEDS_DASH_FOR_PIPED_INPUT.
	(specs documentation comment): Update.

	* config/netbsd-aout.h, config/openbsd.h, config/ptx4.h,
	config/svr4.h, config/i386/freebsd-aout.h,
	config/m68k/netbsd-elf.h, config/m68k/netbsd.h,
	config/m68k/openbsd.h, config/mips/openbsd.h,
	config/sparc/sparc.h: Define AS_NEEDS_DASH_FOR_PIPED_INPUT
	instead of putting %| into ASM_SPEC and/or ASM_FINAL_SPEC.
	* config/avr/avr.h: Delete do-nothing ASM_FINAL_SPEC.
	* config/cris/cris.h: Update comment.

	* ada/lang-specs.h: Use %(invoke_as).  Straighten out
	error messages.  Don't use %{^SWITCH}.
	* ada/misc.c (gnat_decode_option): Handle -I with a
	separate argument.

	* f/lang-specs.h: Use %| and %m.
	* java/jvspec.c: Use %m and %(invoke_as).  Change all
	uses of %{<SWITCH} to %<SWITCH.

	* doc/invoke.texi: Update documentation of specs.
	* doc/tm.texi: Document AS_NEEDS_DASH_FOR_PIPED_INPUT.

2002-09-19  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (addr_generation_dependency_p): Handle SUBREG
	and STRICT_LOW_PART within SET_DEST.
	* config/s390/s390.md ("*extractqi", "*extracthi"): New insns with
	splitters, replacing pre-reload splitters.
	("*zero_extendhisi2_31", "*zero_extendqisi2_31",
	"*zero_extendqihi2_31"): New insns.
	("*zero_extendqihi2_64"): Do not clobber CC.

2002-09-18  Devang Patel  <dpatel@apple.com>

	* cp/cp-tree.h: New prototype for walk_vtables().
	* cp/decl.c (walk_vtables_r): New function.
	(struct cp_binding_level): Add new members, namespaces,
	names_size and vtables.
	(add_decl_to_level): Add decl in namespaces or vtables
	chain, if conditions match.
	(walk_vtables): New function.
	(walk_namespaces_r): Travers separate namespace chain
	for namespace decls.
	(wrapup_globals_for_namespace): Use names_size instead
	of list_length().
	* cp/decl2.c (finish_file): Use walk_vtables() instead of
	walk_globals() to walk vtable decls.

2002-09-19  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/hpux.h (CTORS_SECTION_ASM_OP): New.
	(DTORS_SECTION_ASM_OP): Ditto.
	(READONLY_DATA_SECTION_ASM_OP): Moved.
	(DATA_SECTION_ASM_OP): New.
	(SDATA_SECTION_ASM_OP): New.
	(BSS_SECTION_ASM_OP): New.
	(SBSS_SECTION_ASM_OP): New.
	(TEXT_SECTION_ASM_OP): New.

2002-09-19  Kazu Hirata  <kazu@cs.umass.edu>

	* config/fp-bit.c: Follow spelling conventions.
	* config/d30v/d30v.c: Likewise.
	* config/d30v/d30v.h: Likewise.
	* config/fr30/fr30.c: Likewise.
	* config/fr30/fr30.h: Likewise.
	* config/fr30/fr30.md: Likewise.
	* config/frv/frv.c: Likewise.
	* config/frv/frv.h: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/lib1funcs.asm: Likewise.
	* config/i370/i370.c: Likewise.
	* config/i386/i386.h: Likewise.
	* config/i386/i386.md: Likewise.
	* config/i386/pentium.md: Likewise.
	* config/i386/winnt.c: Likewise.
	* config/i960/i960.c: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/ip2k/ip2k.c: Likewise.
	* config/ip2k/ip2k.h: Likewise.
	* config/ip2k/ip2k.md: Likewise.
	* config/ip2k/libgcc.S: Likewise.

2002-09-19  Stephen Clarke <stephen.clarke@superh.com>

	* config/sh/sh.h (UNSPEC_GOTOFF_P): Define.
	(GOTOFF_P): Extend to allow gotoff plus constant.

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

	* ifcvt.c (noce_process_if_block): Correctly detect X modified
	with INSN_B before COND_EARLIEST.  Don't check A and B for
	modification in condition range.  Reorder INSN_B for A==B properly.
	(if_convert): Iterate until no matches for a block.

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

	* calls.c (store_one_arg): Rename default_align to parm_align;
	always adjust parm_align for downward padding.

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

	* toplev.c (backend_init): Move init_real_once invocation ...
	(do_compile): ... here.

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

	* sibcall.c (optimize_sibling_and_tail_recursive_call): Also remove
	RTX_UNCHANGING_P markers for successful tail-recursive replacement.

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

	* real.c (round_for_format): Collect sticky as unsigned long, not bool.

2002-09-19  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md: (floatdisf2): Rename to
	floatdisf2_internal1.
	(floatdisf2): New define_expand.
	(floatdisf2_internal2): Likewise.

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

	* real.c (sticky_rshift_significand): Collect sticky as
	unsigned long, not bool.

2002-09-18  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_address_cost): New function.
	config/s390/s390-protos.h (s390_address_cost): Add prototype.
	config/s390/s390.h (ADDRESS_COST): Call s390_address_cost.
	(RTX_COST): Use COSTS_N_INSNS.

2002-09-18  Douglas Rupp  <rupp@gnat.com>
	    Donn Terry  <donnte@microsoft.com>

	* stor-layout.c (place_field): Handle alignment of whole
	structures when MSVC compatible bitfields are involved.
	Change method of computing location of MS bitfields to
	be compatible with #pragma pack(n).

	* tree.h (record_layout_info): Add new field
	remaining_in_alignment.

	* doc/tm.texi: (TARGET_MS_BITFIELD_LAYOUT_P): Update.
	(pragma pack): Add paragraph on MSVC bitfield packing.

2002-09-18  Richard Earnshaw  (reanrsha@arm.com)

	PR optimization/7967
	* arm.md (ne_zeroextractsi): Add clobber of the condition code
	register.

2002-09-18  Kazu Hirata  <kazu@cs.umass.edu>

	* config/s390/s390.c: Follow spelling conventions.
	* config/sh/lib1funcs.asm: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/sh.h: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/sparc/sparc.md: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* config/v850/v850.c: Likewise.
	* config/v850/v850.h: Likewise.
	* config/vax/vax.c: Likewise.
	* config/vax/vax.h: Likewise.

2002-09-18  Nick Clifton  <nickc@redhat.com>

	* config/rs60000/rs6000.c (rs6000_emit_move): Handle V1DImode moves.
	* config/rs60000/rs6000.c (SPE_VECTOR_MODE): Include V1DImode.
	* config/rs6000/spe.md (movv1di, movv1di_internal): New patterns.

2002-09-17  Kazu Hirata  <kazu@cs.umass.edu>

	* function.c (max_parm_reg_num): Remove.
	* stmt.c (in_control_zone_p, stmt_loop_nest_empty,
	drop_through_at_end_p, move_cleanups_up,
	expand_end_case_dummy, case_index_expr_type): Likewise.
	* stor-layout.c (pos_from_byte): Likewise.
	* tree.c (chain_member_value, chain_member_purpose, listify,
	tree_int_cst_msb, index_type_equal): Likewise.
	* tree.h: Remove prototypes for unused functions.

2002-09-17  Zack Weinberg  <zack@codesourcery.com>

	* ABOUT-GCC-NLS: Remove reference to enquire, and out-of-date
	statement that the only translation is to en_UK.

2002-09-17  Kazu Hirata  <kazu@cs.umass.edu>

	* config/alpha/alpha.c: Follow spelling conventions.
	* config/alpha/alpha.h: Likewise.
	* config/alpha/alpha.md: Likewise.
	* config/arc/arc.h: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/arm.h: Likewise.
	* config/arm/arm.md: Likewise.
	* config/arm/pe.c: Likewise.
	* config/arm/unknown-elf.h: Likewise.
	* config/avr/avr.c: Likewise.
	* config/avr/avr.h: Likewise.
	* config/c4x/c4x.c: Likewise.
	* config/cris/cris.c: Likewise.
	* config/cris/cris.h: Likewise.

2002-09-17  Samuel Figueroa  <figueroa@apple.com>

	* final.c (final_scan_insn): Use new macro ASM_OUTPUT_ALIGN_WITH_NOP.
	* config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP) New macro.
	* doc/tm.texi (ASM_OUTPUT_ALIGN_WITH_NOP) New description.

2002-09-17  Dale Johannesen  <dalej@apple.com>

	* cfgcleanup.c (try_forward_edges):  Do not forward a
	branch to just after a loop exit before loop optimization;
	this interfered with doloop detection.

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

	* config/arm/arm.c (output_return_instruction): Do not
	writeback the stack pointer when it is being loaded.
	(arm_output_epilogue): Likewise.

2002-09-17  Kazu Hirata  <kazu@cs.umass.edu>

	* optabs.c (prepare_cmp_insn): Let emit_library_call_value
	generate a pseudo reg that receives the result of a libcall.
	(prepare_float_lib_cmp): Likewise.

2002-09-17  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/elf.h: Remove CPP_PREDEFINES.

Tue Sep 17 13:58:04 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	Fix PR/7014 and related objc bugs:
	* c-typeck.c (comp_target_types): Added a reflexive argument.
	Pass it to ObjC when/if calling objc_comptypes().  Updated all
	callers to provide the appropriate reflexive argument.
	* objc/objc-act.c (objc_comptypes): Carefully checked and fixed
	typechecking for all cases of comparisons and assignments,
	particularly the obscure and less common ones involving protocols.

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

	* machmode.def (V1DImode): New mode.  A single element vector.
	* tree.h (TI_UV1DI_TYPE, TI_V1DI_TYPE): New tree_index enums.
	(unsigned_V1DI_type_node, V1D1_type_node): New type nodes.
	* tree.c (build_common_tree_nodes_2): Build
	unsigned_V1DI_type_node and V1D1_type_node.
	* c-common.c (c_common_type_for_mode): Return
	unsigned_V1DI_type_node or V1D1_type_node for V1DImode.
	* rtl.c (class_narrowest_): Start integer vector nodes with V1DImode.

Tue Sep 17 13:40:13 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	* doc/objc.texi (Constant string objects): Extended documentation
	to make clear that the constant string class ivar layout is
	completely fixed.

2002-09-17  Roger Sayle  <roger@eyesopen.com>

	* cfgrtl.c (flow_delete_block_noexpunge): Delete orphaned
	NOTE_INSN_LOOP_CONT notes when deleting basic blocks.

2002-09-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* config/mips/mips.c (save_restore_insns): Remove unused variable.
	* gcc.c (make_relative_prefix): Likewise.
	* loop.c (check_final_value): Likewise.
	* jump.c (init_label_info): Remove return value.
	* cse.c (prev_insn): Move variable between #ifdef HAVE_cc0 ... #endif.

2002-09-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* dsp16xx.h (ASM_FORMAT_PRIVATE_NAME): Delete.
	(ASM_PN_FORMAT): Define.

2002-09-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alpha.h, alpha/vms.h, arc.h, arm/aof.h, arm/aout.h, avr.h,
	c4x.h, cris.h, d30v.h, fr30.h, frv.h, h8300.h, i370.h, i386.h,
	i960.h, ia64.h, ip2k.h, m32r.h, m68hc11.h, m68k/3b1.h,
	m68k/hp320.h, m68k.h, m68k/mot3300.h, m68k/sgs.h, m68k/tower-as.h,
	m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
	pa.h, pdp11.h, romp.h, rs6000.h, s390/linux.h, sh.h, sparc.h,
	stormy16.h, v850.h, vax.h, xtensa.h (ASM_FORMAT_PRIVATE_NAME):
	Delete.
	* alpha/vms.h, h8300.h, i370.h, ia64.h, m68k/3b1.h, m68k/hp320.h,
	m68k/mot3300.h, m68k/sgs.h, m68k/tower-as.h, mmix.h, mn10200.h,
	mn10300.h, pa.h, v850.h (ASM_PN_FORMAT): Define.

	* defaults.h (ASM_PN_FORMAT, ASM_FORMAT_PRIVATE_NAME): Define.
	* doc/tm.texi (ASM_FORMAT_PRIVATE_NAME): Update documentation.

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

	* expr.c (emit_block_move): Set memory block size as appropriate
	for the copy.

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

	PR fortran/3924
	* sdbout.c (sdbout_symbol): Don't handle offsets from a symbol.

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

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust SIZE
	as well as OFFSET for BITPOS.

2002-09-16  Jeff Garzik  <jgarzik@mandrakesoft.com>

	* config.gcc: Treat winchip_c6-*|winchip2-*|c3-* as pentium-mmx.
	* config/i386/i386.c (processor_alias_table): Add winchip-c6,
	winchip2 and c3.
	* doc/invoke.texi: Mention new aliases.

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

	* calls.c (store_one_arg): Set default alignment for BLKmode arguments
	to BITS_PER_UNIT when ARGS_GROW_DOWNWARD and the padding direction is
	downward.
	* function.c (pad_below):  Always compile.
	(locate_and_pad_parm): If defined ARGS_GROW_DOWNWARD, pad argument to
	alignment when it is not in a register or REG_PARM_STACK_SPACE is true.
	Pad below when the argument is not in a register and the padding
	direction is downward.

	* pa-64.h (MUST_PASS_IN_STACK): Move define to pa.h.
	(PAD_VARARGS_DOWN): Define.
	* pa.c (function_arg_padding): Revise padding directions to make them
	compatible with the 32 and 64-bit runtime architecture documentation.
	(hppa_va_arg):  Add code to handle variable and size zero arguments
	passed by reference on TARGET_64BIT.  Reformat.
	(function_arg): Use a PARALLEL for BLKmode and aggregates args on
	TARGET_64BIT.  Use a DImode PARALLEL for BLKmode args 5 to 8 bytes
	wide when !TARGET_64BIT.  Move forward check for mode==VOIDmode.
	Add comments.
	* pa.h (MAX_PARM_BOUNDARY): Correct define for TARGET_64BIT.
	(RETURN_IN_MEMORY): Return size zero types in memory.
	(FUNCTION_VALUE): Return TFmode in general registers.
	(MUST_PASS_IN_STACK): Define.
	(FUNCTION_ARG_BOUNDARY): Simplify.
	(FUNCTION_ARG_PASS_BY_REFERENCE): Pass variable and zero sized types
	by reference.
	(FUNCTION_ARG_CALLEE_COPIES): Define to FUNCTION_ARG_PASS_BY_REFERENCE.

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

	* real.c (do_fix_trunc): New.
	(real_arithmetic): Call it.
	* simplify-rtx.c (simplify_unary_operation): Handle FIX
	with a floating-point result mode.

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

	* builtin-types.def (BT_FN_FLOAT_CONST_STRING): New.
	(BT_FN_DOUBLE_CONST_STRING, BT_FN_LONG_DOUBLE_CONST_STRING): New.
	* builtins.def (__builtin_nan, __builtin_nanf, __builtin_nanl): New.
	(__builtin_nans, __builtin_nansf, __builtin_nansl): New.
	* builtins.c (fold_builtin_nan): New.
	(fold_builtin): Call it.
	* real.c (real_nan): Parse a non-empty string.
	(round_for_format): Fix NaN significand truncation.
	* real.h (real_nan): Return bool.
	* doc/extend.texi: Document new builtins.

2002-09-16  Jason Merrill  <jason@redhat.com>
	    Danny Smith  <dannysmith@users.sourceforge.net>

	* config/i386/winnt.c (ix86_handle_dll_attribute): Set
	DECL_EXTERN and TREE_PUBLIC for dllimported variables here...
	(i386_pe_mark_dllimport): Not here.

2002-09-16  Nathan Sidwell  <nathan@codesourcery.com>

	* c-semantics.c (genrtl_do_stmt): Cope with NULL cond.

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

	* config/rs6000/rs6000.c (build_mask64_2_operands): Suppress
	warnings about unused operands when HOST_BITS_PER_WIDE_INT is
	< 64.
	(rs6000_emit_cmove): Use real_isinf not target_isinf.

2002-09-16  Kazu Hirata  <kazu@cs.umass.edu>

	* calls.c (emit_library_call_value_1): Don't refer to
	hard_libcall_value.
	* optabs.c (prepare_float_lib_cmp): Likewise.

2002-09-16  Geoffrey Keating  <geoffk@apple.com>

	* ggc-common.c (ggc_mark_rtx_children_1): Update for changed name
	mangling.

	The following changes are merged from pch-branch:

	* doc/gty.texi (GTY Options): Document %a.
	* gengtype.c (do_scalar_typedef): New function.
	(process_gc_options): Handle `length' option.
	(set_gc_used_type): A pointer to an array of structures doesn't
	qualify as a pointer to a structure.
	(output_escaped_param): Add `%a' escape.
	(write_gc_structure_fields): Allow 'desc' on array of unions.
	(main): Define `uint8', `jword' and `JCF_u2' as scalars; use
	do_scalar_typedef.

	* gengtype.c (enum rtx_code): Make global.
	(rtx_format): Make global.
	(rtx_next): New.
	(gen_rtx_next): New.
	(write_rtx_next): New.
	(adjust_field_rtx_def): Skip fields marked by chain_next.
	(open_base_files): Delete redundant prototype.
	(write_enum_defn): New.
	(output_mangled_typename): Correct abort call.
	(write_gc_marker_routine_for_structure): Handle chain_next and
	chain_prev options.
	(finish_root_table): Don't output redundant \n.
	(main): Call gen_rtx_next, write_rtx_next, write_enum_defn.
	* c-tree.h (union lang_tree_node): Add chain_next option.

	* gengtype.h (NUM_PARAM): New definition.
	(struct type): For TYPE_PARAM_STRUCT, allow multiple parameters.
	* gengtype.c (find_param_structure): New.
	(adjust_field_type): Handle param<n>_is option.
	(process_gc_options): Detect use_params option.  Update callers.
	(set_gc_used_type): Add 'param' parameter, update callers.  Handle
	'use_params' option.
	(open_base_files): Add splay-tree.h to list of files included.
	(output_mangled_typename): New.
	(write_gc_structure_fields): Update 'param' parameter to support
	multiple parameters.  Change name mangling.  Allow parameterized
	fields to have an apparent scalar type.  Handle param<n>_is options,
	use_param option.
	(write_gc_marker_routine_for_structure): Update for change to name
	mangling.  Better guess the output file for parameterized types.
	(write_gc_types): Update for change to name mangling.
	(write_gc_root): Update for change to name mangling.  Handle (ignore)
	param<n>_is options.
	* doc/gty.texi (GTY Options): Add description of param<n>_is
	options, use_params option.
	* ggc.h (ggc_mark_rtx): Update for changed name mangling.
	* gengtype-lex.l: Produce token for param<n>_is.
	* gengtype-yacc.y: Parse param<n>_is.

	* gengtype.c (adjust_field_tree_exp): Don't name a variable 'rindex'.

	* rtl.c: Update comment describing rtx_format.
	* rtl.h (union rtunion): Separate definition and typedef.
	(struct rtx_def): Use gengtype to mark.
	* Makefile.in (gengtype.o): Also depend on rtl.def.
	* ggc.h (ggc_mark_rtx_children): Delete prototype.
	(ggc_mark_rtx): Change to alias of gengtype-generated routine.
	* ggc-common.c (ggc_mark_rtx_children): Delete.
	(ggc_mark_rtx_children_1): Delete.
	(gt_ggc_m_rtx_def): Delete.
	* gengtype.c (adjust_field_rtx_def): New.
	(adjust_field_type): Call adjust_field_rtx_def.
	(write_gc_structure_fields): Add 'default' case to switch if none
	is specified; remove unused code.

	* tree.h (struct tree_exp): Update for change to meaning
	of special.
	* gengtype.c (adjust_field_tree_exp): New function.
	(adjust_field_type): Handle `tree_exp' special here.
	(write_gc_structure_fields): Don't handle `tree_exp' special here.
	Handle new `dot' option.

	* gengtype.h: Make `info' a pointer-to-const.
	* gengtype-yacc.y (yacc_ids): Use xasprintf.

	* gengtype.c (write_gc_structure_fields): Remove implementation
	of `always' option, add `default' option.
	* doc/gty.texi (GTY Options): Remove documentation of `always',
	add `default'.

2002-09-16  Hans-Peter Nilsson  <hp@bitrange.com>

	* output.h: Remove #ifdef RTX_CODE and #ifdef TREE_CODE.

2002-09-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* m68hc11.md (addhi_sp): Fix uninitialized variable bug.

	* c4x-c.c, c4x.c, darwin.c, i370-c.c, m32r.c: Include tm_p.h
	instead of the *-protos.h file directly.
	* t-c4x, t-i370, t-v850: Depend on $(TM_P_H).
	* darwin.c (machopic_output_stub): Move prototype ...
	* darwin-protos.h (machopic_output_stub): ... here.
	* rs6000-protos.h (machopic_output_stub): Don't declare.

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

	* c-common.c (builtin_define_float_constants): Emit __FOO_DENORM_MIN__.

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

	* real.c, real.h: Rewrite from scratch.

	* Makefile.in (simplify-rtx.o): Depend on TREE_H.
	(paranoia): New target.
	* builtins.c (fold_builtin_inf): Use new real.h interface.
	* c-common.c (builtin_define_with_hex_fp_value): Likewise.
	* c-lex.c (interpret_float): Likewise.
	* emit-rtl.c (gen_lowpart_common): Likewise.
	* optabs.c (expand_float): Use real_2expN.
	* config/ia64/ia64.md (divsi3, udivsi3): Likewise.
	* defaults.h (INTEL_EXTENDED_IEEE_FORMAT): New.
	(FLOAT_WORDS_BIG_ENDIAN): New.
	* cse.c (find_comparison_args): Don't pass FLOAT_STORE_FLAG_VALUE
	directly to REAL_VALUE_NEGATIVE.
	* loop.c (canonicalize_condition): Likewise.
	* simplify-rtx.c: Include tree.h.
	(simplify_unary_operation): Don't handle FIX and UNSIGNED_FIX
	with floating-point result modes.
	* toplev.c (backend_init): Call init_real_once.

	* fold-const.c (force_fit_type): Don't call CHECK_FLOAT_VALUE.
	* tree.c (build_real): Likewise.
	* config/alpha/alpha.c, config/vax/vax.c (float_strings,
	float_values, inited_float_values, check_float_value): Remove.
	* config/alpha/alpha.h, config/m68hc11/m68hc11.h,
	config/m88k/m88k.h, config/vax/vax.h (CHECK_FLOAT_VALUE): Remove.
	* doc/tm.texi (CHECK_FLOAT_VALUE): Remove.
	(VAX_HALFWORD_ORDER): Remove.

2002-09-16  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c: (legitimize_la_operand): Remove, replace by ...
	(s390_load_address): ... this new function.
	(s390_decompose_address): Allow the argument pointer and all
	virtual registers as 'pointer' registers.
	(s390_expand_plus_operand): Use s390_load_address.
	config/s390/s390.md (movti, movdi, movdf splitters): Likewise.
	("force_la_31"): New insn pattern.
	config/s390/s390-protos.h (legitimize_la_operand): Remove.
	(s390_load_address): Add prototype.

	* config/s390/s390.c: Include "optabs.h".
	(s390_expand_movstr, s390_expand_clrstr, s390_expand_cmpstr): New.
	config/s390/s390-protos.h (s390_expand_movstr, s390_expand_clrstr,
	s390_expand_cmpstr): Add prototypes.
	config/s390/s390.md ("movstrdi", "movstrsi"): Call s390_expand_movstr.
	("movstrdi_short"): Rename to "movstr_short_64".  Change predicates
	for operands 0 and 1 to "memory_operand".  Add type attribute.
	("movstrsi_short"): Rename to "movstr_short_31".  Change predicates
	for operands 0 and 1 to "memory_operand".  Add type attribute.
	("movstrdi_long", "movstrsi_long"): Remove.
	("movstrdi_64"): Rename to "movstr_long_64". Add type attribute.
	("movstrsi_31"): Rename to "movstr_long_31". Add type attribute.
	("clrstrdi", "clrstrsi"): Call s390_expand_clrstr.
	("clrstrsico"): Remove, replace by ...
	("clrstr_short_64", "clrstr_short_31"): ... these new patterns.
	("clrstrsi_64"): Rename to "clrstr_long_64".
	("clrstrsi_31"): Rename to "clrstr_long_31".
	("cmpstrdi", "cmpstrsi"): Call s390_expand_cmpstr.
	("cmpstr_const"): Remove, replace by ...
	("cmpstr_short_64", "cmpstr_short_31"): ... these new patterns.
	("cmpstr_64"): Rename to "cmpstr_long_64".
	("cmpstr_31"): Rename to "cmpstr_long_31".

2002-09-16  Kazu Hirata  <kazu@cs.umass.edu>

	* ABOUT-NLS: Follow spelling conventions.
	* ChangeLog: Likewise.
	* ChangeLog.1: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.3: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* ChangeLog.6: Likewise.
	* FSFChangeLog.10: Likewise.
	* FSFChangeLog.11: Likewise.
	* c-common.c: Likewise.
	* c-lex.c: Likewise.
	* c-objc-common.c: Likewise.
	* cppexp.c: Likewise.
	* cppinit.c: Likewise.
	* cpplex.c: Likewise.
	* doloop.c: Likewise.
	* flow.c: Likewise.
	* function.c: Likewise.
	* integrate.c: Likewise.
	* loop.c: Likewise.
	* reg-stack.c: Likewise.
	* reload.h: Likewise.
	* ssa.c: Likewise.

2002-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (vmsdbgout.o): Depend on $(TARGET_H)
	* vmsdbgout.c: Include "target.h".

2002-09-15  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog: Follow spelling conventions.
	* ChangeLog.0: Likewise.
	* ChangeLog.1: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.6: Likewise.
	* config.gcc: Likewise.
	* dwarfout.c: Likewise.
	* reload1.c: Likewise.
	* simplify-rtx.c: Likewise.
	* unwind-sjlj.c: Likewise.
	* config/avr/avr.h: Likewise.
	* config/d30v/d30v.h: Likewise.
	* config/frv/frv.c: Likewise.
	* config/frv/frv.h: Likewise.
	* config/ip2k/ip2k.h: Likewise.
	* config/m88k/m88k-move.sh: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* doc/extend.texi: Likewise.
	* doc/interface.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: Likewise.
	* doc/rtl.texi: Likewise.
	* doc/tm.texi: Likewise.
	* doc/trouble.texi: Likewise.
	* ginclude/float.h: Likewise.
	* treelang/treelang.texi: Likewise.

2002-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* i386-protos.h (i386_pe_dllexport_name_p,
	i386_pe_dllimport_name_p, i386_pe_unique_section,
	i386_pe_declare_function_type, i386_pe_record_external_function,
	i386_pe_record_exported_symbol, i386_pe_asm_file_end): Add
	prototype.
	* i386/t-cygwin (winnt.o): Depend on $(TM_P_H).
	* i386/t-interix (winnt.o): Likewise.

	* v850-protos.h (v850_output_addr_const_extra): Prototype.

2002-09-15  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Add
	MIPS ABI CPP macros.
	(TARGET_CPU_CPP_BUILTINS): Redefine.
	(SUBTARGET_EXTRA_SPECS): Remove subtarget_endian_default.
	(SUBTARGET_ENDIAN_DEFAULT_SPEC): Remove.

2002-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ia64/aix.h (TARGET_OS_CPP_BUILTINS): Fix typo.

2002-09-15  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog: Follow spelling conventions.
	* ChangeLog.0: Likewise.
	* ChangeLog.1: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.3: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* ChangeLog.6: Likewise.
	* FSFChangeLog.10: Likewise.
	* FSFChangeLog.11: Likewise.
	* c-common.c: Likewise.
	* c-common.h: Likewise.
	* c-format.c: Likewise.
	* c-opts.c: Likewise.
	* cpplib.c: Likewise.
	* langhooks.h: Likewise.
	* real.c: Likewise.
	* reg-stack.c: Likewise.
	* toplev.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/arm.md: Likewise.
	* config/arm/linux-gas.h: Likewise.
	* config/arm/netbsd.h: Likewise.
	* config/c4x/c4x.c: Likewise.
	* config/c4x/c4x.h: Likewise.
	* config/c4x/c4x.md: Likewise.
	* config/c4x/libgcc.S: Likewise.
	* config/fr30/fr30.md: Likewise.
	* config/frv/frv.md: Likewise.
	* config/ia64/ia64.md: Likewise.
	* config/mips/mips.h: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/v850/v850.md: Likewise.
	* doc/extend.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/md.texi: Likewise.

2002-09-15  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/netbsd.h (LIB_SPEC): Include the appropriate pthread
	library if -pthread is specified.

2002-09-15  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.gcc (*-*-netbsd*): Set thread_file to 'posix'
	for --enable-threads=yes and --enable-threads=posix.

2002-09-15  Kazu Hirata  <kazu@cs.umass.edu>

	* config/sparc/cypress.md: Replace Sparc with SPARC.
	* config/sparc/freebsd.h: Likewise.
	* config/sparc/gmon-sol2.c: Likewise.
	* config/sparc/hypersparc.md: Likewise.
	* config/sparc/lb1spc.asm: Likewise.
	* config/sparc/lb1spl.asm: Likewise.
	* config/sparc/linux.h: Likewise.
	* config/sparc/linux64.h: Likewise.
	* config/sparc/lynx.h: Likewise.
	* config/sparc/sol2.h: Likewise.
	* config/sparc/sparc-modes.def: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/sparc/sparc.md: Likewise.
	* config/sparc/sparclet.md: Likewise.
	* config/sparc/supersparc.md: Likewise.
	* config/sparc/sysv4.h: Likewise.
	* config/sparc/vxsim.h: Likewise.
	* config/sparc/vxsparc64.h: Likewise.

2002-09-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-lex.c (cb_ident): Mark variable with ATTRIBUTE_UNUSED.
	* collect2.c (ignore_library, aix_std_libs): Move into the context
	where it is used.
	* m68hc11.c (m68hc11_autoinc_compatible_p): Delete prototype.
	(autoinc_mode, m68hc11_make_autoinc_notes): Add prototypes.
	* m88k.c (output_call): Wrap variables with macro controlling use.
	* rs6000.md: Likewise.  Const-ify variable.
	* sh.h (ASM_OUTPUT_LABELREF): Likewise.
	* final.c (only_leaf_regs_used): Likewise.
	* regrename.c (maybe_mode_change): Mark parameter with
	ATTRIBUTE_UNUSED.
	* reload.c (find_valid_class): Likewise.  Likewise for variable.
	(find_reloads_address_1): Likewise.
	* varasm.c (weak_finish): Wrap variable with macro controlling use.

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

	* config/avr/avr.c (output.h): Move after inclusion of tree.h.

2002-09-14  Kazu Hirata  <kazu@cs.umass.edu>

	* ChangeLog: Follow spelling conventions.
	* ChangeLog.0: Likewise.
	* ChangeLog.2: Likewise.
	* ChangeLog.3: Likewise.
	* ChangeLog.4: Likewise.
	* ChangeLog.5: Likewise.
	* ChangeLog.6: Likewise.
	* cppfiles.c: Likewise.
	* cppinit.c: Likewise.
	* cpplib.h: Likewise.
	* cse.c: Likewise.
	* debug.h: Likewise.
	* df.c: Likewise.
	* dominance.c: Likewise.
	* hashtable.c: Likewise.
	* hashtable.h: Likewise.
	* loop.c: Likewise.
	* config/arm/README-interworking: Likewise.
	* config/arm/arm.c: Likewise.
	* config/arm/arm.h: Likewise.
	* config/arm/arm.md: Likewise.
	* config/dsp16xx/dsp16xx.h: Likewise.
	* config/frv/frv.c: Likewise.
	* config/frv/frv.h: Likewise.
	* config/ip2k/ip2k.h: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/stormy16/stormy-abi: Likewise.
	* config/stormy16/stormy16.h: Likewise.
	* config/v850/v850.c: Likewise.

2002-09-14  Kazu Hirata  <kazu@cs.umass.edu>

	* loop.c: Fix a comment typo.

2002-09-14  Kazu Hirata  <kazu@cs.umass.edu>

	* config/fr30/fr30.h: Fix comment typos.
	* config/frv/frv.c: Likewise.
	* config/i386/xmmintrin.h: Likewise.
	* config/mips/mips.c: Likewise.
	* config/sh/sh.c: Likewise.

2002-09-14  Kazu Hirata  <kazu@cs.umass.edu>

	* haifa-sched.c: Follow spelling conventions.
	* regclass.c: Likewise.
	* regrename.c: Likewise.
	* config/fp-bit.c: Likewise.
	* config/frv/frv.h: Likewise.
	* config/m88k/m88k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/rs6000/darwin.h: Likewise.
	* config/rs6000/gnu.h: Likewise.
	* config/rs6000/linux.h: Likewise.
	* config/rs6000/linux64.h: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/rs6000/rs6000.h: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/sparc/ultra1_2.md: Likewise.

2002-09-14  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md ("movdi_internal"): Allow any offsetable
	memory operand when source is 0 (K constraint).
	("movsi_internal"): Likewise.
	("movdf_internal"): Likewise.
	("movsf_internal"): Likewise.

2002-09-14  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Use
	targetm.binds_local_p to set SYMBOL_REF_FLAG.
	(rs6000_xcoff_encode_section_info): Likewise.
	* config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Likewise.

2002-09-10  Theodore A. Roth  <troth@verinet.com>

	* gcc/config/avr/avr.h: Set default options for C++ for avr.

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

	* stmt.c (struct nexting): Remove unused alt_end_label field.
	(expand_start_loop): Delete initialization of alt_end_label.
	(expand_start_null_loop): Likewise.
	(expand_exit_loop_if_false): Delete updating of alt_end_label.

2002-09-13  Richard Henderson  <rth@redhat.com>

	* Makefile.in (toplev.o): Depend on real.h.
	(print-rtl.o, varasm.o, ifcvt.o): Likewise.

2002-09-14  Alan Modra  <amodra@bigpond.net.au>

	* doc/tm.texi (DBX_OUTPUT_NFUN): Describe.
	* dbxout.c (dbxout_function_end): Use DBX_OUTPUT_NFUN.
	* config/rs6000/linux64.h (DBX_OUTPUT_NFUN): Define.

2002-09-13  Nathan Sidwell  <nathan@codesourcery.com>

	* ggc-common.c (ggc_mark_roots): Don't iterate NULL hash tables.

2002-09-13  Steve Ellcey  <sje@cup.hp.com>

	* config.gcc (ia64*-*-aix*, ia64*-*-elf*, ia64*-*-freebsd*,
	ia64*-*-linux*): Set extra_parts.
	* config/ia64/t-aix (EXTRA_PARTS): Remove.
	* config/ia64/t-ia64 (EXTRA_PARTS): Remove.

2002-09-13  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/fixunssfsi.c: Replace H8/S with H8S.
	* config/h8300/h8300.c: Likewise.
	* config/h8300/h8300.h: Likewise.
	* config/h8300/h8300.md: Likewise.
	* doc/invoke.texi: Likewise.

2002-09-13  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (h8300_init_once): Fix formatting.

2002-09-13  Richard Henderson  <rth@redhat.com>

	* config/alpha/alpha.md (attr type): Add callpal.
	(imb, trap, load_tp, set_tp): Use it.
	* config/alpha/ev4.md (ev4_callpal): New.
	* config/alpha/ev5.md (ev5_callpal): New.
	* config/alpha/ev6.md (ev6_ibr): Handle callpal.
	* config/alpha/alpha.c (alphaev4_insn_pipe): Handle TYPE_CALLPAL.
	(alphaev5_insn_pipe): Likewise.

2002-09-13  Andreas Jaeger  <aj@suse.de>

	* Makefile.in (print-rtl.o): Depend on CONFIG_H.

2002-09-13  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/t-hpux (LIBGCC1_TEST, STMP_FIXPROTO,
	LIB2ADDEH): New, set to NULL.
	(SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL, SHLIB_MKMAP): New.

2002-09-13  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/quadlib.c (_U_Qfcmp): Make extern.
	(_U_Qfcnvfxt_quad_to_sgl): Remove declaration.
	(_U_Qfeq, _U_Qfne, _U_Qfgt, _U_Qfge, U_Qflt, U_Qfle, _U_Qfcomp):
	Add declarations.
	(_U_Qfneg): Remove.

2002-09-13 Dhananjay Deshpande  <dhananjayd@kpit.com>

	* config/h8300/h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): Add support
	for H8/300, H8S aa:8 mode.
	(TINY_CONSTANT_ADDRESS_P): Add support for H8S aa:16 mode.
	* config/h8300/h8300.c (h8300_adjust_insn_length): Adjust length
	for H8/300 aa:8 mode.

2002-09-13  Hartmut Penner  <hpenner@de.ibm.com>

	* config/s390/s390.md ("trap", "conditional_trap", "*trap"): New
	insns.

2002-09-12  Richard Henderson  <rth@redhat.com>

	* Makefile.in (HOST_PRINT): Use print-rtl1.o
	(print-rtl.o): Don't define GENERATOR_FILE.
	(print-rtl1.o): Rename from $(BUILD_PREFIX_1)print-rtl.o.
	* print-rtl.c (print_rtx): Include CONST_DOUBLE fp decimal output
	unless GENERATOR_FILE.

2002-09-12  Stan Shebs  <shebs@apple.com>

	* config/darwin.h (USER_LABEL_PREFIX): Define here...
	* config/i386/darwin.h: ... instead of here.

	* target.h (struct gcc_target): New field
	terminate_dw2_eh_frame_info.
	* target-def.h (TARGET_TERMINATE_DW2_EH_FRAME_INFO): Define.
	(TARGET_INITIALIZER): Add it.
	* dwarf2out.c (output_call_frame_info): Use target hook.
	* dwarf2asm.c (dw2_asm_output_delta): Use macro
	ASM_OUTPUT_DWARF_DELTA if defined.
	* doc/tm.texi (TARGET_TERMINATE_DW2_EH_FRAME_INFO): Document.
	(ASM_OUTPUT_DWARF_DELTA): Ditto.
	(ASM_OUTPUT_DWARF_OFFSET): Ditto.
	(ASM_OUTPUT_DWARF_PCREL): Ditto.
	* config.gcc (i[34567]86-*-darwin*): Define extra_parts.
	(powerpc-*-darwin*): Ditto.
	* crtstuff.c [OBJECT_FORMAT_MACHO]: Update the Mach-O bits
	to work correctly for Darwin.
	* config/darwin.h (OBJECT_FORMAT_MACHO): Define.
	(STARTFILE_SPEC): Add crtbegin.o.
	(ENDFILE_SPEC): Define.
	(EXTRA_SECTION_FUNCTIONS): Put gcc_except_tab in data segment.
	(ASM_PREFERRED_EH_DATA_FORMAT): Handle more cases.
	(ASM_OUTPUT_DWARF_DELTA): Define.
	(TARGET_TERMINATE_DW2_EH_FRAME_INFO): Define.
	* config/darwin.c (darwin_asm_output_dwarf_delta): New function.

2002-09-13  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Remove "if"
	nesting.  Correct test for non-PowerPC64 ELF ABI_AIX.
	* config/rs6000/rs6000.md (load_toc_v4_PIC*): Disable when ABI_AIX.

2002-09-12  Zack Weinberg  <zack@codesourcery.com>

	* toplev.c: Move default definition of USER_LABEL_PREFIX...
	* defaults.h: ... here.

2002-09-12  Richard Henderson  <rth@redhat.com>

	* vax.c: Include tree.h earlier.

2002-09-12  Stan Shebs  <shebs@apple.com>

	* config/darwin.c (machopic_finish): Remove #if 0 chunks.
	(machopic_operand_p): Ditto.

2002-09-12  Kazu Hirata  <kazu@cs.umass.edu>

	* config/arm/arm.c (arm_compute_initial_elimination_offset):
	Fix a comment typo.

2002-09-12  Kazu Hirata  <kazu@cs.umass.edu>

	* toplev.c (do_abort): Fix a comment typo.

2002-09-12  Kazu Hirata  <kazu@cs.umass.edu>

	* cselib.c: Fix comment formatting.
	* gengtype.c: Likewise.

2002-09-12  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (udivmodqi4): Do not use an expander.
	(udivmodhi4): Likewise.

2002-09-12  Graham Stott  <graham.stott@btinternet.com>
	    Roger Sayle  <roger@eyesopen.com>

	* i386.c (any_fp_register_operand, fp_register_operand,
	register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand):
	New predicate functions.
	* i386-protos.h:  Add their prototypes.
	* i386.h: Add them to PREDICATE_CODES.
	* i386.md ("*pushsf_rex64"+2, "*pushsf_rex64"+3, "*pushdf_integer"+1,
	"*pushdf_integer"+2, "*pushtf_integer"+1, "*pushtf_integer"+2,
	"*pushtf_integer"+3, "*pushtf_integer"+4, "*dummy_extendsfdf2"+1,
	"*dummy_extendsfdf2"+2, "*dummy_extendsfxf2"+1,
	"*dummy_extendsftf2"+1, "*dummy_extendsftf2"+2,
	"*dummy_extenddfxf2"+1, "*dummy_extenddftf2"+1,
	"*dummy_extenddftf2"+2, "*negsf2_if"+1, "*negsf2_if"+2,
	"*negdf2_if_rex64"+1, "*negdf2_if_rex64"+2, "*negxf2_if"+1,
	"*negxf2_if"+2, "*negtf2_if"+1, "*negtf2_if"+2, "*abssf2_if"+1,
	"*abssf2_if"+2, "*absdf2_if_rex64"+1, "*absdf2_if_rex64"+2,
	"*absxf2_if"+1, "*absxf2_if"+2, "*abstf2_if"+1, "*abstf2_if"+2):
	Use these new predicates to simplify and correct the use of
	FP_REG_P, ANY_FP_REG_P, FP_REGNO_P and any ANY_FP_REGNO_P.

2002-09-12  Jason Merrill  <jason@redhat.com>

	* diagnostic.c (output_add_identifier): New fn.
	* diagnostic.h: Declare it.

	* calls.c (store_one_arg): Use size_in_bytes to determine the
	amount of space to push.

2002-09-12  Jakub Jelinek  <jakub@redhat.com>

	* config/sparc/linux64.h (STARTFILE_SPEC32): Fix a typo.

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

	* config/s390/s390-modes.def (CCAPmode, CCANmode): New CC modes.
	* config/s390/s390.c (s390_match_ccmode_set): Support new CC modes.
	(s390_select_ccmode): Likewise.
	(s390_branch_condition_mask): Likewise.
	(optimization_options): Do not set flag_branch_on_count.
	(s390_split_branches): Handle doloop branches.
	(s390_chunkify_pool): Likewise.
	* config/s390/s390.md ("*adddi3_imm_cc", "*addsi3_imm_cc"): New insns.
	("doloop_end"): New expander.
	("doolop_si", "*doloop_si_long", "doloop_di", "*doloop_di_long",
	associated splitters): New.

2002-09-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* genattrtab.c (simplify_cond): Remove unused variable(s).
	* global.c (record_conflicts): Likewise.
	* jump.c (rebuild_jump_labels): Likewise.
	* loop.c (scan_loop, check_final_value): Likewise.
	* ra-colorize.c (colorize_one_web, assign_colors): Likewise.
	* reload1.c (eliminate_regs_in_insn, do_input_reload): Likewise.
	* rtlanal.c (reg_set_p): Likewise.
	* stmt.c (expand_asm_operands, expand_decl): Likewise.
	* genautomata.c (empty_reserv): Remove.
	* loop.c (max_luid): Likewise.
	* sched-rgn.c (bitlst_table_size): Likewise.

2002-09-11  Nathan Sidwell  <nathan@codesourcery.com>

	Reimplement gcov format.
	* gcov-io.h: Replace.
	* gcov.c: Reimplement.
	* gcov-iov.c: New file.
	* gcov-dump.c: New file.
	* libgcc2.c (L_bb): Replace with ...
	(L_gcov): ... this.
	(struct bb_function_info, struct bb): Remove.
	(inhibit_libc): Never inhibit.
	(gcov_list, gcov_crc): New static variables.
	(gcov_version_mismatch): New static function.
	(__bb_exit_func): Renamed to ...
	(__gcov_exit): ... here. Made static. Reimplement.
	(__gcov_init_func): Rename to ...
	(__gcov_init): ... here. Check version, update crc.
	(__bb_fork_func): Rename to ...
	(__gcov_flush): ... here.
	* libgcc2.h (struct bb, __bb_exit_func, __bb_init_func,
	__bb_fork_func, gcov_type, __bb_find_arc_counters): Remove.
	* calls.c (expand_call): Call __gcov_flush.
	* profile.c (bb_file, last_bb_file_name): Remove.
	(bbg_file_name): New global variable.
	(output_gcov_string): Remove.
	(get_exec_counts): Reimplement.
	(branch_prob): Reimplement gcov file writing.
	(init_branch_prob): Create bbg_file_name, don't create
	bb_file_name.
	(end_branch_prob): Adjust. Don't remove counter file when
	instrumenting ourselves.
	(create_profiler): Adjust.
	* doc/gcov.texi (Gcov Data Files): Remove detailed specification,
	point to gcov-io.h.
	* Makefile.in (LANGUAGES): Add gcov-dump.
	(coverageexts): Remove .bb.
	(STAGESTUFF): Add gcov-dump.
	(LIB2FUNCS_ST): Replace _bb with _gcov.
	(profile.o): Depend on gcov-iov.h.
	(final.o): Don't depend on profile.h, gcov.h.
	(gcov.o): Depend on gcov-iov.h.
	(gcov-iov.o): New target.
	(gcov-iov): New target.
	(gcov-iov.h): New target.
	(gcov-dump.o): New target.
	(GCOV_DUMP_OBJS): New variable.
	(gcov-dump): New target.
	(distclean): Remove coverageexts.
	(stage1): Remove coverageexts.

2002-09-11  Hartmut Penner  <hpenner@de.ibm.com>

	* fold-const.c (make_range): Only narrow to signed range if
	the signed range is smaller than the unsigned range.

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

	* emit-rtl.c (set_mem_size): New function.
	* expr.h (set_mem_size): Declare.
	* config/rs6000/rs6000.c (expand_block_move_mem): Exterminate.
	(expand_block_move): Instead, use adjust_address and
	replace_equiv_address to generate proper aliasing info.
	Move common code out of conditionals.  Localize vars.

2002-09-11  Eric Botcazou  <ebotcazou@libertysurf.fr>

	* optabs.c (expand_binop): Minor cleanup.
	(expand_twoval_binop): Convert CONST_INTs like in expand_binop.

2002-09-11  Dan Nicolaescu  <dann@ics.uci.edu>

	* print-tree.c (print_node): Print the restrict qualifier.

2002-09-11  Janis Johnson  <janis187@us.ibm.com>

	* doc/install.texi: Fix typos.

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

	* Makefile.in: Remove all references to s-under and underscore.c.
	* collect2.c, tlink.c: Change all uses of prepends_underscore
	to look directly at USER_LABEL_PREFIX.

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

	* config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Append
	alignment to csect.
	(rs6000_xcoff_unique_section): Only set section name for public
	data.
	(rs6000_xcoff_section_type_flags): Store log2 alignment in flags.
	* config/rs6000/xcoff.h (TARGET_ASM_SELECT_SECTION): Remove
	duplicate definition.

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

	* pa.md (extzv): Check predicates before emitting extzv_32.
	(insv): Likewise.

2002-09-10  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.h (MOVE_MAX): Define to correct value.
	(MAX_MOVE_MAX): Define.
	(MOVE_BY_PIECES_P): Define.
	(CLEAR_BY_PIECES_P): Define.

2002-09-10  Denis Chertykov  <denisc@overta.ru>

	* config/avr/avr.md (movstrhi): Use right operands for conversion.

2002-09-10  Richard Earnshaw  <rearnsha@arm.com>

	PR c/7873
	* arm.md (insv): Use reg_or_int_operand for operand[3].

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

	* rs6000.c (rs6000_assemble_visibility): Protect declaration
	inside macro.  Correct function definition typo.
	(rs6000_xcoff_section_type_flags): New function.
	(TARGET_SECTION_TYPE_FLAGS): Remove definition.
	(rs6000_elf_section_type_flags): Call default_section_type_flags_1
	with appropriate PIC test.
	(rs6000_xcoff_select_section): Use decl_readonly_section_1 to
	determine readonly.
	(rs6000_binds_local_p): Combine PIC flags.
	* sysv4.h (TARGET_SECTION_TYPE_FLAGS): Define.
	* xcoff.h (TARGET_SECTION_TYPE_FLAGS): Define.

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

	* h8300.md: Fix signed/unsigned warnings.
	* mcore.md: Likewise.
	* mn10300.c (mask_ok_for_mem_btst): Likewise.

2002-09-09  Per Bothner  <per@bothner.com>

	* print-tree.c (print_node):  In a STRING_CST, escape non-ascii
	characters, and only print TREE_STRING_LENGTH chars.

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

	* config/ia64/hpux.h (TARGET_HPUX_LD): New, define true.
	(ASM_FILE_END) New.
	* config/ia64/ia64.h (TARGET_HPUX_LD): New, define false.
	* config/ia64/ia64-protos.h (ia64_hpux_asm_file_end): New.
	* config/ia64/ia64.c (ia64_asm_output_external): Create list
	of external functions if TARGET_HPUX_LD is true.
	(ia64_hpux_add_extern_decl): New, routine to put names on
	list of external functions.
	(ia64_hpux_asm_file_end): Put out declarations for external
	functions if and only if they are used.

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

	* pa.md (exception_receiver, builtin_setjmp_receiver): Add blockage
	on TARGET_64BIT before pic register restore.

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

	* doc/tm.texi (TARGET_HAVE_SRODATA_SECTION): New description.
	(TARGET_HAVE_TLS): New description.

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

	* doc/extend.texi (Statement Exprs): Fix broken link.

2002-09-09  Denis Chertykov  <denisc@overta.ru>

	* config/avr/avr.md (movstrhi, clrstrhi): Use gen_int_mode for
	right conversion of operands[1].

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

	* config/s390/s390.md ("*tmdi_reg", "*tmsi_reg"): Do not mark as
	commutative.  Use "nonimmediate_operand" instead of "register_operand"
	as predicate for operand 0.  Move to after the "*tmXX_mem" insns.

	("*tmdi_mem", "*tmsi_mem", "*tmhi_mem", "*tmqi_mem"): Do not mark
	as commutative.

	("*anddi3_ni", "*andsi3_ni", "*iordi3_ni", "*iorsi3_ni"): Do not
	mark as commutative.  Use "nonimmediate_operand" instead of
	"register_operand" as predicate for operand 1.

	("movstrictsi"): Fix typo in insn name.

2002-09-09  Jan Hubicka  <jh@suse.cz>

	* i386.c (index_register_operand): New.
	* i386.h (predicate_codes): Add new predicate.
	* i386.md (lea_general_*): Use index_register_operand
	(ashift to lea splitter): Do not produce invalid leas
	(ashift to mov+ashift split): New.

2002-09-09  Nick Clifton  <nickc@redhat.com>

	* config/fr30/fr30.c (output.h): Move after inclusion of tree.h.
	Fix folding marks.

2002-09-09  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
	    J"orn Rennecke <joern.rennecke@superh.com>

	* sh/sh.h (OVERRIDE_OPTIONS): align_functions is in bytes, not bits.

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

	* config/rs6000/rs6000.c (rs6000_binds_local_p): Return bool.
	(function_ok_for_sibcall): Use binds_local_p.  Respect longcall
	attributes.

2002-09-08  Nathan Sidwell  <nathan@codesourcery.com>

	* basic_block.h (gcov_type): Explain why it is signed.
	* final.c: Don't include profile.h.
	(struct function_list, functions_head, functions_tail,
	end_final): Moved to profile.c
	(final): Move arc chaining code to profile.c.
	* function.c (prepare_function_start): Remove duplicate line.
	* output.h (end_final): Remove prototype.
	* predict.c (estimate_loops_at_level): Use gcov_type.
	* profile.c (struct function_list, functions_head,
	functions_tail): Moved from final.c
	(need_func_profiler): Remove.
	(instrument_edges): Don't set need_func_profiler.
	(get_exec_counts): Avoid signed/unsigned warning.
	(compute_checksum): Use crc32.
	(branch_prob): Adjust. Chain onto functions_head.
	(init_branch_prob): Absorb init_edge_profiler.
	(init_edge_profiler): Remove.
	(create_profiler): Moved and renamed from final.c:end_final.
	Emit data and constructor.
	(output_func_start_profiler): Remove.
	* profile.h (struct profile_info): checksum is unsigned.
	* rtl.h (output_func_start_profiler): Remove prototype.
	(create_profiler): Declare.
	* toplev.c (compile_file): Call create_profiler, if instrumenting
	arcs. Don't call end_final.

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

	* fr30.c (fr30_print_operand): Fix bug in output of CONST_DOUBLE.

2002-09-08  Richard Henderson  <rth@redhat.com>

	* dwarf2.h (DW_OP_call_ref): Rename from DW_OP_calli.
	(DW_OP_GNU_push_tls_address): New.
	(DW_OP_lo_user): Fix.
	* dwarf2out.c (INTERNAL_DW_OP_tls_addr): New.
	(dwarf_stack_op_name): Handle it, plus other dwarf3 opcodes.
	(size_of_loc_descr): Likewise.
	(output_loc_operands): Handle INTERNAL_DW_OP_tls_addr.
	(add_AT_location_description): Take a dw_loc_descr_ref not an rtx.
	(loc_descriptor_from_tree): Handle TLS variables.
	(rtl_for_decl_location): Do avoid_constant_pool_reference here ...
	(add_location_or_const_value_attribute): ... not here.  Defer
	to loc_descriptor_from_tree for TLS variables.

	* config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): New.
	* config/i386/i386.c (i386_output_dwarf_dtprel): New.
	* config/i386/i386-protos.h: Update.

2002-09-08  Roger Sayle  <roger@eyesopen.com>

	PR optimization/6405
	* unroll.c (loop_iterations): last_loop_insn should be the previous
	non-note instruction before loop->end.
	* loop.c (strength_reduce): The conditional jump is the last
	non-note instruction before loop->end (as above).

2002-09-08  Roger Sayle  <roger@eyesopen.com>

	* combine.c (try_combine): Handle the case that undobuf.other_insn
	has been turned into a return or unconditional jump, by inserting
	a BARRIER if necessary.
	(simplify_set):  Test if a condition code setter has a constant
	comparison at compile time, if so convert this insn to a no-op move
	and update/simplify the condition code user (undobuf.other_insn).

2002-09-08  Krister Walfridsson  <cato@df.lth.se>

	* config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Redefine.
	(CLEAR_INSN_CACHE): Define.

2002-09-08  Kazu Hirata  <kazu@cs.umass.edu>

	* basic-block.h: Fix comment formatting.
	* c-common.c: Likewise.
	* c-common.h: Likewise.
	* c-lex.c: Likewise.
	* c-pretty-print.c: Likewise.
	* cfglayout.c: Likewise.
	* cfgloop.c: Likewise.
	* defaults.h: Likewise.
	* et-forest.c: Likewise.
	* explow.c: Likewise.
	* function.h: Likewise.
	* gcov.c: Likewise.
	* genattrtab.c: Likewise.
	* gengtype.c: Likewise.
	* ifcvt.c: Likewise.
	* libgcc2.c: Likewise.
	* loop.c: Likewise.
	* profile.c: Likewise.
	* ra-build.c: Likewise.
	* real.c: Likewise.
	* rtl.h: Likewise.
	* tracer.c: Likewise.
	* tree-inline.c: Likewise.
	* varasm.c: Likewise.

2002-09-08  Jan Hubicka  <jh@suse.cz>

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Fix array_ref
	handling.

	* loop.c (loop_givs_reduce):  Emit addition after.

2002-09-08  Alan Modra  <amodra@bigpond.net.au>

	* varasm.c (default_assemble_visibility): Rename from
	assemble_visibility.
	* output.h: Here too.
	* target-def.h (TARGET_ASM_ASSEMBLE_VISIBILITY): And here.
	* config/rs6000/rs6000.c (rs6000_assemble_visibility): And here.

2002-09-08  Alan Modra  <amodra@bigpond.net.au>

	* reload.c (find_reloads <p constraint>): Pass operand_mode to
	find_reloads_address.

2002-09-08  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (udivmodqi4): Enable on H8/300.
	(anonymous pattern): Likewise.

2002-09-07  Igor Shevlyakov <igor@microunity.com>

	* machmode.def: Add modes for half-float vectors.

2002-09-07  Scott Snyder  <snyder@fnal.gov>

	PR target/7374
	* config/alpha/alpha.md (abstf2): Fix typo: 'neg' for 'abs'.

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

	* basic-block.h (struct loop): Remove unused cont_dominator field.

2002-09-07  Igor Shevlyakov <igor@microunity.com>

	* varasm.c (decode_rtx_const): Don't check undefined field for
	CONST_VECTOR.

2002-09-07  Glen Nakamura  <glen@imodulo.com>

	PR opt/7814
	* sched-deps.c (sched_analyze_insn): Make sure to add insn
	to reg_last->sets after flushing the dependency lists to guarantee
	that subsequent clobbers will be dependent on it.

2002-09-07  Igor Shevlyakov <igor@microunity.com>

	* combine.c (simplify_shift_const): Calculate rotate count
	correctly for vector operands.

2002-09-07  Ansgar Esztermann  <ansgar@thphy.uni-duesseldorf.de>

	* c-typeck.c (c_tree_expr_nonnegative_p): New function.
	(build_binary_op): Call c_tree_expr_nonnegative_p rather than
	tree_expr_nonnegative_p.
	(build_conditional_expr): Likewise.
	* c-tree.h (c_tree_expr_nonnegative_p): Declare.

2002-09-07  Richard Henderson  <rth@redhat.com>

	* builtins.def (inf, inff, infl): Mark const.
	(huge_val, huge_valf, huge_vall): Likewise.
	(BUILT_IN_GETEXP, BUILT_IN_GETMAN): Remove.

	* real.c (ereal_inf): Clear E before use.

2002-09-07  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.md (udivmodqi4): Split the pattern into
	an expander and an anonymous pattern.  Zero out the upper half
	of the dividend in the expander.
	(udivmodqi4): Likewise.

2002-09-07  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c: Fix formatting.
	* config/h8300/h8300.h: Likewise.
	* config/h8300/h8300.md: Likewise.

2002-09-07  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* cfgcleanup.c (try_crossjump_to_edge): Fix updating of liveness
	information.

2002-09-07  Graham Stott  <graham.stott@btinternet.com>

       * rtlanal.c (dead_or_set_regno_p): Fix typo.

2002-09-07  Alan Modra  <amodra@bigpond.net.au>

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

	* doc/tm.texi (TARGET_ASM_ASSEMBLE_VISIBILITY): Describe.
	* target-def.h (TARGET_ASM_ASSEMBLE_VISIBILITY): Define.
	(TARGET_ASM_OUT): Add the above here.
	* target.h (struct gcc_target): Add "visibility" field.
	* varasm.c (maybe_assemble_visibility): Call targetm visibility func.
	* config/rs6000/rs6000.c (rs6000_assemble_visibility): New function.
	(TARGET_ASM_ASSEMBLE_VISIBILITY): Define.
	(rs6000_legitimize_reload_address, first_reg_to_save): Formatting.

2002-09-06  Ziemowit Laski <zlaski@apple.com>

	* c-lang.c (objc_is_id): New stub.
	* c-tree.h (objc_is_id): New forward declaration.
	* c-typeck.c (build_c_cast): Do not strip protocol
	qualifiers from 'id' type.
	* objc/objc-act.c (objc_comptypes): Correct handling
	of protocol qualifiers.
	(objc_is_id): New.

Fri Sep  6 13:10:08 2002  Jeffrey A Law  (law@redhat.com)

	* pentium.md (pentium-firstvboth): Fix typo.

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

	* h8300.c (enum shift_alg): Move to earlier in h8300.c.
	(enum shift_type, enum h8_cpu): Likewise.
	(INL, ROT, LOP, SPC macros): Likewise.
	(shift_alg_qi, shift_alg_hi, shift_alg_si): Likewise.  Lose
	const designator.
	(h8300_init_once): Update shift_alg_{qi,hi,si} to use more
	space efficient algorithms when optimize for codesize.

Fri Sep  6 16:35:32 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	Fix PR/1727 and long-standing failing testcase
	objc/formal-protocol-6.m.
	* objc-act.c (build_protocol_expr): If compiling for the GNU
	runtime, create a list of Protocol statically allocated instances
	if it doesn't exist, then add the Protocol object to this same
	list.
	(get_objc_string_decl): Fixed typo/bug - TREE_VALUE had been used
	instead of TREE_CHAIN.

Fri Sep  6 16:17:33 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	* objc/objc-act.c (dump_interface): Enlarged the char * buffer to
	10k.  Fixed category dumping - print out category names with the
	proper syntax.  Print '@end\n' and not '\n@end' at the end of the
	interface.
	(finish_objc): Fixed the -gen-decls option.  It was printing out
	only the last class.  Dump an interface declaration of all classes
	being compiled instead.

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

	* config/arm/arm-protos.h (arm_gen_return_addr_mask): New
	prototype.
	* config/arm/arm.c (arm_gen_return_addr_mask): New function.
	* config/arm/arm.h (MASK_RETURN_ADDR): Use arm_gen_return_addr_mask
	if not APCS26 and not Thumb or ARMv4-or-higher.  Use gen_int_mode
	rather than GEN_INT.
	* config/arm/arm.md (UNSPEC_CHECK_ARCH): Define.
	(return_addr_mask, *check_arch2): New.

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

	* config/s390/s390.md ("*adddi3_cc", "*adddi3_cconly",
	"*adddi3_cconly2", "*adddi3_64", "*adddi3_31", "adddi3",
	"*addsi3_carry1_cc", "*addsi3_carry1_cconly",
	"*addsi3_carry2_cc", "*addsi3_carry2_cconly",
	"*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2", "addsi3",
	"adddf3", "*adddf3", "*adddf3_ibm",
	"addsf3", "*addsf3", "*addsf3_ibm",
	"muldi3", "mulsi3", "mulsidi3",
	"muldf3", "*muldf3", "*muldf3_ibm",
	"mulsf3", "*mulsf3", "*mulsf3_ibm",
	"*anddi3_cc", "*anddi3_cconly", "anddi3",
	"*andsi3_cc", "*andsi3_cconly", "andsi3",
	"*iordi3_cc", "*iordi3_cconly", "iordi3",
	"*iorsi3_cc", "*iorsi3_cconly", "iorsi3",
	"*xordi3_cc", "*xordi3_cconly", "xordi3",
	"*xorsi3_cc", "*xorsi3_cconly", "xorsi3"): Use "nonimmediate_operand"
	instead of "register_operand" as predicate for "%0" operand.

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

	* configure.in (HAVE_AS_OFFSETABLE_LO10): Use -xarch=v9
	unconditionally when gcc_cv_as_flags64 checks are gone.
	* configure: Rebuilt.

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

	* config/rs6000/rs6000.md (extzvsi_internal2): Revert most of
	2002-07-26 change.  Comment.

2002-09-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* frv.c (frv_unique_section, frv_select_section,
	frv_select_rtx_section): Delete.
	(frv_in_small_data_p): New.
	(TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_SECTION,
	TARGET_ASM_SELECT_RTX_SECTION): Delete.
	(TARGET_IN_SMALL_DATA_P): Define.

2002-09-05  Dale Johannesen  <dalej@apple.com>

	* reload1.c (reload):  Retain only those memory clobbers
	added for variable-array handling.

2002-09-05  Jason Thorpe  <thorpej@wasabisystems.com>

	* config/arm/arm.c (arm_return_in_memory): Implement ATPCS
	return-in-memory rules.
	* config/arm/arm.h (ARM_FLAG_ATPCS, TARGET_ATPCS): Define.

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

	* config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Delete.
	(UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Delete.

2002-09-05  Jason Thorpe  <thorpej@wasabisystems.com>

	* real.c: Avoid parse error if FLOAT_WORDS_BIG_ENDIAN is
	not a compile-time constant for the non-IBM case.
	* config/arm/arm-protos.h (arm_float_words_big_endian): New
	prototype.
	* config/arm/arm.c (arm_float_words_big_endian): New function.
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __VFP_FP__
	if TARGET_VFP  and not TARGET_HARD_FLOAT.
	(ARM_FLAG_VFP, TARGET_VFP): Define.
	(FLOAT_WORDS_BIG_ENDIAN): Use arm_float_words_big_endian.

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

	* doc/install.texi: Correct text of s390-*-linux* and s390x-*-linux*
	URLs.  Fix AIX wording.

2002-09-05  Stan Shebs  <shebs@apple.com>

	* config/rs6000/rs6000.c (rs6000_override_options): Make -fpic and
	-fPIC equivalent on Darwin.

Thu Sep  5 16:27:47 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (sh_expand_builtin): Return early if encountering an
	error_mark for a type.

2002-09-05  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_expand_plus_operand): Do not require
	double-word scratch register.
	config/s390/s390.md ("reload_indi", "reload_insi"): Adapt.

	("*tmqi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem", "*tmqi_mem",
	"*cli"): Replace s_operand by memory_operand.
	("cmpstrdi", "cmpstrsi"): Replace s_operand by general_operand.

2002-09-05  Kazu Hirata  <kazu@cs.umass.edu>

	* config/h8300/h8300.c (asm_file_start): Add a missing
	semicolon.

2002-09-04  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	* c-typeck.c (build_function_call): Remove unused variable(s).
	(build_c_cast): Likewise.
	* calls.c (rtx_for_function_call): Likewise.
	* cfglayout.c (duplicate_insn_chain): Likewise.
	* cfgloop.c (flow_loop_nodes_find): Likewise.
	* cfgrtl.c (split_edge): Likewise.
	* df.c (df_ref_create): Likewise.
	* except.c (expand_end_catch): Likewise.
	* expr.c (emit_push_insn, store_constructor, expand_expr): Likewise.
	* function.c (emit_return_into_block): Likewise.
	(reposition_prologue_and_epilogue_notes): Likewise.
	* gengtype.c (get_file_basename, write_gc_structure_fields): Likewise.
	* combine.c (subst_prev_insn, need_refresh): Remove.
	* dwarf2out.c (primary_filename): Remove.
	* final.c (new_block): Remove.
	* gcse.c (orig_bb_count): Remove.

2002-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* dsp16xx-protos.h (dsp16xx_compare_gen): Change to bool.
	* dsp16xx.c (dsp16xx_compare_gen): Likewise.
	* dsp16xx.md: Treat dsp16xx_compare_gen as a bool.  Call functions
	directly instead of using a function pointer.

2002-09-04  Krister Walfridsson  <cato@df.lth.se>

	* config/i386/i386.h (GOT_SYMBOL_NAME): Define.
	* config/i386/i386.c (output_set_got): Use GOT_SYMBOL_NAME.
	(ix86_output_addr_diff_elt) Likewise.
	(x86_output_mi_thunk) Likewise.
	* config/i386/netbsd.h (GOT_SYMBOL_NAME): Redefine.

2002-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* frv.c (frv_encode_section_info): Fix error in last change.

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

	* config/rs6000/rs6000.c (rs6000_flag_pic): New variable.
	(rs6000_elf_encode_section_info): ATTRIBUTE_UNUSED.
	(TARGET_BINDS_LOCAL_P): Define.
	(rs6000_override_options): Save original flag_pic value.
	(rs6000_elf_select_section): Call default_elf_select_section_1.
	(rs6000_elf_unique_section): Call default_unique_section_1.
	(rs6000_elf_in_small_data_p): New function.
	(rs6000_xcoff_asm_named_section): Determine storage mapping class.
	(rs6000_xcoff_select_section): Update based on defaults.
	(rs6000_xcoff_unique_section): Set to basic name if not common.
	(rs6000_binds_local_p): New function.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
	targetm.have_srodata_section if SDATA_EABI.
	(TARGET_IN_SMALL_DATA_P): Define.

2002-09-04  Dale Johannesen  <dalej@apple.com>

	* varasm.c (struct rtx_const, decode_rtx_const):
	Make veclo and vechi fields not share storage.

Thu Sep  5 00:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* loop.c (scan_loop): Don't mark separate insns out of a libcall
	for moving.
	(move_movables): Abort if we see the first insn of a libcall.

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

	* builtin-types.def (BT_FN_FLOAT): New.
	(BT_FN_DOUBLE, BT_FN_LONG_DOUBLE): New.
	* builtins.def (BUILT_IN_INF, BUILT_IN_INFF, BUILT_IN_INFL,
	BUILT_IN_HUGE_VAL, BUILT_IN_HUGE_VALF, BUILT_IN_HUGE_VALL): New.
	* builtins.c (fold_builtin_inf): New.
	(fold_builtin): Call it.
	* real.c (ereal_inf): New.
	* real.h: Declare it.
	* doc/extend.texi: Document new builtins.

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

	* cse.c (cse_insn): Avoid subreg games if the equivalence
	is already in the proper mode.

2002-09-04  Eric Botcazou  <ebotcazou@multimania.com>

	PR c/7102
	* optabs.c (expand_binop): Convert CONST_INTs in all cases.

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

	* pa.md (setccfp0, setccfp1): New patterns.

2002-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* frv-protos.h (frv_init_builtins, frv_expand_builtin,
	frv_select_section, frv_select_rtx_section,
	frv_encode_section_info, frv_unique_section): Delete.
	* frv.c: Update for target hooks.
	* frv.h (STRIP_NAME_ENCODING, SLOW_ZERO_EXTEND, SELECT_SECTION,
	SELECT_RTX_SECTION, ENCODE_SECTION_INFO, UNIQUE_SECTION,
	EASY_DIV_EXPR, MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Delete.

2002-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ip2k-protos.h (function_prologue, function_epilogue,
	encode_section_info): Update to match target hook specification.
	* ip2k.c: Wrap `MDR' code in IP2K_MD_REORG_PASS.
	(function_prologue, function_epilogue, encode_section_info):
	Update to match target hook specification.
	* ip2k.h (SELECT_SECTION, SELECT_RTX_SECTION, ASM_OPEN_PAREN,
	ASM_CLOSE_PAREN, EASY_DIV_EXPR): Delete.
	(NOTICE_UPDATE_CC): Cast to void.
	* ip2k.md: Add defaults in switch statements.

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

	* doc/trouble.texi (Interoperation): Update information about C++ ABI
	issues.

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

	* config/sparc/t-netbsd64: Disable multilib for now.

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

	* target-def.h (TARGET_HAVE_SRODATA_SECTION): New macro.
	* target.h (gcc_target): Add have_srodata_section member.
	* varasm.c (section_category): Add SECCAT_SRODATA.
	(categorize_decl_for_section): Return SECCAT_SRODATA for sdata if
	READONLY_SDATA_SECTION defined.
	(decl_readonly_section_1): True for SECCAT_SRODATA also.
	(default_elf_select_section_1): Map SECCAT_SRODATA to .sdata2.
	(default_unique_section_1): Likewise.

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

	* expr.c (emit_group_load): Revise to allow splitting TCmode source
	into DImode pieces.

	* pa-64.h (LONG_DOUBLE_TYPE_SIZE): Define to 128.
	* pa64-regs.h (CLASS_CANNOT_CHANGE_MODE_P): Inhibit changes from SImode
	for floating-point register class.
	* pa.c (function_arg): Fix handling of modes wider than one word for
	TARGET_64BIT.

Wed Sep  4 18:48:10 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* combine.c (make_compound_operation): Don't generate zero / sign
	extensions in floating point modes.

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

	* doc/c-tree.texi: Fix overfull hboxes.
	* doc/cppopts.texi: Ditto.
	* doc/extend.texi: Ditto.
	* doc/gty.texi: Ditto.
	* doc/invoke.texi: Ditto.
	* doc/makefile.texi: Ditto.
	* doc/rtl.texi: Ditto.
	* doc/standards.texi: Ditto.
	* doc/tm.texi: Ditto.

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

	* c-common.c (builtin_define_with_hex_fp_value): New.
	(builtin_define_float_constants): Use it.  Fix H_FLOAT mant_dig.

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

	* doc/invoke.texi (-fshort-wchar): Move to Code Generation Options.
	(-fpcc-struct-return, -freg-struct-return, -fshort-enums,
	-fshort-double, -fshort-wchar, -fpack-struct, -fleading-underscore):
	Warn that these options can break ABI compatibility.

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

	* real.c (ereal_to_decimal): Add digits parameter.
	* real.h (REAL_VALUE_TO_DECIMAL): Remove format; add digits parameter.
	* c-pretty-print.c (pp_c_real_literal): Update call.
	* print-rtl.c (print_rtx): Likewise.
	* print-tree.c (print_node_brief, print_node): Likewise.
	* sched-vis.c (print_value): Likewise.
	* config/arc/arc.c (arc_print_operand): Likewise.
	* config/c4x/c4x.c (c4x_print_operand): Likewise.
	* config/i370/i370.h (PRINT_OPERAND): Likewise.
	* config/i386/i386.c (print_operand): Likewise.
	* config/i960/i960.c (i960_print_operand): Likewise.
	* config/ip2k/ip2k.c (asm_output_float): Likewise.
	* config/m32r/m32r.c (m32r_print_operand): Likewise.
	* config/m68hc11/m68hc11.c (print_operand): Likewise.
	* config/m68k/hp320.h (PRINT_OPERAND, ASM_OUTPUT_FLOAT_OPERAND,
	ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND): Likewise.
	* config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND,
	ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND): Likewise.
	* config/m68k/sun2o4.h (ASM_OUTPUT_FLOAT_OPERAND,
	ASM_OUTPUT_DOUBLE_OPERAND): Likewise.
	* config/m68k/sun3.h (ASM_OUTPUT_FLOAT_OPERAND,
	ASM_OUTPUT_DOUBLE_OPERAND): Likewise.
	* config/mips/mips.c (print_operand): Likewise.
	* config/ns32k/ns32k.c (print_operand): Likewise.
	* config/pdp11/pdp11.h (PRINT_OPERAND): Likewise.
	* config/vax/vax.h (PRINT_OPERAND): Likewise.
	* doc/tm.texi (REAL_VALUE_TO_DECIMAL): Update docs.

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

	* config/xtensa/elf.h (TARGET_SECTION_TYPE_FLAGS): Define to
	xtensa_multibss_section_type_flags.
	* config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Define.

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

	* doc/install-old.texi: Don't mention enquire.
	* doc/sourcebuild.texi: Update float.h description.

Wed Sep  4 11:22:14 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (mperm_w_little, mperm_w_big): Supply mode for zero_extract.

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

	* builtins.c (build_function_call_expr): Remove prototype, export
	as non-static and add a comment above function definition.
	(builtin_mathfn_code): New function to check for math builtins.
	(fold_builtin): Optimize sqrt(0.0) as 0.0, sqrt(1.0) as 1.0,
	exp(0.0) as 1.0, and log(1.0) as 0.0.  Optimize exp(log(x)) and
	log(exp(x)) as x.  Optimize sqrt(exp(x)) as exp(x/2.0) and
	log(sqrt(x)) as log(x)/2.0.

	* tree.h: Prototype build_function_call_expr and builtin_mathfn_code
	in new "builtins.c" section.  Place the build_range_type prototype
	with the other prototypes from "tree.c".

	* fold-const.c (fold) [ABS_EXPR]: Fold fabs(sqrt(x)) as sqrt(x)
	and fabs(exp(x)) as exp(x).  [MULT_EXPR]: Fold sqrt(x)*sqrt(y)
	as sqrt(x*y) and exp(x)*exp(y) as exp(x+y). [RDIV_EXPR]: Fold
	x/exp(y) as x*exp(-y).

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

	* varasm.c (default_section_type_flags): Append _1 to name with
	shlib parameter.  Use original name to call new function with
	implicit flag_pic.
	(decl_readonly_section): Likewise.
	(default_elf_select_section): Likewise.
	(default_unique_section): Likewise.
	(default_bind_local_p): Likewise.
	(categorize_decl_for_section): Add shlib parameter to use in place
	of implicit flag_pic.
	* output.h: Declare new functions with _1 and shlib argument.

2002-09-03  Janis Johnson  <janis187@us.ibm.com>

	* doc/install.texi: Fix typos, formatting problems, and obvious
	overfull/underfull boxes.

	* Makefile.in (TEXI_GCC_FILES): Add compat.texi.
	* doc/gcc.texi (Top): Add new chapter, Binary Compatibility, and
	include its file, compat.texi.
	* doc/compat.texi: New file with new chapter, Binary Compatibility.

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

	Debian BTS Bug #157416
	* cpphash.h (FIRST, LAST, CUR, RLIMIT): Fix definitions.
	* cpplib.c (destringize_and_run): Kludge around getting
	tokens from in-progress macros.
	(_cpp_do__Pragma): Simplify.

2002-09-03  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.h (EXTRA_SPECS): Remove cpp_cpu.
	(CPP_CPU_SPEC): Remove.
	(TARGET_CPU_CPP_BUILTINS): New.
	* config/ia64/hpux.h (CPP_PREDEFINES): Remove.
	(CPP_SPEC): Remove.
	(TARGET_OS_CPP_BUILTINS): New.
	* config/ia64/linux.h (CPP_PREDEFINES): Remove.
	(TARGET_OS_CPP_BUILTINS): New.
	* config/ia64/aix.h (CPP_SPEC): Move some stuff to
	TARGET_OS_CPP_BUILTINS.
	(CPP_PREDEFINES): Remove.
	(CPLUSPLUS_CPP_SPEC): Remove.
	(TARGET_OS_CPP_BUILTINS): New.

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

	* Makefile.in (USER_H): Add ginclude/float.h.
	(FLOAT_H): Remove.
	(stmp-int-hdrs, install-mkheaders): Don't handle FLOAT_H.
	(mostlyclean): Don't remove float.h intermediate files.
	(distclean): Don't remove float.h.
	* config.gcc: Remove all float_format references.
	* configure.in (float_format, float_h_file): Remove.

	* c-common.c: Include tree-inline.h.
	(builtin_define_with_int_value): New.
	(builtin_define_type_precision): Use it.
	(builtin_define_float_constants): New.
	(cb_register_builtins): Use it.  Define __FLT_RADIX__ and
	__FLT_EVAL_METHOD__.
	* defaults.h (TARGET_FLT_EVAL_METHOD): New.
	* config/i386/i386.h (TARGET_FLT_EVAL_METHOD): New.
	* config/m68k/m68k.h (TARGET_FLT_EVAL_METHOD): New.
	* doc/tm.texi (INTEL_EXTENDED_IEEE_FORMAT): Mention moto 96-bit format.
	(TARGET_FLT_EVAL_METHOD): New.

	* config/float-c4x.h, config/float-i128.h, config/float-i32.h,
	config/float-i386.h, config/float-i64.h, config/float-m68k.h,
	config/float-sh.h, config/float-sparc.h, config/float-vax.h: Remove.
	* ginclude/float.h: New.

2002-09-03  Stan Shebs  <shebs@apple.com>

	* config/darwin.h (WARN_FOUR_CHAR_CONSTANTS): Remove, never used.
	(DWARF2_DEBUGGING_INFO): Remove until assembler accepts Dwarf-2.
	(PREFERRED_DEBUGGING_TYPE): Ditto.
	(ASM_OUTPUT_IDENT): Remove empty definition.

2002-09-03  Steve Ellcey  <sje@cup.hp.com>

	* config.gcc (ia64*-*-hpux*): Add ia64-c.o to c_target and
	cxx_target.
	* config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Register pragma
	handling routine for builtin pragma.
	* config/ia64/ia64-protos.h (ia64_hpux_handle_builtin_pragma):
	Registered pragma handling routine.
	* ia64-c.c (ia64_hpux_handle_builtin_pragma): Ditto.
	(ia64_hpux_add_pragma_builtin) New subroutine used by above.
	If builtin pragma seen for math routine and C89 conformance is
	requested use different math function in order to set errno.
	* t-ia64 (ia64-c.o): Add new rule for new file.

2002-09-03  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.md ("movti"): Add Q->Q alternative.
	("*movdi_64", "*movdi_31", "*movsi", "movhi", "movqi_64",
	"movqi", "*movdf_64", "*movdf_31", "*movsf"): Likewise.

	("*movti_ss", "*movdi_ss", "*movsi_ss", "*movdf_ss",
	"*movsf_ss"): Remove.

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

	* pa32-regs.h (CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P):
	Delete macros.

2002-09-03   Arati Dikey  <aratid@kpit.com>

	* h8300.c (asm_file_start): Corrected optimization comment.

2002-09-03  Stan Shebs  <shebs@apple.com>

	* c-lang.c (recognize_objc_keyword): Remove, no longer used.
	* c-tree.h (recognize_objc_keyword): Remove decl.
	* c-typeck.c (comp_target_types): Update a comment.

2002-09-03  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (s390_decompose_address): Remove STRICT parameter
	and register validity checks.
	(general_s_operand): Adapt to s390_decompose_address interface change.
	(q_constraint): Likewise.
	(s390_expand_plus_operand): Likewise.
	(legitimiate_address_p): Likewise.
	(legitimate_la_operand_p): Likewise.
	(legitimize_la_operand): Likewise.
	(print_operand_address): Likewise.
	(print_operand): Likewise.

Tue Sep  3 11:32:14 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	PR objc/5956:
	* objc/objc-act.c (build_typed_selector_reference): Fix typo which
	was causing the new selector never to match the existing ones
	(Patch by Alexander Malmberg <alexander@malmberg.org>).

2002-09-03  Graham Stott  <graham.stott@btinternet.com>

	* config/i386/i386.md ("femms"): Add "memory" attr "none".

2002-09-03  Graham Stott  <graham.stott@btinternet.com>

	* expr.c (expand_expr): Remove extraneous comment and code.

2002-09-02  Nathan Sidwell  <nathan@codesourcery.com>

	* stor-layout (finish_builtin_struct): Renamed and moved from c++
	frontend. Take chain of fields. Allow NULL alignment type.
	* tree.h (finish_builtin_struct): Declare.

2002-09-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* config/alpha/alpha.c config/alpha/alpha.h config/alpha/alpha.md
	config/alpha/elf.h config/alpha/unicosmk.h config/alpha/vms.h
	config/arc/arc.c config/arc/arc.h config/arm/aout.h
	config/arm/arm.c config/arm/arm.h config/arm/arm.md
	config/avr/avr.h config/d30v/d30v.h config/dbxcoff.h
	config/dbxelf.h config/elfos.h config/fr30/fr30.h config/frv/frv.h
	config/i386/i386.c config/i386/i386.md config/i386/sco5.h
	config/ia64/ia64.h config/ip2k/ip2k.h config/m68hc11/m68hc11.md
	config/m68k/hp320.h config/m68k/m68k.c config/m68k/m68k.md
	config/m68k/mot3300.h config/m68k/sgs.h config/m68k/tower-as.h
	config/m88k/m88k.c config/m88k/m88k.h config/mcore/mcore-pe.h
	config/mcore/mcore.c config/mips/mips.c config/mips/mips.h
	config/ns32k/ns32k.md config/pa/pa-linux.h config/pa/pa.c
	config/pa/pa.h config/pa/pa.md config/romp/romp.h
	config/rs6000/linux64.h config/rs6000/lynx.h
	config/rs6000/rs6000.c config/rs6000/sysv4.h config/rs6000/xcoff.h
	config/s390/s390.c config/s390/s390.md config/sh/sh.c
	config/sparc/sparc.c config/sparc/sysv4.h
	config/stormy16/stormy16.h dbxout.c defaults.h dwarf2out.c
	dwarfout.c except.c final.c varasm.c vmsdbgout.c: Replace
	ASM_OUTPUT_INTERNAL_LABEL macro with a call to the target hook.

	* doc/tm.texi: Update docs.
	* default.h (ASM_OUTPUT_INTERNAL_LABEL): Don't define.
	* system.h (ASM_OUTPUT_INTERNAL_LABEL): Poison.

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

	* Makefile.in (sdbout.o, insn-output.o): Depend on $(TARGET_H).
	* arc.c (arc_internal_label): New function.
	(TARGET_ASM_INTERNAL_LABEL): Set.
	* arc.h (ASM_OUTPUT_INTERNAL_LABEL): Delete.
	* arm.c (arm_internal_label): New function.
	(TARGET_ASM_INTERNAL_LABEL): Set.
	* arm.h (ASM_OUTPUT_INTERNAL_LABEL): Delete.
	* arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Delete.
	* i370.c (i370_internal_label): New function.
	(TARGET_ASM_INTERNAL_LABEL): Set.
	* i370.h (ASM_OUTPUT_INTERNAL_LABEL): Delete.
	* m68k/hp320.h (ASM_OUTPUT_INTERNAL_LABEL): Delete.
	* m68k.c (m68k_hp320_internal_label): New function.
	(TARGET_ASM_INTERNAL_LABEL): Set.
	* m88k.c (m88k_internal_label): New function.
	(TARGET_ASM_INTERNAL_LABEL): Set.
	* m88k.h (ASM_OUTPUT_INTERNAL_LABEL): Delete.
	* defaults.h (ASM_OUTPUT_INTERNAL_LABEL): Set to target hook.
	* genoutput.c (output_prologue): Include target.h in output file.
	* output.h (default_internal_label): Declare.
	* sdbout.c: Include target.h.
	* target-def.h (TARGET_ASM_INTERNAL_LABEL): Set and add to
	TARGET_ASM_OUT.
	* target.h (internal_label): Add to struct gcc_target.
	* varasm.c (default_internal_label): New function.

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

	* alpha.h (ASM_OUTPUT_INTERNAL_LABEL): Delete.
	* avr.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* c4x.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* cris.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* d30v.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* darwin.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* dsp16xx.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* elfos.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* h8300.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/att.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/bsd.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/i386-coff.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/lynx-ng.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/lynx.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/sco5.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i960/i960.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/3b1.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/amix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/atari.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/mot3300.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/tower-as.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m88k.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* mcore.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* mips.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* mmix-protos.h (mmix_asm_output_internal_label): Likewise.
	* mmix.c (mmix_asm_output_internal_label): Likewise.
	* mmix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* ns32k.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* pa.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* pdp11.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* romp.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* rs6000/xcoff.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sh/coff.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sh/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/linux.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/pbd.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/vxsim.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* stormy16.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* svr3.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* vax.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.

	* defaults.h (ASM_OUTPUT_INTERNAL_LABEL): Define.

2002-08-31  Richard Henderson  <rth@redhat.com>

	* expr.c (block_move_libcall_safe_for_call_parm): Fix thinko.

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

	* pa.c (pa_globalize_label): Add ATTRIBUTE_UNUSED to prototype.

2002-08-30  Richard Henderson  <rth@redhat.com>

	PR opt/7515
	* c-objc-common.c: Include target.h.
	(c_cannot_inline_tree_fn): Don't auto-inline functions that
	don't bind locally.  Factor setting DECL_UNINLINABLE.
	* Makefile.in (c-objc-common.o): Update.

2002-08-30  Janis Johnson  <janis187@us.ibm.com>

	* doc/install.texi (Configuration, Building): Fix a typo and
	some formatting directives.

2002-08-30  Paul Koning <pkoning@equallogic.com>

	* doc/c-tree.texi (RDIV_EXPR): Fix typo.
	* doc/rtl.texi (post_modify): Remove misplaced text, remove "not
	implemented" note.
	* doc/md.texi (IP2K): Move machine-specific constraints before MIPS
	for alphabetic order.
	* doc/tm.texi (TARGET_FLOAT_FORMAT): Update description for
	VAX_FLOAT_FORMAT.  Remove reference to HOST_FLOAT_FORMAT.
	(VAX_HALFWORD_ORDER): Document.
	(LARGEST_EXPONENT_IS_NORMAL): Remove note about being only for
	IEEE float format.
	(TARGET_SCHED_ISSUE_RATE): Reword reference to MAX_DFA_ISSUE_RATE.
	(ASM_OUTPUT_LABEL_REF): Fix font.
	(CASE_VECTOR_SHORTEN_MODE): Ditto.

2002-08-30  Denis Chertykov  <denisc@overta.ru>

	* config/ip2k/ip2k.c (ip2k_set_compare): Remove all const_double
	stuff.
	(ip2k_gen_unsigned_comp_branch): Handle CONST_INT and
	CONST_DOUBLE constants.

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

	* config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Move language-
	related defines to...
	(SUBTARGET_LANGUAGE_CPP_BUILTINS): ...here.
	* config/alpha/netbsd.h (SUBTARGET_LANGUAGE_CPP_BUILTINS): Redefine
	as a no-op.

2002-08-30  Krister Walfridsson  <cato@df.lth.se>

	* config/arm/arm.c (arm_asm_output_labelref): New function.
	* config/arm/arm.h (ASM_OUTPUT_LABELREF): Call arm_asm_output_labelref.
	* config/arm/arm-protos.h: Add prototype for arm_asm_output_labelref.

2002-08-29  Rodney Brown  <rbrown64@csc.com.au>

	* doc/install.texi (Specific, alpha*-dec-osf*): Add "virtual
	memory exhausted" workarounds.

2002-08-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* diagnostic.c (fancy_abort): Don't repeat "internal error".
	* toplev.c (crash_signal): Likewise.

Fri Aug 30 00:33:37 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	* doc/cpp.texi (__NEXT_RUNTIME__): Extended documentation.
	* doc/invoke.texi (-fnext-runtime, -Wno-protocol, -Wselector):
	Extended, updated documentation.
	(-Wundeclared-selector): Documented.

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

	* config/chorus.h: Consistently define *_DEBUGGING_INFO with
	the value 1.  Do not undef before defining.
	* config/darwin.h: Likewise.
	* config/dbx.h: Likewise.
	* config/dbxcoff.h: Likewise.
	* config/dbxelf.h: Likewise.
	* config/elfos.h: Likewise.
	* config/interix.h: Likewise.
	* config/lynx-ng.h: Likewise.
	* config/lynx.h: Likewise.
	* config/netware.h: Likewise.
	* config/psos.h: Likewise.
	* config/svr3.h: Likewise.
	* config/alpha/alpha.h: Likewise.
	* config/alpha/elf.h: Likewise.
	* config/alpha/vms.h: Likewise.
	* config/arc/arc.h: Likewise.
	* config/arm/aout.h: Likewise.
	* config/arm/coff.h: Likewise.
	* config/c4x/c4x.h: Likewise.
	* config/h8300/h8300.h: Likewise.
	* config/i386/cygwin.h: Likewise.
	* config/i386/djgpp.h: Likewise.
	* config/i386/gas.h: Likewise.
	* config/i386/gstabs.h: Likewise.
	* config/i386/i386-coff.h: Likewise.
	* config/i386/i386-interix.h: Likewise.
	* config/i386/sco5.h: Likewise.
	* config/i386/svr3dbx.h: Likewise.
	* config/i386/sysv3.h: Likewise.
	* config/i386/win32.h: Likewise.
	* config/i386/x86-64.h: Likewise.
	* config/i960/i960.h: Likewise.
	* config/ia64/ia64.h: Likewise.
	* config/ip2k/ip2k.h: Likewise.
	* config/m32r/m32r.h: Likewise.
	* config/m68k/3b1.h: Likewise.
	* config/m68k/3b1g.h: Likewise.
	* config/m68k/ccur-GAS.h: Likewise.
	* config/m68k/coff.h: Likewise.
	* config/m68k/hp2bsd.h: Likewise.
	* config/m68k/hp310g.h: Likewise.
	* config/m68k/hp320g.h: Likewise.
	* config/m68k/hp3bsd.h: Likewise.
	* config/m68k/hp3bsd44.h: Likewise.
	* config/m68k/linux-aout.h: Likewise.
	* config/m68k/m68k-aout.h: Likewise.
	* config/m68k/mot3300.h: Likewise.
	* config/m68k/netbsd.h: Likewise.
	* config/m68k/openbsd.h: Likewise.
	* config/m68k/pbb.h: Likewise.
	* config/m68k/plexus.h: Likewise.
	* config/m68k/sun2.h: Likewise.
	* config/m68k/sun3.h: Likewise.
	* config/m68k/tower-as.h: Likewise.
	* config/m68k/vxm68k.h: Likewise.
	* config/m88k/aout-dbx.h: Likewise.
	* config/m88k/m88k-aout.h: Likewise.
	* config/mcore/mcore-elf.h: Likewise.
	* config/mcore/mcore-pe.h: Likewise.
	* config/mips/elf.h: Likewise.
	* config/mips/elf64.h: Likewise.
	* config/mips/iris5gas.h: Likewise.
	* config/mips/iris6.h: Likewise.
	* config/mips/mips.h: Likewise.
	* config/mips/sni-gas.h: Likewise.
	* config/mmix/mmix.h: Likewise.
	* config/ns32k/netbsd.h: Likewise.
	* config/pa/pa64-hpux.h: Likewise.
	* config/romp/romp.h: Likewise.
	* config/rs6000/sysv4.h: Likewise.
	* config/rs6000/xcoff.h: Likewise.
	* config/sh/coff.h: Likewise.
	* config/sh/elf.h: Likewise.
	* config/sparc/linux64.h: Likewise.
	* config/sparc/liteelf.h: Likewise.
	* config/sparc/netbsd.h: Likewise.
	* config/sparc/openbsd.h: Likewise.
	* config/sparc/pbd.h: Likewise.
	* config/sparc/sp64-elf.h: Likewise.
	* config/sparc/sp86x-elf.h: Likewise.
	* config/sparc/sparc.h: Likewise.
	* config/vax/vax.h: Likewise.
	* config/vax/vaxv.h: Likewise.

2002-08-29  "Dhananjay R. Deshpande" <dhananjayd@kpit.com>

	* h8300.c (shift_alg_hi): Various tweaks to improve performance
	of HImode shifts.
	(get_shift_alg): Corresponding changes.

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

	* som.h (ALWAYS_STRIP_DOTDOT): Define to 1.

2002-08-29  Richard Henderson  <rth@redhat.com>

	* expr.h (enum block_op_methods): New.
	(emit_block_move): Update prototype.
	* expr.c (block_move_libcall_safe_for_call_parm): New.
	(emit_block_move_via_loop): New.
	(emit_block_move): Use them.  New argument METHOD.
	(emit_push_insn): Always respect the given alignment.
	(expand_assignment): Update call to emit_block_move.
	(store_expr, store_field, expand_expr): Likewise.
	* builtins.c (expand_builtin_apply): Likewise.
	(expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
	* function.c (expand_function_end): Likewise.
	* config/sh/sh.c (sh_initialize_trampoline): Likewise.
	* config/sparc/sparc.c (sparc_va_arg): Likewise.
	* calls.c (expand_call, emit_library_call_value_1): Likewise.
	(save_fixed_argument_area): Use emit_block_move with
	BLOCK_OP_CALL_PARM instead of move_by_pieces.
	(restore_fixed_argument_area): Likewise.
	(store_one_arg): Fix alignment parameter to emit_push_insn.

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

	* install.texi (hppa64-hp-hpux11*): Document installation procedure.

2002-08-29  Catherine Moore  <clm@redhat.com>

	* config/v850/v850.h (MULDI3_LIBCALL, UCMPDI2_LIBCALL, CMPDI2_LIBCALL,
	NEGDI2_LIBCALL, INIT_TARGET_OPTABS, MASK_STRICT_ALIGN): Define.
	(PREDICATE_CODES): Include new predicates.
	(RTX_COSTS): Handle UMOD and UDIV.  Tune MULT for v850e.
	(TARGET_SWITCHES):  Add strict-align.
	(TARGET_STRICT_ALIGN): New.
	(MASK_DEFAULT, STRICT_ALIGNMENT):  Redefine.
	* config/v850/t-v850 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES):
	Define.
	(LIB1ASMFUNCS): Add v850_negdi2, v850_cmpdi2, v850_ucmpdi2,
	v850_muldi3.
	* config/v850/lib1funcs.asm (L_callt_save_r2_r29, L_return_r2_r29,
	L_callt_save_r2_r31, L_return_r2_r31,
	L_save_all_interrupt): Change addi to add.
	(L_save_interrupt, L_return_interrupt): Rework.
	(__return_r31):  Correct .size directive.
	(mulsi3, divsi3, udivsi3, umodsi3, modsi3): Tune for v850e.
	(v850_negdi2, v850_cmpdi2, v850_ucmpdi2, v850_muldi3):
	New routines.
	* config/v850/v850.c (expand_prologue): Call
	gen_callt_save_interrupt, gen_callt_restore_all_interrupt,
	gen_callt_return_interrupt and gen_callt_save_all_interrupt.
	(reg_or_int9_operand): New predicate.
	(reg_or_const_operand): New routine.
	* config/v850/v850.md (return_interrupt): Changed from
	restore_interrupt.
	(callt_save_all_interrupt): Changed from save_all_interrupt_v850e.
	(callt_save_interrupt): Change save sequence.
	(callt_return_interrupt): New.
	(save_interrupt): Don't use runtime function for LONG_CALLS
	and TARGET_PROLOG_FUNCTION.
	(save_all_interrupt): Likewise.
	(mulsi3): Use new predicate.
	(moviscc): Disallow some combination of constants.
	Fix define_split for sasf insns, so that it will not generate bad
	code if operand0 and operand5 are the same.
	* config/v850/v850-protos.h: Prototype new predicates.

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

	* config/rs6000/rs6000.c (processor_target_table): Add 405f.
	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Likewise.

2002-08-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-common.c (builtin_define_type_precision): New function.
	(cb_register_builtins): Use it.  Define __WCHAR_UNSIGNED__ is
	wchar_t is unsigned in C++.
	* doc/cpp.texi (Common Predefined Macros): Document
	__WCHAR_UNSIGNED__, __CHAR_BIT__, __WCHAR_BIT__, __SHRT_BIT__,
	__INT_BIT__, __LONG_BIT__, __LONG_LONG_BIT__, __FLOAT_BIT__,
	__DOUBLE_BIT__, __LONG_DOUBLE_BIT__.

2002-08-28  Sylvain Pion <pion@cs.nyu.edu>

	* doc/invoke.texi (-Wreorder): Remove remaining pieces from the generic
	section.  Mention that it is enabled by -Wall.
	(-Wall): Mention that there can be language-specific warnings as well.
	(-Wctor-dtor-privacy): Mention that it is enabled by default.
	(-Wnon-virtual-dtor): Mention that it is enabled by -Wall.

Wed Aug 28 15:35:17 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (calc_live_regs): Save FPSCR_REG in an interrupt handler
	if it is ever live.

	* sh.c (sh_handle_interrupt_handler_attribute): Reject interrupt_handler
	attribute for SHCOMPACT.

	* sh.h (OVERRIDE_OPTIONS): If align_function isn't set, set it
	appropriately.
	(FUNCTION_BOUNDARY): Specify only the minimum alignment required
	by the ABI.

	* sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Also handle TImode case.

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

	* config.gcc (mips*-*-netbsd*): Set target_cpu_default to
	"MASK_GAS|MASK_ABICALLS".
	* config/mips/netbsd.h (TARGET_ENDIAN_DEFAULT)
	(TARGET_DEFAULT): Remove.
	(MACHINE_TYPE): Undefine before defining.
	(DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE): Remove.

2002-08-27  Mark Mitchell  <mark@codesourcery.com>

	* c-common.c (warn_abi): New variable.
	* c-common.h (warn_abi): Likewise.
	* c-opts.c (COMMAND_LINE_OPTIONS): Add -Wabi.
	(c_common_decode_option): Handle it.
	* doc/invoke.texi: Document -Wabi.

Tue Aug 27 23:03:52 2002  Nicola Pero  <n.pero@mi.flashnet.it>

	* c-common.c (warn_undeclared_selector): New variable.
	* c-common.h (warn_undeclared_selector): Idem.
	* c-opts.c (c_common_decode_option): Set warn_undeclared_selector
	to on when -Wundeclared-selector is found.
	(COMMAND_LINE_OPTIONS): Added -Wundeclared-selector.
	* objc/objc-act.c (build_selector_expr): If
	warn_undeclared_selector is set, check that the selector has
	already been defined, and emit a warning if not.

2002-08-27  Nick Clifton  <nickc@redhat.com>
	    Catherine Moore  <clm@redhat.com>
	    Jim Wilson  <wilson@cygnus.com>

	* config.gcc: Add v850e-*-* target.
	Add --with-cpu= support for v850.
	* config/v850/lib1funcs.asm: Add v850e callt functions.
	* config/v850/v850.h: Add support for v850e target.
	* config/v850/v850.c: Add functions to support v850e target.
	* config/v850/v850-protos.h: Add prototypes for new functions in v850.c.
	* config/v850/v850.md: Add patterns for v850e instructions.
	* doc/invoke.texi: Document new v850e command line switches.

Tue Aug 27 18:30:47 2002  J"orn Rennecke <joern.rennecke@superh.com>
			  Aldy Hernandez <aldyh at redhat dot com>

	* doc/tm.texi: Applied numerous fixes to the automaton based
	scheduler descrition.

Tue Aug 27 19:51:05 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (classify_argument): Handle variable sized objects.

Tue Aug 27 19:18:16 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_expand_int_movcc): Fix RTL sharing problem

Tue Aug 27 18:01:45 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* libgcc2.c (__bb_exit_func): Properly write the summarized statistics.

Tue Aug 27 18:00:11 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (classify_argument): Properly compute word size of the analyzed object.

Tue Aug 27 14:39:09 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (attribute type): Add types mt_group, fload, pcfload, fpul_gp,
	mac_gp ftrc_s and cwb.  Add / Adjust definitions in individual insn
	accordingly.
	(attribute insn_class): Provide default definitions based on type.
	Remove all insn-specific settings.
	(various function units): Remove old SH4 scheduling.
	(branch_zero, dfp_comp, late_fp_use, any_fp_comp, any_int_load):
	New attributes.  Set them where appropriate.
	(cpu unit FS): Don't define / use.
	(F3, load_store): New cpu units.
	(F01): New reservation.
	(all insn_reservations): Make dependent on sh4 pipeline model.
	Fix latencies.
	(nil, reg_mov, freg_mov, sh4_fpul_gp, sh4_call): New insn_reservations.
	(sh4_mac_gp, fp_arith_ftrc, arith3, arith3b): Likewise.
	(mt insn_reservation): Use type mt_group.
	(insn_reservation load_store): Split into sh4_load, sh4_load_si,
	sh4_fload and sh4_store.
	(insn_reservation branch_zero and branch): Replace with sh4_branch.
	(insn_reservation branch_far): Replace with sh4_return.
	(insn_reservation return_from_exp): Rename to:
	(sh4_return_from_exp).  Change to be just d_lock*5.
	(insn_reservation lds_to_pr): Rename to:
	(sh4_lds_to_pr).  Change to be just d_lock*2.
	(insn_reservation ldsmem_to_pr, sts_from_pr): Change to be just
	d_lock*2.
	(insn_reservation prload_mem): Rename to:
	(sh4_prstore_mem).  Change to d_lock*2,nothing,memory.
	(insn_reservation fpscr_store): Rename to:
	(fpscr_load).  Change to d_lock,nothing,F1*3.
	(insn_reservation fpscr_store_mem): Rename to:
	(fpscr_load_mem).  Change to d_lock,nothing,(F1+memory),F1*2.
	(insn_reservation multi): Change to
	d_lock,(d_lock+f1_1),(f1_1|f1_2)*3,F2.
	(insn_reservation fp_arith): Change to issue,F01,F2.
	(insn_reservation fp_div: Change to issue,F01+F3,F2+F3,F3*7,F1+F3,F2.
	(insn_reservation dp_float): Change to issue,F01,F1+F2,F2.
	(insn_reservation fp_double_arith): Change to issue,F01,F1+F2,fpu*4,F2.
	(insn_reservation fp_double_cmp): Change to
	d_lock,(d_lock+F01),F1+F2,F2.
	(insn_reservation dp_div): Change to
	issue,F01+F3,F1+F2+F3,F2+F3,F3*16,F1+F3,(fpu+F3)*2,F2.
	* sh.c (flow_dependent_p, flow_dependent_p_1): New functions.
	(sh_adjust_cost, SHcompact): Differentiate between different
	kinds of dependencies.  Drop factor of ten for superscalar.
	Use new instruction types.  Add new exception rules.

	* sh.md (mulhisi3, umulhisi3: Add a REG_EQUAL note.

	* sh.md (mperm_w): Add DONE.

2002-08-27  David Edelsohn  <edelsohn@gnu.org>

	* longlong.h: Import current PowerPC defintion from GMP-4.1.

	* config/rs6000/rs6000.h (MIN_UNITS_PER_WORD): Add IN_LIBGCC2 case.

	* config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Undef before define.

Tue Aug 27 13:53:57 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (MAX_FIXED_MODE_SIZE): Define.

2002-08-27  Gabriel Dos Reis  <gdr@soliton.integrable-solutions.net>

	* doc/cpp.texi (Common Predefined Macros): Don't mess with table
	delimiter.

2002-08-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>

	* c-common.c (cpp_define_data_format): New function.
	(cb_register_builtins): Call it.

	* doc/cpp.texi (Common Predefined Macros): Document
	__TARGET_BITS_ORDER__, __TARGET_BYTES_ORDER__,
	__TARGET_INT_WORDS_ORDER__, __TARGET_FLOAT_WORDS_ORDER__,
	__TARGET_FLOAT_FORMAT__, __TARGET_USES_VAX_F_FLOAT__,
	__TARGET_USES_VAX_D_FLOAT__, __TARGET_USES_VAX_G_FLOAT__,
	__TARGET_USES_VAX_H_FLOAT__.

2002-08-26  Ziemowit Laski <zlaski@apple.com>

	* objc/objc-act.c (get_super_receiver): If inside a class method
	of a category, cast the receiver to 'id' before accessing the 'isa'
	field so that <objc/objc-class.h> is not needed.  For NeXT runtime.

2002-08-26  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390-protos.h (s390_function_prologue,
	s390_function_epilogue): Remove.
	config/s390/s390.c (s390_function_prologue, s390_function_epilogue,
	TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.

	config/s390/s390.c (s390_machine_dependent_recorg): New function.
	config/s390/s390-protos.h (s390_machine_dependent_reorg): Declare it.
	config/s390/s390.h (MACHINE_DEPENDENT_REORG): Call it.
	config/s390/s390.c (s390_split_branches, s390_chunkify_pool): Adapt
	to being called from MACHINE_DEPENDENT_REORG.  Update regs_ever_live.

	config/s390/s390.c (s390_frame_info): Inline save_fprs_p.  Always
	assume BASE_REGISTER and RETURN_REGNUM need to be saved.
	(s390_emit_prologue): Assume RETURN_REGNUM to be saved iff
	function is not a leaf function.  Use save_gprs and restore_gprs.
	(s390_emit_epilogue): Likewise.
	(save_gprs, restore_gprs): New functions.
	(struct s390_frame): Remove return_reg_saved_p member.
	(save_fprs_p): Remove.
	(s390_optimize_prolog): New function.
	(s390_legitimate_reload_constant): Remove now unnecessary check.

	(s390_function_count): Remove.
	(s390_output_symbolic_const): Replace s390_function_count by
	current_function_funcdef_no.
	(s390_output_constant_pool): Likewise.

	(legitimize_pic_address): Use regs_ever_live to track PIC register
	instead of current_function_uses_pic_offset_table.
	(s390_emit_prologue): Likewise.
	config/s390/s390.md ("call", "call_value"): Likewise.

2002-08-26  Neil Booth  <neil@daikokuya.co.uk>

	* c-opts.c (find_opt): Don't complain about wrong languages
	here.  Return exact matches even for wrong language.
	(c_common_decode_option): Complain about wrong languages
	here.

2002-08-24  Stuart Hastings  <stuart@apple.com>

	* function.h (struct function): Add flag
	all_throwers_are_sibcalls.
	* except.c (set_nothrow_function_flags): Replaces
	nothrow_function_p. Set new flag.
	* except.h (set_nothrow_function_flags): Replaces
	nothrow_function_p.
	* dwarf2out.c (struct dw_fde_struct): Add flag
	all_throwers_are_sibcalls.
	(output_call_frame_info): Test it.
	(dwarf2out_begin_prologue) Propagate it from cfun to
	dw_fde_struct.
	* toplev.c (rest_of_compilation): Update calls to
	nothrow_function_p.

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

	* ggc-page.c (compute_inverse): Short circuit calculation for
	object sizes larger than half a page.

2002-08-23  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_elf_select_section): Treat
	DEFAULT_ABI == ABI_AIX like PIC.  Test PIC & reloc for readonly
	default.
	(rs6000_elf_unique_section): Likewise.

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

	* ns32k.c (ns32k_globalize_label): Delete.
	* ns32k.h (ASM_OUTPUT_LABEL, TARGET_ASM_GLOBALIZE_LABEL): Delete.

2002-08-23  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (output_mi_thunk): Don't determine insns
	for loading delta with num_insns_constant_wide.  Calculate
	delta_low, delta_high without using a conditional.

2002-08-22  Jason Merrill  <jason@redhat.com>

	* c-common.h (RETURN_STMT_EXPR): Rename from RETURN_EXPR.
	* c-common.def: Adjust.
	* c-dump.c (c_dump_tree): Adjust.
	* c-semantics.c (genrtl_return_stmt): Adjust.
	* c-pretty-print.c (pp_c_statement): Adjust.
	* tree-inline.c (copy_body_r): Adjust.

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

	* ggc-page.c: Avoid division in ggc_set_mark.
	(DIV_MULT, DIV_SHIFT, OFFSET_TO_BIT, inverse_table,
	compute_inverse): New.
	(ggc_set_mark, ggc_marked_p): Use OFFSET_TO_BIT.
	(init_ggc): Initialize inverse_table.

2002-08-22  Tom Tromey  <tromey@redhat.com>

	* doc/install.texi (Configuration): Document --datadir.

2002-08-22  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in ($(BUILD_PREFIX_1)varray.o): Depend on $(GGC_H).

2002-08-22  Hans-Peter Nilsson  <hp@bitrange.com>

	* gengtype-lex.l (ID): Allow underscore as first character.

2002-08-21  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_xcoff_asm_globalize_label): New
	function.
	(rs6000_xcoff_asm_named_section): Rename.
	* config/rs6000/xcoff.h (TARGET_ASM_GLOBALIZE_LABEL): Define.

2002-08-21  Tom Tromey  <tromey@redhat.com>

	For PR java/6005 and PR java/7611:
	* fold-const.c (fold_truthop): Use can_use_bit_fields_p.
	(fold): Likewise.
	* langhooks.c (lhd_can_use_bit_fields_p): New function.
	* langhooks-def.h (lhd_can_use_bit_fields_p): Declare.
	(LANG_HOOKS_CAN_USE_BIT_FIELDS_P): New define.
	(LANG_HOOKS_INITIALIZER): Use it.
	* langhooks.h (struct lang_hooks) [can_use_bit_fields_p]: New
	field.

2002-08-21  Stan Shebs  <shebs@apple.com>

	* tree.c (finish_vector_type): Fix a typo in a comment.
	* Makefile.in: Fix "the the" stutters in comments.
	* genautomata.c: Ditto.
	* ifcvt.c: Ditto.
	* regrename.c: Ditto.
	* config/alpha/alpha.c: Ditto.
	* config/alpha/vms-crt0-64.c: Ditto.
	* config/alpha/vms-crt0.c: Ditto.
	* config/alpha/vms-psxcrt0-64.c: Ditto.
	* config/alpha/vms-psxcrt0.c: Ditto.
	* config/d30v/d30v.h: Ditto.
	* config/fr30/fr30.h: Ditto.
	* config/rs6000/rs6000.c: Ditto.
	* config/stormy16/stormy16.h: Ditto.
	* doc/md.texi: Ditto.

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

	* cppinit.c (remove_dup_nonsys_dirs): Fix warning and return value.

2002-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-decl.c (grokdeclarator): Make invalid combinations with long,
	short, signed or unsigned into hard errors.  Fixes PR c/4319.
	Also make duplicate modifiers such as "short short" into hard
	errors.

2002-08-21  Andrew Pinski <pinskia@physics.uc.edu>
	    Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* doc/tm.texi (TARGET_ASM_GLOBALIZE_LABEL): Move '@end deftypefn'
	to the actual end.  Add '@end table' and '@table @code'.

2002-08-20  Geoffrey Keating  <geoffk@redhat.com>

	* doc/tm.texi (Label Output): Add missing '@end deftypefn'.

	* unroll.c (biv_total_increment): Don't try to compute the total
	increment for FP BIVs.

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

	* alpha.c (TARGET_ASM_GLOBALIZE_LABEL): Define for unicosmk.
	* alpha/elf.h (ASM_OUTPUT_EXTERNAL_LIBCALL,
	ASM_OUTPUT_ALIGNED_BSS): Use target hook.
	* alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS): Likewise.
	* alpha/unicosmk.h (ASM_GLOBALIZE_LABEL): Delete.
	* arm/aof.h (ASM_GLOBALIZE_LABEL): Likewise.
	(GLOBAL_ASM_OP): Define.
	* arm.c (aof_globalize_label): New function.
	(TARGET_ASM_GLOBALIZE_LABEL): Define for AOF.
	* arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook.
	* c4x.c (c4x_globalize_label): New function.
	(TARGET_ASM_GLOBALIZE_LABEL): Define for c4x.
	* c4x.h (ASM_GLOBALIZE_LABEL): Delete.
	(GLOBAL_ASM_OP): Define.
	* cris/aout.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use target hook.
	* darwin-protos.h (darwin_globalize_label): Declare.
	* darwin.c (darwin_globalize_label): New function.
	* darwin.h (ASM_DECLARE_CLASS_REFERENCE): Use target hook.
	(ASM_GLOBALIZE_LABEL): Delete.
	(GLOBAL_ASM_OP, TARGET_ASM_GLOBALIZE_LABEL): Define.
	* dsp16xx.c (asm_output_common): Use target hook.
	* elfos.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
	* frv.h (ASM_GLOBALIZE_LABEL): Delete.
	(GLOBAL_ASM_OP): Define.
	* i370.c (i370_globalize_label): New function.
	(TARGET_ASM_GLOBALIZE_LABEL): Define for i370.
	* i370.h (ASM_GLOBALIZE_LABEL): Delete.
	* i386.c (ix86_asm_file_end): Use target hook.
	* i386/sco5.h (ASM_GLOBALIZE_LABEL): Don't undef.
	(ASM_OUTPUT_EXTERNAL_LIBCALL): Use target hook.
	* ia64.c (ia64_asm_output_external): Likewise.
	* ia64/sysv4.h: Update comment.
	* m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook.
	* mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
	* mips/iris5.h (ASM_OUTPUT_WEAK_ALIAS): Use target hook.
	* mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
	* mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use target hook.
	* mmix-protos.h (mmix_asm_globalize_label): Delete.
	* mmix.c (mmix_asm_globalize_label): Likewise.
	* mmix.h (ASM_GLOBALIZE_LABEL): Likewise.
	(GLOBAL_ASM_OP): Define.
	* ns32k.c (ns32k_globalize_label): New function.
	* ns32k.h (TARGET_ASM_GLOBALIZE_LABEL): Define for ns32k.
	(ASM_GLOBALIZE_LABEL): Delete.
	* pa/pa-linux.h (ASM_GLOBALIZE_LABEL): Don't undef.
	(TARGET_ASM_GLOBALIZE_LABEL): Undefine.
	* pa.c (pa_globalize_label): New function.
	* pa.h (ASM_GLOBALIZE_LABEL): Delete.
	(TARGET_ASM_GLOBALIZE_LABEL): Define for pa.
	* rs6000/darwin.h (ASM_GLOBALIZE_LABEL): Delete.
	(GLOBAL_ASM_OP): Define.
	(TARGET_ASM_GLOBALIZE_LABEL): Undef.
	* rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Use target hook.
	* rs6000/xcoff.h (ASM_GLOBALIZE_LABEL): Delete.
	(GLOBAL_ASM_OP): Define.
	* v850.c (v850_output_aligned_bss): Use target hook.
	* vax.c (vms_globalize_label): New function.
	(TARGET_ASM_GLOBALIZE_LABEL): Define for vms.
	* vax/vms.h (ASM_GLOBALIZE_LABEL): Delete.
	(GLOBAL_ASM_OP): Define.
	* defaults.h (ASM_GLOBALIZE_LABEL): Delete.
	* doc/tm.texi: Update docs.
	* dwarf2out.c (default_eh_frame_section, output_die_symbol): Use
	target hook.
	* final.c (output_alternate_entry_point): Likewise.
	* hooks.c (hook_FILEptr_constcharptr_void): New function.
	* hooks.h (hook_FILEptr_constcharptr_void): Declare.
	* output.h (assemble_global): Delete.
	(default_globalize_label): Declare.
	* system.h (ASM_GLOBALIZE_LABEL): Poison.
	* target-def.h (TARGET_ASM_GLOBALIZE_LABEL): Define.
	(TARGET_ASM_OUT): Add TARGET_ASM_GLOBALIZE_LABEL.
	* target.h (gcc_target): Add globalize_label member.
	* varasm.c (asm_output_bss, asm_output_aligned_bss,
	globalize_decl): Use target hook.
	(assemble_global): Delete.
	(default_globalize_label): New function.

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

	* dsp16xx.h (dsp16xx_umulhi3_libcall): Delete.

2002-08-20  Devang Patel  <dpatel@apple.com>
	* tree.c (get_qualified_type): Add TYPE_CONTEXT check.

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

	* arc.c (output_shift): Use stdio instead of asm_fprintf.
	* arm.c (thumb_output_function_prologue): Likewise.
	* avr.c (print_operand): Likewise.
	* c4x.c (c4x_print_operand): Likewise.
	* c4x.h (ASM_OUTPUT_INTERNAL_LABEL, TRAMPOLINE_TEMPLATE,
	ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Likewise.
	* cris.c (cris_target_asm_function_prologue,
	cris_asm_output_mi_thunk): Likewise.
	* h8300.c (print_operand): Likewise.
	* h8300.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
	* ip2k.c (print_operand): Likewise.  Fix format specifier.
	* m68hc11.c (asm_print_register, print_operand,
	print_operand_address): Use stdio instead of asm_fprintf.
	(print_operand_address): Fix format specifier.
	* m68hc11.h (FUNCTION_PROFILER, ASM_OUTPUT_ADDR_DIFF_ELT,
	ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ALIGN): Use stdio instead of
	asm_fprintf.
	* m68k/amix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/atari.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k.c (m68k_output_function_prologue,
	m68k_output_function_epilogue, print_operand): Likewise.
	* mmix.c (mmix_asm_output_mi_thunk, mmix_asm_weaken_label):
	Likewise.  Fix format specifier.
	* mn10200.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
	* mn10300.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
	* v850.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.

2002-08-15  Eric Christopher  <echristo@redhat.com>
	    Jeff Knaggs  <jknaggs@redhat.com>

	* config.gcc (mipsisa64sr71k-elf): New target.
	* config/mips/sr71k.md: New file.
	* config/mips/mips.md: Use it.
	(rot*): Add sr71k specifics.
	* config/mips/t-sr71k: New file.
	* config/mips/mips.h (sr71k): New cpu.
	(TARGET_SR71K): Use it.
	(TUNE_SR71K): Ditto.
	(GENERATE_BRANCHLIKELY): Ditto.
	(ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC,
	ISA_HAS_ROTR_SIISA_HAS_ROTR_DI): Ditto.
	* config/mips/mips.c (sr71k): New cpu.
	(mips_use_dfa_pipeline_interface): Use.

2002-08-15  Eric Christopher  <echristo@redhat.com>
	    Richard Sandiford <rsandifo@redhat.com>
	    Aldy Hernandez  <aldyh@redhat.com>
	    Graham Stott    <grahams@redhat.com>
	    Michael Meissner  <meissner@redhat.com>
	    Gavin Romig-Koch  <gavin@redhat.com>
	    Ken Raeburn  <raeburn@cygnus.com>
	    Alexandre Oliva <aoliva@redhat.com>

	* config.gcc (mips64vr-elf): New target.
	* config/mips/5400.md: New file.
	* config/mips/5500.md: Ditto.
	* config/mips/mips.md: Use them.
	(frsqrt): New.
	* config/mips/mips.c (vr4111, vr4121, vr4320, vr5400, vr5500): New
	cpus.
	(mips_issue_rate): Use them.
	(mips_use_dfa_pipeline_interface): New function. Use for 5400 and 5500.
	(TARGET_SCHEDUSE_DFA_PIPELINE_INTERFACE): Define. Use above.
	* config/mips/mips.h (vr4111, vr4121, vr4320, vr5400, vr5500): New
	cpus.
	(TARGET_MIPSx): Use them.
	(TUNE_MIPSx): Ditto.
	(GETNATE_MULT3_SI): Ditto.
	(ISA_HAS_BRANCHLIKELY): Ditto.
	(ISA_HAS_CONDMOVE): Ditto.
	(ISA_HAS_NMADD_NMSUB): Ditto.
	(ISA_HAS_MULHI): New. Ditto.
	(ISA_HAS_MULS): Ditto.
	(ISA_HAS_MSAC): Ditto.
	(ISA_HAS_MACC): Ditto.
	(ISA_HAS_ROTR_SI): Ditto.
	(ISA_HAS_ROTR_DI): Ditto.
	(RTX_COSTS): Use.

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

	* cppinit.c (remove_dup_dir): Add head_ptr argument to handle removal
	at head.
	(remove_dup_nonsys_dirs): New function.
	(remove_dup_dirs): Change argument head to head_ptr.  Remove warnings.
	(merge_include_chains): Remove non-system include directories from
	quote and bracket include chains when they duplicate equivalent system
	directories.
	* doc/cpp.texi (-I): Update.
	* doc/cppopts.texi (-I): Update.
	* doc/install.texi (--with-local-prefix): Further document usage of
	this option.
	* doc/invoke.texi (-I): Update.

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

	* expr.c (TARGET_MEM_FUNCTIONS): Transform to boolean.
	(emit_block_move): Split out subroutines.
	(emit_block_move_via_movstr): New.
	(emit_block_move_via_libcall): New.  Emit bcopy via normal call also.
	(emit_block_move_libcall_fn): New.  Construct function prototype for
	bcopy as well.
	(clear_storage): Split out subroutines.
	(clear_storage_via_clrstr): New.
	(clear_storage_via_libcall): New. Emit bzero as a normal call also.
	(clear_storage_libcall_fn): New.  Construct function prototype for
	bzero as well.
	(emit_push_insn): Use emit_block_move.
	(expand_assignment): Booleanize TARGET_MEM_FUNCTIONS.
	(store_constructor): Likewise.

2002-08-19  Ziemowit Laski  <zlaski@apple.com>

	* objc/objc-act.c (building_objc_message_expr): Rename to
	current_objc_message_selector.

2002-08-19  Ziemowit Laski  <zlaski@apple.com>

	* objc/objc-act.c (build_ivar_chain): Remove.
	(objc_copy_list): Likewise.
	(get_class_ivars): Inline call to removed build_ivar_chain
	function.  Save off a clean copy of ivars in the CLASS_OWN_IVARS
	slot; use that slot (rather than CLASS_IVARS) when accessing
	ivars for base classes.  Call copy_list and chainon instead of
	objc_copy_list.
	(build_private_template): Call get_class_ivars instead of
	build_ivar_chain.
	(start_class): Allocate room for the CLASS_OWN_IVARS slot.
	(continue_class): Call get_class_ivars instead of
	build_ivar_chain.
	(encode_field_decl): Check for DECL_BIT_FIELD_TYPE instead
	of DECL_BIT_FIELD (which may have been cleared).
	* objc/objc-act.h (CLASS_OWN_IVARS): New accessor macro.

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

	* genautomata.c (output_translate_vect, output_state_ainsn_table,
	output_min_issue_delay_table): Mark variable with ATTRIBUTE_UNUSED
	in output file.
	(output_internal_min_issue_delay_func): Initialize variable in
	output file.

2002-08-19  Alexandre Oliva  <aoliva@redhat.com>

	* Makefile.in (GCC_FOR_TARGET): Prepend STAGE_CC_WRAPPER.
	(stage2_build, stage3_build, stage4_build): Likewise, to CC.

2002-08-19  Geoffrey Keating  <geoffk@redhat.com>
	    Steve Ellcey  <sje@cup.hp.com>

	* machmode.h (SCALAR_INT_MODE_P): New macro to test for
	scaler integer mode (MODE_INT or MODE_PARTIAL_INT).
	* explow.c (trunc_int_for_mode): Abort when the mode is not
	a scaler integer mode.
	* combine.c (expand_compound_operation): Don't expand Vector
	or Complex modes into shifts.
	(expand_field_assignment): Don't do bitwise arithmatic and
	shifts on Vector or Complex modes.
	(simplify_comparison): Don't call trunc_int_for_mode
	for VOIDmode.
	* recog.c (general_operand): Likewise.
	(immediate_operand): Likewise.
	(nonmemory_operand): Likewise.

2002-08-19  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_emit_set_const): Inline
	multi-instruction SImode constant.  Add REG_EQUAL note.
	* config/rs6000/rs6000.md (movsi splitter): Use
	rs6000_emit_set_const.

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

	* tree-inline.c (initialize_inlined_parameters): Wrap variable in
	the macro test controlling its use.

2002-08-18  H.J. Lu  (hjl@gnu.org)

	* config.gcc (*-*-linux*): Set extra_parts="crtbegin.o
	crtbeginS.o crtbeginT.o crtend.o crtendS.o", gas=yes and
	gnu_ld=yes.
	(alpha*-*-linux*, cris-*-linux*, i370-*-linux*,
	i[34567]86-*-linux*, x86_64-*-linux*, mips*-*-linux*,
	s390-*-linux*, s390x-*-linux*, sparc-*-linux*, sparc64-*-linux*,
	xtensa-*-linux*): Remove setting extra_parts, gas, and gnu_ld
	here.
	(cris-*-linux*): Remove setting thread_file here.

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

	PR preprocessor/7602
	* cppinit.c (path_include): Treat the system environment
	variables as being cxx_aware.

2002-08-17  Joseph S. Myers  <jsm@polyomino.org.uk>

	* c-decl.c (flexible_array_type_p): New function.
	(grokdeclarator, finish_struct): Use it.
	* doc/extend.texi: Document constraints on use of structures with
	flexible array members.

2002-08-17  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/t-coff, config/mips/t-elf, config/mips/t-isa3264,
	config/mips/t-r3900 (MULTILIB_MATCHES): Define.
	* config/mips/mips.h (ASM_SPEC): Use %(endian_spec).

2002-08-16  Stan Shebs  <shebs@apple.com>

	* c-common.c (cb_register_builds): Define __NEXT_RUNTIME__
	for ObjC with -fnext-runtime.
	* doc/cpp.texi: Document it.

2002-08-16  Janis Johnson  <janis187@us.ibm.com>

	* doc/install.texi (Final installation): Replace links to individual
	build status pages with a link to a common page that lists them all.

2002-08-16  Sylvain Pion <pion@cs.nyu.edu>

	* doc/invoke.texi: Fix typo.

2002-08-16  David Edelsohn  <edelsohn@gnu.org>

	* doc/install.texi (*-ibm-aix*): Explain AIX shared object versioning.

2002-08-16  Andrew Haley  <aph@redhat.com>

	* tree-inline.c: Add includes for Java inliner.
	(remap_decl): Don't handle anonymous types for Java.
	(remap_block): Add handling for Java trees.
	(copy_scope_stmt): Conditionalize for non-Java use only.
	(copy_body_r): Handle Java trees.  Add handling for
	LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, Java blocks.
	(initialize_inlined_parameters):  Handle Java trees.
	(declare_return_variable): Likewise.
	(expand_call_inline): Handle Java trees.
	(walk_tree): Likewise.
	(copy_tree_r): Don't handle SCOPE_STMTs for Java.
	(add_stmt_to_compound): New function.

2002-08-15  Richard Henderson  <rth@redhat.com>

	* Makefile.in (LOOSE_WARN): Remove -fno-common.
	(NOCOMMON_FLAG): New substitution point.
	(GCC_WARN_CFLAGS): Include it.
	* configure.in (ac_checking): Set nocommon_flag.
	(nocommon_flag): New substitution point.

2002-08-15  Alexandre Oliva  <aoliva@redhat.com>

	* c-tree.h (skip_evaluation): Move declaration...
	* c-common.h: ... here.
	* c-typeck.c (build_external_ref): Don't assemble_external nor
	mark a tree as used if skip_evaluation is set.
	* c-parse.in (typeof): New non-terminal to set skip_evaluation
	around TYPEOF.
	(typespec_nonreserved_nonattr): Use it.

2002-08-15  Douglas B Rupp  <rupp@gnat.com>

	* dbxout.c (dbx_debug_hooks): Update end_prologue, end_epilogue.
	(xcoff_debug_hooks): Update end_prologue.
	* debug.c (do_nothing_debug_hooks): Update end_prologue, end_epilogue.
	* debug.h (end_prologue): Add file arg.
	(end_epilogue): Add line and file args.
	(dwarf2out_end_epilogue): Add line and file args.
	(vmsdbgout_after_prologue): Remove.
	* dwarf2out.c (dwarf2out_end_epilogue): Add line and file args.
	(dwarf2_debug_hooks): Update end_prologue.
	* dwarfout.c (dwarfout_end_epilogue): Add line and file args.
	(dwarfout_end_prologue): Add file arg.
	* final.c (vmsdbgout_after_prologue): Remove
	(final_end_function): Update end_epilogue call.
	(final_scan_insn): Update end_prologue call.
	* sdbout.c (sdbout_end_epilogue): Add line and file args.
	(sdbout_end_prologue): Add file arg.
	(sdb_debug_hooks): Update end_prologue.
	(sdb_begin_prologue): Update sdbout_end_prologue call.
	* vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_end_prologue,
	vmsdbgout_end_function.
	(vmsdbgout_end_prologue): New function renamed from
	vmsdbgout_after_prologue. Call vmsdbgout_source_line.
	(vmsdbgout_end_function): New function.
	(vmsdbgout_end_epilogue): Add line and file args. Call
	vmsdbgout_source_line.
	(write_pclines): Write only valid line numbers.
	(write_srccorr): Don't write source correlation records if 0 lines.
	* xcoffout.c (xcoffout_end_epilogue): Add line and file args.

2002-08-15  Steve Ellcey  <sje@cup.hp.com>

	* gcc/unwind.h (_Unwind_Ptr): Make 64 bits on IA64 HP-UX.
	(_Unwind_Internal_Ptr): 32 bit version for use in
	read_encoded_value_with_base.
	* gcc/unwind-pe.h (read_encoded_value_with_base): Use
	_Unwind_Internal_Ptr instead of _Unwind_Ptr in order to get the
	right size.

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

	* loop.c (scan_loop, move_movables, count_one_set): Cast to avoid
	signed/unsigned warnings.

	* regclass.c (init_reg_sets_1, choose_hard_reg_mode,
	record_reg_classes): Likewise.

	* reload.c (reload_inner_reg_of_subreg, push_reload,
	find_reloads_address_1): Likewise.

2002-08-15  David Edelsohn  <edelsohn@gnu.org>

	* rs6000.c (output_mi_thunk): Return to function section on
	TARGET_ELF.

	* rs6000-c.c (rs6000_cpu_cpp_builtins): Define __PPC405__ if PPC405.

2002-08-15  Ulrich Weigand  <uweigand@de.ibm.com>

	* config/s390/s390.c (legitimize_address): Optimize loading
	of large displacements.

2002-08-14  Douglas B Rupp  <rupp@gnat.com>

	* config/alpha/alpha-protos.h: Update.

	* config/alpha/alpha.c: (LINKAGE_SYMBOL_REF_P): New macro.
	(alpha_legitimate_address_p): Test LINKAGE_SYMBOL_REF_P.
	(alpha_linkage_symbol_p): New static function.
	(print_operand_address): Print linkage operand.

	(alpha_funcs_num, alpha_funcs_tree, alpha_links_tree): New static
	variables.
	(reloc_kind): New enum.
	(struct alpha_funcs): New struct.
	(struct alpha_links): Add reloc_kind field. Rename links_kind field.

	(alpha_need_linkage): Rewrite.
	(alpha_use_linkage): New global function.
	(alpha_write_linkage): Rewrite and make static.
	(alpha_write_one_linkage): Rewrite

	(alpha_start_function): Remove procedure descriptor output.
	(alpha_end_function): Write linkages at end of each function.

	* config/alpha/alpha.md (call_vms, call_value_vms): Rewrite.
	(call_vms_1, call_value_vms_1): Rewrite.

	* config/alpha/vms.h (ASM_FILE_END): Remove.

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

	* ggc-page.c (RTL_SIZE): New.
	(extra_order_size_table): Add specializations for 2 and 10 rtl slots.
	* rtl.def (BARRIER, NOTE): Pad to 9 slots.

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

	* calls.c: Include target.h.
	* Makefile.in (calls.o): Update.

	* config/alpha/alpha.c (alpha_end_function): Use targetm.binds_local_p.
	* config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Likewise.

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

	* Makefile.in (LOOSE_WARN): Add -fno-common.
	* c-common.h (constant_string_class_name): Add missing extern.

2002-08-15  Neil Booth  <neil@daikokuya.co.uk>

	PR preprocessor/7358
	* c-opts.c (check_deps_environment_vars): Ignore main file
	for SUNPRO_DEPENDENCIES.
	* cppfiles.c (stack_include_file): Ignore main file if
	appropriate.
	* cpplib.h (struct cpp_options): New member in deps.
	* doc/cppenv.texi: Update.

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

	PR preprocessor/7526
	* cpplib.c (run_directive): Kludge so _Pragma dependency works.

2002-08-14  Nathan Sidwell  <nathan@codesourcery.com>

	* doc/invoke.texi (-a): Remove documentation.
	(-fprofile-arcs): Remove reference to -a, -ax options.
	* doc/gcov.texi (Gcov Data Files): Data might be merged.

2002-08-14  Gabriel Dos Reis  <gdr@nerim.net>

	Fix PR/7566
	* c-semantics.c (genrtl_case_label): Don't (mis)use
	warning_with_decl.

2002-08-14  Dale Johannesen  <dalej@apple.com>

	* explow.c (emit_stack_restore):  Emit memory clobbers
	preceding the stack pop, to prevent the scheduler from
	moving refs to variable arrays below this pop.
	* reload1.c (reload):  Preserve these clobbers for sched2.
	* doc/rtl.texi:  Document clobber (mem:BLK (scratch)).

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

	* c-opts.c (c_common_post_options): Correct test.

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

	* m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Fix incorrect argument
	order in call to fprintf.

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

	* config/sparc/sol2.h (SUBTARGET_EXTRA_SPECS): Define.

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

	* reload.c (find_reloads): Handle constraint letters marked by
	EXTRA_ADDRESS_CONSTRAINT and EXTRA_MEMORY_CONSTRAINT.
	(alternative_allows_memconst): Likewise.
	* reload1.c (maybe_fix_stack_asms): Likewise.
	* recog.c (asm_operand_ok, preprocess_constraints,
	constrain_operands): Likewise.
	* regclass.c (record_operand_costs, record_reg_classes): Likewise.
	* local-alloc.c (block_alloc, requires_inout): Likewise.
	* stmt.c (parse_output_constraint, parse_input_constraint): Likewise.

	* defaults.h (EXTRA_MEMORY_CONSTRAINT): Provide a default.
	(EXTRA_ADDRESS_CONSTRAINT): Likewise.
	* doc/tm.texi: Document these two new target macros.

	* config/s390/s390.c (s390_expand_plus_operand): Accept already
	valid operands.
	(q_constraint): New function.
	config/s390/s390-protos.h (q_constraint): Declare it.
	config/s390/s390.h (EXTRA_CONSTRAINT): Use it.
	(EXTRA_MEMORY_CONSTRAINT): New macro.

	* config/s390/s390.md: Throughout the machine description,
	replace all instances of the constraint combinations 'Qo'
	or 'oQ' with simply 'Q'.

2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.h (LINK_SPEC): Support -mrelax.
	* config/m68hc11/t-m68hc11-gas (LIBGCC2_DEBUG_CFLAGS): Can use -g now.
	(LIBGCC2_CFLAGS): Compile with -mrelax.

2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>

	* doc/invoke.texi: Document -minmax for 68HC12.

	* config/m68hc11/m68hc11.md ("umaxqi3"): Use TARGET_MIN_MAX.
	("uminqi3"): Likewise.
	("uminhi3", "umaxhi3"): Likewise.

	* config/m68hc11/m68hc11.h (MASK_MIN_MAX): Define.
	(TARGET_MIN_MAX): Define.
	(TARGET_SWITCHES): New option -minmax/-mnominmax.

2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build __far_trampoline.
	(MULTILIB_OPTIONS): Must also generate for -mlong-calls.

	* config/m68hc11/larith.asm: Put a mode for ELF ABI flags.
	(ret, declare, farsym): New gas macros.
	(__premain, exit, abort, _cleanup, memcpy, memset, ___adddi3,
	___subdi3, ___notdi2, __mulhi32, __mulsi3): Use them to use 'rtc'
	and declare the symbol far when compiled with -mlong-calls.
	(__far_trampoline): New for 68HC12 trampoline code to invoke a
	far handler using jsr/bsr.

	* config/m68hc11/m68hc11-crt0.S: Put a mode for ELF ABI flags.
	(jsr): New macro to transform a 'jsr' into a 'call'.

2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>

	* doc/invoke.texi: Document -mlong-calls for 68HC12.

	* config/m68hc11/m68hc11.h (CPP_SPEC): Pass -D__USE_RTC__ when
	-mlong-calls is specified.
	(ASM_DECLARE_FUNCTION_NAME): Define to generate .far and .interrupt
	assembler directives.
	(TARGET_LONG_CALL, MASK_LONG_CALL): Declare.
	(TARGET_SWITCHES): Add -mlong-calls options.
	(current_function_far): Declare.

	* config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset): Take
	into account the page register saved on the stack.
	(m68hc11_override_options): Take into account -mlong-calls option.
	(m68hc11_asm_file_start): Put a mode for the ELF flags ABI.

	* config/m68hc11/m68hc11.md ("*return_32bit"): Return rtc
	if the function is going to be in 68HC12 banked memory (-mlong-calls).
	("*return_16bit"): Likewise.
	("*return_void"): Likewise.
	("call", "call_value"): Use call for a far function call.

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

	* toplev.c (parse_options_and_default_flags): Don't call
	post_options here.
	(general_init): Initialize GC, pools and tree hash here,
	instead of lang_independent_init.
	(lang_independent_init): Rename backend_init.
	(do_compile): Call post_options hook; exit early if there
	have been errors after switch processing.
	(toplev_main): Update.

2002-08-14  Gabriel Dos Reis  <gdr@nerim.net>

	* c-pretty-print.h: Guard against multiple inclusion.
	Robustify macros.
	(pp_c_attributes): Declare.
	* c-pretty-print.c (pp_c_attributes): New function.

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

	* m68k.c (m68k_output_function_prologue,
	m68k_output_function_epilogue): Delete versions for DPX2/MOTOROLA
	and NEWS/MOTOROLA.
	* genattrtab.c: Remove dpx2 comment.
	* libgcc2.c (__enable_execute_stack): Delete versions for
	NeXT/__MACH__, __convex__, __sysV88__, __pyr__ and
	sony_news/SYSTYPE_BSD.
	* longlong.h: Delete code for __a29k__, _AM29K, __clipper__,
	__gmicro__, __i860__, __NeXT__ and __pyr__.
	* rtl.h: Remove convex comment.
	* varasm.c: Likewise.

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

	* c-opts.c (lang_flags): Const-ify.
	* ra-build.c (undef_table): Likewise.
	* ra.c (eliminables): Likewise.

2002-08-14  Gabriel Dos Reis  <gdr@nerim.net>

	* tree.h: Guard against multiple inclusion.

2002-08-14  Hans-Peter Nilsson  <hp@bitrange.com>

	* reload1.c (reload_cse_simplify): Before checking
	REG_FUNCTION_VALUE_P, check REG_P.

2002-08-13  Geoffrey Keating  <geoffk@redhat.com>

	* Makefile.in (attribs.o): Remove $(OBSTACK_H) dependency.

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

	* c-opts.c (c_common_init_options): Extra braces needed.

Tue Aug 13 17:40:25 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (sh_init_builtins): Add PARAMS to declaration.
	(sh_media_init_builtins, sh_expand_builtin): Likewise.
	(sh_expand_unop_v2sf): Use PARAMS for variable declaration.
	(sh_expand_binop_v2sf): Likewise.
	* sh-protos.h (sh_expand_unop_v2sf): Add PARAMS to declaration.
	(sh_expand_binop_v2sf, sh_cfun_interrupt_handler_p): Likewise.
	(sh_initialize_trampoline): Likewise.

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

	* s390-modes.def [CCL1, CCL2, CCT1, CCT2, CCT3, CCUR, CCSR]: Declare
	new condition code modes.
	s390.c (s390_match_ccmode_set): Handle those new CC modes.
	(s390_select_ccmode): Likewise.
	(s390_branch_condition_mask): Likewise.

	* s390-protos.h (s390_tm_ccmode): Declare.
	s390.c (s390_tm_ccmode): New function.
	(s390_match_ccmode): Allow VOIDmode as REQ_MODE.

	* s390.md ("*cmpdi_tm2"): Rename to "*tmdi_ext".
	("*cmpsi_tm2"): Rename to "*tmsi_ext".
	("*cmpqi_tm2"): Rename to "*tmqi_ext".

	("*cmpdi_tm_reg", "*cmpdi_tm_mem", "*cmpsi_tm_reg", "*cmpsi_tm_mem",
	"*cmphi_tm_sub","*cmphi_cct_0",  "*cmpqi_tm", "*cmpqi_tm_sub",
	"*cmpqi_cct_0", "*tm_0"): Remove, replace by ...
	("*tmdi_reg", "*tmsi_reg", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem",
	"*tmqi_mem", "*tmhi_full", "*tmqi_full"): ... these new patterns.

	("*ltgr", "*cmpdi_ccs_0_64", "*cmpdi_ccs_0_31", "*ltr", "*icm15",
	"*icm15_cconly", "*cmpsi_ccs_0", "*icm3", "*cmphi_ccs_0", "*icm1",
	"*cmpqi_ccs_0"): Remove, replace by ...
	("*tstdi_sign", "*tstdi", "*tstdi_cconly", "*tstdi_cconly_31",
	"*tstsi", "*tstsi_cconly", "*tstsi_cconly2", "*tsthi", "*tsthi_cconly",
	"*tstqi", "*tstqi_cconly"): ... these new patterns.

	("*cmpsidi_ccs"): Remove, replace by ...
	("*cmpsi_ccs_sign"): ... this new pattern.
	("*cmpdi_ccs_sign", "*cmpdi_ccu_zero"): New patterns.

	("*cmpqi_ccu_0", "*cmpqi_ccu_immed"): Remove, replace by ...
	("*cli"): ... this new pattern.

	("*adddi3_sign", "*adddi3_zero_cc", "*adddi3_zero_cconly",
	"*adddi3_zero", "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2"):
	New patterns.
	("adddi3_64"): Rename to "*adddi3_64".
	("adddi3_31"): Replace by insn and splitter "*adddi3_31".
	("adddi3"): Adapt expander.

	("*addsi3_cc"): Allow "general_operand" for operand 2.
	("*addsi3_carry1_cc", "*addsi3_carry1_cconly",
	"*addsi3_carry2_cc", "*addsi3_carry2_cconly"): New patterns.

	("addhi3", "addqi3"): Remove, replace by ...
	("*addsi3_sign", "*addsi3_sub"): ... these new patterns.

	("*subdi3_sign", "*subdi3_zero_cc", "*subdi3_zero_cconly",
	"*subdi3_zero", "*subdi3_cc", "*subdi3_cconly"): New patterns.
	("subdi3"): Replace by insn and splitter "*subdi3_31".
	("subdi3"): New expander.

	("*subsi3_borrow_cc", "*subsi3_borrow_cconly"): New patterns.

	("subhi3", "subqi3"): Remove, replace by ...
	("*subsi3_sign", "*subsi3_sub"): ... these new patterns.

	("*muldi3_sign"): New pattern.
	("muldi3"): Do not clobber CC.
	("mulsi3"): Likewise.
	("mulsi_6432"): Likewise.

2002-08-13  Denis Chertykov  <denisc@overta.ru>

	* config/avr/avr.md: Call CC_STATUS_INIT in all peepnoles
	which can change CC0.

Tue Aug 13 14:49:20 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* gcse.c (adjust_libcall_notes): New function.
	(do_local_cprop): Use it.  Add fourth parameter.  Changed caller.

2002-08-13  Nathan Sidwell  <nathan@codesourcery.com>

	* libgcc2.c (L_bb): Remove unneeded #includes.
	(__global_counters, __gthreads_active): Remove unused globals.
	(__bb_exit_func): Merge counts into files rather than appending.
	* Makefile.in (INTERNAL_CFLAGS): Move COVERAGE_FLAGS from here ...
	(ALL_CFLAGS): ... to here.

2002-08-13  Denis Chertykov  <denisc@overta.ru>

	* config/ip2k/ip2k.c (commands_in_file): Variable removed.
	(function_epilogue): Don't calculate function size.
	(ip2k_set_compare): Don't use lookup_const_double.
	(asm_file_start): Initialization of commands_in_file removed.
	(asm_file_end): Output of commands_in_file removed.

	* config/ip2k/ip2k.c (CPP_PREDEFINES): Remove definition of
	__INT_MAX__.

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

	* c-opts.c (c_common_init_options): Check option array is
	sorted if checking enabled.

2002-08-13  Gabriel Dos Reis  <gdr@nerim.net>

	* c-pretty-print.c: #include "c-tree.h".
	(pp_c_simple_type_specifier): Tweak.
	(pp_c_storage_class_specifier): New.
	(pp_c_function_specifier): Likewise.
	(pp_c_declaration_specifiers): Likewise.
	(pp_c_init_declarator): Likewise.
	(pp_c_declaration): Likewise.
	(pp_c_direct_declarator): Stub.
	(pp_c_declarator): Likewise.
	(pp_c_parameter_declaration): Likewise.

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

	* c-opts.c (deps_seen, deps_file, deferred_count, deferred_size,
	handle_deferred_opts, sanitize_cpp_opts, defer_opt,
	struct deferred_opt): New.
	(COMMAND_LINE_OPTIONS): Add -M*.
	(missing_arg): Update.
	(c_common_decode_option): Handle -M*.
	(c_common_post_options): Handle -M*.  Use sanitize_cpp_opts;
	don't call cpp_post_options.
	(c_common_finish, check_deps_environment_vars): Update.
	* cppfiles.c (stack_include_file, handle_missing_header): Update.
	* cpphash.h (CPP_PRINT_DEPS): Remove.
	* cppinit.c: Don't include version.h.
	(cpp_create_reader): Don't call deps_init.  Initialize
	warn_long_long.
	(cpp_read_main_file): Init deps if necessary.
	(cpp_destroy): Conditionally free deps.
	(cpp_finish): Update.
	(no_tgt): Remove.
	(COMMAND_LINE_OPTIONS, cpp_handle_option): Remove -M*.
	(cpp_post_options): Rename post_options.
	* cpplib.h (struct cpp_options): Remove some dependency options;
	move others to a new structure.
	(cpp_post_options): Remove.
	(cpp_finish): Comment.
	* fix-header.c (read_scan_file): Don't call cpp_post_options.

2002-08-12  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/mmix/mmix.md (define_constants): Add MMIX_rR_REGNUM.
	("divdi3", "*divdi3_nonknuth", "moddi3", "*moddi3_nonknuth"): Mark
	MMIX_rR_REGNUM as clobbered.
	* config/mmix/mmix.h (MMIX_REMAINDER_REGNUM): Use MMIX_rR_REGNUM.

2002-08-12  Gabriel Dos Reis  <gdr@nerim.net>

	* diagnostic.h (output_formatted_scalar): Rename from
	output_formatted_integer.
	* diagnostic.def: Add DK_DEBUG.
	* diagnostic.c (output_decimal): Adjust.
	(output_long_decimal): Likewise.
	(output_unsigned_decimal): Likewise.
	(output_octal): Likewise.
	(output_long_octal): Likewise.
	(output_hexadecimal): Likewise.
	(output_long_hexadecimal): Likewise.
	* c-pretty-print.c (pp_c_type_specifier): New function.
	(pp_c_specifier_qualifier_list): Likewise.
	(pp_c_abstract_declarator): Likewise.
	(pp_c_char): Replace pp_format_integer with pp_format_scalar.

2002-08-12  David Edelsohn  <edelsohn@gnu.org>

	* doc/trouble.texi (Disappointments): Add static constructor and
	destructor dependency information for AIX.

2002-08-12  Neil Booth  <neil@daikokuya.co.uk>

	* cpphash.h (struct printer): New from cppmain.c.
	(cpp_reader): New member.
	* cppmain.c (struct printer): Move to cpphash.h.
	(options, print): Remove.
	(account_for_newlines, print_line, maybe_print_line,
	cpp_preprocess_file, setup_callbacks, scan_translation_unit,
	scan_translation_unit_trad, cb_line_change, cb_ident,
	cb_define, cb_undef, cb_include, cb_file_change, dump_macro,
	cb_def_pragma): Make reentrant.

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

	* real.c (ieee_64): Always define.
	(ieee_113): Guard with INTEL_EXTENDED_IEEE_FORMAT == 0.
	(dec_h): Not used yet, hide it.
	(emdnorm): Mark parameter in ATTRIBUTE_UNUSED.  Guard label with
	macro controlling use.
	(TFbignan, TFlittlenan): Guard with INTEL_EXTENDED_IEEE_FORMAT == 0.

Mon Aug 12 12:48:20 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (tablejump): Sign extend the operand.
	* i386.c (classify_argument): Fix missed case from previous patch.

2002-08-12  Neil Booth  <neil@daikokuya.co.uk>

	* c-common.c (STDC_0_IN_SYSTEM_HEADERS, c_common_init): Move
	to c-copts.c.
	(warn_multichar): Die.
	(cb_register_builtins): Export.
	* c-common.h (warn_multichar, preprocess_file): Remove.
	(cb_register_builtins): New.
	* c-lang.c (c_init): Remove.
	(LANG_HOOKS_INIT): Use c_objc_common_init.
	* c-lex.c (init_c_lex): Don't canonicalize filename.
	* c-opts.c (in_fname, STDC_0_IN_SYSTEM_HEADERS): New.
	(preprocess_file): Make static.  Update for cpplib.
	(c_common_decode_option): Remove warn_multichar.  Use in_fname.
	(c_common_post_options): Set some cpp options here.
	(c_common_init): Move from c-common.c.
	* cppinit.c (cpp_post_options): Don't canonicalize in_fname.
	* cpplib.h (struct cpp_options): Remove in_fname.
	(cpp_preprocess_file): Update.
	* cppmain.c (cpp_preprocess_file): Update for new prototypes.

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

	* config.gcc (mips*-*-netbsd*): Include ${tm_file}.

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

	* i370.h (TARGET_CPU_CPP_BUILTINS): Remove spurious trailing
	backslash in comment preceeding macro definition.
	* i370/linux.h (TARGET_OS_CPP_BUILTINS): Likewise.
	* i370/mvs.h (TARGET_OS_CPP_BUILTINS): Likewise.
	* i370/oe.h (TARGET_OS_CPP_BUILTINS): Likewise.

2002-08-12  Hans-Peter Nilsson  <hp@bitrange.com>

	* expr.c (store_expr): In condition for checking if value is
	generated in TARGET, move call to expr_size last.

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

	* c-common.c (c_common_init): Call preprocess_file instead.
	(c_common_finish): Move to c-opts.c.
	* c-common.h (preprocess_file): new.
	* c-opts.c (out_fname, out_stream, deps_append, preprocess_file,
	check_deps_environment_vars, c_common_finish): New.
	(c_common_decode_option): Update for out_fname and dependencies.
	* cppinit.c (init_dependency_output, output_deps): Remove.
	(cpp_destroy): Update prototype.
	(cpp_add_dependency_target): New.
	(cpp_read_main_file): Don't overlay a buffer.
	(cpp_finish): Take a deps output stream and write deps to it.
	Return the error count.
	(cpp_post_options): Don't canonicalize out_fname, or do anything
	with dependencies.
	* cpplib.h (struct cpp_options): Remove out_fname and
	preprocess_only.
	(cpp_add_dependency_target): New.
	(cpp_destroy, cpp_finish, cpp_preprocess_file): Update.
	* cppmain.c (cpp_preprocess_file): Update prototype.  Don't
	set preprocess_only.  Don't handle the output stream directly.

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

	* dsp16xx.c (print_operand): Fix format specifier.
	* dsp16xx.md: Avoid automatic aggregate initialization.
	* frv.h (REG_CLASS_FROM_LETTER): Avoid char as array index.
	* h8300.c (emit_a_rotate, h8300_adjust_insn_length): Avoid U
	integer constant modifier.
	* ip2k.c (ip2k_set_compare): Avoid signed/unsigned warning.
	* mmix-protos.h (mmix_use_simple_return): Move outside TREE_CODE
	guards.
	* sh/netbsd-elf.h (FUNCTION_PROFILER): Fix format specifier.
	* v850.c (v850_select_section): Mark parameter with
	ATTRIBUTE_UNUSED.
	* global.c (global_alloc): Const-ify.
	* ra-colorize.c (hardregset_to_string): Fix format specifier.

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

	* darwin-c.c (darwin_pragma_options): Const-ify.
	* darwin.c (machopic_non_lazy_ptr_name,
	machopic_validate_stub_or_non_lazy_ptr): Likewise.
	(machopic_indirect_data_reference): Wrap variables in macros
	controlling their use.
	(machopic_finish, update_non_lazy_ptrs, update_stubs): Const-ify.
	(machopic_select_section): Use parentheses around && within ||.
	* i386/darwin.h (ASM_OUTPUT_ALIGN): Avoid ambiguous-else.

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

	* ip2k.c (mdr_resequence_xy_yx, mdr_propagate_reg_equivs,
	mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
	ip2k_adjust_stack_ref, mdr_try_move_pushes, mdr_try_propagate_clr,
	ip2k_xexp_not_uses_reg_for_mem, mdr_try_propagate_move,
	mdr_try_remove_redundant_insns, track_w_reload,
	mdr_try_wreg_elim): Make function static to match prototype.
	* mmix.c (mmix_target_asm_function_epilogue): Likewise.  Mark
	parameter with ATTRIBUTE_UNUSED.

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

	* arc.c (arc_init): Don't use ISO C style function definitions.
	* arm.c (count_insns_for_constant, thumb_far_jump_used_p,
	arm_get_strip_length, arm_strip_name_encoding): Likewise.
	* avr.h (progmem_section): Likewise.
	* h8300.c h8300_asm_insn_count): Likewise.
	* m32r.c (init_idents): Likewise.
	* s390.c (s390_split_branches, s390_chunkify_pool): Likewise.
	* sh.c (sh_cfun_interrupt_handler_p): Likewise.
	* xtensa.c (xtensa_build_va_list): Likewise.

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

	* c-common.h (enum c_language_kind): Emphasize that clk_c is 0.
	* c-opts.c (parse_option): Rename find_opt.
	(set_std_c99): New function.
	(COMMAND_LINE_OPTIONS): Handle -remap and -o.  Remove OPT_std_bad.
	(missing_arg): Remove OPT_std_bad.  Handle -o.
	(c_common_decode_option): Handle input and output file names,
	-o and -remap.	Clean up -std= handling.
	* cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_o and OPT_remap.
	(cpp_handle_option): Similarly.  Don't handle filenames.

Sun Aug 11 14:43:17 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (classify_argument): Fix computing of field's offsets.

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

	PR target/7531:
	* doc/invoke.texi (i386 and x86-64 Options): Document -mcmodel.

2002-08-10  Ziemowit Laski  <zlaski@apple.com>

	* config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Replace
	reference to clk_objective_c with flag_objc.
	* config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS):
	Likewise.
	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Likewise.

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

	* c-opts.c (set_std_cxx98, set_std_c89): New.
	(COMMAND_LINE_OPTIONS): Move more from cppinit.c.
	(c_common_decode_option): Handle new switches from cppinit.c.
	Add -std=gnu++98.
	* cppinit.c (set_lang): Rename cpp_set_lang.  Export.
	(no_arg, no_num): Remove.
	(COMMAND_LINE_OPTIONS): Move more to c-opts.c.  Drop all lang-
	switches apart from -lang-objc and lang-asm.
	(cpp_handle_option): Similarly.
	* cpplib.h (cpp_set_lang): New.
	* doc/cppopts.texi, doc/invoke.texi: Document -std=c++98,
	-std=gnu++98.
	* objc/lang-specs.h: Remove -ansi.

Sat Aug 10 19:59:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
			       Graham Stott

	* cfg.c (redirect_edge_succ_nodup): Avoid overflows due to roundoff
	errors.

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

	* emit-rtl.c (emit_jump_insn_before, emit_call_insn_before,
	emit_jump_insn): Fix uninitialized variable.
	* gcov.c (init_line_info): Likewise.
	* genautomata.c (transform_3): Add braces around ambiguous
	else.
	* ifcvt.c (cond_exec_process_insns): Mark parameter with
	ATTRIBUTE_UNUSED.
	* ra-build.c (parts_to_webs_1): Fix uninitialized variable.
	* regrename.c (copyprop_hardreg_forward): Fix uninitialized
	variable.

	* gengtype.c (write_gc_structure_fields): Avoid signed/unsigned
	warnings in output files.

2002-08-09  Ziemowit Laski  <zlaski@apple.com>

	* c-common.c (flag_objc): New.
	* c-common.h (c_language_kind): Get rid of clk_objective_c
	enum value.
	(flag_objc): New extern declaration.
	* c-decl.c (implicitly_declare): Call objc_check_decl
	instead of maybe_objc_check_decl.
	(finish_decl): Likewise.
	(grokfield): Likewise.
	(finish_struct): Likewise.
	* c-lang.c (maybe_objc_check_decl): Rename to objc_check_decl.
	(maybe_objc_comptypes): Rename to objc_comptypes.
	(maybe_building_objc_message_expr): Rename to
	objc_message_selector.
	* c-lex.c (lex_charconst): Remove uses of clk_objective_c,
	replace with flag_objc as needed.
	* c-opts.c (c_common_init_options): Likewise.
	(c_common_decode_option): Likewise.
	* c-parse.in (init_reswords): Likewise.
	* c-tree.h (maybe_objc_check_decl): Rename to objc_check_decl.
	(maybe_objc_comptypes): Rename to objc_comptypes.
	(maybe_building_objc_message_expr): Rename to
	objc_message_selector.
	* c-typeck.c (comptypes): Call objc_comptypes instead of
	maybe_objc_comptypes, and/or objc_message_selector instead of
	maybe_building_objc_message_expr.
	(comp_target_types): Likewise.
	(convert_for_assignment): Likewise.
	(warn_for_assignment): Likewise.
	* cppinit.c (init_builtins): Set __OBJC__ manifest constant
	independently of those for other languages.
	* objc/objc-act.c (maybe_objc_comptypes): Delete.
	(maybe_objc_check_decl): Delete.
	(maybe_building_objc_message_expr): Rename to
	objc_message_selector.
	* objc/objc-lang.c (objc_init_options): Use clk_c instead of
	clk_objective_c; set flag_objc flag.

2002-08-09  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>

	* ifcvt.c (find_if_case_2): Test correct basic block for size.

2002-08-09  Dale Johannesen  <dalej@apple.com>

	* config/rs6000/rs6000.md: Add sibcall patterns.
	* config/rs6000/rs6000.h (FUNCTION_OK_FOR_SIBCALL):  Define.
	* config/rs6000/rs6000.c (rs6000_ra_ever_killed):
	Rewritten to handle sibcalls.
	* config/rs6000/rs6000.c (function_ok_for_sibcall):  New.
	* config/rs6000/rs6000-protos.h (function_ok_for_sibcall):  New.

2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>

	* profile.c (da_file_name): New static var.
	(init_branch_prob): Initialize it.
	(end_branch_prob): Remove da file.

	* Makefile.in (stage1_build): Pass empty COVERAGE_FLAGS.
	* configure.in (coverage_flags): Default to nothing.
	* configure: Rebuilt.

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

	* Makefile.in (c-opts.o): Update
	* c-opts.c: Include intl.h.
	(print_help): Move from cppinit.c.  Remove unused options.
	(COMMAND_LINE_OPTIONS): Move more from cppinit.c.
	(missing_arg): Complain for switches without an argument.
	(c_common_decode_option): Reject missing joined arguments.
	Handle new switches from cppinit.c.
	* cppinit.c (COMMAND_LINE_OPTIONS): Move some switches to c-opts.c.
	(cpp_handle_option): Similarly.
	(print_help): Moved to c-opts.c.
	* cpplib.h (struct cpp_options): Remove help_only.
	* gcc.c (cpp_unique_options): Remove -$.
	* doc/cppopts.texi: Undocument -h.

2002-08-08  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (legitimate_constant_p): UNSPEC_TP is not
	legitimate constant.
	(legitimate_pic_operand_p): Neither pic operand.
	(legitimate_address_p): But legitimate address.
	(get_thread_pointer): Generate MEM/u instead of CONST around
	UNSPEC_TP.
	(print_operand): Remove printing of UNSPEC_TP.
	(print_operand_address): And print it here.

2002-08-08  Devang Patel  <dpatel@apple.com>

	* objc/objc-act.c (build_selector_translation_table): Issue warning,
	when  -Wselector is used,if method for which selector is being
	created does not exist.

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

	* config/sh/sh.c (prepare_move_operands): Only call
	target_reg_operand if TARGET_SHMEDIA.

2002-08-08  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000.h, config/rs6000/aix.h,
	config/rs6000/darwin.h, config/rs6000/linux64.h: Revert last
	two patches.
	* config/rs6000/sysv4.h: Likewise, remove #undef ADJUST_FIELD_ALIGN.

2002-08-08  Lars Brinkhoff  <lars@nocrew.org>
	    Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (gen_rtx_REG): After reload, only return
	frame_pointer_rtx or hard_frame_pointer_rtx if frame_pointer_needed.

2002-08-08  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/rs6000-protos.h (rs6000_field_alignment): Remove.
	* config/rs6000/rs6000.c (rs6000_field_alignment): Move...
	* config/rs6000/rs6000.h (ADJUST_FIELD_ALIGN): ...inline into the
	macro.

2002-08-08  Adam Nemet  <anemet@lnxw.com>

	* config/arm/arm.c (thumb_unexpanded_epilogue): Stack the PIC
	register.
	(thumb_expand_prologue): Likewise.
	(thumb_output_function_prologue): Likewise.
	* config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Account for
	the additional push of the PIC register.

2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>

	* configure.in (enable_coverage): New enable switch.
	* configure: Rebuilt.
	* Makefile.in (COVERAGE_FLAGS, coverageexts): New variables.
	(INTERNAL_CFLAGS): Append COVERAGE_FLAGS.
	(ALL_FLAGS): Reorder so INTERNAL_CFLAGS comes after CFLAGS.
	(mostlyclean): Remove coverage files.
	* doc/install.texi: Document enable_coverage.

	* cp/Make-lang.in (c++.mostlyclean): Remove coverage files.
	* ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
	* f/Make-lang.in (f.mostlyclean): Remove coverage files.
	* java/Make-lang.in (java.mostlyclean): Remove coverage files.
	* objc/Make-lang.in (objc.mostlyclean): Remove coverage files.
	* treelang/Make-lang.in (treelang.mostlyclean): Remove coverage
	files.

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

	* c-opts.c (cpp_opts): New.
	(COMMAND_LINE_OPTIONS): Add switches from cppinit.c.
	(c_common_decode_options): Handle cpplib switches.
	(c_common_init_options): Set cpp_opts.
	* cppinit.c (COMMAND_LINE_OPTIONS): Move some switches to c-opts.c.
	(cpp_handle_option): Similarly.

2002-08-08  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/aix.h (TARGET_ALTIVEC): Define to 0.
	(TARGET_ALTIVEC_ABI): Same.
	(TARGET_ALTIVEC_VRSAVE): Same.

	* config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Check
	icode not CODE_FOR_nothing.  Change switch to if.

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

	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Pass -mpower4 when cpu=power4.

2002-08-08  Jakub Jelinek  <jakub@redhat.com>

	* stor-layout.c (place_union_field): For bitfields if
	PCC_BITFIELD_TYPE_MATTERS and TYPE_USER_ALIGN, set record's
	TYPE_USER_ALIGN.

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

	* pa.c (struct deferred_plabel): Constify name field.

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

	* cppmacro.c (_cpp_builtin_macro_text): Remove unused variable.

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

	* configure.in (PREFIX_INCLUDE_DIR): Don't define if prefix and
	local_prefix are the same.
	* configure: Rebuilt.

2002-08-07  Jakub Jelinek  <jakub@redhat.com>
	    Richard Henderson  <rth@redhat.com>

	* stor-layout.c (place_union_field): Apply ADJUST_FIELD_ALIGN
	to type_align when PCC_BITFIELD_TYPE_MATTERS.  Only apply
	ADJUST_FIELD_ALIGN if not DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
	(place_field): Likewise.
	* config/i386/i386.c (x86_field_alignment): Don't check
	DECL_USER_ALIGN here.
	* config/rs6000/rs6000.c (rs6000_field_alignment): New.
	* config/rs6000/rs6000-protos.h (rs6000_field_alignment): New
	prototype.
	* config/rs6000/rs6000.h (ADJUST_FIELD_ALIGN): Define.
	* config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Remove.
	* config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Remove.
	* config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Remove.
	* config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove.
	* doc/tm.texi (ADJUST_FIELD_ALIGN): Update description.

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

	* Makefile.in (c-opts.o, c-common.o, C_AND_OBJC_OBJS): Update.
	* c-common.c: Don't include tree-inline.h.
	(c_common_init_options, c_common_post_options): Move to c-opts.c.
	* c-common.h (c_common_decode_option): New.
	* c-decl.c (c_decode_option): Remove.
	* c-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
	* c-opts.c: New file.
	* c-tree.h (c_decode_option): Remove.
	* doc/passes.texi: Update.
	* objc/objc-act.c (objc_decode_option): Remove.
	* objc/objc-act.h (objc_decode_option): Remove.
	* objc/ojbc-lang.c (LANG_HOOKS_DECODE_OPTION): Use
	c_common_decode_option.

2002-08-07  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.md (sunlt_sf, suneq_sf, sunle_sf): Remove
	dependency on TARGET_DOUBLE_FLOAT.

2002-08-07  Stephen Clarke <stephen.clarke@superh.com>

	* config/sh/lib1funcs.asm (GCC_shcompact_incoming_args): Don't
	overwrite callee-save registers.  Fix comment.

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

	* config/mips/mips.c (override_options): Set MASK_BRANCHLIKELY
	in target_flags based on ISA, if it was not set on the command
	line.  Warn if MASK_BRANCHLIKLEY is set but the ISA does not
	support Branch Likely instructions.
	* config/mips/mips.h (MASK_BRANCHLIKLEY): New macro.
	(TARGET_BRANCHLIKELY): Likewise.
	(TARGET_SWITCHES): Add -mbranch-likely and -mno-branch-likely.
	(GENERATE_BRANCHLIKELY): Use TARGET_BRANCHLIKELY rather than
	ISA_HAS_BRANCHLIKELY.
	(ISA_HAS_BRANCHLIKELY): Do not include MIPS16 check.
	* doc/invoke.texi: Document new MIPS -mbranch-likely and
	-mno-branch-likely options.

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

	* ip2k.c (ip2k_set_compare): Add missing iteration variable.

	* Makefile.in (dummy-conditions.o): Depend on $(HCONFIG_H) not
	$(GCONFIG_H).

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

	* c-decl.c (duplicate_decls): Error out for incompatible TLS
	declarations.

	* testsuite/gcc.dg/tls/diag-3.c: New.

2002-08-06  Dale Johannesen  <dalej@apple.com>

	* c-common.c (fname_decl): Use line number 0 for
	__func__, to avoid confusing debuggers.

2002-08-06  Nathan Sidwell  <nathan@codesourcery.com>

	* gcov.c: Tidy.
	(struct line_info, struct coverage): New structures.
	(gcov_file_name, gcov_file): Remove globals.
	(output_data): Take source file parameter. Fix memory leak. Break
	up into ...
	(init_line_info, output_line_info, make_gcov_file_name,
	accumulate_branch_counts): ... here.
	(calculate_branch_probs, function_summary): Adjust.
	(main): Adjust.
	(function_*): Remove global variables.

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

	* dwarf2out.c: Remove unused macros.

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

	* function.c (TRAMPOLINE_ALIGNMENT): Always defined.

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

	* cppinit.c (struct lang_flags): Rename trigraphs std.
	(set_lang): Update.
	* cpplib.h (struct cpp_options): New member std.
	* cppmacro.c (_cpp_builtin_macro_text): Use std.
	(collect_args): Flag whether to swallow a possible future
	comma pasted with varargs.
	(replace_args): Use this flag.
	* doc/cpp.texi: Update varargs extension documentation.

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

	* config/i386/mmintrin.h (__m64): Make the type 64-bit aligned.

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

	* config/i386/i386.c (x86_field_alignment): Apply min for all MODE_INT
	and MODE_CLASS_INT modes.

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

	* config.gcc (*-*-linux*): Default to --enable-threads=posix if no
	--{enable,disable}-threads is given to configure.
	(alpha*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux*,
	x86_64-*-linux*, ia64*-*-linux*, m68k-*-linux*, mips*-*-linux*,
	powerpc-*-linux-gnualtivec*, powerpc-*-linux*, s390-*-linux*,
	s390x-*-linux*, sh-*-linux*, sparc-*-linux*, sparc64-*-linux*):
	Remove thread_file setting here.

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

	* doc/install.texi (Binaries): Update Bull Freeware URL.

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

	* doc/gcc.texi (Top): Rename Index to Keyword Index.

2002-08-05  Nathan Sidwell  <nathan@codesourcery.com>

	* gcov.c (output_data): Round to % to nearest, tweak formatting.

2002-08-05  Jakub Jelinek  <jakub@redhat.com>

	* fold-const.c (associate_trees): Only optimize NEGATE_EXPR in one
	of the operands into MINUS_EXPR if code is PLUS_EXPR.

2002-08-05  Douglas B Rupp  <rupp@gnat.com>

	* config.gcc (i[34567]86-*-interix*): Replace interix.o with winnt.o
	* config/i386/i386-interix.h (TARGET_NOP_FUN_DLLIMPORT,
	drectve_section): Define.
	* config/i386/t-interix: Replace interix.o rule with winnt.o.
	* config/i386/interix.c: Remove.

2002-08-05  Geoffrey Keating  <geoffk@redhat.com>

	* attribs.c: Don't include obstack.h.
	* builtins.c: Likewise.
	* cfganal.c: Likewise.
	* cfgbuild.c: Likewise.
	* cfgcleanup.c: Likewise.
	* emit-rtl.c: Likewise.
	* loop.c: Likewise.
	* stmt.c: Likewise.

	* Makefile.in (s-gtype): Re-add dependency on $(GTFILES).

2002-08-05  Gabriel Dos Reis  <gdr@nerim.net>

	* doc/c-tree.texi (Expression trees): Document VA_ARG_EXPR

2002-08-04  Chris Demetriou  <cgd@broadcom.com>

	* doc/invoke.texi: Remove duplicated paragraph describing
	TARGET_SWITCHES.

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

	* Makefile.in (sdbout.o): Doesn't need $(OBSTACK_H).
	* collect2.h (permanent_obstack): Delete declaration.
	* collect2.c (permanent_obstack): Delete definition.
	(main): Don't initialize permanent_obstack.  Use xstrdup instead.
	* expr.c: Don't include obstack.h.
	(permanent_obstack): Delete declaration.
	* function.c: Don't include obstack.h.
	(permanent_obstack): Delete declaration.
	* integrate.c: Don't include obstack.h.
	(function_maybepermanent_obstack): Delete declaration.
	* print-tree.c (debug_tree): Use x*alloc not permalloc.
	* sdbout.c (gen_fake_label): Use x*alloc not permalloc.
	* tlink.c (pfgets): Use xstrdup not permanent_obstack.
	* toplev.c (lang_independent_init): Rename init_obstacks to init_ttree.
	* tree.h: Rename init_obstacks to init_ttree.  Remove declarations
	of permalloc, expralloc, perm_calloc.
	* tree.c (permanent_obstack): Delete definition.
	(init_ttree): Rename from init_obstacks.
	(permalloc): Delete.
	(perm_calloc): Delete.
	(dump_tree_statistics): Don't print information about
	permanent_obstack.
	* varasm.c (assemble_start_function): Use xstrdup instead of
	permalloc/strcpy.
	(assemble_variable): Likewise.
	* config/alpha/alpha.c (unicosmk_need_dex): Use xmalloc instead of
	permalloc.
	(unicosmk_add_extern): Likewise.
	* config/c4x/c4x.c (c4x_external_ref): Likewise.
	(c4x_global_label): Likewise.
	* config/frv/frv.c (frv_encode_section_info): Likewise.
	* config/i386/winnt.c (i386_pe_record_external_function): Likewise.
	(i386_pe_record_exported_symbol): Likewise.
	* config/mips/mips.c (mips_output_external): Likewise.
	(mips_output_external_libcall): Likewise.
	* config/pa/pa.c: (permanent_obstack): Delete declaration.
	(output_call): Use ggc_strdup instead of allocating on
	permanent_obstack.
	* config/romp/romp.c: Include ggc.h.
	(get_symref): Don't declare permanent_obstack, use ggc_strdup
	intead of permanent_obstack.
	* config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use concat
	instead of permalloc.
	* config/rs6000/rs6000.c (rs6000_gen_section_name): Use xmalloc
	instead of permalloc
	* config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Use concat
	instead of permalloc.
	* config/vax/vax.c (vms_check_external): Use xmalloc instead of
	permalloc.

2002-08-04  Bernd Schmidt  <bernds@redhat.com>

	Contribute a port developed primarily by Michael Meissner,
	Catherine Moore, and Richard Sandiford <rsandifo@redhat.com>.
	* config.gcc: Add frv-elf target.
	* config/frv/cmovd.c: New file.
	* config/frv/cmovh.c: New file.
	* config/frv/cmovw.c: New file.
	* config/frv/frv-abi.h: New file.
	* config/frv/frv-asm.h: New file.
	* config/frv/frv-modes.def: New file.
	* config/frv/frv-protos.h: New file.
	* config/frv/frv.c: New file.
	* config/frv/frv.h: New file.
	* config/frv/frv.md: New file.
	* config/frv/frvbegin.c: New file.
	* config/frv/frvend.c: New file.
	* config/frv/lib1funcs.asm: New file.
	* config/frv/media.h: New file.
	* config/frv/modi.c: New file.
	* config/frv/t-frv: New file.
	* config/frv/uitod.c: New file.
	* config/frv/uitof.c: New file.
	* config/frv/ulltod.c: New file.
	* config/frv/ulltof.c: New file.
	* config/frv/umodi.c: New file.
	* config/frv/xm-frv.h: New file.

	* config/frv/media.h: Removed again.

2002-08-04  Nathan Sidwell  <nathan@codesourcery.com>

	* gcov.c (bb_file_time): New static variable.
	(object_directory): May also be object file.
	(preserve_paths): New static variable.
	(print_usage): Adjust.
	(options): Adjust.
	(process_args): Adjust.
	(open_files): Simplify. Cope when OBJECT_DIRECTORY is an object
	file. Find modification date on bb file.
	(read_profile): Don't rewind a NULL file.
	(format_hwint): New static function.
	(function_summary): Use format_hwint.
	(output_data): SOURCE_FILE_NAME is never relative to
	OBJECT_DIRECTORY. Use format_hwint. Adjust gcov file name
	mangling. Adjust output format to make it more machine readable.
	* doc/gcov.texi: Document & clarify semantics.

2002-08-04  Joseph S. Myers  <jsm@polyomino.org.uk>

	* doc/include/gcc-common.texi (version-GCC): Increase to 3.3.

2002-08-04  Nathan Sidwell  <nathan@codesourcery.com>

	* gcc.c (cc1_options): Pass output file as auxbase when
	appropriate.
	* profile.c (init_branch_prob): FILENAME has already had ending
	stripped.
	* final.c (end_final): Likewise.
	* toplev.c (aux_base_name): New global.
	(compile_file): Pass aux_base_name to init init_branch_prob and
	end_final.
	(independent_decode_option, case 'a'): New auxinfo options.
	(case 'd'): Protect against mising basename.
	(do_compile): Initialize aux_base_name.
	* toplev.h (aux_base_name): New global.
	* doc/invoke.texi: Adjust documentation.

2002-08-04  Nathan Sidwell  <nathan@codesourcery.com>

	* config/i386/i386.c (x86_field_alignment): Remove duplicate test
	of TARGET_ALIGN_DOUBLE.

2002-08-04  Gabriel Dos Reis  <gdr@nerim.net>

	* diagnostic.c (inform): New function.
	* diagnostic.h (inform): Declare.

2002-08-03  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (movsi_internal1): Add nop mnemonic.
	(movhi_internal): Same.
	(movqi_internal): Same.
	(movdi_internal64): Same.

	* config/rs6000/t-ppccomm (MULTILIB_MATCHES_FLOAT): Add mcpu=405.

	* config/rs6000/xcoff.h (SKIP_ASM_OP): Define.
	(ASM_OUTPUT_SKIP): Use it.  SIZE unsigned.
	(COMMON_ASM_OP): Define.
	(ASM_OUTPUT_ALIGNED_COMMON): Use it.  SIZE unsigned.
	Use ALIGN parameter.
	(LOCAL_COMMON_ASM_OP): Define.
	(ASM_OUTPUT_LOCAL): Use it.  SIZE unsigned.

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

	* builtins.def: Define new builtin functions exp, expf, expl,
	log, logf and logl (and their __builtin_* variants).
	* optabs.h (enum optab_index): Add new OTI_exp and OTI_log.
	Define exp_optab and log_optab.
	* optabs.c (init_optans): Initialize exp_optab and log_optab.
	* genopinit.c (optabs): Implement exp_optab and log_optab
	using exp?f2 and log?f2 patterns.
	* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP*
	and BUILT_IN_LOG* using exp_optab and log_optab respectively.
	(expand_builtin): Ignore the new builtins (and all cos and
	sin variants) when not optimizing.  Expand new builtins via
	expand_builtin_mathfn when flag_unsafe_math_optimizations.

	* doc/extend.texi: Document new exp and log builtins.
	* doc/md.texi: Document new exp?f2 and log?f2 patterns
	(and previously undocumented cos?f2 and sin?f2 patterns).

2002-08-03  Jason Merrill  <jason@redhat.com>

	* explow.c (int_expr_size): New fn.
	* expr.c (expand_expr) [CONSTRUCTOR]: Use it.
	* expr.h: Declare it.

2002-08-02  Krister Walfridsson  <cato@df.lth.se>

	* Makefile.in (gengtype-lex.o, gengtype-yacc.o): Add path to
	gengtype-* dependencies.

2002-08-02  Eric Christopher  <echristo@redhat.com>

	* config.gcc (mips*-*-linux*): Fix ordering of tm_file.
	* config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Change
	#ifndef to #undef.
	(TARGET_MEM_FUNCTIONS): Define instead of define to 1.

2002-08-02  David Edelsohn  <edelsohn@gnu.org>

	PR optimize/7067
	* config/rs6000/rs6000.h (RTX_COSTS): Artificially make MULT
	small if optimizing for size.

2002-08-02  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in (FORBUILD): Use $build_alias.
	* configure: Regenerated.

2002-08-02  Richard Sandiford  <rsandifo@redhat.com>

	* config.gcc: Don't include mips/abi64.h in $tm_file.
	* hard-reg-set.h (call_really_used_regs): Declare.
	* config/mips/abi64.h: Remove file.
	* config/mips/linux.h,
	* config/mips/iris6.h: Don't include it.
	* config/mips/mips-protos.h (mips_conditional_register_usage): Declare.
	* config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Use it.
	(REG_PARM_STACK_SPACE, STACK_BOUNDARY, STRICT_ARGUMENT_NAMING,
	FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_PADDING,
	FUNCTION_ARG_CALLEE_COPIES, MUST_PASS_IN_STACK, MIPS_STACK_ALIGN):
	Bring across definitions from abi64.h.
	(GP_ARG_LAST, FP_ARG_LAST): Use MAX_ARGS_IN_REGISTERS.
	(BIGGEST_MAX_ARGS_IN_REGISTERS): New.
	(struct mips_args): Use it.
	* config/mips/mips.c (mips_conditional_register_usage): Define.

2002-08-02  Jason Merrill  <jason@redhat.com>

	* langhooks-def.h (LANG_HOOKS_EXPR_SIZE): New macro.
	* langhooks.c (lhd_expr_size): Define default.
	* langhooks.h (struct lang_hooks): Add expr_size.
	* explow.c (expr_size): Call it.
	* expr.c (store_expr): Don't copy an expression of size zero.
	(expand_expr) [CONSTRUCTOR]: Use expr_size to calculate how much
	to store.
	* Makefile.in (builtins.o): Depend on langhooks.h.

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

	* Makefile.in (ra-debug.o): Depend on $(TM_P_H).
	* ra-debug.c: Include "tm_p.h".
	* ra-rewrite.c (is_partly_live_1): Change return type to bool.

2002-08-02  Toon Moene  <toon@moene.indiv.nluug.nl>

	* simplify-rtx.c (simplify_binary_operation): x * 1 is allowed
	when not honoring signalling NaNs.
	(simplify_ternary_operation): a == b has a definite value
	when not honoring NaNs.

2002-08-02  Jason Merrill  <jason@redhat.com>

	* gdbinit.in (pct): New macro.

2002-08-01  Stan Shebs  <shebs@apple.com>
	    Andreas Tobler  <toa@pop.agri.ch>

	* ginclude/stddef.h (_BSD_SIZE_T_DEFINED_): Define if not defined,
	plays nice with Darwin headers.
	(_BSD_RUNE_T_DEFINED_): Likewise.

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

	* c-common.c (c_common_init): -Wtraditional also implies -Wlong-long.
	* cppinit.c (cpp_post_options): Likewise.

	* cppexp.c (cpp_classify_number): Suppress -Wtraditional
	warning about 'LL' suffix (but not 'ULL' etc) when
	-Wno-long-long is in effect.

	* cppmacro.c (_cpp_builtin_macro_text) [BT_TIME, BT_DATE]:
	Check for failing time()/localtime(), issue a warning, and
	make __TIME__ and __DATE__ expand to fallback strings.

	* doc/cpp.texi, doc/extend.texi: Document behavior of __DATE__
	and __TIME__ when the date and time cannot be determined.

2002-08-02  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (output_cbranch): Hint differently for power4.

2002-08-01  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in ($(BUILD_PREFIX_1)ggc-none.o): Use $(GGC_H).

2002-08-01  Chris Demetriou  <cgd@broadcom.com>

	* config.gcc (mipsisa64sb1-*-elf*): New configuration.
	(mipsisa64sb1el-*-elf*): Likewise.
	* config/mips/mips.c (mips_cpu_info_table): Add sb1.
	* config/mips/mips.h (processor_type): Add PROCESSOR_SB1.
	(TARGET_SB1, TUNE_SB1): New macros.
	* doc/invoke.texi: Add sb1 to documentation for MIPS -march and
	-mtune flags.

2002-08-01  David Edelsohn  <edelsohn@gnu.org>

	* varasm.c (asm_emit_uninitialized): Return false if global BSS
	and ASM_EMIT_BSS not supported by target.
	(assemble_variable): Do not duplicate uninitialized logic.
	Fall through if asm_emit_uninitialized failed.

2002-08-01  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/mips.h (BRANCH_LIKELY_P): Remove unused macro.

2002-08-02  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Define.
	(DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC): Define.

	* config/rs6000/rs6000.c (output_toc): Don't use lshift_double when
	HOST_BITS_PER_WIDE_INT == 64.

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

	* df.c (df_insn_table_realloc): Change parameter to unsigned.
	* optabs.c (expand_binop): Make variable unsigned.
	* simplify-rtx.c (simplify_subreg): Likewise.
	* unroll.c (unroll_loop): Cast to avoid signed/unsigned warnings.

2002-08-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* c-common.c (cb_register_builtins): Always define __GXX_ABI_VERSION.

2002-08-01  Richard Henderson  <rth@redhat.com>

	* toplev.c (parse_options_and_default_flags): Don't set
	flag_reorder_blocks for -Os.

	* config/avr/avr.c (avr_optimization_options): Remove.
	* config/avr/avr.h (OPTIMIZATION_OPTIONS): Remove.
	* config/m68hc11/m68hc11.c (m68hc11_optimization_options): Remove.
	* config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Remove.

2002-08-01  H.J. Lu <hjl@gnu.org>
	    Richard Henderson  <rth@redhat.com>

	* output.h (DECL_READONLY_SECTION): Remove.
	(decl_readonly_section): Declare.
	* varasm.c (decl_readonly_section): New.
	(default_section_type_flags, default_select_section): Use it.
	* config/arm/pe.c (arm_pe_unique_section): Likewise.
	* config/i386/interix.c (i386_pe_unique_section): Likewise.
	* config/i386/winnt.c (i386_pe_unique_section): Likewise.
	* config/mcore/mcore.c (mcore_unique_section): Likewise.
	* config/mips/mips.c (mips_unique_section): Likewise.

2002-08-01  Richard Henderson  <rth@redhat.com>

	* integrate.c (copy_rtx_and_substitute): Squash MEM_EXPR when it
	refers to a subroutine parameter.

2002-08-01  Jakub Jelinek  <jakub@redhat.com>

	* varasm.c (assemble_visibility): Strip name encoding.

2002-08-01  Ian Dall  <ian@sibyl.beware.dropbear.id.au>

	* config/ns32k/ns32k.h (TARGET_IEEE_COMPARE): Correct earlier patch.
	(RETURN_ADDR_RTX): Cannot determine return address for FRAME > 0
	when there is no frame pointer.
	(INITIAL_FRAME_POINTER_OFFSET): Count stack space for saved fp
	registers properly.
	* config/ns32k/__unorddf2.c: New file.
	* config/ns32k/__unordsf2.c: New file.
	* config/ns32k/t-ns32k: New file.
	* config.gcc (ns32k-*-netbsd*): Use it.

2002-08-01  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.h (SPU_CONST_OFFSET_OK): Change to 0xff.

2002-08-01  Neil Booth  <neil@daikokuya.co.uk>

	* c-common.c (__GXX_ABI_VERSION): Correct spelling.

2002-08-01  Benjamin Kosnik  <bkoz@redhat.com>

	* c-common.c (cb_register_builtins): Set __GXX_ABI_VERSION__ to 102.

2002-08-01  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.md: Add [!]TARGET_MIPS16 to sgtu conditions.

2002-08-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

	* gcse.c (expr_hash_table_size, n_exprs, set_hash_table_size,
	n_sets): Removed.
	(expr_hash_table, set_hash_table): Type changed to ...
	(struct hash_table): New type.
	(hash_scan_insn, hash_scan_set, hash_scan_clobber, hash_scan_call,
	insert_expr_in_table, insert_set_in_table, compute_hash_table,
	dump_hash_table, lookup_expr, lookup_set, compute_local_properties,
	compute_ae_gen, compute_ae_kill): Modified to pass the table explicitly.
	(alloc_set_hash_table, alloc_expr_hash_table): Merged to ...
	(alloc_hash_table): New.
	(free_set_hash_table, free_expr_hash_table): Merged to ...
	(free_hash_table): New.
	(compute_set_hash_table, compute_expr_hash_table): Merged to ...
	(compute_hash_table_work): New.
	(classic_gcse, one_classic_gcse_pass, compute_cprop_data,
	find_avail_set, one_cprop_pass, find_bypass_set, compute_pre_data,
	pre_edge_insert, pre_insert_copies, pre_delete, pre_gcse,
	one_pre_gcse_pass, compute_transpout, compute_code_hoist_vbeinout,
	hoist_code, one_code_hoisting_pass,
	trim_ld_motion_mems): Altered due to changed type of hash tables.

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

	* final.c (output_alternate_entry_point):
	If ASM_OUTPUT_TYPE_DIRECTIVE is defined, use it.

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

	* objc/objc-act.c (encode_complete_bitfield): Add prototype and
	avoid ISO C style function definition.

	* expr.c (expand_assignment): Delete unused variable.

2002-08-01  Toon Moene  <toon@moene.indiv.nluug.nl>

	* c-common.c (cb_register_builtins): Set
	__FINITE_MATH_ONLY__ to 1 if -ffinite-math-only
	is given, and to 0 otherwise.
	* combine.c (simplify_if_then_else): HONOR_NANS
	implies FLOAT_MODE_P.

2002-08-01  Neil Booth  <neil@daikokuya.co.uk>

	* cppinit.c (COMMAND_LINE_OPTIONS): Remove OPT_dollar.
	(cpp_handle_option): Don't handle it.
	(print_help): Update.
	* doc/cppopts.texi: Update.

2002-08-01  Neil Booth  <neil@daikokuya.co.uk>

	* c-common.c (cb_register_builtins): If C++, define
	__EXCEPTIONS, __DEPRECATED and __GXX_ABI_VERSION as appropriate.
	* gcc.c (cpp_unique_options): Remove __GXX_ABI_VERSION.
cp:
	* lang-specs.h: Simplify in accordance with new code in
	c-common.c.

2002-08-01  Neil Booth  <neil@daikokuya.co.uk>

	* c-common.c: Define all C/ObjC/C++ warning and flag variables.
	* c-common.h: Declare all C/ObjC/C++ warning and flag variables.
	* c-decl.c: Move all warning and flag variables to c-common.c.
	* c-format.c: Move all warning variables to c-common.c.
	* c-tree.h: Move all warning and flag declarations to c-common.h.
	* objc/objc-act.c: Move all warning variables to c-common.c.
	(flag_warn_protocol): Rename warn_protocol.

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

	* pa-linux.h (GLOBAL_ASM_OP): Fix typo.

2002-07-31  Graham Stott  <graham.stott@btinternet.com>

	* config/stormy16/stormy16.h (BSS_SECTION_ASM_OP): Add missing
	.section prefix.

2002-07-31  Stan Shebs  <shebs@apple.com>

	* config.gcc (i[34567]86-*-darwin*): New configuration.
	* config/darwin.h (TARGET_ENCODE_SECTION_INFO): Undefine before
	defining.
	(TARGET_ENCODE_SECTION_INFO): Ditto.
	(ASM_PREFERRED_EH_DATA_FORMAT): Ditto.
	* config/darwin.c (machopic_indirect_data_reference): Remove
	setting of RTX_UNCHANGING_P.
	(machopic_legitimize_pic_address): Move RTX_UNCHANGING_P up so as
	not to be applied to sums.
	* config/i386/t-darwin: New file.
	* config/i386/darwin.h: New file.
	* config/i386/i386.h (TARGET_MACHO): Add default definition.
	* config/i386/i386.md (tablejump): Add TARGET_MACHO case.
	* config/i386/i386.c (output_set_got): For Mach-O, output Mach-O
	label and not the GOT add.
	(constant_address_p): For Mach-O, seeing a CONST is enough.
	(legitimate_pic_address_disp_p): Add a Mach-O case.
	(legitimate_address_p): Also test machopic_operand_p if Mach-O.
	(legitimize_pic_address): Use generic Mach-O code to legitimize.
	(output_pic_addr_const): Suppress @PLT if Mach-O, and parens
	if outputting a difference.
	(ix86_output_addr_diff_elt): Add Mach-O case.
	(ix86_expand_move): Similarly.
	(ix86_expand_call): Similarly.
	(current_machopic_label_num): New global.
	(machopic_output_stub): New function.
	(ix86_value_regno): New function.
	(ix86_function_value): Use it instead of VALUE_REGNO.
	(ix86_libcall_value): Ditto.
	* config/i386/unix.h (VALUE_REGNO): Remove.

2002-07-31  Graham Stott  <grahas@btinternet.com>

	* config/rs6000/rs6000.c(rs6000_hash_constant): Fix
	hash for LABEL_REF's.

2002-07-31  Graham Stott  <grahams@btinternet.com>

	* config/rs6000/rs6000.c (spe_init_builtins,
	altivec_init_builtins, rs6000_common_init_builtins):
	Replace ANSI with K&R function def.

2002-07-31  David Edelsohn  <edelsohn@gnu.org>

	* rs6000.c (validate_condition_mode): Test flag_finite_math_only
	for CCFPmode.

2002-07-31  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/crtn.asm: Don't use __mips16 to determine the
	return-address offset.  Define RA to a suitable temporary
	register for the return address.

2002-07-31  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.md (eh_set_lr_si, eh_set_lr_di): Change
	constraints to 'd'.

2002-07-30  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/elf.h (STARTFILE_SPEC): Define differently if
	default ABI is MEABI.  (Undoes incorrect change in Eric Christopher's
	patch on 2002-07-29.)
	* config/mips/elf64.h (STARTFILE_SPEC): Likewise.

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

	* alpha.h, arc.h, arm/aout.h, avr.h, cris.h, d30v.h, dsp16xx.h,
	fr30.h, h8300.h, i370.h, i386/sco5.h, i386/unix.h, i960.h, ia64.h,
	ip2k.h, m32r.h, mcore.h, mips.h, mn10200.h, mn10300.h, ns32k.h,
	openbsd.h, pa/pa-linux.h, pdp11.h, romp.h, rs6000/sysv4.h,
	s390/linux.h, sh.h, sparc.h, stormy16.h, v850.h, vax.h, xtensa.h:
	(ASM_GLOBALIZE_LABEL): Delete.
	(GLOBAL_ASM_OP): Define.

	* m68hc11.h, m68k.h, m88k.h (ASM_GLOBALIZE_LABEL): Delete.

	* defaults.h (ASM_GLOBALIZE_LABEL): Provide a default.
	* doc/tm.texi (ASM_GLOBALIZE_LABEL): Update docs.

2002-07-30  Geoffrey Keating  <geoffk@redhat.com>

	* doc/extend.texi (Hints implementation): Document that GCC
	mostly ignores `register'.

2002-07-30  Toon Moene  <toon@moene.indiv.nluug.nl>

	* flags.h: Declare flag_finite_math_only.
	Use it in definition of HONOR_NANS and
	HONOR_INFINITIES.
	* c-common.c (cb_register_builtins): Emit
	__FINITE_MATH_ONLY__ when flag_finite_math_only
	is set.
	* combine.c (simplify_if_then_else): If
	flag_finite_math_only is set, a == b has a
	definite value.
	* toplev.c: Initialize flag_finite_math_only.
	(set_flags_fast_math): Set it on -ffast-math.
	(flag_fast_math_set_p): Test it.
	* doc/invoke.texi: Document -ffinite-math-only.

2002-07-30  Richard Henderson  <rth@redhat.com>

	* ifcvt.c (noce_get_alt_condition): Use reg_overlap_mentioned_p.
	(noce_process_if_block): Likewise.

2002-07-30  Bernd Schmidt  <bernds@redhat.com>

	* ifcvt.c (cond_exec_process_if_block): Fix a merging error.
	Bail out early if false_expr is NULL and we'd crash due to this.
	* genemit.c (gen_expand): Recognize return insns even if the return
	appears in a parallel.
	* libgcc2.c: Expand macro DECLARE_LIBRARY_RENAMES if it is defined.
	* config/fp-bit.c: Likewise.
	* doc/tm.texi: Document it.

2002-07-30  David Edelsohn  <edelsohn@gnu.org>
	    Zack Weinberg  <zack@codesourcery.com>

	* rs6000.c (rs6000_expand_unop_builtin): Check icode not
	CODE_FOR_nothing.  Change switch to if.
	(rs6000_expand_binop_builtin): Same.
	(rs6000_expand_builtin): Expand builtin if target support enabled.
	(rs6000_init_builtins): Init builtin if target support enabled.
	(rs6000_common_init_builtins): Check icode not CODE_FOR_nothing.

2002-07-30  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* gcc.c (cpp_unique_options): Define __GXX_ABI_VERSION, bump it to 101.

2002-07-30  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Fix typo.

Tue Jul 30 18:31:31 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (cond_delay_slot): New attribute.
	(cbranch delay): Use it for anulled-true case.
	(stuff_delay_slot): New pattern.
	* sh.c (print_operand, case '.'): Don't print .s / /s fore zero-length
	delay slot insn.
	(gen_far_branch): Emit stuff_delay_slot pattern.

Tue Jul 30 11:21:44 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* unroll.c (copy_loop_body): Don't copy NOTE_INSN_LOOP_CONT.

2002-07-30  Kazu Hirata  <kazu@cs.umass.edu>

	* fold-const.c: Fix comment typos.
	* gcse.c: Likewise.
	* reload1.c: Likewise.

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

	* config/rs6000/rs6000.md: Disallow CCEQ compare with crnor/crnot
	for TARGET_SPE.

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

	* c-pretty-print.h (pp_c_statement): Declare.
	* c-pretty-print.c (pp_c_postfix_expression): #if 0 support for SRCLOC.
	(pp_c_statement): Define.

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

	* alpha.h, arc.h, arm/aout.h, avr.h, c4x.h, cris.h, d30v.h,
	darwin.h, dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i960.h,
	ip2k.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mips.h,
	mn10200.h, mn10300.h, ns32k.h, pa/pa-linux.h, pdp11.h, romp.h,
	rs6000/sysv4.h, s390/linux.h, sh.h, sparc.h, stormy16.h,
	v850.h, vax.h, xtensa.h (ASM_OUTPUT_LABEL): Delete definition.

	* defaults.h (ASM_OUTPUT_LABEL): Provide a default.
	* doc/tm.texi (ASM_OUTPUT_LABEL): Update docs.

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

	* c-pretty-print.c (pp_c_primary_expression): Handle STMT_EXPR.
	(pp_c_postfix_expression): Handle ARROW_EXPR, FFS_EXPR,
	COMPOUND_LITERAL_EXPR, VA_ARG_EXPR.
	(pp_c_expression): Update.

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

	* alpha/vms-cc.c (preprocess_args, main): Use xstrdup and/or
	concat in lieu of xmalloc/strcpy/memcpy/sprintf.
	* alpha/vms-ld.c (main): Likewise.
	* dsp16xx.c (double_reg_to_memory): Likewise.
	* mcore.c (mcore_expand_prolog): Likewise.
	* cppfiles.c (read_name_map): Likewise.
	* gensupport.c (process_rtx, identify_predicable_attribute,
	alter_test_for_insn): Likewise.
	* vmsdbgout.c (write_rtnbeg, vmsdbgout_init): Likewise.

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

	* builtins.c (expand_builtin):  Change the default behavior to
	only issue an error if the builtin function doesn't have a
	fallback library call.  Remove several cases handled by the
	new default.

2002-07-29  John David Anglin  <dave@hiauly1.hia.nrc>

	* real.c (ieee_24, ieee_53, ieee_64, ieee_113): Define only if the
	floating point format of the target is IEEE.
	* (dec_f, dec_d, dec_g, dec_h): Define only if the floating point
	format of the target is DEC.

2002-07-29  Richard Henderson  <rth@redhat.com>

	* unroll.c (verify_addresses): Remove.
	(find_splittable_givs): Never split DEST_ADDR givs.

2002-07-29  Geoffrey Keating  <geoffk@redhat.com>

	* doc/gty.texi (GGC Roots): Clarify that the list of syntaxes
	is exhaustive.
	(Files): Improve documentation on generated source files.

	* doc/extend.texi (Translation implementation): Document what
	diagnostics look like.
	(Identifiers implementation): Document that there's normally no
	limit on identifier names.
	(Integers implementation): Document two's complement.
	(Hints implementation): Document that GCC honors 'inline', mostly.
	(Preprocessing directives implementation): Document that GCC
	requires the current time.

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

	* c-pretty-print.h (struct c_pretty_print_info): Add new member.
	(pp_initializer): New macro.
	(pp_c_initializer): Declare.
	* c-pretty-print.c (pp_c_primary_expression): HAndle TARGET_EXPR.
	(pp_c_initializer): Define.
	(pp_c_initializer_list): New function.
	(pp_c_postfix_expression): Handle ABS_EXPR, COMPLEX_CST,
	VECTOR_CST, CONSTRUCTOR.
	(pp_c_unary_expression): Handle CONJ_EXPR, REALPART_EXPR,
	IMAGPART_EXPR.
	(pp_c_cast_expression): Handle FLOAT_EXPR.
	(pp_c_assignment_expression): Handle INIT_EXPR.
	(pp_c_expression): Update.

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

	* objc/objc-act.c (objc_init): Return immediately if filename
	is NULL.

2002-07-29  Eric Christopher  <echristo@redhat.com>

	* config/mips/elf.h: Remove ecoff.h and gofast includes.
	(DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO): Define unconditionally.
	(SDB_DEBUGGING_INFO): Undefine.
	(PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
	(PUT_SDB_SIZE): Remove.
	(SUBTARGET_ASM_DEBUGGING_SPEC): Redefine.
	(STARTFILE_SPEC): Add isa3264 define.
	* config/mips/elf64.h: Ditto.  Move TARGET_MEM_FUNCTIONS from here...
	* config/mips/ecoff.h: Remove. and here...
	* config/mips/iris3.h: and here...
	* config/mips/sni-svr4.h: and here...
	* config/mips/mips.h: To here. Remove OBJECT_FORMAT_ROSE ifdefs.
	Add assembler -mmdebug options for non-dwarf debugging.
	* config/mips/r3900.h: Remove debug info defines.
	* config/mips/isa32-linux.h: Remove, move functionality to config.gcc.
	* config/mips/isa3264.h: Ditto.
	* config/mips/t-isa3264: Fix up for file removal and gofast configure
	change.
	* config/mips/t-elf: Ditto.
	* config/mips/t-ecoff: Ditto.
	* config/mips/t-r3900: Ditto.
	* config/mips/t-iris5-6: Ditto.
	* config/mips/t-isa3264: Ditto.
	* config/mips/t-linux: Remove.
	* config/mips/t-netbsd: Remove.
	* config/mips/t-mips: New file.
	* config/mips/t-gofast: Ditto.
	* config/mips/netbsd.h: Remove unnecessary undefines.
	* config/mips/linux.h: Remove #include of mips.h.
	* config.gcc: Add mips.h include for elf targets. Remove tm_file
	for ecoff. Add gofast configure option for mips.

2002-07-29  Chris Demetriou  <cgd@broadcom.com>

	* configure.in (mips*-*-*): Add a test to see if MIPS libgloss
	linker scripts use STARTUP directives consistently.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/mips/elf.h (STARTFILE_SPEC): Define conditionally, based
	on whether HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES is defined.
	* config/mips/elf64.h (STARTFILE_SPEC): Likewise.
	* config/mips/isa3264.h (STARTFILE_SPEC): Do not redefine if
	HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES is set; the result
	will be the same.

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

	* config/rs6000/rs6000.md ("cpu"): Add ppc8540 to attribute.

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

	* config/rs6000/rs6000.h (RTX_COSTS): Add MULT case for 8540.

2002-07-29  Aldy Hernandez  <aldy@quesejoda.com>

	* config/rs6000/rs6000.md: Move altivec patterns from here...

	* config/rs6000/altivec.md: ...to here.

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

	* config/rs6000/spe.md ("spe_evmra"): Change to unspec.

2002-07-29  Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (set_mem_attributes_minus_bitpos): Rename from
	set_mem_attributes and add BITPOS argument.  Subtract it from
	OFFSET when same is adjusted.
	(set_mem_attributes): New wrapper function.
	* expr.c (expand_assignment): Use set_mem_attributes_minus_bitpos;
	remove offset adjustment hack.
	* expr.h (set_mem_attributes_minus_bitpos): Declare.

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

	* Makefile.in (C_OBJS): Include c-pretty-print.o
	(c-pretty-print.o): Add depency rule.
	* pretty-print.h: Add more macros.
	* c-pretty-print.c: New file.
	* c-pretty-print.h: Likewise.

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

	* config/rs6000/spe.h (__internal_ev_mwhgumian): Cast vector
	constants to __ev64_s32__.
	(__internal_ev_mwhgsmian): Same.
	(__internal_ev_mwhgsmfan): Same.
	(__internal_ev_mwhgssfan): Same.
	(__internal_ev_mwhgumiaa): Same.
	(__internal_ev_mwhgsmiaa): Same.
	(__internal_ev_mwhgsmfaa): Same.
	(__internal_ev_mwhgssfaa): Same.

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

	* varasm.c (assemble_variable): Narrow test for uninitialized
	without BSS target support.

2002-07-29  Nathan Sidwell  <nathan@codesourcery.com>

	* profile.c: Add file comment describing the overall algorithm and
	structures.
	(struct edge_info): Add comments.
	(struct bb_info): Add comments.
	* basic-block.h (EDGE_*): Add comments.
	* doc/gcov.texi (Gcov Data Files): Document bit flags.

2002-07-29  Bob Wilson  <bob.wilson@acm.org>

	* config/xtensa/elf.h, config/xtensa/linux.h
	(TARGET_OS_CPP_BUILTINS): Define.
	(CPP_PREDEFINES): Remove.
	* config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define.
	(CPP_SPEC): Remove.

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

	* gensupport.c: Include hashtab.h.
	(insn_elision, condition_table, hash_c_test, cmp_c_test,
	maybe_eval_c_test): New routines and data structures to
	support insn elision.
	(init_md_reader): Read and initialize the condition_table.
	(read_md_rtx): Discard insn patterns whose C test is provably
	always false.
	* gensupport.h: Declare new functions and data structures.

	* genconditions.c, dummy-conditions.c: New files.
	* Makefile.in: Build genconditions; run it to construct
	insn-conditions.c; build that and link it into most gen*
	programs.
	(HOST_SUPPORT, HOST_EARLY_SUPPORT): New variables.
	(GEN): Delete, unused.
	(STAGESTUFF): Update.

	* gencodes.c: (gen_insn): #define CODE_FOR_xxx equal to
	CODE_FOR_nothing for all elided patterns.
	(main): Tweaked to support this.
	* genflags.c (gen_proto): Emit a static inline generator
	function here for all elided patterns, which simply returns
	NULL_RTX.
	(gen_insn): Do not define HAVE_xxx for elided patterns.
	(main): Tweaked to support this.  No need to forward-declare
	struct rtx_def.
	* genrecog.c: Do not bother emitting the C test if it's known
	to be true at compile time.

2002-07-29  Mike Stump  <mrs@apple.com>

	* config.gcc (target_gtfiles): Initialize, as otherwise cross
	compilers hosted on powerpc-apple-darwin6.0 won't even build.

2002-07-29  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (sibcall, sibcall_value): Add RETURN as part of the pattern,
	remove clobber of LR.
	(sibcall_insn, sibcall_value_insn): Update accordingly.
	(sibcall_epilogue): Remove debugging comment from assembler stream.

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

	* pretty-print.h: Define more macros.
	* diagnostic.h (output_formatted_integer): Moved from...
	* diagnostic.c: ... here.

2002-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use ASM_OUTPUT_LABEL_REF.

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

	* defaults.h (ASM_OUTPUT_MEASURED_SIZE): Take only two
	arguments.  Always use ".-symbol" as expression argument.
	* doc/tm.texi: Update to match.  Document requirement for
	".size symbol, .-symbol" to be acceptable to assembler.

	* config/elfos.h, config/netbsd-aout.h, config/openbsd.h,
	config/arm/elf.h, config/avr/avr.h, config/cris/aout.h,
	config/i386/freebsd-aout.h, config/i386/sco5.h,
	config/ip2k/ip2k.h, config/m88k/m88k.h, config/xtensa/elf.h,
	config/xtensa/linux.h:  Update uses of ASM_OUTPUT_MEASURED_SIZE.

2002-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (gengtype-lex.c): Fix error in last change.

	* alpha/freebsd.h (TARGET_OS_CPP_BUILTINS): Add missing
	backslash.

	* Makefile.in (vmsdbgout.o): Depend on function.h.

	* vmsdbgout.c: Include function.h.

2002-07-28  Alan Modra  <amodra@bigpond.net.au>

	* prefix.c (update_path): Don't strip single `.' path components
	unless stripping a later `..' component.  Exit loop as soon as
	a valid path is found.

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

	* builtins.def [DEF_GCC_BUILTIN]: Require an explicit ATTRS
	argument.  Mark BUILT_IN_RETURN, BUILT_IN_EH_RETURN,
	BUILT_IN_LONGJMP and BUILT_IN_TRAP as noreturn, the ISO C99
	floating point unordered comparisons (e.g. __builtin_isgreater)
	as const, and leave the remaining GCC_BUILTINs unchanged.

	* c-decl.c (builtin_function): No need to explicitly mark
	BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn.

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

	* Makefile.in: rtlanal.o now depends upon real.h.

	* flags.h [flag_signaling_nans]: New flag.
	[HONOR_SNANS]: New macro.

	* toplev.c [flag_signaling_nans]: Initialize to false.
	(f_options): Add processing for "-fsignaling-nans".
	(set_fast_math_flags): Clear flag_signaling_nans with -ffast-math.
	(process_options): flag_signaling_nans implies flag_trapping_math.

	* c-common.c (cb_register_builtins): Define __SUPPORT_SNAN__
	when -fsignaling-nans.  First step to implementing WG14's N965.

	* fold-const.c (fold) [MULT_EXPR]: Conditionalize transforming
	1.0 * x into x, and -1.0 * x into -x on !HONOR_SNANS.
	[RDIV_EXPR]: Conditionalize x/1.0 into x on !HONOR_SNANS.

	* simplify-rtx.c (simplify_relational_operation): Conditionalize
	transforming abs(x) < 0.0 into false on !HONOR_SNANS.

	* rtlanal.c: #include real.c for TARGET_FLOAT_FORMAT definitions
	required by HONOR_SNANS.  (may_trap_p): Floating point DIV, MOD,
	UDIV, UMOD, GE, GT, LE, LT and COMPARE may always trap with
	-fsignaling_nans.  EQ and NE only trap for flag_signaling_nans
	not flag_trapping_math (i.e. HONOR_SNANS but not HONOR_NANS).

	* doc/invoke.texi: Document new -fsignaling-nans compiler option.

2002-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (gengtype-lex.c): Work around a bug in flex.
	* gengtype-lex.l (YY_USE_PROTOS): Undef.
	(YY_DECL): Define.

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

	* doc/invoke.texi: Document that both -fno-builtin-foo and
	-fno-builtin are supported by the g++ front-end.

2002-07-27  Stan Shebs  <shebs@apple.com>

	* configure.in: Rename config_gtfiles to target_gtfiles.
	* configure: Regenerate.
	* doc/gty.texi: Update reference.
	* config.gcc (powerpc-*-darwin*): Set target_gtfiles
	instead of appending to it.

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

	* config/rs6000/rs6000.c (function_arg_advance): SPE vararg
	vectors are split into two registers.
	(function_arg): Same.

Thu Jul 26 23:00:13 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* pa.md (extv): Check predicates before emitting extv_32.

2002-07-27  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.c (rs6000_traceback_name): New var.
	(rs6000_traceback): New var.
	(rs6000_override_options): Set rs6000_traceback.
	(rs6000_output_function_epilogue): Implement traceback options.
	* config/rs6000/rs6000.h (TARGET_OPTIONS): Add "traceback=".
	(rs6000_traceback_name): Declare.

	* config/rs6000/rs6000.c (output_profile_hook): Don't generate profile
	label reference when NO_PROFILE_COUNTERS.

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

	* function.c (assign_parms): Handle frontend-directed pass by
	invisible reference.

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

	* doc/cppopts.texi: Update.

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

	* cppmacro.c (_cpp_create_definition): Don't attempt redefinition
	warnings on assertions.

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

	* c-common.h (RID_AND, RID_AND_EQ, RID_NOT, RID_NOT_EQ,
	RID_OR, RID_OR_EQ, RID_XOR, RID_XOR_EQ, RID_BITAND, RID_BITOR,
	RID_COMPL): Remove.
	* c-parse.in (rid_to_yy): Similarly.

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

	* c-dump.c: Resurrect.
	* tree-dump.c: Move C-specific stuff to c-dump.c.
	* c-common.h: Declare c_dump_tree.
	* c-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN): Define.
	* Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
	(c-dump.o): New rule.

2002-07-26  Alan Modra  <amodra@bigpond.net.au>

	* config/rs6000/rs6000.md: Enable patterns using rlwinm for
	PowerPC64.  Replace "T" and "S" constraints with "n" when the
	predicate will do.  Formatting fixes.
	(extzvsi_internal2): Use "andi.", "andis." and attr type of "compare"
	as for extzvsi_internal1.

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

	* dwarfout.c (VERSION_ASM_OP, DERIV_BEGIN_LABEL_FMT,
	DERIV_END_LABEL_FMT): Remove.
	(SL_BEGIN_LABEL_FMT, SL_END_LABEL_FMT): Move.

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

	* objc/objc-act.c (UTAG_STATICS, UTAG_PROTOCOL_LIST, USERTYPE):
	Remove.

2002-07-25  Stan Shebs  <shebs@apple.com>

	* config/rs6000/rs6000.c (rs6000_emit_prologue): Remove unused
	local var dwarfp.
	(output_compiler_stub): Remove unused locals.
	(output_call): Always initialize line number.

Thu Jul 25 20:34:50 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (LOAD_EXTEND_OP): QImode zero-extends on SHmedia.
	* sh.md (truncdiqi2, movqi_media): Likewise.

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

	* gcse.c (obstack_chunk_alloc): Remove.
	(gcse_alloc): Fix to count allocated bytes.
	* collect2.c (SYMBOL__MAIN): Remove.

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

	* gcc.c (TARGET_EXECUTABLE_SUFFIX): Only used if
	HAVE_TARGET_EXECUTABLE_SUFFIX.

Thu Jul 25 18:57:50 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* rtl.h (mem_attrs): Spell out more clearly the roles of ALIGN,
	SIZE, EXPR and OFFSET.

2002-07-25  Richard Henderson  <rth@redhat.com>

	* emit-rtl.c (set_mem_attributes): Fix size and alignment thinkos
	in ARRAY_REF of DECL_P case.

2002-07-25  Richard Sandiford  <rsandifo@redhat.com>

	* doc/invoke.texi: Document -mabi=meabi, and expand on the EABI
	description.  Document -mips32, -mips64, and the associated -march
	values.  Describe the "mipsN" arguments to -march.  Say that the
	-mipsN options are equivalent to -march.  Reword the description
	of default type sizes.
	* toplev.h (target_flags_explicit): Declare.
	* toplev.c (target_flags_explicit): New var.
	(set_target_switch): Update target_flags_explicit.
	* config/mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Undefine.
	* config/mips/elf64.h (MIPS_ISA_DEFAULT): Undefine.
	* config/mips/iris6.h (SUBTARGET_ASM_SPEC): -mabi=64 implies -mips3.
	* config/mips/isa3264.h (MIPS_ENABLE_EMBEDDED_O32): Undefine.
	* config/mips/mips.h (mips_cpu_info): New struct.
	(mips_cpu_string, mips_explicit_type_size_string): Remove.
	(mips_cpu_info_table, mips_arch_info, mips_tune_info): Declare.
	(MIPS_CPP_SET_PROCESSOR): New macro.
	(TARGET_CPP_BUILTINS): Declare a macro for each supported processor.
	Define _MIPS_ARCH and _MIPS_TUNE.
	(MIPS_ISA_DEFAULT): Don't provide a default value.  Instead...
	(MIPS_CPU_STRING_DEFAULT): Set to "from-abi" if neither it nor
	MIPS_ISA_DEFAULT were already defined.
	(MULTILIB_DEFAULTS): Add MULTILIB_ABI_DEFAULT.
	(TARGET_OPTIONS): Remove -mcpu and -mexplicit-type-size.
	(ABI_NEEDS_32BIT_REGS, ABI_NEEDS_64BIT_REGS): New.
	(GAS_ASM_SPEC): Remove -march, -mcpu, -mgp* and -mabi rules.
	(ABI_GAS_ASM_SPEC): Remove.
	(MULTILIB_ABI_DEFAULT, ASM_ABI_DEFAULT_SPEC): New macros.
	(ASM_SPEC): Add -mgp32, -mgp64, -march, -mabi=eabi and -mabi=o64.
	Invoke %(asm_abi_default_spec) if no ABI was specified.
	(CC1_SPEC): Remove ISA -> register-size rules.
	(EXTRA_SPECS): Remove abi_gas_asm_spec.  Add asm_abi_default_spec.
	* config/mips/mips.c (mips_arch_info, mips_tune_info): New vars.
	(mips_cpu_string, mips_explicit_type_size_string): Remove.
	(mips_cpu_info_table): New array.
	(mips_set_architecture, mips_set_tune): New fns.
	(override_options): Rework to make -mipsN equivalent to -march.
	Detect more erroneous cases, including those removed from CC1_SPEC.
	Don't change the ABI based on architecture, or vice versa.
	Unify logic with GAS.
	(mips_asm_file_start): Get architecture name from mips_arch_info.
	(mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p): New fns.
	(mips_parse_cpu): Take the name of the option as argument.  Handle
	'from-abi'.  Raise an error if the option is wrong.
	(mips_cpu_info_from_isa): New fn.

2002-07-25  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.md (tablejump_mips161): Use gen_rtx_LABEL_REF.
	(tablejump_mips162): Likewise.

Thu Jul 25 10:23:41 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* simpify-rtx.c (simplify_subreg): Don't pass MODE_CC mode to
	int_mode_for_mode.

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

	* c-common.c (c_sizeof_or_alignof_type): Take a third argument for
	complaining.
	* c-common.h (c_sizeof): Adjust definition.
	(c_alignof): Likewise.
	* c-tree.h (c_sizeof_nowarn): Now macro.
	* c-typeck.c (c_sizeof_nowarn): Remove definition.

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

	* c-decl.c (c_decode_option): No need to handle switches
	cpplib handles.

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

	* defaults.h (ASM_OUTPUT_TYPE_DIRECTIVE, ASM_OUTPUT_SIZE_DIRECTIVE,
	ASM_OUTPUT_MEASURED_SIZE): New default definitions of new macros.
	* doc/tm.texi: Document them.  Also document SIZE_ASM_OP,
	TYPE_ASM_OP, and TYPE_OPERAND_FMT.

	* config/elfos.h, config/netbsd-aout.h, config/openbsd.h,
	config/alpha/elf.h, config/arm/elf.h, config/avr/avr.h,
	config/cris/aout.h, config/i386/freebsd-aout.h,
	config/i386/sco5.h, config/ia64/ia64.c, config/ip2k/ip2k.h,
	config/m68k/m68kelf.h, config/m68k/m68kv4.h, config/m88k/m88k.h,
	config/mcore/mcore-elf.h, config/mips/elf.h, config/mips/elf64.h,
	config/mips/iris6.h, config/mips/linux.h, config/pa/pa-linux.h,
	config/pa/pa64-hpux.h, config/rs6000/sysv4.h,
	config/xtensa/elf.h, config/xtensa/linux.h:
	Use the new macros.
	Where possible, remove redundant definitions of SIZE_ASM_OP,
	TYPE_ASM_OP, and TYPE_OPERAND_FMT.

2002-07-24  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/eabi.h: Define TARGET_SPE_ABI, TARGET_SPE,
	TARGET_ISEL, and TARGET_FPRS.

	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
	-mabi=spe, -mabi=no-spe, and -misel=.

	* config/rs6000/rs6000-protos.h: Add output_isel.
	Move vrsave_operation prototype here.

	* config/rs6000/rs6000.md (sminsi3): Allow pattern for TARGET_ISEL.
	(smaxsi3): Same.
	(uminsi3): Same.
	(umaxsi3): Same.
	(abssi2_nopower): Disallow when TARGET_ISEL.
	(*ne0): Same.
	(negsf2): Change to expand and rename old pattern to *negsf2.
	(abssf2): Change to expand and rename old pattern to *abssf2.

	New expanders: fix_truncsfsi2, floatunssisf2, floatsisf2,
	fixunssfsi2.

	Change patterns that check for TARGET_HARD_FLOAT or
	TARGET_SOFT_FLOAT to also check TARGET_FPRS.

	* config/rs6000/rs6000.c: New globals: rs6000_spe_abi,
	rs6000_isel, rs6000_fprs, rs6000_isel_string.
	(rs6000_override_options): Add 8540 case to
	processor_target_table.
	Set rs6000_isel for the 8540.
	Call rs6000_parse_isel_option.
	(enable_mask_for_builtins): New.
	(rs6000_parse_isel_option): New.
	(rs6000_parse_abi_options): Add spe and no-spe.
	(easy_fp_constant): Treat !TARGET_FPRS as soft-float.
	(rs6000_legitimize_address): Check for TARGET_FPRS when checking
	for TARGET_HARD_FLOAT.
	Add case for SPE_VECTOR_MODE.
	(rs6000_legitimize_reload_address): Handle SPE vector modes.
	(rs6000_legitimate_address): Disallow PRE_INC/PRE_DEC for SPE
	vector modes.
	Check for TARGET_FPRS when checking for TARGET_HARD_FLOAT.
	(rs6000_emit_move): Check for TARGET_FPRS.
	Add cases for SPE vector modes.
	(function_arg_boundary): Return 64 for SPE vector modes.
	(function_arg_advance): Check for TARGET_FPRS and
	Handle SPE vectors.
	(function_arg): Same.
	(setup_incoming_varargs): Check for TARGET_FPRS.
	(rs6000_va_arg): Same.
	(struct builtin_description): Un-constify mask field.  Move up in
	file.
	(bdesc_2arg): Un-constify and add SPE builtins.
	(bdesc_1arg): Same.
	(bdesc_spe_predicates): New.
	(bdesc_spe_evsel): New.
	(rs6000_expand_unop_builtin): Add SPE 5-bit literal builtins.
	(rs6000_expand_binop_builtin): Same.
	(bdesc_2arg_spe): New.
	(spe_expand_builtin): New.
	(spe_expand_predicate_builtin): New.
	(spe_expand_evsel_builtin): New.
	(rs6000_expand_builtin): Call spe_expand_builtin for SPE.
	(rs6000_init_builtins): Initialize SPE builtins.  Call
	rs6000_common_init_builtins.
	(altivec_init_builtins): Move all non-altivec builtin code to...
	(rs6000_common_init_builtins): ...here.  New function.
	(branch_positive_comparison_operator): Allow NE code for SPE.
	(ccr_bit): Return correct ccr bit for SPE fp.
	(print_operand): Emit crnor in 'D' case for SPE.
	New case 't'.
	Add SPE code for 'y' case.
	(rs6000_generate_compare): Generate rtl for SPE fp.
	(output_cbranch): Handle SPE hard floats.
	(rs6000_emit_cmove): Handle isel.
	(rs6000_emit_int_cmove): New.
	(output_isel): New.
	(rs6000_stack_info): Adjust stack frame so GPRs are saved in
	64-bits for SPE.
	(debug_stack_info): Add SPE info.
	(gen_frame_mem_offset): New.
	(rs6000_emit_prologue): Save GPRs in 64-bits for SPE abi.
	Change mode of frame pointer, when saving it, to Pmode.
	(rs6000_emit_epilogue): Restore GPRs in 64-bits for SPE abi.
	Misc cleanups and use gen_frame_mem_offset when appropriate.

	* config/rs6000/rs6000.h (processor_type): Add PROCESSOR_PPC8540.
	(TARGET_SPE_ABI): New.
	(TARGET_SPE): New.
	(TARGET_ISEL): New.
	(TARGET_FPRS): New.
	(FIXED_SCRATCH): New.
	(RTX_COSTS): Add PROCESSOR_PPC8540.
	(ASM_CPU_SPEC): Add case for 8540.
	(TARGET_OPTIONS): Add isel= case.
	(rs6000_spe_abi): New.
	(rs6000_isel): New.
	(rs6000_fprs): New.
	(rs6000_isel_string): New.
	(UNITS_PER_SPE_WORD): New.
	(LOCAL_ALIGNMENT): Adjust for SPE.
	(HARD_REGNO_MODE_OK): Same.
	(DATA_ALIGNMENT): Same.
	(MEMBER_TYPE_FORCES_BLK): New.
	(FIRST_PSEUDO_REGISTER): Set to 113.
	(FIXED_REGISTERS): Add SPE registers.
	(reg_class): Same.
	(REG_CLASS_NAMES): Same.
	(REG_CLASS_CONTENTS): Same.
	(REGNO_REG_CLASS): Same.
	(REGISTER_NAMES): Same.
	(DEBUG_REGISTER_NAMES): Same.
	(ADDITIONAL_REGISTER_NAMES): Same.
	(CALL_USED_REGISTERS): Same.
	(CALL_REALLY_USED_REGISTERS): Same.
	(SPE_ACC_REGNO): New.
	(SPEFSCR_REGNO): New.
	(SPE_SIMD_REGNO_P): New.
	(HARD_REGNO_NREGS): Adjust for SPE.
	(VECTOR_MODE_SUPPORTED_P): Same.
	(REGNO_REG_CLASS): Same.
	(FUNCTION_VALUE): Same.
	(LIBCALL_VALUE): Same.
	(LEGITIMATE_OFFSET_ADDRESS_P): Same.
	(SPE_VECTOR_MODE): New.
	(CONDITIONAL_REGISTER_USAGE): Disable FPRs when target does FP on
	the GPRs.  Set FIXED_SCRATCH fixed in SPE case.
	(rs6000_stack): Add spe_gp_size, spe_padding_size,
	spe_gp_save_offset.
	(USE_FP_FOR_ARG_P): Check for TARGET_FPRS.
	(LEGITIMATE_LO_SUM_ADDRESS_P): Same.
	(SPE_CONST_OFFSET_OK): New.
	(rs6000_builtins): Add SPE builtins.

	* testsuite/gcc.dg/ppc-spe.c: New.

	* config/rs6000/eabispe.h: New.

	* config/rs6000/spe.h: New.

	* config/rs600/spe.md: New.

	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
	__SIMD__ for TARGET_SPE.

	* config.gcc: Add powerpc-*-eabispe* case.
	Add spe.h to user headers for powerpc.

2002-07-24  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/elf.h (STARTFILE_SPEC): Undo previous change.
	* config/mips/elf64.h (STARTFILE_SPEC): Likewise.
	* config/mips/isa3264.h (STARTFILE_SPEC): Likewise.

2002-07-24  Richard Henderson  <rth@redhat.com>

	* expr.c (expand_expr) [TRY_FINALLY_EXPR]: Use GOTO_SUBROUTINE_EXPR
	form when not optimizing.

2002-07-24  David Mosberger  <davidm@hpl.hp.com>

	* config/ia64/ia64.c (gen_thread_pointer): Fix typo in marking
	thread_pointer_rtx as unchanging.

2002-07-24  Michael Matz  <matz@suse.de>

	* ra-colorize.c (INV_REG_ALLOC_ORDER): New macro.
	(free_reg): Use it.

2002-07-24  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (arm_buneq, arm_bltgt): put '\' before ';' in output
	pattern.
	(arm_buneq_reversed, arm_bltgt_reversed): Likewise.
	(movsicc, movsfcc, movdfcc): FAIL if UNEQ or LTGT.

2002-07-24  Chris Demetriou  <cgd@broadcom.com>

	* config/mips/elf.h (STARTFILE_SPEC): Never include crt0.o.
	* config/mips/elf64.h (STARTFILE_SPEC): Likewise.
	* config/mips/isa3264.h (STARTFILE_SPEC): Do not redefine.

Wed Jul 24 17:59:12 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* toplev.c (rest_of_compilation): Dump loops before clobbering
	the structure.

Wed Jul 24 17:23:16 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* rtlanal.c (keep_with_call_p): Avoid overflow in fixed_regs.

2002-07-24  Frank van der Linden  <fvdl@wasabisystems.com>

	PR optimization/7291
	* config/i386/i386.c (ix86_expand_clrstr): Fix bzero alignment
	problem on x86_64.

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

	* pretty-print.h: Add macros from cp/error.c

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

	* config/rs6000/rs6000-protos.h (mask_operand_wrap): Declare.
	(mask64_2_operand): Declare.
	(build_mask64_2_operands): Declare.
	(and64_2_operand): Declare.
	(extract_MB): Declare.
	(extract_ME): Declare.
	* config/rs6000/rs6000.c (mask64_operand): Allow all ones.  Remove
	CONST_DOUBLE code.
	(mask_operand_wrap): New insn predicate.
	(mask64_2_operand): Likewise.
	(and64_2_operand): Likewise.
	(build_mask64_2_operands): New function.
	(extract_MB): New function.
	(extract_ME): New function.
	(print_operand <case m,M>): Use extract_MB and extract_ME.
	(print_operand <case S>): Allow all ones.  Remove CONST_DOUBLE support.
	* config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 't'.
	(PREDICATE_CODES): Add and64_2_operand, mask_operand_wrap and
	mask64_2_operand.  Remove CONST_DOUBLE from mask64_operand.
	* config/rs6000/rs6000.md (andsi3_internal3): New
	(andsi3_internal3+1): Enable split for powerpc64.
	(andsi3_internal3+2): New split.
	(andsi3_internal4): Renamed old andsi3_internal3.
	(andsi3_internal5): New.
	(andsi3_internal5+1): Enable split for powerpc64.
	(andsi3_internal5+2): New split.
	(andsi3_internal6, andsi3_internal7, andsi3_internal8): New.
	(anddi3): Handle 't' constraint.
	(anddi3+1): New split.
	(anddi3_internal2): Handle 't' constraint.
	(anddi3_internal2+1): New split.
	(anddi3_internal3): Handle 't' constraint.
	(anddi3_internal3+1): New split.

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

	* config/rs6000/rs6000.md: Remove scratch reg on insns using
	addze and similar (plus (comparison r1 r2) r3) insns.  Add
	missing scratch reg in one case.  Formatting fixes.

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

	* cppexp.c (parse_defined): Mark macro used.
	* cpphash.h (struct cpp_macro): New member "used".
	(_cpp_mark_macro_used, _cpp_warn_if_unused_macro): New.
	(struct cpp_reader): New member.
	* cppinit.c (cpp_finish_options): Set first_unused_line.
	(cpp_finish): Warn of unused macros if requested.
	(OPT_TABLE): New switches.
	(cpp_handle_option): Handle them.
	* cpplib.c (do_undef): Warn if macro unused.
	(do_ifdef, do_ifndef): Mark macro used.
	* cpplib.h (struct cpp_options): New member.
	* cppmacro.c (_cpp_warn_if_unused_macro): New.
	(enter_macro_context): Mark macro used.
	(_cpp_create_definition): Mark macro unused; warn if unused
	when redefined.
	* cpptrad.c (scan_out_logcial_line, push_replacement_text):
	Mark macros used.
	* doc/cppopts.texi: Update.

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

	* dwarf2out.c (SECTION_ASM_OP,
	ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
	* system.h (SECTION_ASM_OP): Poison.
	* tree.c (FILE_FUNCTION_PREFIX_LEN): Remove.
	* config/alpha/alpha-interix.h, config/mips/linux.h
	(ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
	* config/mmix/mmix-protos.h, config/mmix/mmix.c
	(mmix_asm_output_define_label_difference_symbol): Remove.
	* config/mmix/mmix.h
	(ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Remove.
	* doc/tm.texi: Remove documentation.

Tue Jul 23 21:49:24 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* recog.c (asm_operand_ok): Allow float CONST_VECTORs for 'F'.
	(constrain_operands): Likewise.
	* regclass.c (record_reg_classes): Likewise.
	* reload.c (find_reloads): Likewise.
	* doc/md.texi: Likewise.

	* reload.c (find_reloads_toplev): Use simplify_gen_subreg.
	* simplify-rtx.c (simplify_subreg): When converting to a non-int
	mode, try to convert to an integer mode of matching size first.

	* simplify-rtx.x (simplify_subreg): When constructing a CONST_VECTOR
	from individual subregs, check that each subreg has been generated
	sucessfully.

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

	* genautomata.c (VLA_HWINT_SHORTEN, VLA_HWINT_LAST): Remove.
	* df.c (HANDLE_SUBREG, FOR_EACH_BB_IN_BITMAP_REV,
	FOR_EACH_BB_IN_SBITMAP): Remove.
	* gcse.c (NEVER_SET, FOLLOW_BACK_EDGES): Remove.
	* haifa-sched.c (DONE_PRIORITY, MAX_PRIORITY, TAIL_PRIORITY,
	LAUNCH_PRIORITY, DONE_PRIORITY_P, LOW_PRIORITY_P): Remove.
	* loop.c (PREFETCH_BLOACK_IN_LOOP_MIN,
	PREFETCH_LIMIT_TO_SIMULTANEOUS): Remove.
	* regrename.c (REGNO_MODE_OK_FOR_BASE_P): Remove.

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

	* pretty-print.h: New file.

2002-07-23	Paul Koning	<pkoning@equallogic.com>

	* real.c (REAL_WORDS_BIG_ENDIAN): Make 1 for DEC.
	(LARGEST_EXPONENT_IS_NORMAL): Ditto.
	(VAX_HALFWORD_ORDER): Define (1 for DEC VAX, 0 otherwise).
	(TARGET_G_FLOAT): Default to 0 if not defined.
	(ieeetoe): New, common routine to convert target format floats
	to internal form.
	(e24toe, e53toe): Change to use ieeetoe, distinguish DEC
	vs. others.
	(e113toe): Change to use ieeetoe.

2002-07-23  Roman Lechtchinsky  <rl@cs.tu-berlin.de>

	* real.c (REAL_WORDS_BIG_ENDIAN): Make sure it is 0 for DEC and 1 for
	IBM.
	(e53toe): Assume IEEE if non of DEC, IBM and C4X is defined.
	(e64toe): Remove special cases for DEC and IBM. Remove support for
	ARM_EXTENDED_IEEE_FORMAT.
	(e24toe): Remove special cases for DEC.
	(significand_size): Simplify. Indent.
	(ieee_format, ieee_24, ieee_53, ieee_64, ieee_113): New.
	(etoieee, toieee): New.
	(etoe113, toe113, etoe64, toe64, etoe53, toe53, etoe24, toe24): Use
	etoieee and toieee for IEEE arithmetic.

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

	* doc/extend.texi: Say ISO C90, not ISO C89.
	* doc/invoke.texi: Likewise.
	* doc/standards.texi: Likewise.

2002-07-23  Steve Ellcey  <sje@cup.hp.com>

	* gcc/explow.c (convert_memory_address): Fix conversion of CONSTs.
	Fix permutation of conversion and plus/mult.
	* gcc/builtins.c (expand_builtin_memcpy) Ensure return pointer is
	ptr_mode and not Pmode when POINTERS_EXTEND_UNSIGNED is defined.
	(expand_builtin_strncpy) Ditto.
	(expand_builtin_memset) Ditto.

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

	Fix PR/7363:
	* c-common.c (c_sizeof_or_alignof_type): New function.
	(c_alignof): Remove definition.
	* c-common.h (c_sizeof, c_alignof): Define as macros.
	(c_sizeof_or_alignof_type): Declare.
	(my_friendly_assert): Moved from cp/cp-tree.h
	* c-typeck.c (c_sizeof): Remove definition.

2002-07-23  Jan Hubicka  <jh@suse.cz>

	* gcse.c (try_replace_reg): Use num_changes_pending.
	* recog.c (num_changes_pending): New function.
	(validate_replace_src): Use validate_repalce_src_group.
	(validate_replace_src_group): New.
	* recog.h (validate_repalce_src_group): New.
	(num_changes_pending): Likewise.

Tue Jul 23 12:16:58 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* calls.c (emit_library_call_value_1): If
	FUNCTION_ARG_PASS_BY_REFERENCE is true, pretend this is neither
	libcall, const call nor pure call.

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

	* config/m88k/m88k.h (SECTION_ASM_OP): Remove.

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

	* vmsdbgout.c (SECTION_ASM_OP): Remove.

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

	* config/i386/i386.c (AT_BP): Remove.

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

	* defaults.h (obstack_chunk_alloc, obstack_chunk_free):
	Default definition.
	* gcse.c: Don't define obstack_chunk_free.
	* collect2.c, conflict.c, df.c, diagnostic.c, fix-header.c,
	flow.c, gcc.c, genattrtab.c, genautomata.c, genflags.c, gensupport.c,
	integrate.c, loop.c, ra.c, read-rtl.c, regrename.c, reload1.c,
	reorg.c, tlink.c, tree.c, config/arm/arm.c, objc/objc-act.c:
	Don't define obstack macros.

2002-07-22  Stephane Carrez  <stcarrez@nerim.fr>

	PR target/6744
	* config/m68hc11/m68hc11.c (m68hc11_z_replacement): Also replace
	ASM_OPERANDS instructions.

2002-07-22  Stephane Carrez  <stcarrez@nerim.fr>

	PR target/7361
	* config/m68hc11/m68hc11.c (go_if_legitimate_address_internal): Accept
	constant addresses only on 68HC12.

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

	* cppfiles.c (stack_include_file): Correct test of whether
	a dependency should be output.

2002-07-22  David Edelsohn  <edelsohn@gnu.org>

	* collect2.c (is_ctor_dtor): Add other possible JOINER values.

2002-07-22  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (movqi): If optimizing and we can create pseudos, use
	a ZERO_EXTEND to load from memory, then copy the result into the
	target.
	(movhi): Likewise, but only for ARMv4.

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

	* ssa-ccp.c (PHI_PARMS): Remove.

2002-07-22  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.h (CLASS_CANNOT_CHANGE_MODE): Include FP_REGS
	on big-endian targets.

2002-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* hwint.h (HOST_WIDE_INT_PRINT_DEC_SPACE,
	HOST_WIDE_INT_PRINT_UNSIGNED_SPACE,
	HOST_WIDEST_INT_PRINT_DEC_SPACE, HOST_WIDEST_INT_PRINT_DEC_SPACE):
	New formatting macros.

	* ra-debug.c (dump_static_insn_cost): Avoid string concatenation.

Mon Jul 22 15:27:25 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* rtlanal.c (subreg_regno_offset): Return correct offset for
	big endian paradoxical subregs.

	* optabs.c (expand_vector_unop): Don't expand using sub_optab
	if we got the wrong mode.

	* hwint.c (define HOST_WIDE_INT_PRINT_DEC_C): New define.
	* genrecog.c (write_switch, write_cond): Use it.
	* genemit.c (gen_exp): Likewise.

2002-07-22  Jakub Jelinek  <jakub@redhat.com>

	* c-decl.c (build_compound_literal): Set decl TREE_READONLY from TYPE.

2002-07-22  Jakub Jelinek  <jakub@redhat.com>

	* c-decl.c (build_compound_literal): Defer compound literal decls
	until until file end to emit them only if they are actually used.

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

	* ra-build.c (check_conflict_numbers): Hide unused function.
	(livethrough_conflicts_bb): Avoid automatic aggregate
	initialization.
	(parts_to_webs_1): Avoid `U' integer constant modifier.
	(conflicts_between_webs): Wrap a variable in the macro controlling
	its usage.
	* ra-debug.c (ra_debug_msg): Use VA_OPEN/VA_CLOSE.
	(dump_igraph, dump_graph_cost): Avoid string concatenation
	(dump_static_insn_cost): Avoid automatic aggregate
	initialization.
	* ra-rewrite.c (insert_stores): Avoid automatic aggregate
	initialization.
	(dump_cost): Avoid string concatenation

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

	* expr.c (expand_expr) [TRY_FINALLY_EXPR]: Don't use
	GOTO_SUBROUTINE_EXPR when finally_block can be re-expanded.

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

	* unroll.c (find_splittable_givs): Do not split DEST_ADDR givs
	that are not unrolled completely.

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

	* loop.h (LOOP_AUTO_UNROLL): Rename from LOOP_FIRST_PASS.
	* loop.c (strength_reduce): Update.
	* toplev.c (rest_of_compilation): Do unrolling in the first
	loop pass, not the second.

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

	* emit-rtl.c (set_mem_attributes): Preserve indirection of PARM_DECL
	when flag_argument_noalias == 2.
	* alias.c (nonoverlapping_memrefs_p): Handle that.
	* print-rtl.c (print_mem_expr): Likewise.

2002-07-21  Hartmut Schirmer  <hartmut.schirmer@arcor.de>

	* libgcc2.c (__divdi3, __moddi3): Use unary minus operator
	instead of __negdi2 directly.

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

	* gengenrtl.c (gencode): Don't define obstack_alloc_rtx.
	* function.c (SYMBOL__MAIN): Remove definition.
	* global.c (SET_CONFLICT, REGBITP, ALLOCNO_LIVE_P): Remove.
	* predict.c (PROB_NEVER, PROB_LIKELY, PROB_UNLIKELY): Remove.
	* profile.c (GCOV_INDEX_TO_BB): Remove.
	* sched-rgn.c (ABS_VALUE, MIN_DIFF_PRIORITY, MIN_PROB_DIFF): Remove.
	* simplify-rtx.c (FIXED_BASE_PLUS_P): Remove.

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

	* c-lex.c (GET_ENVIRONMENT): Remove.
	* collect2.c (GET_ENV_PATH_LIST): Remove.
	(prefix_from_env): Use GET_ENVIRONMENT.
	* cppinit.c (GET_ENV_PATH_LIST): Remove.
	(init_standard_includes): Use GET_ENVIRONMENT.
	* defaults.h (GET_ENVIRONMENT): Define here if not already.
	* gcc.c (GET_ENV_PATH_LIST): Remove.
	(make_relative_prefix, process_command): Update.
	* protoize.c (GET_ENV_PATH_LIST): Remove.
	(do_processing): Update.

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

	* c-decl.c (build_array_declarator): Say 'ISO C90', not 'ISO C89'.
	(grokdeclarator): Likewise.
	* c-format.c (C_STD_NAME): Likewise.
	* c-lex.c (interpret_integer): Likewise.
	* c-typeck.c (build_array_ref): Likewise.
	* cpplex.c (_cpp_lex_direct): Likewise.
	* toplev.c (documented_lang_options): Likewise.

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

	* c-format.c (T99_I, T99_UI): Remove.

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

	* c-typeck.c (SAVE_SPELLING_DEPTH): Remove.

Sun Jul 21 21:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* gcse.c (do_local_cprop): Do not extend lifetimes of registers set by
	do_local_cprop.

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

	* reload1.c (fixup_abnormal_edges): Remove unused variable.

2002-07-21  Bernd Schmidt  <bernds@redhat.com>

	Improvements for the ifcvt pass from Michael Meissner, with patches
	by Richard Sandiford <rsandifo@redhat.com>
	* basic-block.h (struct ce_if_block, ce_if_block_t): New types.
	* ifcvt.c (cond_exec_changed_p): New static variable.
	(last_active_insn): New function, renamed from last_active_insn_p
	and changed to return the last active insn in a basic block. All
	callers updated.
	(block_fallthru): New function.
	(cond_exec_process_insns): New argument CE_INFO.  Pass it to
	IFCVT_MODIFY_INSN.  All callers updated.
	Return false if START or END are NULL.
	Handle case where we're processing an insn that is already
	conditional.

	(noce_process_if_block): CE_INFO argument rather than
	multiple args containing the involved basic blocks.  All callers
	changed.
	(process_if_block, merge_if_block, find_if_block,
	cond_exec_process_if_block): Likewise.

	(cond_exec_process_if_block): New arg DO_MULTIPLE_P.  All callers
	changed.
	Use new function last_active_insn to simplify some code.
	New code to handle multiple tests.
	Call IFCVT_MODIFY_CANCEL in all failure cases, otherwise set
	cond_exec_changed_p to TRUE.

	(process_if_block): New code to handle multiple tests.
	(merge_if_block): Likewise.
	(find_if_header): New arg PASS.  Changed to return the currently
	processed basic block or NULL instead of true/false. All callers
	changed.
	Call IFCVT_INIT_EXTRA_FIELDS.
	(block_jumps_and_fallthru_p): New function.
	(find_if_block): Discover opportunities to convert multiple tests.
	Add additional debugging output.
	Update the ce_info structure before returning.

	(if_convert): Run multiple passes of if-conversion.
	* doc/tm.texi (IFCVT_MODIFY_TESTS, IFCVT_MODIFY_INSN,
	IFCVT_MODIFY_FINAL, IFCVT_MODIFY_CANCEL, IFCVT_MODIFY_MULTIPLE_TESTS,
	IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS): Update documentation for
	these macros.

Sun Jul 21 00:54:54 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* gcse.c: Include cselib.h
	(constptop_register): Break out from ...
	(cprop_insn): ... here; kill basic_block argument.
	(do_local_cprop, local_cprop_pass): New functions.
	(one_cprop_pass): Call local_cprop_pass.

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

	* simplify-rtx.c (simplify_relational_operation): Optimize
	abs(x) < 0.0 (and abs(x) >= 0.0 when using -ffast-math).

2002-07-20  Michae Matz  <matz@suse.de>

	* ra-build.c: (remember_web_was_spilled): Use GENERAL_REGS.

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

	* cppexp.c (struct op): Add token pointer.
	(check_promotion, CHECK_PROMOTION): New.
	(optab): Update.
	(_cpp_parse_expr): Update, use token pointer of struct op.
	(reduce): Warn about change of sign owing to promotion.
	* cppinit.c (cpp_handle_option): New warning if -Wall.
	* cpplib.h (struct cpp_options): New member.

2002-07-19  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md: Remove ppc630 fpcompare from single
	fpu list.  Separate Power4 compare and delayed_compare.  Correct
	Power4 fpcompare.
	(fix_truncdfsi2_internal): Restore FPR preference.
	* config/rs6000/t-aix43 (MULTILIB_MATCHES): Add mcpu?power3,
	mcpu?power4, mcpu?604e.  Remove mpower, mpower2, mpowerpc.

2002-07-19  Momchil Velikov <velco@fadata.bg>

	* reload1.c (reload_as_needed): Duplicate oldpat.

2002-07-20  Alan Modra  <amodra@bigpond.net.au>

	PR optimization/7130
	* loop.h (struct loop_info): Add "preconditioned".
	* unroll.c (unroll_loop): Set it.
	* doloop.c (doloop_modify_runtime): Correct count for unrolled loops.

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

	* rtl.def (CODE_LABEL): Remove slot 8.
	* rtl.h (struct rtx_def): Document new uses of jump and call fields.
	(LABEL_ALTERNATE_NAME): Delete.
	(LABEL_KIND, SET_LABEL_KIND, LABEL_ALT_ENTRY_P): New.
	* defaults.h: Remove default for ASM_OUTPUT_ALTERNATE_LABEL_NAME.

	* final.c (output_alternate_entry_point): New.
	(final_scan_insn): Use it instead of
	ASM_OUTPUT_ALTERNATE_LABEL_NAME.  Do not consider possibility
	of a case label being an alternate entry point.

	* cfgbuild.c (make_edges, find_bb_boundaries): Use LABEL_ALT_ENTRY_P.
	* emit-rtl.c (gen_label_rtx): Adjust call to gen_rtx_CODE_LABEL.
	Do not clear LABEL_NUSES (unnecessary) or LABEL_ALTERNATE_NAME
	(field deleted).
	* print-rtl.c, ra-debug.c: Update code to output CODE_LABELs.

	* doc/rtl.texi: Document LABEL_KIND, SET_LABEL_KIND, and
	LABEL_ALT_ENTRY_P; not LABEL_ALTERNATE_NAME.
	* doc/tm.texi: Delete documentation of
	ASM_OUTPUT_ALTERNATE_LABEL_NAME.

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

	* config/mips/iris5gas.h (DWARF2_DEBUGGING_INFO): Define.
	(PREFERRED_DEBUGGING_TYPE): Use DWARF2_DEBUG.
	(LINK_SPEC): Define.
	(STARTFILE_SPEC): Define.
	(ENDFILE_SPEC): Define.

	* config/mips/iris6-o32.h (LINK_SPEC): Move ...
	* config/mips/iris6-o32-as.h (LINK_SPEC): ... here.

	* config/mips/iris6-o32-gas.h: New file.
	* config.gcc (mips-sgi-irix6*o32): Use it.

	* config/mips/t-iris5-gas: New file.
	* config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it.

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

	* cppexp.c (ALWAYS_EVAL): Remove.
	(optab, reduce): Always evaluate.
	(num_unary_op, num_binary_op, num_div_op): Issue diagnostics
	only if not skipping evaluation.

2002-07-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (debug_hard_reg_set): Remove.

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

	* gcc.c (cpp_options): Include "%1" (cc1_spec).

2002-07-19  Richard Henderson  <rth@redhat.com>

	* loop.c (loop_givs_rescan): Delete the REG_EQUAL note, not the insn.

2002-07-19  Alan Modra  <amodra@bigpond.net.au>

	* prefix.c (update_path): Don't zap single `.' path components
	unless followed by another `.' and fix typo last patch.

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

	* cppexp.c (cpp_num_mul): Remove unused parameter.
	(UNARY, BINARY, OTHER, binary_handler): Remove.
	(ALWAYS_EVAL): New.
	(optab): Update.
	(reduce): Refactor to a large switch, don't use a function
	pointer.

2002-07-18  Bo Thorsen  <bo@berlioz.suse.de>

	* config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Define this always.

Thu Jul 18 19:39:18 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh-protos.h (sh_expand_unop_v2sf): Move inside #ifdef RTX_CODE guard.
	(sh_expand_binop_v2sf): Likewise.
	* sh.c (machine_dependent_reorg): Add move for UNSPEC_MOVA.
	(int_gpr_dest, trunc_hi_operand): New functions.
	* sh.h (PREDICATE_CODES): Add any_register_operand, int_gpr_dest and
	trunc_hi_operand.
	(SPECIAL_MODE_PREDICATES, any_register_operand): Define.
	* sh.md (cmpeqdi_t+1): Remove comments that genrecog warns about.
	(adddi3_compact+1, subdi3_compact+1, ashlsi3_n+1, ashlhi3+1): Likewise.
	(ashrsi2_16+1, ashrsi2_31+1, lshrsi3_n+1, ashrdi3+[12]): Likewise.
	(and_shl_scratch+[12], zero_extendhidi2+1): Likewise.
	(zero_extendhisi2_media+1, extendhidi2+1, extendqidi2+1): Likewise.
	(extendhisi2_media+1, extendqisi2_media+1): Likewise.
	(movsi_media_nofpu+[12], movhi_media+1, movdi_media_nofpu+1): Likewise.
	(movdi_const_16bit+[12], movdf_i4+[123], reload_outdf+[2-5]): Likewise.
	(movsf_ie+1): Likewise.
	(loaddi_trunc): Use int_gpr_dest predicate.
	(use_sfunc_addr, indirect_jump_scratch, sibcall_compact): Add mode(s).
	(mova, mova_const, GOTaddr2picreg, ptrel, casesi_worker_0): Likewise.
	(casesi_worker_0+[12], casesi_worker): Likewise.
	(shcompact_preserve_incoming_args): Likewise.
	(mov_nop): Use any_register_operand predicate.
	(mperm_w0): Use trunc_hi_operand predicate.

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

	* pa-linux.h (DWARF2_UNWIND_INFO): Delete define.
	* pa.h (EH_RETURN_DATA_REGNO): Revise TARGET_64BIT and correct
	numbering.

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

	* pa.c (output_deferred_plabels): Remove unused millicode enum mulU.

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

	PR optimization/7147
	* ifcvt.c (noce_get_condition): Make certain that the condition
	is valid at JUMP.

Thu Jul 18 13:44:51 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (barrier_align, push): Shut up compiler warnings.
	(initial_elimination_offset,sh_media_init_builtins): Likewise.
	(reg_no_subreg_operand): Delete.

2002-07-17  Bo Thorsen  <bo@suse.de>

	* config/i386/linux64.h (LINK_SPEC): Remove bogus -Y option.
	(STARTFILE_PREFIX_SPEC): Define for NATIVE_CROSS compilations.
	(STARTFILE_SPEC): Remove hardcoded library paths.
	(ENDFILE_SPEC): Likewise.

Thu Jul 18 09:38:59 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* gcse.c (hoist_expr_reaches_here_p):  Stop once expr_bb is reached.

	* gcse.c (try_replace_reg): Do not return false positives.

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

	* prefix.c: (update_path): Strip ".." components when prior dir
	doesn't exist.  Pass correct var to UPDATE_PATH_HOST_CANONICALIZE.

	* config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Remove 64-bit support.
	(ASM_OUTPUT_REG_POP): Likewise.

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

	* config/rs6000/rs6000.c (first_reg_to_save): Remove bogus
	adjustments to first_reg for profiling case.
	(output_function_profiler): Correct lr save slot for ABI_AIX_NODESC.
	Disable profiling for 64 bit code on both ABI_V4 and ABI_AIX_NODESC.
	Save static chain reg to sp + 12 on ABI_AIX_NODESC.
	* config/rs6000/sysv4.h (ASM_OUTPUT_REG_PUSH): Define.
	(ASM_OUTPUT_REG_POP): Define.
	* config/rs6000/linux64.h (ASM_OUTPUT_REG_PUSH): Undef.
	(ASM_OUTPUT_REG_POP): Undef.

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

	* cpplib.c (do_sccs): Handle #sccs on all systems.
	* system.h (SCCS_DIRECTIVE): Poison.
	* config/darwin.h, config/freebsd.h, config/netbsd.h,
	config/ptx4.h, config/svr3.h, config/svr4.h, config/alpha/elf.h,
	config/arm/linux-elf.h, config/c4x/c4x.h, config/d30v/d30v.h,
	config/i370/i370.h, config/i386/gas.h, config/i386/sco5.h,
	config/i960/i960.h, config/m68hc11/m68hc11.h, config/m68k/3b1.h,
	config/m68k/3b1g.h, config/m68k/crds.h, config/m68k/mot3300.h,
	config/m68k/pbb.h, config/m88k/m88k.h, config/mips/mips.h,
	config/sparc/pbd.h, config/stormy16/stormy16.h, config/vax/vaxv.h:
	Remove all references to SCCS_DIRECTIVE.
	* doc/cpp.texi, doc/tm.texi: Update.

Wed Jul 17 19:23:32 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* regrename.c (maybe_mode_change): New function.
	(find_oldest_value_reg, copyprop_hardreg_forward_1): Use it.

2002-07-17  Rodney Brown  <rbrown64@csc.com.au>

	* config/i386/i386.c (ix86_expand_int_movcc): In the general case
	suppress addition when either ct or cf are zero.

2002-07-17  Eric Botcazou <ebotcazou@multimania.com>
	    Glen Nakamura <glen@imodulo.com>

	PR optimization/6713
	* loop.c (loop_givs_rescan): Explicitly delete the insn that
	sets a non-replaceable giv after issuing the new one.

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

	* cppexp.c (cpp_interpret_integer, append_digit, parse_defined,
	eval_token): Clarify and correct use of "bool" variables.
	* cpplib.h (struct cpp_options): Similarly.
	* cppmacro.c (parse_params, _cpp_save_parameter): Ditto.
	* cpptrad.c (recursive_macro): Similarly.

Wed Jul 17 17:08:06 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* config/sh/lib1funcs.asm (udivsi3_i4): Implement SHcompact version in
	SHmedia code.

	* sh.md (cmpgtudi_media): Remove spurious @.

	* config/sh/lib1funcs.asm (FMOVD_WORKS): Don't define for little endian.
	* sh.h (OVERRIDE_OPTIONS): Don't set FMOVD_BIT for little endian.

	* config/sh/lib1funcs.asm (init_trampoline): New entry point.
	* sh-protos.h (sh_initialize_trampoline): Declare.
	* sh.c (sh_initialize_trampoline): New function.
	* sh.h (TRAMPOLINE_SIZE): Only 24 for TARGET_SHMEDIA32.
	(TRAMPOLINE_ALIGNMENT): Need cache-line alignment for TARGET_SHMEDIA.
	(INITIALIZE_TRAMPOLINE): Call sh_initialize_trampoline.
	(TRAMPOLINE_ADJUST_ADDRESS): Not needed for SHcompact.
	* sh.md (initialize_trampoline, double_shori): New patterns.
	(initialize_trampoline_compact): Likewise.
	(shmedia32_initialize_trampoline_big): Remove.
	(shmedia32_initialize_trampoline_little): Likewise.

	* sh-protos.h (binary_float_operator): Remove declaration.
	(sh_expand_unop_v2sf, sh_expand_binop_v2sf): Declare.
	* sh.c (print_operand, case 'N'): Check against CONST0_RTX.
	(unary_float_operator, sh_expand_unop_v2sf): New functions.
	(sh_expand_binop_v2sf): Likewise.
	(zero_vec_operand): Delete.
	(SH_BLTIN_UDI): New builtin shared signature define.  Renumbered
	all non-shared ones.
	(bdesc): Change all the mextr builtins to use SH_BLTIN_UDI.
	Enable nsb and byterev.
	* sh.h (CONDITIONAL_REGISTER_USAGE): Initialize DF_HI_REGS.
	(HARD_REGNO_MODE_OK): Allow TImode in fp regs.  Allow V2SFmode
	in general regs.
	(enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add DF_HI_REGS.
	(SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.  Remove clause for
	immediate operands.
	(SECONDARY_INPUT_RELOAD_CLASS): Add clause for immediate operands.
	Add DF_HI_REGS.
	(CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P): Allow
	lowpart fp regs - only for big endian for now.
	(LEGITIMATE_CONSTANT_P): Don't allow nonzero float vectors
	when FPU is in use.
	(EXTRA_CONTRAINT_U): Check against CONST0_RTX.
	(LOAD_EXTEND_OP): NIL for SImode.
	(REGISTER_MOVE_COST): Add DF_HI_REGS.  Const for moves between
	general and fp registers is 4.
	PREDICATE_CODES: Amend binary_float_operator entry.
	Remove zero_vec_operand.  Add unary_float_operator.
	* sh.md (udivsi3_i4_media): Use truncate instead of paradoxical
	subreg SET_DEST.
	(truncdisi2, truncdihi2, movv2sf): Allow memory destinations.
	(truncdiqi2): Do sign extension.
	(movsi_media, movdi_media): Allow to use r63 to an fp register.
	(movdf_media, movsf_media): Likewise.
	(movv2sf_i, movv2sf_i+1): Don't use f{ld,st}.p or SUBREGS.
	Collapse to one define_insn_and_split.  Allow immediate sources.
	(addv2sf3, subv2sf3, mulv2sf3, divv2sf3): New patterns.
	(movv4sf_i): Allow immediate sources.  Use simplify_gen_subreg.
	(movv4sf): Allow immediate sources.
	(movsf_media_nofpu+1): Don't split moves to FP registers.
	(unary_sf_op, binary_sf_op, mshflo_w_x, concat_v2sf): New patterns.
	(movv8qi_i+3): Check against CONST0_RTX.
	(mextr1, mextr2. mextr3. mextr4, mextr5, mextr6, mextr7): Use DImode
	for input and output operands.  Fix argument 3 to gen_mextr_rl.
	(mmul23_wl, mmul01_wl, mmulsum_wq_i): s/const_vector/parallel/
	(msad_ubq_i, mshf4_b, mshf0_b, mshf4_l, mshf0_l, mshf4_w): Likewise.
	(mshf0_w, fipr, ftrv): Likewise.
	(mshfhi_l_di): Now insn_and_split.  Can handle FP regs.

2002-07-17  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>

	* arm.h (ARM_NUM_INTS, ARM_NUM_REGS, ARM_NUM_REGS2): Renamed from
	NUM_INTS, NUM_REGS and ARM_NUM_REGS2 respectively.  All uses changed.
	* arm.c: Similarly.

2002-07-17  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips-protos.h (mips_sign_extend): Declare.
	* config/mips/mips.h (MASK_DEBUG_H, TARGET_DEBUG_H_MODE): Remove.
	(TARGET_SWITCHES): Remove debugh.
	(ISA_HAS_TRUNC_W): New macro.
	(CLASS_CANNOT_CHANGE_MODE): Include FP_REGS if TARGET_FLOAT64.
	(PREDICATE_CODES): Remove se_nonimmediate_operand.
	* config/mips/mips.c (movdi_operand): Allow sign-extensions of
	any SImode move_operand.
	(se_nonimmediate_operand): Remove.
	(mips_sign_extend): New.
	(mips_move_2words): Use it for sign-extended source operands.
	(override_options): Allow integers to be put into single FPRs.
	(mips_secondary_reload_class): Handle integers in float registers.
	* config/mips/mips.md (extendsidi2): Turn into a define_expand.
	(fix_truncsfsi2, fix_truncdfsi2): Likewise.
	(fix_truncdfsi2_insn, fix_truncdfsi2_macro): New.
	(fix_truncsfsi2_insn, fix_truncsfsi2_macro): New.
	(fix_truncdfdi2): Provide only a single alternative, in which the
	integer is in a float register.  Depend on TARGET_FLOAT64 rather
	than TARGET_64BIT.
	(fix_truncsfdi2, floatdidf2, floatdisf2): Likewise.
	(floatsidf2, floatsisf2): Likewise, but no TARGET_FLOAT64 dependency.
	(movdi_internal2): Don't allow the source operand to be sign-extended.
	Add alternatives for float registers.
	(*movdi_internal2_extend): New.  Version of movdi_internal2 that
	allows sign-extension.
	(*movdi_internal2_mips16): Name the existing mips16 movdi pattern.
	(movsi_internal2): Rename to movsi_internal.  Add alternatives for
	float registers.  Remove TARGET_DEBUG_H_MODE test.
	(movhi_internal1): Rename to movhi_internal.  Don't check
	TARGET_DEBUG_H_MODE.  Fix transposed *d and *f source constraints.
	(movqi_internal1): Rename to movqi_internal and remove
	TARGET_DEBUG_H_MODE dependency.
	(movsi_internal1, movhi_internal2, movqi_internal2): Remove.

2002-07-16  Jim Wilson  <wilson@redhat.com>

	* toplev.c (lang_dependent_init): Create function context for
	init_expr_once.

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

	* config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Don't
	--gc-sections if -r.
	* config/cris/cris.h: Ditto.

2002-07-16  Rodney Brown  <rbrown64@csc.com.au>

	* config/i386/i386.c (ix86_expand_int_movcc): In the case where
	the comparison directly gives a mask suppress addition when cf is
	zero by complementing the mask.

2002-07-16  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.in: Delete references to enquire.
	* enquire.c: Move to contrib.

2002-07-16  Stan Shebs  <shebs@apple.com>

	* config/darwin.h (ASM_OUTPUT_LABEL): Move to here from
	config/rs6000/darwin.h.
	(ASM_OUTPUT_SKIP): Ditto.
	(TEXT_SECTION_ASM_OP): Ditto.
	(DATA_SECTION_ASM_OP): Ditto.
	(ASM_APP_ON): Define.
	(ASM_APP_OFF): Define.
	* config/rs6000/darwin.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_SKIP,
	TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Remove.

	* config/darwin.c (func_name_maybe_scoped): Remove unused decl.
	(machopic_function_base_name): Declare result to be const.
	(machopic_non_lazy_ptr_name): Ditto.
	(machopic_stub_name): Ditto.
	* config/darwin-protos.h: Ditto for the prototypes.

Wed Jul 17 00:22:39 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* m68hc11.c (m68hc11_reorg): Do not rebuild CFG.

Wed Jul 17 00:20:48 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (prefetch): Fix for 64bit mode.
	(prefetch_sse_rex, prefetch_3dnow_rex): New patterns.

Wed Jul 17 00:19:20 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.h (MACHINE_DEPENDENT_REORG): New macro.
	* i386.c (x86_machine_dependent_reorg): New function.
	* i386-protos.h (x86_machine_dependent_reorg): Declare.

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

	* builtins.c (std_expand_builtin_va_start): Remove unused
	first argument.
	(expand_builtin_va_start): Call EXPAND_BUILTIN_VA_START and
	std_expand_builtin_va_start with just two arguments.
	* expr.h: Update prototypes.

	* alpha-protos.h, alpha.h, alpha.c, arc-protos.h, arc.h,
	arc.c, d30v-protos.h, d30v.h, d30v.c, i386-protos.h, i386.h,
	i386.c, i960-protos.h, i960.h, i960.c, m88k-protos.h, m88k.h,
	m88k.c, mips-protos.h, mips.h, mips.c, mn10300-protos.h,
	mn10300.h, mn10300.c, pa-protos.h, pa.h, pa.c,
	rs6000-protos.h, rs6000.h, rs6000.c, s390-protos.h, s390.h,
	s390.c, sh-protos.h, sh.h, sh.c, sparc-protos.h, sparc.h,
	sparc.c, stormy16-protos.h, stormy16.h, stormy16.c,
	xtensa-protos.h, xtensa.h, xtensa.c:  Remove unused first
	argument from all implementations of EXPAND_BUILTIN_VA_START
	and all uses of std_expand_builtin_va_start.

Tue Jul 16 19:32:58 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* regrename.c (copy_value): Don't record high part copies.

2002-07-16  Steve Ellcey  <sje@cup.hp.com>

	* gcc/config/pa/long_double.h (FIXUNS_TRUNCTFDI2_LIBCALL): New define.
	(fixunstfdi_libfunc): Change to use FIXUNS_TRUNCTFDI2_LIBCALL.
	* gcc/config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_udbl): New function.

2002-07-16  Ian Dall  <ian@sibyl.beware.dropbear.id.au>

	* doc/invoke.texi (NS32K Options): Document -mieee-compare option

	* config/ns32k/ns32k.md (addsi3, *frame_addr, *stack_addr): merge
	into addsi3 using register class "x" and "y".

	* config/ns32k/ns32k.md (*madddf, *maddsf, *msubdf, *msubsf):
	"earlyclobber" constraint modifier for some alternative.

	* config/ns32k/ns32k.md (tstdf, tstsf, cmpdf, cmpsf, blt, ble)
	(*ble, *blt): Flag to indicate bCOND and sCOND should check for
	unordered.
	config/ns32k/ns32k.h (CC_UNORD): define corresponding mask.

	* config/ns32k/ns32k.h (TARGET_IEEE_COMPARE, MASK_IEEE_COMPARE)
	(TARGET_SWITCHES): Add -mieee-compare option.
	(OVERRIDE_OPTIONS): 32332 is a subset of
	32532. Don't use IEEE_COMPARE -funsafe-math-optimizations.
	(TARGET_SWITCHES): Fix description of bitfield option.
	* config/ns32k/netbsd.h (TARGET_DEFAULT): Add
	-mieee-compare option. Remove 32332 flag.

2002-07-16  Steve Ellcey  <sje@cup.hp.com>

	* explow.c (convert_memory_address): Remove special handling
	when POINTERS_EXTEND_UNSIGNED < 0.
	* config/ia64.md (movsi_symbolic): New instruction for ILP32 mode.
	(movedi_symbolic): Fix typo.
	(load_fptr): Remove mode restriction so it works for SI and DI.
	(load_fptr_internal1): Ditto.
	(load_gprel): Ditto.
	(load_symptr_internal1): Ditto.
	(call_pic): Ditto.
	* config/ia64.c (call_operand): Modify mode check.
	(ia64_expand_load_address): Handle DI and SI addresses and symbols.
	(ia64_expand_move): Ditto.
	(ia64_assemble_integer): Handle SImode function pointers.
	(ia64_expand_fetch_and_op): Handle SImode mem addresses.
	(ia64_expand_op_and_fetch): Ditto.
	(ia64_expand_compare_and_swap): Ditto.
	(ia64_expand_lock_test_and_set): Ditto.
	(ia64_expand_lock_release): Ditto.

2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>

	* arm.c (emit_sfm): Don't set RTX_FRAME_RELATED_P on DWARF.

2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
	    Richard Earnshaw  <rearnsha@arm.com>

	* arm.h (LEGITIMATE_PIC_OPERAND_P): Only test
	CONSTANT_POOL_ADDRESS_P if a SYMBOL_REF.  Simplify logic.

2002-07-16  Richard Earnshaw  <rearnsha@arm.com>

	* arm.md (stack_tie): New insn.  Use an idiom that the alias code
	understands to be a memory clobber.
	* arm.c (arm_expand_prologue): Use it.

2002-07-16  Daniel Berlin  <dberlin@dberlin.org>

	* ra-rewrite.c: #include reload.h, insn-config.h
	* ra-build.c: #include reload.h
	* Makefile.in: Update ra-rewrite.o, ra-build.o dependencies to
	depend on reload.h, insn-config.h.

Tue Jul 16 11:57:45 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* expr.c (emit_move_insn_1): Handle arbitrary moves that are
	the same size as a word.

	* regrename.c (find_oldest_value_reg): Take WORDS_BIG_ENDIAN /
	BYTES_BIG_ENDIAN into account.

Tue Jul 16 12:22:44 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.md (prefetch): Fix for 64bit mode.
	(prefetch_sse_rex, prefetch_3dnow_rex): New patterns.

	* i386.md (movss, movsd): Use xorps/xorpd for Athlon.

2002-07-16  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* hard-reg-set.h (TEST_HARD_REG_BIT): Return 1 if the bit is set.

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

	* ginclude/varargs.h: Replace with stub which issues #error.
	* ginclude/stdarg.h: __builtin_stdarg_start is renamed
	__builtin_va_start.

	* builtins.def (BUILT_IN_VARARGS_START): Delete.
	(BUILT_IN_VA_START): New.
	* builtins.c (expand_builtin_va_start): Eliminate first
	argument and code to implement pre-ISO varargs.
	(std_expand_builtin_va_start): Ignore first argument; it is
	always 1.
	(expand_builtin): Handle BUILT_IN_VA_START and
	BUILT_IN_STDARG_START identically.  Delete
	BUILT_IN_VARARGS_START case.

	* function.c (assign_parms): Delete hide_last_arg and all
	its uses.
	(mark_varargs): Delete function.
	* function.h (struct function): Delete 'varargs' bit.
	(current_function_varargs): Delete macro.
	* tree.h: Don't declare mark_varargs.

	* c-decl.c (c_function_varargs, c_mark_varargs): Delete.
	(c_expand_body): Don't call mark_varargs.
	* c-objc-common.c: Handle BUILT_IN_VA_START and
	BUILT_IN_STDARG_START identically.  Delete
	BUILT_IN_VARARGS_START case.
	* c-tree.h: Don't declare c_mark_varargs.
	* c-parse.in: Remove grammar rules for '&...' (which has been
	commented out since before 2.7.2) and for '...' in K+R
	argument declarations.

	* builtins.c, function.c, integrate.c, sibcall.c,
	config/alpha/unicosmk.h, config/arc/arc.c, config/arc/arc.h,
	config/avr/avr.c, config/cris/cris.c, config/fr30/fr30.c,
	config/i960/i960.c, config/i960/i960.md, config/m32r/m32r.c,
	config/m32r/m32r.h, config/m88k/m88k.c, config/m88k/m88k.h,
	config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
	config/mn10300/mn10300.c, config/pa/som.h, config/s390/s390.c,
	config/sh/sh.c, config/sh/sh.h, config/sparc/sparc.h,
	config/stormy16/stormy16.c: Delete all references to
	current_function_varargs, and code predicated on that flag.

	* config/alpha/alpha.c (alpha_va_start),
	config/arc/arc.c (arc_va_start),
	config/i386/i386.c (ix86_va_start),
	config/mips/mips.c (mips_va_start),
	config/mn10300/mn10300.c (mn10300_va_start),
	config/rs6000/rs6000.c (rs6000_va_start),
	config/s390/s390.c (s390_va_start),
	config/sh/sh.c (sh_va_start),
	Ignore first argument; it is always 1.

	* config/c4x/c4x-protos.h, config/c4x/c4x.c: Delete c4x_va_start.
	* config/ia64/ia64-protos.h, config/ia64/ia64.c: Delete ia64_va_start.
	* config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
	Delete m68hc11_va_start.
	* config/c4x/c4x.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h:
	No need to define EXPAND_BUILTIN_VA_START.

	* doc/invoke.texi, doc/sourcebuild.texi, doc/tm.texi,
	doc/trouble.texi: Remove references to GCC-provided <varargs.h>.

2002-07-15  Eric Botcazou  <ebotcazou@multimania.com>

	PR optimization/7153
	* regmove.c (optimize_reg_copy_3): Don't optimize if the register
	dies in more than one insn.

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

	* config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Remove.

2002-07-15  Michael Matz  <matz@suse.de>,
	    Daniel Berlin  <dberlin@dberlin.org>,
	    Denis Chertykov  <denisc@overta.ru>

	Add a new register allocator.

	* ra.c: New file.
	* ra.h: New file.
	* ra-build.c: New file.
	* ra-colorize.c: New file.
	* ra-debug.c: New file.
	* ra-rewrite.c: New file.

	* Makefile.in (ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
	(ra-rewrite.o): New .o files for libbackend.a.
	(GTFILES): Add basic-block.h.

	* toplev.c (flag_new_regalloc): New.
	(f_options): New option "new-ra".
	(rest_of_compilation): Call initialize_uninitialized_subregs()
	only for the old allocator.  If flag_new_regalloc is set, call
	new allocator, instead of local_alloc(), global_alloc() and
	friends.

	* doc/invoke.texi: Document -fnew-ra.
	* basic-block.h (FOR_ALL_BB): New.
	* config/rs6000/rs6000.c (print_operand): Write small constants
	as @l+80.

	* df.c (read_modify_subreg_p): Narrow down cases for a rmw subreg.
	(df_reg_table_realloc): Make size at least as large as max_reg_num().
	(df_insn_table_realloc): Size argument now is absolute, not relative.
	Changed all callers.

	* gengtype.c (main): Add the pseudo-type "HARD_REG_SET".
	* regclass.c (reg_scan_mark_refs): Ignore NULL rtx's.

	2002-06-20  Michael Matz  <matz@suse.de>

	* df.h (struct ref.id): Make unsigned.
	* df.c (df_bb_reg_def_chain_create): Remove unsigned cast.

	2002-06-13  Michael Matz  <matz@suse.de>

	* df.h (DF_REF_MODE_CHANGE): New flag.
	* df.c (df_def_record_1, df_uses_record): Set this flag for refs
	involving subregs with invalid mode changes, when
	CLASS_CANNOT_CHANGE_MODE is defined.

	2002-05-07  Michael Matz  <matz@suse.de>

	* reload1.c (fixup_abnormal_edges): Don't insert on NULL edge.

	2002-05-03  Michael Matz  <matz@suse.de>

	* sbitmap.c (sbitmap_difference): Accept sbitmaps of different size.

	Sat Feb  2 18:58:07 2002  Denis Chertykov  <denisc@overta.ru>

	* regclass.c (regclass): Work with all regs which have sets or
	refs.
	(reg_scan_mark_refs): Count regs inside (clobber ...).

	2002-01-04  Michael Matz  <matzmich@cs.tu-berlin.de>

	* df.c (df_ref_record): Correctly calculate SUBREGs of hardregs.
	(df_bb_reg_def_chain_create, df_bb_reg_use_chain_create): Only
	add new refs.
	(df_bb_refs_update): Don't clear insns_modified here, ...
	(df_analyse): ... but here.

	* sbitmap.c (dump_sbitmap_file): New.
	(debug_sbitmap): Use it.

	* sbitmap.h (dump_sbitmap_file): Add prototype.

	2001-08-07  Daniel Berlin  <dan@cgsoftware.com>

	* df.c (df_insn_modify): Grow the UID table if necessary, rather
	than assume all emits go through df_insns_modify.

	2001-07-26  Daniel Berlin  <dan@cgsoftware.com>

	* regclass.c (reg_scan_mark_refs): When we increase REG_N_SETS,
	increase REG_N_REFS (like flow does), so that regclass doesn't
	think a reg is useless, and thus, not calculate a class, when it
	really should have.

	2001-01-28  Daniel Berlin  <dberlin@redhat.com>

	* sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP_REV): New macro, needed for
	dataflow analysis.

2002-07-15  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/7245
	* config/i386/i386.c (const_int_1_31_operand): New.
	* config/i386/i386.h (PREDICATE_CODES): Add it.
	* config/i386/i386.md (ashlsi3_cmp, ashlsi3_cmp_zext, ashlhi3_cmp,
	ashlqi3_cmp, ashrsi3_cmp, ashrsi3_cmp_zext, ashrhi3_cmp, ashrqi3_cmp,
	lshrsi3_cmp, lshrsi3_cmp_zext, lshrhi3_cmp, lshrqi3_cmp): Use it.

2002-07-14  Alan Modra  <amodra@bigpond.net.au>

	PR target/7282
	* config/rs6000/rs6000.md (floatsidf2): Enable for POWERPC64.
	(floatunssidf2): Likewise.
	(floatsidf_ppc64): New insn_and_split.
	(floatunssidf_ppc64): Likewise.

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

	* config.gcc (sh64): Remove unused
	target_requires_64bit_host_wide_int.

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

	* expr.c [CLEAR_RATIO]: New macro defining the maximum number
	of move instructions to use when clearing memory, c.f. MOVE_RATIO.
	[CLEAR_BY_PIECES]: New macro, using CLEAR_RATIO, to determine
	whether clear_by_pieces should be used to clear storage.
	(clear_storage): Use CLEAR_BY_PIECES instead of MOVE_BY_PIECES.

	* doc/tm.texi: Document these two new target macros.

2002-07-12  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md ("zero_extendsidi2"): Use D_REG only for
	the scratch register.
	("*movhi2_push"): Accept Z_REG because a split pattern can make use
	of it, forbid reload to use it.

2002-07-12  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.c (test_hard_reg_class): Fix TEST_HARD_REG_BIT
	usage on 64-bit hosts, return value was truncated to 32 bits.

Fri Jul 12 00:49:36 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* simplify-rtx.c (simplify_subreg): Handle floating point
	CONST_DOUBLEs.  When an integer subreg of a smaller mode than
	the element mode is requested, compute a subreg with an
	integer mode of the same size as the element mode first.

Thu Jul 11 22:02:57 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* combine.c (try_combine): When converting a paradoxical subreg
	to an extension, take LOAD_EXTEND_OP into account.

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

	* config.gcc (mips-sgi-irix6*o32): New configuration.

	* configure.in (libgcc_visibility): Disable for mips-sgi-irix6*o32
	configurations.
	* configure: Regenerate.

	* config/mips/iris6-o32-as.h: New file.
	* config/mips/iris6-o32.h: New file.

	* config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Define.
	(NM_FLAGS): Define.
	(HAVE_AS_SHF_MERGE): Undefine.

	* config/mips/t-iris5-as: New file.
	* config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it.

	* config/mips/t-iris6 (SHLIB_EXT, SHLIB_SOLINK, SHLIB_SONAME,
	SHLIB_NAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_SLIBDIR_QUAL, SHLIB_LINK,
	SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MAPFILES, FPBIT, DPBIT,
	dp-bit.c, fp-bit.c): Move ...
	* config/mips/t-iris5-6: ... here.
	New file, shared by IRIX 5 and IRIX 6.
	* config.gcc (mips-sgi-irix6*o32, mips-sgi-irix6*,
	mips-sgi-irix5*): Use it.

	* config/mips/iris6.h: Remove duplicate comment.

	* config/mips/mips.c (TARGET_ASM_UNALIGNED_DI_OP) [TARGET_IRIX5 &&
	!TARGET_IRIX6]: Define.
	(mips_asm_file_start): Don't emit mdebug.<ABI> sections on IRIX 5/6.

	* config/mips/mips.h (ASM_DECLARE_FUNCTION_NAME): Fix comment.

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

	* pa.md (adddi3): Change predicate of operand 2 to adddi3_operand
	and delete code to force constant to register.
	* pa-protos.h (adddi3_operand): Add prototype.
	* pa.c (adddi3_operand): New function.

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

	* c-decl.c (duplicate_decls): Preserve the noreturn attribute on
	non-ANSI builtin functions.

Thu Jul 11 11:31:12 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* rtl.h (gen_rtx_CONST_VECTOR): Declare.
	* gengenrtl.c (special_rtx): Check for CONST_VECTOR.
	* emit-rtl.c (gen_rtx_CONST_VECTOR): New function.
	(gen_const_vector_0): Use it.

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

	* pa.md (adddi3): For 32-bit targets, force constants to a register
	if they don't fit in an 11-bit immediate.  Change insn predicate to
	arith11_operand.  Remove comment.
	* pa.c (cint_ok_for_move): Fix comment.
	(emit_move_sequence):  Don't directly split DImode constants on 32-bit
	targets.

2002-07-11  Tim Josling  <tej@melbpc.org.au>

	Remove front end hard coding from gengtype.c.

	* Makefile.in
	(STAGESTUFF): add gtyp-gen.h
	(GTFILES): Remove front end specific files.
	(GTFILES_FILES_LANGS): New, from configure..
	(GTFILES_FILES_FILES): Likewise.
	(GTFILES_LANG_DIR_NAMES): Likewise.
	(GTFILES_SRCDIR): Likewise.
	(gtyp-gen.h): Build from configure information.
	(s-gtype): Remove command line parameters from gengtype.
	(gengtype.o): Remove dependency on GTFILES. Depend on gtyp-gen.h.
	(mostlyclean): Delete files generated by and for gengtype.

	* c-config-lang.in: New file.

	* configure.in (all_gtfiles_files_langs): New. Accumulate files
	for each language.
	(all_gtfiles_files_files): New. Accumulate language for each file
	accumulated.
	(gtfiles): Pick up value for C.
	(srcdir): AC-SUBST this variable.
	(all_gtfiles_files_langs): AC-SUBST this variable.
	(all_gtfiles_files_files): AC-SUBST this variable.

	* configure: Regenerate.

	* gengtype-lex.l (parse_file): Make parameter const.

	* gengtype.c (toplevel): include gtyp-gen.h.
	(BASE_FILE_<language> unnamed enum): Delete.
	(lang_names): Delete (replaced by gtyp-gen.h)
	(lang_dir_names): From gtyp-gen.h, replaces lang_names; changed
	all references.
	(NUM_GT_FILES): New.
	(NUM_LANG_FILES): New.
	(srcdir_len): New.
	(NUM_BASE_FILES): Change calculation.
	(open_base_files): Change prototype to avoid warning.
	(startswith): Delete.
	(get_file_basename): Iterate through generated language list not
	hard coded list.
	(get_base_file_bitmap): Use generated list of files and languages.
	(close_output_files): Add prototype to rmove warning.
	(main): Iterate through list of generated files from gtyp-gen.h
	rather than command line paramaters.  Ignore duplicated file
	names.

	* gengtype.h (parse_file): Amend prototype for const parameter.

	* doc/sourcebuild.texi: Document gtfiles variable.

	* doc/gty.texi: Document changes to gtfiles variable for front
	ends.

	* objc/config-lang.in (gtfiles): Add files needed for objc front
	end.

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

	PR c/2454
	* combine.c (nonzero_bits): LOAD_EXTEND_OP should only apply
	to SUBREGs of MEMs.  (num_sign_bit_copies): Likewise.

2002-07-10  Roger Sayle  <roger@eyesopen.com>
	    Zack Weinberg <zack@codesourcery.com>

	* builtins.def: Make the argument types of abort and exit
	independent of the front-end.

2002-07-11  Alan Modra  <amodra@bigpond.net.au>

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

2002-07-10  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (emit_frame_save): New.
	(rs6000_frame_related): Replace reg2 before reg.
	(rs6000_emit_prologue): Use emit_frame_save for saving gprs, fprs,
	and eh_return registers.

2002-07-10  Toon Moene  <toon@moene.indiv.nluug.nl>

	Revert all patches for optimization of Complex .op. Real.
	* complex_part_zero_p: Remove
	* expand_cmplxdiv_straight: Replace complex_part_zero_p(x)
	with x.
	* expand_cmplxdiv_wide: Ditto.
	* expand_binop: Ditto.

2002-07-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>

	* config/avr/avr.md: Fix two 0x80000000 constants to make them
	negative also on 64-bit hosts.

	Default to -fno-reorder-blocks when optimizing for size.
	* config/avr/avr-protos.h (avr_optimization_options): Declare.
	* config/avr/avr.c (avr_optimization_options): New function.
	* config/avr/avr.h (OPTIMIZATION_OPTIONS): New.

	Optimize returning from simple functions.
	* config/avr/avr-protos.h (avr_simple_epilogue): Declare.
	* config/avr/avr.c (avr_simple_epilogue): New function.
	* config/avr/avr.md (return): New insn.

2002-07-10  Douglas B Rupp  <rupp@gnat.com>

	* config/i386/i386.c  (ix86_svr3_asm_out_constructor): Add
	HAS_INIT_SECTION to protection.

2002-07-10  Mark Mitchell  <mark@codesourcery.com>

	* doc/invoke.texi (Debugging Options): Mention that -gdwarf is
	deprecated.

Wed Jul 10 19:50:03 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* combine.c (gen_lowpart_for_combine): Handle vector modes.
	Supply non-VOID mode to simplify_gen_subreg.

Wed Jul 10 18:48:55 CEST 2002  Jan Hubicka  <jh@suse.cz>

	* i386.c (ix86_init_mmx_sse_builtins): Fix thinko.

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

	* mn10200.c (expand_prologue): Create REG_MAYBE_DEAD notes
	as appropriate.

	* mn10200.c (expand_epilogue): Fix test to determine which scratch
	register to use.

Wed Jul 10 16:06:00 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* cse.c (cse_insn): Supply proper SUBREG_BYTE to simplify_gen_subreg.
	Get mode from dest.
	If simplify_gen_subreg fails, try next equivalent.

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

	* diagnostic.h: #include location.h
	(location_t): Move definition to..
	* location.h: ... here.  New file.
	* tree.h: #include location.h
	(DECL_SOURCE_LOCATION): New macro.
	(DECL_SOURCE_FILE): Use.
	(DECL_SOURCE_LINE): Likewise.
	(struct tree_decl): REplace filename and linenum with locus.
	* Makefile.in (TREE_H): add location.h
	(diagnostic.o): Depends on gt-location.h
	(gt-location.h): Depends on s-gtype

2002-07-09  Matt Kraai  <kraai@alumni.cmu.edu>

	* config/rs6000/aix.h: Convert CPP_PREDEFINES to
	TARGET_OS_CPP_BUILTINS.
	* config/rs6000/aix31.h: Likewise.
	* config/rs6000/aix41.h: Likewise.
	* config/rs6000/aix43.h: Likewise.
	* config/rs6000/aix51.h: Likewise.
	* config/rs6000/beos.h: Likewise.
	* config/rs6000/darwin.h: Likewise.
	* config/rs6000/eabi.h: Likewise.
	* config/rs6000/eabisim.h: Likewise.
	* config/rs6000/linux.h: Likewise.
	* config/rs6000/linux64.h: Likewise.
	* config/rs6000/lynx.h: Likewise.
	* config/rs6000/mach.h: Likewise.
	* config/rs6000/rtems.h: Likewise.
	* config/rs6000/sysv4.h: Likewise.
	* config/rs6000/vxppc.h: Likewise.

2002-07-09 Devang Patel <dpatel@apple.com>
	* objc/objc-act.c (adjust_type_for_id_default): Fix my previous patch.
	Do not allow ObjC objects as a parameter type for Objective-C methods.
	My previous patch restricted  'struct' also.

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

	* cpperror.c (cpp_error): Default to directive_line within
	directives here.
	* cppexp.c (cpp_interpret_integer): Only use traditional
	number semantics in directives.
	* cpplib.c (prepare_directive_trad): Don't reset pfile->line.
	(do_include_common): Similarly.
	* cpptrad.c (scan_out_logical_line): Implement accurate
	quoting of <> in #include.
	* doc/cpp.texi: Update.

Tue Jul  9 22:37:44 2002  Stephen Clarke <stephen.clarke@superh.com>
			  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (sh_adjust_cost): Special handling of SHMEDIA code.
	* sh.md (attribute issues): Replace with:
	(attribute pipe_model).  All users changed.
	(attribute type): Change pt / ptabs to pt_media / ptabs_media.
	All users changed.
	(function units sh5issue, sh5fds): New.
	(attribute is_mac_media): New.
	(adddi3_media, subdi3_media, divsi3_i1_media, anddi3): Add type.
	(andcdi3, iordi3, xordi3, ashldi3_media, lshrdi3_media): Likewise.
	(ashrdi3_media, negdi_media, extendsidi2, movqi_media): Likewise.
	(movhi_media, shori_media, movv2sf_i, jump_media): Likewise.
	(call_media, call_value_media, sibcall_media): Likewise.
	(casesi_jump_media, casesi_shift_media, casesi_load_media): Likewise.
	(return_media_i, addsf3_media, subsf3_media, mulsf3_media): Likewise.
	(mac_media, divsf3_media, floatdisf2, floatsisf2_media): Likewise.
	(fix_truncsfdi2, fix_truncsfsi2_media, cmpeqsf_media): Likewise.
	(cmpgtsf_media, cmpgesf_media, cmpunsf_media, negsf2_media): Likewise.
	(sqrtsf2_media, abssf2_media, adddf3_media, subdf3_media): Likewise.
	(muldf3_media, divdf3_media, floatdidf2, floatsidf2_media): Likewise.
	(fix_truncdfdi2, fix_truncdfsi2_media, cmpeqdf_media): Likewise.
	(cmpgtdf_media, cmpgedf_media,cmpundf_media, negdf2_media): Likewise.
	(sqrtdf2_media, absdf2_media, extendsfdf2_media): Likewise.
	(truncdfsf2_media): Likewise.
	(movsi_media, movsi_media_nofpu, movdi_media): Use new types.
	(movdi_media_nofpui, movdf_media, movdf_media_nofpu): Likewise.

Tue Jul  9 21:39:50 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (PREDICATE_CODES): Add general_extend_operand and inqhi_operand.
	* sh.c (general_extend_operand, inqhi_operand): New functions.
	* sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): Collapse
	alternatives using 'N' modifier.  Add type.
	(adddi3z_media): Likewise.  Enable generator function generation.
	(movdicc_false, movdicc_true, addsi3_media, subsi3_media): Use more
	exact predicates / constraints.  Add type.
	(subsi3): Allow 0 for SHMEDIA.
	(udivsi3_i4_media): Use match_operand for input values
	rather than hard registers.
	(udivsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
	unnecessarily through hard registers.  Keep copies of pseudo
	registers outside of the libcall sequence.
	(mulsidi3_media, umulsidi3_media): Use more exact predicates.  Add type.
	(ashlsi3_media, ashrsi3_media, lshrsi3_media): Likewise.
	(zero_extendsidi2, zero_extendhidi2, zero_extendqidi2): Likewise.
	(extendhidi2, extendqidi2): Likewise.
	(andsi3_compact): Name.
	(andcdi3): Enable generator function generation.
	(zero_extendhisi2, zero_extendqisi2): Rename to
	(zero_extendhisi2_compact, zero_extendqisi2_compact).
	(extendhisi2, extendqisi2): Rename to
	(extendhisi2_compact, extendqisi2_compact).
	(rotldi3, rotldi3_mextr, rotrdi3, rotrdi3_mextr): New patterns.
	(loaddi_trunc, zero_extendhisi2, zero_extendhisi2_media): Likewise.
	(zero_extendhisi2_media+1, zero_extendqisi2): Likewise.
	(zero_extendqisi2_media, extendhisi2, extendhisi2_media): Likewise.
	(extendhisi2_media, extendhisi2_media+1, extendqisi2): Likewise.
	(extendqisi2_media, extendqisi2_media+1, truncdisi2): Likewise.
	(truncdihi2, truncdiqi2, reload_inqi, reload_inhi): Likewise.
	(shmedia32_initialize_trampoline_big): Likewise.
	(shmedia32_initialize_trampoline_little): Likewise.
	(nsb, nsbsi, nsbdi, ffsdi2, ffssi2, byterev): Likewise.
	(negdi2): Remove spurious T clobber.
	(zero_extendhidi2+1, extendhidi2+1, extendqidi2+1): Handle TRUNCATE.
	(movsi_media, movsi_media_nofpu): Remove spurious *k after b.
	(movdi_media, movdi_media_nofpu, pt, ptb): Likewise.
	(movsi_media_nofpu+2, movhi_media+1): Only do split after reload.
	(ic_invalidate_line_media): Write back data cache before invalidating
	instruction cache.  Add type.
	(movsf_media): Sign-extend when the destination is a general
	purpose register.  Add type.
	(bgt_media, bge_media, bgtu_media, bgeu_media, blt_media_i): Allow 0.
	(casesi_worker_0+1): Only increment ref count for proper label.
	(casesi_worker_0+2): Likewise.

2002-07-09  Mark Mitchell  <mark@codesourcery.com>

	* dwarfout.c (dwarfout_init): Warn that DWARF1 is deprecated.

2002-07-09  Steve Ellcey  <sje@cup.hp.com>

	* gcc/except.c (expand_eh_region_end_cleanup): Change exception pointer
	from Pmode to ptr_mode.
	(get_exception_pointer): Ditto.
	(connect_post_landing_pads): Ditto.
	(dw2_build_landing_pads): Ditto.

2002-07-08  Steve Ellcey  <sje@cup.hp.com>
	* gcc/c-pragma.h (add_to_renaming_pragma_list): New function.
	* gcc/c-pragma.c (add_to_renaming_pragma_list): New function.
	(handle_pragma_redefine_extname): Change to use new function.

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

	* combine.c (combine_simplify_rtx): Add an explicit cast
	to avoid signed/unsigned comparison warning.
	(simplify_if_then_else): Likewise.
	(extended_count): Likewise.
	(simplify_shift_const): Likewise.
	(simplify_comparison): Likewise.

2002-07-08  Richard Sandiford  <rsandifo@redhat.com>

	* config/mips/mips.md: Add imadd type.  Update scheduler description
	to use imadd as well as imul.
	(*mul_acc_si, *madsi): Change imul alternatives to imadd.
	(*mul_acc_di, *mul_acc_64bit_di): Likewise.
	(*mul_sub_si): Likewise for first alternative.  Change second
	alternative from imul to multi.

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

	* c-common.c (c_common_post_options): Update prototype;
	don't init backends if preprocessing only.
	* langhooks-def.h (LANG_HOOKS_POST_OPTIONS): Update.
	* langhooks.h (struct lang_hooks): Update post_options to
	return a boolean.
	* toplev.c (parse_options_and_default_flags, do_compile,
	lang_independent_init): Update prototypes.  Allow the
	front end to specify that there is no need to initialize
	the back end.
	(general_init): Move call to hex_init here...
	(toplev_main): ...from here.  Pass flag for back end init
	suppression.

Sun Jul  7 20:38:38 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.h (PRINT_OPERAND_PUNCT_VALID_P): Allow '\''.
	(PREDICATE_CODES): Add entries for equality_comparison_operator,
	greater_comparison_operator and less_comparison_operator.
	* sh.c (print_operand): Add '\'' code.  Make 'o' handle
	more operators.
	(equality_comparison_operator): New function.
	(greater_comparison_operator, less_comparison_operator): Likewise.
	* sh.md (beq_media_i): Disable generator function generation.
	Use match_operator to handle a whole class of comparisons.  Add
	modifier in output template to provide branch prediction.  Add type.
	(bgt_media_i, ble_media_i): Likewise.  Allow zero operands.
	(bne_media_i, bge_media_i, bgtu_media_i, bgeu_media_i): Delete.
	(blt_media_i, bleu_media_i, bltu_media_i): Likewise.
	(bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Allow zero operands.

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

	Emit MMIX function prologue and epilogue as rtl.
	* config/mmix/mmix.md ("call"): Use mmix_get_hard_reg_initial_val,
	not unprototyped get_hard_reg_initial_val.
	("call_value", "nonlocal_goto_receiver"): Ditto.
	("return"): Make define_expand.  Move real insn to...
	("*expanded_return"): New pattern.
	("prologue", "epilogue"): New define_expands.
	* config/mmix/mmix.h (MMIX_rO_REGNUM): New macro.
	(struct machine_function): New member in_prologue.
	(FIRST_PSEUDO_REGISTER): Adjust for including rO as register.
	(FIXED_REGISTERS, CALL_USED_REGISTERS): Ditto.
	(MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Ditto.
	(MMIX_GNU_ABI_REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Ditto.
	(REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Ditto.
	(LOCAL_REGNO): Define.  Adjust comment.
	* config/mmix/mmix.c (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS):
	Consider regs_ever_live[MMIX_rJ_REGNUM], not just
	leaf_function_p.
	(MMIX_OUTPUT_REGNO): Don't translate registers while outputting
	the prologue.
	(mmix_target_asm_function_prologue): Make static.  Just mark that
	the prologue is being emitted.  Move guts to...
	(mmix_expand_prologue): New function.  Adjust for emitting
	prologue as rtl.  For sizes, use HOST_WIDE_INT only.
	(mmix_target_asm_function_epilogue): Make static.  Simply emit a
	\n.  Move guts to...
	(mmix_expand_epilogue): New function.  Adjust for emitting
	epilogue as rtl.  For sizes, use HOST_WIDE_INT only.
	(mmix_target_asm_function_end_prologue): Mark that the prologue
	has ended.
	(TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
	(mmix_conditional_register_usage): Improve comments.
	(mmix_local_regno): New function.
	(mmix_emit_sp_add, mmix_get_hard_reg_initial_val): Ditto.
	* config/mmix/mmix-protos.h (mmix_local_regno): Prototype.
	(mmix_expand_prologue, mmix_expand_epilogue): Ditto.
	(mmix_get_hard_reg_initial_val): Ditto.

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

	* toplev.c (set_fast_math_flags): Don't use ISO C style function
	definitions.
	* gengtype.c (open_base_files): Likewise.
	(close_output_files): Likewise.
	* tracer.c (find_best_predecessor): Likewise.
	(find_best_successor): Likewise.
	(ignore_bb_p): Likewise.

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

	PR c++/7099
	* builtin-attrs.def: Define new attribute lists for use in
	builtins.def.
	* builtins.def [DEF_BUILTIN]: Modify to take an additional
	ATTRS argument, an enumerated value defined in builtin-attrs.def
	that represents the attribute list for the builtins.  Modify
	all builtin functions to pass an appropriate attribute list.
	Specify "abort", "exit", "_exit" and "_Exit" builtins here with
	their required noreturn attributes.
	* tree.h (enum_builtin_function): Ignore the additional parameter
	to DEF_BUILTIN.
	* builtins.c (built_in_names): Likewise.
	* c-common.c: (builtin_function_2): Replace the "int noreturn_p"
	argument with a tree representing the functions attribute list.
	Pass this "attrs" argument to builtin_function.  No longer handle
	the noreturn_p processing manually.
	(built_in_attributes): Move the definitions from builtin-attrs.def
	before c_common_nodes_and_builtins.
	(c_common_nodes_and_builtins): Handle the new ATTRS parameter in
	DEF_BUILTIN, passing it to both builtin_function and the changed
	builtin_function_2.

	* doc/extend.texi: Document __builtin_abort, __builtin_exit,
	__builtin__exit and __builtin__Exit.

2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md ("*movqi_68hc12"): Avoid allocating
	QI mode registers in soft registers.
	("zero_extendqihi2"): Do not take into account soft registers
	for register allocation (use '*' constraint).

2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md ("*ashlsi3"): Avoid saving y if we know
	it is dead.
	("*ashrsi3"): Likewise.
	("*lshrsi3"): Likewise.

2002-07-05  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c (output_max_insn_queue_index_def): Take latencies
	into account.

2002-07-05  Stephane Carrez  <stcarrez@nerim.fr>

	* config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize
	address computation and memory moves.

2002-07-03  Mark Mitchell  <mark@codesourcery.com>

	PR c++/6706
	* dwarfout.c (output_reg_number): Fix warning message.
	(output_bound_representation): Check SAVE_EXPR_RTL is not NULL
	before using it.

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

	* gcc/gcc.c (asm_debug): Move initialization ...
	(init_spec): ... here.

2002-07-05  Nathan Sidwell  <nathan@codesourcery.com>

	* c-parse.in (extdef): Append ';'.
	(old_style_parm_decls): Append ';'.

2002-07-04  Daniel Jacobowitz  <drow@mvista.com>

	* configure.in: Correct typos: gcc_cv_as_gdwarf2_debug_flag to
	gcc_cv_as_gdwarf2_flag and gcc_cv_as_gstabs_debug_flag
	to gcc_cv_as_gstabs_flag.
	* configure: Rebuilt.

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

	* ggc.h (ggc_add_root): Document as obsolete.

Thu Jul  4 07:58:01 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (mshfhi_b, mshflo_b, mshfhi_l, mshflo_l, mshfhi_w): Add DONE.
	(mshflo_w): Likewise.

Thu Jul  4 07:36:29 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* simplify-rtx.c (simplify_subreg): Reduce problem of finding
	vector mode subregs of constants to finding integer mode
	subregs of constants.
	* cse.c (cse_insn): Use simplify_gen_subreg.
	* convert.c (convert_to_integer): Don't strip a NOP_EXPR
	From a vector mode expression of different size than the
	target mode.

2002-07-03  Eric Christopher  <echristo@redhat.com>

	* config/mips/linux.h: Add #undef for SUBTARGET_CPP_SPEC.
	* config/mips/mips.h: Remove deprecated -m<processor> options
	and cc1_cpu_spec associated.
	(CONSTANT_ADDRESS_P): Fix last patch.
	(ASM_DECLARE_FUNCTION_NAME): Declare. Fix comment.
	* config/mips/mips.md (bungt, bunge, sungt_df, sungt_sf, sunge_df,
	sunge_sf): Remove.

2002-07-03  Stan Shebs  <shebs@apple.com>

	* config/darwin.h (APPLE_CC): Remove, not meaningful in FSF GCC.
	(STRINGIFY_THIS, REALLY_STRINGIFY): Remove.
	(CPP_SPEC): Remove insertion of APPLE_CC definition.

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

	* combine.c (struct_undo): Change types of recorded substitutions
	to be either "int" or "rtx", instead of "unsigned int" and "rtx".
	(do_SUBST_INT): Change types of the substitution from unsigned int
	to int, to avoid compilation warning from SUBST_INT's only caller.

	(make_extraction): Add cast to avoid compilation warning.
	(force_to_mode): Remove cast to avoid compilation warning.

2002-07-03  Eric Botcazou  <ebotcazou@multimania.com>
	    Jeff Law  <law@redhat.com>

	* i386.md (length_immediate attribute): Fix typo.
	(length_address attribute): Likewise.
	(modrm attribute): Set it to 0 for immediate call instructions.
	(jcc_1 pattern): Set modrm attribute to 0.
	(jcc_2 pattern ): Likewise.
	(jump pattern): Likewise.
	(doloop_end_internal pattern): Explicitly set length.
	(leave pattern): Fix typo.
	(leave_rex64 pattern): Likewise.

2002-07-03  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.md (fix_truncdfsi2_internal): Ignore DImode
	in FPR as preference.
	(fctiwz): Same.
	(floatdidf2, fix_truncdfdi2): Same.
	(floatdisf2, floatditf2, fix_trunctfdi2): Same.
	(floatditf2): Same.
	(floatsitf2, fix_trunctfsi2): SImode in GPR.
	(ctrdi): Remove FPR alternative and splitter.

2002-07-03  Will Cohen  <wcohen@redhat.com>

	* config/i386/i386.c (x86_integer_DFmode_moves): Disable for PPro.

Wed Jul  3 10:24:16 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* optabs.c (expand_vector_binop): Don't store using a SUBREG smaller
	than UNITS_PER_WORD, unless this is little endian and the first unit
	in this word.  Let extract_bit_field decide how to load an element.
	Force arguments to matching mode.
	(expand_vector_unop): Likewise.

	* simplify-rtx.c (simplify_subreg): Don't assume that all vectors
	consist of word_mode elements.
	* c-typeck.c (build_binary_op): Allow vector types for BIT_AND_EXPR,
	BIT_ANDTC_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR.
	(build_unary_op): Allow vector types for BIT_NOT_EPR.
	* emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg for
	CONST_VECTOR.
	* optabs.c (expand_vector_binop): Try to perform operation in
	smaller vector modes with same inner size.  Add handling of AND, IOR
	and XOR.  Reject expansion to inner-mode sized scalars when using
	OPTAB_DIRECT.  Use simplify_gen_subreg on constants.
	(expand_vector_unop): Try to perform operation in smaller vector
	modes with same inner size.  Add handling of one's complement.
	When there is no vector negate operation, try a vector subtract
	operation.  Use simplify_gen_subreg on constants.
	* simplify-rtx.c (simplify_subreg): Add capability to convert vector
	constants into smaller vectors with same inner mode, and to
	integer CONST_DOUBLEs.

2002-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* c-parse.in (parsing_iso_function_signature): New variable.
	(extdef_1): New, copied from...
	(extdef): ... here.  Reset parsing_iso_function_signature.
	(old_style_parm_decls):  Reset parsing_iso_function_signature.
	(old_style_parm_decls_1): New, copied from old_style_parm_decls.
	Warn about ISO C style function definitions.
	(nested_function, notype_nested_function): Reset
	parsing_iso_function_signature.
	(parmlist_2): Set parsing_iso_function_signature.

	* doc/invoke.texi (-Wtraditional): Document new behavior.

2002-07-02  Chris Demetriou  <cgd@broadcom.com>

	* config.gcc (mips*el-*-*): Use tm_defines to set
	TARGET_ENDIAN_DEFAULT, rather than including mips/little.h.
	* config/mips/little.h: Remove.

2002-07-02 Devang Patel <dpatel@apple.com>

	* objc/objc-act.c (adjust_type_for_id_default): Do not allow an
	object as parameter. Prevent something like 'NSObject' to be
	used as the type for a method argument.

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

	* cpptrad.c: Update comment.

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

	* doc/cpp.texi: Update for traditional preprocessing changes.
	* goc/cppopts.texi: Similarly.

2002-07-02  Ziemowit Laski  <zlaski@apple.com>

	* c-parse.in (designator): Enable designated initializers if ObjC.
	(objcmessageexpr): Remove references to objc_receiver_context.
	* objc/objc-act.h (objc_receiver_context): Remove decl.
	* objc/objc-act.c (objc_receiver_context): Remove.
	(lookup_objc_ivar): Test objc_method_context instead of
	objc_receiver_context.

Tue Jul  2 18:45:45 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (print_operand, case 'N'): Allow zero vector.
	(arith_reg_or_0_operand): Likewise.
	(zero_vec_operand): Check for CONST_VECTOR, not PARALLEL.
	* sh.h (CONST_COSTS): 0 has 0 cost.  Check OUTER_CODE for
	IOR, XOR, PLUS and SET and take their respective constant
	ranges into account.
	(PREDICATE_CODES, arith_reg_or_0_operand): Can be CONST_VECTOR.
	* sh.md (subdi3, subdi3_media): Allow zero operand.
	(movv8qi_i+3): Only vector that is not split is the zero vector.
	Fix operand 3 to simplify_subreg.
	(movv2si_i): Split alternative 1.
	(mshfhi_l_di_rev+1): New splitter.

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

	PR preprocessor/7029
	* cppinit.c (cpp_handle_option):  Suppress warnings with an
	implicit "-w" for "-M" and "-MM".
	* doc/cppopts.texi: Update.

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

	* config/sh/sh.c (sh_media_init_builtins): Change use of poisoned
	identifier "bzero" to "memset".  Pass extra NULL_TREE argument to
	builtin_function.

2002-07-02  Alan Modra  <amodra@bigpond.net.au>

	* README.Portability: Fix typos.

2002-07-01  Hans-Peter Nilsson  <hp@axis.com>

	PR target/7177
	* config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Correct number
	of indirections for register inside sign-extended mem part.

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

	* tree.h:  Modify builtin_function interface to take an extra
	argument ATTRS, which is a tree representing an attribute list.

	* c-decl.c (builtin_function): Accept additional parameter.
	* objc/objc-act.c (builtin_function): Likewise.
	* f/com.c (builtin_function): Likewise.
	* java/decl.c (builtin_function): Likewise.
	* ada/utils.c (builtin_function): Likewise.
	* cp/decl.c (builtin_function): Likewise.
	(builtin_function_1): Likewise.

	* c-common.c (c_common_nodes_and_builtins): Pass an additional
	NULL_TREE argument to builtin_function.  (builtin_function_2):
	Likewise.
	* cp/call.c (build_java_interface_fn_ref): Likewise.
	* objc/objc-act.c (synth_module_prologue): Likewise.
	* java/decl.c (java_init_decl_processing): Likewise.
	* f/com.c (ffe_com_init_0): Likewise.

	* config/alpha/alpha.c (alpha_init_builtins): Pass an additional
	NULL_TREE argument to builtin_function.
	* config/arm/arm.c (def_builtin): Likewise.
	* config/c4x/c4x.c (c4x_init_builtins): Likewise.
	* config/i386/i386.c (def_builtin): Likewise.
	* config/ia64/ia64.c (def_builtin): Likewise.
	* config/rs6000/rs6000.c (def_builtin): Likewise.

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

	* config/ip2k/t-ip2k: Remove LIBGCC1, CROSS_LIBGCC1, and LIBGCC1_TEST.
	* config/mips/t-isa3264: Likewise.
	* config/mmix/t-mmix: Likewise.

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

	* emit-rtl.c (init_emit_once): Add missing cast to HOST_WIDE_INT.

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

	PR opt/4046
	* fold-const.c (fold) [COND_EXPR]: Simplify A ? 0 : 1 to !A,
	A ? B : 0 to A && B and A ? B : 1 into !A || B if both A and
	B are truth values.

2002-07-01  Nathanael Nerode  <neroden@gcc.gnu.org>

	* config/mmix/t-mmix: Eliminate last reference to LIBGCC1_TEST.

2002-07-01  Matt Kraai  <kraai@alumni.cmu.edu>

	* README.Portability (Function prototypes): Give an example of
	declaring and defining a function with no arguments.

	* README.Portability (Function prototypes): Document new
	variable-argument function macros.

Mon Jul  1 19:55:17 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.c (langhooks.h): Include.
	(sh_init_builtins, sh_media_init_builtins): New functions.
	(sh_expand_builtin, arith_reg_dest,and_operand): Likewise.
	(mextr_bit_offset, extend_reg_operand, zero_vec_operand): Likewise.
	(sh_rep_vec, sh_1el_vec, sh_const_vec): Likewise.
	(builtin_description): New struct tag.
	(signature_args, bdesc): New arrays.
	(TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Undef / define.
	(print_operand): Add 'N' modifier.
	* sh.h (VECTOR_MODE_SUPPORTED_P): Add SHmedia vector modes.
	(EXTRA_CONSTRAINT_U, EXTRA_CONSTRAINT_W): New macros.
	(EXTRA_CONSTRAINT): Add 'U' and 'W' cases.
	(CONST_COSTS): Add special case for SHmedia AND.
	(PREDICATE_CODES): Add and_operand, arith_reg_dest,
	extend_reg_operand, extend_reg_or_0_operand, mextr_bit_offset,
	sh_const_vec, sh_1el_vec, sh_rep_vec, zero_vec_operand.
	target_operand can also be const or unspec.
	* sh.md (UNSPEC_INIT_TRAMP, UNSPEC_FCOSA UNSPEC_FSRRA): New constants.
	(UNSPEC_FSINA, UNSPEC_NSB, UNSPEC_ALLOCO): Likewise.
	(attribute type): Add new types.
	(anddi3): Add splitter.
	(movdi_const_16bit+1): Add code to handle vector constants and
	bitmasks efficiently.
	(shori_media): Have generator function made.
	(movv8qi, movv8qi_i, movv8qi_i+1, movv8qi_i+2): New patterns.
	(movv8qi_i+3, movv2hi, movv2hi_i, movv4hi, movv4hi_i): Likewise.
	(movv2si, movv2si_i, absv2si2, absv4hi2, addv2si3, addv4hi3): Likewise.
	(ssaddv2si3, usaddv8qi3, ssaddv4hi3, negcmpeqv8qi): Likewise.
	(negcmpeqv2si, negcmpeqv4hi, negcmpgtuv8qi, negcmpgtv2si): Likewise.
	(negcmpgtv4hi, mcmv, mcnvs_lw, mcnvs_wb, mcnvs_wub): Likewise.
	(mextr_rl, mextr_lr, mextr1, mextr2, mextr3, mextr4, mextr5): Likewise.
	(mextr6, mextr7, mmacfx_wl, mmacfx_wl_i, mmacnfx_wl): Likewise.
	(mmacnfx_wl_i, mulv2si3, mulv4hi3, mmulfx_l, mmulfx_w): Likewise.
	(mmulfxrp_w, mmulhi_wl, mmullo_wl, mmul23_wl, mmul01_wl): Likewise.
	(mmulsum_wq, mmulsum_wq_i, mperm_w, mperm_w_little): LIkewise.
	(mperm_w_big, mperm_w0, msad_ubq, msad_ubq_i, mshalds_l): Likewise.
	(mshalds_w, ashrv2si3, ashrv4hi3, mshards_q, mshfhi_b): Likewise.
	(mshflo_b,  mshf4_b, mshf0_b, mshfhi_l, mshflo_l, mshf4_l): Likewsie.
	(mshf0_l, mshfhi_w, mshflo_w, mshf4_w, mshf0_w, mshfhi_l_di): Likewise.
	(mshfhi_l_di_rev, mshflo_l_di, mshflo_l_di_rev): Likewise.
	(mshflo_l_di_x, mshflo_l_di_x_rev, ashlv2si3, ashlv4hi3): Likewise.
	(lshrv2si3, lshrv4hi3, subv2si3, subv4hi3, sssubv2si3): Likewise.
	(ussubv8qi3, sssubv4hi3, fcosa_s, fsina_s, fipr, fsrra_s): Likewise.
	(ftrv): Likewise.

	(fpu_switch+1, fpu_switch+2): Remove constraint.

2002-07-01  Aldy Hernandez  <aldyh@redhat.com>

	* tree.c (build_function_type_list): Update function comment.
	Rename first argument to return_type.

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

	* Makefile.in: Remove all trace of tradcpp.c, tradcpp.h,
	tradcif.y and related files.

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

	* cpptrad.c (skip_whitespace): Pass pointer to prior char.

2002-07-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* mips.h (FUNCTION_ARG_REGNO_P): Fix parentheses.

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.

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

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

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

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

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


Copyright (C) 2002 Free Software Foundation, Inc.

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